{"id":"5d4a4e0b231b14ad78fe5b2f72f347a0","_format":"hh-sol-build-info-1","solcVersion":"0.8.28","solcLongVersion":"0.8.28+commit.7893614a","input":{"language":"Solidity","sources":{"@openzeppelin/contracts/access/AccessControl.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.4.0) (access/AccessControl.sol)\n\npragma solidity ^0.8.20;\n\nimport {IAccessControl} from \"./IAccessControl.sol\";\nimport {Context} from \"../utils/Context.sol\";\nimport {IERC165, 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    /// @inheritdoc IERC165\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` from `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/IAccessControl.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.4.0) (access/IAccessControl.sol)\n\npragma solidity >=0.8.4;\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 to signal 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/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/introspection/ERC165.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.4.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    /// @inheritdoc IERC165\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.4.0) (utils/introspection/IERC165.sol)\n\npragma solidity >=0.4.16;\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"},"@tw3/esp/contracts/interfaces/IDataPointRegistry.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\n// Copyright (C) 2025 TechnicallyWeb3\n\nimport \"../types/ESPTypes.sol\";\nimport \"./IDataPointStorage.sol\";\nimport \"./IOwnable.sol\";\n\n/// @title Data Point Registry Contract\n/// @notice Manages data point publishing and royalty payments\n/// @dev Extends storage functionality with economic incentives\ninterface IDataPointRegistry is IOwnable {\n\n    function royaltyRate() external view returns (uint256);\n\n    function DPS() external view returns (IDataPointStorage);\n    function setDPS(address _dps) external;\n    function setRoyaltyRate(uint256 _royaltyRate) external;\n    function updateRoyaltyRecord(bytes32 _dataPointAddress, DataPointRoyalty memory _dataPointRoyalty) external;\n    function updatePublisherAddress(bytes32 _dataPointAddress, address _newPublisher) external;\n    /// @notice Calculates the royalty amount for a data point with overflow protection\n    /// @param _dataPointAddress The address of the data point\n    /// @return The calculated royalty amount in wei\n    function getDataPointRoyalty(bytes32 _dataPointAddress) external view returns (uint256);\n    /// @notice Allows the owner to transfer royalties to a different address\n    /// @param _publisher The address of the publisher\n    /// @param _amount The amount to transfer\n    /// @param _to The address to send the royalties to\n    /// @dev Should be protected by a strong consensus mechanism\n    function transfer(address _publisher, uint256 _amount, address _to) external;\n    /// @notice Allows publishers to withdraw their earned royalties\n    /// @param _amount The amount to withdraw\n    /// @param _withdrawTo The address to send the royalties to\n    function collectRoyalties(uint256 _amount, address _withdrawTo) external;\n    /// @notice Checks the royalty balance of a publisher\n    /// @param _publisher The address of the publisher\n    /// @return The current balance in wei\n    function royaltyBalance(address _publisher) external view returns (uint256);\n    /// @notice Writes a new data point and handles royalty logic\n    /// @dev Use address(0) as publisher to waive royalties\n    /// @param _dataPoint The data point to write\n    /// @param _publisher The publisher of the data point, can be address(0) to waive royalties\n    /// @return dataPointAddress The address where the data point is stored\n    function registerDataPoint(bytes memory _dataPoint, address _publisher) external payable returns (bytes32 dataPointAddress);\n}\n"},"@tw3/esp/contracts/interfaces/IDataPointStorage.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\n// Copyright (C) 2025 TechnicallyWeb3\n\n/// @title Data Point Storage Contract\n/// @notice Provides core storage functionality for data points\n/// @dev Basic implementation without collision handling\ninterface IDataPointStorage {\n\n    function VERSION() external pure returns (uint8);\n\n    /// @notice Calculates the storage address for a data point\n    /// @param _data The data point to calculate address for\n    /// @return _dataPointAddress The calculated storage address\n    function calculateAddress(bytes memory _data) external pure returns (bytes32 _dataPointAddress);\n    function dataPointSize(bytes32 _dataPointAddress) external view returns (uint256);\n    function readDataPoint(bytes32 _dataPointAddress) external view returns (bytes memory);\n    /// @notice Stores a new data point with user-specified version\n    /// @dev Reverts if the calculated address is already occupied\n    /// @param _data The data point to store\n    /// @return _dataPointAddress The address where the data point is stored\n    function writeDataPoint(bytes memory _data) external returns (bytes32 _dataPointAddress);\n}\n"},"@tw3/esp/contracts/interfaces/IOwnable.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\ninterface IOwnable {\n\n    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n    /**\n    * @dev The caller account is not authorized to perform an operation.\n    */\n    error OwnableUnauthorizedAccount(address account);\n    /**\n    * @dev The owner is not a valid owner account. (eg. `address(0)`)\n    */\n    error OwnableInvalidOwner(address owner);\n\n    /**\n    * @dev Returns the address of the current owner.\n    */\n    function owner() external view returns (address);\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() external;\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) external;\n}\n"},"@tw3/esp/contracts/types/ESPTypes.sol":{"content":"/*\r\n * Ethereum Storage Protocol (ESP) - Core Types and Functions\r\n * Copyright (C) 2025 TechnicallyWeb3\r\n * \r\n * This program is free software: you can redistribute it and/or modify\r\n * it under the terms of the GNU Affero General Public License as published\r\n * by the Free Software Foundation, either version 3 of the License, or\r\n * (at your option) any later version.\r\n * \r\n * This program is distributed in the hope that it will be useful,\r\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n * GNU Affero General Public License for more details.\r\n * \r\n * You should have received a copy of the GNU Affero General Public License\r\n * along with this program. If not, see <https://www.gnu.org/licenses/>.\r\n */\r\n\r\n// SPDX-License-Identifier: AGPL-3.0\r\npragma solidity ^0.8.20;\r\n\r\nevent DataPointWritten(bytes32 indexed dataPointAddress);\r\n\r\nerror DataExists(bytes32 dataPointAddress);\r\nerror InvalidData();\r\nerror InvalidDPS();\r\nerror InsufficientRoyaltyPayment(uint256 royaltyCost);\r\nerror InvalidPublisher(address publisher);\r\n\r\nevent RoyaltiesCollected(address indexed publisher, uint256 amount, address indexed withdrawTo);\r\nevent RoyaltiesPaid(bytes32 indexed dataPointAddress, address indexed payer, uint256 amount);\r\nevent DataPointRegistered(bytes32 indexed dataPointAddress, address indexed publisher);\r\n\r\n\r\n/// @notice Calculates a unique address for a data point\r\n/// @dev Uses keccak256 hash of concatenated version and data\r\n/// @param _data The data point\r\n/// @param _version The version of the data point\r\n/// @return bytes32 The calculated address\r\nfunction calculateDataPointAddress(\r\n    bytes memory _data,\r\n    uint8 _version\r\n) pure returns (bytes32) {\r\n    return keccak256(abi.encodePacked(_data, _version));\r\n}\r\n\r\n/// @notice Structure for tracking royalty information\r\n/// @dev Stores gas usage and publisher address for royalty calculations\r\nstruct DataPointRoyalty {\r\n    uint256 gasUsed;\r\n    address publisher;\r\n}"},"@wttp/core/contracts/interfaces/IBaseWTTPPermissions.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\nimport \"@openzeppelin/contracts/access/IAccessControl.sol\";\n\n/// @title WTTP Permissions Contract\n/// @author Web3 Transfer Protocol (WTTP) Development Team\n/// @notice Manages role-based access control for the WTTP protocol\ninterface IBaseWTTPPermissions is IAccessControl {\n\n    /// @notice Check if an account has a specific role\n    /// @dev Overrides the standard AccessControl implementation to grant DEFAULT_ADMIN_ROLE holders access to all roles\n    /// @param role The role identifier to check\n    /// @param account The address to check for the role\n    /// @return bool True if the account has the role or is a DEFAULT_ADMIN_ROLE holder\n    function hasRole(bytes32 role, address account) external view returns (bool);\n    /// @notice Creates a new resource-specific admin role\n    /// @dev Sets the SITE_ADMIN_ROLE as the admin of the new role, preventing creation of privileged roles\n    /// @param _role The new role identifier to create\n    function createResourceRole(bytes32 _role) external;\n    /// @notice Changes the SITE_ADMIN_ROLE identifier\n    /// @dev Allows wiping all current site admin permissions by changing the role hash\n    /// @param _newSiteAdmin The new role identifier to use for site administrators\n    function changeSiteAdmin(bytes32 _newSiteAdmin) external;\n    function getSiteAdminRole() external view returns (bytes32);\n}\n"},"@wttp/core/contracts/interfaces/IBaseWTTPSite.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\nimport \"./IBaseWTTPStorage.sol\";\n\n/// @title WTTP Base Site Contract\n/// @author Web3 Transfer Protocol (WTTP) Development Team\n/// @notice Implements core WTTP protocol methods for HTTP-like operations on blockchain\ninterface IBaseWTTPSite is IBaseWTTPStorage {\n\n    /// @notice Handles OPTIONS requests to check available methods\n    /// @dev External interface for _OPTIONS with method enforcement\n    /// @param _path Resource path to check\n    /// @return optionsResponse Response with allowed methods info\n    function OPTIONS(string memory _path) external view returns (OPTIONSResponse memory optionsResponse);\n    /// @notice Handles WTTP HEAD requests for metadata\n    /// @dev External interface for _HEAD with method enforcement\n    /// @param headRequest Request information including conditional headers\n    /// @return head Response with header and metadata information\n    function HEAD(HEADRequest memory headRequest) external view returns (HEADResponse memory head);\n    /// @notice Handles GET requests to retrieve resource content locations\n    /// @param getRequest Request information\n    /// @return getResponse Response containing resource and storage locations\n    function GET(LOCATERequest memory getRequest) external view returns (LOCATEResponse memory getResponse);\n    /// @notice Handles DEFINE requests to update resource headers\n    /// @dev Only accessible to resource administrators, creates header if needed\n    /// @param defineRequest Request information with new header data\n    /// @return defineResponse Response containing updated header information\n    function DEFINE(DEFINERequest memory defineRequest) external returns (DEFINEResponse memory defineResponse);\n    /// @notice Handles DELETE requests to remove resources\n    /// @dev Only accessible to resource administrators, checks resource mutability\n    /// @param deleteRequest Request information\n    /// @return deleteResponse Response confirming deletion\n    function DELETE(HEADRequest memory deleteRequest) external returns (HEADResponse memory deleteResponse);\n    /// @notice Handles PUT requests to create new resources\n    /// @dev Only accessible to resource administrators, transfers any excess payment back\n    /// @param putRequest Request information including content data\n    /// @return putResponse Response containing created resource information\n    function PUT(PUTRequest memory putRequest) external payable returns (LOCATEResponse memory putResponse);\n    /// @notice Handles PATCH requests to update existing resources\n    /// @dev Only accessible to resource administrators, checks resource mutability\n    /// @param patchRequest Request information including update data\n    /// @return patchResponse Response containing updated resource information\n    function PATCH(PATCHRequest memory patchRequest) external payable returns (LOCATEResponse memory patchResponse);\n}\n"},"@wttp/core/contracts/interfaces/IBaseWTTPStorage.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity ^0.8.20;\n\nimport \"./IBaseWTTPPermissions.sol\";\nimport \"../types/WTTPTypes.sol\";\n\n/// @title WTTP Base Storage Contract\n/// @author Web3 Transfer Protocol (WTTP) Development Team\n/// @notice Manages web resource storage and access control\n/// @dev Core storage functionality for the WTTP protocol, inheriting permission management\ninterface IBaseWTTPStorage is IBaseWTTPPermissions {\n\n    /// @return IDataPointStorage The Data Point Storage contract\n    function DPS() external view returns (IDataPointStorage);\n    /// @notice Returns the Data Point Registry contract instance\n    /// @dev Provides external access to the internal DPR_ reference\n    /// @return IDataPointRegistry The Data Point Registry contract\n    function DPR() external view returns (IDataPointRegistry);\n}\n"},"@wttp/core/contracts/types/WTTPTypes.sol":{"content":"/*\r\n * Web3 Transfer Protocol (WTTP) - Types and Structures\r\n * Copyright (C) 2025 TechnicallyWeb3\r\n * \r\n * This program is free software: you can redistribute it and/or modify\r\n * it under the terms of the GNU Affero General Public License as published\r\n * by the Free Software Foundation, either version 3 of the License, or\r\n * (at your option) any later version.\r\n * \r\n * This program is distributed in the hope that it will be useful,\r\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n * GNU Affero General Public License for more details.\r\n * \r\n * You should have received a copy of the GNU Affero General Public License\r\n * along with this program. If not, see <https://www.gnu.org/licenses/>.\r\n */\r\n\r\n// SPDX-License-Identifier: AGPL-3.0\r\npragma solidity ^0.8.20;\r\n\r\n/// @title WTTP Types Contract\r\n/// @notice Defines the types and structures used in the WTTP protocol\r\n/// @dev Provides common definitions for WTTP site and gateway contracts\r\n\r\n/// @notice Import the Data Point Storage and Registry interfaces\r\nimport \"@tw3/esp/contracts/interfaces/IDataPointRegistry.sol\";\r\n\r\n// ============ WTTP Permissions Contract ============\r\n// ============ Events ============\r\n\r\n/// @notice Emitted when the site admin role identifier is changed\r\n/// @param oldSiteAdmin Previous site admin role identifier\r\n/// @param newSiteAdmin New site admin role identifier\r\nevent SiteAdminChanged(bytes32 oldSiteAdmin, bytes32 newSiteAdmin);\r\n\r\n/// @notice Emitted when a new resource role is created\r\n/// @param role The role identifier that was created\r\nevent ResourceRoleCreated(bytes32 indexed role);\r\n\r\n// ============ Errors ============\r\n\r\n/// @notice Error thrown when an invalid role is used\r\n/// @param role The role identifier that caused the error\r\nerror InvalidRole(bytes32 role);\r\n\r\n// ============ WTTP Storage Contract ============\r\n\r\nuint256 constant CHUNK_RESPONSE_LIMIT = 100000; // 100K chunks per response\r\nuint256 constant BYTE_RESPONSE_LIMIT = 1000000; // 1 MB per response\r\n\r\n// ============ Events ============\r\n// event MalformedParameter(string parameter, bytes value);\r\n// event HeaderExists(bytes32 headerAddress);\r\n// event ResourceExists(string path);\r\n/// @notice Emitted when a header is created\r\n/// @param headerAddress Address of the created header\r\nevent HeaderCreated(bytes32 headerAddress);\r\n/// @notice Emitted when a header is updated\r\n/// @param headerAddress Address of the updated header\r\nevent HeaderUpdated(bytes32 headerAddress);\r\n/// @notice Emitted when resource metadata is updated\r\n/// @param path Path of the updated resource\r\nevent MetadataUpdated(string path);\r\n/// @notice Emitted when resource metadata is deleted\r\n/// @param path Path of the deleted metadata\r\nevent MetadataDeleted(string path);\r\n/// @notice Emitted when a new resource is created\r\n/// @param path Path of the created resource\r\nevent ResourceCreated(string path);\r\n/// @notice Emitted when a resource is updated\r\n/// @param path Path of the updated resource\r\n/// @param chunkIndex Index of the updated chunk\r\nevent ResourceUpdated(string path, uint256 chunkIndex);\r\n/// @notice Emitted when a resource is deleted\r\n/// @param path Path of the deleted resource\r\nevent ResourceDeleted(string path);\r\n\r\n// ============ Errors ============\r\n/// @notice Error thrown when an invalid header is used\r\n/// @param header The header that was invalid\r\nerror InvalidHeader(HeaderInfo header);\r\n\r\n/// @title Resource Response Structure\r\n/// @notice Contains response data for resource requests\r\n/// @param dataPoints Array of data point addresses for content chunks\r\n/// @param totalChunks Total number of chunks in the resource\r\n/// @dev Includes data point addresses and total number of chunks\r\nstruct ResourceResponse {\r\n    bytes32[] dataPoints;\r\n    uint256 totalChunks;\r\n}\r\n\r\n/// @notice Error thrown when a request is malformed\r\n/// @param reason Reason for the error\r\n/// @param body Body of the error, additional custom context\r\nerror _400(string reason, string body);\r\n/// @notice Error thrown when a request doesn't have the required value\r\n/// @param reason Reason for the error\r\n/// @param requiredValue The required value to call the requested method, negative ints means shortfall, positive ints means total cost\r\nerror _402(string reason, int256 requiredValue);\r\n/// @notice Error thrown when an account lacks permission for a role\r\n/// @param reason Reason for the error\r\n/// @param role Required role for the action\r\nerror _403(string reason, bytes32 role);\r\n/// @notice Error thrown when a resource does not exist\r\n/// @param reason Reason for the error\r\n/// @param isImmutable Whether the resource is immutable\r\nerror _404(string reason, bool isImmutable);\r\n/// @notice Error thrown when a method is not allowed for a resource\r\n/// @param reason Reason for the error\r\n/// @param methodsAllowed Bitmask of allowed methods\r\n/// @param isImmutable Whether the resource is immutable\r\nerror _405(string reason, uint16 methodsAllowed, bool isImmutable);\r\n/// @notice Error thrown when attempting to modify an immutable resource\r\n/// @param reason Reason for the error\r\n/// @param body Body of the error, additional custom context\r\nerror _409(string reason, string body);\r\n/// @notice Error thrown when a resource has been permanently deleted\r\n/// @param reason Reason for the error\r\nerror _410(string reason);\r\n/// @notice Error thrown when a range is out of bounds\r\n/// @param range The range that was out of bounds\r\n/// @param outOfBounds The index that was out of bounds\r\nerror _416(string reason, Range range, int256 outOfBounds);\r\n\r\n// ============ Enum Definitions ============\r\n\r\n/// @title WTTP Methods Enum\r\n/// @notice Defines supported WTTP methods in the WTTP protocol\r\n/// @dev Used for method-based access control and request handling\r\nenum Method {\r\n    /// @notice Retrieve only resource headers and metadata\r\n    HEAD,\r\n    /// @notice Retrieve resource content\r\n    GET,\r\n    /// @notice Submit data to be processed (not fully implemented in WTTP)\r\n    POST,\r\n    /// @notice Create or replace a resource\r\n    PUT,\r\n    /// @notice Update parts of a resource\r\n    PATCH,\r\n    /// @notice Remove a resource\r\n    DELETE,\r\n    /// @notice Query which methods are supported for a resource\r\n    OPTIONS,\r\n    /// @notice Retrieve storage locations for resource data points\r\n    LOCATE,\r\n    /// @notice Update resource headers\r\n    DEFINE\r\n}\r\n\r\n/// @title Cache Preset Enum\r\n/// @notice Defines preset cache control directives\r\n/// @dev Used for resource header management\r\nenum CachePreset {\r\n    /// @notice No cache control directives\r\n    NONE,\r\n    /// @notice Cache control directives for a resource that should not be cached\r\n    NO_CACHE,\r\n    /// @notice Cache control directives for a resource that should be cached\r\n    DEFAULT,\r\n    /// @notice Cache control directives for a resource that should be cached for a short time\r\n    SHORT,\r\n    /// @notice Cache control directives for a resource that should be cached for a medium time\r\n    MEDIUM,\r\n    /// @notice Cache control directives for a resource that should be cached for a long time\r\n    LONG,\r\n    /// @notice Cache control directives for a resource that should be cached indefinitely\r\n    PERMANENT\r\n}\r\n\r\n/// @title CORS Policy Presets for Common Use Cases\r\nenum CORSPreset {\r\n    /// @notice No CORS policy\r\n    NONE,           // 0: Use custom configuration only\r\n    /// @notice Public CORS policy\r\n    PUBLIC,         // 1: Wide open - any origin, basic methods\r\n    /// @notice Restricted CORS policy\r\n    RESTRICTED,     // 2: Same-origin only  \r\n    /// @notice API CORS policy\r\n    API,            // 3: Common API configuration\r\n    /// @notice Mixed access CORS policy\r\n    MIXED_ACCESS,   // 4: Public read, restricted write\r\n    /// @notice Private CORS policy\r\n    PRIVATE         // 5: Admin/role access only\r\n}\r\n\r\n// ============ Struct Definitions ============\r\n\r\n/// @title Cache Control Structure\r\n/// @notice Defines WTTP cache control directives\r\n/// @dev Maps to standard WTTP cache-control header fields\r\nstruct CacheControl {\r\n    /// @notice Indicates resource will never change\r\n    bool immutableFlag;\r\n    /// @notice Cache control preset for the client\r\n    CachePreset preset;\r\n    /// @notice Cache control directives for the client, stored as comma separated string eg. \"Max-Age=3600, No-Cache\"\r\n    /// @dev preset should be NONE if custom is set or it may cause undesired behavior\r\n    string custom;\r\n}\r\n/// @title CORS Policy Structure\r\n/// @notice Defines CORS policy for a resource\r\n/// @dev Used for resource header management\r\nstruct CORSPolicy {\r\n    /// @notice Bitmask of allowed methods\r\n    uint16 methods;\r\n    /// @notice Array of access policies for the resource\r\n    /// @dev Each policy is a role identifier use Method enum as index\r\n    bytes32[] origins;\r\n    /// @notice CORS policy preset for the resource\r\n    CORSPreset preset;\r\n    /// @notice String for client side CORS verification\r\n    string custom;\r\n}\r\n/// @title Redirect Structure\r\n/// @notice Defines WTTP redirect information\r\n/// @dev Maps to standard WTTP redirect response\r\nstruct Redirect {\r\n    /// @notice WTTP status code for redirect (3xx)\r\n    uint16 code;\r\n    /// @notice Target location for redirect in URL format\r\n    string location; \r\n}\r\n\r\n/// @title Header Information Structure\r\n/// @notice Combines all WTTP header related information\r\n/// @dev Used for resource header management\r\nstruct HeaderInfo {\r\n    /// @notice Cache control directives, using CachePreset enum with custom directives if needed\r\n    CacheControl cache;\r\n    /// @notice CORS policy for the resource\r\n    CORSPolicy cors;\r\n    /// @notice Redirect information if applicable\r\n    Redirect redirect;\r\n}\r\n\r\nstruct ResourceProperties {\r\n    /// @notice MIME type of the resource (2-byte identifier)\r\n    bytes2 mimeType;\r\n    /// @notice Character set of the resource (2-byte identifier)\r\n    bytes2 charset;\r\n    /// @notice Encoding of the resource (2-byte identifier)\r\n    bytes2 encoding;\r\n    /// @notice Language of the resource (2-byte identifier)\r\n    bytes2 language;\r\n}\r\n\r\n/// @title Resource Metadata Structure\r\n/// @notice Stores metadata about web resources\r\n/// @dev Used to track resource properties and modifications\r\nstruct ResourceMetadata {\r\n    /// @notice Resource properties\r\n    ResourceProperties properties;\r\n    /// @notice Size of the resource in bytes\r\n    uint256 size;\r\n    /// @notice Version number of the resource\r\n    uint256 version;\r\n    /// @notice Timestamp of last modification\r\n    uint256 lastModified;\r\n    /// @notice Header identifier determining which header the resource uses\r\n    bytes32 header;\r\n}\r\n\r\n/// @title Data Registration Structure\r\n/// @notice Contains data for registering a resource chunk\r\n/// @dev Used for PUT and PATCH operations\r\nstruct DataRegistration {\r\n    /// @notice The actual content data\r\n    bytes data;\r\n    /// @notice Index position in the resource's chunk array\r\n    uint256 chunkIndex;\r\n    /// @notice Address of the content publisher\r\n    address publisher;\r\n}\r\n\r\n// ============ Helper Functions ============\r\n\r\n// Method Bitmask Converter\r\n// Converts array of methods to a bitmask representation\r\n// Used for efficient method permission storage (1 bit per method)\r\n// methods Array of WTTP methods to convert\r\n// uint16 Bitmask representing allowed methods\r\nfunction methodsToMask(Method[] memory methods) pure returns (uint16) {\r\n    uint16 mask = 0;\r\n    for (uint i = 0; i < methods.length; i++) {\r\n        mask |= uint16(1 << uint8(methods[i]));\r\n    }\r\n    return mask;\r\n}\r\n\r\n// Header Address Calculator\r\n// Calculates a unique address for a header\r\n// Uses keccak256 hash of encoded header information\r\n// _header The header information \r\n// bytes32 The calculated header address\r\nfunction getHeaderAddress(HeaderInfo memory _header) pure returns (bytes32) {\r\n    return keccak256(abi.encode(_header));\r\n}\r\n\r\n// ============ WTTP Site Contract ============\r\n\r\n/// @notice The URI and Query structs are intended for future use\r\n\r\n/// @title Query Structure\r\n/// @notice Represents a key-value pair in a URI query string\r\n/// @dev Used for parsing and processing query parameters\r\n// struct Query {\r\n//     /// @notice The key part of the query parameter\r\n//     string key;\r\n//     /// @notice The value part of the query parameter\r\n//     string value;\r\n// }\r\n// /// @title URI Structure\r\n// /// @notice Represents a Uniform Resource Identifier\r\n// /// @dev Used for parsing and processing URIs\r\n// struct URI {\r\n//     /// @notice The path part of the URI\r\n//     string path;\r\n//     /// @notice The query parameters of the URI\r\n//     Query[] query;\r\n//     /// @notice The fragment part of the URI\r\n//     string fragment;\r\n// }\r\n\r\n// OPTIONSRequest is just a path string\r\n\r\n/// @title OPTIONS Response Structure\r\n/// @notice Contains response data for OPTIONS requests\r\n/// @dev Includes bitmask of allowed methods\r\nstruct OPTIONSResponse {\r\n    /// @notice Response status code\r\n    uint16 status;\r\n    /// @notice Bitmask of allowed methods\r\n    uint16 allow;\r\n}\r\n\r\n/// @title HEAD Request Structure\r\n/// @notice Contains request data for HEAD requests\r\n/// @dev Includes conditional request headers\r\nstruct HEADRequest {\r\n    /// @notice Resource path to request\r\n    string path;\r\n    /// @notice Conditional timestamp for If-Modified-Since header\r\n    uint256 ifModifiedSince;\r\n    /// @notice Conditional ETag for If-None-Match header\r\n    bytes32 ifNoneMatch;\r\n}\r\n\r\n/// @title HEAD Response Structure\r\n/// @notice Contains metadata and header information for HEAD requests\r\n/// @dev Used as base response type for other methods\r\nstruct HEADResponse {\r\n    /// @notice Response status code\r\n    uint16 status;\r\n    /// @notice Resource header information\r\n    HeaderInfo headerInfo;\r\n    /// @notice Resource metadata\r\n    ResourceMetadata metadata;\r\n    /// @notice Resource content hash for caching\r\n    bytes32 etag;\r\n}\r\n\r\n/// @title LOCATE Response Structure\r\n/// @notice Extended response for LOCATE requests\r\n/// @param head The base HEAD response\r\n/// @param dataPoints The array of data point addresses for content chunks\r\n/// @param totalChunks The total number of chunks in the resource\r\n/// @dev Includes storage addresses and data point locations\r\nstruct LOCATEResponse {\r\n    /// @notice Base HEAD response\r\n    HEADResponse head;\r\n    /// @notice Resource response\r\n    ResourceResponse resource;\r\n}\r\n\r\n/// @title PUT Request Structure\r\n/// @notice Contains data for creating or replacing resources\r\n/// @dev Includes metadata and content chunks\r\nstruct PUTRequest {\r\n    /// @notice Basic request information\r\n    HEADRequest head;\r\n    /// @notice Properties of the resource\r\n    ResourceProperties properties;\r\n    /// @notice Content chunks to store\r\n    DataRegistration[] data;\r\n}\r\n\r\n// PUTResponse is the same as LOCATEResponse\r\n\r\n/// @title PATCH Request Structure\r\n/// @notice Contains data for updating parts of resources\r\n/// @dev Includes content chunks to update\r\nstruct PATCHRequest {\r\n    /// @notice Basic request information\r\n    HEADRequest head;\r\n    /// @notice Content chunks to update\r\n    DataRegistration[] data;\r\n}\r\n\r\n// PATCHResponse is the same as LOCATEResponse\r\n\r\n/// @title DEFINE Request Structure\r\n/// @notice Contains data for updating resource headers\r\n/// @dev Includes new header information\r\nstruct DEFINERequest {\r\n    /// @notice Basic request information\r\n    HEADRequest head;\r\n    /// @notice New header information\r\n    HeaderInfo data;\r\n}\r\n\r\n/// @title DEFINE Response Structure\r\n/// @notice Contains response data for DEFINE requests\r\n/// @dev Includes the new header address\r\nstruct DEFINEResponse {\r\n    /// @notice Base HEAD response\r\n    HEADResponse head;\r\n    /// @notice New header address\r\n    bytes32 headerAddress;\r\n}\r\n\r\n// ETag Calculator\r\n// Calculates a unique content identifier for caching\r\n// Hashes the combination of metadata and data point addresses\r\n// _metadata Resource metadata\r\n// _dataPoints Array of data point addresses\r\n// bytes32 The calculated ETag\r\nfunction calculateEtag(\r\n    ResourceMetadata memory _metadata, \r\n    bytes32[] memory _dataPoints\r\n) pure returns (bytes32) {\r\n    return keccak256(abi.encode(_metadata, _dataPoints));\r\n}\r\n\r\n// ============ Gateway Contract ============\r\n/// @title Range Structure\r\n/// @notice Defines a range with start and end positions\r\n/// @dev Supports negative indices (counting from end)\r\nstruct Range {\r\n    /// @notice Start position (negative means from end)\r\n    int256 start;\r\n    /// @notice End position (negative means from end, 0 means to end)\r\n    int256 end;\r\n}\r\n\r\n/// @title LOCATE Request Structure\r\n/// @notice Extended request for LOCATE with chunk ranges\r\n/// @dev Allows requesting specific ranges of data point chunks\r\nstruct LOCATERequest {\r\n    /// @notice Basic request information\r\n    HEADRequest head;\r\n    /// @notice Range of chunks to locate\r\n    Range rangeChunks;\r\n}\r\n\r\nstruct DataPointSizes {\r\n    uint256[] sizes;\r\n    uint256 totalSize;\r\n}\r\n\r\nstruct ProcessedData {\r\n    bytes data;\r\n    DataPointSizes sizes;\r\n}\r\n\r\nstruct LOCATEResponseSecure {\r\n    LOCATEResponse locate;\r\n    DataPointSizes structure;\r\n}\r\n\r\n/// @title GET Request Structure\r\n/// @notice Extended request for GET with byte ranges\r\n/// @param locate The basic request information including path and conditional headers\r\n/// @param rangeBytes The range of bytes to retrieve\r\n/// @dev Allows requesting specific byte ranges of content\r\nstruct GETRequest {\r\n    /// @notice Basic request information\r\n    LOCATERequest locate;\r\n    /// @notice Range of bytes to retrieve\r\n    Range rangeBytes;\r\n}\r\n\r\n/// @title GET Response Structure\r\n/// @notice Contains response data for GET requests\r\n/// @dev Includes content data and metadata\r\nstruct GETResponse {\r\n    /// @notice Base HEAD response\r\n    HEADResponse head;\r\n    /// @notice Content data\r\n    ProcessedData body;\r\n}\r\n\r\n// ============ Constants ============\r\n\r\n// ============ Functions ============\r\nfunction maxMethods_() pure returns (uint16) {\r\n    return uint16(type(Method).max) + 1;\r\n}\r\n\r\n/// @notice Normalizes an int256 range to be within the total length and positive\r\n/// automatically normalizes 0,0 to 0,totalLength\r\n/// @param range The range to normalize\r\n/// @param totalLength The total length of the resource\r\n/// @return The normalized range\r\nfunction normalizeRange_(\r\n    Range memory range, \r\n    uint256 totalLength\r\n) pure returns (Range memory) {\r\n    int256 _length = int256(totalLength);\r\n\r\n    // if range is -1, 0 treat as 0,0, since 0, 0 is treated as full range\r\n    if (range.start == -1 && range.end == 0) {\r\n        range.start = 0;\r\n        range.end = 0;\r\n        return range;\r\n    }\r\n\r\n    // if the range is 0,0, set the end to the last index for full range\r\n    if (range.end == 0 && range.start == 0) {\r\n        range.end = _length - 1;\r\n        return range;\r\n    }\r\n\r\n    if (range.start < 0) {\r\n        // start range is negative, reference from the end of the range\r\n        range.start = _length - 1 + range.start;\r\n    }\r\n    // start should now be positive if the range wasn't out of bounds\r\n\r\n    if (range.end < 0) {\r\n        // end range is negative, reference from the end of the range\r\n        range.end = _length - 1 + range.end;\r\n    }\r\n    // end should now be positive if the range wasn't out of bounds\r\n\r\n    if (range.start > range.end + 1 || range.start < 0 || range.end > _length) {\r\n        // +1 allows for a 0 length range: (5,4) would be valid but (6,4) is not\r\n        revert _416(\"Out of Bounds\", range, _length);\r\n    }\r\n\r\n    return range;\r\n} \r\n\r\nfunction contentCode_(uint256 resourceSize, uint256 requestedSize) pure returns (uint16) {\r\n    if (requestedSize == 0) {\r\n        return 204;\r\n    }\r\n    if (requestedSize == resourceSize) {\r\n        return 200;\r\n    }\r\n    return 206;\r\n}\r\n\r\n/// @notice Emitted when a DEFINE request is successful\r\n/// @param account The account or contract that made the request\r\n/// @param response The response data\r\nevent DEFINESuccess(address indexed account, DEFINEResponse response);\r\n\r\n/// @notice Emitted when a PUT request is successful\r\n/// @param account The account or contract that made the request\r\n/// @param response The response data\r\nevent PUTSuccess(address indexed account, LOCATEResponse response);\r\n\r\n/// @notice Emitted when a PATCH request is successful\r\n/// @param account The account or contract that made the request\r\n/// @param response The response data\r\nevent PATCHSuccess(address indexed account, LOCATEResponse response);\r\n\r\n/// @notice Emitted when a DELETE request is successful\r\n/// @param account The account or contract that made the request\r\n/// @param response The response data\r\nevent DELETESuccess(address indexed account, HEADResponse response);"},"contracts/BaseWTTPPermissions.sol":{"content":"/*\r\n * Web3 Transfer Protocol (WTTP) - BaseWTTPPermissions Contract\r\n * Copyright (C) 2025 TechnicallyWeb3\r\n * \r\n * This program is free software: you can redistribute it and/or modify\r\n * it under the terms of the GNU Affero General Public License as published\r\n * by the Free Software Foundation, either version 3 of the License, or\r\n * (at your option) any later version.\r\n * \r\n * This program is distributed in the hope that it will be useful,\r\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n * GNU Affero General Public License for more details.\r\n * \r\n * You should have received a copy of the GNU Affero General Public License\r\n * along with this program. If not, see <https://www.gnu.org/licenses/>.\r\n */\r\n\r\n// SPDX-License-Identifier: AGPL-3.0\r\npragma solidity ^0.8.20;\r\n\r\nimport \"@openzeppelin/contracts/access/AccessControl.sol\";\r\nimport \"@wttp/core/contracts/types/WTTPTypes.sol\";\r\n\r\n/// @title WTTP Permissions Contract\r\n/// @author Web3 Transfer Protocol (WTTP) Development Team\r\n/// @notice Manages role-based access control for the WTTP protocol\r\n/// @dev Extends OpenZeppelin's AccessControl with site-specific roles and custom permission logic\r\nabstract contract BaseWTTPPermissions is AccessControl { \r\n\r\n    /// @notice Role identifier for site administrators\r\n    /// @dev Calculated via keccak256 during construction. Site admins have elevated privileges but below the DEFAULT_ADMIN_ROLE\r\n    bytes32 internal SITE_ADMIN_ROLE;\r\n    bytes32 internal constant PUBLIC_ROLE = bytes32(uint256(type(uint256).max));\r\n    bytes32 internal constant BLACKLIST_ROLE = keccak256(\"BLACKLIST_ROLE\");\r\n\r\n    /// @notice Sets up initial roles and permissions\r\n    /// @dev Creates the SITE_ADMIN_ROLE and establishes DEFAULT_ADMIN_ROLE as its admin\r\n    /// @param _owner Address of the contract owner who receives the DEFAULT_ADMIN_ROLE\r\n    constructor(address _owner) {\r\n        SITE_ADMIN_ROLE = keccak256(\"SITE_ADMIN_ROLE\");\r\n        _grantRole(DEFAULT_ADMIN_ROLE, _owner);\r\n        _setRoleAdmin(SITE_ADMIN_ROLE, DEFAULT_ADMIN_ROLE);\r\n    }\r\n\r\n    /// @notice Check if an account has a specific role\r\n    /// @dev Overrides the standard AccessControl implementation to grant DEFAULT_ADMIN_ROLE holders access to all roles\r\n    /// @param role The role identifier to check\r\n    /// @param account The address to check for the role\r\n    /// @return bool True if the account has the role or is a DEFAULT_ADMIN_ROLE holder\r\n    function hasRole(bytes32 role, address account) public view override virtual returns (bool) {\r\n        // If the account is a DEFAULT_ADMIN_ROLE holder, they have access to all roles.\r\n        if (super.hasRole(DEFAULT_ADMIN_ROLE, account)) {\r\n            return true;\r\n        }\r\n\r\n        if (role == PUBLIC_ROLE) {\r\n            return !super.hasRole(BLACKLIST_ROLE, account);\r\n        }\r\n\r\n        return super.hasRole(role, account);\r\n    }\r\n\r\n    // to include or not to include, that is the question...\r\n    // do we restrict this or should the implementation decide?\r\n    // this means we can only have 1 DEFAULT_ADMIN... you know what\r\n    // we should probably just remove this, it's not really needed\r\n    // function grantRole(bytes32 role, address account) public override virtual {\r\n    //     if(role == DEFAULT_ADMIN_ROLE) {\r\n    //         revert InvalidRole(role);\r\n    //     }\r\n    //     super.grantRole(role, account);\r\n    // }\r\n\r\n    // function changeDefaultAdmin(address newAdmin) public virtual onlyRole(DEFAULT_ADMIN_ROLE) {\r\n    //     _grantRole(DEFAULT_ADMIN_ROLE, newAdmin);\r\n    //     _revokeRole(DEFAULT_ADMIN_ROLE, msg.sender);\r\n    //     // already emits granted and revoked events\r\n    // }\r\n\r\n    /// @notice Modifier to prevent certain actions on admin roles\r\n    /// @dev Used to prevent modification of privileged roles\r\n    /// @param role The role identifier to check\r\n    modifier notAdminRole(bytes32 role) {\r\n        if(\r\n            role == SITE_ADMIN_ROLE || \r\n            role == DEFAULT_ADMIN_ROLE\r\n        ) {\r\n            revert InvalidRole(role);\r\n        }\r\n        _;\r\n    }\r\n\r\n    modifier notPublicRole(bytes32 role) {\r\n        if(\r\n            role == PUBLIC_ROLE || \r\n            role == BLACKLIST_ROLE\r\n        ) {\r\n            revert InvalidRole(role);\r\n        }\r\n        _;\r\n    }\r\n       \r\n    /// @notice Creates a new resource-specific admin role\r\n    /// @dev Sets the SITE_ADMIN_ROLE as the admin of the new role, preventing creation of privileged roles\r\n    /// @param _role The new role identifier to create\r\n    function createResourceRole(bytes32 _role) external \r\n    onlyRole(SITE_ADMIN_ROLE) notAdminRole(_role) notPublicRole(_role) {\r\n        _setRoleAdmin(_role, SITE_ADMIN_ROLE);\r\n        emit ResourceRoleCreated(_role);\r\n    }\r\n\r\n    /// @notice Changes the SITE_ADMIN_ROLE identifier\r\n    /// @dev Allows wiping all current site admin permissions by changing the role hash\r\n    /// @param _newSiteAdmin The new role identifier to use for site administrators\r\n    function changeSiteAdmin(bytes32 _newSiteAdmin) external onlyRole(DEFAULT_ADMIN_ROLE) {\r\n        bytes32 oldSiteAdmin = SITE_ADMIN_ROLE;\r\n        SITE_ADMIN_ROLE = _newSiteAdmin;\r\n        emit SiteAdminChanged(oldSiteAdmin, SITE_ADMIN_ROLE);\r\n    }\r\n\r\n    function getSiteAdminRole() external view returns (bytes32) {\r\n        return SITE_ADMIN_ROLE;\r\n    }\r\n    \r\n}"},"contracts/BaseWTTPSite.sol":{"content":"/*\r\n * Web3 Transfer Protocol (WTTP) - BaseWTTPSite Contract\r\n * Copyright (C) 2025 TechnicallyWeb3\r\n * \r\n * This program is free software: you can redistribute it and/or modify\r\n * it under the terms of the GNU Affero General Public License as published\r\n * by the Free Software Foundation, either version 3 of the License, or\r\n * (at your option) any later version.\r\n * \r\n * This program is distributed in the hope that it will be useful,\r\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n * GNU Affero General Public License for more details.\r\n * \r\n * You should have received a copy of the GNU Affero General Public License\r\n * along with this program. If not, see <https://www.gnu.org/licenses/>.\r\n */\r\n\r\n// SPDX-License-Identifier: AGPL-3.0\r\npragma solidity ^0.8.20;\r\n\r\nimport \"./BaseWTTPStorage.sol\";\r\nimport \"./BaseWTTPPermissions.sol\";\r\n\r\n/// @title WTTP Base Site Contract\r\n/// @author Web3 Transfer Protocol (WTTP) Development Team\r\n/// @notice Implements core WTTP protocol methods for HTTP-like operations on blockchain\r\n/// @dev Extends WTTPBaseStorage to provide web-like interactions with blockchain resources\r\nabstract contract BaseWTTPSite is BaseWTTPPermissions, BaseWTTPStorage {\r\n\r\n    constructor(\r\n        address _owner,\r\n        address _dpr,\r\n        HeaderInfo memory _defaultHeader\r\n    ) BaseWTTPStorage(_dpr) BaseWTTPPermissions(_owner) {\r\n        _setDefaultHeader(_defaultHeader);\r\n    }\r\n\r\n    // optional, wait till contract size is reduced\r\n    // /// @notice Sets the default header for the site\r\n    // /// @dev Sets the default header for the site\r\n    // /// @param _defaultHeader The default header to set\r\n    // function setDefaultHeader(HeaderInfo memory _defaultHeader) external virtual {\r\n    //     _setDefaultHeader(_defaultHeader);\r\n    // }\r\n\r\n    // internal functions\r\n    /// @notice Determines if a method is allowed for a specific resource\r\n    /// @dev Considers method type, user role, and resource permissions\r\n    /// @param _path Resource path to check\r\n    /// @param _method Method type being requested\r\n    /// @return bool True if the method is allowed\r\n    function _methodAllowed(\r\n        string memory _path, \r\n        Method _method\r\n    ) internal view virtual returns (bool) {\r\n        // super admins can do anything, needed to fix potential site bricking issues\r\n        if (hasRole(DEFAULT_ADMIN_ROLE, msg.sender)) {\r\n            return true;\r\n        }\r\n        \r\n        return _readHeader(_path).cors.methods & uint16(1 << uint8(_method)) != 0;\r\n    }\r\n\r\n    /// @notice Retrieves the resource admin role for a specific path\r\n    /// @dev Reads from the resource's header to get admin role identifier\r\n    /// @param _path Resource path to check\r\n    /// @return bytes32 The resource admin role identifier\r\n    function _getAuthorizedRole(\r\n        string memory _path, \r\n        Method _method\r\n    ) internal view virtual returns (bytes32) {\r\n        bytes32[] memory _origins = _readHeader(_path).cors.origins;\r\n        if (_origins.length == 0) {\r\n            return DEFAULT_ADMIN_ROLE; // default to site admin if no origins are set\r\n        }\r\n        return _origins[uint256(_method)];\r\n    }\r\n\r\n    /// @notice Checks if an account has admin rights for a specific resource\r\n    /// @dev Account has access if they are site admin, resource admin, or the resource allows public access\r\n    /// @param _path Resource path to check\r\n    /// @param _account Account address to verify\r\n    /// @return bool True if the account has admin rights\r\n    function _isAuthorized(\r\n        string memory _path, \r\n        Method _method, \r\n        address _account\r\n    ) internal view virtual returns (bool) {\r\n        bytes32 _authorizedRole = _getAuthorizedRole(_path, _method);\r\n        return hasRole(_authorizedRole, _account);\r\n    }\r\n\r\n    /// @notice Checks if a resource exists\r\n    /// @dev Returns true if the resource has at least one data point\r\n    /// @param _path Path of the resource to check\r\n    /// @return True if the resource exists, false otherwise\r\n    function _resourceExists(string memory _path) internal view virtual returns (bool) {\r\n        return _readMetadata(_path).lastModified > 0;\r\n    }\r\n\r\n    function _isImmutable(string memory _path) internal view virtual returns (bool) {\r\n        return _readHeader(_path).cache.immutableFlag && _readMetadata(_path).version > 0;\r\n    }\r\n\r\n    /// @notice Restricts function access to resource administrators\r\n    /// @dev Reverts with Forbidden error if caller lacks appropriate permissions\r\n    /// @param _path Resource path being accessed\r\n    modifier onlyAuthorized(string memory _path, Method _method) {\r\n        if (!_methodAllowed(_path, _method)) {\r\n            revert _405(\"Method Not Allowed\", _readHeader(_path).cors.methods, _readHeader(_path).cache.immutableFlag);\r\n        }\r\n\r\n        if (_isImmutable(_path)) {\r\n            revert _405(\"Resource Immutable\", _readHeader(_path).cors.methods, true);\r\n        }\r\n\r\n        if (!(\r\n            _method == Method.PUT || \r\n            _method == Method.DEFINE || \r\n            _method == Method.OPTIONS\r\n        ) && !_resourceExists(_path)) {\r\n            // PUT, DEFINE, and OPTIONS are allowed on non-existent resources\r\n            // client can change to 410 if the resource is immutable\r\n            revert _404(\"Not Found\", _readHeader(_path).cache.immutableFlag);\r\n        }\r\n        if (!_isAuthorized(_path, _method, msg.sender)) {\r\n            revert _403(\"Forbidden\", _getAuthorizedRole(_path, _method));\r\n        }\r\n        _;\r\n    }\r\n\r\n    \r\n    function _getDataPoints(\r\n        DataRegistration[] memory _data\r\n    ) internal view virtual returns (bytes32[] memory _dataPoints) {\r\n        uint256 _dataLength = _data.length;\r\n        _dataPoints = new bytes32[](_dataLength);\r\n        for (uint256 i = 0; i < _dataLength; i++) {\r\n            _dataPoints[i] = DPS().calculateAddress(_data[i].data);\r\n        }\r\n    }\r\n\r\n    /// @notice Internal implementation of OPTIONS method\r\n    /// @dev Checks protocol version and method permissions\r\n    /// @param _path Resource path to check\r\n    /// @param _method Method type being requested from the public function\r\n    /// @return optionsResponse Response with allowed methods or error code\r\n    function _OPTIONS(\r\n        string memory _path,\r\n        Method _method\r\n    ) internal view virtual \r\n    onlyAuthorized(_path, _method) returns (OPTIONSResponse memory optionsResponse) {\r\n        if (_method == Method.OPTIONS) {\r\n            optionsResponse = OPTIONSResponse({\r\n                status: 204,\r\n                allow: _readHeader(_path).cors.methods\r\n            });\r\n        }\r\n        \r\n    }\r\n\r\n    /// @notice Handles OPTIONS requests to check available methods\r\n    /// @dev External interface for _OPTIONS with method enforcement\r\n    /// @param _path Resource path to check\r\n    /// @return optionsResponse Response with allowed methods info\r\n    function OPTIONS(\r\n        string memory _path\r\n    ) external view returns (OPTIONSResponse memory optionsResponse) {\r\n        return _OPTIONS(_path, Method.OPTIONS);\r\n    }\r\n\r\n    /// @notice Internal implementation of HEAD method\r\n    /// @dev Retrieves metadata without content, handles caching and redirects\r\n    /// @param headRequest Request details including conditional headers\r\n    /// @return headResponse Response with metadata and status code\r\n    function _HEAD(\r\n        HEADRequest memory headRequest,\r\n        Method _method\r\n    ) internal view returns (HEADResponse memory headResponse) {\r\n        string memory _path = headRequest.path;\r\n        _OPTIONS(_path, _method); // acts as a check\r\n        ResourceMetadata memory _metadata = _readMetadata(_path);\r\n        HeaderInfo memory _headerInfo = _readHeader(_path);\r\n        bytes32 _etag = calculateEtag(_metadata, _readResource(_path, Range(0, 0)).dataPoints);\r\n        uint16 _status = 500; // Internal Server Error\r\n        if (\r\n            _etag == headRequest.ifNoneMatch ||\r\n            (_metadata.lastModified <= headRequest.ifModifiedSince && \r\n            _metadata.lastModified > 0)\r\n        ) {\r\n            _status = 304; // Not Modified\r\n        } else if (_headerInfo.redirect.code != 0) {\r\n            _status = _headerInfo.redirect.code;\r\n        } else if (_method == Method.HEAD) {\r\n            uint256 _resourceSize = _resourceDataPoints(_path);\r\n            _status = contentCode_(_resourceSize, _resourceSize); \r\n            // 200 or 204 only, 206 not possible on HEAD since ranged HEAD requests are not supported\r\n        }\r\n\r\n        headResponse = HEADResponse({\r\n            status: _status,\r\n            metadata: _metadata,\r\n            headerInfo: _headerInfo,\r\n            etag: _etag\r\n        });\r\n    }\r\n\r\n    /// @notice Handles WTTP HEAD requests for metadata\r\n    /// @dev External interface for _HEAD with method enforcement\r\n    /// @param headRequest Request information including conditional headers\r\n    /// @return head Response with header and metadata information\r\n    function HEAD(HEADRequest memory headRequest) external view returns (HEADResponse memory head) {\r\n        head = _HEAD(headRequest, Method.HEAD);\r\n    }\r\n\r\n    /// @notice Internal implementation of LOCATE method\r\n    /// @dev Extends HEAD to include data point addresses\r\n    /// @param getRequest Request details\r\n    /// @return getResponse Response with metadata and data point locations\r\n    function _GET(\r\n        LOCATERequest memory getRequest,\r\n        Method _method\r\n    ) internal view returns (LOCATEResponse memory getResponse) {\r\n        string memory _path = getRequest.head.path;\r\n        HEADResponse memory _head = _HEAD(getRequest.head, _method); // includes error check\r\n        \r\n        // design choice, do we allow content to be returned even if the resource is not found?\r\n        // if so all we need to do is add this datapoint to the 500 code check. \r\n        ResourceResponse memory _resource = _readResource(_path, getRequest.rangeChunks);\r\n        getResponse.resource = _resource;\r\n\r\n        if (_head.status == 500) {\r\n            _head.status = contentCode_(\r\n                _resource.dataPoints.length, \r\n                _resource.totalChunks\r\n            );\r\n        }\r\n\r\n        getResponse.head = _head;\r\n    }\r\n\r\n    /// @notice Handles GET requests to retrieve resource content locations\r\n    /// @param getRequest Request information\r\n    /// @return getResponse Response containing resource and storage locations\r\n    function GET(\r\n        LOCATERequest memory getRequest\r\n    ) external view returns (LOCATEResponse memory getResponse) {\r\n        return _GET(getRequest, Method.GET);\r\n    }\r\n\r\n    /// @notice Handles DEFINE requests to update resource headers\r\n    /// @dev Only accessible to resource administrators, creates header if needed\r\n    /// @param defineRequest Request information with new header data\r\n    /// @return defineResponse Response containing updated header information\r\n    function DEFINE(\r\n        DEFINERequest memory defineRequest\r\n    ) external returns (DEFINEResponse memory defineResponse) {\r\n        string memory _path = defineRequest.head.path;\r\n        _OPTIONS(_path, Method.DEFINE); // acts as a check\r\n\r\n        bytes32 _headerAddress = _createHeader(defineRequest.data);\r\n        _updateMetadata(_path, ResourceMetadata({\r\n            properties: _readMetadata(_path).properties, // preserve properties\r\n            size: 0, // calculated during update\r\n            version: 0, // calculated during update\r\n            lastModified: 0, // calculated during update\r\n            header: _headerAddress\r\n        }));\r\n\r\n        ResourceMetadata memory _metadata = _readMetadata(_path);\r\n        bytes32[] memory _dataPoints = _readResource(_path, Range(0, 0)).dataPoints;\r\n\r\n        defineResponse = DEFINEResponse({\r\n            head: HEADResponse({\r\n                status: 200,\r\n                metadata: _metadata,\r\n                headerInfo: _readHeader(_path),\r\n                etag: calculateEtag(_metadata, _dataPoints)\r\n            }),\r\n            headerAddress: _headerAddress\r\n        });\r\n\r\n        emit DEFINESuccess(msg.sender, defineResponse);\r\n    }\r\n\r\n    /// @notice Handles DELETE requests to remove resources\r\n    /// @dev Only accessible to resource administrators, checks resource mutability\r\n    /// @param deleteRequest Request information\r\n    /// @return deleteResponse Response confirming deletion\r\n    function DELETE(\r\n        HEADRequest memory deleteRequest\r\n    ) external returns (HEADResponse memory deleteResponse) {\r\n        string memory _path = deleteRequest.path;\r\n        _OPTIONS(_path, Method.DELETE); // acts as a check\r\n        _deleteResource(_path);\r\n        ResourceMetadata memory _metadata = _readMetadata(_path);\r\n\r\n        deleteResponse = HEADResponse({\r\n            status: 204,\r\n            metadata: _metadata,\r\n            headerInfo: _readHeader(_path),\r\n            etag: calculateEtag(_metadata, new bytes32[](0)) // empty array since deleted\r\n        });\r\n\r\n        emit DELETESuccess(msg.sender, deleteResponse);\r\n    }\r\n\r\n    /// @notice Handles PUT requests to create new resources\r\n    /// @dev Only accessible to resource administrators, transfers any excess payment back\r\n    /// @param putRequest Request information including content data\r\n    /// @return putResponse Response containing created resource information\r\n    function PUT(\r\n        PUTRequest memory putRequest\r\n    ) external payable returns (LOCATEResponse memory putResponse) {\r\n        string memory _path = putRequest.head.path;\r\n        _OPTIONS(_path, Method.PUT); // error check\r\n        DataRegistration[] memory _data = putRequest.data;\r\n        uint16 _status = 500; // Internal Server Error\r\n        bool resourceExisted = _resourceExists(_path);\r\n        bytes32 _headerAddress = _readMetadata(_path).header;\r\n        if (resourceExisted) _deleteResource(_path); // delete any existing resource\r\n        if (putRequest.data.length > 0) {\r\n            _uploadResource(_path, _data);\r\n            _status = resourceExisted ? 200 : 201; // OK for updates, Created for new resources\r\n        } else {\r\n            _status = 204; // No Content\r\n        }\r\n        _updateMetadata(\r\n            _path, \r\n            ResourceMetadata({\r\n                properties: putRequest.properties,\r\n                size: 0, // calculated during upload\r\n                version: 0, // calculated during upload\r\n                lastModified: 0, // calculated during upload\r\n                header: _headerAddress // preserve header\r\n            })\r\n        );\r\n\r\n        ResourceMetadata memory _metadata = _readMetadata(_path);\r\n        bytes32[] memory _dataPoints = _getDataPoints(_data);\r\n\r\n        putResponse.head = HEADResponse({\r\n            status: _status,\r\n            metadata: _metadata, // use updated metadata\r\n            headerInfo: _readHeader(_path),\r\n            etag: calculateEtag(_metadata, _dataPoints)\r\n        });\r\n        putResponse.resource = ResourceResponse({\r\n            dataPoints: _dataPoints,\r\n            totalChunks: _data.length\r\n        });\r\n\r\n        emit PUTSuccess(msg.sender, putResponse);\r\n    }\r\n\r\n    /// @notice Handles PATCH requests to update existing resources\r\n    /// @dev Only accessible to resource administrators, checks resource mutability\r\n    /// @param patchRequest Request information including update data\r\n    /// @return patchResponse Response containing updated resource information\r\n    function PATCH(\r\n        PATCHRequest memory patchRequest\r\n    ) external payable returns (LOCATEResponse memory patchResponse) {\r\n        string memory _path = patchRequest.head.path;\r\n        _OPTIONS(_path, Method.PATCH);\r\n        DataRegistration[] memory _data = patchRequest.data;\r\n\r\n        bytes32[] memory _dataPoints = _uploadResource(\r\n            _path, \r\n            _data\r\n        );\r\n\r\n        patchResponse.head = _HEAD(patchRequest.head, Method.PATCH);\r\n        patchResponse.head.status = contentCode_(_dataPoints.length, _resourceDataPoints(_path));\r\n        patchResponse.resource = ResourceResponse({\r\n            dataPoints: _dataPoints,\r\n            totalChunks: _resourceDataPoints(_path)\r\n        });\r\n\r\n        emit PATCHSuccess(msg.sender, patchResponse);\r\n    }\r\n}"},"contracts/BaseWTTPStorage.sol":{"content":"/*\r\n * Web3 Transfer Protocol (WTTP) - WTTPStorage Contract\r\n * Copyright (C) 2025 TechnicallyWeb3\r\n * \r\n * This program is free software: you can redistribute it and/or modify\r\n * it under the terms of the GNU Affero General Public License as published\r\n * by the Free Software Foundation, either version 3 of the License, or\r\n * (at your option) any later version.\r\n * \r\n * This program is distributed in the hope that it will be useful,\r\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n * GNU Affero General Public License for more details.\r\n * \r\n * You should have received a copy of the GNU Affero General Public License\r\n * along with this program. If not, see <https://www.gnu.org/licenses/>.\r\n */\r\n\r\n// SPDX-License-Identifier: AGPL-3.0\r\npragma solidity ^0.8.20;\r\n\r\nimport \"@wttp/core/contracts/types/WTTPTypes.sol\";\r\n\r\n/// @title WTTP Base Storage Contract\r\n/// @author Web3 Transfer Protocol (WTTP) Development Team\r\n/// @notice Manages web resource storage and access control\r\n/// @dev Core storage functionality for the WTTP protocol\r\n///      Resources are stored as chunks of data points with associated metadata and headers\r\nabstract contract BaseWTTPStorage {\r\n\r\n    /// @notice Empty header structure for initialization and reset operations\r\n    HeaderInfo zeroHeader;\r\n\r\n    /// @notice Empty metadata structure for initialization and reset operations\r\n    ResourceMetadata zeroMetadata;\r\n    // can't be put into the WTTPTypes since it's not a constant and constants don't support structs\r\n\r\n\r\n    /// @notice Initializes the storage contract with core dependencies and defaults\r\n    /// @dev Sets up the data point registry and default header\r\n    /// @param _dpr Address of the Data Point Registry contract\r\n    constructor(\r\n        address _dpr\r\n    ) {\r\n        DPR_ = IDataPointRegistry(_dpr);\r\n        // DPR_.DPS().VERSION(); // this will revert if the DPS is not deployed\r\n    }\r\n\r\n    /// @notice Reference to the Data Point Registry contract\r\n    /// @dev Used to register data points and access the Data Point Storage\r\n    IDataPointRegistry private DPR_;\r\n\r\n    /// @return IDataPointStorage The Data Point Storage contract\r\n    function DPS() public view virtual returns (IDataPointStorage) {\r\n        return DPR_.DPS();\r\n    }\r\n\r\n    /// @notice Returns the Data Point Registry contract instance\r\n    /// @dev Provides external access to the internal DPR_ reference\r\n    /// @return IDataPointRegistry The Data Point Registry contract\r\n    function DPR() public view virtual returns (IDataPointRegistry) {\r\n        return DPR_;\r\n    }\r\n\r\n    /// @notice Maps header identifiers to header information\r\n    /// @dev Headers contain HTTP-like metadata and access control settings\r\n    mapping(bytes32 header => HeaderInfo) private header;\r\n    \r\n    /// @notice Maps resource paths to their metadata\r\n    /// @dev Metadata includes size, version, timestamps, and header reference\r\n    mapping(string path => ResourceMetadata) private metadata;\r\n    \r\n    /// @notice Maps resource paths to arrays of data point addresses\r\n    /// @dev Each resource is stored as a sequence of data point chunks\r\n    mapping(string path => bytes32[]) private resource;\r\n\r\n    // ========== Internal CRUD functions ==========\r\n    \r\n    // ===== Header operations =====\r\n    \r\n    /// @notice Creates a new header in storage\r\n    /// @dev Only creates if header doesn't already exist (methods == 0)\r\n    /// @param _header The header information to store\r\n    /// @return headerAddress The unique identifier for the stored header\r\n    function _createHeader(\r\n        HeaderInfo memory _header\r\n    ) internal virtual returns (bytes32 headerAddress) {\r\n        headerAddress = getHeaderAddress(_header);\r\n        _updateHeader(headerAddress, _header);\r\n        emit HeaderCreated(headerAddress);\r\n    }\r\n\r\n    /// @notice Retrieves header information by its address\r\n    /// @dev Internal view function to access header mapping\r\n    /// @param _path The path of the resource\r\n    /// @return HeaderInfo The header information\r\n    function _readHeader(\r\n        string memory _path\r\n    ) internal virtual view returns (HeaderInfo memory) {\r\n        return header[_readMetadata(_path).header];\r\n    }\r\n\r\n    function _updateHeader(bytes32 _headerAddress, HeaderInfo memory _header) internal virtual {\r\n        // Should we apply the same policy of least privilege here as mentioned below?\r\n        // We need to enable OPTIONS, HEAD and GET. Any methods not defined can still be called\r\n        // by the super admin. So making OPTIONS, GET and HEAD available is the minimum\r\n        // requirement... Wait, what if they actually want no public methods? Should we force OPTIONS\r\n        // on as a minimum requirement? No, we should allow the developer to choose. So we should\r\n        // remove this check completely and let the developer decide what methods to allow. This means\r\n        // only they, as super admin, can call all the methods, but until they update the header,\r\n        // the public will always get a _405(\"Method Not Allowed\", methods: 0, immutable: false) error.\r\n\r\n        // if (_header.cors.methods == 0) {\r\n        //     _header.cors.methods = MAX_METHODS;\r\n        // } else if (_header.cors.methods > MAX_METHODS) {\r\n        //     revert InvalidHeader(_header);\r\n        // }\r\n        // Should we be more specific and restrictive here?\r\n        // We currently allow anyone in the public to access every method.\r\n        // This means public can PUT, PATCH, DELETE any resource they want.\r\n        // We should include the public role for OPTIONS, HEAD, GET by default but restrict \r\n        // the POST, PUT, PATCH, DEFINE and DELETE methods to the super admin only.\r\n        // This follows the policy of least privilege as we should.\r\n\r\n        // must check redirect code to prevent fake status code injection\r\n        uint16 _redirectCode = _header.redirect.code;\r\n        if (_redirectCode !=0 && (_redirectCode < 300 || _redirectCode > 310)) {\r\n            revert InvalidHeader(_header);\r\n        }\r\n\r\n        // removed automated building of empty origins array to cut bulk\r\n\r\n        uint8 _origins = uint8(_header.cors.origins.length);\r\n        if (_origins != maxMethods_()) {\r\n            // needed since origins must exactly match the number of methods,\r\n            // using role bytes32(0) means only admin can access the resource, using role\r\n            // bytes32(max) means the public role can access the resource.\r\n            revert InvalidHeader(_header);\r\n        }\r\n        header[_headerAddress] = _header;\r\n        emit HeaderUpdated(_headerAddress);\r\n    }\r\n\r\n    // was debating on using a _readHeaderByAddress function, but decided against it\r\n    // we don't need this since a HEAD response includes both the header address and the HeaderInfo\r\n    // do we need to get HeaderInfo from a header address?\r\n\r\n    // we could add the setDefaultHeader functions to the WTTPSite contract, or omit these entirely\r\n    // to make the contract smaller and allow the developer to choose to update the site's default\r\n    // header in their implementation contract. \r\n\r\n    /// @notice Sets the default header information\r\n    /// @dev Default header is stored at bytes32(0)\r\n    /// @param _header The header information to use as default\r\n    function _setDefaultHeader(HeaderInfo memory _header) internal virtual {\r\n        // should we make the function onlyRole(DEFAULT_ADMIN_ROLE)?\r\n        // this function should be internal only, we don't need to expose it to the public,\r\n        // but if the developer wants to expose it, they should exercise caution,\r\n        // site admins can elevate their permissions if they can access this function,\r\n        // but this needs to be called during at least the constructor of the site contract\r\n        _updateHeader(bytes32(0), _header);\r\n    }\r\n\r\n    // /// @notice Updates the default header information\r\n    // /// @dev Only site admins can modify the default header\r\n    // /// @notice Must be elevated above SITE_ADMIN_ROLE, site admins can change the header of any \r\n    // /// resource they have access to, so we need to be more specific here to avoid security issues\r\n    // /// @param _header The header information to use as default\r\n    // function setDefaultHeader(\r\n    //     HeaderInfo memory _header\r\n    // ) external virtual onlyRole(DEFAULT_ADMIN_ROLE) {\r\n    //     _setDefaultHeader(_header);\r\n    // }\r\n\r\n    // ===== Metadata operations =====\r\n    \r\n    /// @notice Retrieves metadata for a resource path\r\n    /// @dev Internal view function to access metadata mapping\r\n    /// @param _path Path of the resource\r\n    /// @return _metadata Metadata information for the resource\r\n    function _readMetadata(\r\n        string memory _path\r\n    ) internal virtual view returns (ResourceMetadata memory _metadata) {\r\n        _metadata = metadata[_path];\r\n    }\r\n\r\n    /// @notice Updates timestamp and version for resource metadata\r\n    /// @dev Internal helper to handle common metadata update operations\r\n    /// @param _path Path of the resource to update\r\n    function _updateMetadataStats(string memory _path) internal virtual {\r\n        // set calculated values\r\n        metadata[_path].lastModified = block.timestamp;\r\n        if (resource[_path].length > 0) {\r\n            metadata[_path].version++;\r\n        } else {\r\n            if (metadata[_path].version > 0) {\r\n                // tracking header changes once resource ceases to be empty\r\n                // this allows immutible resources to be written to once \r\n                // after using the DEFINE method to make the resource immutable\r\n                // if a file currently exists or has existed but since deleted\r\n                // making the resource immutable after it has been deleted \r\n                // will prevent this \"one last chance\" to write to the resource\r\n                // it should forever return a 410 Gone error on the client side because\r\n                // the resource is immutable and it can never be written to again\r\n                metadata[_path].version++;\r\n            }\r\n        }\r\n    }\r\n\r\n    /// @notice Updates metadata for a resource\r\n    /// @dev Preserves calculated fields like size, version, and timestamp\r\n    /// @param _path Path of the resource to update\r\n    /// @param _metadata New metadata to store\r\n    function _updateMetadata(\r\n        string memory _path, \r\n        ResourceMetadata memory _metadata\r\n    ) internal virtual {\r\n        // Update timestamp and version\r\n        _updateMetadataStats(_path);\r\n\r\n        // Preserve calculated fields\r\n        _metadata.size = metadata[_path].size;\r\n        _metadata.version = metadata[_path].version;\r\n        _metadata.lastModified = metadata[_path].lastModified;\r\n        // functions like deleteResource() should set the lastModified to 0 after calling \r\n        // _deleteMetadata() to ensure the resource returns a 404 Not Found error on chain \r\n        // or a 410 Gone error in the client if the resource has been made immutable\r\n\r\n        metadata[_path] = _metadata;\r\n        emit MetadataUpdated(_path);\r\n    }\r\n    \r\n    /// @notice Deletes metadata for a resource\r\n    /// @dev Sets metadata to zero values and emits event\r\n    /// @param _path Path of the resource to delete\r\n    /// @dev this function should only be used by _deleteResource()\r\n    function _deleteMetadata(\r\n        string memory _path\r\n    ) internal virtual {\r\n        // should we check if the resource exists?\r\n        // if it does it may cause issues to have content on a resource with no metadata\r\n        // no we aren't being restrictive in this contract on purpose, let them fuck it up\r\n        // we will do our best to ensure the resource is deleted by never accessing this function\r\n        // from the site contract. Perhaps after testing we could make this function private.\r\n        // For now, let's keep it internal so our test contracts can call it.\r\n        _updateMetadata(_path, zeroMetadata);\r\n        metadata[_path].lastModified = 0;\r\n        emit MetadataDeleted(_path);\r\n    }\r\n\r\n    // ===== Resource operations =====\r\n\r\n    function _resourceDataPoints(string memory _path) internal view virtual returns (uint256) {\r\n        return resource[_path].length;\r\n    }\r\n    \r\n    /// @notice Creates a new data point for a resource\r\n    /// @dev Registers the data point in DPR and updates resource mapping\r\n    /// @param _path Path where the resource will be stored\r\n    /// @param _dataRegistration Registration data including content and publisher\r\n    /// @return _dataPointAddress The address of the newly created data point\r\n    function _createResource(\r\n        string memory _path,\r\n        DataRegistration memory _dataRegistration\r\n    ) internal virtual returns (bytes32 _dataPointAddress) {\r\n\r\n        _dataPointAddress = DPS().calculateAddress(_dataRegistration.data);\r\n\r\n        DPR_.registerDataPoint{value: DPR_.getDataPointRoyalty(_dataPointAddress)}(\r\n            _dataRegistration.data,\r\n            _dataRegistration.publisher\r\n        );\r\n\r\n        emit ResourceCreated(_path);\r\n\r\n        _updateResource(_path, _dataPointAddress, _dataRegistration.chunkIndex);\r\n    }\r\n\r\n    /// @notice Retrieves all data point addresses for a resource\r\n    /// @dev Internal view function to access resource mapping\r\n    /// @param _path Path of the resource\r\n    /// @return Array of data point addresses comprising the resource\r\n    function _readResource(\r\n        string memory _path,\r\n        Range memory _range\r\n    ) internal virtual view returns (ResourceResponse memory) { \r\n        // we should set a max range size to prevent DOS attacks\r\n        uint256 _totalChunks = _resourceDataPoints(_path);\r\n        Range memory _normalizedRange = normalizeRange_(_range, _totalChunks);\r\n        uint256 _resourceLength = uint256(_normalizedRange.end - _normalizedRange.start + 1);\r\n        uint256 _returnLength = _resourceLength > CHUNK_RESPONSE_LIMIT ? CHUNK_RESPONSE_LIMIT : _resourceLength;\r\n        bytes32[] memory _dataPoints = new bytes32[](_returnLength);\r\n        for (uint256 i = 0; i < _returnLength; i++) {\r\n            _dataPoints[i] = resource[_path][uint256(_normalizedRange.start) + i];\r\n        }\r\n        return ResourceResponse({\r\n            dataPoints: _dataPoints,\r\n            totalChunks: _totalChunks\r\n        });\r\n    }\r\n\r\n    /// @notice Updates a specific chunk of a resource\r\n    /// @dev Handles adding new chunks or updating existing ones, updates size calculation\r\n    /// @param _path Path of the resource\r\n    /// @param _dataPointAddress Address of the data point chunk\r\n    /// @param _chunkIndex Index position of the chunk in the resource array\r\n    function _updateResource(\r\n        string memory _path,\r\n        bytes32 _dataPointAddress,\r\n        uint256 _chunkIndex\r\n    ) internal virtual {\r\n        uint256 _resourceLength = _resourceDataPoints(_path);\r\n        if (_chunkIndex > _resourceLength) {\r\n            revert _416(\"Out of Bounds\", Range(0, int256(_resourceLength)), int256(_chunkIndex));\r\n        } else if (_chunkIndex == _resourceLength) {\r\n            // add a new chunk\r\n            resource[_path].push(_dataPointAddress);\r\n            metadata[_path].size += DPS().dataPointSize(_dataPointAddress);\r\n        } else {\r\n            // update an existing chunk\r\n            // Calculate size delta (new size - old size)\r\n            metadata[_path].size = \r\n                metadata[_path].size \r\n                + DPS().dataPointSize(_dataPointAddress)\r\n                - DPS().dataPointSize(resource[_path][_chunkIndex]);\r\n            resource[_path][_chunkIndex] = _dataPointAddress;\r\n        }\r\n\r\n        _updateMetadataStats(_path);\r\n        emit ResourceUpdated(_path, _chunkIndex);\r\n    }\r\n\r\n    /// @notice Removes a resource and its metadata\r\n    /// @dev Clears resource array, resets size, and deletes metadata\r\n    /// @param _path Path of the resource to delete\r\n    function _deleteResource(\r\n        string memory _path\r\n    ) internal virtual {\r\n        delete resource[_path];\r\n        metadata[_path].size = 0;\r\n        _deleteMetadata(_path);\r\n        emit ResourceDeleted(_path);\r\n    }\r\n\r\n    /// @notice Bulk upload of data points for a resource\r\n    /// @dev Processes an array of data registrations in sequence\r\n    /// @param _path Path of the resource\r\n    /// @param _dataRegistration Array of registration data for multiple chunks\r\n    /// @return _dataPointAddresses Array of addresses for the created data points\r\n    function _uploadResource(\r\n        string memory _path,\r\n        DataRegistration[] memory _dataRegistration\r\n    ) internal virtual returns (bytes32[] memory _dataPointAddresses) {\r\n        _dataPointAddresses = new bytes32[](_dataRegistration.length);\r\n        for (uint i = 0; i < _dataRegistration.length; i++) {\r\n            _dataPointAddresses[i] = _createResource(_path, _dataRegistration[i]);\r\n        }\r\n    }\r\n}\r\n"},"contracts/extensions/ExtendedWTTPSite.sol":{"content":"/*\r\n * Web3 Transfer Protocol (WTTP) - WTTPStorage Contract\r\n * Copyright (C) 2025 TechnicallyWeb3\r\n * \r\n * This program is free software: you can redistribute it and/or modify\r\n * it under the terms of the GNU Affero General Public License as published\r\n * by the Free Software Foundation, either version 3 of the License, or\r\n * (at your option) any later version.\r\n * \r\n * This program is distributed in the hope that it will be useful,\r\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n * GNU Affero General Public License for more details.\r\n * \r\n * You should have received a copy of the GNU Affero General Public License\r\n * along with this program. If not, see <https://www.gnu.org/licenses/>.\r\n */\r\n\r\n// SPDX-License-Identifier: AGPL-3.0\r\npragma solidity ^0.8.20;\r\n\r\nimport \"../BaseWTTPPermissions.sol\";\r\nimport \"@wttp/core/contracts/types/WTTPTypes.sol\";\r\nimport \"@wttp/core/contracts/interfaces/IBaseWTTPSite.sol\";\r\n\r\nfunction getSiteDPR_(address _siteAddress) view returns (IDataPointRegistry) {\r\n    return IBaseWTTPSite(_siteAddress).DPR();\r\n}\r\n\r\n/// @notice Error thrown when the default origins array is invalid\r\n/// @param _origins The invalid origins\r\nerror InvalidOrigins(bytes32[] _origins);\r\n\r\n/// @title Extended WTTP Site Contract for Origin Testing\r\n/// @notice Extends BaseWTTPStorage with cross-site origin validation capabilities\r\n/// @dev Acts as a proxy to another WTTP site while enforcing strict origin validation\r\nabstract contract ExtendedWTTPSite is BaseWTTPPermissions {\r\n\r\n    /// @notice Reference to the underlying WTTP site being proxied\r\n    IBaseWTTPSite public immutable site;\r\n\r\n    bytes32[] public defaultOrigins;\r\n\r\n    mapping(string => bytes32[]) public resourceOrigins;\r\n    \r\n    /// @notice Mapping to track allowed origins for cross-site requests\r\n    mapping(address => bool) public allowedOrigins;\r\n    \r\n    /// @notice Event emitted when origins are updated for a path\r\n    event OriginUpdated(string indexed _path, bytes32[] _origins);\r\n\r\n    modifier pathNotEmpty(string memory _path) {\r\n        if (bytes(_path).length == 0) {\r\n            revert _400(\"Bad Request\", _path);\r\n        }\r\n        _;\r\n    }\r\n    \r\n    /// @notice Validates that calls are coming from authorized origins\r\n    /// @dev Used for strict cross-site origin testing\r\n    modifier onlyAuthorizedOrigin(string memory _path) {\r\n        bytes32[] memory _origins = bytes(_path).length == 0 ? defaultOrigins : resourceOrigins[_path];\r\n        bytes32 _authorizedRole = _origins[uint256(Method.DEFINE)];\r\n        if (!hasRole(_authorizedRole, msg.sender)) {\r\n            revert _403(\"Forbidden\", _authorizedRole);\r\n        }\r\n        _;\r\n    }\r\n\r\n    /// @notice Initializes the extended site with origin validation\r\n    /// @param _owner Address of the contract owner\r\n    /// @param _siteAddress Address of the WTTP site to proxy to\r\n    /// @param _defaultOrigins Default origins for this extension\r\n    constructor(\r\n        address _owner, \r\n        address _siteAddress, \r\n        bytes32[] memory _defaultOrigins\r\n    ) BaseWTTPPermissions(_owner) {\r\n        site = IBaseWTTPSite(_siteAddress);\r\n        _setOrigins(\"\", _defaultOrigins);\r\n    }\r\n\r\n    function _setOrigins(string memory _path, bytes32[] memory _origins) internal {\r\n        if (_origins.length != maxMethods_()) {\r\n            revert InvalidOrigins(_origins);\r\n        }\r\n        if (bytes(_path).length == 0) {\r\n            defaultOrigins = _origins;\r\n        } else {\r\n            resourceOrigins[_path] = _origins;\r\n        }\r\n        emit OriginUpdated(_path, _origins);\r\n    }\r\n\r\n    function setDefaultOrigins(bytes32[] memory _defaultOrigins) external onlyRole(DEFAULT_ADMIN_ROLE) {\r\n        _setOrigins(\"\", _defaultOrigins);\r\n    }\r\n\r\n    function setResourceOrigins(string memory _path, bytes32[] memory _origins) external pathNotEmpty(_path) onlyAuthorizedOrigin(_path) {\r\n        _setOrigins(_path, _origins);\r\n    }\r\n\r\n    /// @notice Proxy OPTIONS requests with origin validation\r\n    /// @param _path Resource path to check\r\n    /// @return Response from the underlying site\r\n    function OPTIONS(string memory _path) external view onlyAuthorizedOrigin(_path) returns (OPTIONSResponse memory) {\r\n        return site.OPTIONS(_path);\r\n    }\r\n\r\n    /// @notice Proxy HEAD requests with origin validation\r\n    /// @param _request HEAD request parameters\r\n    /// @return Response from the underlying site\r\n    function HEAD(HEADRequest memory _request) external view onlyAuthorizedOrigin(_request.path) returns (HEADResponse memory) {\r\n        return site.HEAD(_request);\r\n    }\r\n\r\n    /// @notice Proxy GET requests with origin validation\r\n    /// @param _request GET request parameters\r\n    /// @return Response from the underlying site\r\n    function GET(LOCATERequest memory _request) external view onlyAuthorizedOrigin(_request.head.path) returns (LOCATEResponse memory) {\r\n        return site.GET(_request);\r\n    }\r\n\r\n    /// @notice Proxy DEFINE requests with origin validation\r\n    /// @param _request DEFINE request parameters\r\n    /// @return Response from the underlying site\r\n    function DEFINE(DEFINERequest memory _request) external onlyAuthorizedOrigin(_request.head.path) returns (DEFINEResponse memory) {\r\n        return site.DEFINE(_request);\r\n    }\r\n    \r\n    /// @notice Proxy DELETE requests with origin validation\r\n    /// @param _request DELETE request parameters\r\n    /// @return Response from the underlying site\r\n    function DELETE(HEADRequest memory _request) external onlyAuthorizedOrigin(_request.path) returns (HEADResponse memory) {\r\n        return site.DELETE(_request);\r\n    }\r\n\r\n    /// @notice Proxy PUT requests with origin validation\r\n    /// @param _request PUT request parameters\r\n    /// @return Response from the underlying site\r\n    function PUT(PUTRequest memory _request) external payable onlyAuthorizedOrigin(_request.head.path) returns (LOCATEResponse memory) {\r\n        return site.PUT{value: msg.value}(_request);\r\n    }\r\n    \r\n    /// @notice Proxy PATCH requests with origin validation\r\n    /// @param _request PATCH request parameters\r\n    /// @return Response from the underlying site\r\n    function PATCH(PATCHRequest memory _request) external payable onlyAuthorizedOrigin(_request.head.path) returns (LOCATEResponse memory) {\r\n        return site.PATCH{value: msg.value}(_request);\r\n    }\r\n}\r\n"},"contracts/extensions/WTTPAdminNFT.sol":{"content":"/*\r\n * Web3 Transfer Protocol (WTTP) - WTTPStorage Contract\r\n * Copyright (C) 2025 TechnicallyWeb3\r\n * \r\n * This program is free software: you can redistribute it and/or modify\r\n * it under the terms of the GNU Affero General Public License as published\r\n * by the Free Software Foundation, either version 3 of the License, or\r\n * (at your option) any later version.\r\n * \r\n * This program is distributed in the hope that it will be useful,\r\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n * GNU Affero General Public License for more details.\r\n * \r\n * You should have received a copy of the GNU Affero General Public License\r\n * along with this program. If not, see <https://www.gnu.org/licenses/>.\r\n */\r\n\r\n"},"contracts/extensions/WTTPErrorSite.sol":{"content":"// SPDX-License-Identifier: AGPL-3.0\r\npragma solidity ^0.8.20;\r\n\r\nimport \"@wttp/core/contracts/interfaces/IBaseWTTPSite.sol\";\r\n\r\nabstract contract WTTPErrorSite {\r\n\r\n    IBaseWTTPSite public immutable site;\r\n\r\n    constructor(address _siteAddress) {\r\n        site = IBaseWTTPSite(_siteAddress);\r\n    }\r\n\r\n    \r\n}"},"contracts/extensions/WTTPForwarder.sol":{"content":"/*\r\n * Web3 Transfer Protocol (WTTP) - WTTPStorage Contract\r\n * Copyright (C) 2025 TechnicallyWeb3\r\n * \r\n * This program is free software: you can redistribute it and/or modify\r\n * it under the terms of the GNU Affero General Public License as published\r\n * by the Free Software Foundation, either version 3 of the License, or\r\n * (at your option) any later version.\r\n * \r\n * This program is distributed in the hope that it will be useful,\r\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r\n * GNU Affero General Public License for more details.\r\n * \r\n * You should have received a copy of the GNU Affero General Public License\r\n * along with this program. If not, see <https://www.gnu.org/licenses/>.\r\n */\r\n\r\n// SPDX-License-Identifier: AGPL-3.0\r\npragma solidity ^0.8.20;\r\n\r\nimport \"@wttp/core/contracts/types/WTTPTypes.sol\";\r\n\r\n/// @title WTTP Forwarder Contract\r\n/// @notice Stores simple redirect rules for a smart contract and builds minimal WTTP responses\r\n/// @dev Adding this code to an ERC20 contract for example will allow developers to redirect all WTTP calls to an external WTTP site\r\nabstract contract WTTPForwarder {\r\n\r\n    uint16 public constant ALLOWED_METHODS = 67; // Bitmask of Method enums [0:HEAD, 1:GET, 6:OPTIONS]\r\n\r\n    /// @notice Base URL to redirect requests to\r\n    string public baseURL;\r\n\r\n    /// @notice HTTP redirect status code (300-310)\r\n    uint16 public redirectCode;\r\n\r\n    uint256 internal lastModified;\r\n\r\n    /// @notice Event emitted when redirect configuration is updated\r\n    event RedirectConfigUpdated(string baseURL, uint16 redirectCode);\r\n\r\n    /// @notice Error thrown when an invalid redirect code is provided\r\n    /// @param code The invalid redirect code\r\n    error InvalidRedirect(uint16 code);\r\n\r\n    /// @notice Error thrown when an empty base URL is provided\r\n    error EmptyBaseURL();\r\n\r\n    /// @notice Initializes the forwarder with redirect configuration\r\n    /// @param _baseURL Base URL to redirect to\r\n    /// @dev since the path should include a leading slash, the baseURL should not include a trailing slash\r\n    /// @param _redirectCode HTTP redirect status code (300-310)\r\n    constructor(\r\n        string memory _baseURL,\r\n        uint16 _redirectCode\r\n    ) {\r\n        _setRedirectConfig(_baseURL, _redirectCode);\r\n    }\r\n\r\n    // upto developer to add this into their implementation\r\n    // /// @notice Updates the redirect configuration\r\n    // /// @dev Only contract admin can update the configuration\r\n    // /// @param _baseURL New base URL to redirect to\r\n    // /// @param _redirectCode New HTTP redirect status code (300-310)\r\n    // function setRedirectConfig(string memory _baseURL, uint16 _redirectCode) external onlyRole(DEFAULT_ADMIN_ROLE) {\r\n    //     _setRedirectConfig(_baseURL, _redirectCode);\r\n    // }\r\n\r\n    /// @notice Internal function to set redirect configuration with validation\r\n    /// @param _baseURL Base URL to redirect to\r\n    /// @param _redirectCode HTTP redirect status code (300-310)\r\n    function _setRedirectConfig(string memory _baseURL, uint16 _redirectCode) internal {\r\n        if (bytes(_baseURL).length == 0) {\r\n            revert EmptyBaseURL();\r\n        }\r\n        \r\n        // Validate redirect code (same validation as BaseWTTPStorage)\r\n        if (_redirectCode != 0 && (_redirectCode < 300 || _redirectCode > 310)) {\r\n            revert InvalidRedirect(_redirectCode);\r\n        }\r\n\r\n        baseURL = _baseURL;\r\n        redirectCode = _redirectCode;\r\n        lastModified = block.timestamp;\r\n        emit RedirectConfigUpdated(_baseURL, _redirectCode);\r\n    }\r\n\r\n    /// @notice Builds the redirect URL for a given path\r\n    /// @param _path The request path\r\n    /// @return The complete redirect URL\r\n    function _getRedirectURL(string memory _path) internal view returns (string memory) {\r\n        return string(abi.encodePacked(baseURL, _path));\r\n    }\r\n\r\n    // ========== WTTP Method Implementations ==========\r\n\r\n    /// @notice Handles OPTIONS requests with redirect information\r\n    // / @param _path Resource path to check (unused but kept for interface compatibility)\r\n    /// @return optionsResponse Response with redirect status\r\n    function OPTIONS(string memory /*_path*/) external pure returns (OPTIONSResponse memory optionsResponse) {\r\n        optionsResponse.status = 204;\r\n        optionsResponse.allow = ALLOWED_METHODS;\r\n    }\r\n\r\n    /// @notice Handles HEAD requests with redirect information\r\n    /// @param headRequest Request information including path\r\n    /// @return head Response with redirect metadata\r\n    function HEAD(HEADRequest memory headRequest) public view returns (HEADResponse memory head) {\r\n        // Set minimal metadata\r\n        head.metadata.lastModified = lastModified;\r\n        head.metadata.size = 0; // No content, just redirect\r\n        head.metadata.version = 1;\r\n\r\n        string memory redirectURL = _getRedirectURL(headRequest.path);\r\n        \r\n        // Generate etag for the redirect\r\n        head.etag = keccak256(abi.encodePacked(redirectCode, redirectURL));\r\n\r\n        head.headerInfo.cors.methods = ALLOWED_METHODS;\r\n        \r\n        // Check If-Modified-Since\r\n        if (\r\n            (headRequest.ifModifiedSince > 0 && headRequest.ifModifiedSince > lastModified) || // If-Modified-Since\r\n            (headRequest.ifNoneMatch != bytes32(0) && headRequest.ifNoneMatch == head.etag) // If-None-Match\r\n        ) {\r\n            head.status = 304;\r\n            return head;\r\n        }\r\n\r\n        // Return redirect response\r\n        head.headerInfo.redirect = Redirect({\r\n            code: redirectCode,\r\n            location: redirectURL\r\n        });\r\n        return head;\r\n    }\r\n\r\n    /// @notice Handles GET requests with redirect information\r\n    /// @param getRequest Request information including path\r\n    /// @return getResponse Response with redirect data\r\n    function GET(LOCATERequest memory getRequest) external view returns (LOCATEResponse memory getResponse) {\r\n        getResponse.head = HEAD(getRequest.head);\r\n    }\r\n}\r\n\r\n"},"contracts/Web3Site.sol":{"content":"// SPDX-License-Identifier: AGPL-3.0\r\npragma solidity ^0.8.20;\r\n\r\nimport \"./BaseWTTPSite.sol\";\r\n\r\ncontract Web3Site is BaseWTTPSite {\r\n\r\n    constructor(\r\n        address _owner, \r\n        address _dpr, \r\n        HeaderInfo memory _defaultHeader\r\n    ) BaseWTTPSite(_owner, _dpr, _defaultHeader) {}\r\n\r\n    function setDefaultHeader(HeaderInfo memory _defaultHeader) external onlyRole(DEFAULT_ADMIN_ROLE) {\r\n        _setDefaultHeader(_defaultHeader);\r\n    }\r\n\r\n}"}},"settings":{"evmVersion":"paris","optimizer":{"enabled":false,"runs":200},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata","devdoc","userdoc"],"":["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--> contracts/extensions/WTTPAdminNFT.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":"contracts/extensions/WTTPAdminNFT.sol","start":-1},"type":"Warning"},{"component":"general","errorCode":"3420","formattedMessage":"Warning: Source file does not specify required compiler version! Consider adding \"pragma solidity ^0.8.28;\"\n--> contracts/extensions/WTTPAdminNFT.sol\n\n","message":"Source file does not specify required compiler version! Consider adding \"pragma solidity ^0.8.28;\"","severity":"warning","sourceLocation":{"end":-1,"file":"contracts/extensions/WTTPAdminNFT.sol","start":-1},"type":"Warning"}],"sources":{"@openzeppelin/contracts/access/AccessControl.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/AccessControl.sol","exportedSymbols":{"AccessControl":[296],"Context":[409],"ERC165":[433],"IAccessControl":[379],"IERC165":[445]},"id":297,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"108:24:0"},{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","file":"./IAccessControl.sol","id":3,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":297,"sourceUnit":380,"src":"134:52:0","symbolAliases":[{"foreign":{"id":2,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":379,"src":"142:14:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../utils/Context.sol","id":5,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":297,"sourceUnit":410,"src":"187:45:0","symbolAliases":[{"foreign":{"id":4,"name":"Context","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":409,"src":"195:7:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","file":"../utils/introspection/ERC165.sol","id":8,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":297,"sourceUnit":434,"src":"233:66:0","symbolAliases":[{"foreign":{"id":6,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":445,"src":"241:7:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":7,"name":"ERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":433,"src":"250:6:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":10,"name":"Context","nameLocations":["1997:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":409,"src":"1997:7:0"},"id":11,"nodeType":"InheritanceSpecifier","src":"1997:7:0"},{"baseName":{"id":12,"name":"IAccessControl","nameLocations":["2006:14:0"],"nodeType":"IdentifierPath","referencedDeclaration":379,"src":"2006:14:0"},"id":13,"nodeType":"InheritanceSpecifier","src":"2006:14:0"},{"baseName":{"id":14,"name":"ERC165","nameLocations":["2022:6:0"],"nodeType":"IdentifierPath","referencedDeclaration":433,"src":"2022:6:0"},"id":15,"nodeType":"InheritanceSpecifier","src":"2022:6:0"}],"canonicalName":"AccessControl","contractDependencies":[],"contractKind":"contract","documentation":{"id":9,"nodeType":"StructuredDocumentation","src":"301:1660:0","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":296,"linearizedBaseContracts":[296,433,445,379,409],"name":"AccessControl","nameLocation":"1980:13:0","nodeType":"ContractDefinition","nodes":[{"canonicalName":"AccessControl.RoleData","id":22,"members":[{"constant":false,"id":19,"mutability":"mutable","name":"hasRole","nameLocation":"2094:7:0","nodeType":"VariableDeclaration","scope":22,"src":"2061:40:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":18,"keyName":"account","keyNameLocation":"2077:7:0","keyType":{"id":16,"name":"address","nodeType":"ElementaryTypeName","src":"2069:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2061:32:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":17,"name":"bool","nodeType":"ElementaryTypeName","src":"2088:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"internal"},{"constant":false,"id":21,"mutability":"mutable","name":"adminRole","nameLocation":"2119:9:0","nodeType":"VariableDeclaration","scope":22,"src":"2111:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":20,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2111:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"RoleData","nameLocation":"2042:8:0","nodeType":"StructDefinition","scope":296,"src":"2035:100:0","visibility":"public"},{"constant":false,"id":27,"mutability":"mutable","name":"_roles","nameLocation":"2183:6:0","nodeType":"VariableDeclaration","scope":296,"src":"2141:48:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$22_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData)"},"typeName":{"id":26,"keyName":"role","keyNameLocation":"2157:4:0","keyType":{"id":23,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2149:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2141:33:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$22_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":25,"nodeType":"UserDefinedTypeName","pathNode":{"id":24,"name":"RoleData","nameLocations":["2165:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":22,"src":"2165:8:0"},"referencedDeclaration":22,"src":"2165:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$22_storage_ptr","typeString":"struct AccessControl.RoleData"}}},"visibility":"private"},{"constant":true,"functionSelector":"a217fddf","id":30,"mutability":"constant","name":"DEFAULT_ADMIN_ROLE","nameLocation":"2220:18:0","nodeType":"VariableDeclaration","scope":296,"src":"2196:49:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":28,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2196:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"30783030","id":29,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2241:4:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"public"},{"body":{"id":40,"nodeType":"Block","src":"2463:44:0","statements":[{"expression":{"arguments":[{"id":36,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33,"src":"2484:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":35,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[94,115],"referencedDeclaration":94,"src":"2473:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$__$","typeString":"function (bytes32) view"}},"id":37,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2473:16:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38,"nodeType":"ExpressionStatement","src":"2473:16:0"},{"id":39,"nodeType":"PlaceholderStatement","src":"2499:1:0"}]},"documentation":{"id":31,"nodeType":"StructuredDocumentation","src":"2252:174:0","text":" @dev Modifier that checks that an account has a specific role. Reverts\n with an {AccessControlUnauthorizedAccount} error including the required role."},"id":41,"name":"onlyRole","nameLocation":"2440:8:0","nodeType":"ModifierDefinition","parameters":{"id":34,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33,"mutability":"mutable","name":"role","nameLocation":"2457:4:0","nodeType":"VariableDeclaration","scope":41,"src":"2449:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":32,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2449:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2448:14:0"},"src":"2431:76:0","virtual":false,"visibility":"internal"},{"baseFunctions":[432],"body":{"id":62,"nodeType":"Block","src":"2632:111:0","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":60,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":55,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":50,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44,"src":"2649:11:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":52,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":379,"src":"2669:14:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$379_$","typeString":"type(contract IAccessControl)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$379_$","typeString":"type(contract IAccessControl)"}],"id":51,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2664:4:0","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":53,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2664:20:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IAccessControl_$379","typeString":"type(contract IAccessControl)"}},"id":54,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2685:11:0","memberName":"interfaceId","nodeType":"MemberAccess","src":"2664:32:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2649:47:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":58,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44,"src":"2724:11:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":56,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2700:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_AccessControl_$296_$","typeString":"type(contract super AccessControl)"}},"id":57,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2706:17:0","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":432,"src":"2700:23:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":59,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2700:36:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2649:87:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":49,"id":61,"nodeType":"Return","src":"2642:94:0"}]},"documentation":{"id":42,"nodeType":"StructuredDocumentation","src":"2513:23:0","text":"@inheritdoc IERC165"},"functionSelector":"01ffc9a7","id":63,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"2550:17:0","nodeType":"FunctionDefinition","overrides":{"id":46,"nodeType":"OverrideSpecifier","overrides":[],"src":"2608:8:0"},"parameters":{"id":45,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44,"mutability":"mutable","name":"interfaceId","nameLocation":"2575:11:0","nodeType":"VariableDeclaration","scope":63,"src":"2568:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":43,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2568:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2567:20:0"},"returnParameters":{"id":49,"nodeType":"ParameterList","parameters":[{"constant":false,"id":48,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":63,"src":"2626:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":47,"name":"bool","nodeType":"ElementaryTypeName","src":"2626:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2625:6:0"},"scope":296,"src":"2541:202:0","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[346],"body":{"id":80,"nodeType":"Block","src":"2913:53:0","statements":[{"expression":{"baseExpression":{"expression":{"baseExpression":{"id":73,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"2930:6:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$22_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":75,"indexExpression":{"id":74,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66,"src":"2937:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2930:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$22_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":76,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2943:7:0","memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":19,"src":"2930:20:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":78,"indexExpression":{"id":77,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68,"src":"2951:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2930:29:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":72,"id":79,"nodeType":"Return","src":"2923:36:0"}]},"documentation":{"id":64,"nodeType":"StructuredDocumentation","src":"2749:76:0","text":" @dev Returns `true` if `account` has been granted `role`."},"functionSelector":"91d14854","id":81,"implemented":true,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"2839:7:0","nodeType":"FunctionDefinition","parameters":{"id":69,"nodeType":"ParameterList","parameters":[{"constant":false,"id":66,"mutability":"mutable","name":"role","nameLocation":"2855:4:0","nodeType":"VariableDeclaration","scope":81,"src":"2847:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":65,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2847:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":68,"mutability":"mutable","name":"account","nameLocation":"2869:7:0","nodeType":"VariableDeclaration","scope":81,"src":"2861:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67,"name":"address","nodeType":"ElementaryTypeName","src":"2861:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2846:31:0"},"returnParameters":{"id":72,"nodeType":"ParameterList","parameters":[{"constant":false,"id":71,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81,"src":"2907:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":70,"name":"bool","nodeType":"ElementaryTypeName","src":"2907:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2906:6:0"},"scope":296,"src":"2830:136:0","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":93,"nodeType":"Block","src":"3231:47:0","statements":[{"expression":{"arguments":[{"id":88,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84,"src":"3252:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":89,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":391,"src":"3258:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":90,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3258:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":87,"name":"_checkRole","nodeType":"Identifier","overloadedDeclarations":[94,115],"referencedDeclaration":115,"src":"3241:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address) view"}},"id":91,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3241:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":92,"nodeType":"ExpressionStatement","src":"3241:30:0"}]},"documentation":{"id":82,"nodeType":"StructuredDocumentation","src":"2972:198:0","text":" @dev Reverts with an {AccessControlUnauthorizedAccount} error if `_msgSender()`\n is missing `role`. Overriding this function changes the behavior of the {onlyRole} modifier."},"id":94,"implemented":true,"kind":"function","modifiers":[],"name":"_checkRole","nameLocation":"3184:10:0","nodeType":"FunctionDefinition","parameters":{"id":85,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84,"mutability":"mutable","name":"role","nameLocation":"3203:4:0","nodeType":"VariableDeclaration","scope":94,"src":"3195:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3195:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3194:14:0"},"returnParameters":{"id":86,"nodeType":"ParameterList","parameters":[],"src":"3231:0:0"},"scope":296,"src":"3175:103:0","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":114,"nodeType":"Block","src":"3481:124:0","statements":[{"condition":{"id":106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3495:23:0","subExpression":{"arguments":[{"id":103,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97,"src":"3504:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":104,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99,"src":"3510:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":102,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81,"src":"3496:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3496:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":113,"nodeType":"IfStatement","src":"3491:108:0","trueBody":{"id":112,"nodeType":"Block","src":"3520:79:0","statements":[{"errorCall":{"arguments":[{"id":108,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99,"src":"3574:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":109,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97,"src":"3583:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":107,"name":"AccessControlUnauthorizedAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":306,"src":"3541:32:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_bytes32_$returns$_t_error_$","typeString":"function (address,bytes32) pure returns (error)"}},"id":110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3541:47:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":111,"nodeType":"RevertStatement","src":"3534:54:0"}]}}]},"documentation":{"id":95,"nodeType":"StructuredDocumentation","src":"3284:119:0","text":" @dev Reverts with an {AccessControlUnauthorizedAccount} error if `account`\n is missing `role`."},"id":115,"implemented":true,"kind":"function","modifiers":[],"name":"_checkRole","nameLocation":"3417:10:0","nodeType":"FunctionDefinition","parameters":{"id":100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97,"mutability":"mutable","name":"role","nameLocation":"3436:4:0","nodeType":"VariableDeclaration","scope":115,"src":"3428:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":96,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3428:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":99,"mutability":"mutable","name":"account","nameLocation":"3450:7:0","nodeType":"VariableDeclaration","scope":115,"src":"3442:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":98,"name":"address","nodeType":"ElementaryTypeName","src":"3442:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3427:31:0"},"returnParameters":{"id":101,"nodeType":"ParameterList","parameters":[],"src":"3481:0:0"},"scope":296,"src":"3408:197:0","stateMutability":"view","virtual":true,"visibility":"internal"},{"baseFunctions":[354],"body":{"id":128,"nodeType":"Block","src":"3860:46:0","statements":[{"expression":{"expression":{"baseExpression":{"id":123,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"3877:6:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$22_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":125,"indexExpression":{"id":124,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":118,"src":"3884:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3877:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$22_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":126,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3890:9:0","memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":21,"src":"3877:22:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":122,"id":127,"nodeType":"Return","src":"3870:29:0"}]},"documentation":{"id":116,"nodeType":"StructuredDocumentation","src":"3611:170:0","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":129,"implemented":true,"kind":"function","modifiers":[],"name":"getRoleAdmin","nameLocation":"3795:12:0","nodeType":"FunctionDefinition","parameters":{"id":119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":118,"mutability":"mutable","name":"role","nameLocation":"3816:4:0","nodeType":"VariableDeclaration","scope":129,"src":"3808:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":117,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3808:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3807:14:0"},"returnParameters":{"id":122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":129,"src":"3851:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":120,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3851:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3850:9:0"},"scope":296,"src":"3786:120:0","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[362],"body":{"id":147,"nodeType":"Block","src":"4296:42:0","statements":[{"expression":{"arguments":[{"id":143,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":132,"src":"4317:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":144,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":134,"src":"4323:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":142,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":257,"src":"4306:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) returns (bool)"}},"id":145,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4306:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":146,"nodeType":"ExpressionStatement","src":"4306:25:0"}]},"documentation":{"id":130,"nodeType":"StructuredDocumentation","src":"3912:285:0","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":148,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"arguments":[{"id":138,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":132,"src":"4289:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":137,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":129,"src":"4276:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4276:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":140,"kind":"modifierInvocation","modifierName":{"id":136,"name":"onlyRole","nameLocations":["4267:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":41,"src":"4267:8:0"},"nodeType":"ModifierInvocation","src":"4267:28:0"}],"name":"grantRole","nameLocation":"4211:9:0","nodeType":"FunctionDefinition","parameters":{"id":135,"nodeType":"ParameterList","parameters":[{"constant":false,"id":132,"mutability":"mutable","name":"role","nameLocation":"4229:4:0","nodeType":"VariableDeclaration","scope":148,"src":"4221:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":131,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4221:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":134,"mutability":"mutable","name":"account","nameLocation":"4243:7:0","nodeType":"VariableDeclaration","scope":148,"src":"4235:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":133,"name":"address","nodeType":"ElementaryTypeName","src":"4235:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4220:31:0"},"returnParameters":{"id":141,"nodeType":"ParameterList","parameters":[],"src":"4296:0:0"},"scope":296,"src":"4202:136:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[370],"body":{"id":166,"nodeType":"Block","src":"4713:43:0","statements":[{"expression":{"arguments":[{"id":162,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":151,"src":"4735:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":163,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":153,"src":"4741:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":161,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":295,"src":"4723:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) returns (bool)"}},"id":164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4723:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":165,"nodeType":"ExpressionStatement","src":"4723:26:0"}]},"documentation":{"id":149,"nodeType":"StructuredDocumentation","src":"4344:269:0","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":167,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"arguments":[{"id":157,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":151,"src":"4706:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":156,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":129,"src":"4693:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4693:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":159,"kind":"modifierInvocation","modifierName":{"id":155,"name":"onlyRole","nameLocations":["4684:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":41,"src":"4684:8:0"},"nodeType":"ModifierInvocation","src":"4684:28:0"}],"name":"revokeRole","nameLocation":"4627:10:0","nodeType":"FunctionDefinition","parameters":{"id":154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":151,"mutability":"mutable","name":"role","nameLocation":"4646:4:0","nodeType":"VariableDeclaration","scope":167,"src":"4638:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":150,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4638:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":153,"mutability":"mutable","name":"account","nameLocation":"4660:7:0","nodeType":"VariableDeclaration","scope":167,"src":"4652:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":152,"name":"address","nodeType":"ElementaryTypeName","src":"4652:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4637:31:0"},"returnParameters":{"id":160,"nodeType":"ParameterList","parameters":[],"src":"4713:0:0"},"scope":296,"src":"4618:138:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[378],"body":{"id":189,"nodeType":"Block","src":"5383:166:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":175,"name":"callerConfirmation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":172,"src":"5397:18:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":176,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":391,"src":"5419:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5419:12:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5397:34:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":183,"nodeType":"IfStatement","src":"5393:102:0","trueBody":{"id":182,"nodeType":"Block","src":"5433:62:0","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":179,"name":"AccessControlBadConfirmation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":309,"src":"5454:28:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5454:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":181,"nodeType":"RevertStatement","src":"5447:37:0"}]}},{"expression":{"arguments":[{"id":185,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":170,"src":"5517:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":186,"name":"callerConfirmation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":172,"src":"5523:18:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":184,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":295,"src":"5505:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) returns (bool)"}},"id":187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5505:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":188,"nodeType":"ExpressionStatement","src":"5505:37:0"}]},"documentation":{"id":168,"nodeType":"StructuredDocumentation","src":"4762:537:0","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":190,"implemented":true,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"5313:12:0","nodeType":"FunctionDefinition","parameters":{"id":173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":170,"mutability":"mutable","name":"role","nameLocation":"5334:4:0","nodeType":"VariableDeclaration","scope":190,"src":"5326:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":169,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5326:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":172,"mutability":"mutable","name":"callerConfirmation","nameLocation":"5348:18:0","nodeType":"VariableDeclaration","scope":190,"src":"5340:26:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":171,"name":"address","nodeType":"ElementaryTypeName","src":"5340:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5325:42:0"},"returnParameters":{"id":174,"nodeType":"ParameterList","parameters":[],"src":"5383:0:0"},"scope":296,"src":"5304:245:0","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":217,"nodeType":"Block","src":"5747:174:0","statements":[{"assignments":[199],"declarations":[{"constant":false,"id":199,"mutability":"mutable","name":"previousAdminRole","nameLocation":"5765:17:0","nodeType":"VariableDeclaration","scope":217,"src":"5757:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":198,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5757:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":203,"initialValue":{"arguments":[{"id":201,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":193,"src":"5798:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":200,"name":"getRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":129,"src":"5785:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32) view returns (bytes32)"}},"id":202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5785:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5757:46:0"},{"expression":{"id":209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":204,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"5813:6:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$22_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":206,"indexExpression":{"id":205,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":193,"src":"5820:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5813:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$22_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5826:9:0","memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":21,"src":"5813:22:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":208,"name":"adminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":195,"src":"5838:9:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5813:34:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":210,"nodeType":"ExpressionStatement","src":"5813:34:0"},{"eventCall":{"arguments":[{"id":212,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":193,"src":"5879:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":213,"name":"previousAdminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":199,"src":"5885:17:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":214,"name":"adminRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":195,"src":"5904:9:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":211,"name":"RoleAdminChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":318,"src":"5862:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32,bytes32)"}},"id":215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5862:52:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":216,"nodeType":"EmitStatement","src":"5857:57:0"}]},"documentation":{"id":191,"nodeType":"StructuredDocumentation","src":"5555:114:0","text":" @dev Sets `adminRole` as ``role``'s admin role.\n Emits a {RoleAdminChanged} event."},"id":218,"implemented":true,"kind":"function","modifiers":[],"name":"_setRoleAdmin","nameLocation":"5683:13:0","nodeType":"FunctionDefinition","parameters":{"id":196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":193,"mutability":"mutable","name":"role","nameLocation":"5705:4:0","nodeType":"VariableDeclaration","scope":218,"src":"5697:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":192,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5697:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":195,"mutability":"mutable","name":"adminRole","nameLocation":"5719:9:0","nodeType":"VariableDeclaration","scope":218,"src":"5711:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":194,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5711:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5696:33:0"},"returnParameters":{"id":197,"nodeType":"ParameterList","parameters":[],"src":"5747:0:0"},"scope":296,"src":"5674:247:0","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":256,"nodeType":"Block","src":"6238:233:0","statements":[{"condition":{"id":232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6252:23:0","subExpression":{"arguments":[{"id":229,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":221,"src":"6261:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":230,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":223,"src":"6267:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":228,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81,"src":"6253:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6253:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":254,"nodeType":"Block","src":"6428:37:0","statements":[{"expression":{"hexValue":"66616c7365","id":252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6449:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":227,"id":253,"nodeType":"Return","src":"6442:12:0"}]},"id":255,"nodeType":"IfStatement","src":"6248:217:0","trueBody":{"id":251,"nodeType":"Block","src":"6277:145:0","statements":[{"expression":{"id":240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":233,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"6291:6:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$22_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":235,"indexExpression":{"id":234,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":221,"src":"6298:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6291:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$22_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6304:7:0","memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":19,"src":"6291:20:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":238,"indexExpression":{"id":237,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":223,"src":"6312:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6291:29:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6323:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"6291:36:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":241,"nodeType":"ExpressionStatement","src":"6291:36:0"},{"eventCall":{"arguments":[{"id":243,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":221,"src":"6358:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":244,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":223,"src":"6364:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":245,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":391,"src":"6373:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6373:12:0","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":242,"name":"RoleGranted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":327,"src":"6346:11:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6346:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":248,"nodeType":"EmitStatement","src":"6341:45:0"},{"expression":{"hexValue":"74727565","id":249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6407:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":227,"id":250,"nodeType":"Return","src":"6400:11:0"}]}}]},"documentation":{"id":219,"nodeType":"StructuredDocumentation","src":"5927:223:0","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":257,"implemented":true,"kind":"function","modifiers":[],"name":"_grantRole","nameLocation":"6164:10:0","nodeType":"FunctionDefinition","parameters":{"id":224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":221,"mutability":"mutable","name":"role","nameLocation":"6183:4:0","nodeType":"VariableDeclaration","scope":257,"src":"6175:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":220,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6175:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":223,"mutability":"mutable","name":"account","nameLocation":"6197:7:0","nodeType":"VariableDeclaration","scope":257,"src":"6189:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":222,"name":"address","nodeType":"ElementaryTypeName","src":"6189:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6174:31:0"},"returnParameters":{"id":227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":226,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":257,"src":"6232:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":225,"name":"bool","nodeType":"ElementaryTypeName","src":"6232:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6231:6:0"},"scope":296,"src":"6155:316:0","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":294,"nodeType":"Block","src":"6792:233:0","statements":[{"condition":{"arguments":[{"id":268,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"6814:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":269,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":262,"src":"6820:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":267,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81,"src":"6806:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6806:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":292,"nodeType":"Block","src":"6982:37:0","statements":[{"expression":{"hexValue":"66616c7365","id":290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7003:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":266,"id":291,"nodeType":"Return","src":"6996:12:0"}]},"id":293,"nodeType":"IfStatement","src":"6802:217:0","trueBody":{"id":289,"nodeType":"Block","src":"6830:146:0","statements":[{"expression":{"id":278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"baseExpression":{"id":271,"name":"_roles","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":27,"src":"6844:6:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_RoleData_$22_storage_$","typeString":"mapping(bytes32 => struct AccessControl.RoleData storage ref)"}},"id":273,"indexExpression":{"id":272,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"6851:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6844:12:0","typeDescriptions":{"typeIdentifier":"t_struct$_RoleData_$22_storage","typeString":"struct AccessControl.RoleData storage ref"}},"id":274,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6857:7:0","memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":19,"src":"6844:20:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":276,"indexExpression":{"id":275,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":262,"src":"6865:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6844:29:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6876:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"6844:37:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":279,"nodeType":"ExpressionStatement","src":"6844:37:0"},{"eventCall":{"arguments":[{"id":281,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"6912:4:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":282,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":262,"src":"6918:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":283,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":391,"src":"6927:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6927:12:0","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":280,"name":"RoleRevoked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":336,"src":"6900:11:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6900:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":286,"nodeType":"EmitStatement","src":"6895:45:0"},{"expression":{"hexValue":"74727565","id":287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6961:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":266,"id":288,"nodeType":"Return","src":"6954:11:0"}]}}]},"documentation":{"id":258,"nodeType":"StructuredDocumentation","src":"6477:226:0","text":" @dev Attempts to revoke `role` from `account` and returns a boolean indicating if `role` was revoked.\n Internal function without access restriction.\n May emit a {RoleRevoked} event."},"id":295,"implemented":true,"kind":"function","modifiers":[],"name":"_revokeRole","nameLocation":"6717:11:0","nodeType":"FunctionDefinition","parameters":{"id":263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":260,"mutability":"mutable","name":"role","nameLocation":"6737:4:0","nodeType":"VariableDeclaration","scope":295,"src":"6729:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":259,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6729:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":262,"mutability":"mutable","name":"account","nameLocation":"6751:7:0","nodeType":"VariableDeclaration","scope":295,"src":"6743:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":261,"name":"address","nodeType":"ElementaryTypeName","src":"6743:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6728:31:0"},"returnParameters":{"id":266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":265,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":295,"src":"6786:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":264,"name":"bool","nodeType":"ElementaryTypeName","src":"6786:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6785:6:0"},"scope":296,"src":"6708:317:0","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":297,"src":"1962:5065:0","usedErrors":[306,309],"usedEvents":[318,327,336]}],"src":"108:6920:0"},"id":0},"@openzeppelin/contracts/access/IAccessControl.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","exportedSymbols":{"IAccessControl":[379]},"id":380,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":298,"literals":["solidity",">=","0.8",".4"],"nodeType":"PragmaDirective","src":"109:24:1"},{"abstract":false,"baseContracts":[],"canonicalName":"IAccessControl","contractDependencies":[],"contractKind":"interface","documentation":{"id":299,"nodeType":"StructuredDocumentation","src":"135:90:1","text":" @dev External interface of AccessControl declared to support ERC-165 detection."},"fullyImplemented":false,"id":379,"linearizedBaseContracts":[379],"name":"IAccessControl","nameLocation":"236:14:1","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":300,"nodeType":"StructuredDocumentation","src":"257:56:1","text":" @dev The `account` is missing a role."},"errorSelector":"e2517d3f","id":306,"name":"AccessControlUnauthorizedAccount","nameLocation":"324:32:1","nodeType":"ErrorDefinition","parameters":{"id":305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":302,"mutability":"mutable","name":"account","nameLocation":"365:7:1","nodeType":"VariableDeclaration","scope":306,"src":"357:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":301,"name":"address","nodeType":"ElementaryTypeName","src":"357:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":304,"mutability":"mutable","name":"neededRole","nameLocation":"382:10:1","nodeType":"VariableDeclaration","scope":306,"src":"374:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":303,"name":"bytes32","nodeType":"ElementaryTypeName","src":"374:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"356:37:1"},"src":"318:76:1"},{"documentation":{"id":307,"nodeType":"StructuredDocumentation","src":"400:148:1","text":" @dev The caller of a function is not the expected one.\n NOTE: Don't confuse with {AccessControlUnauthorizedAccount}."},"errorSelector":"6697b232","id":309,"name":"AccessControlBadConfirmation","nameLocation":"559:28:1","nodeType":"ErrorDefinition","parameters":{"id":308,"nodeType":"ParameterList","parameters":[],"src":"587:2:1"},"src":"553:37:1"},{"anonymous":false,"documentation":{"id":310,"nodeType":"StructuredDocumentation","src":"596:254:1","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 to signal this."},"eventSelector":"bd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff","id":318,"name":"RoleAdminChanged","nameLocation":"861:16:1","nodeType":"EventDefinition","parameters":{"id":317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":312,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"894:4:1","nodeType":"VariableDeclaration","scope":318,"src":"878:20:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":311,"name":"bytes32","nodeType":"ElementaryTypeName","src":"878:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":314,"indexed":true,"mutability":"mutable","name":"previousAdminRole","nameLocation":"916:17:1","nodeType":"VariableDeclaration","scope":318,"src":"900:33:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":313,"name":"bytes32","nodeType":"ElementaryTypeName","src":"900:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":316,"indexed":true,"mutability":"mutable","name":"newAdminRole","nameLocation":"951:12:1","nodeType":"VariableDeclaration","scope":318,"src":"935:28:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":315,"name":"bytes32","nodeType":"ElementaryTypeName","src":"935:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"877:87:1"},"src":"855:110:1"},{"anonymous":false,"documentation":{"id":319,"nodeType":"StructuredDocumentation","src":"971:295:1","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":327,"name":"RoleGranted","nameLocation":"1277:11:1","nodeType":"EventDefinition","parameters":{"id":326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":321,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"1305:4:1","nodeType":"VariableDeclaration","scope":327,"src":"1289:20:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":320,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1289:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":323,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1327:7:1","nodeType":"VariableDeclaration","scope":327,"src":"1311:23:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":322,"name":"address","nodeType":"ElementaryTypeName","src":"1311:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":325,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"1352:6:1","nodeType":"VariableDeclaration","scope":327,"src":"1336:22:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":324,"name":"address","nodeType":"ElementaryTypeName","src":"1336:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1288:71:1"},"src":"1271:89:1"},{"anonymous":false,"documentation":{"id":328,"nodeType":"StructuredDocumentation","src":"1366:275:1","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":336,"name":"RoleRevoked","nameLocation":"1652:11:1","nodeType":"EventDefinition","parameters":{"id":335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":330,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"1680:4:1","nodeType":"VariableDeclaration","scope":336,"src":"1664:20:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":329,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1664:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":332,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1702:7:1","nodeType":"VariableDeclaration","scope":336,"src":"1686:23:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":331,"name":"address","nodeType":"ElementaryTypeName","src":"1686:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":334,"indexed":true,"mutability":"mutable","name":"sender","nameLocation":"1727:6:1","nodeType":"VariableDeclaration","scope":336,"src":"1711:22:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":333,"name":"address","nodeType":"ElementaryTypeName","src":"1711:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1663:71:1"},"src":"1646:89:1"},{"documentation":{"id":337,"nodeType":"StructuredDocumentation","src":"1741:76:1","text":" @dev Returns `true` if `account` has been granted `role`."},"functionSelector":"91d14854","id":346,"implemented":false,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"1831:7:1","nodeType":"FunctionDefinition","parameters":{"id":342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":339,"mutability":"mutable","name":"role","nameLocation":"1847:4:1","nodeType":"VariableDeclaration","scope":346,"src":"1839:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":338,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1839:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":341,"mutability":"mutable","name":"account","nameLocation":"1861:7:1","nodeType":"VariableDeclaration","scope":346,"src":"1853:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":340,"name":"address","nodeType":"ElementaryTypeName","src":"1853:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1838:31:1"},"returnParameters":{"id":345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":344,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":346,"src":"1893:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":343,"name":"bool","nodeType":"ElementaryTypeName","src":"1893:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1892:6:1"},"scope":379,"src":"1822:77:1","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":347,"nodeType":"StructuredDocumentation","src":"1905:184:1","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":354,"implemented":false,"kind":"function","modifiers":[],"name":"getRoleAdmin","nameLocation":"2103:12:1","nodeType":"FunctionDefinition","parameters":{"id":350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":349,"mutability":"mutable","name":"role","nameLocation":"2124:4:1","nodeType":"VariableDeclaration","scope":354,"src":"2116:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":348,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2116:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2115:14:1"},"returnParameters":{"id":353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":352,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":354,"src":"2153:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":351,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2153:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2152:9:1"},"scope":379,"src":"2094:68:1","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":355,"nodeType":"StructuredDocumentation","src":"2168:239:1","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":362,"implemented":false,"kind":"function","modifiers":[],"name":"grantRole","nameLocation":"2421:9:1","nodeType":"FunctionDefinition","parameters":{"id":360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":357,"mutability":"mutable","name":"role","nameLocation":"2439:4:1","nodeType":"VariableDeclaration","scope":362,"src":"2431:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":356,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2431:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":359,"mutability":"mutable","name":"account","nameLocation":"2453:7:1","nodeType":"VariableDeclaration","scope":362,"src":"2445:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":358,"name":"address","nodeType":"ElementaryTypeName","src":"2445:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2430:31:1"},"returnParameters":{"id":361,"nodeType":"ParameterList","parameters":[],"src":"2470:0:1"},"scope":379,"src":"2412:59:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":363,"nodeType":"StructuredDocumentation","src":"2477:223:1","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":370,"implemented":false,"kind":"function","modifiers":[],"name":"revokeRole","nameLocation":"2714:10:1","nodeType":"FunctionDefinition","parameters":{"id":368,"nodeType":"ParameterList","parameters":[{"constant":false,"id":365,"mutability":"mutable","name":"role","nameLocation":"2733:4:1","nodeType":"VariableDeclaration","scope":370,"src":"2725:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":364,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2725:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":367,"mutability":"mutable","name":"account","nameLocation":"2747:7:1","nodeType":"VariableDeclaration","scope":370,"src":"2739:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":366,"name":"address","nodeType":"ElementaryTypeName","src":"2739:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2724:31:1"},"returnParameters":{"id":369,"nodeType":"ParameterList","parameters":[],"src":"2764:0:1"},"scope":379,"src":"2705:60:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":371,"nodeType":"StructuredDocumentation","src":"2771:491:1","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":378,"implemented":false,"kind":"function","modifiers":[],"name":"renounceRole","nameLocation":"3276:12:1","nodeType":"FunctionDefinition","parameters":{"id":376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":373,"mutability":"mutable","name":"role","nameLocation":"3297:4:1","nodeType":"VariableDeclaration","scope":378,"src":"3289:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":372,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3289:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":375,"mutability":"mutable","name":"callerConfirmation","nameLocation":"3311:18:1","nodeType":"VariableDeclaration","scope":378,"src":"3303:26:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":374,"name":"address","nodeType":"ElementaryTypeName","src":"3303:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3288:42:1"},"returnParameters":{"id":377,"nodeType":"ParameterList","parameters":[],"src":"3339:0:1"},"scope":379,"src":"3267:73:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":380,"src":"226:3116:1","usedErrors":[306,309],"usedEvents":[318,327,336]}],"src":"109:3234:1"},"id":1},"@openzeppelin/contracts/utils/Context.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","exportedSymbols":{"Context":[409]},"id":410,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":381,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"101:24:2"},{"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":382,"nodeType":"StructuredDocumentation","src":"127:496:2","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":409,"linearizedBaseContracts":[409],"name":"Context","nameLocation":"642:7:2","nodeType":"ContractDefinition","nodes":[{"body":{"id":390,"nodeType":"Block","src":"718:34:2","statements":[{"expression":{"expression":{"id":387,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"735:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"739:6:2","memberName":"sender","nodeType":"MemberAccess","src":"735:10:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":386,"id":389,"nodeType":"Return","src":"728:17:2"}]},"id":391,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"665:10:2","nodeType":"FunctionDefinition","parameters":{"id":383,"nodeType":"ParameterList","parameters":[],"src":"675:2:2"},"returnParameters":{"id":386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":385,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":391,"src":"709:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":384,"name":"address","nodeType":"ElementaryTypeName","src":"709:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"708:9:2"},"scope":409,"src":"656:96:2","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":399,"nodeType":"Block","src":"825:32:2","statements":[{"expression":{"expression":{"id":396,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"842:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"846:4:2","memberName":"data","nodeType":"MemberAccess","src":"842:8:2","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":395,"id":398,"nodeType":"Return","src":"835:15:2"}]},"id":400,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"767:8:2","nodeType":"FunctionDefinition","parameters":{"id":392,"nodeType":"ParameterList","parameters":[],"src":"775:2:2"},"returnParameters":{"id":395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":394,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":400,"src":"809:14:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":393,"name":"bytes","nodeType":"ElementaryTypeName","src":"809:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"808:16:2"},"scope":409,"src":"758:99:2","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":407,"nodeType":"Block","src":"935:25:2","statements":[{"expression":{"hexValue":"30","id":405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"952:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":404,"id":406,"nodeType":"Return","src":"945:8:2"}]},"id":408,"implemented":true,"kind":"function","modifiers":[],"name":"_contextSuffixLength","nameLocation":"872:20:2","nodeType":"FunctionDefinition","parameters":{"id":401,"nodeType":"ParameterList","parameters":[],"src":"892:2:2"},"returnParameters":{"id":404,"nodeType":"ParameterList","parameters":[{"constant":false,"id":403,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":408,"src":"926:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":402,"name":"uint256","nodeType":"ElementaryTypeName","src":"926:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"925:9:2"},"scope":409,"src":"863:97:2","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":410,"src":"624:338:2","usedErrors":[],"usedEvents":[]}],"src":"101:862:2"},"id":2},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/ERC165.sol","exportedSymbols":{"ERC165":[433],"IERC165":[445]},"id":434,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":411,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"114:24:3"},{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","file":"./IERC165.sol","id":413,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":434,"sourceUnit":446,"src":"140:38:3","symbolAliases":[{"foreign":{"id":412,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":445,"src":"148:7:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":415,"name":"IERC165","nameLocations":["688:7:3"],"nodeType":"IdentifierPath","referencedDeclaration":445,"src":"688:7:3"},"id":416,"nodeType":"InheritanceSpecifier","src":"688:7:3"}],"canonicalName":"ERC165","contractDependencies":[],"contractKind":"contract","documentation":{"id":414,"nodeType":"StructuredDocumentation","src":"180:479:3","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":433,"linearizedBaseContracts":[433,445],"name":"ERC165","nameLocation":"678:6:3","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[444],"body":{"id":431,"nodeType":"Block","src":"812:64:3","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":424,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":419,"src":"829:11:3","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":426,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":445,"src":"849:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC165_$445_$","typeString":"type(contract IERC165)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IERC165_$445_$","typeString":"type(contract IERC165)"}],"id":425,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"844:4:3","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"844:13:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IERC165_$445","typeString":"type(contract IERC165)"}},"id":428,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"858:11:3","memberName":"interfaceId","nodeType":"MemberAccess","src":"844:25:3","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"829:40:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":423,"id":430,"nodeType":"Return","src":"822:47:3"}]},"documentation":{"id":417,"nodeType":"StructuredDocumentation","src":"702:23:3","text":"@inheritdoc IERC165"},"functionSelector":"01ffc9a7","id":432,"implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"739:17:3","nodeType":"FunctionDefinition","parameters":{"id":420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":419,"mutability":"mutable","name":"interfaceId","nameLocation":"764:11:3","nodeType":"VariableDeclaration","scope":432,"src":"757:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":418,"name":"bytes4","nodeType":"ElementaryTypeName","src":"757:6:3","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"756:20:3"},"returnParameters":{"id":423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":422,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":432,"src":"806:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":421,"name":"bool","nodeType":"ElementaryTypeName","src":"806:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"805:6:3"},"scope":433,"src":"730:146:3","stateMutability":"view","virtual":true,"visibility":"public"}],"scope":434,"src":"660:218:3","usedErrors":[],"usedEvents":[]}],"src":"114:765:3"},"id":3},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/introspection/IERC165.sol","exportedSymbols":{"IERC165":[445]},"id":446,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":435,"literals":["solidity",">=","0.4",".16"],"nodeType":"PragmaDirective","src":"115:25:4"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC165","contractDependencies":[],"contractKind":"interface","documentation":{"id":436,"nodeType":"StructuredDocumentation","src":"142:280:4","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":445,"linearizedBaseContracts":[445],"name":"IERC165","nameLocation":"433:7:4","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":437,"nodeType":"StructuredDocumentation","src":"447:340:4","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":444,"implemented":false,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"801:17:4","nodeType":"FunctionDefinition","parameters":{"id":440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":439,"mutability":"mutable","name":"interfaceId","nameLocation":"826:11:4","nodeType":"VariableDeclaration","scope":444,"src":"819:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":438,"name":"bytes4","nodeType":"ElementaryTypeName","src":"819:6:4","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"818:20:4"},"returnParameters":{"id":443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":442,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":444,"src":"862:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":441,"name":"bool","nodeType":"ElementaryTypeName","src":"862:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"861:6:4"},"scope":445,"src":"792:76:4","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":446,"src":"423:447:4","usedErrors":[],"usedEvents":[]}],"src":"115:756:4"},"id":4},"@tw3/esp/contracts/interfaces/IDataPointRegistry.sol":{"ast":{"absolutePath":"@tw3/esp/contracts/interfaces/IDataPointRegistry.sol","exportedSymbols":{"DataExists":[618],"DataPointRegistered":[652],"DataPointRoyalty":[677],"DataPointWritten":[614],"IDataPointRegistry":[534],"IDataPointStorage":[573],"IOwnable":[608],"InsufficientRoyaltyPayment":[626],"InvalidDPS":[622],"InvalidData":[620],"InvalidPublisher":[630],"RoyaltiesCollected":[638],"RoyaltiesPaid":[646],"calculateDataPointAddress":[671]},"id":535,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":447,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"32:24:5"},{"absolutePath":"@tw3/esp/contracts/types/ESPTypes.sol","file":"../types/ESPTypes.sol","id":448,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":535,"sourceUnit":678,"src":"97:31:5","symbolAliases":[],"unitAlias":""},{"absolutePath":"@tw3/esp/contracts/interfaces/IDataPointStorage.sol","file":"./IDataPointStorage.sol","id":449,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":535,"sourceUnit":574,"src":"129:33:5","symbolAliases":[],"unitAlias":""},{"absolutePath":"@tw3/esp/contracts/interfaces/IOwnable.sol","file":"./IOwnable.sol","id":450,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":535,"sourceUnit":609,"src":"163:24:5","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":452,"name":"IOwnable","nameLocations":["388:8:5"],"nodeType":"IdentifierPath","referencedDeclaration":608,"src":"388:8:5"},"id":453,"nodeType":"InheritanceSpecifier","src":"388:8:5"}],"canonicalName":"IDataPointRegistry","contractDependencies":[],"contractKind":"interface","documentation":{"id":451,"nodeType":"StructuredDocumentation","src":"189:167:5","text":"@title Data Point Registry Contract\n @notice Manages data point publishing and royalty payments\n @dev Extends storage functionality with economic incentives"},"fullyImplemented":false,"id":534,"linearizedBaseContracts":[534,608],"name":"IDataPointRegistry","nameLocation":"366:18:5","nodeType":"ContractDefinition","nodes":[{"functionSelector":"c4d1510d","id":458,"implemented":false,"kind":"function","modifiers":[],"name":"royaltyRate","nameLocation":"413:11:5","nodeType":"FunctionDefinition","parameters":{"id":454,"nodeType":"ParameterList","parameters":[],"src":"424:2:5"},"returnParameters":{"id":457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":456,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":458,"src":"450:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":455,"name":"uint256","nodeType":"ElementaryTypeName","src":"450:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"449:9:5"},"scope":534,"src":"404:55:5","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"ef4e06ec","id":464,"implemented":false,"kind":"function","modifiers":[],"name":"DPS","nameLocation":"474:3:5","nodeType":"FunctionDefinition","parameters":{"id":459,"nodeType":"ParameterList","parameters":[],"src":"477:2:5"},"returnParameters":{"id":463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":462,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":464,"src":"503:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IDataPointStorage_$573","typeString":"contract IDataPointStorage"},"typeName":{"id":461,"nodeType":"UserDefinedTypeName","pathNode":{"id":460,"name":"IDataPointStorage","nameLocations":["503:17:5"],"nodeType":"IdentifierPath","referencedDeclaration":573,"src":"503:17:5"},"referencedDeclaration":573,"src":"503:17:5","typeDescriptions":{"typeIdentifier":"t_contract$_IDataPointStorage_$573","typeString":"contract IDataPointStorage"}},"visibility":"internal"}],"src":"502:19:5"},"scope":534,"src":"465:57:5","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"0ccbebf7","id":469,"implemented":false,"kind":"function","modifiers":[],"name":"setDPS","nameLocation":"536:6:5","nodeType":"FunctionDefinition","parameters":{"id":467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":466,"mutability":"mutable","name":"_dps","nameLocation":"551:4:5","nodeType":"VariableDeclaration","scope":469,"src":"543:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":465,"name":"address","nodeType":"ElementaryTypeName","src":"543:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"542:14:5"},"returnParameters":{"id":468,"nodeType":"ParameterList","parameters":[],"src":"565:0:5"},"scope":534,"src":"527:39:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"537782a2","id":474,"implemented":false,"kind":"function","modifiers":[],"name":"setRoyaltyRate","nameLocation":"580:14:5","nodeType":"FunctionDefinition","parameters":{"id":472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":471,"mutability":"mutable","name":"_royaltyRate","nameLocation":"603:12:5","nodeType":"VariableDeclaration","scope":474,"src":"595:20:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":470,"name":"uint256","nodeType":"ElementaryTypeName","src":"595:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"594:22:5"},"returnParameters":{"id":473,"nodeType":"ParameterList","parameters":[],"src":"625:0:5"},"scope":534,"src":"571:55:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"5f3ebd86","id":482,"implemented":false,"kind":"function","modifiers":[],"name":"updateRoyaltyRecord","nameLocation":"640:19:5","nodeType":"FunctionDefinition","parameters":{"id":480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":476,"mutability":"mutable","name":"_dataPointAddress","nameLocation":"668:17:5","nodeType":"VariableDeclaration","scope":482,"src":"660:25:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":475,"name":"bytes32","nodeType":"ElementaryTypeName","src":"660:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":479,"mutability":"mutable","name":"_dataPointRoyalty","nameLocation":"711:17:5","nodeType":"VariableDeclaration","scope":482,"src":"687:41:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DataPointRoyalty_$677_memory_ptr","typeString":"struct DataPointRoyalty"},"typeName":{"id":478,"nodeType":"UserDefinedTypeName","pathNode":{"id":477,"name":"DataPointRoyalty","nameLocations":["687:16:5"],"nodeType":"IdentifierPath","referencedDeclaration":677,"src":"687:16:5"},"referencedDeclaration":677,"src":"687:16:5","typeDescriptions":{"typeIdentifier":"t_struct$_DataPointRoyalty_$677_storage_ptr","typeString":"struct DataPointRoyalty"}},"visibility":"internal"}],"src":"659:70:5"},"returnParameters":{"id":481,"nodeType":"ParameterList","parameters":[],"src":"738:0:5"},"scope":534,"src":"631:108:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"cc8e4f70","id":489,"implemented":false,"kind":"function","modifiers":[],"name":"updatePublisherAddress","nameLocation":"753:22:5","nodeType":"FunctionDefinition","parameters":{"id":487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":484,"mutability":"mutable","name":"_dataPointAddress","nameLocation":"784:17:5","nodeType":"VariableDeclaration","scope":489,"src":"776:25:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":483,"name":"bytes32","nodeType":"ElementaryTypeName","src":"776:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":486,"mutability":"mutable","name":"_newPublisher","nameLocation":"811:13:5","nodeType":"VariableDeclaration","scope":489,"src":"803:21:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":485,"name":"address","nodeType":"ElementaryTypeName","src":"803:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"775:50:5"},"returnParameters":{"id":488,"nodeType":"ParameterList","parameters":[],"src":"834:0:5"},"scope":534,"src":"744:91:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":490,"nodeType":"StructuredDocumentation","src":"840:199:5","text":"@notice Calculates the royalty amount for a data point with overflow protection\n @param _dataPointAddress The address of the data point\n @return The calculated royalty amount in wei"},"functionSelector":"fd45d702","id":497,"implemented":false,"kind":"function","modifiers":[],"name":"getDataPointRoyalty","nameLocation":"1053:19:5","nodeType":"FunctionDefinition","parameters":{"id":493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":492,"mutability":"mutable","name":"_dataPointAddress","nameLocation":"1081:17:5","nodeType":"VariableDeclaration","scope":497,"src":"1073:25:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":491,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1073:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1072:27:5"},"returnParameters":{"id":496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":495,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":497,"src":"1123:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":494,"name":"uint256","nodeType":"ElementaryTypeName","src":"1123:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1122:9:5"},"scope":534,"src":"1044:88:5","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":498,"nodeType":"StructuredDocumentation","src":"1137:295:5","text":"@notice Allows the owner to transfer royalties to a different address\n @param _publisher The address of the publisher\n @param _amount The amount to transfer\n @param _to The address to send the royalties to\n @dev Should be protected by a strong consensus mechanism"},"functionSelector":"dbba0f01","id":507,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1446:8:5","nodeType":"FunctionDefinition","parameters":{"id":505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":500,"mutability":"mutable","name":"_publisher","nameLocation":"1463:10:5","nodeType":"VariableDeclaration","scope":507,"src":"1455:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":499,"name":"address","nodeType":"ElementaryTypeName","src":"1455:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":502,"mutability":"mutable","name":"_amount","nameLocation":"1483:7:5","nodeType":"VariableDeclaration","scope":507,"src":"1475:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":501,"name":"uint256","nodeType":"ElementaryTypeName","src":"1475:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":504,"mutability":"mutable","name":"_to","nameLocation":"1500:3:5","nodeType":"VariableDeclaration","scope":507,"src":"1492:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":503,"name":"address","nodeType":"ElementaryTypeName","src":"1492:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1454:50:5"},"returnParameters":{"id":506,"nodeType":"ParameterList","parameters":[],"src":"1513:0:5"},"scope":534,"src":"1437:77:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":508,"nodeType":"StructuredDocumentation","src":"1519:174:5","text":"@notice Allows publishers to withdraw their earned royalties\n @param _amount The amount to withdraw\n @param _withdrawTo The address to send the royalties to"},"functionSelector":"4030c167","id":515,"implemented":false,"kind":"function","modifiers":[],"name":"collectRoyalties","nameLocation":"1707:16:5","nodeType":"FunctionDefinition","parameters":{"id":513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":510,"mutability":"mutable","name":"_amount","nameLocation":"1732:7:5","nodeType":"VariableDeclaration","scope":515,"src":"1724:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":509,"name":"uint256","nodeType":"ElementaryTypeName","src":"1724:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":512,"mutability":"mutable","name":"_withdrawTo","nameLocation":"1749:11:5","nodeType":"VariableDeclaration","scope":515,"src":"1741:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":511,"name":"address","nodeType":"ElementaryTypeName","src":"1741:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1723:38:5"},"returnParameters":{"id":514,"nodeType":"ParameterList","parameters":[],"src":"1770:0:5"},"scope":534,"src":"1698:73:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":516,"nodeType":"StructuredDocumentation","src":"1776:151:5","text":"@notice Checks the royalty balance of a publisher\n @param _publisher The address of the publisher\n @return The current balance in wei"},"functionSelector":"a31bae82","id":523,"implemented":false,"kind":"function","modifiers":[],"name":"royaltyBalance","nameLocation":"1941:14:5","nodeType":"FunctionDefinition","parameters":{"id":519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":518,"mutability":"mutable","name":"_publisher","nameLocation":"1964:10:5","nodeType":"VariableDeclaration","scope":523,"src":"1956:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":517,"name":"address","nodeType":"ElementaryTypeName","src":"1956:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1955:20:5"},"returnParameters":{"id":522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":521,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":523,"src":"1999:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":520,"name":"uint256","nodeType":"ElementaryTypeName","src":"1999:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1998:9:5"},"scope":534,"src":"1932:76:5","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":524,"nodeType":"StructuredDocumentation","src":"2013:343:5","text":"@notice Writes a new data point and handles royalty logic\n @dev Use address(0) as publisher to waive royalties\n @param _dataPoint The data point to write\n @param _publisher The publisher of the data point, can be address(0) to waive royalties\n @return dataPointAddress The address where the data point is stored"},"functionSelector":"f6e20077","id":533,"implemented":false,"kind":"function","modifiers":[],"name":"registerDataPoint","nameLocation":"2370:17:5","nodeType":"FunctionDefinition","parameters":{"id":529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":526,"mutability":"mutable","name":"_dataPoint","nameLocation":"2401:10:5","nodeType":"VariableDeclaration","scope":533,"src":"2388:23:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":525,"name":"bytes","nodeType":"ElementaryTypeName","src":"2388:5:5","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":528,"mutability":"mutable","name":"_publisher","nameLocation":"2421:10:5","nodeType":"VariableDeclaration","scope":533,"src":"2413:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":527,"name":"address","nodeType":"ElementaryTypeName","src":"2413:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2387:45:5"},"returnParameters":{"id":532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":531,"mutability":"mutable","name":"dataPointAddress","nameLocation":"2467:16:5","nodeType":"VariableDeclaration","scope":533,"src":"2459:24:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":530,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2459:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2458:26:5"},"scope":534,"src":"2361:124:5","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":535,"src":"356:2131:5","usedErrors":[586,591],"usedEvents":[581]}],"src":"32:2456:5"},"id":5},"@tw3/esp/contracts/interfaces/IDataPointStorage.sol":{"ast":{"absolutePath":"@tw3/esp/contracts/interfaces/IDataPointStorage.sol","exportedSymbols":{"IDataPointStorage":[573]},"id":574,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":536,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"32:24:6"},{"abstract":false,"baseContracts":[],"canonicalName":"IDataPointStorage","contractDependencies":[],"contractKind":"interface","documentation":{"id":537,"nodeType":"StructuredDocumentation","src":"97:160:6","text":"@title Data Point Storage Contract\n @notice Provides core storage functionality for data points\n @dev Basic implementation without collision handling"},"fullyImplemented":false,"id":573,"linearizedBaseContracts":[573],"name":"IDataPointStorage","nameLocation":"267:17:6","nodeType":"ContractDefinition","nodes":[{"functionSelector":"ffa1ad74","id":542,"implemented":false,"kind":"function","modifiers":[],"name":"VERSION","nameLocation":"301:7:6","nodeType":"FunctionDefinition","parameters":{"id":538,"nodeType":"ParameterList","parameters":[],"src":"308:2:6"},"returnParameters":{"id":541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":540,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":542,"src":"334:5:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":539,"name":"uint8","nodeType":"ElementaryTypeName","src":"334:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"333:7:6"},"scope":573,"src":"292:49:6","stateMutability":"pure","virtual":false,"visibility":"external"},{"documentation":{"id":543,"nodeType":"StructuredDocumentation","src":"347:185:6","text":"@notice Calculates the storage address for a data point\n @param _data The data point to calculate address for\n @return _dataPointAddress The calculated storage address"},"functionSelector":"e8a4c04e","id":550,"implemented":false,"kind":"function","modifiers":[],"name":"calculateAddress","nameLocation":"546:16:6","nodeType":"FunctionDefinition","parameters":{"id":546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":545,"mutability":"mutable","name":"_data","nameLocation":"576:5:6","nodeType":"VariableDeclaration","scope":550,"src":"563:18:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":544,"name":"bytes","nodeType":"ElementaryTypeName","src":"563:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"562:20:6"},"returnParameters":{"id":549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":548,"mutability":"mutable","name":"_dataPointAddress","nameLocation":"614:17:6","nodeType":"VariableDeclaration","scope":550,"src":"606:25:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":547,"name":"bytes32","nodeType":"ElementaryTypeName","src":"606:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"605:27:6"},"scope":573,"src":"537:96:6","stateMutability":"pure","virtual":false,"visibility":"external"},{"functionSelector":"2be681f5","id":557,"implemented":false,"kind":"function","modifiers":[],"name":"dataPointSize","nameLocation":"647:13:6","nodeType":"FunctionDefinition","parameters":{"id":553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":552,"mutability":"mutable","name":"_dataPointAddress","nameLocation":"669:17:6","nodeType":"VariableDeclaration","scope":557,"src":"661:25:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":551,"name":"bytes32","nodeType":"ElementaryTypeName","src":"661:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"660:27:6"},"returnParameters":{"id":556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":555,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":557,"src":"711:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":554,"name":"uint256","nodeType":"ElementaryTypeName","src":"711:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"710:9:6"},"scope":573,"src":"638:82:6","stateMutability":"view","virtual":false,"visibility":"external"},{"functionSelector":"80435b64","id":564,"implemented":false,"kind":"function","modifiers":[],"name":"readDataPoint","nameLocation":"734:13:6","nodeType":"FunctionDefinition","parameters":{"id":560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":559,"mutability":"mutable","name":"_dataPointAddress","nameLocation":"756:17:6","nodeType":"VariableDeclaration","scope":564,"src":"748:25:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":558,"name":"bytes32","nodeType":"ElementaryTypeName","src":"748:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"747:27:6"},"returnParameters":{"id":563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":562,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":564,"src":"798:12:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":561,"name":"bytes","nodeType":"ElementaryTypeName","src":"798:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"797:14:6"},"scope":573,"src":"725:87:6","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":565,"nodeType":"StructuredDocumentation","src":"817:252:6","text":"@notice Stores a new data point with user-specified version\n @dev Reverts if the calculated address is already occupied\n @param _data The data point to store\n @return _dataPointAddress The address where the data point is stored"},"functionSelector":"43748b32","id":572,"implemented":false,"kind":"function","modifiers":[],"name":"writeDataPoint","nameLocation":"1083:14:6","nodeType":"FunctionDefinition","parameters":{"id":568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":567,"mutability":"mutable","name":"_data","nameLocation":"1111:5:6","nodeType":"VariableDeclaration","scope":572,"src":"1098:18:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":566,"name":"bytes","nodeType":"ElementaryTypeName","src":"1098:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1097:20:6"},"returnParameters":{"id":571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":570,"mutability":"mutable","name":"_dataPointAddress","nameLocation":"1144:17:6","nodeType":"VariableDeclaration","scope":572,"src":"1136:25:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":569,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1136:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1135:27:6"},"scope":573,"src":"1074:89:6","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":574,"src":"257:908:6","usedErrors":[],"usedEvents":[]}],"src":"32:1134:6"},"id":6},"@tw3/esp/contracts/interfaces/IOwnable.sol":{"ast":{"absolutePath":"@tw3/esp/contracts/interfaces/IOwnable.sol","exportedSymbols":{"IOwnable":[608]},"id":609,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":575,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"32:24:7"},{"abstract":false,"baseContracts":[],"canonicalName":"IOwnable","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"id":608,"linearizedBaseContracts":[608],"name":"IOwnable","nameLocation":"68:8:7","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"eventSelector":"8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0","id":581,"name":"OwnershipTransferred","nameLocation":"90:20:7","nodeType":"EventDefinition","parameters":{"id":580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":577,"indexed":true,"mutability":"mutable","name":"previousOwner","nameLocation":"127:13:7","nodeType":"VariableDeclaration","scope":581,"src":"111:29:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":576,"name":"address","nodeType":"ElementaryTypeName","src":"111:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":579,"indexed":true,"mutability":"mutable","name":"newOwner","nameLocation":"158:8:7","nodeType":"VariableDeclaration","scope":581,"src":"142:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":578,"name":"address","nodeType":"ElementaryTypeName","src":"142:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"110:57:7"},"src":"84:84:7"},{"documentation":{"id":582,"nodeType":"StructuredDocumentation","src":"174:83:7","text":" @dev The caller account is not authorized to perform an operation."},"errorSelector":"118cdaa7","id":586,"name":"OwnableUnauthorizedAccount","nameLocation":"268:26:7","nodeType":"ErrorDefinition","parameters":{"id":585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":584,"mutability":"mutable","name":"account","nameLocation":"303:7:7","nodeType":"VariableDeclaration","scope":586,"src":"295:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":583,"name":"address","nodeType":"ElementaryTypeName","src":"295:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"294:17:7"},"src":"262:50:7"},{"documentation":{"id":587,"nodeType":"StructuredDocumentation","src":"317:80:7","text":" @dev The owner is not a valid owner account. (eg. `address(0)`)"},"errorSelector":"1e4fbdf7","id":591,"name":"OwnableInvalidOwner","nameLocation":"408:19:7","nodeType":"ErrorDefinition","parameters":{"id":590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":589,"mutability":"mutable","name":"owner","nameLocation":"436:5:7","nodeType":"VariableDeclaration","scope":591,"src":"428:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":588,"name":"address","nodeType":"ElementaryTypeName","src":"428:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"427:15:7"},"src":"402:41:7"},{"documentation":{"id":592,"nodeType":"StructuredDocumentation","src":"449:63:7","text":" @dev Returns the address of the current owner."},"functionSelector":"8da5cb5b","id":597,"implemented":false,"kind":"function","modifiers":[],"name":"owner","nameLocation":"526:5:7","nodeType":"FunctionDefinition","parameters":{"id":593,"nodeType":"ParameterList","parameters":[],"src":"531:2:7"},"returnParameters":{"id":596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":595,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":597,"src":"557:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":594,"name":"address","nodeType":"ElementaryTypeName","src":"557:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"556:9:7"},"scope":608,"src":"517:49:7","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":598,"nodeType":"StructuredDocumentation","src":"571:318:7","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":601,"implemented":false,"kind":"function","modifiers":[],"name":"renounceOwnership","nameLocation":"903:17:7","nodeType":"FunctionDefinition","parameters":{"id":599,"nodeType":"ParameterList","parameters":[],"src":"920:2:7"},"returnParameters":{"id":600,"nodeType":"ParameterList","parameters":[],"src":"931:0:7"},"scope":608,"src":"894:38:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":602,"nodeType":"StructuredDocumentation","src":"937:135:7","text":" @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."},"functionSelector":"f2fde38b","id":607,"implemented":false,"kind":"function","modifiers":[],"name":"transferOwnership","nameLocation":"1086:17:7","nodeType":"FunctionDefinition","parameters":{"id":605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":604,"mutability":"mutable","name":"newOwner","nameLocation":"1112:8:7","nodeType":"VariableDeclaration","scope":607,"src":"1104:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":603,"name":"address","nodeType":"ElementaryTypeName","src":"1104:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1103:18:7"},"returnParameters":{"id":606,"nodeType":"ParameterList","parameters":[],"src":"1130:0:7"},"scope":608,"src":"1077:54:7","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":609,"src":"58:1075:7","usedErrors":[586,591],"usedEvents":[581]}],"src":"32:1102:7"},"id":7},"@tw3/esp/contracts/types/ESPTypes.sol":{"ast":{"absolutePath":"@tw3/esp/contracts/types/ESPTypes.sol","exportedSymbols":{"DataExists":[618],"DataPointRegistered":[652],"DataPointRoyalty":[677],"DataPointWritten":[614],"InsufficientRoyaltyPayment":[626],"InvalidDPS":[622],"InvalidData":[620],"InvalidPublisher":[630],"RoyaltiesCollected":[638],"RoyaltiesPaid":[646],"calculateDataPointAddress":[671]},"id":678,"license":"AGPL-3.0","nodeType":"SourceUnit","nodes":[{"id":610,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"836:24:8"},{"anonymous":false,"eventSelector":"dd43f6c62c3afab3a2488aea11affa4226ba38e480c135375692d3192564c41a","id":614,"name":"DataPointWritten","nameLocation":"870:16:8","nodeType":"EventDefinition","parameters":{"id":613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":612,"indexed":true,"mutability":"mutable","name":"dataPointAddress","nameLocation":"903:16:8","nodeType":"VariableDeclaration","scope":614,"src":"887:32:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":611,"name":"bytes32","nodeType":"ElementaryTypeName","src":"887:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"886:34:8"},"src":"864:57:8"},{"errorSelector":"7d510ac5","id":618,"name":"DataExists","nameLocation":"931:10:8","nodeType":"ErrorDefinition","parameters":{"id":617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":616,"mutability":"mutable","name":"dataPointAddress","nameLocation":"950:16:8","nodeType":"VariableDeclaration","scope":618,"src":"942:24:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":615,"name":"bytes32","nodeType":"ElementaryTypeName","src":"942:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"941:26:8"},"src":"925:43:8"},{"errorSelector":"5cb045db","id":620,"name":"InvalidData","nameLocation":"976:11:8","nodeType":"ErrorDefinition","parameters":{"id":619,"nodeType":"ParameterList","parameters":[],"src":"987:2:8"},"src":"970:20:8"},{"errorSelector":"608ba60d","id":622,"name":"InvalidDPS","nameLocation":"998:10:8","nodeType":"ErrorDefinition","parameters":{"id":621,"nodeType":"ParameterList","parameters":[],"src":"1008:2:8"},"src":"992:19:8"},{"errorSelector":"261cdeee","id":626,"name":"InsufficientRoyaltyPayment","nameLocation":"1019:26:8","nodeType":"ErrorDefinition","parameters":{"id":625,"nodeType":"ParameterList","parameters":[{"constant":false,"id":624,"mutability":"mutable","name":"royaltyCost","nameLocation":"1054:11:8","nodeType":"VariableDeclaration","scope":626,"src":"1046:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":623,"name":"uint256","nodeType":"ElementaryTypeName","src":"1046:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1045:21:8"},"src":"1013:54:8"},{"errorSelector":"d008cefb","id":630,"name":"InvalidPublisher","nameLocation":"1075:16:8","nodeType":"ErrorDefinition","parameters":{"id":629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":628,"mutability":"mutable","name":"publisher","nameLocation":"1100:9:8","nodeType":"VariableDeclaration","scope":630,"src":"1092:17:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":627,"name":"address","nodeType":"ElementaryTypeName","src":"1092:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1091:19:8"},"src":"1069:42:8"},{"anonymous":false,"eventSelector":"be560c2601ed812892278871b1fc744ae26d7983637db17b90fc0e21a9613cda","id":638,"name":"RoyaltiesCollected","nameLocation":"1121:18:8","nodeType":"EventDefinition","parameters":{"id":637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":632,"indexed":true,"mutability":"mutable","name":"publisher","nameLocation":"1156:9:8","nodeType":"VariableDeclaration","scope":638,"src":"1140:25:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":631,"name":"address","nodeType":"ElementaryTypeName","src":"1140:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":634,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1175:6:8","nodeType":"VariableDeclaration","scope":638,"src":"1167:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":633,"name":"uint256","nodeType":"ElementaryTypeName","src":"1167:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":636,"indexed":true,"mutability":"mutable","name":"withdrawTo","nameLocation":"1199:10:8","nodeType":"VariableDeclaration","scope":638,"src":"1183:26:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":635,"name":"address","nodeType":"ElementaryTypeName","src":"1183:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1139:71:8"},"src":"1115:96:8"},{"anonymous":false,"eventSelector":"8bf49cf7f7d7eba63de731d07cd7aeb4e0a0c7673024fac32ef72decc3d30189","id":646,"name":"RoyaltiesPaid","nameLocation":"1219:13:8","nodeType":"EventDefinition","parameters":{"id":645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":640,"indexed":true,"mutability":"mutable","name":"dataPointAddress","nameLocation":"1249:16:8","nodeType":"VariableDeclaration","scope":646,"src":"1233:32:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":639,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1233:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":642,"indexed":true,"mutability":"mutable","name":"payer","nameLocation":"1283:5:8","nodeType":"VariableDeclaration","scope":646,"src":"1267:21:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":641,"name":"address","nodeType":"ElementaryTypeName","src":"1267:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":644,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1298:6:8","nodeType":"VariableDeclaration","scope":646,"src":"1290:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":643,"name":"uint256","nodeType":"ElementaryTypeName","src":"1290:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1232:73:8"},"src":"1213:93:8"},{"anonymous":false,"eventSelector":"4d17a9548ee6b6702f290ec91b514eba7c67a19e21e6c58a106cd0938d9e710c","id":652,"name":"DataPointRegistered","nameLocation":"1314:19:8","nodeType":"EventDefinition","parameters":{"id":651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":648,"indexed":true,"mutability":"mutable","name":"dataPointAddress","nameLocation":"1350:16:8","nodeType":"VariableDeclaration","scope":652,"src":"1334:32:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":647,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1334:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":650,"indexed":true,"mutability":"mutable","name":"publisher","nameLocation":"1384:9:8","nodeType":"VariableDeclaration","scope":652,"src":"1368:25:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":649,"name":"address","nodeType":"ElementaryTypeName","src":"1368:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1333:61:8"},"src":"1308:87:8"},{"body":{"id":670,"nodeType":"Block","src":"1757:62:8","statements":[{"expression":{"arguments":[{"arguments":[{"id":665,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":655,"src":"1798:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":666,"name":"_version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":657,"src":"1805:8:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":663,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1781:3:8","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1785:12:8","memberName":"encodePacked","nodeType":"MemberAccess","src":"1781:16:8","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1781:33:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":662,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1771:9:8","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1771:44:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":661,"id":669,"nodeType":"Return","src":"1764:51:8"}]},"documentation":{"id":653,"nodeType":"StructuredDocumentation","src":"1401:249:8","text":"@notice Calculates a unique address for a data point\n @dev Uses keccak256 hash of concatenated version and data\n @param _data The data point\n @param _version The version of the data point\n @return bytes32 The calculated address"},"id":671,"implemented":true,"kind":"freeFunction","modifiers":[],"name":"calculateDataPointAddress","nameLocation":"1659:25:8","nodeType":"FunctionDefinition","parameters":{"id":658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":655,"mutability":"mutable","name":"_data","nameLocation":"1704:5:8","nodeType":"VariableDeclaration","scope":671,"src":"1691:18:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":654,"name":"bytes","nodeType":"ElementaryTypeName","src":"1691:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":657,"mutability":"mutable","name":"_version","nameLocation":"1722:8:8","nodeType":"VariableDeclaration","scope":671,"src":"1716:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":656,"name":"uint8","nodeType":"ElementaryTypeName","src":"1716:5:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1684:49:8"},"returnParameters":{"id":661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":660,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":671,"src":"1748:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":659,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1748:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1747:9:8"},"scope":678,"src":"1650:169:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"canonicalName":"DataPointRoyalty","documentation":{"id":672,"nodeType":"StructuredDocumentation","src":"1823:130:8","text":"@notice Structure for tracking royalty information\n @dev Stores gas usage and publisher address for royalty calculations"},"id":677,"members":[{"constant":false,"id":674,"mutability":"mutable","name":"gasUsed","nameLocation":"1992:7:8","nodeType":"VariableDeclaration","scope":677,"src":"1984:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":673,"name":"uint256","nodeType":"ElementaryTypeName","src":"1984:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":676,"mutability":"mutable","name":"publisher","nameLocation":"2014:9:8","nodeType":"VariableDeclaration","scope":677,"src":"2006:17:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":675,"name":"address","nodeType":"ElementaryTypeName","src":"2006:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"DataPointRoyalty","nameLocation":"1960:16:8","nodeType":"StructDefinition","scope":678,"src":"1953:74:8","visibility":"public"}],"src":"836:1191:8"},"id":8},"@wttp/core/contracts/interfaces/IBaseWTTPPermissions.sol":{"ast":{"absolutePath":"@wttp/core/contracts/interfaces/IBaseWTTPPermissions.sol","exportedSymbols":{"IAccessControl":[379],"IBaseWTTPPermissions":[711]},"id":712,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":679,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"32:24:9"},{"absolutePath":"@openzeppelin/contracts/access/IAccessControl.sol","file":"@openzeppelin/contracts/access/IAccessControl.sol","id":680,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":712,"sourceUnit":380,"src":"58:59:9","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":682,"name":"IAccessControl","nameLocations":["317:14:9"],"nodeType":"IdentifierPath","referencedDeclaration":379,"src":"317:14:9"},"id":683,"nodeType":"InheritanceSpecifier","src":"317:14:9"}],"canonicalName":"IBaseWTTPPermissions","contractDependencies":[],"contractKind":"interface","documentation":{"id":681,"nodeType":"StructuredDocumentation","src":"119:164:9","text":"@title WTTP Permissions Contract\n @author Web3 Transfer Protocol (WTTP) Development Team\n @notice Manages role-based access control for the WTTP protocol"},"fullyImplemented":false,"id":711,"linearizedBaseContracts":[711,379],"name":"IBaseWTTPPermissions","nameLocation":"293:20:9","nodeType":"ContractDefinition","nodes":[{"baseFunctions":[346],"documentation":{"id":684,"nodeType":"StructuredDocumentation","src":"339:366:9","text":"@notice Check if an account has a specific role\n @dev Overrides the standard AccessControl implementation to grant DEFAULT_ADMIN_ROLE holders access to all roles\n @param role The role identifier to check\n @param account The address to check for the role\n @return bool True if the account has the role or is a DEFAULT_ADMIN_ROLE holder"},"functionSelector":"91d14854","id":693,"implemented":false,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"719:7:9","nodeType":"FunctionDefinition","parameters":{"id":689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":686,"mutability":"mutable","name":"role","nameLocation":"735:4:9","nodeType":"VariableDeclaration","scope":693,"src":"727:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":685,"name":"bytes32","nodeType":"ElementaryTypeName","src":"727:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":688,"mutability":"mutable","name":"account","nameLocation":"749:7:9","nodeType":"VariableDeclaration","scope":693,"src":"741:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":687,"name":"address","nodeType":"ElementaryTypeName","src":"741:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"726:31:9"},"returnParameters":{"id":692,"nodeType":"ParameterList","parameters":[{"constant":false,"id":691,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":693,"src":"781:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":690,"name":"bool","nodeType":"ElementaryTypeName","src":"781:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"780:6:9"},"scope":711,"src":"710:77:9","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":694,"nodeType":"StructuredDocumentation","src":"792:217:9","text":"@notice Creates a new resource-specific admin role\n @dev Sets the SITE_ADMIN_ROLE as the admin of the new role, preventing creation of privileged roles\n @param _role The new role identifier to create"},"functionSelector":"b2455654","id":699,"implemented":false,"kind":"function","modifiers":[],"name":"createResourceRole","nameLocation":"1023:18:9","nodeType":"FunctionDefinition","parameters":{"id":697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":696,"mutability":"mutable","name":"_role","nameLocation":"1050:5:9","nodeType":"VariableDeclaration","scope":699,"src":"1042:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":695,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1042:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1041:15:9"},"returnParameters":{"id":698,"nodeType":"ParameterList","parameters":[],"src":"1065:0:9"},"scope":711,"src":"1014:52:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":700,"nodeType":"StructuredDocumentation","src":"1071:222:9","text":"@notice Changes the SITE_ADMIN_ROLE identifier\n @dev Allows wiping all current site admin permissions by changing the role hash\n @param _newSiteAdmin The new role identifier to use for site administrators"},"functionSelector":"32729d5e","id":705,"implemented":false,"kind":"function","modifiers":[],"name":"changeSiteAdmin","nameLocation":"1307:15:9","nodeType":"FunctionDefinition","parameters":{"id":703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":702,"mutability":"mutable","name":"_newSiteAdmin","nameLocation":"1331:13:9","nodeType":"VariableDeclaration","scope":705,"src":"1323:21:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":701,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1323:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1322:23:9"},"returnParameters":{"id":704,"nodeType":"ParameterList","parameters":[],"src":"1354:0:9"},"scope":711,"src":"1298:57:9","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"functionSelector":"336875a1","id":710,"implemented":false,"kind":"function","modifiers":[],"name":"getSiteAdminRole","nameLocation":"1369:16:9","nodeType":"FunctionDefinition","parameters":{"id":706,"nodeType":"ParameterList","parameters":[],"src":"1385:2:9"},"returnParameters":{"id":709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":708,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":710,"src":"1411:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":707,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1411:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1410:9:9"},"scope":711,"src":"1360:60:9","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":712,"src":"283:1139:9","usedErrors":[306,309],"usedEvents":[318,327,336]}],"src":"32:1391:9"},"id":9},"@wttp/core/contracts/interfaces/IBaseWTTPSite.sol":{"ast":{"absolutePath":"@wttp/core/contracts/interfaces/IBaseWTTPSite.sol","exportedSymbols":{"BYTE_RESPONSE_LIMIT":[835],"CHUNK_RESPONSE_LIMIT":[832],"CORSPolicy":[1000],"CORSPreset":[972],"CacheControl":[984],"CachePreset":[964],"DEFINERequest":[1204],"DEFINEResponse":[1213],"DEFINESuccess":[1468],"DELETESuccess":[1492],"DataExists":[618],"DataPointRegistered":[652],"DataPointRoyalty":[677],"DataPointSizes":[1257],"DataPointWritten":[614],"DataRegistration":[1064],"GETRequest":[1280],"GETResponse":[1290],"HEADRequest":[1142],"HEADResponse":[1158],"HeaderCreated":[840],"HeaderInfo":[1022],"HeaderUpdated":[845],"IAccessControl":[379],"IBaseWTTPPermissions":[711],"IBaseWTTPSite":[787],"IBaseWTTPStorage":[809],"IDataPointRegistry":[534],"IDataPointStorage":[573],"IOwnable":[608],"InsufficientRoyaltyPayment":[626],"InvalidDPS":[622],"InvalidData":[620],"InvalidHeader":[878],"InvalidPublisher":[630],"InvalidRole":[829],"LOCATERequest":[1251],"LOCATEResponse":[1168],"LOCATEResponseSecure":[1270],"MetadataDeleted":[855],"MetadataUpdated":[850],"Method":[955],"OPTIONSResponse":[1131],"PATCHRequest":[1194],"PATCHSuccess":[1484],"PUTRequest":[1183],"PUTSuccess":[1476],"ProcessedData":[1263],"Range":[1241],"Redirect":[1008],"ResourceCreated":[860],"ResourceDeleted":[872],"ResourceMetadata":[1053],"ResourceProperties":[1035],"ResourceResponse":[885],"ResourceRoleCreated":[824],"ResourceUpdated":[867],"RoyaltiesCollected":[638],"RoyaltiesPaid":[646],"SiteAdminChanged":[819],"_400":[892],"_402":[899],"_403":[906],"_404":[913],"_405":[922],"_409":[929],"_410":[934],"_416":[944],"calculateDataPointAddress":[671],"calculateEtag":[1233],"contentCode_":[1460],"getHeaderAddress":[1123],"maxMethods_":[1306],"methodsToMask":[1107],"normalizeRange_":[1434]},"id":788,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":713,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"32:24:10"},{"absolutePath":"@wttp/core/contracts/interfaces/IBaseWTTPStorage.sol","file":"./IBaseWTTPStorage.sol","id":714,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":788,"sourceUnit":810,"src":"58:32:10","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":716,"name":"IBaseWTTPStorage","nameLocations":["302:16:10"],"nodeType":"IdentifierPath","referencedDeclaration":809,"src":"302:16:10"},"id":717,"nodeType":"InheritanceSpecifier","src":"302:16:10"}],"canonicalName":"IBaseWTTPSite","contractDependencies":[],"contractKind":"interface","documentation":{"id":715,"nodeType":"StructuredDocumentation","src":"92:183:10","text":"@title WTTP Base Site Contract\n @author Web3 Transfer Protocol (WTTP) Development Team\n @notice Implements core WTTP protocol methods for HTTP-like operations on blockchain"},"fullyImplemented":false,"id":787,"linearizedBaseContracts":[787,809,711,379],"name":"IBaseWTTPSite","nameLocation":"285:13:10","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":718,"nodeType":"StructuredDocumentation","src":"326:243:10","text":"@notice Handles OPTIONS requests to check available methods\n @dev External interface for _OPTIONS with method enforcement\n @param _path Resource path to check\n @return optionsResponse Response with allowed methods info"},"functionSelector":"fd05b634","id":726,"implemented":false,"kind":"function","modifiers":[],"name":"OPTIONS","nameLocation":"583:7:10","nodeType":"FunctionDefinition","parameters":{"id":721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":720,"mutability":"mutable","name":"_path","nameLocation":"605:5:10","nodeType":"VariableDeclaration","scope":726,"src":"591:19:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":719,"name":"string","nodeType":"ElementaryTypeName","src":"591:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"590:21:10"},"returnParameters":{"id":725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":724,"mutability":"mutable","name":"optionsResponse","nameLocation":"658:15:10","nodeType":"VariableDeclaration","scope":726,"src":"635:38:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_OPTIONSResponse_$1131_memory_ptr","typeString":"struct OPTIONSResponse"},"typeName":{"id":723,"nodeType":"UserDefinedTypeName","pathNode":{"id":722,"name":"OPTIONSResponse","nameLocations":["635:15:10"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"635:15:10"},"referencedDeclaration":1131,"src":"635:15:10","typeDescriptions":{"typeIdentifier":"t_struct$_OPTIONSResponse_$1131_storage_ptr","typeString":"struct OPTIONSResponse"}},"visibility":"internal"}],"src":"634:40:10"},"scope":787,"src":"574:101:10","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":727,"nodeType":"StructuredDocumentation","src":"680:261:10","text":"@notice Handles WTTP HEAD requests for metadata\n @dev External interface for _HEAD with method enforcement\n @param headRequest Request information including conditional headers\n @return head Response with header and metadata information"},"functionSelector":"28699f17","id":736,"implemented":false,"kind":"function","modifiers":[],"name":"HEAD","nameLocation":"955:4:10","nodeType":"FunctionDefinition","parameters":{"id":731,"nodeType":"ParameterList","parameters":[{"constant":false,"id":730,"mutability":"mutable","name":"headRequest","nameLocation":"979:11:10","nodeType":"VariableDeclaration","scope":736,"src":"960:30:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_memory_ptr","typeString":"struct HEADRequest"},"typeName":{"id":729,"nodeType":"UserDefinedTypeName","pathNode":{"id":728,"name":"HEADRequest","nameLocations":["960:11:10"],"nodeType":"IdentifierPath","referencedDeclaration":1142,"src":"960:11:10"},"referencedDeclaration":1142,"src":"960:11:10","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_storage_ptr","typeString":"struct HEADRequest"}},"visibility":"internal"}],"src":"959:32:10"},"returnParameters":{"id":735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":734,"mutability":"mutable","name":"head","nameLocation":"1035:4:10","nodeType":"VariableDeclaration","scope":736,"src":"1015:24:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse"},"typeName":{"id":733,"nodeType":"UserDefinedTypeName","pathNode":{"id":732,"name":"HEADResponse","nameLocations":["1015:12:10"],"nodeType":"IdentifierPath","referencedDeclaration":1158,"src":"1015:12:10"},"referencedDeclaration":1158,"src":"1015:12:10","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_storage_ptr","typeString":"struct HEADResponse"}},"visibility":"internal"}],"src":"1014:26:10"},"scope":787,"src":"946:95:10","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":737,"nodeType":"StructuredDocumentation","src":"1046:196:10","text":"@notice Handles GET requests to retrieve resource content locations\n @param getRequest Request information\n @return getResponse Response containing resource and storage locations"},"functionSelector":"0f9004b8","id":746,"implemented":false,"kind":"function","modifiers":[],"name":"GET","nameLocation":"1256:3:10","nodeType":"FunctionDefinition","parameters":{"id":741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":740,"mutability":"mutable","name":"getRequest","nameLocation":"1281:10:10","nodeType":"VariableDeclaration","scope":746,"src":"1260:31:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATERequest_$1251_memory_ptr","typeString":"struct LOCATERequest"},"typeName":{"id":739,"nodeType":"UserDefinedTypeName","pathNode":{"id":738,"name":"LOCATERequest","nameLocations":["1260:13:10"],"nodeType":"IdentifierPath","referencedDeclaration":1251,"src":"1260:13:10"},"referencedDeclaration":1251,"src":"1260:13:10","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATERequest_$1251_storage_ptr","typeString":"struct LOCATERequest"}},"visibility":"internal"}],"src":"1259:33:10"},"returnParameters":{"id":745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":744,"mutability":"mutable","name":"getResponse","nameLocation":"1338:11:10","nodeType":"VariableDeclaration","scope":746,"src":"1316:33:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_memory_ptr","typeString":"struct LOCATEResponse"},"typeName":{"id":743,"nodeType":"UserDefinedTypeName","pathNode":{"id":742,"name":"LOCATEResponse","nameLocations":["1316:14:10"],"nodeType":"IdentifierPath","referencedDeclaration":1168,"src":"1316:14:10"},"referencedDeclaration":1168,"src":"1316:14:10","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_storage_ptr","typeString":"struct LOCATEResponse"}},"visibility":"internal"}],"src":"1315:35:10"},"scope":787,"src":"1247:104:10","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":747,"nodeType":"StructuredDocumentation","src":"1356:292:10","text":"@notice Handles DEFINE requests to update resource headers\n @dev Only accessible to resource administrators, creates header if needed\n @param defineRequest Request information with new header data\n @return defineResponse Response containing updated header information"},"functionSelector":"42a4cf7d","id":756,"implemented":false,"kind":"function","modifiers":[],"name":"DEFINE","nameLocation":"1662:6:10","nodeType":"FunctionDefinition","parameters":{"id":751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":750,"mutability":"mutable","name":"defineRequest","nameLocation":"1690:13:10","nodeType":"VariableDeclaration","scope":756,"src":"1669:34:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DEFINERequest_$1204_memory_ptr","typeString":"struct DEFINERequest"},"typeName":{"id":749,"nodeType":"UserDefinedTypeName","pathNode":{"id":748,"name":"DEFINERequest","nameLocations":["1669:13:10"],"nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"1669:13:10"},"referencedDeclaration":1204,"src":"1669:13:10","typeDescriptions":{"typeIdentifier":"t_struct$_DEFINERequest_$1204_storage_ptr","typeString":"struct DEFINERequest"}},"visibility":"internal"}],"src":"1668:36:10"},"returnParameters":{"id":755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":754,"mutability":"mutable","name":"defineResponse","nameLocation":"1745:14:10","nodeType":"VariableDeclaration","scope":756,"src":"1723:36:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DEFINEResponse_$1213_memory_ptr","typeString":"struct DEFINEResponse"},"typeName":{"id":753,"nodeType":"UserDefinedTypeName","pathNode":{"id":752,"name":"DEFINEResponse","nameLocations":["1723:14:10"],"nodeType":"IdentifierPath","referencedDeclaration":1213,"src":"1723:14:10"},"referencedDeclaration":1213,"src":"1723:14:10","typeDescriptions":{"typeIdentifier":"t_struct$_DEFINEResponse_$1213_storage_ptr","typeString":"struct DEFINEResponse"}},"visibility":"internal"}],"src":"1722:38:10"},"scope":787,"src":"1653:108:10","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":757,"nodeType":"StructuredDocumentation","src":"1766:248:10","text":"@notice Handles DELETE requests to remove resources\n @dev Only accessible to resource administrators, checks resource mutability\n @param deleteRequest Request information\n @return deleteResponse Response confirming deletion"},"functionSelector":"ca63628c","id":766,"implemented":false,"kind":"function","modifiers":[],"name":"DELETE","nameLocation":"2028:6:10","nodeType":"FunctionDefinition","parameters":{"id":761,"nodeType":"ParameterList","parameters":[{"constant":false,"id":760,"mutability":"mutable","name":"deleteRequest","nameLocation":"2054:13:10","nodeType":"VariableDeclaration","scope":766,"src":"2035:32:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_memory_ptr","typeString":"struct HEADRequest"},"typeName":{"id":759,"nodeType":"UserDefinedTypeName","pathNode":{"id":758,"name":"HEADRequest","nameLocations":["2035:11:10"],"nodeType":"IdentifierPath","referencedDeclaration":1142,"src":"2035:11:10"},"referencedDeclaration":1142,"src":"2035:11:10","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_storage_ptr","typeString":"struct HEADRequest"}},"visibility":"internal"}],"src":"2034:34:10"},"returnParameters":{"id":765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":764,"mutability":"mutable","name":"deleteResponse","nameLocation":"2107:14:10","nodeType":"VariableDeclaration","scope":766,"src":"2087:34:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse"},"typeName":{"id":763,"nodeType":"UserDefinedTypeName","pathNode":{"id":762,"name":"HEADResponse","nameLocations":["2087:12:10"],"nodeType":"IdentifierPath","referencedDeclaration":1158,"src":"2087:12:10"},"referencedDeclaration":1158,"src":"2087:12:10","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_storage_ptr","typeString":"struct HEADResponse"}},"visibility":"internal"}],"src":"2086:36:10"},"scope":787,"src":"2019:104:10","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":767,"nodeType":"StructuredDocumentation","src":"2128:293:10","text":"@notice Handles PUT requests to create new resources\n @dev Only accessible to resource administrators, transfers any excess payment back\n @param putRequest Request information including content data\n @return putResponse Response containing created resource information"},"functionSelector":"b0184e01","id":776,"implemented":false,"kind":"function","modifiers":[],"name":"PUT","nameLocation":"2435:3:10","nodeType":"FunctionDefinition","parameters":{"id":771,"nodeType":"ParameterList","parameters":[{"constant":false,"id":770,"mutability":"mutable","name":"putRequest","nameLocation":"2457:10:10","nodeType":"VariableDeclaration","scope":776,"src":"2439:28:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PUTRequest_$1183_memory_ptr","typeString":"struct PUTRequest"},"typeName":{"id":769,"nodeType":"UserDefinedTypeName","pathNode":{"id":768,"name":"PUTRequest","nameLocations":["2439:10:10"],"nodeType":"IdentifierPath","referencedDeclaration":1183,"src":"2439:10:10"},"referencedDeclaration":1183,"src":"2439:10:10","typeDescriptions":{"typeIdentifier":"t_struct$_PUTRequest_$1183_storage_ptr","typeString":"struct PUTRequest"}},"visibility":"internal"}],"src":"2438:30:10"},"returnParameters":{"id":775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":774,"mutability":"mutable","name":"putResponse","nameLocation":"2517:11:10","nodeType":"VariableDeclaration","scope":776,"src":"2495:33:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_memory_ptr","typeString":"struct LOCATEResponse"},"typeName":{"id":773,"nodeType":"UserDefinedTypeName","pathNode":{"id":772,"name":"LOCATEResponse","nameLocations":["2495:14:10"],"nodeType":"IdentifierPath","referencedDeclaration":1168,"src":"2495:14:10"},"referencedDeclaration":1168,"src":"2495:14:10","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_storage_ptr","typeString":"struct LOCATEResponse"}},"visibility":"internal"}],"src":"2494:35:10"},"scope":787,"src":"2426:104:10","stateMutability":"payable","virtual":false,"visibility":"external"},{"documentation":{"id":777,"nodeType":"StructuredDocumentation","src":"2535:296:10","text":"@notice Handles PATCH requests to update existing resources\n @dev Only accessible to resource administrators, checks resource mutability\n @param patchRequest Request information including update data\n @return patchResponse Response containing updated resource information"},"functionSelector":"dd0fec4c","id":786,"implemented":false,"kind":"function","modifiers":[],"name":"PATCH","nameLocation":"2845:5:10","nodeType":"FunctionDefinition","parameters":{"id":781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":780,"mutability":"mutable","name":"patchRequest","nameLocation":"2871:12:10","nodeType":"VariableDeclaration","scope":786,"src":"2851:32:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PATCHRequest_$1194_memory_ptr","typeString":"struct PATCHRequest"},"typeName":{"id":779,"nodeType":"UserDefinedTypeName","pathNode":{"id":778,"name":"PATCHRequest","nameLocations":["2851:12:10"],"nodeType":"IdentifierPath","referencedDeclaration":1194,"src":"2851:12:10"},"referencedDeclaration":1194,"src":"2851:12:10","typeDescriptions":{"typeIdentifier":"t_struct$_PATCHRequest_$1194_storage_ptr","typeString":"struct PATCHRequest"}},"visibility":"internal"}],"src":"2850:34:10"},"returnParameters":{"id":785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":784,"mutability":"mutable","name":"patchResponse","nameLocation":"2933:13:10","nodeType":"VariableDeclaration","scope":786,"src":"2911:35:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_memory_ptr","typeString":"struct LOCATEResponse"},"typeName":{"id":783,"nodeType":"UserDefinedTypeName","pathNode":{"id":782,"name":"LOCATEResponse","nameLocations":["2911:14:10"],"nodeType":"IdentifierPath","referencedDeclaration":1168,"src":"2911:14:10"},"referencedDeclaration":1168,"src":"2911:14:10","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_storage_ptr","typeString":"struct LOCATEResponse"}},"visibility":"internal"}],"src":"2910:37:10"},"scope":787,"src":"2836:112:10","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":788,"src":"275:2675:10","usedErrors":[306,309],"usedEvents":[318,327,336]}],"src":"32:2919:10"},"id":10},"@wttp/core/contracts/interfaces/IBaseWTTPStorage.sol":{"ast":{"absolutePath":"@wttp/core/contracts/interfaces/IBaseWTTPStorage.sol","exportedSymbols":{"BYTE_RESPONSE_LIMIT":[835],"CHUNK_RESPONSE_LIMIT":[832],"CORSPolicy":[1000],"CORSPreset":[972],"CacheControl":[984],"CachePreset":[964],"DEFINERequest":[1204],"DEFINEResponse":[1213],"DEFINESuccess":[1468],"DELETESuccess":[1492],"DataExists":[618],"DataPointRegistered":[652],"DataPointRoyalty":[677],"DataPointSizes":[1257],"DataPointWritten":[614],"DataRegistration":[1064],"GETRequest":[1280],"GETResponse":[1290],"HEADRequest":[1142],"HEADResponse":[1158],"HeaderCreated":[840],"HeaderInfo":[1022],"HeaderUpdated":[845],"IAccessControl":[379],"IBaseWTTPPermissions":[711],"IBaseWTTPStorage":[809],"IDataPointRegistry":[534],"IDataPointStorage":[573],"IOwnable":[608],"InsufficientRoyaltyPayment":[626],"InvalidDPS":[622],"InvalidData":[620],"InvalidHeader":[878],"InvalidPublisher":[630],"InvalidRole":[829],"LOCATERequest":[1251],"LOCATEResponse":[1168],"LOCATEResponseSecure":[1270],"MetadataDeleted":[855],"MetadataUpdated":[850],"Method":[955],"OPTIONSResponse":[1131],"PATCHRequest":[1194],"PATCHSuccess":[1484],"PUTRequest":[1183],"PUTSuccess":[1476],"ProcessedData":[1263],"Range":[1241],"Redirect":[1008],"ResourceCreated":[860],"ResourceDeleted":[872],"ResourceMetadata":[1053],"ResourceProperties":[1035],"ResourceResponse":[885],"ResourceRoleCreated":[824],"ResourceUpdated":[867],"RoyaltiesCollected":[638],"RoyaltiesPaid":[646],"SiteAdminChanged":[819],"_400":[892],"_402":[899],"_403":[906],"_404":[913],"_405":[922],"_409":[929],"_410":[934],"_416":[944],"calculateDataPointAddress":[671],"calculateEtag":[1233],"contentCode_":[1460],"getHeaderAddress":[1123],"maxMethods_":[1306],"methodsToMask":[1107],"normalizeRange_":[1434]},"id":810,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":789,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"32:24:11"},{"absolutePath":"@wttp/core/contracts/interfaces/IBaseWTTPPermissions.sol","file":"./IBaseWTTPPermissions.sol","id":790,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":810,"sourceUnit":712,"src":"58:36:11","symbolAliases":[],"unitAlias":""},{"absolutePath":"@wttp/core/contracts/types/WTTPTypes.sol","file":"../types/WTTPTypes.sol","id":791,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":810,"sourceUnit":1493,"src":"95:32:11","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":793,"name":"IBaseWTTPPermissions","nameLocations":["408:20:11"],"nodeType":"IdentifierPath","referencedDeclaration":711,"src":"408:20:11"},"id":794,"nodeType":"InheritanceSpecifier","src":"408:20:11"}],"canonicalName":"IBaseWTTPStorage","contractDependencies":[],"contractKind":"interface","documentation":{"id":792,"nodeType":"StructuredDocumentation","src":"129:249:11","text":"@title WTTP Base Storage Contract\n @author Web3 Transfer Protocol (WTTP) Development Team\n @notice Manages web resource storage and access control\n @dev Core storage functionality for the WTTP protocol, inheriting permission management"},"fullyImplemented":false,"id":809,"linearizedBaseContracts":[809,711,379],"name":"IBaseWTTPStorage","nameLocation":"388:16:11","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":795,"nodeType":"StructuredDocumentation","src":"436:61:11","text":"@return IDataPointStorage The Data Point Storage contract"},"functionSelector":"ef4e06ec","id":801,"implemented":false,"kind":"function","modifiers":[],"name":"DPS","nameLocation":"511:3:11","nodeType":"FunctionDefinition","parameters":{"id":796,"nodeType":"ParameterList","parameters":[],"src":"514:2:11"},"returnParameters":{"id":800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":799,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":801,"src":"540:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IDataPointStorage_$573","typeString":"contract IDataPointStorage"},"typeName":{"id":798,"nodeType":"UserDefinedTypeName","pathNode":{"id":797,"name":"IDataPointStorage","nameLocations":["540:17:11"],"nodeType":"IdentifierPath","referencedDeclaration":573,"src":"540:17:11"},"referencedDeclaration":573,"src":"540:17:11","typeDescriptions":{"typeIdentifier":"t_contract$_IDataPointStorage_$573","typeString":"contract IDataPointStorage"}},"visibility":"internal"}],"src":"539:19:11"},"scope":809,"src":"502:57:11","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":802,"nodeType":"StructuredDocumentation","src":"564:198:11","text":"@notice Returns the Data Point Registry contract instance\n @dev Provides external access to the internal DPR_ reference\n @return IDataPointRegistry The Data Point Registry contract"},"functionSelector":"c2640ed1","id":808,"implemented":false,"kind":"function","modifiers":[],"name":"DPR","nameLocation":"776:3:11","nodeType":"FunctionDefinition","parameters":{"id":803,"nodeType":"ParameterList","parameters":[],"src":"779:2:11"},"returnParameters":{"id":807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":806,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":808,"src":"805:18:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IDataPointRegistry_$534","typeString":"contract IDataPointRegistry"},"typeName":{"id":805,"nodeType":"UserDefinedTypeName","pathNode":{"id":804,"name":"IDataPointRegistry","nameLocations":["805:18:11"],"nodeType":"IdentifierPath","referencedDeclaration":534,"src":"805:18:11"},"referencedDeclaration":534,"src":"805:18:11","typeDescriptions":{"typeIdentifier":"t_contract$_IDataPointRegistry_$534","typeString":"contract IDataPointRegistry"}},"visibility":"internal"}],"src":"804:20:11"},"scope":809,"src":"767:58:11","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":810,"src":"378:449:11","usedErrors":[306,309],"usedEvents":[318,327,336]}],"src":"32:796:11"},"id":11},"@wttp/core/contracts/types/WTTPTypes.sol":{"ast":{"absolutePath":"@wttp/core/contracts/types/WTTPTypes.sol","exportedSymbols":{"BYTE_RESPONSE_LIMIT":[835],"CHUNK_RESPONSE_LIMIT":[832],"CORSPolicy":[1000],"CORSPreset":[972],"CacheControl":[984],"CachePreset":[964],"DEFINERequest":[1204],"DEFINEResponse":[1213],"DEFINESuccess":[1468],"DELETESuccess":[1492],"DataExists":[618],"DataPointRegistered":[652],"DataPointRoyalty":[677],"DataPointSizes":[1257],"DataPointWritten":[614],"DataRegistration":[1064],"GETRequest":[1280],"GETResponse":[1290],"HEADRequest":[1142],"HEADResponse":[1158],"HeaderCreated":[840],"HeaderInfo":[1022],"HeaderUpdated":[845],"IDataPointRegistry":[534],"IDataPointStorage":[573],"IOwnable":[608],"InsufficientRoyaltyPayment":[626],"InvalidDPS":[622],"InvalidData":[620],"InvalidHeader":[878],"InvalidPublisher":[630],"InvalidRole":[829],"LOCATERequest":[1251],"LOCATEResponse":[1168],"LOCATEResponseSecure":[1270],"MetadataDeleted":[855],"MetadataUpdated":[850],"Method":[955],"OPTIONSResponse":[1131],"PATCHRequest":[1194],"PATCHSuccess":[1484],"PUTRequest":[1183],"PUTSuccess":[1476],"ProcessedData":[1263],"Range":[1241],"Redirect":[1008],"ResourceCreated":[860],"ResourceDeleted":[872],"ResourceMetadata":[1053],"ResourceProperties":[1035],"ResourceResponse":[885],"ResourceRoleCreated":[824],"ResourceUpdated":[867],"RoyaltiesCollected":[638],"RoyaltiesPaid":[646],"SiteAdminChanged":[819],"_400":[892],"_402":[899],"_403":[906],"_404":[913],"_405":[922],"_409":[929],"_410":[934],"_416":[944],"calculateDataPointAddress":[671],"calculateEtag":[1233],"contentCode_":[1460],"getHeaderAddress":[1123],"maxMethods_":[1306],"methodsToMask":[1107],"normalizeRange_":[1434]},"id":1493,"license":"AGPL-3.0","nodeType":"SourceUnit","nodes":[{"id":811,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"830:24:12"},{"absolutePath":"@tw3/esp/contracts/interfaces/IDataPointRegistry.sol","file":"@tw3/esp/contracts/interfaces/IDataPointRegistry.sol","id":812,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1493,"sourceUnit":535,"src":"1105:62:12","symbolAliases":[],"unitAlias":""},{"anonymous":false,"documentation":{"id":813,"nodeType":"StructuredDocumentation","src":"1266:185:12","text":"@notice Emitted when the site admin role identifier is changed\n @param oldSiteAdmin Previous site admin role identifier\n @param newSiteAdmin New site admin role identifier"},"eventSelector":"80f9b6a37a676933a62100891a89f9c5ebd8d425dbc6d36160234076dd227abf","id":819,"name":"SiteAdminChanged","nameLocation":"1457:16:12","nodeType":"EventDefinition","parameters":{"id":818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":815,"indexed":false,"mutability":"mutable","name":"oldSiteAdmin","nameLocation":"1482:12:12","nodeType":"VariableDeclaration","scope":819,"src":"1474:20:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":814,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1474:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":817,"indexed":false,"mutability":"mutable","name":"newSiteAdmin","nameLocation":"1504:12:12","nodeType":"VariableDeclaration","scope":819,"src":"1496:20:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":816,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1496:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1473:44:12"},"src":"1451:67:12"},{"anonymous":false,"documentation":{"id":820,"nodeType":"StructuredDocumentation","src":"1522:111:12","text":"@notice Emitted when a new resource role is created\n @param role The role identifier that was created"},"eventSelector":"17a96dcfa97ca23bb8a7066cd78d58de2dc54b954a551ba0113958bfe2e13c2a","id":824,"name":"ResourceRoleCreated","nameLocation":"1639:19:12","nodeType":"EventDefinition","parameters":{"id":823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":822,"indexed":true,"mutability":"mutable","name":"role","nameLocation":"1675:4:12","nodeType":"VariableDeclaration","scope":824,"src":"1659:20:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":821,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1659:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1658:22:12"},"src":"1633:48:12"},{"documentation":{"id":825,"nodeType":"StructuredDocumentation","src":"1724:114:12","text":"@notice Error thrown when an invalid role is used\n @param role The role identifier that caused the error"},"errorSelector":"125a2bb7","id":829,"name":"InvalidRole","nameLocation":"1844:11:12","nodeType":"ErrorDefinition","parameters":{"id":828,"nodeType":"ParameterList","parameters":[{"constant":false,"id":827,"mutability":"mutable","name":"role","nameLocation":"1864:4:12","nodeType":"VariableDeclaration","scope":829,"src":"1856:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":826,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1856:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1855:14:12"},"src":"1838:32:12"},{"constant":true,"id":832,"mutability":"constant","name":"CHUNK_RESPONSE_LIMIT","nameLocation":"1945:20:12","nodeType":"VariableDeclaration","scope":1493,"src":"1928:46:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":830,"name":"uint256","nodeType":"ElementaryTypeName","src":"1928:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"313030303030","id":831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1968:6:12","typeDescriptions":{"typeIdentifier":"t_rational_100000_by_1","typeString":"int_const 100000"},"value":"100000"},"visibility":"internal"},{"constant":true,"id":835,"mutability":"constant","name":"BYTE_RESPONSE_LIMIT","nameLocation":"2022:19:12","nodeType":"VariableDeclaration","scope":1493,"src":"2005:46:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":833,"name":"uint256","nodeType":"ElementaryTypeName","src":"2005:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31303030303030","id":834,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2044:7:12","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"value":"1000000"},"visibility":"internal"},{"anonymous":false,"documentation":{"id":836,"nodeType":"StructuredDocumentation","src":"2261:102:12","text":"@notice Emitted when a header is created\n @param headerAddress Address of the created header"},"eventSelector":"516a84c6e4979ef4f74784ed61e83aa5cbe2779d10935d7d9564b2a098d4a5df","id":840,"name":"HeaderCreated","nameLocation":"2369:13:12","nodeType":"EventDefinition","parameters":{"id":839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":838,"indexed":false,"mutability":"mutable","name":"headerAddress","nameLocation":"2391:13:12","nodeType":"VariableDeclaration","scope":840,"src":"2383:21:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":837,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2383:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2382:23:12"},"src":"2363:43:12"},{"anonymous":false,"documentation":{"id":841,"nodeType":"StructuredDocumentation","src":"2408:102:12","text":"@notice Emitted when a header is updated\n @param headerAddress Address of the updated header"},"eventSelector":"c4c76143cbd497adc2b5bc159d932dcfa8483928a0d22661d1404ef1c68984a1","id":845,"name":"HeaderUpdated","nameLocation":"2516:13:12","nodeType":"EventDefinition","parameters":{"id":844,"nodeType":"ParameterList","parameters":[{"constant":false,"id":843,"indexed":false,"mutability":"mutable","name":"headerAddress","nameLocation":"2538:13:12","nodeType":"VariableDeclaration","scope":845,"src":"2530:21:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":842,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2530:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2529:23:12"},"src":"2510:43:12"},{"anonymous":false,"documentation":{"id":846,"nodeType":"StructuredDocumentation","src":"2555:101:12","text":"@notice Emitted when resource metadata is updated\n @param path Path of the updated resource"},"eventSelector":"1c306e70c05992619e2128ad1ef88df75f36c9476282e59f51401b2abaa42e4e","id":850,"name":"MetadataUpdated","nameLocation":"2662:15:12","nodeType":"EventDefinition","parameters":{"id":849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":848,"indexed":false,"mutability":"mutable","name":"path","nameLocation":"2685:4:12","nodeType":"VariableDeclaration","scope":850,"src":"2678:11:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":847,"name":"string","nodeType":"ElementaryTypeName","src":"2678:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2677:13:12"},"src":"2656:35:12"},{"anonymous":false,"documentation":{"id":851,"nodeType":"StructuredDocumentation","src":"2693:101:12","text":"@notice Emitted when resource metadata is deleted\n @param path Path of the deleted metadata"},"eventSelector":"510fb78f495511d68f630cfabc06d8a58d5aeb7bc63f3538b9cd46923aa23e5d","id":855,"name":"MetadataDeleted","nameLocation":"2800:15:12","nodeType":"EventDefinition","parameters":{"id":854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":853,"indexed":false,"mutability":"mutable","name":"path","nameLocation":"2823:4:12","nodeType":"VariableDeclaration","scope":855,"src":"2816:11:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":852,"name":"string","nodeType":"ElementaryTypeName","src":"2816:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2815:13:12"},"src":"2794:35:12"},{"anonymous":false,"documentation":{"id":856,"nodeType":"StructuredDocumentation","src":"2831:98:12","text":"@notice Emitted when a new resource is created\n @param path Path of the created resource"},"eventSelector":"688cfefb012ebddc451bd5077139509d5fbfdfc92c33cba16d7e76f16c2f5da8","id":860,"name":"ResourceCreated","nameLocation":"2935:15:12","nodeType":"EventDefinition","parameters":{"id":859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":858,"indexed":false,"mutability":"mutable","name":"path","nameLocation":"2958:4:12","nodeType":"VariableDeclaration","scope":860,"src":"2951:11:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":857,"name":"string","nodeType":"ElementaryTypeName","src":"2951:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2950:13:12"},"src":"2929:35:12"},{"anonymous":false,"documentation":{"id":861,"nodeType":"StructuredDocumentation","src":"2966:144:12","text":"@notice Emitted when a resource is updated\n @param path Path of the updated resource\n @param chunkIndex Index of the updated chunk"},"eventSelector":"d9104dbb62c9778e68f07361617c0e7c290633d8fc9d4335dd0710803633b93b","id":867,"name":"ResourceUpdated","nameLocation":"3116:15:12","nodeType":"EventDefinition","parameters":{"id":866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":863,"indexed":false,"mutability":"mutable","name":"path","nameLocation":"3139:4:12","nodeType":"VariableDeclaration","scope":867,"src":"3132:11:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":862,"name":"string","nodeType":"ElementaryTypeName","src":"3132:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":865,"indexed":false,"mutability":"mutable","name":"chunkIndex","nameLocation":"3153:10:12","nodeType":"VariableDeclaration","scope":867,"src":"3145:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":864,"name":"uint256","nodeType":"ElementaryTypeName","src":"3145:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3131:33:12"},"src":"3110:55:12"},{"anonymous":false,"documentation":{"id":868,"nodeType":"StructuredDocumentation","src":"3167:94:12","text":"@notice Emitted when a resource is deleted\n @param path Path of the deleted resource"},"eventSelector":"055b00e14f3647ce9af043f85e942a4b8169374d43992a7044ad50a8a7e1845a","id":872,"name":"ResourceDeleted","nameLocation":"3267:15:12","nodeType":"EventDefinition","parameters":{"id":871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":870,"indexed":false,"mutability":"mutable","name":"path","nameLocation":"3290:4:12","nodeType":"VariableDeclaration","scope":872,"src":"3283:11:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":869,"name":"string","nodeType":"ElementaryTypeName","src":"3283:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3282:13:12"},"src":"3261:35:12"},{"documentation":{"id":873,"nodeType":"StructuredDocumentation","src":"3337:104:12","text":"@notice Error thrown when an invalid header is used\n @param header The header that was invalid"},"errorSelector":"3afff42b","id":878,"name":"InvalidHeader","nameLocation":"3447:13:12","nodeType":"ErrorDefinition","parameters":{"id":877,"nodeType":"ParameterList","parameters":[{"constant":false,"id":876,"mutability":"mutable","name":"header","nameLocation":"3472:6:12","nodeType":"VariableDeclaration","scope":878,"src":"3461:17:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo"},"typeName":{"id":875,"nodeType":"UserDefinedTypeName","pathNode":{"id":874,"name":"HeaderInfo","nameLocations":["3461:10:12"],"nodeType":"IdentifierPath","referencedDeclaration":1022,"src":"3461:10:12"},"referencedDeclaration":1022,"src":"3461:10:12","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_storage_ptr","typeString":"struct HeaderInfo"}},"visibility":"internal"}],"src":"3460:19:12"},"src":"3441:39:12"},{"canonicalName":"ResourceResponse","documentation":{"id":879,"nodeType":"StructuredDocumentation","src":"3484:300:12","text":"@title Resource Response Structure\n @notice Contains response data for resource requests\n @param dataPoints Array of data point addresses for content chunks\n @param totalChunks Total number of chunks in the resource\n @dev Includes data point addresses and total number of chunks"},"id":885,"members":[{"constant":false,"id":882,"mutability":"mutable","name":"dataPoints","nameLocation":"3825:10:12","nodeType":"VariableDeclaration","scope":885,"src":"3815:20:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":880,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3815:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":881,"nodeType":"ArrayTypeName","src":"3815:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":884,"mutability":"mutable","name":"totalChunks","nameLocation":"3850:11:12","nodeType":"VariableDeclaration","scope":885,"src":"3842:19:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":883,"name":"uint256","nodeType":"ElementaryTypeName","src":"3842:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"ResourceResponse","nameLocation":"3791:16:12","nodeType":"StructDefinition","scope":1493,"src":"3784:81:12","visibility":"public"},{"documentation":{"id":886,"nodeType":"StructuredDocumentation","src":"3869:156:12","text":"@notice Error thrown when a request is malformed\n @param reason Reason for the error\n @param body Body of the error, additional custom context"},"errorSelector":"543f9ae8","id":892,"name":"_400","nameLocation":"4031:4:12","nodeType":"ErrorDefinition","parameters":{"id":891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":888,"mutability":"mutable","name":"reason","nameLocation":"4043:6:12","nodeType":"VariableDeclaration","scope":892,"src":"4036:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":887,"name":"string","nodeType":"ElementaryTypeName","src":"4036:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":890,"mutability":"mutable","name":"body","nameLocation":"4058:4:12","nodeType":"VariableDeclaration","scope":892,"src":"4051:11:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":889,"name":"string","nodeType":"ElementaryTypeName","src":"4051:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4035:28:12"},"src":"4025:39:12"},{"documentation":{"id":893,"nodeType":"StructuredDocumentation","src":"4066:250:12","text":"@notice Error thrown when a request doesn't have the required value\n @param reason Reason for the error\n @param requiredValue The required value to call the requested method, negative ints means shortfall, positive ints means total cost"},"errorSelector":"6c7b7a27","id":899,"name":"_402","nameLocation":"4322:4:12","nodeType":"ErrorDefinition","parameters":{"id":898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":895,"mutability":"mutable","name":"reason","nameLocation":"4334:6:12","nodeType":"VariableDeclaration","scope":899,"src":"4327:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":894,"name":"string","nodeType":"ElementaryTypeName","src":"4327:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":897,"mutability":"mutable","name":"requiredValue","nameLocation":"4349:13:12","nodeType":"VariableDeclaration","scope":899,"src":"4342:20:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":896,"name":"int256","nodeType":"ElementaryTypeName","src":"4342:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"4326:37:12"},"src":"4316:48:12"},{"documentation":{"id":900,"nodeType":"StructuredDocumentation","src":"4366:156:12","text":"@notice Error thrown when an account lacks permission for a role\n @param reason Reason for the error\n @param role Required role for the action"},"errorSelector":"84e9e279","id":906,"name":"_403","nameLocation":"4528:4:12","nodeType":"ErrorDefinition","parameters":{"id":905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":902,"mutability":"mutable","name":"reason","nameLocation":"4540:6:12","nodeType":"VariableDeclaration","scope":906,"src":"4533:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":901,"name":"string","nodeType":"ElementaryTypeName","src":"4533:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":904,"mutability":"mutable","name":"role","nameLocation":"4556:4:12","nodeType":"VariableDeclaration","scope":906,"src":"4548:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":903,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4548:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4532:29:12"},"src":"4522:40:12"},{"documentation":{"id":907,"nodeType":"StructuredDocumentation","src":"4564:155:12","text":"@notice Error thrown when a resource does not exist\n @param reason Reason for the error\n @param isImmutable Whether the resource is immutable"},"errorSelector":"658435f3","id":913,"name":"_404","nameLocation":"4725:4:12","nodeType":"ErrorDefinition","parameters":{"id":912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":909,"mutability":"mutable","name":"reason","nameLocation":"4737:6:12","nodeType":"VariableDeclaration","scope":913,"src":"4730:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":908,"name":"string","nodeType":"ElementaryTypeName","src":"4730:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":911,"mutability":"mutable","name":"isImmutable","nameLocation":"4750:11:12","nodeType":"VariableDeclaration","scope":913,"src":"4745:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":910,"name":"bool","nodeType":"ElementaryTypeName","src":"4745:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4729:33:12"},"src":"4719:44:12"},{"documentation":{"id":914,"nodeType":"StructuredDocumentation","src":"4765:222:12","text":"@notice Error thrown when a method is not allowed for a resource\n @param reason Reason for the error\n @param methodsAllowed Bitmask of allowed methods\n @param isImmutable Whether the resource is immutable"},"errorSelector":"1695ed8d","id":922,"name":"_405","nameLocation":"4993:4:12","nodeType":"ErrorDefinition","parameters":{"id":921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":916,"mutability":"mutable","name":"reason","nameLocation":"5005:6:12","nodeType":"VariableDeclaration","scope":922,"src":"4998:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":915,"name":"string","nodeType":"ElementaryTypeName","src":"4998:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":918,"mutability":"mutable","name":"methodsAllowed","nameLocation":"5020:14:12","nodeType":"VariableDeclaration","scope":922,"src":"5013:21:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":917,"name":"uint16","nodeType":"ElementaryTypeName","src":"5013:6:12","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":920,"mutability":"mutable","name":"isImmutable","nameLocation":"5041:11:12","nodeType":"VariableDeclaration","scope":922,"src":"5036:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":919,"name":"bool","nodeType":"ElementaryTypeName","src":"5036:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4997:56:12"},"src":"4987:67:12"},{"documentation":{"id":923,"nodeType":"StructuredDocumentation","src":"5056:176:12","text":"@notice Error thrown when attempting to modify an immutable resource\n @param reason Reason for the error\n @param body Body of the error, additional custom context"},"errorSelector":"8a6c5e24","id":929,"name":"_409","nameLocation":"5238:4:12","nodeType":"ErrorDefinition","parameters":{"id":928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":925,"mutability":"mutable","name":"reason","nameLocation":"5250:6:12","nodeType":"VariableDeclaration","scope":929,"src":"5243:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":924,"name":"string","nodeType":"ElementaryTypeName","src":"5243:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":927,"mutability":"mutable","name":"body","nameLocation":"5265:4:12","nodeType":"VariableDeclaration","scope":929,"src":"5258:11:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":926,"name":"string","nodeType":"ElementaryTypeName","src":"5258:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5242:28:12"},"src":"5232:39:12"},{"documentation":{"id":930,"nodeType":"StructuredDocumentation","src":"5273:111:12","text":"@notice Error thrown when a resource has been permanently deleted\n @param reason Reason for the error"},"errorSelector":"cbbce2ad","id":934,"name":"_410","nameLocation":"5390:4:12","nodeType":"ErrorDefinition","parameters":{"id":933,"nodeType":"ParameterList","parameters":[{"constant":false,"id":932,"mutability":"mutable","name":"reason","nameLocation":"5402:6:12","nodeType":"VariableDeclaration","scope":934,"src":"5395:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":931,"name":"string","nodeType":"ElementaryTypeName","src":"5395:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5394:15:12"},"src":"5384:26:12"},{"documentation":{"id":935,"nodeType":"StructuredDocumentation","src":"5412:164:12","text":"@notice Error thrown when a range is out of bounds\n @param range The range that was out of bounds\n @param outOfBounds The index that was out of bounds"},"errorSelector":"6de85582","id":944,"name":"_416","nameLocation":"5582:4:12","nodeType":"ErrorDefinition","parameters":{"id":943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":937,"mutability":"mutable","name":"reason","nameLocation":"5594:6:12","nodeType":"VariableDeclaration","scope":944,"src":"5587:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":936,"name":"string","nodeType":"ElementaryTypeName","src":"5587:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":940,"mutability":"mutable","name":"range","nameLocation":"5608:5:12","nodeType":"VariableDeclaration","scope":944,"src":"5602:11:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range"},"typeName":{"id":939,"nodeType":"UserDefinedTypeName","pathNode":{"id":938,"name":"Range","nameLocations":["5602:5:12"],"nodeType":"IdentifierPath","referencedDeclaration":1241,"src":"5602:5:12"},"referencedDeclaration":1241,"src":"5602:5:12","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_storage_ptr","typeString":"struct Range"}},"visibility":"internal"},{"constant":false,"id":942,"mutability":"mutable","name":"outOfBounds","nameLocation":"5622:11:12","nodeType":"VariableDeclaration","scope":944,"src":"5615:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":941,"name":"int256","nodeType":"ElementaryTypeName","src":"5615:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"5586:48:12"},"src":"5576:59:12"},{"canonicalName":"Method","documentation":{"id":945,"nodeType":"StructuredDocumentation","src":"5688:163:12","text":"@title WTTP Methods Enum\n @notice Defines supported WTTP methods in the WTTP protocol\n @dev Used for method-based access control and request handling"},"id":955,"members":[{"id":946,"name":"HEAD","nameLocation":"5931:4:12","nodeType":"EnumValue","src":"5931:4:12"},{"id":947,"name":"GET","nameLocation":"5985:3:12","nodeType":"EnumValue","src":"5985:3:12"},{"id":948,"name":"POST","nameLocation":"6072:4:12","nodeType":"EnumValue","src":"6072:4:12"},{"id":949,"name":"PUT","nameLocation":"6129:3:12","nodeType":"EnumValue","src":"6129:3:12"},{"id":950,"name":"PATCH","nameLocation":"6183:5:12","nodeType":"EnumValue","src":"6183:5:12"},{"id":951,"name":"DELETE","nameLocation":"6230:6:12","nodeType":"EnumValue","src":"6230:6:12"},{"id":952,"name":"OPTIONS","nameLocation":"6309:7:12","nodeType":"EnumValue","src":"6309:7:12"},{"id":953,"name":"LOCATE","nameLocation":"6392:6:12","nodeType":"EnumValue","src":"6392:6:12"},{"id":954,"name":"DEFINE","nameLocation":"6446:6:12","nodeType":"EnumValue","src":"6446:6:12"}],"name":"Method","nameLocation":"5856:6:12","nodeType":"EnumDefinition","src":"5851:604:12"},{"canonicalName":"CachePreset","documentation":{"id":956,"nodeType":"StructuredDocumentation","src":"6459:129:12","text":"@title Cache Preset Enum\n @notice Defines preset cache control directives\n @dev Used for resource header management"},"id":964,"members":[{"id":957,"name":"NONE","nameLocation":"6657:4:12","nodeType":"EnumValue","src":"6657:4:12"},{"id":958,"name":"NO_CACHE","nameLocation":"6751:8:12","nodeType":"EnumValue","src":"6751:8:12"},{"id":959,"name":"DEFAULT","nameLocation":"6845:7:12","nodeType":"EnumValue","src":"6845:7:12"},{"id":960,"name":"SHORT","nameLocation":"6955:5:12","nodeType":"EnumValue","src":"6955:5:12"},{"id":961,"name":"MEDIUM","nameLocation":"7064:6:12","nodeType":"EnumValue","src":"7064:6:12"},{"id":962,"name":"LONG","nameLocation":"7172:4:12","nodeType":"EnumValue","src":"7172:4:12"},{"id":963,"name":"PERMANENT","nameLocation":"7275:9:12","nodeType":"EnumValue","src":"7275:9:12"}],"name":"CachePreset","nameLocation":"6593:11:12","nodeType":"EnumDefinition","src":"6588:699:12"},{"canonicalName":"CORSPreset","documentation":{"id":965,"nodeType":"StructuredDocumentation","src":"7291:53:12","text":"@title CORS Policy Presets for Common Use Cases"},"id":972,"members":[{"id":966,"name":"NONE","nameLocation":"7399:4:12","nodeType":"EnumValue","src":"7399:4:12"},{"id":967,"name":"PUBLIC","nameLocation":"7492:6:12","nodeType":"EnumValue","src":"7492:6:12"},{"id":968,"name":"RESTRICTED","nameLocation":"7597:10:12","nodeType":"EnumValue","src":"7597:10:12"},{"id":969,"name":"API","nameLocation":"7676:3:12","nodeType":"EnumValue","src":"7676:3:12"},{"id":970,"name":"MIXED_ACCESS","nameLocation":"7770:12:12","nodeType":"EnumValue","src":"7770:12:12"},{"id":971,"name":"PRIVATE","nameLocation":"7864:7:12","nodeType":"EnumValue","src":"7864:7:12"}],"name":"CORSPreset","nameLocation":"7349:10:12","nodeType":"EnumDefinition","src":"7344:567:12"},{"canonicalName":"CacheControl","documentation":{"id":973,"nodeType":"StructuredDocumentation","src":"7966:147:12","text":"@title Cache Control Structure\n @notice Defines WTTP cache control directives\n @dev Maps to standard WTTP cache-control header fields"},"id":984,"members":[{"constant":false,"id":976,"mutability":"mutable","name":"immutableFlag","nameLocation":"8199:13:12","nodeType":"VariableDeclaration","scope":984,"src":"8194:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":975,"name":"bool","nodeType":"ElementaryTypeName","src":"8194:4:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":980,"mutability":"mutable","name":"preset","nameLocation":"8284:6:12","nodeType":"VariableDeclaration","scope":984,"src":"8272:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CachePreset_$964","typeString":"enum CachePreset"},"typeName":{"id":979,"nodeType":"UserDefinedTypeName","pathNode":{"id":978,"name":"CachePreset","nameLocations":["8272:11:12"],"nodeType":"IdentifierPath","referencedDeclaration":964,"src":"8272:11:12"},"referencedDeclaration":964,"src":"8272:11:12","typeDescriptions":{"typeIdentifier":"t_enum$_CachePreset_$964","typeString":"enum CachePreset"}},"visibility":"internal"},{"constant":false,"id":983,"mutability":"mutable","name":"custom","nameLocation":"8512:6:12","nodeType":"VariableDeclaration","scope":984,"src":"8505:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":982,"name":"string","nodeType":"ElementaryTypeName","src":"8505:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"CacheControl","nameLocation":"8120:12:12","nodeType":"StructDefinition","scope":1493,"src":"8113:409:12","visibility":"public"},{"canonicalName":"CORSPolicy","documentation":{"id":985,"nodeType":"StructuredDocumentation","src":"8524:128:12","text":"@title CORS Policy Structure\n @notice Defines CORS policy for a resource\n @dev Used for resource header management"},"id":1000,"members":[{"constant":false,"id":988,"mutability":"mutable","name":"methods","nameLocation":"8728:7:12","nodeType":"VariableDeclaration","scope":1000,"src":"8721:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":987,"name":"uint16","nodeType":"ElementaryTypeName","src":"8721:6:12","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":992,"mutability":"mutable","name":"origins","nameLocation":"8883:7:12","nodeType":"VariableDeclaration","scope":1000,"src":"8873:17:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":990,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8873:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":991,"nodeType":"ArrayTypeName","src":"8873:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":996,"mutability":"mutable","name":"preset","nameLocation":"8961:6:12","nodeType":"VariableDeclaration","scope":1000,"src":"8950:17:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CORSPreset_$972","typeString":"enum CORSPreset"},"typeName":{"id":995,"nodeType":"UserDefinedTypeName","pathNode":{"id":994,"name":"CORSPreset","nameLocations":["8950:10:12"],"nodeType":"IdentifierPath","referencedDeclaration":972,"src":"8950:10:12"},"referencedDeclaration":972,"src":"8950:10:12","typeDescriptions":{"typeIdentifier":"t_enum$_CORSPreset_$972","typeString":"enum CORSPreset"}},"visibility":"internal"},{"constant":false,"id":999,"mutability":"mutable","name":"custom","nameLocation":"9039:6:12","nodeType":"VariableDeclaration","scope":1000,"src":"9032:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":998,"name":"string","nodeType":"ElementaryTypeName","src":"9032:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"CORSPolicy","nameLocation":"8659:10:12","nodeType":"StructDefinition","scope":1493,"src":"8652:397:12","visibility":"public"},{"canonicalName":"Redirect","documentation":{"id":1001,"nodeType":"StructuredDocumentation","src":"9051:128:12","text":"@title Redirect Structure\n @notice Defines WTTP redirect information\n @dev Maps to standard WTTP redirect response"},"id":1008,"members":[{"constant":false,"id":1004,"mutability":"mutable","name":"code","nameLocation":"9262:4:12","nodeType":"VariableDeclaration","scope":1008,"src":"9255:11:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1003,"name":"uint16","nodeType":"ElementaryTypeName","src":"9255:6:12","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1007,"mutability":"mutable","name":"location","nameLocation":"9340:8:12","nodeType":"VariableDeclaration","scope":1008,"src":"9333:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":1006,"name":"string","nodeType":"ElementaryTypeName","src":"9333:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"Redirect","nameLocation":"9186:8:12","nodeType":"StructDefinition","scope":1493,"src":"9179:174:12","visibility":"public"},{"canonicalName":"HeaderInfo","documentation":{"id":1009,"nodeType":"StructuredDocumentation","src":"9357:145:12","text":"@title Header Information Structure\n @notice Combines all WTTP header related information\n @dev Used for resource header management"},"id":1022,"members":[{"constant":false,"id":1013,"mutability":"mutable","name":"cache","nameLocation":"9639:5:12","nodeType":"VariableDeclaration","scope":1022,"src":"9626:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_CacheControl_$984_storage_ptr","typeString":"struct CacheControl"},"typeName":{"id":1012,"nodeType":"UserDefinedTypeName","pathNode":{"id":1011,"name":"CacheControl","nameLocations":["9626:12:12"],"nodeType":"IdentifierPath","referencedDeclaration":984,"src":"9626:12:12"},"referencedDeclaration":984,"src":"9626:12:12","typeDescriptions":{"typeIdentifier":"t_struct$_CacheControl_$984_storage_ptr","typeString":"struct CacheControl"}},"visibility":"internal"},{"constant":false,"id":1017,"mutability":"mutable","name":"cors","nameLocation":"9708:4:12","nodeType":"VariableDeclaration","scope":1022,"src":"9697:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_CORSPolicy_$1000_storage_ptr","typeString":"struct CORSPolicy"},"typeName":{"id":1016,"nodeType":"UserDefinedTypeName","pathNode":{"id":1015,"name":"CORSPolicy","nameLocations":["9697:10:12"],"nodeType":"IdentifierPath","referencedDeclaration":1000,"src":"9697:10:12"},"referencedDeclaration":1000,"src":"9697:10:12","typeDescriptions":{"typeIdentifier":"t_struct$_CORSPolicy_$1000_storage_ptr","typeString":"struct CORSPolicy"}},"visibility":"internal"},{"constant":false,"id":1021,"mutability":"mutable","name":"redirect","nameLocation":"9780:8:12","nodeType":"VariableDeclaration","scope":1022,"src":"9771:17:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Redirect_$1008_storage_ptr","typeString":"struct Redirect"},"typeName":{"id":1020,"nodeType":"UserDefinedTypeName","pathNode":{"id":1019,"name":"Redirect","nameLocations":["9771:8:12"],"nodeType":"IdentifierPath","referencedDeclaration":1008,"src":"9771:8:12"},"referencedDeclaration":1008,"src":"9771:8:12","typeDescriptions":{"typeIdentifier":"t_struct$_Redirect_$1008_storage_ptr","typeString":"struct Redirect"}},"visibility":"internal"}],"name":"HeaderInfo","nameLocation":"9509:10:12","nodeType":"StructDefinition","scope":1493,"src":"9502:290:12","visibility":"public"},{"canonicalName":"ResourceProperties","id":1035,"members":[{"constant":false,"id":1025,"mutability":"mutable","name":"mimeType","nameLocation":"9899:8:12","nodeType":"VariableDeclaration","scope":1035,"src":"9892:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"},"typeName":{"id":1024,"name":"bytes2","nodeType":"ElementaryTypeName","src":"9892:6:12","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"}},"visibility":"internal"},{"constant":false,"id":1028,"mutability":"mutable","name":"charset","nameLocation":"9988:7:12","nodeType":"VariableDeclaration","scope":1035,"src":"9981:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"},"typeName":{"id":1027,"name":"bytes2","nodeType":"ElementaryTypeName","src":"9981:6:12","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"}},"visibility":"internal"},{"constant":false,"id":1031,"mutability":"mutable","name":"encoding","nameLocation":"10071:8:12","nodeType":"VariableDeclaration","scope":1035,"src":"10064:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"},"typeName":{"id":1030,"name":"bytes2","nodeType":"ElementaryTypeName","src":"10064:6:12","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"}},"visibility":"internal"},{"constant":false,"id":1034,"mutability":"mutable","name":"language","nameLocation":"10155:8:12","nodeType":"VariableDeclaration","scope":1035,"src":"10148:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"},"typeName":{"id":1033,"name":"bytes2","nodeType":"ElementaryTypeName","src":"10148:6:12","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"}},"visibility":"internal"}],"name":"ResourceProperties","nameLocation":"9803:18:12","nodeType":"StructDefinition","scope":1493,"src":"9796:371:12","visibility":"public"},{"canonicalName":"ResourceMetadata","documentation":{"id":1036,"nodeType":"StructuredDocumentation","src":"10171:151:12","text":"@title Resource Metadata Structure\n @notice Stores metadata about web resources\n @dev Used to track resource properties and modifications"},"id":1053,"members":[{"constant":false,"id":1040,"mutability":"mutable","name":"properties","nameLocation":"10409:10:12","nodeType":"VariableDeclaration","scope":1053,"src":"10390:29:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceProperties_$1035_storage_ptr","typeString":"struct ResourceProperties"},"typeName":{"id":1039,"nodeType":"UserDefinedTypeName","pathNode":{"id":1038,"name":"ResourceProperties","nameLocations":["10390:18:12"],"nodeType":"IdentifierPath","referencedDeclaration":1035,"src":"10390:18:12"},"referencedDeclaration":1035,"src":"10390:18:12","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceProperties_$1035_storage_ptr","typeString":"struct ResourceProperties"}},"visibility":"internal"},{"constant":false,"id":1043,"mutability":"mutable","name":"size","nameLocation":"10481:4:12","nodeType":"VariableDeclaration","scope":1053,"src":"10473:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1042,"name":"uint256","nodeType":"ElementaryTypeName","src":"10473:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1046,"mutability":"mutable","name":"version","nameLocation":"10548:7:12","nodeType":"VariableDeclaration","scope":1053,"src":"10540:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1045,"name":"uint256","nodeType":"ElementaryTypeName","src":"10540:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1049,"mutability":"mutable","name":"lastModified","nameLocation":"10618:12:12","nodeType":"VariableDeclaration","scope":1053,"src":"10610:20:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1048,"name":"uint256","nodeType":"ElementaryTypeName","src":"10610:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1052,"mutability":"mutable","name":"header","nameLocation":"10723:6:12","nodeType":"VariableDeclaration","scope":1053,"src":"10715:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1051,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10715:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"ResourceMetadata","nameLocation":"10329:16:12","nodeType":"StructDefinition","scope":1493,"src":"10322:411:12","visibility":"public"},{"canonicalName":"DataRegistration","documentation":{"id":1054,"nodeType":"StructuredDocumentation","src":"10737:144:12","text":"@title Data Registration Structure\n @notice Contains data for registering a resource chunk\n @dev Used for PUT and PATCH operations"},"id":1064,"members":[{"constant":false,"id":1057,"mutability":"mutable","name":"data","nameLocation":"10959:4:12","nodeType":"VariableDeclaration","scope":1064,"src":"10953:10:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":1056,"name":"bytes","nodeType":"ElementaryTypeName","src":"10953:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1060,"mutability":"mutable","name":"chunkIndex","nameLocation":"11040:10:12","nodeType":"VariableDeclaration","scope":1064,"src":"11032:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1059,"name":"uint256","nodeType":"ElementaryTypeName","src":"11032:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1063,"mutability":"mutable","name":"publisher","nameLocation":"11115:9:12","nodeType":"VariableDeclaration","scope":1064,"src":"11107:17:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1062,"name":"address","nodeType":"ElementaryTypeName","src":"11107:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"DataRegistration","nameLocation":"10888:16:12","nodeType":"StructDefinition","scope":1493,"src":"10881:247:12","visibility":"public"},{"body":{"id":1106,"nodeType":"Block","src":"11499:149:12","statements":[{"assignments":[1074],"declarations":[{"constant":false,"id":1074,"mutability":"mutable","name":"mask","nameLocation":"11513:4:12","nodeType":"VariableDeclaration","scope":1106,"src":"11506:11:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1073,"name":"uint16","nodeType":"ElementaryTypeName","src":"11506:6:12","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":1076,"initialValue":{"hexValue":"30","id":1075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11520:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11506:15:12"},{"body":{"id":1102,"nodeType":"Block","src":"11570:57:12","statements":[{"expression":{"id":1100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1088,"name":"mask","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1074,"src":"11581:4:12","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":1091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11596:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"arguments":[{"baseExpression":{"id":1094,"name":"methods","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1068,"src":"11607:7:12","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_Method_$955_$dyn_memory_ptr","typeString":"enum Method[] memory"}},"id":1096,"indexExpression":{"id":1095,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1078,"src":"11615:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11607:10:12","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}],"id":1093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11601:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":1092,"name":"uint8","nodeType":"ElementaryTypeName","src":"11601:5:12","typeDescriptions":{}}},"id":1097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11601:17:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"11596:22:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1090,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11589:6:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":1089,"name":"uint16","nodeType":"ElementaryTypeName","src":"11589:6:12","typeDescriptions":{}}},"id":1099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11589:30:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"11581:38:12","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":1101,"nodeType":"ExpressionStatement","src":"11581:38:12"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1081,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1078,"src":"11545:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":1082,"name":"methods","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1068,"src":"11549:7:12","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_Method_$955_$dyn_memory_ptr","typeString":"enum Method[] memory"}},"id":1083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11557:6:12","memberName":"length","nodeType":"MemberAccess","src":"11549:14:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11545:18:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1103,"initializationExpression":{"assignments":[1078],"declarations":[{"constant":false,"id":1078,"mutability":"mutable","name":"i","nameLocation":"11538:1:12","nodeType":"VariableDeclaration","scope":1103,"src":"11533:6:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1077,"name":"uint","nodeType":"ElementaryTypeName","src":"11533:4:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1080,"initialValue":{"hexValue":"30","id":1079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11542:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11533:10:12"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":1086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11565:3:12","subExpression":{"id":1085,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1078,"src":"11565:1:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1087,"nodeType":"ExpressionStatement","src":"11565:3:12"},"nodeType":"ForStatement","src":"11528:99:12"},{"expression":{"id":1104,"name":"mask","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1074,"src":"11640:4:12","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":1072,"id":1105,"nodeType":"Return","src":"11633:11:12"}]},"id":1107,"implemented":true,"kind":"freeFunction","modifiers":[],"name":"methodsToMask","nameLocation":"11438:13:12","nodeType":"FunctionDefinition","parameters":{"id":1069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1068,"mutability":"mutable","name":"methods","nameLocation":"11468:7:12","nodeType":"VariableDeclaration","scope":1107,"src":"11452:23:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_Method_$955_$dyn_memory_ptr","typeString":"enum Method[]"},"typeName":{"baseType":{"id":1066,"nodeType":"UserDefinedTypeName","pathNode":{"id":1065,"name":"Method","nameLocations":["11452:6:12"],"nodeType":"IdentifierPath","referencedDeclaration":955,"src":"11452:6:12"},"referencedDeclaration":955,"src":"11452:6:12","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}},"id":1067,"nodeType":"ArrayTypeName","src":"11452:8:12","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_Method_$955_$dyn_storage_ptr","typeString":"enum Method[]"}},"visibility":"internal"}],"src":"11451:25:12"},"returnParameters":{"id":1072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1071,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1107,"src":"11491:6:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1070,"name":"uint16","nodeType":"ElementaryTypeName","src":"11491:6:12","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"11490:8:12"},"scope":1493,"src":"11429:219:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1122,"nodeType":"Block","src":"11935:48:12","statements":[{"expression":{"arguments":[{"arguments":[{"id":1118,"name":"_header","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1110,"src":"11970:7:12","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"}],"expression":{"id":1116,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11959:3:12","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1117,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11963:6:12","memberName":"encode","nodeType":"MemberAccess","src":"11959:10:12","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11959:19:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1115,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"11949:9:12","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11949:30:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1114,"id":1121,"nodeType":"Return","src":"11942:37:12"}]},"id":1123,"implemented":true,"kind":"freeFunction","modifiers":[],"name":"getHeaderAddress","nameLocation":"11868:16:12","nodeType":"FunctionDefinition","parameters":{"id":1111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1110,"mutability":"mutable","name":"_header","nameLocation":"11903:7:12","nodeType":"VariableDeclaration","scope":1123,"src":"11885:25:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo"},"typeName":{"id":1109,"nodeType":"UserDefinedTypeName","pathNode":{"id":1108,"name":"HeaderInfo","nameLocations":["11885:10:12"],"nodeType":"IdentifierPath","referencedDeclaration":1022,"src":"11885:10:12"},"referencedDeclaration":1022,"src":"11885:10:12","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_storage_ptr","typeString":"struct HeaderInfo"}},"visibility":"internal"}],"src":"11884:27:12"},"returnParameters":{"id":1114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1113,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1123,"src":"11926:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1112,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11926:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11925:9:12"},"scope":1493,"src":"11859:124:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"canonicalName":"OPTIONSResponse","documentation":{"id":1124,"nodeType":"StructuredDocumentation","src":"12857:142:12","text":"@title OPTIONS Response Structure\n @notice Contains response data for OPTIONS requests\n @dev Includes bitmask of allowed methods"},"id":1131,"members":[{"constant":false,"id":1127,"mutability":"mutable","name":"status","nameLocation":"13074:6:12","nodeType":"VariableDeclaration","scope":1131,"src":"13067:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1126,"name":"uint16","nodeType":"ElementaryTypeName","src":"13067:6:12","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1130,"mutability":"mutable","name":"allow","nameLocation":"13138:5:12","nodeType":"VariableDeclaration","scope":1131,"src":"13131:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1129,"name":"uint16","nodeType":"ElementaryTypeName","src":"13131:6:12","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"name":"OPTIONSResponse","nameLocation":"13006:15:12","nodeType":"StructDefinition","scope":1493,"src":"12999:148:12","visibility":"public"},{"canonicalName":"HEADRequest","documentation":{"id":1132,"nodeType":"StructuredDocumentation","src":"13151:135:12","text":"@title HEAD Request Structure\n @notice Contains request data for HEAD requests\n @dev Includes conditional request headers"},"id":1142,"members":[{"constant":false,"id":1135,"mutability":"mutable","name":"path","nameLocation":"13361:4:12","nodeType":"VariableDeclaration","scope":1142,"src":"13354:11:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":1134,"name":"string","nodeType":"ElementaryTypeName","src":"13354:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1138,"mutability":"mutable","name":"ifModifiedSince","nameLocation":"13448:15:12","nodeType":"VariableDeclaration","scope":1142,"src":"13440:23:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1137,"name":"uint256","nodeType":"ElementaryTypeName","src":"13440:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1141,"mutability":"mutable","name":"ifNoneMatch","nameLocation":"13537:11:12","nodeType":"VariableDeclaration","scope":1142,"src":"13529:19:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1140,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13529:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"HEADRequest","nameLocation":"13293:11:12","nodeType":"StructDefinition","scope":1493,"src":"13286:266:12","visibility":"public"},{"canonicalName":"HEADResponse","documentation":{"id":1143,"nodeType":"StructuredDocumentation","src":"13556:163:12","text":"@title HEAD Response Structure\n @notice Contains metadata and header information for HEAD requests\n @dev Used as base response type for other methods"},"id":1158,"members":[{"constant":false,"id":1146,"mutability":"mutable","name":"status","nameLocation":"13791:6:12","nodeType":"VariableDeclaration","scope":1158,"src":"13784:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1145,"name":"uint16","nodeType":"ElementaryTypeName","src":"13784:6:12","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":1150,"mutability":"mutable","name":"headerInfo","nameLocation":"13860:10:12","nodeType":"VariableDeclaration","scope":1158,"src":"13849:21:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_storage_ptr","typeString":"struct HeaderInfo"},"typeName":{"id":1149,"nodeType":"UserDefinedTypeName","pathNode":{"id":1148,"name":"HeaderInfo","nameLocations":["13849:10:12"],"nodeType":"IdentifierPath","referencedDeclaration":1022,"src":"13849:10:12"},"referencedDeclaration":1022,"src":"13849:10:12","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_storage_ptr","typeString":"struct HeaderInfo"}},"visibility":"internal"},{"constant":false,"id":1154,"mutability":"mutable","name":"metadata","nameLocation":"13929:8:12","nodeType":"VariableDeclaration","scope":1158,"src":"13912:25:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_storage_ptr","typeString":"struct ResourceMetadata"},"typeName":{"id":1153,"nodeType":"UserDefinedTypeName","pathNode":{"id":1152,"name":"ResourceMetadata","nameLocations":["13912:16:12"],"nodeType":"IdentifierPath","referencedDeclaration":1053,"src":"13912:16:12"},"referencedDeclaration":1053,"src":"13912:16:12","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_storage_ptr","typeString":"struct ResourceMetadata"}},"visibility":"internal"},{"constant":false,"id":1157,"mutability":"mutable","name":"etag","nameLocation":"14003:4:12","nodeType":"VariableDeclaration","scope":1158,"src":"13995:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1156,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13995:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"HEADResponse","nameLocation":"13726:12:12","nodeType":"StructDefinition","scope":1493,"src":"13719:292:12","visibility":"public"},{"canonicalName":"LOCATEResponse","documentation":{"id":1159,"nodeType":"StructuredDocumentation","src":"14015:334:12","text":"@title LOCATE Response Structure\n @notice Extended response for LOCATE requests\n @param head The base HEAD response\n @param dataPoints The array of data point addresses for content chunks\n @param totalChunks The total number of chunks in the resource\n @dev Includes storage addresses and data point locations"},"id":1168,"members":[{"constant":false,"id":1163,"mutability":"mutable","name":"head","nameLocation":"14427:4:12","nodeType":"VariableDeclaration","scope":1168,"src":"14414:17:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_storage_ptr","typeString":"struct HEADResponse"},"typeName":{"id":1162,"nodeType":"UserDefinedTypeName","pathNode":{"id":1161,"name":"HEADResponse","nameLocations":["14414:12:12"],"nodeType":"IdentifierPath","referencedDeclaration":1158,"src":"14414:12:12"},"referencedDeclaration":1158,"src":"14414:12:12","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_storage_ptr","typeString":"struct HEADResponse"}},"visibility":"internal"},{"constant":false,"id":1167,"mutability":"mutable","name":"resource","nameLocation":"14490:8:12","nodeType":"VariableDeclaration","scope":1168,"src":"14473:25:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceResponse_$885_storage_ptr","typeString":"struct ResourceResponse"},"typeName":{"id":1166,"nodeType":"UserDefinedTypeName","pathNode":{"id":1165,"name":"ResourceResponse","nameLocations":["14473:16:12"],"nodeType":"IdentifierPath","referencedDeclaration":885,"src":"14473:16:12"},"referencedDeclaration":885,"src":"14473:16:12","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceResponse_$885_storage_ptr","typeString":"struct ResourceResponse"}},"visibility":"internal"}],"name":"LOCATEResponse","nameLocation":"14356:14:12","nodeType":"StructDefinition","scope":1493,"src":"14349:153:12","visibility":"public"},{"canonicalName":"PUTRequest","documentation":{"id":1169,"nodeType":"StructuredDocumentation","src":"14506:144:12","text":"@title PUT Request Structure\n @notice Contains data for creating or replacing resources\n @dev Includes metadata and content chunks"},"id":1183,"members":[{"constant":false,"id":1173,"mutability":"mutable","name":"head","nameLocation":"14730:4:12","nodeType":"VariableDeclaration","scope":1183,"src":"14718:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_storage_ptr","typeString":"struct HEADRequest"},"typeName":{"id":1172,"nodeType":"UserDefinedTypeName","pathNode":{"id":1171,"name":"HEADRequest","nameLocations":["14718:11:12"],"nodeType":"IdentifierPath","referencedDeclaration":1142,"src":"14718:11:12"},"referencedDeclaration":1142,"src":"14718:11:12","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_storage_ptr","typeString":"struct HEADRequest"}},"visibility":"internal"},{"constant":false,"id":1177,"mutability":"mutable","name":"properties","nameLocation":"14804:10:12","nodeType":"VariableDeclaration","scope":1183,"src":"14785:29:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceProperties_$1035_storage_ptr","typeString":"struct ResourceProperties"},"typeName":{"id":1176,"nodeType":"UserDefinedTypeName","pathNode":{"id":1175,"name":"ResourceProperties","nameLocations":["14785:18:12"],"nodeType":"IdentifierPath","referencedDeclaration":1035,"src":"14785:18:12"},"referencedDeclaration":1035,"src":"14785:18:12","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceProperties_$1035_storage_ptr","typeString":"struct ResourceProperties"}},"visibility":"internal"},{"constant":false,"id":1182,"mutability":"mutable","name":"data","nameLocation":"14881:4:12","nodeType":"VariableDeclaration","scope":1183,"src":"14862:23:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DataRegistration_$1064_storage_$dyn_storage_ptr","typeString":"struct DataRegistration[]"},"typeName":{"baseType":{"id":1180,"nodeType":"UserDefinedTypeName","pathNode":{"id":1179,"name":"DataRegistration","nameLocations":["14862:16:12"],"nodeType":"IdentifierPath","referencedDeclaration":1064,"src":"14862:16:12"},"referencedDeclaration":1064,"src":"14862:16:12","typeDescriptions":{"typeIdentifier":"t_struct$_DataRegistration_$1064_storage_ptr","typeString":"struct DataRegistration"}},"id":1181,"nodeType":"ArrayTypeName","src":"14862:18:12","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DataRegistration_$1064_storage_$dyn_storage_ptr","typeString":"struct DataRegistration[]"}},"visibility":"internal"}],"name":"PUTRequest","nameLocation":"14657:10:12","nodeType":"StructDefinition","scope":1493,"src":"14650:239:12","visibility":"public"},{"canonicalName":"PATCHRequest","documentation":{"id":1184,"nodeType":"StructuredDocumentation","src":"14941:139:12","text":"@title PATCH Request Structure\n @notice Contains data for updating parts of resources\n @dev Includes content chunks to update"},"id":1194,"members":[{"constant":false,"id":1188,"mutability":"mutable","name":"head","nameLocation":"15162:4:12","nodeType":"VariableDeclaration","scope":1194,"src":"15150:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_storage_ptr","typeString":"struct HEADRequest"},"typeName":{"id":1187,"nodeType":"UserDefinedTypeName","pathNode":{"id":1186,"name":"HEADRequest","nameLocations":["15150:11:12"],"nodeType":"IdentifierPath","referencedDeclaration":1142,"src":"15150:11:12"},"referencedDeclaration":1142,"src":"15150:11:12","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_storage_ptr","typeString":"struct HEADRequest"}},"visibility":"internal"},{"constant":false,"id":1193,"mutability":"mutable","name":"data","nameLocation":"15234:4:12","nodeType":"VariableDeclaration","scope":1194,"src":"15215:23:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DataRegistration_$1064_storage_$dyn_storage_ptr","typeString":"struct DataRegistration[]"},"typeName":{"baseType":{"id":1191,"nodeType":"UserDefinedTypeName","pathNode":{"id":1190,"name":"DataRegistration","nameLocations":["15215:16:12"],"nodeType":"IdentifierPath","referencedDeclaration":1064,"src":"15215:16:12"},"referencedDeclaration":1064,"src":"15215:16:12","typeDescriptions":{"typeIdentifier":"t_struct$_DataRegistration_$1064_storage_ptr","typeString":"struct DataRegistration"}},"id":1192,"nodeType":"ArrayTypeName","src":"15215:18:12","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DataRegistration_$1064_storage_$dyn_storage_ptr","typeString":"struct DataRegistration[]"}},"visibility":"internal"}],"name":"PATCHRequest","nameLocation":"15087:12:12","nodeType":"StructDefinition","scope":1493,"src":"15080:162:12","visibility":"public"},{"canonicalName":"DEFINERequest","documentation":{"id":1195,"nodeType":"StructuredDocumentation","src":"15296:136:12","text":"@title DEFINE Request Structure\n @notice Contains data for updating resource headers\n @dev Includes new header information"},"id":1204,"members":[{"constant":false,"id":1199,"mutability":"mutable","name":"head","nameLocation":"15515:4:12","nodeType":"VariableDeclaration","scope":1204,"src":"15503:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_storage_ptr","typeString":"struct HEADRequest"},"typeName":{"id":1198,"nodeType":"UserDefinedTypeName","pathNode":{"id":1197,"name":"HEADRequest","nameLocations":["15503:11:12"],"nodeType":"IdentifierPath","referencedDeclaration":1142,"src":"15503:11:12"},"referencedDeclaration":1142,"src":"15503:11:12","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_storage_ptr","typeString":"struct HEADRequest"}},"visibility":"internal"},{"constant":false,"id":1203,"mutability":"mutable","name":"data","nameLocation":"15577:4:12","nodeType":"VariableDeclaration","scope":1204,"src":"15566:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_storage_ptr","typeString":"struct HeaderInfo"},"typeName":{"id":1202,"nodeType":"UserDefinedTypeName","pathNode":{"id":1201,"name":"HeaderInfo","nameLocations":["15566:10:12"],"nodeType":"IdentifierPath","referencedDeclaration":1022,"src":"15566:10:12"},"referencedDeclaration":1022,"src":"15566:10:12","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_storage_ptr","typeString":"struct HeaderInfo"}},"visibility":"internal"}],"name":"DEFINERequest","nameLocation":"15439:13:12","nodeType":"StructDefinition","scope":1493,"src":"15432:153:12","visibility":"public"},{"canonicalName":"DEFINEResponse","documentation":{"id":1205,"nodeType":"StructuredDocumentation","src":"15589:136:12","text":"@title DEFINE Response Structure\n @notice Contains response data for DEFINE requests\n @dev Includes the new header address"},"id":1213,"members":[{"constant":false,"id":1209,"mutability":"mutable","name":"head","nameLocation":"15803:4:12","nodeType":"VariableDeclaration","scope":1213,"src":"15790:17:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_storage_ptr","typeString":"struct HEADResponse"},"typeName":{"id":1208,"nodeType":"UserDefinedTypeName","pathNode":{"id":1207,"name":"HEADResponse","nameLocations":["15790:12:12"],"nodeType":"IdentifierPath","referencedDeclaration":1158,"src":"15790:12:12"},"referencedDeclaration":1158,"src":"15790:12:12","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_storage_ptr","typeString":"struct HEADResponse"}},"visibility":"internal"},{"constant":false,"id":1212,"mutability":"mutable","name":"headerAddress","nameLocation":"15858:13:12","nodeType":"VariableDeclaration","scope":1213,"src":"15850:21:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1211,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15850:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"DEFINEResponse","nameLocation":"15732:14:12","nodeType":"StructDefinition","scope":1493,"src":"15725:150:12","visibility":"public"},{"body":{"id":1232,"nodeType":"Block","src":"16253:63:12","statements":[{"expression":{"arguments":[{"arguments":[{"id":1227,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1216,"src":"16288:9:12","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"}},{"id":1228,"name":"_dataPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1219,"src":"16299:11:12","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"expression":{"id":1225,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16277:3:12","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16281:6:12","memberName":"encode","nodeType":"MemberAccess","src":"16277:10:12","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16277:34:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1224,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16267:9:12","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16267:45:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1223,"id":1231,"nodeType":"Return","src":"16260:52:12"}]},"id":1233,"implemented":true,"kind":"freeFunction","modifiers":[],"name":"calculateEtag","nameLocation":"16137:13:12","nodeType":"FunctionDefinition","parameters":{"id":1220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1216,"mutability":"mutable","name":"_metadata","nameLocation":"16181:9:12","nodeType":"VariableDeclaration","scope":1233,"src":"16157:33:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata"},"typeName":{"id":1215,"nodeType":"UserDefinedTypeName","pathNode":{"id":1214,"name":"ResourceMetadata","nameLocations":["16157:16:12"],"nodeType":"IdentifierPath","referencedDeclaration":1053,"src":"16157:16:12"},"referencedDeclaration":1053,"src":"16157:16:12","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_storage_ptr","typeString":"struct ResourceMetadata"}},"visibility":"internal"},{"constant":false,"id":1219,"mutability":"mutable","name":"_dataPoints","nameLocation":"16215:11:12","nodeType":"VariableDeclaration","scope":1233,"src":"16198:28:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":1217,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16198:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1218,"nodeType":"ArrayTypeName","src":"16198:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"16150:79:12"},"returnParameters":{"id":1223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1222,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1233,"src":"16244:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1221,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16244:7:12","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16243:9:12"},"scope":1493,"src":"16128:188:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"canonicalName":"Range","documentation":{"id":1234,"nodeType":"StructuredDocumentation","src":"16367:142:12","text":"@title Range Structure\n @notice Defines a range with start and end positions\n @dev Supports negative indices (counting from end)"},"id":1241,"members":[{"constant":false,"id":1237,"mutability":"mutable","name":"start","nameLocation":"16594:5:12","nodeType":"VariableDeclaration","scope":1241,"src":"16587:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1236,"name":"int256","nodeType":"ElementaryTypeName","src":"16587:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1240,"mutability":"mutable","name":"end","nameLocation":"16685:3:12","nodeType":"VariableDeclaration","scope":1241,"src":"16678:10:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1239,"name":"int256","nodeType":"ElementaryTypeName","src":"16678:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"name":"Range","nameLocation":"16516:5:12","nodeType":"StructDefinition","scope":1493,"src":"16509:183:12","visibility":"public"},{"canonicalName":"LOCATERequest","documentation":{"id":1242,"nodeType":"StructuredDocumentation","src":"16696:161:12","text":"@title LOCATE Request Structure\n @notice Extended request for LOCATE with chunk ranges\n @dev Allows requesting specific ranges of data point chunks"},"id":1251,"members":[{"constant":false,"id":1246,"mutability":"mutable","name":"head","nameLocation":"16940:4:12","nodeType":"VariableDeclaration","scope":1251,"src":"16928:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_storage_ptr","typeString":"struct HEADRequest"},"typeName":{"id":1245,"nodeType":"UserDefinedTypeName","pathNode":{"id":1244,"name":"HEADRequest","nameLocations":["16928:11:12"],"nodeType":"IdentifierPath","referencedDeclaration":1142,"src":"16928:11:12"},"referencedDeclaration":1142,"src":"16928:11:12","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_storage_ptr","typeString":"struct HEADRequest"}},"visibility":"internal"},{"constant":false,"id":1250,"mutability":"mutable","name":"rangeChunks","nameLocation":"17000:11:12","nodeType":"VariableDeclaration","scope":1251,"src":"16994:17:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_storage_ptr","typeString":"struct Range"},"typeName":{"id":1249,"nodeType":"UserDefinedTypeName","pathNode":{"id":1248,"name":"Range","nameLocations":["16994:5:12"],"nodeType":"IdentifierPath","referencedDeclaration":1241,"src":"16994:5:12"},"referencedDeclaration":1241,"src":"16994:5:12","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_storage_ptr","typeString":"struct Range"}},"visibility":"internal"}],"name":"LOCATERequest","nameLocation":"16864:13:12","nodeType":"StructDefinition","scope":1493,"src":"16857:158:12","visibility":"public"},{"canonicalName":"DataPointSizes","id":1257,"members":[{"constant":false,"id":1254,"mutability":"mutable","name":"sizes","nameLocation":"17058:5:12","nodeType":"VariableDeclaration","scope":1257,"src":"17048:15:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1252,"name":"uint256","nodeType":"ElementaryTypeName","src":"17048:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1253,"nodeType":"ArrayTypeName","src":"17048:9:12","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":1256,"mutability":"mutable","name":"totalSize","nameLocation":"17078:9:12","nodeType":"VariableDeclaration","scope":1257,"src":"17070:17:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1255,"name":"uint256","nodeType":"ElementaryTypeName","src":"17070:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"DataPointSizes","nameLocation":"17026:14:12","nodeType":"StructDefinition","scope":1493,"src":"17019:72:12","visibility":"public"},{"canonicalName":"ProcessedData","id":1263,"members":[{"constant":false,"id":1259,"mutability":"mutable","name":"data","nameLocation":"17129:4:12","nodeType":"VariableDeclaration","scope":1263,"src":"17123:10:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":1258,"name":"bytes","nodeType":"ElementaryTypeName","src":"17123:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":1262,"mutability":"mutable","name":"sizes","nameLocation":"17155:5:12","nodeType":"VariableDeclaration","scope":1263,"src":"17140:20:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_DataPointSizes_$1257_storage_ptr","typeString":"struct DataPointSizes"},"typeName":{"id":1261,"nodeType":"UserDefinedTypeName","pathNode":{"id":1260,"name":"DataPointSizes","nameLocations":["17140:14:12"],"nodeType":"IdentifierPath","referencedDeclaration":1257,"src":"17140:14:12"},"referencedDeclaration":1257,"src":"17140:14:12","typeDescriptions":{"typeIdentifier":"t_struct$_DataPointSizes_$1257_storage_ptr","typeString":"struct DataPointSizes"}},"visibility":"internal"}],"name":"ProcessedData","nameLocation":"17102:13:12","nodeType":"StructDefinition","scope":1493,"src":"17095:69:12","visibility":"public"},{"canonicalName":"LOCATEResponseSecure","id":1270,"members":[{"constant":false,"id":1266,"mutability":"mutable","name":"locate","nameLocation":"17218:6:12","nodeType":"VariableDeclaration","scope":1270,"src":"17203:21:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_storage_ptr","typeString":"struct LOCATEResponse"},"typeName":{"id":1265,"nodeType":"UserDefinedTypeName","pathNode":{"id":1264,"name":"LOCATEResponse","nameLocations":["17203:14:12"],"nodeType":"IdentifierPath","referencedDeclaration":1168,"src":"17203:14:12"},"referencedDeclaration":1168,"src":"17203:14:12","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_storage_ptr","typeString":"struct LOCATEResponse"}},"visibility":"internal"},{"constant":false,"id":1269,"mutability":"mutable","name":"structure","nameLocation":"17246:9:12","nodeType":"VariableDeclaration","scope":1270,"src":"17231:24:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_DataPointSizes_$1257_storage_ptr","typeString":"struct DataPointSizes"},"typeName":{"id":1268,"nodeType":"UserDefinedTypeName","pathNode":{"id":1267,"name":"DataPointSizes","nameLocations":["17231:14:12"],"nodeType":"IdentifierPath","referencedDeclaration":1257,"src":"17231:14:12"},"referencedDeclaration":1257,"src":"17231:14:12","typeDescriptions":{"typeIdentifier":"t_struct$_DataPointSizes_$1257_storage_ptr","typeString":"struct DataPointSizes"}},"visibility":"internal"}],"name":"LOCATEResponseSecure","nameLocation":"17175:20:12","nodeType":"StructDefinition","scope":1493,"src":"17168:91:12","visibility":"public"},{"canonicalName":"GETRequest","documentation":{"id":1271,"nodeType":"StructuredDocumentation","src":"17263:291:12","text":"@title GET Request Structure\n @notice Extended request for GET with byte ranges\n @param locate The basic request information including path and conditional headers\n @param rangeBytes The range of bytes to retrieve\n @dev Allows requesting specific byte ranges of content"},"id":1280,"members":[{"constant":false,"id":1275,"mutability":"mutable","name":"locate","nameLocation":"17636:6:12","nodeType":"VariableDeclaration","scope":1280,"src":"17622:20:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATERequest_$1251_storage_ptr","typeString":"struct LOCATERequest"},"typeName":{"id":1274,"nodeType":"UserDefinedTypeName","pathNode":{"id":1273,"name":"LOCATERequest","nameLocations":["17622:13:12"],"nodeType":"IdentifierPath","referencedDeclaration":1251,"src":"17622:13:12"},"referencedDeclaration":1251,"src":"17622:13:12","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATERequest_$1251_storage_ptr","typeString":"struct LOCATERequest"}},"visibility":"internal"},{"constant":false,"id":1279,"mutability":"mutable","name":"rangeBytes","nameLocation":"17699:10:12","nodeType":"VariableDeclaration","scope":1280,"src":"17693:16:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_storage_ptr","typeString":"struct Range"},"typeName":{"id":1278,"nodeType":"UserDefinedTypeName","pathNode":{"id":1277,"name":"Range","nameLocations":["17693:5:12"],"nodeType":"IdentifierPath","referencedDeclaration":1241,"src":"17693:5:12"},"referencedDeclaration":1241,"src":"17693:5:12","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_storage_ptr","typeString":"struct Range"}},"visibility":"internal"}],"name":"GETRequest","nameLocation":"17561:10:12","nodeType":"StructDefinition","scope":1493,"src":"17554:159:12","visibility":"public"},{"canonicalName":"GETResponse","documentation":{"id":1281,"nodeType":"StructuredDocumentation","src":"17717:133:12","text":"@title GET Response Structure\n @notice Contains response data for GET requests\n @dev Includes content data and metadata"},"id":1290,"members":[{"constant":false,"id":1285,"mutability":"mutable","name":"head","nameLocation":"17925:4:12","nodeType":"VariableDeclaration","scope":1290,"src":"17912:17:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_storage_ptr","typeString":"struct HEADResponse"},"typeName":{"id":1284,"nodeType":"UserDefinedTypeName","pathNode":{"id":1283,"name":"HEADResponse","nameLocations":["17912:12:12"],"nodeType":"IdentifierPath","referencedDeclaration":1158,"src":"17912:12:12"},"referencedDeclaration":1158,"src":"17912:12:12","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_storage_ptr","typeString":"struct HEADResponse"}},"visibility":"internal"},{"constant":false,"id":1289,"mutability":"mutable","name":"body","nameLocation":"17980:4:12","nodeType":"VariableDeclaration","scope":1290,"src":"17966:18:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ProcessedData_$1263_storage_ptr","typeString":"struct ProcessedData"},"typeName":{"id":1288,"nodeType":"UserDefinedTypeName","pathNode":{"id":1287,"name":"ProcessedData","nameLocations":["17966:13:12"],"nodeType":"IdentifierPath","referencedDeclaration":1263,"src":"17966:13:12"},"referencedDeclaration":1263,"src":"17966:13:12","typeDescriptions":{"typeIdentifier":"t_struct$_ProcessedData_$1263_storage_ptr","typeString":"struct ProcessedData"}},"visibility":"internal"}],"name":"GETResponse","nameLocation":"17857:11:12","nodeType":"StructDefinition","scope":1493,"src":"17850:138:12","visibility":"public"},{"body":{"id":1305,"nodeType":"Block","src":"18119:46:12","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":1303,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"arguments":[{"id":1298,"name":"Method","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"18145:6:12","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Method_$955_$","typeString":"type(enum Method)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_enum$_Method_$955_$","typeString":"type(enum Method)"}],"id":1297,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"18140:4:12","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18140:12:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_enum$_Method_$955","typeString":"type(enum Method)"}},"id":1300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18153:3:12","memberName":"max","nodeType":"MemberAccess","src":"18140:16:12","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}],"id":1296,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18133:6:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":1295,"name":"uint16","nodeType":"ElementaryTypeName","src":"18133:6:12","typeDescriptions":{}}},"id":1301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18133:24:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18160:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"18133:28:12","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"functionReturnParameters":1294,"id":1304,"nodeType":"Return","src":"18126:35:12"}]},"id":1306,"implemented":true,"kind":"freeFunction","modifiers":[],"name":"maxMethods_","nameLocation":"18083:11:12","nodeType":"FunctionDefinition","parameters":{"id":1291,"nodeType":"ParameterList","parameters":[],"src":"18094:2:12"},"returnParameters":{"id":1294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1293,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1306,"src":"18111:6:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1292,"name":"uint16","nodeType":"ElementaryTypeName","src":"18111:6:12","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"18110:8:12"},"scope":1493,"src":"18074:91:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1433,"nodeType":"Block","src":"18543:1141:12","statements":[{"assignments":[1319],"declarations":[{"constant":false,"id":1319,"mutability":"mutable","name":"_length","nameLocation":"18557:7:12","nodeType":"VariableDeclaration","scope":1433,"src":"18550:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1318,"name":"int256","nodeType":"ElementaryTypeName","src":"18550:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":1324,"initialValue":{"arguments":[{"id":1322,"name":"totalLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1312,"src":"18574:11:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1321,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18567:6:12","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":1320,"name":"int256","nodeType":"ElementaryTypeName","src":"18567:6:12","typeDescriptions":{}}},"id":1323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18567:19:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"18550:36:12"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1325,"name":"range","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1310,"src":"18675:5:12","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range memory"}},"id":1326,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18681:5:12","memberName":"start","nodeType":"MemberAccess","referencedDeclaration":1237,"src":"18675:11:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1328,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"18690:2:12","subExpression":{"hexValue":"31","id":1327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18691:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}},"src":"18675:17:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1330,"name":"range","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1310,"src":"18696:5:12","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range memory"}},"id":1331,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18702:3:12","memberName":"end","nodeType":"MemberAccess","referencedDeclaration":1240,"src":"18696:9:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18709:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18696:14:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"18675:35:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1350,"nodeType":"IfStatement","src":"18671:122:12","trueBody":{"id":1349,"nodeType":"Block","src":"18712:81:12","statements":[{"expression":{"id":1339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1335,"name":"range","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1310,"src":"18723:5:12","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range memory"}},"id":1337,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"18729:5:12","memberName":"start","nodeType":"MemberAccess","referencedDeclaration":1237,"src":"18723:11:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":1338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18737:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18723:15:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":1340,"nodeType":"ExpressionStatement","src":"18723:15:12"},{"expression":{"id":1345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1341,"name":"range","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1310,"src":"18749:5:12","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range memory"}},"id":1343,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"18755:3:12","memberName":"end","nodeType":"MemberAccess","referencedDeclaration":1240,"src":"18749:9:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":1344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18761:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18749:13:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":1346,"nodeType":"ExpressionStatement","src":"18749:13:12"},{"expression":{"id":1347,"name":"range","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1310,"src":"18780:5:12","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range memory"}},"functionReturnParameters":1317,"id":1348,"nodeType":"Return","src":"18773:12:12"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1351,"name":"range","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1310,"src":"18879:5:12","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range memory"}},"id":1352,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18885:3:12","memberName":"end","nodeType":"MemberAccess","referencedDeclaration":1240,"src":"18879:9:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18892:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18879:14:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1355,"name":"range","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1310,"src":"18897:5:12","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range memory"}},"id":1356,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18903:5:12","memberName":"start","nodeType":"MemberAccess","referencedDeclaration":1237,"src":"18897:11:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18912:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18897:16:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"18879:34:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1371,"nodeType":"IfStatement","src":"18875:105:12","trueBody":{"id":1370,"nodeType":"Block","src":"18915:65:12","statements":[{"expression":{"id":1366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1360,"name":"range","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1310,"src":"18926:5:12","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range memory"}},"id":1362,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"18932:3:12","memberName":"end","nodeType":"MemberAccess","referencedDeclaration":1240,"src":"18926:9:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1363,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1319,"src":"18938:7:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18948:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"18938:11:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"18926:23:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":1367,"nodeType":"ExpressionStatement","src":"18926:23:12"},{"expression":{"id":1368,"name":"range","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1310,"src":"18967:5:12","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range memory"}},"functionReturnParameters":1317,"id":1369,"nodeType":"Return","src":"18960:12:12"}]}},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1372,"name":"range","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1310,"src":"18992:5:12","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range memory"}},"id":1373,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18998:5:12","memberName":"start","nodeType":"MemberAccess","referencedDeclaration":1237,"src":"18992:11:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":1374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19006:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18992:15:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1388,"nodeType":"IfStatement","src":"18988:152:12","trueBody":{"id":1387,"nodeType":"Block","src":"19009:131:12","statements":[{"expression":{"id":1385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1376,"name":"range","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1310,"src":"19093:5:12","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range memory"}},"id":1378,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"19099:5:12","memberName":"start","nodeType":"MemberAccess","referencedDeclaration":1237,"src":"19093:11:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1379,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1319,"src":"19107:7:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19117:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"19107:11:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":1382,"name":"range","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1310,"src":"19121:5:12","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range memory"}},"id":1383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19127:5:12","memberName":"start","nodeType":"MemberAccess","referencedDeclaration":1237,"src":"19121:11:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"19107:25:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"19093:39:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":1386,"nodeType":"ExpressionStatement","src":"19093:39:12"}]}},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1389,"name":"range","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1310,"src":"19223:5:12","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range memory"}},"id":1390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19229:3:12","memberName":"end","nodeType":"MemberAccess","referencedDeclaration":1240,"src":"19223:9:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":1391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19235:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19223:13:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1405,"nodeType":"IfStatement","src":"19219:144:12","trueBody":{"id":1404,"nodeType":"Block","src":"19238:125:12","statements":[{"expression":{"id":1402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1393,"name":"range","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1310,"src":"19320:5:12","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range memory"}},"id":1395,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"19326:3:12","memberName":"end","nodeType":"MemberAccess","referencedDeclaration":1240,"src":"19320:9:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1396,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1319,"src":"19332:7:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":1397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19342:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"19332:11:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":1399,"name":"range","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1310,"src":"19346:5:12","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range memory"}},"id":1400,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19352:3:12","memberName":"end","nodeType":"MemberAccess","referencedDeclaration":1240,"src":"19346:9:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"19332:23:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"19320:35:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":1403,"nodeType":"ExpressionStatement","src":"19320:35:12"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1406,"name":"range","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1310,"src":"19444:5:12","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range memory"}},"id":1407,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19450:5:12","memberName":"start","nodeType":"MemberAccess","referencedDeclaration":1237,"src":"19444:11:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1408,"name":"range","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1310,"src":"19458:5:12","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range memory"}},"id":1409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19464:3:12","memberName":"end","nodeType":"MemberAccess","referencedDeclaration":1240,"src":"19458:9:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19470:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"19458:13:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"19444:27:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1413,"name":"range","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1310,"src":"19475:5:12","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range memory"}},"id":1414,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19481:5:12","memberName":"start","nodeType":"MemberAccess","referencedDeclaration":1237,"src":"19475:11:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":1415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19489:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19475:15:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19444:46:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1418,"name":"range","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1310,"src":"19494:5:12","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range memory"}},"id":1419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19500:3:12","memberName":"end","nodeType":"MemberAccess","referencedDeclaration":1240,"src":"19494:9:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1420,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1319,"src":"19506:7:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"19494:19:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19444:69:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1430,"nodeType":"IfStatement","src":"19440:220:12","trueBody":{"id":1429,"nodeType":"Block","src":"19515:145:12","statements":[{"errorCall":{"arguments":[{"hexValue":"4f7574206f6620426f756e6473","id":1424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19620:15:12","typeDescriptions":{"typeIdentifier":"t_stringliteral_f6f291dd7b3716f60112b675ea3e6f8513a7a585e9132e9f82751d445f328d0b","typeString":"literal_string \"Out of Bounds\""},"value":"Out of Bounds"},{"id":1425,"name":"range","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1310,"src":"19637:5:12","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range memory"}},{"id":1426,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1319,"src":"19644:7:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f6f291dd7b3716f60112b675ea3e6f8513a7a585e9132e9f82751d445f328d0b","typeString":"literal_string \"Out of Bounds\""},{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range memory"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":1423,"name":"_416","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":944,"src":"19615:4:12","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$_t_struct$_Range_$1241_memory_ptr_$_t_int256_$returns$_t_error_$","typeString":"function (string memory,struct Range memory,int256) pure returns (error)"}},"id":1427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19615:37:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1428,"nodeType":"RevertStatement","src":"19608:44:12"}]}},{"expression":{"id":1431,"name":"range","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1310,"src":"19675:5:12","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range memory"}},"functionReturnParameters":1317,"id":1432,"nodeType":"Return","src":"19668:12:12"}]},"documentation":{"id":1307,"nodeType":"StructuredDocumentation","src":"18169:266:12","text":"@notice Normalizes an int256 range to be within the total length and positive\n automatically normalizes 0,0 to 0,totalLength\n @param range The range to normalize\n @param totalLength The total length of the resource\n @return The normalized range"},"id":1434,"implemented":true,"kind":"freeFunction","modifiers":[],"name":"normalizeRange_","nameLocation":"18444:15:12","nodeType":"FunctionDefinition","parameters":{"id":1313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1310,"mutability":"mutable","name":"range","nameLocation":"18479:5:12","nodeType":"VariableDeclaration","scope":1434,"src":"18466:18:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range"},"typeName":{"id":1309,"nodeType":"UserDefinedTypeName","pathNode":{"id":1308,"name":"Range","nameLocations":["18466:5:12"],"nodeType":"IdentifierPath","referencedDeclaration":1241,"src":"18466:5:12"},"referencedDeclaration":1241,"src":"18466:5:12","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_storage_ptr","typeString":"struct Range"}},"visibility":"internal"},{"constant":false,"id":1312,"mutability":"mutable","name":"totalLength","nameLocation":"18500:11:12","nodeType":"VariableDeclaration","scope":1434,"src":"18492:19:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1311,"name":"uint256","nodeType":"ElementaryTypeName","src":"18492:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18459:55:12"},"returnParameters":{"id":1317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1316,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1434,"src":"18529:12:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range"},"typeName":{"id":1315,"nodeType":"UserDefinedTypeName","pathNode":{"id":1314,"name":"Range","nameLocations":["18529:5:12"],"nodeType":"IdentifierPath","referencedDeclaration":1241,"src":"18529:5:12"},"referencedDeclaration":1241,"src":"18529:5:12","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_storage_ptr","typeString":"struct Range"}},"visibility":"internal"}],"src":"18528:14:12"},"scope":1493,"src":"18435:1249:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1459,"nodeType":"Block","src":"19778:150:12","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1443,"name":"requestedSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1438,"src":"19789:13:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1444,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19806:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19789:18:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1449,"nodeType":"IfStatement","src":"19785:53:12","trueBody":{"id":1448,"nodeType":"Block","src":"19809:29:12","statements":[{"expression":{"hexValue":"323034","id":1446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19827:3:12","typeDescriptions":{"typeIdentifier":"t_rational_204_by_1","typeString":"int_const 204"},"value":"204"},"functionReturnParameters":1442,"id":1447,"nodeType":"Return","src":"19820:10:12"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1450,"name":"requestedSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1438,"src":"19848:13:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1451,"name":"resourceSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1436,"src":"19865:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19848:29:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1456,"nodeType":"IfStatement","src":"19844:64:12","trueBody":{"id":1455,"nodeType":"Block","src":"19879:29:12","statements":[{"expression":{"hexValue":"323030","id":1453,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19897:3:12","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"},"functionReturnParameters":1442,"id":1454,"nodeType":"Return","src":"19890:10:12"}]}},{"expression":{"hexValue":"323036","id":1457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19921:3:12","typeDescriptions":{"typeIdentifier":"t_rational_206_by_1","typeString":"int_const 206"},"value":"206"},"functionReturnParameters":1442,"id":1458,"nodeType":"Return","src":"19914:10:12"}]},"id":1460,"implemented":true,"kind":"freeFunction","modifiers":[],"name":"contentCode_","nameLocation":"19698:12:12","nodeType":"FunctionDefinition","parameters":{"id":1439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1436,"mutability":"mutable","name":"resourceSize","nameLocation":"19719:12:12","nodeType":"VariableDeclaration","scope":1460,"src":"19711:20:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1435,"name":"uint256","nodeType":"ElementaryTypeName","src":"19711:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1438,"mutability":"mutable","name":"requestedSize","nameLocation":"19741:13:12","nodeType":"VariableDeclaration","scope":1460,"src":"19733:21:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1437,"name":"uint256","nodeType":"ElementaryTypeName","src":"19733:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19710:45:12"},"returnParameters":{"id":1442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1441,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1460,"src":"19770:6:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":1440,"name":"uint16","nodeType":"ElementaryTypeName","src":"19770:6:12","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"19769:8:12"},"scope":1493,"src":"19689:239:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"anonymous":false,"documentation":{"id":1461,"nodeType":"StructuredDocumentation","src":"19932:162:12","text":"@notice Emitted when a DEFINE request is successful\n @param account The account or contract that made the request\n @param response The response data"},"eventSelector":"55c67887bc565be1497d05f1493b6b0b1a9f5240476ebf2ada689d5c296493fa","id":1468,"name":"DEFINESuccess","nameLocation":"20100:13:12","nodeType":"EventDefinition","parameters":{"id":1467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1463,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"20130:7:12","nodeType":"VariableDeclaration","scope":1468,"src":"20114:23:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1462,"name":"address","nodeType":"ElementaryTypeName","src":"20114:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1466,"indexed":false,"mutability":"mutable","name":"response","nameLocation":"20154:8:12","nodeType":"VariableDeclaration","scope":1468,"src":"20139:23:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_DEFINEResponse_$1213_memory_ptr","typeString":"struct DEFINEResponse"},"typeName":{"id":1465,"nodeType":"UserDefinedTypeName","pathNode":{"id":1464,"name":"DEFINEResponse","nameLocations":["20139:14:12"],"nodeType":"IdentifierPath","referencedDeclaration":1213,"src":"20139:14:12"},"referencedDeclaration":1213,"src":"20139:14:12","typeDescriptions":{"typeIdentifier":"t_struct$_DEFINEResponse_$1213_storage_ptr","typeString":"struct DEFINEResponse"}},"visibility":"internal"}],"src":"20113:50:12"},"src":"20094:70:12"},{"anonymous":false,"documentation":{"id":1469,"nodeType":"StructuredDocumentation","src":"20168:159:12","text":"@notice Emitted when a PUT request is successful\n @param account The account or contract that made the request\n @param response The response data"},"eventSelector":"46def6174d80782227f3ccfbaca1edbec0d3b3185a673ec4e577ee84d6cc5146","id":1476,"name":"PUTSuccess","nameLocation":"20333:10:12","nodeType":"EventDefinition","parameters":{"id":1475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1471,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"20360:7:12","nodeType":"VariableDeclaration","scope":1476,"src":"20344:23:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1470,"name":"address","nodeType":"ElementaryTypeName","src":"20344:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1474,"indexed":false,"mutability":"mutable","name":"response","nameLocation":"20384:8:12","nodeType":"VariableDeclaration","scope":1476,"src":"20369:23:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_memory_ptr","typeString":"struct LOCATEResponse"},"typeName":{"id":1473,"nodeType":"UserDefinedTypeName","pathNode":{"id":1472,"name":"LOCATEResponse","nameLocations":["20369:14:12"],"nodeType":"IdentifierPath","referencedDeclaration":1168,"src":"20369:14:12"},"referencedDeclaration":1168,"src":"20369:14:12","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_storage_ptr","typeString":"struct LOCATEResponse"}},"visibility":"internal"}],"src":"20343:50:12"},"src":"20327:67:12"},{"anonymous":false,"documentation":{"id":1477,"nodeType":"StructuredDocumentation","src":"20398:161:12","text":"@notice Emitted when a PATCH request is successful\n @param account The account or contract that made the request\n @param response The response data"},"eventSelector":"520fec3c44f5956316e49db6b3cf126095e5356d2f5f12b0bb4dea8a13392bbc","id":1484,"name":"PATCHSuccess","nameLocation":"20565:12:12","nodeType":"EventDefinition","parameters":{"id":1483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1479,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"20594:7:12","nodeType":"VariableDeclaration","scope":1484,"src":"20578:23:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1478,"name":"address","nodeType":"ElementaryTypeName","src":"20578:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1482,"indexed":false,"mutability":"mutable","name":"response","nameLocation":"20618:8:12","nodeType":"VariableDeclaration","scope":1484,"src":"20603:23:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_memory_ptr","typeString":"struct LOCATEResponse"},"typeName":{"id":1481,"nodeType":"UserDefinedTypeName","pathNode":{"id":1480,"name":"LOCATEResponse","nameLocations":["20603:14:12"],"nodeType":"IdentifierPath","referencedDeclaration":1168,"src":"20603:14:12"},"referencedDeclaration":1168,"src":"20603:14:12","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_storage_ptr","typeString":"struct LOCATEResponse"}},"visibility":"internal"}],"src":"20577:50:12"},"src":"20559:69:12"},{"anonymous":false,"documentation":{"id":1485,"nodeType":"StructuredDocumentation","src":"20632:162:12","text":"@notice Emitted when a DELETE request is successful\n @param account The account or contract that made the request\n @param response The response data"},"eventSelector":"2bf365ff6e8001ea62dc0ac216f36ce036f1289e9bb002d9122024e5b23319c7","id":1492,"name":"DELETESuccess","nameLocation":"20800:13:12","nodeType":"EventDefinition","parameters":{"id":1491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1487,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"20830:7:12","nodeType":"VariableDeclaration","scope":1492,"src":"20814:23:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1486,"name":"address","nodeType":"ElementaryTypeName","src":"20814:7:12","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1490,"indexed":false,"mutability":"mutable","name":"response","nameLocation":"20852:8:12","nodeType":"VariableDeclaration","scope":1492,"src":"20839:21:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse"},"typeName":{"id":1489,"nodeType":"UserDefinedTypeName","pathNode":{"id":1488,"name":"HEADResponse","nameLocations":["20839:12:12"],"nodeType":"IdentifierPath","referencedDeclaration":1158,"src":"20839:12:12"},"referencedDeclaration":1158,"src":"20839:12:12","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_storage_ptr","typeString":"struct HEADResponse"}},"visibility":"internal"}],"src":"20813:48:12"},"src":"20794:68:12"}],"src":"830:20032:12"},"id":12},"contracts/BaseWTTPPermissions.sol":{"ast":{"absolutePath":"contracts/BaseWTTPPermissions.sol","exportedSymbols":{"AccessControl":[296],"BYTE_RESPONSE_LIMIT":[835],"BaseWTTPPermissions":[1678],"CHUNK_RESPONSE_LIMIT":[832],"CORSPolicy":[1000],"CORSPreset":[972],"CacheControl":[984],"CachePreset":[964],"Context":[409],"DEFINERequest":[1204],"DEFINEResponse":[1213],"DEFINESuccess":[1468],"DELETESuccess":[1492],"DataExists":[618],"DataPointRegistered":[652],"DataPointRoyalty":[677],"DataPointSizes":[1257],"DataPointWritten":[614],"DataRegistration":[1064],"ERC165":[433],"GETRequest":[1280],"GETResponse":[1290],"HEADRequest":[1142],"HEADResponse":[1158],"HeaderCreated":[840],"HeaderInfo":[1022],"HeaderUpdated":[845],"IAccessControl":[379],"IDataPointRegistry":[534],"IDataPointStorage":[573],"IERC165":[445],"IOwnable":[608],"InsufficientRoyaltyPayment":[626],"InvalidDPS":[622],"InvalidData":[620],"InvalidHeader":[878],"InvalidPublisher":[630],"InvalidRole":[829],"LOCATERequest":[1251],"LOCATEResponse":[1168],"LOCATEResponseSecure":[1270],"MetadataDeleted":[855],"MetadataUpdated":[850],"Method":[955],"OPTIONSResponse":[1131],"PATCHRequest":[1194],"PATCHSuccess":[1484],"PUTRequest":[1183],"PUTSuccess":[1476],"ProcessedData":[1263],"Range":[1241],"Redirect":[1008],"ResourceCreated":[860],"ResourceDeleted":[872],"ResourceMetadata":[1053],"ResourceProperties":[1035],"ResourceResponse":[885],"ResourceRoleCreated":[824],"ResourceUpdated":[867],"RoyaltiesCollected":[638],"RoyaltiesPaid":[646],"SiteAdminChanged":[819],"_400":[892],"_402":[899],"_403":[906],"_404":[913],"_405":[922],"_409":[929],"_410":[934],"_416":[944],"calculateDataPointAddress":[671],"calculateEtag":[1233],"contentCode_":[1460],"getHeaderAddress":[1123],"maxMethods_":[1306],"methodsToMask":[1107],"normalizeRange_":[1434]},"id":1679,"license":"AGPL-3.0","nodeType":"SourceUnit","nodes":[{"id":1494,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"838:24:13"},{"absolutePath":"@openzeppelin/contracts/access/AccessControl.sol","file":"@openzeppelin/contracts/access/AccessControl.sol","id":1495,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1679,"sourceUnit":297,"src":"866:58:13","symbolAliases":[],"unitAlias":""},{"absolutePath":"@wttp/core/contracts/types/WTTPTypes.sol","file":"@wttp/core/contracts/types/WTTPTypes.sol","id":1496,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1679,"sourceUnit":1493,"src":"926:50:13","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":1498,"name":"AccessControl","nameLocations":["1288:13:13"],"nodeType":"IdentifierPath","referencedDeclaration":296,"src":"1288:13:13"},"id":1499,"nodeType":"InheritanceSpecifier","src":"1288:13:13"}],"canonicalName":"BaseWTTPPermissions","contractDependencies":[],"contractKind":"contract","documentation":{"id":1497,"nodeType":"StructuredDocumentation","src":"980:267:13","text":"@title WTTP Permissions Contract\n @author Web3 Transfer Protocol (WTTP) Development Team\n @notice Manages role-based access control for the WTTP protocol\n @dev Extends OpenZeppelin's AccessControl with site-specific roles and custom permission logic"},"fullyImplemented":true,"id":1678,"linearizedBaseContracts":[1678,296,433,445,379,409],"name":"BaseWTTPPermissions","nameLocation":"1265:19:13","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":1500,"nodeType":"StructuredDocumentation","src":"1312:181:13","text":"@notice Role identifier for site administrators\n @dev Calculated via keccak256 during construction. Site admins have elevated privileges but below the DEFAULT_ADMIN_ROLE"},"id":1502,"mutability":"mutable","name":"SITE_ADMIN_ROLE","nameLocation":"1516:15:13","nodeType":"VariableDeclaration","scope":1678,"src":"1499:32:13","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1501,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1499:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":true,"id":1515,"mutability":"constant","name":"PUBLIC_ROLE","nameLocation":"1564:11:13","nodeType":"VariableDeclaration","scope":1678,"src":"1538:75:13","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1503,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1538:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"arguments":[{"expression":{"arguments":[{"id":1510,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1599:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1509,"name":"uint256","nodeType":"ElementaryTypeName","src":"1599:7:13","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":1508,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"1594:4:13","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1594:13:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":1512,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1608:3:13","memberName":"max","nodeType":"MemberAccess","src":"1594:17:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1507,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1586:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1506,"name":"uint256","nodeType":"ElementaryTypeName","src":"1586:7:13","typeDescriptions":{}}},"id":1513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1586:26:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1505,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1578:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1504,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1578:7:13","typeDescriptions":{}}},"id":1514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1578:35:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":true,"id":1520,"mutability":"constant","name":"BLACKLIST_ROLE","nameLocation":"1646:14:13","nodeType":"VariableDeclaration","scope":1678,"src":"1620:70:13","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1516,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1620:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"424c41434b4c4953545f524f4c45","id":1518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1673:16:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_22435ed027edf5f902dc0093fbc24cdb50c05b5fd5f311b78c67c1cbaff60e13","typeString":"literal_string \"BLACKLIST_ROLE\""},"value":"BLACKLIST_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_22435ed027edf5f902dc0093fbc24cdb50c05b5fd5f311b78c67c1cbaff60e13","typeString":"literal_string \"BLACKLIST_ROLE\""}],"id":1517,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1663:9:13","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1663:27:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"body":{"id":1542,"nodeType":"Block","src":"1961:175:13","statements":[{"expression":{"id":1530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1526,"name":"SITE_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1502,"src":"1972:15:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"534954455f41444d494e5f524f4c45","id":1528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2000:17:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_e883badc8743699137027ae6ca9d40716b522f64bf5b61a15f071a2371479c92","typeString":"literal_string \"SITE_ADMIN_ROLE\""},"value":"SITE_ADMIN_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e883badc8743699137027ae6ca9d40716b522f64bf5b61a15f071a2371479c92","typeString":"literal_string \"SITE_ADMIN_ROLE\""}],"id":1527,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1990:9:13","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1990:28:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1972:46:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1531,"nodeType":"ExpressionStatement","src":"1972:46:13"},{"expression":{"arguments":[{"id":1533,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30,"src":"2040:18:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1534,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1523,"src":"2060:6:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1532,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":257,"src":"2029:10:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) returns (bool)"}},"id":1535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2029:38:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1536,"nodeType":"ExpressionStatement","src":"2029:38:13"},{"expression":{"arguments":[{"id":1538,"name":"SITE_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1502,"src":"2092:15:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1539,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30,"src":"2109:18:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1537,"name":"_setRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":218,"src":"2078:13:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":1540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2078:50:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1541,"nodeType":"ExpressionStatement","src":"2078:50:13"}]},"documentation":{"id":1521,"nodeType":"StructuredDocumentation","src":"1699:228:13","text":"@notice Sets up initial roles and permissions\n @dev Creates the SITE_ADMIN_ROLE and establishes DEFAULT_ADMIN_ROLE as its admin\n @param _owner Address of the contract owner who receives the DEFAULT_ADMIN_ROLE"},"id":1543,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":1524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1523,"mutability":"mutable","name":"_owner","nameLocation":"1953:6:13","nodeType":"VariableDeclaration","scope":1543,"src":"1945:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1522,"name":"address","nodeType":"ElementaryTypeName","src":"1945:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1944:16:13"},"returnParameters":{"id":1525,"nodeType":"ParameterList","parameters":[],"src":"1961:0:13"},"scope":1678,"src":"1933:203:13","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[81],"body":{"id":1581,"nodeType":"Block","src":"2612:352:13","statements":[{"condition":{"arguments":[{"id":1556,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30,"src":"2731:18:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1557,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1548,"src":"2751:7:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1554,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2717:5:13","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_BaseWTTPPermissions_$1678_$","typeString":"type(contract super BaseWTTPPermissions)"}},"id":1555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2723:7:13","memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":81,"src":"2717:13:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":1558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2717:42:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1562,"nodeType":"IfStatement","src":"2713:86:13","trueBody":{"id":1561,"nodeType":"Block","src":"2761:38:13","statements":[{"expression":{"hexValue":"74727565","id":1559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2783:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1553,"id":1560,"nodeType":"Return","src":"2776:11:13"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1563,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1546,"src":"2815:4:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1564,"name":"PUBLIC_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1515,"src":"2823:11:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2815:19:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1574,"nodeType":"IfStatement","src":"2811:98:13","trueBody":{"id":1573,"nodeType":"Block","src":"2836:73:13","statements":[{"expression":{"id":1571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2858:39:13","subExpression":{"arguments":[{"id":1568,"name":"BLACKLIST_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1520,"src":"2873:14:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1569,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1548,"src":"2889:7:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1566,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2859:5:13","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_BaseWTTPPermissions_$1678_$","typeString":"type(contract super BaseWTTPPermissions)"}},"id":1567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2865:7:13","memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":81,"src":"2859:13:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":1570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2859:38:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1553,"id":1572,"nodeType":"Return","src":"2851:46:13"}]}},{"expression":{"arguments":[{"id":1577,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1546,"src":"2942:4:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1578,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1548,"src":"2948:7:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1575,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2928:5:13","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_BaseWTTPPermissions_$1678_$","typeString":"type(contract super BaseWTTPPermissions)"}},"id":1576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2934:7:13","memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":81,"src":"2928:13:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":1579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2928:28:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1553,"id":1580,"nodeType":"Return","src":"2921:35:13"}]},"documentation":{"id":1544,"nodeType":"StructuredDocumentation","src":"2144:370:13","text":"@notice Check if an account has a specific role\n @dev Overrides the standard AccessControl implementation to grant DEFAULT_ADMIN_ROLE holders access to all roles\n @param role The role identifier to check\n @param account The address to check for the role\n @return bool True if the account has the role or is a DEFAULT_ADMIN_ROLE holder"},"functionSelector":"91d14854","id":1582,"implemented":true,"kind":"function","modifiers":[],"name":"hasRole","nameLocation":"2529:7:13","nodeType":"FunctionDefinition","overrides":{"id":1550,"nodeType":"OverrideSpecifier","overrides":[],"src":"2580:8:13"},"parameters":{"id":1549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1546,"mutability":"mutable","name":"role","nameLocation":"2545:4:13","nodeType":"VariableDeclaration","scope":1582,"src":"2537:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1545,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2537:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1548,"mutability":"mutable","name":"account","nameLocation":"2559:7:13","nodeType":"VariableDeclaration","scope":1582,"src":"2551:15:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1547,"name":"address","nodeType":"ElementaryTypeName","src":"2551:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2536:31:13"},"returnParameters":{"id":1553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1552,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1582,"src":"2606:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1551,"name":"bool","nodeType":"ElementaryTypeName","src":"2606:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2605:6:13"},"scope":1678,"src":"2520:444:13","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":1601,"nodeType":"Block","src":"3973:177:13","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1587,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1585,"src":"4001:4:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1588,"name":"SITE_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1502,"src":"4009:15:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4001:23:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1590,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1585,"src":"4042:4:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1591,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30,"src":"4050:18:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4042:26:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4001:67:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1599,"nodeType":"IfStatement","src":"3984:147:13","trueBody":{"id":1598,"nodeType":"Block","src":"4080:51:13","statements":[{"errorCall":{"arguments":[{"id":1595,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1585,"src":"4114:4:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1594,"name":"InvalidRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":829,"src":"4102:11:13","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$returns$_t_error_$","typeString":"function (bytes32) pure returns (error)"}},"id":1596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4102:17:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1597,"nodeType":"RevertStatement","src":"4095:24:13"}]}},{"id":1600,"nodeType":"PlaceholderStatement","src":"4141:1:13"}]},"documentation":{"id":1583,"nodeType":"StructuredDocumentation","src":"3756:175:13","text":"@notice Modifier to prevent certain actions on admin roles\n @dev Used to prevent modification of privileged roles\n @param role The role identifier to check"},"id":1602,"name":"notAdminRole","nameLocation":"3946:12:13","nodeType":"ModifierDefinition","parameters":{"id":1586,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1585,"mutability":"mutable","name":"role","nameLocation":"3967:4:13","nodeType":"VariableDeclaration","scope":1602,"src":"3959:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1584,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3959:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3958:14:13"},"src":"3937:213:13","virtual":false,"visibility":"internal"},{"body":{"id":1620,"nodeType":"Block","src":"4195:169:13","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1606,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1604,"src":"4223:4:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1607,"name":"PUBLIC_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1515,"src":"4231:11:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4223:19:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1609,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1604,"src":"4260:4:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1610,"name":"BLACKLIST_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1520,"src":"4268:14:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4260:22:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4223:59:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1618,"nodeType":"IfStatement","src":"4206:139:13","trueBody":{"id":1617,"nodeType":"Block","src":"4294:51:13","statements":[{"errorCall":{"arguments":[{"id":1614,"name":"role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1604,"src":"4328:4:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1613,"name":"InvalidRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":829,"src":"4316:11:13","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$returns$_t_error_$","typeString":"function (bytes32) pure returns (error)"}},"id":1615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4316:17:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1616,"nodeType":"RevertStatement","src":"4309:24:13"}]}},{"id":1619,"nodeType":"PlaceholderStatement","src":"4355:1:13"}]},"id":1621,"name":"notPublicRole","nameLocation":"4167:13:13","nodeType":"ModifierDefinition","parameters":{"id":1605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1604,"mutability":"mutable","name":"role","nameLocation":"4189:4:13","nodeType":"VariableDeclaration","scope":1621,"src":"4181:12:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1603,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4181:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4180:14:13"},"src":"4158:206:13","virtual":false,"visibility":"internal"},{"body":{"id":1645,"nodeType":"Block","src":"4729:98:13","statements":[{"expression":{"arguments":[{"id":1637,"name":"_role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1624,"src":"4754:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1638,"name":"SITE_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1502,"src":"4761:15:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1636,"name":"_setRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":218,"src":"4740:13:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":1639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4740:37:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1640,"nodeType":"ExpressionStatement","src":"4740:37:13"},{"eventCall":{"arguments":[{"id":1642,"name":"_role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1624,"src":"4813:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1641,"name":"ResourceRoleCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":824,"src":"4793:19:13","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":1643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4793:26:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1644,"nodeType":"EmitStatement","src":"4788:31:13"}]},"documentation":{"id":1622,"nodeType":"StructuredDocumentation","src":"4379:219:13","text":"@notice Creates a new resource-specific admin role\n @dev Sets the SITE_ADMIN_ROLE as the admin of the new role, preventing creation of privileged roles\n @param _role The new role identifier to create"},"functionSelector":"b2455654","id":1646,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":1627,"name":"SITE_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1502,"src":"4671:15:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":1628,"kind":"modifierInvocation","modifierName":{"id":1626,"name":"onlyRole","nameLocations":["4662:8:13"],"nodeType":"IdentifierPath","referencedDeclaration":41,"src":"4662:8:13"},"nodeType":"ModifierInvocation","src":"4662:25:13"},{"arguments":[{"id":1630,"name":"_role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1624,"src":"4701:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":1631,"kind":"modifierInvocation","modifierName":{"id":1629,"name":"notAdminRole","nameLocations":["4688:12:13"],"nodeType":"IdentifierPath","referencedDeclaration":1602,"src":"4688:12:13"},"nodeType":"ModifierInvocation","src":"4688:19:13"},{"arguments":[{"id":1633,"name":"_role","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1624,"src":"4722:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":1634,"kind":"modifierInvocation","modifierName":{"id":1632,"name":"notPublicRole","nameLocations":["4708:13:13"],"nodeType":"IdentifierPath","referencedDeclaration":1621,"src":"4708:13:13"},"nodeType":"ModifierInvocation","src":"4708:20:13"}],"name":"createResourceRole","nameLocation":"4613:18:13","nodeType":"FunctionDefinition","parameters":{"id":1625,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1624,"mutability":"mutable","name":"_role","nameLocation":"4640:5:13","nodeType":"VariableDeclaration","scope":1646,"src":"4632:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1623,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4632:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4631:15:13"},"returnParameters":{"id":1635,"nodeType":"ParameterList","parameters":[],"src":"4729:0:13"},"scope":1678,"src":"4604:223:13","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":1668,"nodeType":"Block","src":"5151:162:13","statements":[{"assignments":[1656],"declarations":[{"constant":false,"id":1656,"mutability":"mutable","name":"oldSiteAdmin","nameLocation":"5170:12:13","nodeType":"VariableDeclaration","scope":1668,"src":"5162:20:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1655,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5162:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1658,"initialValue":{"id":1657,"name":"SITE_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1502,"src":"5185:15:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5162:38:13"},{"expression":{"id":1661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1659,"name":"SITE_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1502,"src":"5211:15:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1660,"name":"_newSiteAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1649,"src":"5229:13:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5211:31:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1662,"nodeType":"ExpressionStatement","src":"5211:31:13"},{"eventCall":{"arguments":[{"id":1664,"name":"oldSiteAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1656,"src":"5275:12:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1665,"name":"SITE_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1502,"src":"5289:15:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1663,"name":"SiteAdminChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":819,"src":"5258:16:13","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":1666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5258:47:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1667,"nodeType":"EmitStatement","src":"5253:52:13"}]},"documentation":{"id":1647,"nodeType":"StructuredDocumentation","src":"4835:224:13","text":"@notice Changes the SITE_ADMIN_ROLE identifier\n @dev Allows wiping all current site admin permissions by changing the role hash\n @param _newSiteAdmin The new role identifier to use for site administrators"},"functionSelector":"32729d5e","id":1669,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":1652,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30,"src":"5131:18:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":1653,"kind":"modifierInvocation","modifierName":{"id":1651,"name":"onlyRole","nameLocations":["5122:8:13"],"nodeType":"IdentifierPath","referencedDeclaration":41,"src":"5122:8:13"},"nodeType":"ModifierInvocation","src":"5122:28:13"}],"name":"changeSiteAdmin","nameLocation":"5074:15:13","nodeType":"FunctionDefinition","parameters":{"id":1650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1649,"mutability":"mutable","name":"_newSiteAdmin","nameLocation":"5098:13:13","nodeType":"VariableDeclaration","scope":1669,"src":"5090:21:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1648,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5090:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5089:23:13"},"returnParameters":{"id":1654,"nodeType":"ParameterList","parameters":[],"src":"5151:0:13"},"scope":1678,"src":"5065:248:13","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":1676,"nodeType":"Block","src":"5381:41:13","statements":[{"expression":{"id":1674,"name":"SITE_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1502,"src":"5399:15:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1673,"id":1675,"nodeType":"Return","src":"5392:22:13"}]},"functionSelector":"336875a1","id":1677,"implemented":true,"kind":"function","modifiers":[],"name":"getSiteAdminRole","nameLocation":"5330:16:13","nodeType":"FunctionDefinition","parameters":{"id":1670,"nodeType":"ParameterList","parameters":[],"src":"5346:2:13"},"returnParameters":{"id":1673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1672,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1677,"src":"5372:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1671,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5372:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5371:9:13"},"scope":1678,"src":"5321:101:13","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1679,"src":"1247:4184:13","usedErrors":[306,309,829],"usedEvents":[318,327,336,819,824]}],"src":"838:4593:13"},"id":13},"contracts/BaseWTTPSite.sol":{"ast":{"absolutePath":"contracts/BaseWTTPSite.sol","exportedSymbols":{"AccessControl":[296],"BYTE_RESPONSE_LIMIT":[835],"BaseWTTPPermissions":[1678],"BaseWTTPSite":[2632],"BaseWTTPStorage":[3287],"CHUNK_RESPONSE_LIMIT":[832],"CORSPolicy":[1000],"CORSPreset":[972],"CacheControl":[984],"CachePreset":[964],"Context":[409],"DEFINERequest":[1204],"DEFINEResponse":[1213],"DEFINESuccess":[1468],"DELETESuccess":[1492],"DataExists":[618],"DataPointRegistered":[652],"DataPointRoyalty":[677],"DataPointSizes":[1257],"DataPointWritten":[614],"DataRegistration":[1064],"ERC165":[433],"GETRequest":[1280],"GETResponse":[1290],"HEADRequest":[1142],"HEADResponse":[1158],"HeaderCreated":[840],"HeaderInfo":[1022],"HeaderUpdated":[845],"IAccessControl":[379],"IDataPointRegistry":[534],"IDataPointStorage":[573],"IERC165":[445],"IOwnable":[608],"InsufficientRoyaltyPayment":[626],"InvalidDPS":[622],"InvalidData":[620],"InvalidHeader":[878],"InvalidPublisher":[630],"InvalidRole":[829],"LOCATERequest":[1251],"LOCATEResponse":[1168],"LOCATEResponseSecure":[1270],"MetadataDeleted":[855],"MetadataUpdated":[850],"Method":[955],"OPTIONSResponse":[1131],"PATCHRequest":[1194],"PATCHSuccess":[1484],"PUTRequest":[1183],"PUTSuccess":[1476],"ProcessedData":[1263],"Range":[1241],"Redirect":[1008],"ResourceCreated":[860],"ResourceDeleted":[872],"ResourceMetadata":[1053],"ResourceProperties":[1035],"ResourceResponse":[885],"ResourceRoleCreated":[824],"ResourceUpdated":[867],"RoyaltiesCollected":[638],"RoyaltiesPaid":[646],"SiteAdminChanged":[819],"_400":[892],"_402":[899],"_403":[906],"_404":[913],"_405":[922],"_409":[929],"_410":[934],"_416":[944],"calculateDataPointAddress":[671],"calculateEtag":[1233],"contentCode_":[1460],"getHeaderAddress":[1123],"maxMethods_":[1306],"methodsToMask":[1107],"normalizeRange_":[1434]},"id":2633,"license":"AGPL-3.0","nodeType":"SourceUnit","nodes":[{"id":1680,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"831:24:14"},{"absolutePath":"contracts/BaseWTTPStorage.sol","file":"./BaseWTTPStorage.sol","id":1681,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2633,"sourceUnit":3288,"src":"859:31:14","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/BaseWTTPPermissions.sol","file":"./BaseWTTPPermissions.sol","id":1682,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":2633,"sourceUnit":1679,"src":"892:35:14","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":1684,"name":"BaseWTTPPermissions","nameLocations":["1244:19:14"],"nodeType":"IdentifierPath","referencedDeclaration":1678,"src":"1244:19:14"},"id":1685,"nodeType":"InheritanceSpecifier","src":"1244:19:14"},{"baseName":{"id":1686,"name":"BaseWTTPStorage","nameLocations":["1265:15:14"],"nodeType":"IdentifierPath","referencedDeclaration":3287,"src":"1265:15:14"},"id":1687,"nodeType":"InheritanceSpecifier","src":"1265:15:14"}],"canonicalName":"BaseWTTPSite","contractDependencies":[],"contractKind":"contract","documentation":{"id":1683,"nodeType":"StructuredDocumentation","src":"931:279:14","text":"@title WTTP Base Site Contract\n @author Web3 Transfer Protocol (WTTP) Development Team\n @notice Implements core WTTP protocol methods for HTTP-like operations on blockchain\n @dev Extends WTTPBaseStorage to provide web-like interactions with blockchain resources"},"fullyImplemented":true,"id":2632,"linearizedBaseContracts":[2632,3287,1678,296,433,445,379,409],"name":"BaseWTTPSite","nameLocation":"1228:12:14","nodeType":"ContractDefinition","nodes":[{"body":{"id":1707,"nodeType":"Block","src":"1450:52:14","statements":[{"expression":{"arguments":[{"id":1704,"name":"_defaultHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1694,"src":"1479:14:14","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"}],"id":1703,"name":"_setDefaultHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2822,"src":"1461:17:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_HeaderInfo_$1022_memory_ptr_$returns$__$","typeString":"function (struct HeaderInfo memory)"}},"id":1705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1461:33:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1706,"nodeType":"ExpressionStatement","src":"1461:33:14"}]},"id":1708,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":1697,"name":"_dpr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1691,"src":"1416:4:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":1698,"kind":"baseConstructorSpecifier","modifierName":{"id":1696,"name":"BaseWTTPStorage","nameLocations":["1400:15:14"],"nodeType":"IdentifierPath","referencedDeclaration":3287,"src":"1400:15:14"},"nodeType":"ModifierInvocation","src":"1400:21:14"},{"arguments":[{"id":1700,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1689,"src":"1442:6:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":1701,"kind":"baseConstructorSpecifier","modifierName":{"id":1699,"name":"BaseWTTPPermissions","nameLocations":["1422:19:14"],"nodeType":"IdentifierPath","referencedDeclaration":1678,"src":"1422:19:14"},"nodeType":"ModifierInvocation","src":"1422:27:14"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":1695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1689,"mutability":"mutable","name":"_owner","nameLocation":"1320:6:14","nodeType":"VariableDeclaration","scope":1708,"src":"1312:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1688,"name":"address","nodeType":"ElementaryTypeName","src":"1312:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1691,"mutability":"mutable","name":"_dpr","nameLocation":"1345:4:14","nodeType":"VariableDeclaration","scope":1708,"src":"1337:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1690,"name":"address","nodeType":"ElementaryTypeName","src":"1337:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1694,"mutability":"mutable","name":"_defaultHeader","nameLocation":"1378:14:14","nodeType":"VariableDeclaration","scope":1708,"src":"1360:32:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo"},"typeName":{"id":1693,"nodeType":"UserDefinedTypeName","pathNode":{"id":1692,"name":"HeaderInfo","nameLocations":["1360:10:14"],"nodeType":"IdentifierPath","referencedDeclaration":1022,"src":"1360:10:14"},"referencedDeclaration":1022,"src":"1360:10:14","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_storage_ptr","typeString":"struct HeaderInfo"}},"visibility":"internal"}],"src":"1301:98:14"},"returnParameters":{"id":1702,"nodeType":"ParameterList","parameters":[],"src":"1450:0:14"},"scope":2632,"src":"1290:212:14","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1746,"nodeType":"Block","src":"2328:282:14","statements":[{"condition":{"arguments":[{"id":1720,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30,"src":"2438:18:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":1721,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2458:3:14","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2462:6:14","memberName":"sender","nodeType":"MemberAccess","src":"2458:10:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1719,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[1582],"referencedDeclaration":1582,"src":"2430:7:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":1723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2430:39:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1727,"nodeType":"IfStatement","src":"2426:83:14","trueBody":{"id":1726,"nodeType":"Block","src":"2471:38:14","statements":[{"expression":{"hexValue":"74727565","id":1724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2493:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1718,"id":1725,"nodeType":"Return","src":"2486:11:14"}]}},{"expression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":1744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":1742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"arguments":[{"id":1729,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1711,"src":"2548:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1728,"name":"_readHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2743,"src":"2536:11:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$_t_struct$_HeaderInfo_$1022_memory_ptr_$","typeString":"function (string memory) view returns (struct HeaderInfo memory)"}},"id":1730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2536:18:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"}},"id":1731,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2555:4:14","memberName":"cors","nodeType":"MemberAccess","referencedDeclaration":1017,"src":"2536:23:14","typeDescriptions":{"typeIdentifier":"t_struct$_CORSPolicy_$1000_memory_ptr","typeString":"struct CORSPolicy memory"}},"id":1732,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2560:7:14","memberName":"methods","nodeType":"MemberAccess","referencedDeclaration":988,"src":"2536:31:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":1735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2577:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"arguments":[{"id":1738,"name":"_method","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1714,"src":"2588:7:14","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}],"id":1737,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2582:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":1736,"name":"uint8","nodeType":"ElementaryTypeName","src":"2582:5:14","typeDescriptions":{}}},"id":1739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2582:14:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2577:19:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2570:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":1733,"name":"uint16","nodeType":"ElementaryTypeName","src":"2570:6:14","typeDescriptions":{}}},"id":1741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2570:27:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2536:61:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2601:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2536:66:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1718,"id":1745,"nodeType":"Return","src":"2529:73:14"}]},"documentation":{"id":1709,"nodeType":"StructuredDocumentation","src":"1907:291:14","text":"@notice Determines if a method is allowed for a specific resource\n @dev Considers method type, user role, and resource permissions\n @param _path Resource path to check\n @param _method Method type being requested\n @return bool True if the method is allowed"},"id":1747,"implemented":true,"kind":"function","modifiers":[],"name":"_methodAllowed","nameLocation":"2213:14:14","nodeType":"FunctionDefinition","parameters":{"id":1715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1711,"mutability":"mutable","name":"_path","nameLocation":"2252:5:14","nodeType":"VariableDeclaration","scope":1747,"src":"2238:19:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1710,"name":"string","nodeType":"ElementaryTypeName","src":"2238:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1714,"mutability":"mutable","name":"_method","nameLocation":"2276:7:14","nodeType":"VariableDeclaration","scope":1747,"src":"2269:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"},"typeName":{"id":1713,"nodeType":"UserDefinedTypeName","pathNode":{"id":1712,"name":"Method","nameLocations":["2269:6:14"],"nodeType":"IdentifierPath","referencedDeclaration":955,"src":"2269:6:14"},"referencedDeclaration":955,"src":"2269:6:14","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}},"visibility":"internal"}],"src":"2227:63:14"},"returnParameters":{"id":1718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1717,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1747,"src":"2322:4:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1716,"name":"bool","nodeType":"ElementaryTypeName","src":"2322:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2321:6:14"},"scope":2632,"src":"2204:406:14","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":1784,"nodeType":"Block","src":"3001:257:14","statements":[{"assignments":[1762],"declarations":[{"constant":false,"id":1762,"mutability":"mutable","name":"_origins","nameLocation":"3029:8:14","nodeType":"VariableDeclaration","scope":1784,"src":"3012:25:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":1760,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3012:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1761,"nodeType":"ArrayTypeName","src":"3012:9:14","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":1768,"initialValue":{"expression":{"expression":{"arguments":[{"id":1764,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1750,"src":"3052:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1763,"name":"_readHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2743,"src":"3040:11:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$_t_struct$_HeaderInfo_$1022_memory_ptr_$","typeString":"function (string memory) view returns (struct HeaderInfo memory)"}},"id":1765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3040:18:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"}},"id":1766,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3059:4:14","memberName":"cors","nodeType":"MemberAccess","referencedDeclaration":1017,"src":"3040:23:14","typeDescriptions":{"typeIdentifier":"t_struct$_CORSPolicy_$1000_memory_ptr","typeString":"struct CORSPolicy memory"}},"id":1767,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3064:7:14","memberName":"origins","nodeType":"MemberAccess","referencedDeclaration":992,"src":"3040:31:14","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3012:59:14"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1769,"name":"_origins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1762,"src":"3086:8:14","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":1770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3095:6:14","memberName":"length","nodeType":"MemberAccess","src":"3086:15:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3105:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3086:20:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1776,"nodeType":"IfStatement","src":"3082:125:14","trueBody":{"id":1775,"nodeType":"Block","src":"3108:99:14","statements":[{"expression":{"id":1773,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30,"src":"3130:18:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1757,"id":1774,"nodeType":"Return","src":"3123:25:14"}]}},{"expression":{"baseExpression":{"id":1777,"name":"_origins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1762,"src":"3224:8:14","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":1782,"indexExpression":{"arguments":[{"id":1780,"name":"_method","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1753,"src":"3241:7:14","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}],"id":1779,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3233:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1778,"name":"uint256","nodeType":"ElementaryTypeName","src":"3233:7:14","typeDescriptions":{}}},"id":1781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3233:16:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3224:26:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1757,"id":1783,"nodeType":"Return","src":"3217:33:14"}]},"documentation":{"id":1748,"nodeType":"StructuredDocumentation","src":"2618:246:14","text":"@notice Retrieves the resource admin role for a specific path\n @dev Reads from the resource's header to get admin role identifier\n @param _path Resource path to check\n @return bytes32 The resource admin role identifier"},"id":1785,"implemented":true,"kind":"function","modifiers":[],"name":"_getAuthorizedRole","nameLocation":"2879:18:14","nodeType":"FunctionDefinition","parameters":{"id":1754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1750,"mutability":"mutable","name":"_path","nameLocation":"2922:5:14","nodeType":"VariableDeclaration","scope":1785,"src":"2908:19:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1749,"name":"string","nodeType":"ElementaryTypeName","src":"2908:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1753,"mutability":"mutable","name":"_method","nameLocation":"2946:7:14","nodeType":"VariableDeclaration","scope":1785,"src":"2939:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"},"typeName":{"id":1752,"nodeType":"UserDefinedTypeName","pathNode":{"id":1751,"name":"Method","nameLocations":["2939:6:14"],"nodeType":"IdentifierPath","referencedDeclaration":955,"src":"2939:6:14"},"referencedDeclaration":955,"src":"2939:6:14","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}},"visibility":"internal"}],"src":"2897:63:14"},"returnParameters":{"id":1757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1756,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1785,"src":"2992:7:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1755,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2992:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2991:9:14"},"scope":2632,"src":"2870:388:14","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":1810,"nodeType":"Block","src":"3761:131:14","statements":[{"assignments":[1799],"declarations":[{"constant":false,"id":1799,"mutability":"mutable","name":"_authorizedRole","nameLocation":"3780:15:14","nodeType":"VariableDeclaration","scope":1810,"src":"3772:23:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1798,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3772:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1804,"initialValue":{"arguments":[{"id":1801,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1788,"src":"3817:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":1802,"name":"_method","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1791,"src":"3824:7:14","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}],"id":1800,"name":"_getAuthorizedRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1785,"src":"3798:18:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_enum$_Method_$955_$returns$_t_bytes32_$","typeString":"function (string memory,enum Method) view returns (bytes32)"}},"id":1803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3798:34:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3772:60:14"},{"expression":{"arguments":[{"id":1806,"name":"_authorizedRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1799,"src":"3858:15:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1807,"name":"_account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1793,"src":"3875:8:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1805,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[1582],"referencedDeclaration":1582,"src":"3850:7:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":1808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3850:34:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1797,"id":1809,"nodeType":"Return","src":"3843:41:14"}]},"documentation":{"id":1786,"nodeType":"StructuredDocumentation","src":"3266:338:14","text":"@notice Checks if an account has admin rights for a specific resource\n @dev Account has access if they are site admin, resource admin, or the resource allows public access\n @param _path Resource path to check\n @param _account Account address to verify\n @return bool True if the account has admin rights"},"id":1811,"implemented":true,"kind":"function","modifiers":[],"name":"_isAuthorized","nameLocation":"3619:13:14","nodeType":"FunctionDefinition","parameters":{"id":1794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1788,"mutability":"mutable","name":"_path","nameLocation":"3657:5:14","nodeType":"VariableDeclaration","scope":1811,"src":"3643:19:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1787,"name":"string","nodeType":"ElementaryTypeName","src":"3643:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1791,"mutability":"mutable","name":"_method","nameLocation":"3681:7:14","nodeType":"VariableDeclaration","scope":1811,"src":"3674:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"},"typeName":{"id":1790,"nodeType":"UserDefinedTypeName","pathNode":{"id":1789,"name":"Method","nameLocations":["3674:6:14"],"nodeType":"IdentifierPath","referencedDeclaration":955,"src":"3674:6:14"},"referencedDeclaration":955,"src":"3674:6:14","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}},"visibility":"internal"},{"constant":false,"id":1793,"mutability":"mutable","name":"_account","nameLocation":"3708:8:14","nodeType":"VariableDeclaration","scope":1811,"src":"3700:16:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1792,"name":"address","nodeType":"ElementaryTypeName","src":"3700:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3632:91:14"},"returnParameters":{"id":1797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1796,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1811,"src":"3755:4:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1795,"name":"bool","nodeType":"ElementaryTypeName","src":"3755:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3754:6:14"},"scope":2632,"src":"3610:282:14","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":1826,"nodeType":"Block","src":"4213:63:14","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1820,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1814,"src":"4245:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1819,"name":"_readMetadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"4231:13:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$_t_struct$_ResourceMetadata_$1053_memory_ptr_$","typeString":"function (string memory) view returns (struct ResourceMetadata memory)"}},"id":1821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4231:20:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"}},"id":1822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4252:12:14","memberName":"lastModified","nodeType":"MemberAccess","referencedDeclaration":1049,"src":"4231:33:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4267:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4231:37:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1818,"id":1825,"nodeType":"Return","src":"4224:44:14"}]},"documentation":{"id":1812,"nodeType":"StructuredDocumentation","src":"3900:224:14","text":"@notice Checks if a resource exists\n @dev Returns true if the resource has at least one data point\n @param _path Path of the resource to check\n @return True if the resource exists, false otherwise"},"id":1827,"implemented":true,"kind":"function","modifiers":[],"name":"_resourceExists","nameLocation":"4139:15:14","nodeType":"FunctionDefinition","parameters":{"id":1815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1814,"mutability":"mutable","name":"_path","nameLocation":"4169:5:14","nodeType":"VariableDeclaration","scope":1827,"src":"4155:19:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1813,"name":"string","nodeType":"ElementaryTypeName","src":"4155:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4154:21:14"},"returnParameters":{"id":1818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1817,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1827,"src":"4207:4:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1816,"name":"bool","nodeType":"ElementaryTypeName","src":"4207:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4206:6:14"},"scope":2632,"src":"4130:146:14","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":1847,"nodeType":"Block","src":"4364:100:14","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"arguments":[{"id":1835,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1829,"src":"4394:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1834,"name":"_readHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2743,"src":"4382:11:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$_t_struct$_HeaderInfo_$1022_memory_ptr_$","typeString":"function (string memory) view returns (struct HeaderInfo memory)"}},"id":1836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4382:18:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"}},"id":1837,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4401:5:14","memberName":"cache","nodeType":"MemberAccess","referencedDeclaration":1013,"src":"4382:24:14","typeDescriptions":{"typeIdentifier":"t_struct$_CacheControl_$984_memory_ptr","typeString":"struct CacheControl memory"}},"id":1838,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4407:13:14","memberName":"immutableFlag","nodeType":"MemberAccess","referencedDeclaration":976,"src":"4382:38:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1840,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1829,"src":"4438:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1839,"name":"_readMetadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"4424:13:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$_t_struct$_ResourceMetadata_$1053_memory_ptr_$","typeString":"function (string memory) view returns (struct ResourceMetadata memory)"}},"id":1841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4424:20:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"}},"id":1842,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4445:7:14","memberName":"version","nodeType":"MemberAccess","referencedDeclaration":1046,"src":"4424:28:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4455:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4424:32:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4382:74:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1833,"id":1846,"nodeType":"Return","src":"4375:81:14"}]},"id":1848,"implemented":true,"kind":"function","modifiers":[],"name":"_isImmutable","nameLocation":"4293:12:14","nodeType":"FunctionDefinition","parameters":{"id":1830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1829,"mutability":"mutable","name":"_path","nameLocation":"4320:5:14","nodeType":"VariableDeclaration","scope":1848,"src":"4306:19:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1828,"name":"string","nodeType":"ElementaryTypeName","src":"4306:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4305:21:14"},"returnParameters":{"id":1833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1832,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1848,"src":"4358:4:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1831,"name":"bool","nodeType":"ElementaryTypeName","src":"4358:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4357:6:14"},"scope":2632,"src":"4284:180:14","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":1942,"nodeType":"Block","src":"4737:899:14","statements":[{"condition":{"id":1860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4752:31:14","subExpression":{"arguments":[{"id":1857,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1851,"src":"4768:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":1858,"name":"_method","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1854,"src":"4775:7:14","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}],"id":1856,"name":"_methodAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1747,"src":"4753:14:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_enum$_Method_$955_$returns$_t_bool_$","typeString":"function (string memory,enum Method) view returns (bool)"}},"id":1859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4753:30:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1876,"nodeType":"IfStatement","src":"4748:170:14","trueBody":{"id":1875,"nodeType":"Block","src":"4785:133:14","statements":[{"errorCall":{"arguments":[{"hexValue":"4d6574686f64204e6f7420416c6c6f776564","id":1862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4812:20:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_7a964d37282303714fb467b98ec1cbe6d2e90dd52c96aeb740b8369104751d6b","typeString":"literal_string \"Method Not Allowed\""},"value":"Method Not Allowed"},{"expression":{"expression":{"arguments":[{"id":1864,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1851,"src":"4846:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1863,"name":"_readHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2743,"src":"4834:11:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$_t_struct$_HeaderInfo_$1022_memory_ptr_$","typeString":"function (string memory) view returns (struct HeaderInfo memory)"}},"id":1865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4834:18:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"}},"id":1866,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4853:4:14","memberName":"cors","nodeType":"MemberAccess","referencedDeclaration":1017,"src":"4834:23:14","typeDescriptions":{"typeIdentifier":"t_struct$_CORSPolicy_$1000_memory_ptr","typeString":"struct CORSPolicy memory"}},"id":1867,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4858:7:14","memberName":"methods","nodeType":"MemberAccess","referencedDeclaration":988,"src":"4834:31:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"expression":{"expression":{"arguments":[{"id":1869,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1851,"src":"4879:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1868,"name":"_readHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2743,"src":"4867:11:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$_t_struct$_HeaderInfo_$1022_memory_ptr_$","typeString":"function (string memory) view returns (struct HeaderInfo memory)"}},"id":1870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4867:18:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"}},"id":1871,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4886:5:14","memberName":"cache","nodeType":"MemberAccess","referencedDeclaration":1013,"src":"4867:24:14","typeDescriptions":{"typeIdentifier":"t_struct$_CacheControl_$984_memory_ptr","typeString":"struct CacheControl memory"}},"id":1872,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4892:13:14","memberName":"immutableFlag","nodeType":"MemberAccess","referencedDeclaration":976,"src":"4867:38:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7a964d37282303714fb467b98ec1cbe6d2e90dd52c96aeb740b8369104751d6b","typeString":"literal_string \"Method Not Allowed\""},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1861,"name":"_405","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":922,"src":"4807:4:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$_t_uint16_$_t_bool_$returns$_t_error_$","typeString":"function (string memory,uint16,bool) pure returns (error)"}},"id":1873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4807:99:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1874,"nodeType":"RevertStatement","src":"4800:106:14"}]}},{"condition":{"arguments":[{"id":1878,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1851,"src":"4947:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1877,"name":"_isImmutable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1848,"src":"4934:12:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$_t_bool_$","typeString":"function (string memory) view returns (bool)"}},"id":1879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4934:19:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1891,"nodeType":"IfStatement","src":"4930:124:14","trueBody":{"id":1890,"nodeType":"Block","src":"4955:99:14","statements":[{"errorCall":{"arguments":[{"hexValue":"5265736f7572636520496d6d757461626c65","id":1881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4982:20:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_ec4917d1aed7ef8cbcf1c44444d2aa8d01b09b6f026baf9654d1305e94617eba","typeString":"literal_string \"Resource Immutable\""},"value":"Resource Immutable"},{"expression":{"expression":{"arguments":[{"id":1883,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1851,"src":"5016:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1882,"name":"_readHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2743,"src":"5004:11:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$_t_struct$_HeaderInfo_$1022_memory_ptr_$","typeString":"function (string memory) view returns (struct HeaderInfo memory)"}},"id":1884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5004:18:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"}},"id":1885,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5023:4:14","memberName":"cors","nodeType":"MemberAccess","referencedDeclaration":1017,"src":"5004:23:14","typeDescriptions":{"typeIdentifier":"t_struct$_CORSPolicy_$1000_memory_ptr","typeString":"struct CORSPolicy memory"}},"id":1886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5028:7:14","memberName":"methods","nodeType":"MemberAccess","referencedDeclaration":988,"src":"5004:31:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"hexValue":"74727565","id":1887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5037:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ec4917d1aed7ef8cbcf1c44444d2aa8d01b09b6f026baf9654d1305e94617eba","typeString":"literal_string \"Resource Immutable\""},{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1880,"name":"_405","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":922,"src":"4977:4:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$_t_uint16_$_t_bool_$returns$_t_error_$","typeString":"function (string memory,uint16,bool) pure returns (error)"}},"id":1888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4977:65:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1889,"nodeType":"RevertStatement","src":"4970:72:14"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5070:133:14","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"},"id":1895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1892,"name":"_method","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1854,"src":"5086:7:14","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":1893,"name":"Method","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"5097:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Method_$955_$","typeString":"type(enum Method)"}},"id":1894,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5104:3:14","memberName":"PUT","nodeType":"MemberAccess","referencedDeclaration":949,"src":"5097:10:14","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}},"src":"5086:21:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"},"id":1899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1896,"name":"_method","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1854,"src":"5125:7:14","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":1897,"name":"Method","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"5136:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Method_$955_$","typeString":"type(enum Method)"}},"id":1898,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5143:6:14","memberName":"DEFINE","nodeType":"MemberAccess","referencedDeclaration":954,"src":"5136:13:14","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}},"src":"5125:24:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5086:63:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"},"id":1904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1901,"name":"_method","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1854,"src":"5167:7:14","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":1902,"name":"Method","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"5178:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Method_$955_$","typeString":"type(enum Method)"}},"id":1903,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5185:7:14","memberName":"OPTIONS","nodeType":"MemberAccess","referencedDeclaration":952,"src":"5178:14:14","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}},"src":"5167:25:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5086:106:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":1906,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5071:132:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":1911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5207:23:14","subExpression":{"arguments":[{"id":1909,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1851,"src":"5224:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1908,"name":"_resourceExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1827,"src":"5208:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$_t_bool_$","typeString":"function (string memory) view returns (bool)"}},"id":1910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5208:22:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5070:160:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1923,"nodeType":"IfStatement","src":"5066:406:14","trueBody":{"id":1922,"nodeType":"Block","src":"5232:240:14","statements":[{"errorCall":{"arguments":[{"hexValue":"4e6f7420466f756e64","id":1914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5408:11:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_15232cbb030dcf3f4ee56d3191d078b5ac1eaff91b0325c151acfbad69663cad","typeString":"literal_string \"Not Found\""},"value":"Not Found"},{"expression":{"expression":{"arguments":[{"id":1916,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1851,"src":"5433:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1915,"name":"_readHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2743,"src":"5421:11:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$_t_struct$_HeaderInfo_$1022_memory_ptr_$","typeString":"function (string memory) view returns (struct HeaderInfo memory)"}},"id":1917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5421:18:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"}},"id":1918,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5440:5:14","memberName":"cache","nodeType":"MemberAccess","referencedDeclaration":1013,"src":"5421:24:14","typeDescriptions":{"typeIdentifier":"t_struct$_CacheControl_$984_memory_ptr","typeString":"struct CacheControl memory"}},"id":1919,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5446:13:14","memberName":"immutableFlag","nodeType":"MemberAccess","referencedDeclaration":976,"src":"5421:38:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_15232cbb030dcf3f4ee56d3191d078b5ac1eaff91b0325c151acfbad69663cad","typeString":"literal_string \"Not Found\""},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1913,"name":"_404","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":913,"src":"5403:4:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$_t_bool_$returns$_t_error_$","typeString":"function (string memory,bool) pure returns (error)"}},"id":1920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5403:57:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1921,"nodeType":"RevertStatement","src":"5396:64:14"}]}},{"condition":{"id":1930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5486:42:14","subExpression":{"arguments":[{"id":1925,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1851,"src":"5501:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":1926,"name":"_method","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1854,"src":"5508:7:14","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}},{"expression":{"id":1927,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5517:3:14","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5521:6:14","memberName":"sender","nodeType":"MemberAccess","src":"5517:10:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1924,"name":"_isAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1811,"src":"5487:13:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_enum$_Method_$955_$_t_address_$returns$_t_bool_$","typeString":"function (string memory,enum Method,address) view returns (bool)"}},"id":1929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5487:41:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1940,"nodeType":"IfStatement","src":"5482:135:14","trueBody":{"id":1939,"nodeType":"Block","src":"5530:87:14","statements":[{"errorCall":{"arguments":[{"hexValue":"466f7262696464656e","id":1932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5557:11:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_479a1d8ebbddc9de30fd1886cb8a7ee233eac86d9b8bd3ece8b03587030879ef","typeString":"literal_string \"Forbidden\""},"value":"Forbidden"},{"arguments":[{"id":1934,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1851,"src":"5589:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":1935,"name":"_method","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1854,"src":"5596:7:14","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}],"id":1933,"name":"_getAuthorizedRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1785,"src":"5570:18:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_enum$_Method_$955_$returns$_t_bytes32_$","typeString":"function (string memory,enum Method) view returns (bytes32)"}},"id":1936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5570:34:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_479a1d8ebbddc9de30fd1886cb8a7ee233eac86d9b8bd3ece8b03587030879ef","typeString":"literal_string \"Forbidden\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1931,"name":"_403","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":906,"src":"5552:4:14","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$_t_bytes32_$returns$_t_error_$","typeString":"function (string memory,bytes32) pure returns (error)"}},"id":1937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5552:53:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1938,"nodeType":"RevertStatement","src":"5545:60:14"}]}},{"id":1941,"nodeType":"PlaceholderStatement","src":"5627:1:14"}]},"documentation":{"id":1849,"nodeType":"StructuredDocumentation","src":"4472:198:14","text":"@notice Restricts function access to resource administrators\n @dev Reverts with Forbidden error if caller lacks appropriate permissions\n @param _path Resource path being accessed"},"id":1943,"name":"onlyAuthorized","nameLocation":"4685:14:14","nodeType":"ModifierDefinition","parameters":{"id":1855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1851,"mutability":"mutable","name":"_path","nameLocation":"4714:5:14","nodeType":"VariableDeclaration","scope":1943,"src":"4700:19:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1850,"name":"string","nodeType":"ElementaryTypeName","src":"4700:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1854,"mutability":"mutable","name":"_method","nameLocation":"4728:7:14","nodeType":"VariableDeclaration","scope":1943,"src":"4721:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"},"typeName":{"id":1853,"nodeType":"UserDefinedTypeName","pathNode":{"id":1852,"name":"Method","nameLocations":["4721:6:14"],"nodeType":"IdentifierPath","referencedDeclaration":955,"src":"4721:6:14"},"referencedDeclaration":955,"src":"4721:6:14","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}},"visibility":"internal"}],"src":"4699:37:14"},"src":"4676:960:14","virtual":false,"visibility":"internal"},{"body":{"id":1991,"nodeType":"Block","src":"5784:237:14","statements":[{"assignments":[1954],"declarations":[{"constant":false,"id":1954,"mutability":"mutable","name":"_dataLength","nameLocation":"5803:11:14","nodeType":"VariableDeclaration","scope":1991,"src":"5795:19:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1953,"name":"uint256","nodeType":"ElementaryTypeName","src":"5795:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1957,"initialValue":{"expression":{"id":1955,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1947,"src":"5817:5:14","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DataRegistration_$1064_memory_ptr_$dyn_memory_ptr","typeString":"struct DataRegistration memory[] memory"}},"id":1956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5823:6:14","memberName":"length","nodeType":"MemberAccess","src":"5817:12:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5795:34:14"},{"expression":{"id":1964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1958,"name":"_dataPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1951,"src":"5840:11:14","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1962,"name":"_dataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1954,"src":"5868:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1961,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"5854:13:14","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":1959,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5858:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1960,"nodeType":"ArrayTypeName","src":"5858:9:14","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":1963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5854:26:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"src":"5840:40:14","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":1965,"nodeType":"ExpressionStatement","src":"5840:40:14"},{"body":{"id":1989,"nodeType":"Block","src":"5933:81:14","statements":[{"expression":{"id":1987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1976,"name":"_dataPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1951,"src":"5948:11:14","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":1978,"indexExpression":{"id":1977,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1967,"src":"5960:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5948:14:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"baseExpression":{"id":1982,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1947,"src":"5988:5:14","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DataRegistration_$1064_memory_ptr_$dyn_memory_ptr","typeString":"struct DataRegistration memory[] memory"}},"id":1984,"indexExpression":{"id":1983,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1967,"src":"5994:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5988:8:14","typeDescriptions":{"typeIdentifier":"t_struct$_DataRegistration_$1064_memory_ptr","typeString":"struct DataRegistration memory"}},"id":1985,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5997:4:14","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":1057,"src":"5988:13:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1979,"name":"DPS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2673,"src":"5965:3:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_IDataPointStorage_$573_$","typeString":"function () view returns (contract IDataPointStorage)"}},"id":1980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5965:5:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDataPointStorage_$573","typeString":"contract IDataPointStorage"}},"id":1981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5971:16:14","memberName":"calculateAddress","nodeType":"MemberAccess","referencedDeclaration":550,"src":"5965:22:14","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure external returns (bytes32)"}},"id":1986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5965:37:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5948:54:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1988,"nodeType":"ExpressionStatement","src":"5948:54:14"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1970,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1967,"src":"5911:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1971,"name":"_dataLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1954,"src":"5915:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5911:15:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1990,"initializationExpression":{"assignments":[1967],"declarations":[{"constant":false,"id":1967,"mutability":"mutable","name":"i","nameLocation":"5904:1:14","nodeType":"VariableDeclaration","scope":1990,"src":"5896:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1966,"name":"uint256","nodeType":"ElementaryTypeName","src":"5896:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1969,"initialValue":{"hexValue":"30","id":1968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5908:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5896:13:14"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":1974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5928:3:14","subExpression":{"id":1973,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1967,"src":"5928:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1975,"nodeType":"ExpressionStatement","src":"5928:3:14"},"nodeType":"ForStatement","src":"5891:123:14"}]},"id":1992,"implemented":true,"kind":"function","modifiers":[],"name":"_getDataPoints","nameLocation":"5659:14:14","nodeType":"FunctionDefinition","parameters":{"id":1948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1947,"mutability":"mutable","name":"_data","nameLocation":"5710:5:14","nodeType":"VariableDeclaration","scope":1992,"src":"5684:31:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DataRegistration_$1064_memory_ptr_$dyn_memory_ptr","typeString":"struct DataRegistration[]"},"typeName":{"baseType":{"id":1945,"nodeType":"UserDefinedTypeName","pathNode":{"id":1944,"name":"DataRegistration","nameLocations":["5684:16:14"],"nodeType":"IdentifierPath","referencedDeclaration":1064,"src":"5684:16:14"},"referencedDeclaration":1064,"src":"5684:16:14","typeDescriptions":{"typeIdentifier":"t_struct$_DataRegistration_$1064_storage_ptr","typeString":"struct DataRegistration"}},"id":1946,"nodeType":"ArrayTypeName","src":"5684:18:14","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DataRegistration_$1064_storage_$dyn_storage_ptr","typeString":"struct DataRegistration[]"}},"visibility":"internal"}],"src":"5673:49:14"},"returnParameters":{"id":1952,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1951,"mutability":"mutable","name":"_dataPoints","nameLocation":"5771:11:14","nodeType":"VariableDeclaration","scope":1992,"src":"5754:28:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":1949,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5754:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1950,"nodeType":"ArrayTypeName","src":"5754:9:14","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"5753:30:14"},"scope":2632,"src":"5650:371:14","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":2025,"nodeType":"Block","src":"6536:223:14","statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"},"id":2011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2008,"name":"_method","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1998,"src":"6551:7:14","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2009,"name":"Method","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"6562:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Method_$955_$","typeString":"type(enum Method)"}},"id":2010,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6569:7:14","memberName":"OPTIONS","nodeType":"MemberAccess","referencedDeclaration":952,"src":"6562:14:14","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}},"src":"6551:25:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2024,"nodeType":"IfStatement","src":"6547:195:14","trueBody":{"id":2023,"nodeType":"Block","src":"6578:164:14","statements":[{"expression":{"id":2021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2012,"name":"optionsResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2006,"src":"6593:15:14","typeDescriptions":{"typeIdentifier":"t_struct$_OPTIONSResponse_$1131_memory_ptr","typeString":"struct OPTIONSResponse memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"323034","id":2014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6654:3:14","typeDescriptions":{"typeIdentifier":"t_rational_204_by_1","typeString":"int_const 204"},"value":"204"},{"expression":{"expression":{"arguments":[{"id":2016,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1995,"src":"6695:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2015,"name":"_readHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2743,"src":"6683:11:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$_t_struct$_HeaderInfo_$1022_memory_ptr_$","typeString":"function (string memory) view returns (struct HeaderInfo memory)"}},"id":2017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6683:18:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"}},"id":2018,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6702:4:14","memberName":"cors","nodeType":"MemberAccess","referencedDeclaration":1017,"src":"6683:23:14","typeDescriptions":{"typeIdentifier":"t_struct$_CORSPolicy_$1000_memory_ptr","typeString":"struct CORSPolicy memory"}},"id":2019,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6707:7:14","memberName":"methods","nodeType":"MemberAccess","referencedDeclaration":988,"src":"6683:31:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_204_by_1","typeString":"int_const 204"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":2013,"name":"OPTIONSResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1131,"src":"6611:15:14","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_OPTIONSResponse_$1131_storage_ptr_$","typeString":"type(struct OPTIONSResponse storage pointer)"}},"id":2020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6646:6:14","6676:5:14"],"names":["status","allow"],"nodeType":"FunctionCall","src":"6611:119:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_OPTIONSResponse_$1131_memory_ptr","typeString":"struct OPTIONSResponse memory"}},"src":"6593:137:14","typeDescriptions":{"typeIdentifier":"t_struct$_OPTIONSResponse_$1131_memory_ptr","typeString":"struct OPTIONSResponse memory"}},"id":2022,"nodeType":"ExpressionStatement","src":"6593:137:14"}]}}]},"documentation":{"id":1993,"nodeType":"StructuredDocumentation","src":"6029:313:14","text":"@notice Internal implementation of OPTIONS method\n @dev Checks protocol version and method permissions\n @param _path Resource path to check\n @param _method Method type being requested from the public function\n @return optionsResponse Response with allowed methods or error code"},"id":2026,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":2001,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1995,"src":"6471:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":2002,"name":"_method","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1998,"src":"6478:7:14","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}}],"id":2003,"kind":"modifierInvocation","modifierName":{"id":2000,"name":"onlyAuthorized","nameLocations":["6456:14:14"],"nodeType":"IdentifierPath","referencedDeclaration":1943,"src":"6456:14:14"},"nodeType":"ModifierInvocation","src":"6456:30:14"}],"name":"_OPTIONS","nameLocation":"6357:8:14","nodeType":"FunctionDefinition","parameters":{"id":1999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1995,"mutability":"mutable","name":"_path","nameLocation":"6390:5:14","nodeType":"VariableDeclaration","scope":2026,"src":"6376:19:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1994,"name":"string","nodeType":"ElementaryTypeName","src":"6376:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1998,"mutability":"mutable","name":"_method","nameLocation":"6413:7:14","nodeType":"VariableDeclaration","scope":2026,"src":"6406:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"},"typeName":{"id":1997,"nodeType":"UserDefinedTypeName","pathNode":{"id":1996,"name":"Method","nameLocations":["6406:6:14"],"nodeType":"IdentifierPath","referencedDeclaration":955,"src":"6406:6:14"},"referencedDeclaration":955,"src":"6406:6:14","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}},"visibility":"internal"}],"src":"6365:62:14"},"returnParameters":{"id":2007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2006,"mutability":"mutable","name":"optionsResponse","nameLocation":"6519:15:14","nodeType":"VariableDeclaration","scope":2026,"src":"6496:38:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_OPTIONSResponse_$1131_memory_ptr","typeString":"struct OPTIONSResponse"},"typeName":{"id":2005,"nodeType":"UserDefinedTypeName","pathNode":{"id":2004,"name":"OPTIONSResponse","nameLocations":["6496:15:14"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"6496:15:14"},"referencedDeclaration":1131,"src":"6496:15:14","typeDescriptions":{"typeIdentifier":"t_struct$_OPTIONSResponse_$1131_storage_ptr","typeString":"struct OPTIONSResponse"}},"visibility":"internal"}],"src":"6495:40:14"},"scope":2632,"src":"6348:411:14","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":2041,"nodeType":"Block","src":"7136:57:14","statements":[{"expression":{"arguments":[{"id":2036,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2029,"src":"7163:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":2037,"name":"Method","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"7170:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Method_$955_$","typeString":"type(enum Method)"}},"id":2038,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7177:7:14","memberName":"OPTIONS","nodeType":"MemberAccess","referencedDeclaration":952,"src":"7170:14:14","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}],"id":2035,"name":"_OPTIONS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2026,"src":"7154:8:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_enum$_Method_$955_$returns$_t_struct$_OPTIONSResponse_$1131_memory_ptr_$","typeString":"function (string memory,enum Method) view returns (struct OPTIONSResponse memory)"}},"id":2039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7154:31:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_OPTIONSResponse_$1131_memory_ptr","typeString":"struct OPTIONSResponse memory"}},"functionReturnParameters":2034,"id":2040,"nodeType":"Return","src":"7147:38:14"}]},"documentation":{"id":2027,"nodeType":"StructuredDocumentation","src":"6767:246:14","text":"@notice Handles OPTIONS requests to check available methods\n @dev External interface for _OPTIONS with method enforcement\n @param _path Resource path to check\n @return optionsResponse Response with allowed methods info"},"functionSelector":"fd05b634","id":2042,"implemented":true,"kind":"function","modifiers":[],"name":"OPTIONS","nameLocation":"7028:7:14","nodeType":"FunctionDefinition","parameters":{"id":2030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2029,"mutability":"mutable","name":"_path","nameLocation":"7060:5:14","nodeType":"VariableDeclaration","scope":2042,"src":"7046:19:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2028,"name":"string","nodeType":"ElementaryTypeName","src":"7046:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7035:37:14"},"returnParameters":{"id":2034,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2033,"mutability":"mutable","name":"optionsResponse","nameLocation":"7119:15:14","nodeType":"VariableDeclaration","scope":2042,"src":"7096:38:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_OPTIONSResponse_$1131_memory_ptr","typeString":"struct OPTIONSResponse"},"typeName":{"id":2032,"nodeType":"UserDefinedTypeName","pathNode":{"id":2031,"name":"OPTIONSResponse","nameLocations":["7096:15:14"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"7096:15:14"},"referencedDeclaration":1131,"src":"7096:15:14","typeDescriptions":{"typeIdentifier":"t_struct$_OPTIONSResponse_$1131_storage_ptr","typeString":"struct OPTIONSResponse"}},"visibility":"internal"}],"src":"7095:40:14"},"scope":2632,"src":"7019:174:14","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":2160,"nodeType":"Block","src":"7625:1203:14","statements":[{"assignments":[2056],"declarations":[{"constant":false,"id":2056,"mutability":"mutable","name":"_path","nameLocation":"7650:5:14","nodeType":"VariableDeclaration","scope":2160,"src":"7636:19:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2055,"name":"string","nodeType":"ElementaryTypeName","src":"7636:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":2059,"initialValue":{"expression":{"id":2057,"name":"headRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2046,"src":"7658:11:14","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_memory_ptr","typeString":"struct HEADRequest memory"}},"id":2058,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7670:4:14","memberName":"path","nodeType":"MemberAccess","referencedDeclaration":1135,"src":"7658:16:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"7636:38:14"},{"expression":{"arguments":[{"id":2061,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2056,"src":"7694:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":2062,"name":"_method","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2049,"src":"7701:7:14","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}],"id":2060,"name":"_OPTIONS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2026,"src":"7685:8:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_enum$_Method_$955_$returns$_t_struct$_OPTIONSResponse_$1131_memory_ptr_$","typeString":"function (string memory,enum Method) view returns (struct OPTIONSResponse memory)"}},"id":2063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7685:24:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_OPTIONSResponse_$1131_memory_ptr","typeString":"struct OPTIONSResponse memory"}},"id":2064,"nodeType":"ExpressionStatement","src":"7685:24:14"},{"assignments":[2067],"declarations":[{"constant":false,"id":2067,"mutability":"mutable","name":"_metadata","nameLocation":"7763:9:14","nodeType":"VariableDeclaration","scope":2160,"src":"7739:33:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata"},"typeName":{"id":2066,"nodeType":"UserDefinedTypeName","pathNode":{"id":2065,"name":"ResourceMetadata","nameLocations":["7739:16:14"],"nodeType":"IdentifierPath","referencedDeclaration":1053,"src":"7739:16:14"},"referencedDeclaration":1053,"src":"7739:16:14","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_storage_ptr","typeString":"struct ResourceMetadata"}},"visibility":"internal"}],"id":2071,"initialValue":{"arguments":[{"id":2069,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2056,"src":"7789:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2068,"name":"_readMetadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"7775:13:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$_t_struct$_ResourceMetadata_$1053_memory_ptr_$","typeString":"function (string memory) view returns (struct ResourceMetadata memory)"}},"id":2070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7775:20:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"}},"nodeType":"VariableDeclarationStatement","src":"7739:56:14"},{"assignments":[2074],"declarations":[{"constant":false,"id":2074,"mutability":"mutable","name":"_headerInfo","nameLocation":"7824:11:14","nodeType":"VariableDeclaration","scope":2160,"src":"7806:29:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo"},"typeName":{"id":2073,"nodeType":"UserDefinedTypeName","pathNode":{"id":2072,"name":"HeaderInfo","nameLocations":["7806:10:14"],"nodeType":"IdentifierPath","referencedDeclaration":1022,"src":"7806:10:14"},"referencedDeclaration":1022,"src":"7806:10:14","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_storage_ptr","typeString":"struct HeaderInfo"}},"visibility":"internal"}],"id":2078,"initialValue":{"arguments":[{"id":2076,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2056,"src":"7850:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2075,"name":"_readHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2743,"src":"7838:11:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$_t_struct$_HeaderInfo_$1022_memory_ptr_$","typeString":"function (string memory) view returns (struct HeaderInfo memory)"}},"id":2077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7838:18:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"}},"nodeType":"VariableDeclarationStatement","src":"7806:50:14"},{"assignments":[2080],"declarations":[{"constant":false,"id":2080,"mutability":"mutable","name":"_etag","nameLocation":"7875:5:14","nodeType":"VariableDeclaration","scope":2160,"src":"7867:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2079,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7867:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2092,"initialValue":{"arguments":[{"id":2082,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2067,"src":"7897:9:14","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"}},{"expression":{"arguments":[{"id":2084,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2056,"src":"7922:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"hexValue":"30","id":2086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7935:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":2087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7938: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"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2085,"name":"Range","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1241,"src":"7929:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Range_$1241_storage_ptr_$","typeString":"type(struct Range storage pointer)"}},"id":2088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7929:11:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range memory"}],"id":2083,"name":"_readResource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3108,"src":"7908:13:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_struct$_Range_$1241_memory_ptr_$returns$_t_struct$_ResourceResponse_$885_memory_ptr_$","typeString":"function (string memory,struct Range memory) view returns (struct ResourceResponse memory)"}},"id":2089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7908:33:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ResourceResponse_$885_memory_ptr","typeString":"struct ResourceResponse memory"}},"id":2090,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7942:10:14","memberName":"dataPoints","nodeType":"MemberAccess","referencedDeclaration":882,"src":"7908:44:14","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":2081,"name":"calculateEtag","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1233,"src":"7883:13:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_ResourceMetadata_$1053_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct ResourceMetadata memory,bytes32[] memory) pure returns (bytes32)"}},"id":2091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7883:70:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7867:86:14"},{"assignments":[2094],"declarations":[{"constant":false,"id":2094,"mutability":"mutable","name":"_status","nameLocation":"7971:7:14","nodeType":"VariableDeclaration","scope":2160,"src":"7964:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2093,"name":"uint16","nodeType":"ElementaryTypeName","src":"7964:6:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":2096,"initialValue":{"hexValue":"353030","id":2095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7981:3:14","typeDescriptions":{"typeIdentifier":"t_rational_500_by_1","typeString":"int_const 500"},"value":"500"},"nodeType":"VariableDeclarationStatement","src":"7964:20:14"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":2100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2097,"name":"_etag","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2080,"src":"8038:5:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2098,"name":"headRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2046,"src":"8047:11:14","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_memory_ptr","typeString":"struct HEADRequest memory"}},"id":2099,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8059:11:14","memberName":"ifNoneMatch","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"8047:23:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"8038:32:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2101,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2067,"src":"8088:9:14","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"}},"id":2102,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8098:12:14","memberName":"lastModified","nodeType":"MemberAccess","referencedDeclaration":1049,"src":"8088:22:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":2103,"name":"headRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2046,"src":"8114:11:14","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_memory_ptr","typeString":"struct HEADRequest memory"}},"id":2104,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8126:15:14","memberName":"ifModifiedSince","nodeType":"MemberAccess","referencedDeclaration":1138,"src":"8114:27:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8088:53:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2106,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2067,"src":"8159:9:14","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"}},"id":2107,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8169:12:14","memberName":"lastModified","nodeType":"MemberAccess","referencedDeclaration":1049,"src":"8159:22:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8184:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8159:26:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8088:97:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":2111,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8087:99:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8038:148:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":2122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":2118,"name":"_headerInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2074,"src":"8264:11:14","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"}},"id":2119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8276:8:14","memberName":"redirect","nodeType":"MemberAccess","referencedDeclaration":1021,"src":"8264:20:14","typeDescriptions":{"typeIdentifier":"t_struct$_Redirect_$1008_memory_ptr","typeString":"struct Redirect memory"}},"id":2120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8285:4:14","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":1004,"src":"8264:25:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":2121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8293:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8264:30:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"},"id":2133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2130,"name":"_method","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2049,"src":"8368:7:14","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2131,"name":"Method","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"8379:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Method_$955_$","typeString":"type(enum Method)"}},"id":2132,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8386:4:14","memberName":"HEAD","nodeType":"MemberAccess","referencedDeclaration":946,"src":"8379:11:14","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}},"src":"8368:22:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2148,"nodeType":"IfStatement","src":"8364:276:14","trueBody":{"id":2147,"nodeType":"Block","src":"8392:248:14","statements":[{"assignments":[2135],"declarations":[{"constant":false,"id":2135,"mutability":"mutable","name":"_resourceSize","nameLocation":"8415:13:14","nodeType":"VariableDeclaration","scope":2147,"src":"8407:21:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2134,"name":"uint256","nodeType":"ElementaryTypeName","src":"8407:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2139,"initialValue":{"arguments":[{"id":2137,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2056,"src":"8451:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2136,"name":"_resourceDataPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2969,"src":"8431:19:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$_t_uint256_$","typeString":"function (string memory) view returns (uint256)"}},"id":2138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8431:26:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8407:50:14"},{"expression":{"id":2145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2140,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2094,"src":"8472:7:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2142,"name":"_resourceSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2135,"src":"8495:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2143,"name":"_resourceSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2135,"src":"8510:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2141,"name":"contentCode_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1460,"src":"8482:12:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint16_$","typeString":"function (uint256,uint256) pure returns (uint16)"}},"id":2144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8482:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"8472:52:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":2146,"nodeType":"ExpressionStatement","src":"8472:52:14"}]}},"id":2149,"nodeType":"IfStatement","src":"8260:380:14","trueBody":{"id":2129,"nodeType":"Block","src":"8296:62:14","statements":[{"expression":{"id":2127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2123,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2094,"src":"8311:7:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":2124,"name":"_headerInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2074,"src":"8321:11:14","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"}},"id":2125,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8333:8:14","memberName":"redirect","nodeType":"MemberAccess","referencedDeclaration":1021,"src":"8321:20:14","typeDescriptions":{"typeIdentifier":"t_struct$_Redirect_$1008_memory_ptr","typeString":"struct Redirect memory"}},"id":2126,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8342:4:14","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":1004,"src":"8321:25:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"8311:35:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":2128,"nodeType":"ExpressionStatement","src":"8311:35:14"}]}},"id":2150,"nodeType":"IfStatement","src":"8020:620:14","trueBody":{"id":2117,"nodeType":"Block","src":"8198:56:14","statements":[{"expression":{"id":2115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2113,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2094,"src":"8213:7:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"333034","id":2114,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8223:3:14","typeDescriptions":{"typeIdentifier":"t_rational_304_by_1","typeString":"int_const 304"},"value":"304"},"src":"8213:13:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":2116,"nodeType":"ExpressionStatement","src":"8213:13:14"}]}},{"expression":{"id":2158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2151,"name":"headResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2053,"src":"8652:12:14","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2153,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2094,"src":"8703:7:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":2154,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2067,"src":"8735:9:14","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"}},{"id":2155,"name":"_headerInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2074,"src":"8771:11:14","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"}},{"id":2156,"name":"_etag","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2080,"src":"8803:5:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"},{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2152,"name":"HEADResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1158,"src":"8667:12:14","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_HEADResponse_$1158_storage_ptr_$","typeString":"type(struct HEADResponse storage pointer)"}},"id":2157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["8695:6:14","8725:8:14","8759:10:14","8797:4:14"],"names":["status","metadata","headerInfo","etag"],"nodeType":"FunctionCall","src":"8667:153:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}},"src":"8652:168:14","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}},"id":2159,"nodeType":"ExpressionStatement","src":"8652:168:14"}]},"documentation":{"id":2043,"nodeType":"StructuredDocumentation","src":"7201:273:14","text":"@notice Internal implementation of HEAD method\n @dev Retrieves metadata without content, handles caching and redirects\n @param headRequest Request details including conditional headers\n @return headResponse Response with metadata and status code"},"id":2161,"implemented":true,"kind":"function","modifiers":[],"name":"_HEAD","nameLocation":"7489:5:14","nodeType":"FunctionDefinition","parameters":{"id":2050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2046,"mutability":"mutable","name":"headRequest","nameLocation":"7524:11:14","nodeType":"VariableDeclaration","scope":2161,"src":"7505:30:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_memory_ptr","typeString":"struct HEADRequest"},"typeName":{"id":2045,"nodeType":"UserDefinedTypeName","pathNode":{"id":2044,"name":"HEADRequest","nameLocations":["7505:11:14"],"nodeType":"IdentifierPath","referencedDeclaration":1142,"src":"7505:11:14"},"referencedDeclaration":1142,"src":"7505:11:14","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_storage_ptr","typeString":"struct HEADRequest"}},"visibility":"internal"},{"constant":false,"id":2049,"mutability":"mutable","name":"_method","nameLocation":"7553:7:14","nodeType":"VariableDeclaration","scope":2161,"src":"7546:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"},"typeName":{"id":2048,"nodeType":"UserDefinedTypeName","pathNode":{"id":2047,"name":"Method","nameLocations":["7546:6:14"],"nodeType":"IdentifierPath","referencedDeclaration":955,"src":"7546:6:14"},"referencedDeclaration":955,"src":"7546:6:14","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}},"visibility":"internal"}],"src":"7494:73:14"},"returnParameters":{"id":2054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2053,"mutability":"mutable","name":"headResponse","nameLocation":"7611:12:14","nodeType":"VariableDeclaration","scope":2161,"src":"7591:32:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse"},"typeName":{"id":2052,"nodeType":"UserDefinedTypeName","pathNode":{"id":2051,"name":"HEADResponse","nameLocations":["7591:12:14"],"nodeType":"IdentifierPath","referencedDeclaration":1158,"src":"7591:12:14"},"referencedDeclaration":1158,"src":"7591:12:14","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_storage_ptr","typeString":"struct HEADResponse"}},"visibility":"internal"}],"src":"7590:34:14"},"scope":2632,"src":"7480:1348:14","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2179,"nodeType":"Block","src":"9201:57:14","statements":[{"expression":{"id":2177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2171,"name":"head","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2169,"src":"9212:4:14","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2173,"name":"headRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2165,"src":"9225:11:14","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_memory_ptr","typeString":"struct HEADRequest memory"}},{"expression":{"id":2174,"name":"Method","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"9238:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Method_$955_$","typeString":"type(enum Method)"}},"id":2175,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9245:4:14","memberName":"HEAD","nodeType":"MemberAccess","referencedDeclaration":946,"src":"9238:11:14","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_HEADRequest_$1142_memory_ptr","typeString":"struct HEADRequest memory"},{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}],"id":2172,"name":"_HEAD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2161,"src":"9219:5:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_HEADRequest_$1142_memory_ptr_$_t_enum$_Method_$955_$returns$_t_struct$_HEADResponse_$1158_memory_ptr_$","typeString":"function (struct HEADRequest memory,enum Method) view returns (struct HEADResponse memory)"}},"id":2176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9219:31:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}},"src":"9212:38:14","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}},"id":2178,"nodeType":"ExpressionStatement","src":"9212:38:14"}]},"documentation":{"id":2162,"nodeType":"StructuredDocumentation","src":"8836:264:14","text":"@notice Handles WTTP HEAD requests for metadata\n @dev External interface for _HEAD with method enforcement\n @param headRequest Request information including conditional headers\n @return head Response with header and metadata information"},"functionSelector":"28699f17","id":2180,"implemented":true,"kind":"function","modifiers":[],"name":"HEAD","nameLocation":"9115:4:14","nodeType":"FunctionDefinition","parameters":{"id":2166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2165,"mutability":"mutable","name":"headRequest","nameLocation":"9139:11:14","nodeType":"VariableDeclaration","scope":2180,"src":"9120:30:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_memory_ptr","typeString":"struct HEADRequest"},"typeName":{"id":2164,"nodeType":"UserDefinedTypeName","pathNode":{"id":2163,"name":"HEADRequest","nameLocations":["9120:11:14"],"nodeType":"IdentifierPath","referencedDeclaration":1142,"src":"9120:11:14"},"referencedDeclaration":1142,"src":"9120:11:14","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_storage_ptr","typeString":"struct HEADRequest"}},"visibility":"internal"}],"src":"9119:32:14"},"returnParameters":{"id":2170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2169,"mutability":"mutable","name":"head","nameLocation":"9195:4:14","nodeType":"VariableDeclaration","scope":2180,"src":"9175:24:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse"},"typeName":{"id":2168,"nodeType":"UserDefinedTypeName","pathNode":{"id":2167,"name":"HEADResponse","nameLocations":["9175:12:14"],"nodeType":"IdentifierPath","referencedDeclaration":1158,"src":"9175:12:14"},"referencedDeclaration":1158,"src":"9175:12:14","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_storage_ptr","typeString":"struct HEADResponse"}},"visibility":"internal"}],"src":"9174:26:14"},"scope":2632,"src":"9106:152:14","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":2247,"nodeType":"Block","src":"9649:708:14","statements":[{"assignments":[2194],"declarations":[{"constant":false,"id":2194,"mutability":"mutable","name":"_path","nameLocation":"9674:5:14","nodeType":"VariableDeclaration","scope":2247,"src":"9660:19:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2193,"name":"string","nodeType":"ElementaryTypeName","src":"9660:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":2198,"initialValue":{"expression":{"expression":{"id":2195,"name":"getRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2184,"src":"9682:10:14","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATERequest_$1251_memory_ptr","typeString":"struct LOCATERequest memory"}},"id":2196,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9693:4:14","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":1246,"src":"9682:15:14","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_memory_ptr","typeString":"struct HEADRequest memory"}},"id":2197,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9698:4:14","memberName":"path","nodeType":"MemberAccess","referencedDeclaration":1135,"src":"9682:20:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"9660:42:14"},{"assignments":[2201],"declarations":[{"constant":false,"id":2201,"mutability":"mutable","name":"_head","nameLocation":"9733:5:14","nodeType":"VariableDeclaration","scope":2247,"src":"9713:25:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse"},"typeName":{"id":2200,"nodeType":"UserDefinedTypeName","pathNode":{"id":2199,"name":"HEADResponse","nameLocations":["9713:12:14"],"nodeType":"IdentifierPath","referencedDeclaration":1158,"src":"9713:12:14"},"referencedDeclaration":1158,"src":"9713:12:14","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_storage_ptr","typeString":"struct HEADResponse"}},"visibility":"internal"}],"id":2207,"initialValue":{"arguments":[{"expression":{"id":2203,"name":"getRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2184,"src":"9747:10:14","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATERequest_$1251_memory_ptr","typeString":"struct LOCATERequest memory"}},"id":2204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9758:4:14","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":1246,"src":"9747:15:14","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_memory_ptr","typeString":"struct HEADRequest memory"}},{"id":2205,"name":"_method","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2187,"src":"9764:7:14","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_HEADRequest_$1142_memory_ptr","typeString":"struct HEADRequest memory"},{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}],"id":2202,"name":"_HEAD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2161,"src":"9741:5:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_HEADRequest_$1142_memory_ptr_$_t_enum$_Method_$955_$returns$_t_struct$_HEADResponse_$1158_memory_ptr_$","typeString":"function (struct HEADRequest memory,enum Method) view returns (struct HEADResponse memory)"}},"id":2206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9741:31:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}},"nodeType":"VariableDeclarationStatement","src":"9713:59:14"},{"assignments":[2210],"declarations":[{"constant":false,"id":2210,"mutability":"mutable","name":"_resource","nameLocation":"10020:9:14","nodeType":"VariableDeclaration","scope":2247,"src":"9996:33:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceResponse_$885_memory_ptr","typeString":"struct ResourceResponse"},"typeName":{"id":2209,"nodeType":"UserDefinedTypeName","pathNode":{"id":2208,"name":"ResourceResponse","nameLocations":["9996:16:14"],"nodeType":"IdentifierPath","referencedDeclaration":885,"src":"9996:16:14"},"referencedDeclaration":885,"src":"9996:16:14","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceResponse_$885_storage_ptr","typeString":"struct ResourceResponse"}},"visibility":"internal"}],"id":2216,"initialValue":{"arguments":[{"id":2212,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2194,"src":"10046:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":2213,"name":"getRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2184,"src":"10053:10:14","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATERequest_$1251_memory_ptr","typeString":"struct LOCATERequest memory"}},"id":2214,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10064:11:14","memberName":"rangeChunks","nodeType":"MemberAccess","referencedDeclaration":1250,"src":"10053:22:14","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range memory"}],"id":2211,"name":"_readResource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3108,"src":"10032:13:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_struct$_Range_$1241_memory_ptr_$returns$_t_struct$_ResourceResponse_$885_memory_ptr_$","typeString":"function (string memory,struct Range memory) view returns (struct ResourceResponse memory)"}},"id":2215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10032:44:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ResourceResponse_$885_memory_ptr","typeString":"struct ResourceResponse memory"}},"nodeType":"VariableDeclarationStatement","src":"9996:80:14"},{"expression":{"id":2221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2217,"name":"getResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2191,"src":"10087:11:14","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_memory_ptr","typeString":"struct LOCATEResponse memory"}},"id":2219,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10099:8:14","memberName":"resource","nodeType":"MemberAccess","referencedDeclaration":1167,"src":"10087:20:14","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceResponse_$885_memory_ptr","typeString":"struct ResourceResponse memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2220,"name":"_resource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2210,"src":"10110:9:14","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceResponse_$885_memory_ptr","typeString":"struct ResourceResponse memory"}},"src":"10087:32:14","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceResponse_$885_memory_ptr","typeString":"struct ResourceResponse memory"}},"id":2222,"nodeType":"ExpressionStatement","src":"10087:32:14"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":2226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2223,"name":"_head","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2201,"src":"10136:5:14","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}},"id":2224,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10142:6:14","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":1146,"src":"10136:12:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"353030","id":2225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10152:3:14","typeDescriptions":{"typeIdentifier":"t_rational_500_by_1","typeString":"int_const 500"},"value":"500"},"src":"10136:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2240,"nodeType":"IfStatement","src":"10132:181:14","trueBody":{"id":2239,"nodeType":"Block","src":"10157:156:14","statements":[{"expression":{"id":2237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2227,"name":"_head","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2201,"src":"10172:5:14","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}},"id":2229,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10178:6:14","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":1146,"src":"10172:12:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":2231,"name":"_resource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2210,"src":"10218:9:14","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceResponse_$885_memory_ptr","typeString":"struct ResourceResponse memory"}},"id":2232,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10228:10:14","memberName":"dataPoints","nodeType":"MemberAccess","referencedDeclaration":882,"src":"10218:20:14","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":2233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10239:6:14","memberName":"length","nodeType":"MemberAccess","src":"10218:27:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":2234,"name":"_resource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2210,"src":"10265:9:14","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceResponse_$885_memory_ptr","typeString":"struct ResourceResponse memory"}},"id":2235,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10275:11:14","memberName":"totalChunks","nodeType":"MemberAccess","referencedDeclaration":884,"src":"10265:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2230,"name":"contentCode_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1460,"src":"10187:12:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint16_$","typeString":"function (uint256,uint256) pure returns (uint16)"}},"id":2236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10187:114:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"10172:129:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":2238,"nodeType":"ExpressionStatement","src":"10172:129:14"}]}},{"expression":{"id":2245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2241,"name":"getResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2191,"src":"10325:11:14","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_memory_ptr","typeString":"struct LOCATEResponse memory"}},"id":2243,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10337:4:14","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":1163,"src":"10325:16:14","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2244,"name":"_head","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2201,"src":"10344:5:14","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}},"src":"10325:24:14","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}},"id":2246,"nodeType":"ExpressionStatement","src":"10325:24:14"}]},"documentation":{"id":2181,"nodeType":"StructuredDocumentation","src":"9266:231:14","text":"@notice Internal implementation of LOCATE method\n @dev Extends HEAD to include data point addresses\n @param getRequest Request details\n @return getResponse Response with metadata and data point locations"},"id":2248,"implemented":true,"kind":"function","modifiers":[],"name":"_GET","nameLocation":"9512:4:14","nodeType":"FunctionDefinition","parameters":{"id":2188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2184,"mutability":"mutable","name":"getRequest","nameLocation":"9548:10:14","nodeType":"VariableDeclaration","scope":2248,"src":"9527:31:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATERequest_$1251_memory_ptr","typeString":"struct LOCATERequest"},"typeName":{"id":2183,"nodeType":"UserDefinedTypeName","pathNode":{"id":2182,"name":"LOCATERequest","nameLocations":["9527:13:14"],"nodeType":"IdentifierPath","referencedDeclaration":1251,"src":"9527:13:14"},"referencedDeclaration":1251,"src":"9527:13:14","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATERequest_$1251_storage_ptr","typeString":"struct LOCATERequest"}},"visibility":"internal"},{"constant":false,"id":2187,"mutability":"mutable","name":"_method","nameLocation":"9576:7:14","nodeType":"VariableDeclaration","scope":2248,"src":"9569:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"},"typeName":{"id":2186,"nodeType":"UserDefinedTypeName","pathNode":{"id":2185,"name":"Method","nameLocations":["9569:6:14"],"nodeType":"IdentifierPath","referencedDeclaration":955,"src":"9569:6:14"},"referencedDeclaration":955,"src":"9569:6:14","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}},"visibility":"internal"}],"src":"9516:74:14"},"returnParameters":{"id":2192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2191,"mutability":"mutable","name":"getResponse","nameLocation":"9636:11:14","nodeType":"VariableDeclaration","scope":2248,"src":"9614:33:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_memory_ptr","typeString":"struct LOCATEResponse"},"typeName":{"id":2190,"nodeType":"UserDefinedTypeName","pathNode":{"id":2189,"name":"LOCATEResponse","nameLocations":["9614:14:14"],"nodeType":"IdentifierPath","referencedDeclaration":1168,"src":"9614:14:14"},"referencedDeclaration":1168,"src":"9614:14:14","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_storage_ptr","typeString":"struct LOCATEResponse"}},"visibility":"internal"}],"src":"9613:35:14"},"scope":2632,"src":"9503:854:14","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":2264,"nodeType":"Block","src":"10689:54:14","statements":[{"expression":{"arguments":[{"id":2259,"name":"getRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2252,"src":"10712:10:14","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATERequest_$1251_memory_ptr","typeString":"struct LOCATERequest memory"}},{"expression":{"id":2260,"name":"Method","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"10724:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Method_$955_$","typeString":"type(enum Method)"}},"id":2261,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10731:3:14","memberName":"GET","nodeType":"MemberAccess","referencedDeclaration":947,"src":"10724:10:14","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_LOCATERequest_$1251_memory_ptr","typeString":"struct LOCATERequest memory"},{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}],"id":2258,"name":"_GET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2248,"src":"10707:4:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_LOCATERequest_$1251_memory_ptr_$_t_enum$_Method_$955_$returns$_t_struct$_LOCATEResponse_$1168_memory_ptr_$","typeString":"function (struct LOCATERequest memory,enum Method) view returns (struct LOCATEResponse memory)"}},"id":2262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10707:28:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_memory_ptr","typeString":"struct LOCATEResponse memory"}},"functionReturnParameters":2257,"id":2263,"nodeType":"Return","src":"10700:35:14"}]},"documentation":{"id":2249,"nodeType":"StructuredDocumentation","src":"10365:198:14","text":"@notice Handles GET requests to retrieve resource content locations\n @param getRequest Request information\n @return getResponse Response containing resource and storage locations"},"functionSelector":"0f9004b8","id":2265,"implemented":true,"kind":"function","modifiers":[],"name":"GET","nameLocation":"10578:3:14","nodeType":"FunctionDefinition","parameters":{"id":2253,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2252,"mutability":"mutable","name":"getRequest","nameLocation":"10613:10:14","nodeType":"VariableDeclaration","scope":2265,"src":"10592:31:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATERequest_$1251_memory_ptr","typeString":"struct LOCATERequest"},"typeName":{"id":2251,"nodeType":"UserDefinedTypeName","pathNode":{"id":2250,"name":"LOCATERequest","nameLocations":["10592:13:14"],"nodeType":"IdentifierPath","referencedDeclaration":1251,"src":"10592:13:14"},"referencedDeclaration":1251,"src":"10592:13:14","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATERequest_$1251_storage_ptr","typeString":"struct LOCATERequest"}},"visibility":"internal"}],"src":"10581:49:14"},"returnParameters":{"id":2257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2256,"mutability":"mutable","name":"getResponse","nameLocation":"10676:11:14","nodeType":"VariableDeclaration","scope":2265,"src":"10654:33:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_memory_ptr","typeString":"struct LOCATEResponse"},"typeName":{"id":2255,"nodeType":"UserDefinedTypeName","pathNode":{"id":2254,"name":"LOCATEResponse","nameLocations":["10654:14:14"],"nodeType":"IdentifierPath","referencedDeclaration":1168,"src":"10654:14:14"},"referencedDeclaration":1168,"src":"10654:14:14","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_storage_ptr","typeString":"struct LOCATEResponse"}},"visibility":"internal"}],"src":"10653:35:14"},"scope":2632,"src":"10569:174:14","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":2352,"nodeType":"Block","src":"11176:1082:14","statements":[{"assignments":[2276],"declarations":[{"constant":false,"id":2276,"mutability":"mutable","name":"_path","nameLocation":"11201:5:14","nodeType":"VariableDeclaration","scope":2352,"src":"11187:19:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2275,"name":"string","nodeType":"ElementaryTypeName","src":"11187:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":2280,"initialValue":{"expression":{"expression":{"id":2277,"name":"defineRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2269,"src":"11209:13:14","typeDescriptions":{"typeIdentifier":"t_struct$_DEFINERequest_$1204_memory_ptr","typeString":"struct DEFINERequest memory"}},"id":2278,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11223:4:14","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":1199,"src":"11209:18:14","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_memory_ptr","typeString":"struct HEADRequest memory"}},"id":2279,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11228:4:14","memberName":"path","nodeType":"MemberAccess","referencedDeclaration":1135,"src":"11209:23:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"11187:45:14"},{"expression":{"arguments":[{"id":2282,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2276,"src":"11252:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":2283,"name":"Method","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"11259:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Method_$955_$","typeString":"type(enum Method)"}},"id":2284,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11266:6:14","memberName":"DEFINE","nodeType":"MemberAccess","referencedDeclaration":954,"src":"11259:13:14","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}],"id":2281,"name":"_OPTIONS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2026,"src":"11243:8:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_enum$_Method_$955_$returns$_t_struct$_OPTIONSResponse_$1131_memory_ptr_$","typeString":"function (string memory,enum Method) view returns (struct OPTIONSResponse memory)"}},"id":2285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11243:30:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_OPTIONSResponse_$1131_memory_ptr","typeString":"struct OPTIONSResponse memory"}},"id":2286,"nodeType":"ExpressionStatement","src":"11243:30:14"},{"assignments":[2288],"declarations":[{"constant":false,"id":2288,"mutability":"mutable","name":"_headerAddress","nameLocation":"11313:14:14","nodeType":"VariableDeclaration","scope":2352,"src":"11305:22:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2287,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11305:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2293,"initialValue":{"arguments":[{"expression":{"id":2290,"name":"defineRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2269,"src":"11344:13:14","typeDescriptions":{"typeIdentifier":"t_struct$_DEFINERequest_$1204_memory_ptr","typeString":"struct DEFINERequest memory"}},"id":2291,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11358:4:14","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":1203,"src":"11344:18:14","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"}],"id":2289,"name":"_createHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2726,"src":"11330:13:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_HeaderInfo_$1022_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct HeaderInfo memory) returns (bytes32)"}},"id":2292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11330:33:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"11305:58:14"},{"expression":{"arguments":[{"id":2295,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2276,"src":"11390:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"expression":{"arguments":[{"id":2298,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2276,"src":"11455:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2297,"name":"_readMetadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"11441:13:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$_t_struct$_ResourceMetadata_$1053_memory_ptr_$","typeString":"function (string memory) view returns (struct ResourceMetadata memory)"}},"id":2299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11441:20:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"}},"id":2300,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11462:10:14","memberName":"properties","nodeType":"MemberAccess","referencedDeclaration":1040,"src":"11441:31:14","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceProperties_$1035_memory_ptr","typeString":"struct ResourceProperties memory"}},{"hexValue":"30","id":2301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11516:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":2302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11569:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":2303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11627:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":2304,"name":"_headerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2288,"src":"11679:14:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ResourceProperties_$1035_memory_ptr","typeString":"struct ResourceProperties memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2296,"name":"ResourceMetadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1053,"src":"11397:16:14","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ResourceMetadata_$1053_storage_ptr_$","typeString":"type(struct ResourceMetadata storage pointer)"}},"id":2305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11429:10:14","11510:4:14","11560:7:14","11613:12:14","11671:6:14"],"names":["properties","size","version","lastModified","header"],"nodeType":"FunctionCall","src":"11397:308:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"}],"id":2294,"name":"_updateMetadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2933,"src":"11374:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_ResourceMetadata_$1053_memory_ptr_$returns$__$","typeString":"function (string memory,struct ResourceMetadata memory)"}},"id":2306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11374:332:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2307,"nodeType":"ExpressionStatement","src":"11374:332:14"},{"assignments":[2310],"declarations":[{"constant":false,"id":2310,"mutability":"mutable","name":"_metadata","nameLocation":"11743:9:14","nodeType":"VariableDeclaration","scope":2352,"src":"11719:33:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata"},"typeName":{"id":2309,"nodeType":"UserDefinedTypeName","pathNode":{"id":2308,"name":"ResourceMetadata","nameLocations":["11719:16:14"],"nodeType":"IdentifierPath","referencedDeclaration":1053,"src":"11719:16:14"},"referencedDeclaration":1053,"src":"11719:16:14","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_storage_ptr","typeString":"struct ResourceMetadata"}},"visibility":"internal"}],"id":2314,"initialValue":{"arguments":[{"id":2312,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2276,"src":"11769:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2311,"name":"_readMetadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"11755:13:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$_t_struct$_ResourceMetadata_$1053_memory_ptr_$","typeString":"function (string memory) view returns (struct ResourceMetadata memory)"}},"id":2313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11755:20:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"}},"nodeType":"VariableDeclarationStatement","src":"11719:56:14"},{"assignments":[2319],"declarations":[{"constant":false,"id":2319,"mutability":"mutable","name":"_dataPoints","nameLocation":"11803:11:14","nodeType":"VariableDeclaration","scope":2352,"src":"11786:28:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":2317,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11786:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2318,"nodeType":"ArrayTypeName","src":"11786:9:14","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":2328,"initialValue":{"expression":{"arguments":[{"id":2321,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2276,"src":"11831:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"hexValue":"30","id":2323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11844:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":2324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11847: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"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":2322,"name":"Range","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1241,"src":"11838:5:14","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Range_$1241_storage_ptr_$","typeString":"type(struct Range storage pointer)"}},"id":2325,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11838:11:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range memory"}],"id":2320,"name":"_readResource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3108,"src":"11817:13:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_struct$_Range_$1241_memory_ptr_$returns$_t_struct$_ResourceResponse_$885_memory_ptr_$","typeString":"function (string memory,struct Range memory) view returns (struct ResourceResponse memory)"}},"id":2326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11817:33:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ResourceResponse_$885_memory_ptr","typeString":"struct ResourceResponse memory"}},"id":2327,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11851:10:14","memberName":"dataPoints","nodeType":"MemberAccess","referencedDeclaration":882,"src":"11817:44:14","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"11786:75:14"},{"expression":{"id":2344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2329,"name":"defineResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2273,"src":"11874:14:14","typeDescriptions":{"typeIdentifier":"t_struct$_DEFINEResponse_$1213_memory_ptr","typeString":"struct DEFINEResponse memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"323030","id":2332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11967:3:14","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"},{"id":2333,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2310,"src":"11999:9:14","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"}},{"arguments":[{"id":2335,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2276,"src":"12051:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2334,"name":"_readHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2743,"src":"12039:11:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$_t_struct$_HeaderInfo_$1022_memory_ptr_$","typeString":"function (string memory) view returns (struct HeaderInfo memory)"}},"id":2336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12039:18:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"}},{"arguments":[{"id":2338,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2310,"src":"12096:9:14","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"}},{"id":2339,"name":"_dataPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2319,"src":"12107:11:14","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":2337,"name":"calculateEtag","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1233,"src":"12082:13:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_ResourceMetadata_$1053_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct ResourceMetadata memory,bytes32[] memory) pure returns (bytes32)"}},"id":2340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12082:37:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"},{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2331,"name":"HEADResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1158,"src":"11927:12:14","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_HEADResponse_$1158_storage_ptr_$","typeString":"type(struct HEADResponse storage pointer)"}},"id":2341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11959:6:14","11989:8:14","12027:10:14","12076:4:14"],"names":["status","metadata","headerInfo","etag"],"nodeType":"FunctionCall","src":"11927:208:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}},{"id":2342,"name":"_headerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2288,"src":"12165:14:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2330,"name":"DEFINEResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1213,"src":"11891:14:14","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_DEFINEResponse_$1213_storage_ptr_$","typeString":"type(struct DEFINEResponse storage pointer)"}},"id":2343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["11921:4:14","12150:13:14"],"names":["head","headerAddress"],"nodeType":"FunctionCall","src":"11891:300:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DEFINEResponse_$1213_memory_ptr","typeString":"struct DEFINEResponse memory"}},"src":"11874:317:14","typeDescriptions":{"typeIdentifier":"t_struct$_DEFINEResponse_$1213_memory_ptr","typeString":"struct DEFINEResponse memory"}},"id":2345,"nodeType":"ExpressionStatement","src":"11874:317:14"},{"eventCall":{"arguments":[{"expression":{"id":2347,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12223:3:14","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12227:6:14","memberName":"sender","nodeType":"MemberAccess","src":"12223:10:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2349,"name":"defineResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2273,"src":"12235:14:14","typeDescriptions":{"typeIdentifier":"t_struct$_DEFINEResponse_$1213_memory_ptr","typeString":"struct DEFINEResponse memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_DEFINEResponse_$1213_memory_ptr","typeString":"struct DEFINEResponse memory"}],"id":2346,"name":"DEFINESuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1468,"src":"12209:13:14","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_struct$_DEFINEResponse_$1213_memory_ptr_$returns$__$","typeString":"function (address,struct DEFINEResponse memory)"}},"id":2350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12209:41:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2351,"nodeType":"EmitStatement","src":"12204:46:14"}]},"documentation":{"id":2266,"nodeType":"StructuredDocumentation","src":"10751:295:14","text":"@notice Handles DEFINE requests to update resource headers\n @dev Only accessible to resource administrators, creates header if needed\n @param defineRequest Request information with new header data\n @return defineResponse Response containing updated header information"},"functionSelector":"42a4cf7d","id":2353,"implemented":true,"kind":"function","modifiers":[],"name":"DEFINE","nameLocation":"11061:6:14","nodeType":"FunctionDefinition","parameters":{"id":2270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2269,"mutability":"mutable","name":"defineRequest","nameLocation":"11099:13:14","nodeType":"VariableDeclaration","scope":2353,"src":"11078:34:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DEFINERequest_$1204_memory_ptr","typeString":"struct DEFINERequest"},"typeName":{"id":2268,"nodeType":"UserDefinedTypeName","pathNode":{"id":2267,"name":"DEFINERequest","nameLocations":["11078:13:14"],"nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"11078:13:14"},"referencedDeclaration":1204,"src":"11078:13:14","typeDescriptions":{"typeIdentifier":"t_struct$_DEFINERequest_$1204_storage_ptr","typeString":"struct DEFINERequest"}},"visibility":"internal"}],"src":"11067:52:14"},"returnParameters":{"id":2274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2273,"mutability":"mutable","name":"defineResponse","nameLocation":"11160:14:14","nodeType":"VariableDeclaration","scope":2353,"src":"11138:36:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DEFINEResponse_$1213_memory_ptr","typeString":"struct DEFINEResponse"},"typeName":{"id":2272,"nodeType":"UserDefinedTypeName","pathNode":{"id":2271,"name":"DEFINEResponse","nameLocations":["11138:14:14"],"nodeType":"IdentifierPath","referencedDeclaration":1213,"src":"11138:14:14"},"referencedDeclaration":1213,"src":"11138:14:14","typeDescriptions":{"typeIdentifier":"t_struct$_DEFINEResponse_$1213_storage_ptr","typeString":"struct DEFINEResponse"}},"visibility":"internal"}],"src":"11137:38:14"},"scope":2632,"src":"11052:1206:14","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2409,"nodeType":"Block","src":"12643:530:14","statements":[{"assignments":[2364],"declarations":[{"constant":false,"id":2364,"mutability":"mutable","name":"_path","nameLocation":"12668:5:14","nodeType":"VariableDeclaration","scope":2409,"src":"12654:19:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2363,"name":"string","nodeType":"ElementaryTypeName","src":"12654:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":2367,"initialValue":{"expression":{"id":2365,"name":"deleteRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2357,"src":"12676:13:14","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_memory_ptr","typeString":"struct HEADRequest memory"}},"id":2366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12690:4:14","memberName":"path","nodeType":"MemberAccess","referencedDeclaration":1135,"src":"12676:18:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"12654:40:14"},{"expression":{"arguments":[{"id":2369,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2364,"src":"12714:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":2370,"name":"Method","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"12721:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Method_$955_$","typeString":"type(enum Method)"}},"id":2371,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12728:6:14","memberName":"DELETE","nodeType":"MemberAccess","referencedDeclaration":951,"src":"12721:13:14","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}],"id":2368,"name":"_OPTIONS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2026,"src":"12705:8:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_enum$_Method_$955_$returns$_t_struct$_OPTIONSResponse_$1131_memory_ptr_$","typeString":"function (string memory,enum Method) view returns (struct OPTIONSResponse memory)"}},"id":2372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12705:30:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_OPTIONSResponse_$1131_memory_ptr","typeString":"struct OPTIONSResponse memory"}},"id":2373,"nodeType":"ExpressionStatement","src":"12705:30:14"},{"expression":{"arguments":[{"id":2375,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2364,"src":"12781:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2374,"name":"_deleteResource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3239,"src":"12765:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":2376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12765:22:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2377,"nodeType":"ExpressionStatement","src":"12765:22:14"},{"assignments":[2380],"declarations":[{"constant":false,"id":2380,"mutability":"mutable","name":"_metadata","nameLocation":"12822:9:14","nodeType":"VariableDeclaration","scope":2409,"src":"12798:33:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata"},"typeName":{"id":2379,"nodeType":"UserDefinedTypeName","pathNode":{"id":2378,"name":"ResourceMetadata","nameLocations":["12798:16:14"],"nodeType":"IdentifierPath","referencedDeclaration":1053,"src":"12798:16:14"},"referencedDeclaration":1053,"src":"12798:16:14","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_storage_ptr","typeString":"struct ResourceMetadata"}},"visibility":"internal"}],"id":2384,"initialValue":{"arguments":[{"id":2382,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2364,"src":"12848:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2381,"name":"_readMetadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"12834:13:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$_t_struct$_ResourceMetadata_$1053_memory_ptr_$","typeString":"function (string memory) view returns (struct ResourceMetadata memory)"}},"id":2383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12834:20:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"}},"nodeType":"VariableDeclarationStatement","src":"12798:56:14"},{"expression":{"id":2401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2385,"name":"deleteResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2361,"src":"12867:14:14","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"323034","id":2387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12920:3:14","typeDescriptions":{"typeIdentifier":"t_rational_204_by_1","typeString":"int_const 204"},"value":"204"},{"id":2388,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2380,"src":"12948:9:14","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"}},{"arguments":[{"id":2390,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2364,"src":"12996:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2389,"name":"_readHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2743,"src":"12984:11:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$_t_struct$_HeaderInfo_$1022_memory_ptr_$","typeString":"function (string memory) view returns (struct HeaderInfo memory)"}},"id":2391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12984:18:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"}},{"arguments":[{"id":2393,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2380,"src":"13037:9:14","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"}},{"arguments":[{"hexValue":"30","id":2397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13062: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":2396,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"13048:13:14","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":2394,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13052:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2395,"nodeType":"ArrayTypeName","src":"13052:9:14","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":2398,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13048:16:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":2392,"name":"calculateEtag","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1233,"src":"13023:13:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_ResourceMetadata_$1053_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct ResourceMetadata memory,bytes32[] memory) pure returns (bytes32)"}},"id":2399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13023:42:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_204_by_1","typeString":"int_const 204"},{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"},{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2386,"name":"HEADResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1158,"src":"12884:12:14","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_HEADResponse_$1158_storage_ptr_$","typeString":"type(struct HEADResponse storage pointer)"}},"id":2400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["12912:6:14","12938:8:14","12972:10:14","13017:4:14"],"names":["status","metadata","headerInfo","etag"],"nodeType":"FunctionCall","src":"12884:222:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}},"src":"12867:239:14","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}},"id":2402,"nodeType":"ExpressionStatement","src":"12867:239:14"},{"eventCall":{"arguments":[{"expression":{"id":2404,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13138:3:14","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13142:6:14","memberName":"sender","nodeType":"MemberAccess","src":"13138:10:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2406,"name":"deleteResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2361,"src":"13150:14:14","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}],"id":2403,"name":"DELETESuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1492,"src":"13124:13:14","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_struct$_HEADResponse_$1158_memory_ptr_$returns$__$","typeString":"function (address,struct HEADResponse memory)"}},"id":2407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13124:41:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2408,"nodeType":"EmitStatement","src":"13119:46:14"}]},"documentation":{"id":2354,"nodeType":"StructuredDocumentation","src":"12266:251:14","text":"@notice Handles DELETE requests to remove resources\n @dev Only accessible to resource administrators, checks resource mutability\n @param deleteRequest Request information\n @return deleteResponse Response confirming deletion"},"functionSelector":"ca63628c","id":2410,"implemented":true,"kind":"function","modifiers":[],"name":"DELETE","nameLocation":"12532:6:14","nodeType":"FunctionDefinition","parameters":{"id":2358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2357,"mutability":"mutable","name":"deleteRequest","nameLocation":"12568:13:14","nodeType":"VariableDeclaration","scope":2410,"src":"12549:32:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_memory_ptr","typeString":"struct HEADRequest"},"typeName":{"id":2356,"nodeType":"UserDefinedTypeName","pathNode":{"id":2355,"name":"HEADRequest","nameLocations":["12549:11:14"],"nodeType":"IdentifierPath","referencedDeclaration":1142,"src":"12549:11:14"},"referencedDeclaration":1142,"src":"12549:11:14","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_storage_ptr","typeString":"struct HEADRequest"}},"visibility":"internal"}],"src":"12538:50:14"},"returnParameters":{"id":2362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2361,"mutability":"mutable","name":"deleteResponse","nameLocation":"12627:14:14","nodeType":"VariableDeclaration","scope":2410,"src":"12607:34:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse"},"typeName":{"id":2360,"nodeType":"UserDefinedTypeName","pathNode":{"id":2359,"name":"HEADResponse","nameLocations":["12607:12:14"],"nodeType":"IdentifierPath","referencedDeclaration":1158,"src":"12607:12:14"},"referencedDeclaration":1158,"src":"12607:12:14","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_storage_ptr","typeString":"struct HEADResponse"}},"visibility":"internal"}],"src":"12606:36:14"},"scope":2632,"src":"12523:650:14","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":2547,"nodeType":"Block","src":"13603:1655:14","statements":[{"assignments":[2421],"declarations":[{"constant":false,"id":2421,"mutability":"mutable","name":"_path","nameLocation":"13628:5:14","nodeType":"VariableDeclaration","scope":2547,"src":"13614:19:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2420,"name":"string","nodeType":"ElementaryTypeName","src":"13614:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":2425,"initialValue":{"expression":{"expression":{"id":2422,"name":"putRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2414,"src":"13636:10:14","typeDescriptions":{"typeIdentifier":"t_struct$_PUTRequest_$1183_memory_ptr","typeString":"struct PUTRequest memory"}},"id":2423,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13647:4:14","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":1173,"src":"13636:15:14","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_memory_ptr","typeString":"struct HEADRequest memory"}},"id":2424,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13652:4:14","memberName":"path","nodeType":"MemberAccess","referencedDeclaration":1135,"src":"13636:20:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"13614:42:14"},{"expression":{"arguments":[{"id":2427,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2421,"src":"13676:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":2428,"name":"Method","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"13683:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Method_$955_$","typeString":"type(enum Method)"}},"id":2429,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13690:3:14","memberName":"PUT","nodeType":"MemberAccess","referencedDeclaration":949,"src":"13683:10:14","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}],"id":2426,"name":"_OPTIONS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2026,"src":"13667:8:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_enum$_Method_$955_$returns$_t_struct$_OPTIONSResponse_$1131_memory_ptr_$","typeString":"function (string memory,enum Method) view returns (struct OPTIONSResponse memory)"}},"id":2430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13667:27:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_OPTIONSResponse_$1131_memory_ptr","typeString":"struct OPTIONSResponse memory"}},"id":2431,"nodeType":"ExpressionStatement","src":"13667:27:14"},{"assignments":[2436],"declarations":[{"constant":false,"id":2436,"mutability":"mutable","name":"_data","nameLocation":"13746:5:14","nodeType":"VariableDeclaration","scope":2547,"src":"13720:31:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DataRegistration_$1064_memory_ptr_$dyn_memory_ptr","typeString":"struct DataRegistration[]"},"typeName":{"baseType":{"id":2434,"nodeType":"UserDefinedTypeName","pathNode":{"id":2433,"name":"DataRegistration","nameLocations":["13720:16:14"],"nodeType":"IdentifierPath","referencedDeclaration":1064,"src":"13720:16:14"},"referencedDeclaration":1064,"src":"13720:16:14","typeDescriptions":{"typeIdentifier":"t_struct$_DataRegistration_$1064_storage_ptr","typeString":"struct DataRegistration"}},"id":2435,"nodeType":"ArrayTypeName","src":"13720:18:14","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DataRegistration_$1064_storage_$dyn_storage_ptr","typeString":"struct DataRegistration[]"}},"visibility":"internal"}],"id":2439,"initialValue":{"expression":{"id":2437,"name":"putRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2414,"src":"13754:10:14","typeDescriptions":{"typeIdentifier":"t_struct$_PUTRequest_$1183_memory_ptr","typeString":"struct PUTRequest memory"}},"id":2438,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13765:4:14","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":1182,"src":"13754:15:14","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DataRegistration_$1064_memory_ptr_$dyn_memory_ptr","typeString":"struct DataRegistration memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"13720:49:14"},{"assignments":[2441],"declarations":[{"constant":false,"id":2441,"mutability":"mutable","name":"_status","nameLocation":"13787:7:14","nodeType":"VariableDeclaration","scope":2547,"src":"13780:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2440,"name":"uint16","nodeType":"ElementaryTypeName","src":"13780:6:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":2443,"initialValue":{"hexValue":"353030","id":2442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13797:3:14","typeDescriptions":{"typeIdentifier":"t_rational_500_by_1","typeString":"int_const 500"},"value":"500"},"nodeType":"VariableDeclarationStatement","src":"13780:20:14"},{"assignments":[2445],"declarations":[{"constant":false,"id":2445,"mutability":"mutable","name":"resourceExisted","nameLocation":"13841:15:14","nodeType":"VariableDeclaration","scope":2547,"src":"13836:20:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2444,"name":"bool","nodeType":"ElementaryTypeName","src":"13836:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":2449,"initialValue":{"arguments":[{"id":2447,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2421,"src":"13875:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2446,"name":"_resourceExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1827,"src":"13859:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$_t_bool_$","typeString":"function (string memory) view returns (bool)"}},"id":2448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13859:22:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"13836:45:14"},{"assignments":[2451],"declarations":[{"constant":false,"id":2451,"mutability":"mutable","name":"_headerAddress","nameLocation":"13900:14:14","nodeType":"VariableDeclaration","scope":2547,"src":"13892:22:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2450,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13892:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2456,"initialValue":{"expression":{"arguments":[{"id":2453,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2421,"src":"13931:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2452,"name":"_readMetadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"13917:13:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$_t_struct$_ResourceMetadata_$1053_memory_ptr_$","typeString":"function (string memory) view returns (struct ResourceMetadata memory)"}},"id":2454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13917:20:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"}},"id":2455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13938:6:14","memberName":"header","nodeType":"MemberAccess","referencedDeclaration":1052,"src":"13917:27:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"13892:52:14"},{"condition":{"id":2457,"name":"resourceExisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2445,"src":"13959:15:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2462,"nodeType":"IfStatement","src":"13955:43:14","trueBody":{"expression":{"arguments":[{"id":2459,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2421,"src":"13992:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2458,"name":"_deleteResource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3239,"src":"13976:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":2460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13976:22:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2461,"nodeType":"ExpressionStatement","src":"13976:22:14"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":2463,"name":"putRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2414,"src":"14045:10:14","typeDescriptions":{"typeIdentifier":"t_struct$_PUTRequest_$1183_memory_ptr","typeString":"struct PUTRequest memory"}},"id":2464,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14056:4:14","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":1182,"src":"14045:15:14","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DataRegistration_$1064_memory_ptr_$dyn_memory_ptr","typeString":"struct DataRegistration memory[] memory"}},"id":2465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14061:6:14","memberName":"length","nodeType":"MemberAccess","src":"14045:22:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14070:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14045:26:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2485,"nodeType":"Block","src":"14232:54:14","statements":[{"expression":{"id":2483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2481,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2441,"src":"14247:7:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"323034","id":2482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14257:3:14","typeDescriptions":{"typeIdentifier":"t_rational_204_by_1","typeString":"int_const 204"},"value":"204"},"src":"14247:13:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":2484,"nodeType":"ExpressionStatement","src":"14247:13:14"}]},"id":2486,"nodeType":"IfStatement","src":"14041:245:14","trueBody":{"id":2480,"nodeType":"Block","src":"14073:153:14","statements":[{"expression":{"arguments":[{"id":2469,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2421,"src":"14104:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":2470,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2436,"src":"14111:5:14","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DataRegistration_$1064_memory_ptr_$dyn_memory_ptr","typeString":"struct DataRegistration memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_struct$_DataRegistration_$1064_memory_ptr_$dyn_memory_ptr","typeString":"struct DataRegistration memory[] memory"}],"id":2468,"name":"_uploadResource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3286,"src":"14088:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_array$_t_struct$_DataRegistration_$1064_memory_ptr_$dyn_memory_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (string memory,struct DataRegistration memory[] memory) returns (bytes32[] memory)"}},"id":2471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14088:29:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":2472,"nodeType":"ExpressionStatement","src":"14088:29:14"},{"expression":{"id":2478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2473,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2441,"src":"14132:7:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"id":2474,"name":"resourceExisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2445,"src":"14142:15:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"323031","id":2476,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14166:3:14","typeDescriptions":{"typeIdentifier":"t_rational_201_by_1","typeString":"int_const 201"},"value":"201"},"id":2477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"14142:27:14","trueExpression":{"hexValue":"323030","id":2475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14160:3:14","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"14132:37:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":2479,"nodeType":"ExpressionStatement","src":"14132:37:14"}]}},{"expression":{"arguments":[{"id":2488,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2421,"src":"14326:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"expression":{"id":2490,"name":"putRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2414,"src":"14395:10:14","typeDescriptions":{"typeIdentifier":"t_struct$_PUTRequest_$1183_memory_ptr","typeString":"struct PUTRequest memory"}},"id":2491,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14406:10:14","memberName":"properties","nodeType":"MemberAccess","referencedDeclaration":1177,"src":"14395:21:14","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceProperties_$1035_memory_ptr","typeString":"struct ResourceProperties memory"}},{"hexValue":"30","id":2492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14441:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":2493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14498:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":2494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14560:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":2495,"name":"_headerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2451,"src":"14616:14:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ResourceProperties_$1035_memory_ptr","typeString":"struct ResourceProperties memory"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2489,"name":"ResourceMetadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1053,"src":"14347:16:14","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ResourceMetadata_$1053_storage_ptr_$","typeString":"type(struct ResourceMetadata storage pointer)"}},"id":2496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14383:10:14","14435:4:14","14489:7:14","14546:12:14","14608:6:14"],"names":["properties","size","version","lastModified","header"],"nodeType":"FunctionCall","src":"14347:318:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"}],"id":2487,"name":"_updateMetadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2933,"src":"14296:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_ResourceMetadata_$1053_memory_ptr_$returns$__$","typeString":"function (string memory,struct ResourceMetadata memory)"}},"id":2497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14296:380:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2498,"nodeType":"ExpressionStatement","src":"14296:380:14"},{"assignments":[2501],"declarations":[{"constant":false,"id":2501,"mutability":"mutable","name":"_metadata","nameLocation":"14713:9:14","nodeType":"VariableDeclaration","scope":2547,"src":"14689:33:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata"},"typeName":{"id":2500,"nodeType":"UserDefinedTypeName","pathNode":{"id":2499,"name":"ResourceMetadata","nameLocations":["14689:16:14"],"nodeType":"IdentifierPath","referencedDeclaration":1053,"src":"14689:16:14"},"referencedDeclaration":1053,"src":"14689:16:14","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_storage_ptr","typeString":"struct ResourceMetadata"}},"visibility":"internal"}],"id":2505,"initialValue":{"arguments":[{"id":2503,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2421,"src":"14739:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2502,"name":"_readMetadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"14725:13:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$_t_struct$_ResourceMetadata_$1053_memory_ptr_$","typeString":"function (string memory) view returns (struct ResourceMetadata memory)"}},"id":2504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14725:20:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"}},"nodeType":"VariableDeclarationStatement","src":"14689:56:14"},{"assignments":[2510],"declarations":[{"constant":false,"id":2510,"mutability":"mutable","name":"_dataPoints","nameLocation":"14773:11:14","nodeType":"VariableDeclaration","scope":2547,"src":"14756:28:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":2508,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14756:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2509,"nodeType":"ArrayTypeName","src":"14756:9:14","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":2514,"initialValue":{"arguments":[{"id":2512,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2436,"src":"14802:5:14","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DataRegistration_$1064_memory_ptr_$dyn_memory_ptr","typeString":"struct DataRegistration memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_DataRegistration_$1064_memory_ptr_$dyn_memory_ptr","typeString":"struct DataRegistration memory[] memory"}],"id":2511,"name":"_getDataPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1992,"src":"14787:14:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_array$_t_struct$_DataRegistration_$1064_memory_ptr_$dyn_memory_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct DataRegistration memory[] memory) view returns (bytes32[] memory)"}},"id":2513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14787:21:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"14756:52:14"},{"expression":{"id":2529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2515,"name":"putResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2418,"src":"14821:11:14","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_memory_ptr","typeString":"struct LOCATEResponse memory"}},"id":2517,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"14833:4:14","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":1163,"src":"14821:16:14","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2519,"name":"_status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2441,"src":"14876:7:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":2520,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2501,"src":"14908:9:14","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"}},{"arguments":[{"id":2522,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2421,"src":"14980:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2521,"name":"_readHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2743,"src":"14968:11:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$_t_struct$_HeaderInfo_$1022_memory_ptr_$","typeString":"function (string memory) view returns (struct HeaderInfo memory)"}},"id":2523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14968:18:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"}},{"arguments":[{"id":2525,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2501,"src":"15021:9:14","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"}},{"id":2526,"name":"_dataPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2510,"src":"15032:11:14","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":2524,"name":"calculateEtag","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1233,"src":"15007:13:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_ResourceMetadata_$1053_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct ResourceMetadata memory,bytes32[] memory) pure returns (bytes32)"}},"id":2527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15007:37:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"},{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2518,"name":"HEADResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1158,"src":"14840:12:14","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_HEADResponse_$1158_storage_ptr_$","typeString":"type(struct HEADResponse storage pointer)"}},"id":2528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14868:6:14","14898:8:14","14956:10:14","15001:4:14"],"names":["status","metadata","headerInfo","etag"],"nodeType":"FunctionCall","src":"14840:216:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}},"src":"14821:235:14","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}},"id":2530,"nodeType":"ExpressionStatement","src":"14821:235:14"},{"expression":{"id":2539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2531,"name":"putResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2418,"src":"15067:11:14","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_memory_ptr","typeString":"struct LOCATEResponse memory"}},"id":2533,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"15079:8:14","memberName":"resource","nodeType":"MemberAccess","referencedDeclaration":1167,"src":"15067:20:14","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceResponse_$885_memory_ptr","typeString":"struct ResourceResponse memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2535,"name":"_dataPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2510,"src":"15134:11:14","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"expression":{"id":2536,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2436,"src":"15173:5:14","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DataRegistration_$1064_memory_ptr_$dyn_memory_ptr","typeString":"struct DataRegistration memory[] memory"}},"id":2537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15179:6:14","memberName":"length","nodeType":"MemberAccess","src":"15173:12:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2534,"name":"ResourceResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":885,"src":"15090:16:14","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ResourceResponse_$885_storage_ptr_$","typeString":"type(struct ResourceResponse storage pointer)"}},"id":2538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["15122:10:14","15160:11:14"],"names":["dataPoints","totalChunks"],"nodeType":"FunctionCall","src":"15090:107:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ResourceResponse_$885_memory_ptr","typeString":"struct ResourceResponse memory"}},"src":"15067:130:14","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceResponse_$885_memory_ptr","typeString":"struct ResourceResponse memory"}},"id":2540,"nodeType":"ExpressionStatement","src":"15067:130:14"},{"eventCall":{"arguments":[{"expression":{"id":2542,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15226:3:14","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15230:6:14","memberName":"sender","nodeType":"MemberAccess","src":"15226:10:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2544,"name":"putResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2418,"src":"15238:11:14","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_memory_ptr","typeString":"struct LOCATEResponse memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_memory_ptr","typeString":"struct LOCATEResponse memory"}],"id":2541,"name":"PUTSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1476,"src":"15215:10:14","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_struct$_LOCATEResponse_$1168_memory_ptr_$returns$__$","typeString":"function (address,struct LOCATEResponse memory)"}},"id":2545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15215:35:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2546,"nodeType":"EmitStatement","src":"15210:40:14"}]},"documentation":{"id":2411,"nodeType":"StructuredDocumentation","src":"13181:296:14","text":"@notice Handles PUT requests to create new resources\n @dev Only accessible to resource administrators, transfers any excess payment back\n @param putRequest Request information including content data\n @return putResponse Response containing created resource information"},"functionSelector":"b0184e01","id":2548,"implemented":true,"kind":"function","modifiers":[],"name":"PUT","nameLocation":"13492:3:14","nodeType":"FunctionDefinition","parameters":{"id":2415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2414,"mutability":"mutable","name":"putRequest","nameLocation":"13524:10:14","nodeType":"VariableDeclaration","scope":2548,"src":"13506:28:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PUTRequest_$1183_memory_ptr","typeString":"struct PUTRequest"},"typeName":{"id":2413,"nodeType":"UserDefinedTypeName","pathNode":{"id":2412,"name":"PUTRequest","nameLocations":["13506:10:14"],"nodeType":"IdentifierPath","referencedDeclaration":1183,"src":"13506:10:14"},"referencedDeclaration":1183,"src":"13506:10:14","typeDescriptions":{"typeIdentifier":"t_struct$_PUTRequest_$1183_storage_ptr","typeString":"struct PUTRequest"}},"visibility":"internal"}],"src":"13495:46:14"},"returnParameters":{"id":2419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2418,"mutability":"mutable","name":"putResponse","nameLocation":"13590:11:14","nodeType":"VariableDeclaration","scope":2548,"src":"13568:33:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_memory_ptr","typeString":"struct LOCATEResponse"},"typeName":{"id":2417,"nodeType":"UserDefinedTypeName","pathNode":{"id":2416,"name":"LOCATEResponse","nameLocations":["13568:14:14"],"nodeType":"IdentifierPath","referencedDeclaration":1168,"src":"13568:14:14"},"referencedDeclaration":1168,"src":"13568:14:14","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_storage_ptr","typeString":"struct LOCATEResponse"}},"visibility":"internal"}],"src":"13567:35:14"},"scope":2632,"src":"13483:1775:14","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":2630,"nodeType":"Block","src":"15699:661:14","statements":[{"assignments":[2559],"declarations":[{"constant":false,"id":2559,"mutability":"mutable","name":"_path","nameLocation":"15724:5:14","nodeType":"VariableDeclaration","scope":2630,"src":"15710:19:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2558,"name":"string","nodeType":"ElementaryTypeName","src":"15710:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":2563,"initialValue":{"expression":{"expression":{"id":2560,"name":"patchRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2552,"src":"15732:12:14","typeDescriptions":{"typeIdentifier":"t_struct$_PATCHRequest_$1194_memory_ptr","typeString":"struct PATCHRequest memory"}},"id":2561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15745:4:14","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":1188,"src":"15732:17:14","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_memory_ptr","typeString":"struct HEADRequest memory"}},"id":2562,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15750:4:14","memberName":"path","nodeType":"MemberAccess","referencedDeclaration":1135,"src":"15732:22:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"15710:44:14"},{"expression":{"arguments":[{"id":2565,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2559,"src":"15774:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":2566,"name":"Method","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"15781:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Method_$955_$","typeString":"type(enum Method)"}},"id":2567,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15788:5:14","memberName":"PATCH","nodeType":"MemberAccess","referencedDeclaration":950,"src":"15781:12:14","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}],"id":2564,"name":"_OPTIONS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2026,"src":"15765:8:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_enum$_Method_$955_$returns$_t_struct$_OPTIONSResponse_$1131_memory_ptr_$","typeString":"function (string memory,enum Method) view returns (struct OPTIONSResponse memory)"}},"id":2568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15765:29:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_OPTIONSResponse_$1131_memory_ptr","typeString":"struct OPTIONSResponse memory"}},"id":2569,"nodeType":"ExpressionStatement","src":"15765:29:14"},{"assignments":[2574],"declarations":[{"constant":false,"id":2574,"mutability":"mutable","name":"_data","nameLocation":"15831:5:14","nodeType":"VariableDeclaration","scope":2630,"src":"15805:31:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DataRegistration_$1064_memory_ptr_$dyn_memory_ptr","typeString":"struct DataRegistration[]"},"typeName":{"baseType":{"id":2572,"nodeType":"UserDefinedTypeName","pathNode":{"id":2571,"name":"DataRegistration","nameLocations":["15805:16:14"],"nodeType":"IdentifierPath","referencedDeclaration":1064,"src":"15805:16:14"},"referencedDeclaration":1064,"src":"15805:16:14","typeDescriptions":{"typeIdentifier":"t_struct$_DataRegistration_$1064_storage_ptr","typeString":"struct DataRegistration"}},"id":2573,"nodeType":"ArrayTypeName","src":"15805:18:14","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DataRegistration_$1064_storage_$dyn_storage_ptr","typeString":"struct DataRegistration[]"}},"visibility":"internal"}],"id":2577,"initialValue":{"expression":{"id":2575,"name":"patchRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2552,"src":"15839:12:14","typeDescriptions":{"typeIdentifier":"t_struct$_PATCHRequest_$1194_memory_ptr","typeString":"struct PATCHRequest memory"}},"id":2576,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15852:4:14","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":1193,"src":"15839:17:14","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DataRegistration_$1064_memory_ptr_$dyn_memory_ptr","typeString":"struct DataRegistration memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"15805:51:14"},{"assignments":[2582],"declarations":[{"constant":false,"id":2582,"mutability":"mutable","name":"_dataPoints","nameLocation":"15886:11:14","nodeType":"VariableDeclaration","scope":2630,"src":"15869:28:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":2580,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15869:7:14","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2581,"nodeType":"ArrayTypeName","src":"15869:9:14","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":2587,"initialValue":{"arguments":[{"id":2584,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2559,"src":"15930:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":2585,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2574,"src":"15951:5:14","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DataRegistration_$1064_memory_ptr_$dyn_memory_ptr","typeString":"struct DataRegistration memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_struct$_DataRegistration_$1064_memory_ptr_$dyn_memory_ptr","typeString":"struct DataRegistration memory[] memory"}],"id":2583,"name":"_uploadResource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3286,"src":"15900:15:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_array$_t_struct$_DataRegistration_$1064_memory_ptr_$dyn_memory_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (string memory,struct DataRegistration memory[] memory) returns (bytes32[] memory)"}},"id":2586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15900:67:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"15869:98:14"},{"expression":{"id":2597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2588,"name":"patchResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2556,"src":"15980:13:14","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_memory_ptr","typeString":"struct LOCATEResponse memory"}},"id":2590,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"15994:4:14","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":1163,"src":"15980:18:14","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":2592,"name":"patchRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2552,"src":"16007:12:14","typeDescriptions":{"typeIdentifier":"t_struct$_PATCHRequest_$1194_memory_ptr","typeString":"struct PATCHRequest memory"}},"id":2593,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16020:4:14","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":1188,"src":"16007:17:14","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_memory_ptr","typeString":"struct HEADRequest memory"}},{"expression":{"id":2594,"name":"Method","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"16026:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Method_$955_$","typeString":"type(enum Method)"}},"id":2595,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16033:5:14","memberName":"PATCH","nodeType":"MemberAccess","referencedDeclaration":950,"src":"16026:12:14","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_HEADRequest_$1142_memory_ptr","typeString":"struct HEADRequest memory"},{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}],"id":2591,"name":"_HEAD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2161,"src":"16001:5:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_HEADRequest_$1142_memory_ptr_$_t_enum$_Method_$955_$returns$_t_struct$_HEADResponse_$1158_memory_ptr_$","typeString":"function (struct HEADRequest memory,enum Method) view returns (struct HEADResponse memory)"}},"id":2596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16001:38:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}},"src":"15980:59:14","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}},"id":2598,"nodeType":"ExpressionStatement","src":"15980:59:14"},{"expression":{"id":2611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":2599,"name":"patchResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2556,"src":"16050:13:14","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_memory_ptr","typeString":"struct LOCATEResponse memory"}},"id":2602,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16064:4:14","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":1163,"src":"16050:18:14","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}},"id":2603,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16069:6:14","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":1146,"src":"16050:25:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":2605,"name":"_dataPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2582,"src":"16091:11:14","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":2606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16103:6:14","memberName":"length","nodeType":"MemberAccess","src":"16091:18:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":2608,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2559,"src":"16131:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2607,"name":"_resourceDataPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2969,"src":"16111:19:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$_t_uint256_$","typeString":"function (string memory) view returns (uint256)"}},"id":2609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16111:26:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2604,"name":"contentCode_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1460,"src":"16078:12:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint16_$","typeString":"function (uint256,uint256) pure returns (uint16)"}},"id":2610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16078:60:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"16050:88:14","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":2612,"nodeType":"ExpressionStatement","src":"16050:88:14"},{"expression":{"id":2622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2613,"name":"patchResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2556,"src":"16149:13:14","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_memory_ptr","typeString":"struct LOCATEResponse memory"}},"id":2615,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16163:8:14","memberName":"resource","nodeType":"MemberAccess","referencedDeclaration":1167,"src":"16149:22:14","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceResponse_$885_memory_ptr","typeString":"struct ResourceResponse memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2617,"name":"_dataPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2582,"src":"16218:11:14","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"arguments":[{"id":2619,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2559,"src":"16277:5:14","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2618,"name":"_resourceDataPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2969,"src":"16257:19:14","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$_t_uint256_$","typeString":"function (string memory) view returns (uint256)"}},"id":2620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16257:26:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2616,"name":"ResourceResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":885,"src":"16174:16:14","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ResourceResponse_$885_storage_ptr_$","typeString":"type(struct ResourceResponse storage pointer)"}},"id":2621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["16206:10:14","16244:11:14"],"names":["dataPoints","totalChunks"],"nodeType":"FunctionCall","src":"16174:121:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ResourceResponse_$885_memory_ptr","typeString":"struct ResourceResponse memory"}},"src":"16149:146:14","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceResponse_$885_memory_ptr","typeString":"struct ResourceResponse memory"}},"id":2623,"nodeType":"ExpressionStatement","src":"16149:146:14"},{"eventCall":{"arguments":[{"expression":{"id":2625,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16326:3:14","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16330:6:14","memberName":"sender","nodeType":"MemberAccess","src":"16326:10:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2627,"name":"patchResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2556,"src":"16338:13:14","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_memory_ptr","typeString":"struct LOCATEResponse memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_memory_ptr","typeString":"struct LOCATEResponse memory"}],"id":2624,"name":"PATCHSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1484,"src":"16313:12:14","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_struct$_LOCATEResponse_$1168_memory_ptr_$returns$__$","typeString":"function (address,struct LOCATEResponse memory)"}},"id":2628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16313:39:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2629,"nodeType":"EmitStatement","src":"16308:44:14"}]},"documentation":{"id":2549,"nodeType":"StructuredDocumentation","src":"15266:299:14","text":"@notice Handles PATCH requests to update existing resources\n @dev Only accessible to resource administrators, checks resource mutability\n @param patchRequest Request information including update data\n @return patchResponse Response containing updated resource information"},"functionSelector":"dd0fec4c","id":2631,"implemented":true,"kind":"function","modifiers":[],"name":"PATCH","nameLocation":"15580:5:14","nodeType":"FunctionDefinition","parameters":{"id":2553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2552,"mutability":"mutable","name":"patchRequest","nameLocation":"15616:12:14","nodeType":"VariableDeclaration","scope":2631,"src":"15596:32:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PATCHRequest_$1194_memory_ptr","typeString":"struct PATCHRequest"},"typeName":{"id":2551,"nodeType":"UserDefinedTypeName","pathNode":{"id":2550,"name":"PATCHRequest","nameLocations":["15596:12:14"],"nodeType":"IdentifierPath","referencedDeclaration":1194,"src":"15596:12:14"},"referencedDeclaration":1194,"src":"15596:12:14","typeDescriptions":{"typeIdentifier":"t_struct$_PATCHRequest_$1194_storage_ptr","typeString":"struct PATCHRequest"}},"visibility":"internal"}],"src":"15585:50:14"},"returnParameters":{"id":2557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2556,"mutability":"mutable","name":"patchResponse","nameLocation":"15684:13:14","nodeType":"VariableDeclaration","scope":2631,"src":"15662:35:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_memory_ptr","typeString":"struct LOCATEResponse"},"typeName":{"id":2555,"nodeType":"UserDefinedTypeName","pathNode":{"id":2554,"name":"LOCATEResponse","nameLocations":["15662:14:14"],"nodeType":"IdentifierPath","referencedDeclaration":1168,"src":"15662:14:14"},"referencedDeclaration":1168,"src":"15662:14:14","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_storage_ptr","typeString":"struct LOCATEResponse"}},"visibility":"internal"}],"src":"15661:37:14"},"scope":2632,"src":"15571:789:14","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":2633,"src":"1210:15153:14","usedErrors":[306,309,829,878,906,913,922,944],"usedEvents":[318,327,336,819,824,840,845,850,855,860,867,872,1468,1476,1484,1492]}],"src":"831:15532:14"},"id":14},"contracts/BaseWTTPStorage.sol":{"ast":{"absolutePath":"contracts/BaseWTTPStorage.sol","exportedSymbols":{"BYTE_RESPONSE_LIMIT":[835],"BaseWTTPStorage":[3287],"CHUNK_RESPONSE_LIMIT":[832],"CORSPolicy":[1000],"CORSPreset":[972],"CacheControl":[984],"CachePreset":[964],"DEFINERequest":[1204],"DEFINEResponse":[1213],"DEFINESuccess":[1468],"DELETESuccess":[1492],"DataExists":[618],"DataPointRegistered":[652],"DataPointRoyalty":[677],"DataPointSizes":[1257],"DataPointWritten":[614],"DataRegistration":[1064],"GETRequest":[1280],"GETResponse":[1290],"HEADRequest":[1142],"HEADResponse":[1158],"HeaderCreated":[840],"HeaderInfo":[1022],"HeaderUpdated":[845],"IDataPointRegistry":[534],"IDataPointStorage":[573],"IOwnable":[608],"InsufficientRoyaltyPayment":[626],"InvalidDPS":[622],"InvalidData":[620],"InvalidHeader":[878],"InvalidPublisher":[630],"InvalidRole":[829],"LOCATERequest":[1251],"LOCATEResponse":[1168],"LOCATEResponseSecure":[1270],"MetadataDeleted":[855],"MetadataUpdated":[850],"Method":[955],"OPTIONSResponse":[1131],"PATCHRequest":[1194],"PATCHSuccess":[1484],"PUTRequest":[1183],"PUTSuccess":[1476],"ProcessedData":[1263],"Range":[1241],"Redirect":[1008],"ResourceCreated":[860],"ResourceDeleted":[872],"ResourceMetadata":[1053],"ResourceProperties":[1035],"ResourceResponse":[885],"ResourceRoleCreated":[824],"ResourceUpdated":[867],"RoyaltiesCollected":[638],"RoyaltiesPaid":[646],"SiteAdminChanged":[819],"_400":[892],"_402":[899],"_403":[906],"_404":[913],"_405":[922],"_409":[929],"_410":[934],"_416":[944],"calculateDataPointAddress":[671],"calculateEtag":[1233],"contentCode_":[1460],"getHeaderAddress":[1123],"maxMethods_":[1306],"methodsToMask":[1107],"normalizeRange_":[1434]},"id":3288,"license":"AGPL-3.0","nodeType":"SourceUnit","nodes":[{"id":2634,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"830:24:15"},{"absolutePath":"@wttp/core/contracts/types/WTTPTypes.sol","file":"@wttp/core/contracts/types/WTTPTypes.sol","id":2635,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3288,"sourceUnit":1493,"src":"858:50:15","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[],"canonicalName":"BaseWTTPStorage","contractDependencies":[],"contractKind":"contract","documentation":{"id":2636,"nodeType":"StructuredDocumentation","src":"912:312:15","text":"@title WTTP Base Storage Contract\n @author Web3 Transfer Protocol (WTTP) Development Team\n @notice Manages web resource storage and access control\n @dev Core storage functionality for the WTTP protocol\n      Resources are stored as chunks of data points with associated metadata and headers"},"fullyImplemented":true,"id":3287,"linearizedBaseContracts":[3287],"name":"BaseWTTPStorage","nameLocation":"1242:15:15","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":2637,"nodeType":"StructuredDocumentation","src":"1267:74:15","text":"@notice Empty header structure for initialization and reset operations"},"id":2640,"mutability":"mutable","name":"zeroHeader","nameLocation":"1358:10:15","nodeType":"VariableDeclaration","scope":3287,"src":"1347:21:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_storage","typeString":"struct HeaderInfo"},"typeName":{"id":2639,"nodeType":"UserDefinedTypeName","pathNode":{"id":2638,"name":"HeaderInfo","nameLocations":["1347:10:15"],"nodeType":"IdentifierPath","referencedDeclaration":1022,"src":"1347:10:15"},"referencedDeclaration":1022,"src":"1347:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_storage_ptr","typeString":"struct HeaderInfo"}},"visibility":"internal"},{"constant":false,"documentation":{"id":2641,"nodeType":"StructuredDocumentation","src":"1377:76:15","text":"@notice Empty metadata structure for initialization and reset operations"},"id":2644,"mutability":"mutable","name":"zeroMetadata","nameLocation":"1476:12:15","nodeType":"VariableDeclaration","scope":3287,"src":"1459:29:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_storage","typeString":"struct ResourceMetadata"},"typeName":{"id":2643,"nodeType":"UserDefinedTypeName","pathNode":{"id":2642,"name":"ResourceMetadata","nameLocations":["1459:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":1053,"src":"1459:16:15"},"referencedDeclaration":1053,"src":"1459:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_storage_ptr","typeString":"struct ResourceMetadata"}},"visibility":"internal"},{"body":{"id":2656,"nodeType":"Block","src":"1859:131:15","statements":[{"expression":{"id":2654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2650,"name":"DPR_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2661,"src":"1870:4:15","typeDescriptions":{"typeIdentifier":"t_contract$_IDataPointRegistry_$534","typeString":"contract IDataPointRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2652,"name":"_dpr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2647,"src":"1896:4:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2651,"name":"IDataPointRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":534,"src":"1877:18:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDataPointRegistry_$534_$","typeString":"type(contract IDataPointRegistry)"}},"id":2653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1877:24:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDataPointRegistry_$534","typeString":"contract IDataPointRegistry"}},"src":"1870:31:15","typeDescriptions":{"typeIdentifier":"t_contract$_IDataPointRegistry_$534","typeString":"contract IDataPointRegistry"}},"id":2655,"nodeType":"ExpressionStatement","src":"1870:31:15"}]},"documentation":{"id":2645,"nodeType":"StructuredDocumentation","src":"1601:210:15","text":"@notice Initializes the storage contract with core dependencies and defaults\n @dev Sets up the data point registry and default header\n @param _dpr Address of the Data Point Registry contract"},"id":2657,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":2648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2647,"mutability":"mutable","name":"_dpr","nameLocation":"1847:4:15","nodeType":"VariableDeclaration","scope":2657,"src":"1839:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2646,"name":"address","nodeType":"ElementaryTypeName","src":"1839:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1828:30:15"},"returnParameters":{"id":2649,"nodeType":"ParameterList","parameters":[],"src":"1859:0:15"},"scope":3287,"src":"1817:173:15","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"constant":false,"documentation":{"id":2658,"nodeType":"StructuredDocumentation","src":"1998:134:15","text":"@notice Reference to the Data Point Registry contract\n @dev Used to register data points and access the Data Point Storage"},"id":2661,"mutability":"mutable","name":"DPR_","nameLocation":"2165:4:15","nodeType":"VariableDeclaration","scope":3287,"src":"2138:31:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IDataPointRegistry_$534","typeString":"contract IDataPointRegistry"},"typeName":{"id":2660,"nodeType":"UserDefinedTypeName","pathNode":{"id":2659,"name":"IDataPointRegistry","nameLocations":["2138:18:15"],"nodeType":"IdentifierPath","referencedDeclaration":534,"src":"2138:18:15"},"referencedDeclaration":534,"src":"2138:18:15","typeDescriptions":{"typeIdentifier":"t_contract$_IDataPointRegistry_$534","typeString":"contract IDataPointRegistry"}},"visibility":"private"},{"body":{"id":2672,"nodeType":"Block","src":"2308:36:15","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":2668,"name":"DPR_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2661,"src":"2326:4:15","typeDescriptions":{"typeIdentifier":"t_contract$_IDataPointRegistry_$534","typeString":"contract IDataPointRegistry"}},"id":2669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2331:3:15","memberName":"DPS","nodeType":"MemberAccess","referencedDeclaration":464,"src":"2326:8:15","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IDataPointStorage_$573_$","typeString":"function () view external returns (contract IDataPointStorage)"}},"id":2670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2326:10:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDataPointStorage_$573","typeString":"contract IDataPointStorage"}},"functionReturnParameters":2667,"id":2671,"nodeType":"Return","src":"2319:17:15"}]},"documentation":{"id":2662,"nodeType":"StructuredDocumentation","src":"2178:61:15","text":"@return IDataPointStorage The Data Point Storage contract"},"functionSelector":"ef4e06ec","id":2673,"implemented":true,"kind":"function","modifiers":[],"name":"DPS","nameLocation":"2254:3:15","nodeType":"FunctionDefinition","parameters":{"id":2663,"nodeType":"ParameterList","parameters":[],"src":"2257:2:15"},"returnParameters":{"id":2667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2666,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2673,"src":"2289:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IDataPointStorage_$573","typeString":"contract IDataPointStorage"},"typeName":{"id":2665,"nodeType":"UserDefinedTypeName","pathNode":{"id":2664,"name":"IDataPointStorage","nameLocations":["2289:17:15"],"nodeType":"IdentifierPath","referencedDeclaration":573,"src":"2289:17:15"},"referencedDeclaration":573,"src":"2289:17:15","typeDescriptions":{"typeIdentifier":"t_contract$_IDataPointStorage_$573","typeString":"contract IDataPointStorage"}},"visibility":"internal"}],"src":"2288:19:15"},"scope":3287,"src":"2245:99:15","stateMutability":"view","virtual":true,"visibility":"public"},{"body":{"id":2682,"nodeType":"Block","src":"2622:30:15","statements":[{"expression":{"id":2680,"name":"DPR_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2661,"src":"2640:4:15","typeDescriptions":{"typeIdentifier":"t_contract$_IDataPointRegistry_$534","typeString":"contract IDataPointRegistry"}},"functionReturnParameters":2679,"id":2681,"nodeType":"Return","src":"2633:11:15"}]},"documentation":{"id":2674,"nodeType":"StructuredDocumentation","src":"2352:200:15","text":"@notice Returns the Data Point Registry contract instance\n @dev Provides external access to the internal DPR_ reference\n @return IDataPointRegistry The Data Point Registry contract"},"functionSelector":"c2640ed1","id":2683,"implemented":true,"kind":"function","modifiers":[],"name":"DPR","nameLocation":"2567:3:15","nodeType":"FunctionDefinition","parameters":{"id":2675,"nodeType":"ParameterList","parameters":[],"src":"2570:2:15"},"returnParameters":{"id":2679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2678,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2683,"src":"2602:18:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IDataPointRegistry_$534","typeString":"contract IDataPointRegistry"},"typeName":{"id":2677,"nodeType":"UserDefinedTypeName","pathNode":{"id":2676,"name":"IDataPointRegistry","nameLocations":["2602:18:15"],"nodeType":"IdentifierPath","referencedDeclaration":534,"src":"2602:18:15"},"referencedDeclaration":534,"src":"2602:18:15","typeDescriptions":{"typeIdentifier":"t_contract$_IDataPointRegistry_$534","typeString":"contract IDataPointRegistry"}},"visibility":"internal"}],"src":"2601:20:15"},"scope":3287,"src":"2558:94:15","stateMutability":"view","virtual":true,"visibility":"public"},{"constant":false,"documentation":{"id":2684,"nodeType":"StructuredDocumentation","src":"2660:134:15","text":"@notice Maps header identifiers to header information\n @dev Headers contain HTTP-like metadata and access control settings"},"id":2689,"mutability":"mutable","name":"header","nameLocation":"2846:6:15","nodeType":"VariableDeclaration","scope":3287,"src":"2800:52:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_HeaderInfo_$1022_storage_$","typeString":"mapping(bytes32 => struct HeaderInfo)"},"typeName":{"id":2688,"keyName":"header","keyNameLocation":"2816:6:15","keyType":{"id":2685,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2808:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2800:37:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_HeaderInfo_$1022_storage_$","typeString":"mapping(bytes32 => struct HeaderInfo)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":2687,"nodeType":"UserDefinedTypeName","pathNode":{"id":2686,"name":"HeaderInfo","nameLocations":["2826:10:15"],"nodeType":"IdentifierPath","referencedDeclaration":1022,"src":"2826:10:15"},"referencedDeclaration":1022,"src":"2826:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_storage_ptr","typeString":"struct HeaderInfo"}}},"visibility":"private"},{"constant":false,"documentation":{"id":2690,"nodeType":"StructuredDocumentation","src":"2865:129:15","text":"@notice Maps resource paths to their metadata\n @dev Metadata includes size, version, timestamps, and header reference"},"id":2695,"mutability":"mutable","name":"metadata","nameLocation":"3049:8:15","nodeType":"VariableDeclaration","scope":3287,"src":"3000:57:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_ResourceMetadata_$1053_storage_$","typeString":"mapping(string => struct ResourceMetadata)"},"typeName":{"id":2694,"keyName":"path","keyNameLocation":"3015:4:15","keyType":{"id":2691,"name":"string","nodeType":"ElementaryTypeName","src":"3008:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"nodeType":"Mapping","src":"3000:40:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_ResourceMetadata_$1053_storage_$","typeString":"mapping(string => struct ResourceMetadata)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":2693,"nodeType":"UserDefinedTypeName","pathNode":{"id":2692,"name":"ResourceMetadata","nameLocations":["3023:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":1053,"src":"3023:16:15"},"referencedDeclaration":1053,"src":"3023:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_storage_ptr","typeString":"struct ResourceMetadata"}}},"visibility":"private"},{"constant":false,"documentation":{"id":2696,"nodeType":"StructuredDocumentation","src":"3070:138:15","text":"@notice Maps resource paths to arrays of data point addresses\n @dev Each resource is stored as a sequence of data point chunks"},"id":2701,"mutability":"mutable","name":"resource","nameLocation":"3256:8:15","nodeType":"VariableDeclaration","scope":3287,"src":"3214:50:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_array$_t_bytes32_$dyn_storage_$","typeString":"mapping(string => bytes32[])"},"typeName":{"id":2700,"keyName":"path","keyNameLocation":"3229:4:15","keyType":{"id":2697,"name":"string","nodeType":"ElementaryTypeName","src":"3222:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"nodeType":"Mapping","src":"3214:33:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_array$_t_bytes32_$dyn_storage_$","typeString":"mapping(string => bytes32[])"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"baseType":{"id":2698,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3237:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2699,"nodeType":"ArrayTypeName","src":"3237:9:15","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"visibility":"private"},{"body":{"id":2725,"nodeType":"Block","src":"3746:152:15","statements":[{"expression":{"id":2714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2710,"name":"headerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2708,"src":"3757:13:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2712,"name":"_header","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2705,"src":"3790:7:15","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"}],"id":2711,"name":"getHeaderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1123,"src":"3773:16:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_HeaderInfo_$1022_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct HeaderInfo memory) pure returns (bytes32)"}},"id":2713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3773:25:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3757:41:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2715,"nodeType":"ExpressionStatement","src":"3757:41:15"},{"expression":{"arguments":[{"id":2717,"name":"headerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2708,"src":"3823:13:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2718,"name":"_header","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2705,"src":"3838:7:15","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"}],"id":2716,"name":"_updateHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2806,"src":"3809:13:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_struct$_HeaderInfo_$1022_memory_ptr_$returns$__$","typeString":"function (bytes32,struct HeaderInfo memory)"}},"id":2719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3809:37:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2720,"nodeType":"ExpressionStatement","src":"3809:37:15"},{"eventCall":{"arguments":[{"id":2722,"name":"headerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2708,"src":"3876:13:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2721,"name":"HeaderCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":840,"src":"3862:13:15","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":2723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3862:28:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2724,"nodeType":"EmitStatement","src":"3857:33:15"}]},"documentation":{"id":2702,"nodeType":"StructuredDocumentation","src":"3377:248:15","text":"@notice Creates a new header in storage\n @dev Only creates if header doesn't already exist (methods == 0)\n @param _header The header information to store\n @return headerAddress The unique identifier for the stored header"},"id":2726,"implemented":true,"kind":"function","modifiers":[],"name":"_createHeader","nameLocation":"3640:13:15","nodeType":"FunctionDefinition","parameters":{"id":2706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2705,"mutability":"mutable","name":"_header","nameLocation":"3682:7:15","nodeType":"VariableDeclaration","scope":2726,"src":"3664:25:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo"},"typeName":{"id":2704,"nodeType":"UserDefinedTypeName","pathNode":{"id":2703,"name":"HeaderInfo","nameLocations":["3664:10:15"],"nodeType":"IdentifierPath","referencedDeclaration":1022,"src":"3664:10:15"},"referencedDeclaration":1022,"src":"3664:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_storage_ptr","typeString":"struct HeaderInfo"}},"visibility":"internal"}],"src":"3653:43:15"},"returnParameters":{"id":2709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2708,"mutability":"mutable","name":"headerAddress","nameLocation":"3731:13:15","nodeType":"VariableDeclaration","scope":2726,"src":"3723:21:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2707,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3723:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3722:23:15"},"scope":3287,"src":"3631:267:15","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2742,"nodeType":"Block","src":"4235:61:15","statements":[{"expression":{"baseExpression":{"id":2735,"name":"header","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2689,"src":"4253:6:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_HeaderInfo_$1022_storage_$","typeString":"mapping(bytes32 => struct HeaderInfo storage ref)"}},"id":2740,"indexExpression":{"expression":{"arguments":[{"id":2737,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2729,"src":"4274:5:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2736,"name":"_readMetadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"4260:13:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$_t_struct$_ResourceMetadata_$1053_memory_ptr_$","typeString":"function (string memory) view returns (struct ResourceMetadata memory)"}},"id":2738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4260:20:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"}},"id":2739,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4281:6:15","memberName":"header","nodeType":"MemberAccess","referencedDeclaration":1052,"src":"4260:27:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4253:35:15","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_storage","typeString":"struct HeaderInfo storage ref"}},"functionReturnParameters":2734,"id":2741,"nodeType":"Return","src":"4246:42:15"}]},"documentation":{"id":2727,"nodeType":"StructuredDocumentation","src":"3906:215:15","text":"@notice Retrieves header information by its address\n @dev Internal view function to access header mapping\n @param _path The path of the resource\n @return HeaderInfo The header information"},"id":2743,"implemented":true,"kind":"function","modifiers":[],"name":"_readHeader","nameLocation":"4136:11:15","nodeType":"FunctionDefinition","parameters":{"id":2730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2729,"mutability":"mutable","name":"_path","nameLocation":"4172:5:15","nodeType":"VariableDeclaration","scope":2743,"src":"4158:19:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2728,"name":"string","nodeType":"ElementaryTypeName","src":"4158:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4147:37:15"},"returnParameters":{"id":2734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2733,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2743,"src":"4216:17:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo"},"typeName":{"id":2732,"nodeType":"UserDefinedTypeName","pathNode":{"id":2731,"name":"HeaderInfo","nameLocations":["4216:10:15"],"nodeType":"IdentifierPath","referencedDeclaration":1022,"src":"4216:10:15"},"referencedDeclaration":1022,"src":"4216:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_storage_ptr","typeString":"struct HeaderInfo"}},"visibility":"internal"}],"src":"4215:19:15"},"scope":3287,"src":"4127:169:15","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":2805,"nodeType":"Block","src":"4395:2315:15","statements":[{"assignments":[2752],"declarations":[{"constant":false,"id":2752,"mutability":"mutable","name":"_redirectCode","nameLocation":"5957:13:15","nodeType":"VariableDeclaration","scope":2805,"src":"5950:20:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":2751,"name":"uint16","nodeType":"ElementaryTypeName","src":"5950:6:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"id":2756,"initialValue":{"expression":{"expression":{"id":2753,"name":"_header","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2748,"src":"5973:7:15","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"}},"id":2754,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5981:8:15","memberName":"redirect","nodeType":"MemberAccess","referencedDeclaration":1021,"src":"5973:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_Redirect_$1008_memory_ptr","typeString":"struct Redirect memory"}},"id":2755,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5990:4:15","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":1004,"src":"5973:21:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"VariableDeclarationStatement","src":"5950:44:15"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":2759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2757,"name":"_redirectCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2752,"src":"6009:13:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":2758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6025:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6009:17:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":2762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2760,"name":"_redirectCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2752,"src":"6031:13:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"333030","id":2761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6047:3:15","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"},"src":"6031:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":2765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2763,"name":"_redirectCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2752,"src":"6054:13:15","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"333130","id":2764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6070:3:15","typeDescriptions":{"typeIdentifier":"t_rational_310_by_1","typeString":"int_const 310"},"value":"310"},"src":"6054:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6031:42:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":2767,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6030:44:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6009:65:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2774,"nodeType":"IfStatement","src":"6005:127:15","trueBody":{"id":2773,"nodeType":"Block","src":"6076:56:15","statements":[{"errorCall":{"arguments":[{"id":2770,"name":"_header","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2748,"src":"6112:7:15","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"}],"id":2769,"name":"InvalidHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":878,"src":"6098:13:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_struct$_HeaderInfo_$1022_memory_ptr_$returns$_t_error_$","typeString":"function (struct HeaderInfo memory) pure returns (error)"}},"id":2771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6098:22:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":2772,"nodeType":"RevertStatement","src":"6091:29:15"}]}},{"assignments":[2776],"declarations":[{"constant":false,"id":2776,"mutability":"mutable","name":"_origins","nameLocation":"6226:8:15","nodeType":"VariableDeclaration","scope":2805,"src":"6220:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2775,"name":"uint8","nodeType":"ElementaryTypeName","src":"6220:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":2784,"initialValue":{"arguments":[{"expression":{"expression":{"expression":{"id":2779,"name":"_header","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2748,"src":"6243:7:15","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"}},"id":2780,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6251:4:15","memberName":"cors","nodeType":"MemberAccess","referencedDeclaration":1017,"src":"6243:12:15","typeDescriptions":{"typeIdentifier":"t_struct$_CORSPolicy_$1000_memory_ptr","typeString":"struct CORSPolicy memory"}},"id":2781,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6256:7:15","memberName":"origins","nodeType":"MemberAccess","referencedDeclaration":992,"src":"6243:20:15","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":2782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6264:6:15","memberName":"length","nodeType":"MemberAccess","src":"6243:27:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2778,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6237:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2777,"name":"uint8","nodeType":"ElementaryTypeName","src":"6237:5:15","typeDescriptions":{}}},"id":2783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6237:34:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"6220:51:15"},{"condition":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":2788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2785,"name":"_origins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2776,"src":"6286:8:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":2786,"name":"maxMethods_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1306,"src":"6298:11:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint16_$","typeString":"function () pure returns (uint16)"}},"id":2787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6298:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"6286:25:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2794,"nodeType":"IfStatement","src":"6282:333:15","trueBody":{"id":2793,"nodeType":"Block","src":"6313:302:15","statements":[{"errorCall":{"arguments":[{"id":2790,"name":"_header","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2748,"src":"6595:7:15","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"}],"id":2789,"name":"InvalidHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":878,"src":"6581:13:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_struct$_HeaderInfo_$1022_memory_ptr_$returns$_t_error_$","typeString":"function (struct HeaderInfo memory) pure returns (error)"}},"id":2791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6581:22:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":2792,"nodeType":"RevertStatement","src":"6574:29:15"}]}},{"expression":{"id":2799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2795,"name":"header","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2689,"src":"6625:6:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_HeaderInfo_$1022_storage_$","typeString":"mapping(bytes32 => struct HeaderInfo storage ref)"}},"id":2797,"indexExpression":{"id":2796,"name":"_headerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2745,"src":"6632:14:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6625:22:15","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_storage","typeString":"struct HeaderInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2798,"name":"_header","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2748,"src":"6650:7:15","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"}},"src":"6625:32:15","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_storage","typeString":"struct HeaderInfo storage ref"}},"id":2800,"nodeType":"ExpressionStatement","src":"6625:32:15"},{"eventCall":{"arguments":[{"id":2802,"name":"_headerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2745,"src":"6687:14:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2801,"name":"HeaderUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":845,"src":"6673:13:15","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":2803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6673:29:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2804,"nodeType":"EmitStatement","src":"6668:34:15"}]},"id":2806,"implemented":true,"kind":"function","modifiers":[],"name":"_updateHeader","nameLocation":"4313:13:15","nodeType":"FunctionDefinition","parameters":{"id":2749,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2745,"mutability":"mutable","name":"_headerAddress","nameLocation":"4335:14:15","nodeType":"VariableDeclaration","scope":2806,"src":"4327:22:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2744,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4327:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2748,"mutability":"mutable","name":"_header","nameLocation":"4369:7:15","nodeType":"VariableDeclaration","scope":2806,"src":"4351:25:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo"},"typeName":{"id":2747,"nodeType":"UserDefinedTypeName","pathNode":{"id":2746,"name":"HeaderInfo","nameLocations":["4351:10:15"],"nodeType":"IdentifierPath","referencedDeclaration":1022,"src":"4351:10:15"},"referencedDeclaration":1022,"src":"4351:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_storage_ptr","typeString":"struct HeaderInfo"}},"visibility":"internal"}],"src":"4326:51:15"},"returnParameters":{"id":2750,"nodeType":"ParameterList","parameters":[],"src":"4395:0:15"},"scope":3287,"src":"4304:2406:15","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2821,"nodeType":"Block","src":"7462:480:15","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":2816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7922:1:15","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":2815,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7914:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":2814,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7914:7:15","typeDescriptions":{}}},"id":2817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7914:10:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2818,"name":"_header","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2810,"src":"7926:7:15","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"}],"id":2813,"name":"_updateHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2806,"src":"7900:13:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_struct$_HeaderInfo_$1022_memory_ptr_$returns$__$","typeString":"function (bytes32,struct HeaderInfo memory)"}},"id":2819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7900:34:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2820,"nodeType":"ExpressionStatement","src":"7900:34:15"}]},"documentation":{"id":2807,"nodeType":"StructuredDocumentation","src":"7220:165:15","text":"@notice Sets the default header information\n @dev Default header is stored at bytes32(0)\n @param _header The header information to use as default"},"id":2822,"implemented":true,"kind":"function","modifiers":[],"name":"_setDefaultHeader","nameLocation":"7400:17:15","nodeType":"FunctionDefinition","parameters":{"id":2811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2810,"mutability":"mutable","name":"_header","nameLocation":"7436:7:15","nodeType":"VariableDeclaration","scope":2822,"src":"7418:25:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo"},"typeName":{"id":2809,"nodeType":"UserDefinedTypeName","pathNode":{"id":2808,"name":"HeaderInfo","nameLocations":["7418:10:15"],"nodeType":"IdentifierPath","referencedDeclaration":1022,"src":"7418:10:15"},"referencedDeclaration":1022,"src":"7418:10:15","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_storage_ptr","typeString":"struct HeaderInfo"}},"visibility":"internal"}],"src":"7417:27:15"},"returnParameters":{"id":2812,"nodeType":"ParameterList","parameters":[],"src":"7462:0:15"},"scope":3287,"src":"7391:551:15","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2837,"nodeType":"Block","src":"8929:46:15","statements":[{"expression":{"id":2835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2831,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2829,"src":"8940:9:15","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":2832,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2695,"src":"8952:8:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_ResourceMetadata_$1053_storage_$","typeString":"mapping(string memory => struct ResourceMetadata storage ref)"}},"id":2834,"indexExpression":{"id":2833,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2825,"src":"8961:5:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8952:15:15","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_storage","typeString":"struct ResourceMetadata storage ref"}},"src":"8940:27:15","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"}},"id":2836,"nodeType":"ExpressionStatement","src":"8940:27:15"}]},"documentation":{"id":2823,"nodeType":"StructuredDocumentation","src":"8575:222:15","text":"@notice Retrieves metadata for a resource path\n @dev Internal view function to access metadata mapping\n @param _path Path of the resource\n @return _metadata Metadata information for the resource"},"id":2838,"implemented":true,"kind":"function","modifiers":[],"name":"_readMetadata","nameLocation":"8812:13:15","nodeType":"FunctionDefinition","parameters":{"id":2826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2825,"mutability":"mutable","name":"_path","nameLocation":"8850:5:15","nodeType":"VariableDeclaration","scope":2838,"src":"8836:19:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2824,"name":"string","nodeType":"ElementaryTypeName","src":"8836:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8825:37:15"},"returnParameters":{"id":2830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2829,"mutability":"mutable","name":"_metadata","nameLocation":"8918:9:15","nodeType":"VariableDeclaration","scope":2838,"src":"8894:33:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata"},"typeName":{"id":2828,"nodeType":"UserDefinedTypeName","pathNode":{"id":2827,"name":"ResourceMetadata","nameLocations":["8894:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":1053,"src":"8894:16:15"},"referencedDeclaration":1053,"src":"8894:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_storage_ptr","typeString":"struct ResourceMetadata"}},"visibility":"internal"}],"src":"8893:35:15"},"scope":3287,"src":"8803:172:15","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":2881,"nodeType":"Block","src":"9247:961:15","statements":[{"expression":{"id":2850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":2844,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2695,"src":"9292:8:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_ResourceMetadata_$1053_storage_$","typeString":"mapping(string memory => struct ResourceMetadata storage ref)"}},"id":2846,"indexExpression":{"id":2845,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2841,"src":"9301:5:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9292:15:15","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_storage","typeString":"struct ResourceMetadata storage ref"}},"id":2847,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9308:12:15","memberName":"lastModified","nodeType":"MemberAccess","referencedDeclaration":1049,"src":"9292:28:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":2848,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"9323:5:15","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":2849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9329:9:15","memberName":"timestamp","nodeType":"MemberAccess","src":"9323:15:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9292:46:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2851,"nodeType":"ExpressionStatement","src":"9292:46:15"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":2852,"name":"resource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2701,"src":"9353:8:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_array$_t_bytes32_$dyn_storage_$","typeString":"mapping(string memory => bytes32[] storage ref)"}},"id":2854,"indexExpression":{"id":2853,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2841,"src":"9362:5:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9353:15:15","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":2855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9369:6:15","memberName":"length","nodeType":"MemberAccess","src":"9353:22:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9378:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9353:26:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2879,"nodeType":"Block","src":"9439:762:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":2865,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2695,"src":"9458:8:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_ResourceMetadata_$1053_storage_$","typeString":"mapping(string memory => struct ResourceMetadata storage ref)"}},"id":2867,"indexExpression":{"id":2866,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2841,"src":"9467:5:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9458:15:15","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_storage","typeString":"struct ResourceMetadata storage ref"}},"id":2868,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9474:7:15","memberName":"version","nodeType":"MemberAccess","referencedDeclaration":1046,"src":"9458:23:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9484:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9458:27:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2878,"nodeType":"IfStatement","src":"9454:736:15","trueBody":{"id":2877,"nodeType":"Block","src":"9487:703:15","statements":[{"expression":{"id":2875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10149:25:15","subExpression":{"expression":{"baseExpression":{"id":2871,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2695,"src":"10149:8:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_ResourceMetadata_$1053_storage_$","typeString":"mapping(string memory => struct ResourceMetadata storage ref)"}},"id":2873,"indexExpression":{"id":2872,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2841,"src":"10158:5:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10149:15:15","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_storage","typeString":"struct ResourceMetadata storage ref"}},"id":2874,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10165:7:15","memberName":"version","nodeType":"MemberAccess","referencedDeclaration":1046,"src":"10149:23:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2876,"nodeType":"ExpressionStatement","src":"10149:25:15"}]}}]},"id":2880,"nodeType":"IfStatement","src":"9349:852:15","trueBody":{"id":2864,"nodeType":"Block","src":"9381:52:15","statements":[{"expression":{"id":2862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9396:25:15","subExpression":{"expression":{"baseExpression":{"id":2858,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2695,"src":"9396:8:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_ResourceMetadata_$1053_storage_$","typeString":"mapping(string memory => struct ResourceMetadata storage ref)"}},"id":2860,"indexExpression":{"id":2859,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2841,"src":"9405:5:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9396:15:15","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_storage","typeString":"struct ResourceMetadata storage ref"}},"id":2861,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"9412:7:15","memberName":"version","nodeType":"MemberAccess","referencedDeclaration":1046,"src":"9396:23:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2863,"nodeType":"ExpressionStatement","src":"9396:25:15"}]}}]},"documentation":{"id":2839,"nodeType":"StructuredDocumentation","src":"8983:190:15","text":"@notice Updates timestamp and version for resource metadata\n @dev Internal helper to handle common metadata update operations\n @param _path Path of the resource to update"},"id":2882,"implemented":true,"kind":"function","modifiers":[],"name":"_updateMetadataStats","nameLocation":"9188:20:15","nodeType":"FunctionDefinition","parameters":{"id":2842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2841,"mutability":"mutable","name":"_path","nameLocation":"9223:5:15","nodeType":"VariableDeclaration","scope":2882,"src":"9209:19:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2840,"name":"string","nodeType":"ElementaryTypeName","src":"9209:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9208:21:15"},"returnParameters":{"id":2843,"nodeType":"ParameterList","parameters":[],"src":"9247:0:15"},"scope":3287,"src":"9179:1029:15","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2932,"nodeType":"Block","src":"10566:643:15","statements":[{"expression":{"arguments":[{"id":2892,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2885,"src":"10639:5:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2891,"name":"_updateMetadataStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2882,"src":"10618:20:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":2893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10618:27:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2894,"nodeType":"ExpressionStatement","src":"10618:27:15"},{"expression":{"id":2902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2895,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2888,"src":"10697:9:15","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"}},"id":2897,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10707:4:15","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":1043,"src":"10697:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":2898,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2695,"src":"10714:8:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_ResourceMetadata_$1053_storage_$","typeString":"mapping(string memory => struct ResourceMetadata storage ref)"}},"id":2900,"indexExpression":{"id":2899,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2885,"src":"10723:5:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10714:15:15","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_storage","typeString":"struct ResourceMetadata storage ref"}},"id":2901,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10730:4:15","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":1043,"src":"10714:20:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10697:37:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2903,"nodeType":"ExpressionStatement","src":"10697:37:15"},{"expression":{"id":2911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2904,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2888,"src":"10745:9:15","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"}},"id":2906,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10755:7:15","memberName":"version","nodeType":"MemberAccess","referencedDeclaration":1046,"src":"10745:17:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":2907,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2695,"src":"10765:8:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_ResourceMetadata_$1053_storage_$","typeString":"mapping(string memory => struct ResourceMetadata storage ref)"}},"id":2909,"indexExpression":{"id":2908,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2885,"src":"10774:5:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10765:15:15","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_storage","typeString":"struct ResourceMetadata storage ref"}},"id":2910,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10781:7:15","memberName":"version","nodeType":"MemberAccess","referencedDeclaration":1046,"src":"10765:23:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10745:43:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2912,"nodeType":"ExpressionStatement","src":"10745:43:15"},{"expression":{"id":2920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2913,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2888,"src":"10799:9:15","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"}},"id":2915,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"10809:12:15","memberName":"lastModified","nodeType":"MemberAccess","referencedDeclaration":1049,"src":"10799:22:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"baseExpression":{"id":2916,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2695,"src":"10824:8:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_ResourceMetadata_$1053_storage_$","typeString":"mapping(string memory => struct ResourceMetadata storage ref)"}},"id":2918,"indexExpression":{"id":2917,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2885,"src":"10833:5:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10824:15:15","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_storage","typeString":"struct ResourceMetadata storage ref"}},"id":2919,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10840:12:15","memberName":"lastModified","nodeType":"MemberAccess","referencedDeclaration":1049,"src":"10824:28:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10799:53:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2921,"nodeType":"ExpressionStatement","src":"10799:53:15"},{"expression":{"id":2926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2922,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2695,"src":"11136:8:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_ResourceMetadata_$1053_storage_$","typeString":"mapping(string memory => struct ResourceMetadata storage ref)"}},"id":2924,"indexExpression":{"id":2923,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2885,"src":"11145:5:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11136:15:15","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_storage","typeString":"struct ResourceMetadata storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2925,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2888,"src":"11154:9:15","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"}},"src":"11136:27:15","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_storage","typeString":"struct ResourceMetadata storage ref"}},"id":2927,"nodeType":"ExpressionStatement","src":"11136:27:15"},{"eventCall":{"arguments":[{"id":2929,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2885,"src":"11195:5:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2928,"name":"MetadataUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":850,"src":"11179:15:15","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":2930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11179:22:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2931,"nodeType":"EmitStatement","src":"11174:27:15"}]},"documentation":{"id":2883,"nodeType":"StructuredDocumentation","src":"10216:220:15","text":"@notice Updates metadata for a resource\n @dev Preserves calculated fields like size, version, and timestamp\n @param _path Path of the resource to update\n @param _metadata New metadata to store"},"id":2933,"implemented":true,"kind":"function","modifiers":[],"name":"_updateMetadata","nameLocation":"10451:15:15","nodeType":"FunctionDefinition","parameters":{"id":2889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2885,"mutability":"mutable","name":"_path","nameLocation":"10491:5:15","nodeType":"VariableDeclaration","scope":2933,"src":"10477:19:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2884,"name":"string","nodeType":"ElementaryTypeName","src":"10477:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2888,"mutability":"mutable","name":"_metadata","nameLocation":"10532:9:15","nodeType":"VariableDeclaration","scope":2933,"src":"10508:33:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata"},"typeName":{"id":2887,"nodeType":"UserDefinedTypeName","pathNode":{"id":2886,"name":"ResourceMetadata","nameLocations":["10508:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":1053,"src":"10508:16:15"},"referencedDeclaration":1053,"src":"10508:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_storage_ptr","typeString":"struct ResourceMetadata"}},"visibility":"internal"}],"src":"10466:82:15"},"returnParameters":{"id":2890,"nodeType":"ParameterList","parameters":[],"src":"10566:0:15"},"scope":3287,"src":"10442:767:15","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2955,"nodeType":"Block","src":"11530:643:15","statements":[{"expression":{"arguments":[{"id":2940,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2936,"src":"12064:5:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":2941,"name":"zeroMetadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2644,"src":"12071:12:15","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_storage","typeString":"struct ResourceMetadata storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_storage","typeString":"struct ResourceMetadata storage ref"}],"id":2939,"name":"_updateMetadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2933,"src":"12048:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_ResourceMetadata_$1053_memory_ptr_$returns$__$","typeString":"function (string memory,struct ResourceMetadata memory)"}},"id":2942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12048:36:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2943,"nodeType":"ExpressionStatement","src":"12048:36:15"},{"expression":{"id":2949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":2944,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2695,"src":"12095:8:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_ResourceMetadata_$1053_storage_$","typeString":"mapping(string memory => struct ResourceMetadata storage ref)"}},"id":2946,"indexExpression":{"id":2945,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2936,"src":"12104:5:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12095:15:15","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_storage","typeString":"struct ResourceMetadata storage ref"}},"id":2947,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12111:12:15","memberName":"lastModified","nodeType":"MemberAccess","referencedDeclaration":1049,"src":"12095:28:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":2948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12126:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12095:32:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2950,"nodeType":"ExpressionStatement","src":"12095:32:15"},{"eventCall":{"arguments":[{"id":2952,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2936,"src":"12159:5:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2951,"name":"MetadataDeleted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":855,"src":"12143:15:15","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":2953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12143:22:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2954,"nodeType":"EmitStatement","src":"12138:27:15"}]},"documentation":{"id":2934,"nodeType":"StructuredDocumentation","src":"11221:224:15","text":"@notice Deletes metadata for a resource\n @dev Sets metadata to zero values and emits event\n @param _path Path of the resource to delete\n @dev this function should only be used by _deleteResource()"},"id":2956,"implemented":true,"kind":"function","modifiers":[],"name":"_deleteMetadata","nameLocation":"11460:15:15","nodeType":"FunctionDefinition","parameters":{"id":2937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2936,"mutability":"mutable","name":"_path","nameLocation":"11500:5:15","nodeType":"VariableDeclaration","scope":2956,"src":"11486:19:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2935,"name":"string","nodeType":"ElementaryTypeName","src":"11486:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"11475:37:15"},"returnParameters":{"id":2938,"nodeType":"ParameterList","parameters":[],"src":"11530:0:15"},"scope":3287,"src":"11451:722:15","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":2968,"nodeType":"Block","src":"12313:48:15","statements":[{"expression":{"expression":{"baseExpression":{"id":2963,"name":"resource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2701,"src":"12331:8:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_array$_t_bytes32_$dyn_storage_$","typeString":"mapping(string memory => bytes32[] storage ref)"}},"id":2965,"indexExpression":{"id":2964,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2958,"src":"12340:5:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12331:15:15","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":2966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12347:6:15","memberName":"length","nodeType":"MemberAccess","src":"12331:22:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2962,"id":2967,"nodeType":"Return","src":"12324:29:15"}]},"id":2969,"implemented":true,"kind":"function","modifiers":[],"name":"_resourceDataPoints","nameLocation":"12232:19:15","nodeType":"FunctionDefinition","parameters":{"id":2959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2958,"mutability":"mutable","name":"_path","nameLocation":"12266:5:15","nodeType":"VariableDeclaration","scope":2969,"src":"12252:19:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2957,"name":"string","nodeType":"ElementaryTypeName","src":"12252:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12251:21:15"},"returnParameters":{"id":2962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2961,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2969,"src":"12304:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2960,"name":"uint256","nodeType":"ElementaryTypeName","src":"12304:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12303:9:15"},"scope":3287,"src":"12223:138:15","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":3014,"nodeType":"Block","src":"12896:388:15","statements":[{"expression":{"id":2987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2980,"name":"_dataPointAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2978,"src":"12909:17:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":2984,"name":"_dataRegistration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2975,"src":"12952:17:15","typeDescriptions":{"typeIdentifier":"t_struct$_DataRegistration_$1064_memory_ptr","typeString":"struct DataRegistration memory"}},"id":2985,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12970:4:15","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":1057,"src":"12952:22:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":2981,"name":"DPS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2673,"src":"12929:3:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_IDataPointStorage_$573_$","typeString":"function () view returns (contract IDataPointStorage)"}},"id":2982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12929:5:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDataPointStorage_$573","typeString":"contract IDataPointStorage"}},"id":2983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12935:16:15","memberName":"calculateAddress","nodeType":"MemberAccess","referencedDeclaration":550,"src":"12929:22:15","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure external returns (bytes32)"}},"id":2986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12929:46:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12909:66:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2988,"nodeType":"ExpressionStatement","src":"12909:66:15"},{"expression":{"arguments":[{"expression":{"id":2997,"name":"_dataRegistration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2975,"src":"13077:17:15","typeDescriptions":{"typeIdentifier":"t_struct$_DataRegistration_$1064_memory_ptr","typeString":"struct DataRegistration memory"}},"id":2998,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13095:4:15","memberName":"data","nodeType":"MemberAccess","referencedDeclaration":1057,"src":"13077:22:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":2999,"name":"_dataRegistration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2975,"src":"13114:17:15","typeDescriptions":{"typeIdentifier":"t_struct$_DataRegistration_$1064_memory_ptr","typeString":"struct DataRegistration memory"}},"id":3000,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13132:9:15","memberName":"publisher","nodeType":"MemberAccess","referencedDeclaration":1063,"src":"13114:27:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":2989,"name":"DPR_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2661,"src":"12988:4:15","typeDescriptions":{"typeIdentifier":"t_contract$_IDataPointRegistry_$534","typeString":"contract IDataPointRegistry"}},"id":2991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12993:17:15","memberName":"registerDataPoint","nodeType":"MemberAccess","referencedDeclaration":533,"src":"12988:22:15","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_address_$returns$_t_bytes32_$","typeString":"function (bytes memory,address) payable external returns (bytes32)"}},"id":2996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"arguments":[{"id":2994,"name":"_dataPointAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2978,"src":"13043:17:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2992,"name":"DPR_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2661,"src":"13018:4:15","typeDescriptions":{"typeIdentifier":"t_contract$_IDataPointRegistry_$534","typeString":"contract IDataPointRegistry"}},"id":2993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13023:19:15","memberName":"getDataPointRoyalty","nodeType":"MemberAccess","referencedDeclaration":497,"src":"13018:24:15","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":2995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13018:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"12988:74:15","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_address_$returns$_t_bytes32_$value","typeString":"function (bytes memory,address) payable external returns (bytes32)"}},"id":3001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12988:164:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3002,"nodeType":"ExpressionStatement","src":"12988:164:15"},{"eventCall":{"arguments":[{"id":3004,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2972,"src":"13186:5:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":3003,"name":"ResourceCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":860,"src":"13170:15:15","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":3005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13170:22:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3006,"nodeType":"EmitStatement","src":"13165:27:15"},{"expression":{"arguments":[{"id":3008,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2972,"src":"13221:5:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":3009,"name":"_dataPointAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2978,"src":"13228:17:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":3010,"name":"_dataRegistration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2975,"src":"13247:17:15","typeDescriptions":{"typeIdentifier":"t_struct$_DataRegistration_$1064_memory_ptr","typeString":"struct DataRegistration memory"}},"id":3011,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13265:10:15","memberName":"chunkIndex","nodeType":"MemberAccess","referencedDeclaration":1060,"src":"13247:28:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3007,"name":"_updateResource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3212,"src":"13205:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (string memory,bytes32,uint256)"}},"id":3012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13205:71:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3013,"nodeType":"ExpressionStatement","src":"13205:71:15"}]},"documentation":{"id":2970,"nodeType":"StructuredDocumentation","src":"12373:350:15","text":"@notice Creates a new data point for a resource\n @dev Registers the data point in DPR and updates resource mapping\n @param _path Path where the resource will be stored\n @param _dataRegistration Registration data including content and publisher\n @return _dataPointAddress The address of the newly created data point"},"id":3015,"implemented":true,"kind":"function","modifiers":[],"name":"_createResource","nameLocation":"12738:15:15","nodeType":"FunctionDefinition","parameters":{"id":2976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2972,"mutability":"mutable","name":"_path","nameLocation":"12778:5:15","nodeType":"VariableDeclaration","scope":3015,"src":"12764:19:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2971,"name":"string","nodeType":"ElementaryTypeName","src":"12764:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2975,"mutability":"mutable","name":"_dataRegistration","nameLocation":"12818:17:15","nodeType":"VariableDeclaration","scope":3015,"src":"12794:41:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DataRegistration_$1064_memory_ptr","typeString":"struct DataRegistration"},"typeName":{"id":2974,"nodeType":"UserDefinedTypeName","pathNode":{"id":2973,"name":"DataRegistration","nameLocations":["12794:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":1064,"src":"12794:16:15"},"referencedDeclaration":1064,"src":"12794:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_DataRegistration_$1064_storage_ptr","typeString":"struct DataRegistration"}},"visibility":"internal"}],"src":"12753:89:15"},"returnParameters":{"id":2979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2978,"mutability":"mutable","name":"_dataPointAddress","nameLocation":"12877:17:15","nodeType":"VariableDeclaration","scope":3015,"src":"12869:25:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2977,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12869:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"12868:27:15"},"scope":3287,"src":"12729:555:15","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3107,"nodeType":"Block","src":"13683:769:15","statements":[{"assignments":[3028],"declarations":[{"constant":false,"id":3028,"mutability":"mutable","name":"_totalChunks","nameLocation":"13769:12:15","nodeType":"VariableDeclaration","scope":3107,"src":"13761:20:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3027,"name":"uint256","nodeType":"ElementaryTypeName","src":"13761:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3032,"initialValue":{"arguments":[{"id":3030,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3018,"src":"13804:5:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":3029,"name":"_resourceDataPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2969,"src":"13784:19:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$_t_uint256_$","typeString":"function (string memory) view returns (uint256)"}},"id":3031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13784:26:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13761:49:15"},{"assignments":[3035],"declarations":[{"constant":false,"id":3035,"mutability":"mutable","name":"_normalizedRange","nameLocation":"13834:16:15","nodeType":"VariableDeclaration","scope":3107,"src":"13821:29:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range"},"typeName":{"id":3034,"nodeType":"UserDefinedTypeName","pathNode":{"id":3033,"name":"Range","nameLocations":["13821:5:15"],"nodeType":"IdentifierPath","referencedDeclaration":1241,"src":"13821:5:15"},"referencedDeclaration":1241,"src":"13821:5:15","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_storage_ptr","typeString":"struct Range"}},"visibility":"internal"}],"id":3040,"initialValue":{"arguments":[{"id":3037,"name":"_range","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3021,"src":"13869:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range memory"}},{"id":3038,"name":"_totalChunks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3028,"src":"13877:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3036,"name":"normalizeRange_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1434,"src":"13853:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Range_$1241_memory_ptr_$_t_uint256_$returns$_t_struct$_Range_$1241_memory_ptr_$","typeString":"function (struct Range memory,uint256) pure returns (struct Range memory)"}},"id":3039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13853:37:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range memory"}},"nodeType":"VariableDeclarationStatement","src":"13821:69:15"},{"assignments":[3042],"declarations":[{"constant":false,"id":3042,"mutability":"mutable","name":"_resourceLength","nameLocation":"13909:15:15","nodeType":"VariableDeclaration","scope":3107,"src":"13901:23:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3041,"name":"uint256","nodeType":"ElementaryTypeName","src":"13901:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3053,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3045,"name":"_normalizedRange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3035,"src":"13935:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range memory"}},"id":3046,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13952:3:15","memberName":"end","nodeType":"MemberAccess","referencedDeclaration":1240,"src":"13935:20:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":3047,"name":"_normalizedRange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3035,"src":"13958:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range memory"}},"id":3048,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13975:5:15","memberName":"start","nodeType":"MemberAccess","referencedDeclaration":1237,"src":"13958:22:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"13935:45:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":3050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13983:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13935:49:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":3044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13927:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3043,"name":"uint256","nodeType":"ElementaryTypeName","src":"13927:7:15","typeDescriptions":{}}},"id":3052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13927:58:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13901:84:15"},{"assignments":[3055],"declarations":[{"constant":false,"id":3055,"mutability":"mutable","name":"_returnLength","nameLocation":"14004:13:15","nodeType":"VariableDeclaration","scope":3107,"src":"13996:21:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3054,"name":"uint256","nodeType":"ElementaryTypeName","src":"13996:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3062,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3056,"name":"_resourceLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3042,"src":"14020:15:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":3057,"name":"CHUNK_RESPONSE_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":832,"src":"14038:20:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14020:38:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":3060,"name":"_resourceLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3042,"src":"14084:15:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"14020:79:15","trueExpression":{"id":3059,"name":"CHUNK_RESPONSE_LIMIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":832,"src":"14061:20:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13996:103:15"},{"assignments":[3067],"declarations":[{"constant":false,"id":3067,"mutability":"mutable","name":"_dataPoints","nameLocation":"14127:11:15","nodeType":"VariableDeclaration","scope":3107,"src":"14110:28:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3065,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14110:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3066,"nodeType":"ArrayTypeName","src":"14110:9:15","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":3073,"initialValue":{"arguments":[{"id":3071,"name":"_returnLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3055,"src":"14155:13:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3070,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14141:13:15","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":3068,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14145:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3069,"nodeType":"ArrayTypeName","src":"14145:9:15","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":3072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14141:28:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"14110:59:15"},{"body":{"id":3100,"nodeType":"Block","src":"14224:96:15","statements":[{"expression":{"id":3098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3084,"name":"_dataPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3067,"src":"14239:11:15","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":3086,"indexExpression":{"id":3085,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3075,"src":"14251:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14239:14:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"baseExpression":{"id":3087,"name":"resource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2701,"src":"14256:8:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_array$_t_bytes32_$dyn_storage_$","typeString":"mapping(string memory => bytes32[] storage ref)"}},"id":3089,"indexExpression":{"id":3088,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3018,"src":"14265:5:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14256:15:15","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":3097,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":3092,"name":"_normalizedRange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3035,"src":"14280:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range memory"}},"id":3093,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14297:5:15","memberName":"start","nodeType":"MemberAccess","referencedDeclaration":1237,"src":"14280:22:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":3091,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14272:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3090,"name":"uint256","nodeType":"ElementaryTypeName","src":"14272:7:15","typeDescriptions":{}}},"id":3094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14272:31:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":3095,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3075,"src":"14306:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14272:35:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14256:52:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"14239:69:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3099,"nodeType":"ExpressionStatement","src":"14239:69:15"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3078,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3075,"src":"14200:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3079,"name":"_returnLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3055,"src":"14204:13:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14200:17:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3101,"initializationExpression":{"assignments":[3075],"declarations":[{"constant":false,"id":3075,"mutability":"mutable","name":"i","nameLocation":"14193:1:15","nodeType":"VariableDeclaration","scope":3101,"src":"14185:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3074,"name":"uint256","nodeType":"ElementaryTypeName","src":"14185:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3077,"initialValue":{"hexValue":"30","id":3076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14197:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14185:13:15"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":3082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14219:3:15","subExpression":{"id":3081,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3075,"src":"14219:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3083,"nodeType":"ExpressionStatement","src":"14219:3:15"},"nodeType":"ForStatement","src":"14180:140:15"},{"expression":{"arguments":[{"id":3103,"name":"_dataPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3067,"src":"14381:11:15","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},{"id":3104,"name":"_totalChunks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3028,"src":"14420:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3102,"name":"ResourceResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":885,"src":"14337:16:15","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ResourceResponse_$885_storage_ptr_$","typeString":"type(struct ResourceResponse storage pointer)"}},"id":3105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["14369:10:15","14407:11:15"],"names":["dataPoints","totalChunks"],"nodeType":"FunctionCall","src":"14337:107:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ResourceResponse_$885_memory_ptr","typeString":"struct ResourceResponse memory"}},"functionReturnParameters":3026,"id":3106,"nodeType":"Return","src":"14330:114:15"}]},"documentation":{"id":3016,"nodeType":"StructuredDocumentation","src":"13292:239:15","text":"@notice Retrieves all data point addresses for a resource\n @dev Internal view function to access resource mapping\n @param _path Path of the resource\n @return Array of data point addresses comprising the resource"},"id":3108,"implemented":true,"kind":"function","modifiers":[],"name":"_readResource","nameLocation":"13546:13:15","nodeType":"FunctionDefinition","parameters":{"id":3022,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3018,"mutability":"mutable","name":"_path","nameLocation":"13584:5:15","nodeType":"VariableDeclaration","scope":3108,"src":"13570:19:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3017,"name":"string","nodeType":"ElementaryTypeName","src":"13570:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3021,"mutability":"mutable","name":"_range","nameLocation":"13613:6:15","nodeType":"VariableDeclaration","scope":3108,"src":"13600:19:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range"},"typeName":{"id":3020,"nodeType":"UserDefinedTypeName","pathNode":{"id":3019,"name":"Range","nameLocations":["13600:5:15"],"nodeType":"IdentifierPath","referencedDeclaration":1241,"src":"13600:5:15"},"referencedDeclaration":1241,"src":"13600:5:15","typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_storage_ptr","typeString":"struct Range"}},"visibility":"internal"}],"src":"13559:67:15"},"returnParameters":{"id":3026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3025,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3108,"src":"13658:23:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceResponse_$885_memory_ptr","typeString":"struct ResourceResponse"},"typeName":{"id":3024,"nodeType":"UserDefinedTypeName","pathNode":{"id":3023,"name":"ResourceResponse","nameLocations":["13658:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":885,"src":"13658:16:15"},"referencedDeclaration":885,"src":"13658:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceResponse_$885_storage_ptr","typeString":"struct ResourceResponse"}},"visibility":"internal"}],"src":"13657:25:15"},"scope":3287,"src":"13537:915:15","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":3211,"nodeType":"Block","src":"14940:920:15","statements":[{"assignments":[3119],"declarations":[{"constant":false,"id":3119,"mutability":"mutable","name":"_resourceLength","nameLocation":"14959:15:15","nodeType":"VariableDeclaration","scope":3211,"src":"14951:23:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3118,"name":"uint256","nodeType":"ElementaryTypeName","src":"14951:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3123,"initialValue":{"arguments":[{"id":3121,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3111,"src":"14997:5:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":3120,"name":"_resourceDataPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2969,"src":"14977:19:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$_t_uint256_$","typeString":"function (string memory) view returns (uint256)"}},"id":3122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14977:26:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14951:52:15"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3124,"name":"_chunkIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3115,"src":"15018:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":3125,"name":"_resourceLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3119,"src":"15032:15:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15018:29:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3143,"name":"_chunkIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3115,"src":"15170:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":3144,"name":"_resourceLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3119,"src":"15185:15:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15170:30:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3199,"nodeType":"Block","src":"15383:379:15","statements":[{"expression":{"id":3189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":3165,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2695,"src":"15498:8:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_ResourceMetadata_$1053_storage_$","typeString":"mapping(string memory => struct ResourceMetadata storage ref)"}},"id":3167,"indexExpression":{"id":3166,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3111,"src":"15507:5:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15498:15:15","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_storage","typeString":"struct ResourceMetadata storage ref"}},"id":3168,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"15514:4:15","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":1043,"src":"15498:20:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":3169,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2695,"src":"15539:8:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_ResourceMetadata_$1053_storage_$","typeString":"mapping(string memory => struct ResourceMetadata storage ref)"}},"id":3171,"indexExpression":{"id":3170,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3111,"src":"15548:5:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15539:15:15","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_storage","typeString":"struct ResourceMetadata storage ref"}},"id":3172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15555:4:15","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":1043,"src":"15539:20:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[{"id":3176,"name":"_dataPointAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3113,"src":"15600:17:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":3173,"name":"DPS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2673,"src":"15580:3:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_IDataPointStorage_$573_$","typeString":"function () view returns (contract IDataPointStorage)"}},"id":3174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15580:5:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDataPointStorage_$573","typeString":"contract IDataPointStorage"}},"id":3175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15586:13:15","memberName":"dataPointSize","nodeType":"MemberAccess","referencedDeclaration":557,"src":"15580:19:15","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":3177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15580:38:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15539:79:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[{"baseExpression":{"baseExpression":{"id":3182,"name":"resource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2701,"src":"15658:8:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_array$_t_bytes32_$dyn_storage_$","typeString":"mapping(string memory => bytes32[] storage ref)"}},"id":3184,"indexExpression":{"id":3183,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3111,"src":"15667:5:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15658:15:15","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":3186,"indexExpression":{"id":3185,"name":"_chunkIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3115,"src":"15674:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15658:28:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":3179,"name":"DPS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2673,"src":"15638:3:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_IDataPointStorage_$573_$","typeString":"function () view returns (contract IDataPointStorage)"}},"id":3180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15638:5:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDataPointStorage_$573","typeString":"contract IDataPointStorage"}},"id":3181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15644:13:15","memberName":"dataPointSize","nodeType":"MemberAccess","referencedDeclaration":557,"src":"15638:19:15","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":3187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15638:49:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15539:148:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15498:189:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3190,"nodeType":"ExpressionStatement","src":"15498:189:15"},{"expression":{"id":3197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":3191,"name":"resource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2701,"src":"15702:8:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_array$_t_bytes32_$dyn_storage_$","typeString":"mapping(string memory => bytes32[] storage ref)"}},"id":3194,"indexExpression":{"id":3192,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3111,"src":"15711:5:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15702:15:15","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":3195,"indexExpression":{"id":3193,"name":"_chunkIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3115,"src":"15718:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15702:28:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3196,"name":"_dataPointAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3113,"src":"15733:17:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"15702:48:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3198,"nodeType":"ExpressionStatement","src":"15702:48:15"}]},"id":3200,"nodeType":"IfStatement","src":"15166:596:15","trueBody":{"id":3164,"nodeType":"Block","src":"15202:175:15","statements":[{"expression":{"arguments":[{"id":3150,"name":"_dataPointAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3113,"src":"15270:17:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"baseExpression":{"id":3146,"name":"resource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2701,"src":"15249:8:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_array$_t_bytes32_$dyn_storage_$","typeString":"mapping(string memory => bytes32[] storage ref)"}},"id":3148,"indexExpression":{"id":3147,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3111,"src":"15258:5:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15249:15:15","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":3149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15265:4:15","memberName":"push","nodeType":"MemberAccess","src":"15249:20:15","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":3151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15249:39:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3152,"nodeType":"ExpressionStatement","src":"15249:39:15"},{"expression":{"id":3162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":3153,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2695,"src":"15303:8:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_ResourceMetadata_$1053_storage_$","typeString":"mapping(string memory => struct ResourceMetadata storage ref)"}},"id":3155,"indexExpression":{"id":3154,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3111,"src":"15312:5:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15303:15:15","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_storage","typeString":"struct ResourceMetadata storage ref"}},"id":3156,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"15319:4:15","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":1043,"src":"15303:20:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":3160,"name":"_dataPointAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3113,"src":"15347:17:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":3157,"name":"DPS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2673,"src":"15327:3:15","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_contract$_IDataPointStorage_$573_$","typeString":"function () view returns (contract IDataPointStorage)"}},"id":3158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15327:5:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDataPointStorage_$573","typeString":"contract IDataPointStorage"}},"id":3159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15333:13:15","memberName":"dataPointSize","nodeType":"MemberAccess","referencedDeclaration":557,"src":"15327:19:15","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":3161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15327:38:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15303:62:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3163,"nodeType":"ExpressionStatement","src":"15303:62:15"}]}},"id":3201,"nodeType":"IfStatement","src":"15014:748:15","trueBody":{"id":3142,"nodeType":"Block","src":"15049:111:15","statements":[{"errorCall":{"arguments":[{"hexValue":"4f7574206f6620426f756e6473","id":3128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15076:15:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_f6f291dd7b3716f60112b675ea3e6f8513a7a585e9132e9f82751d445f328d0b","typeString":"literal_string \"Out of Bounds\""},"value":"Out of Bounds"},{"arguments":[{"hexValue":"30","id":3130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15099:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"arguments":[{"id":3133,"name":"_resourceLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3119,"src":"15109:15:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3132,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15102:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":3131,"name":"int256","nodeType":"ElementaryTypeName","src":"15102:6:15","typeDescriptions":{}}},"id":3134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15102:23:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":3129,"name":"Range","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1241,"src":"15093:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Range_$1241_storage_ptr_$","typeString":"type(struct Range storage pointer)"}},"id":3135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15093:33:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range memory"}},{"arguments":[{"id":3138,"name":"_chunkIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3115,"src":"15135:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3137,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15128:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":3136,"name":"int256","nodeType":"ElementaryTypeName","src":"15128:6:15","typeDescriptions":{}}},"id":3139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15128:19:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f6f291dd7b3716f60112b675ea3e6f8513a7a585e9132e9f82751d445f328d0b","typeString":"literal_string \"Out of Bounds\""},{"typeIdentifier":"t_struct$_Range_$1241_memory_ptr","typeString":"struct Range memory"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":3127,"name":"_416","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":944,"src":"15071:4:15","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$_t_struct$_Range_$1241_memory_ptr_$_t_int256_$returns$_t_error_$","typeString":"function (string memory,struct Range memory,int256) pure returns (error)"}},"id":3140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15071:77:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":3141,"nodeType":"RevertStatement","src":"15064:84:15"}]}},{"expression":{"arguments":[{"id":3203,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3111,"src":"15795:5:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":3202,"name":"_updateMetadataStats","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2882,"src":"15774:20:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":3204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15774:27:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3205,"nodeType":"ExpressionStatement","src":"15774:27:15"},{"eventCall":{"arguments":[{"id":3207,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3111,"src":"15833:5:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":3208,"name":"_chunkIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3115,"src":"15840:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3206,"name":"ResourceUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":867,"src":"15817:15:15","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256)"}},"id":3209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15817:35:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3210,"nodeType":"EmitStatement","src":"15812:40:15"}]},"documentation":{"id":3109,"nodeType":"StructuredDocumentation","src":"14460:329:15","text":"@notice Updates a specific chunk of a resource\n @dev Handles adding new chunks or updating existing ones, updates size calculation\n @param _path Path of the resource\n @param _dataPointAddress Address of the data point chunk\n @param _chunkIndex Index position of the chunk in the resource array"},"id":3212,"implemented":true,"kind":"function","modifiers":[],"name":"_updateResource","nameLocation":"14804:15:15","nodeType":"FunctionDefinition","parameters":{"id":3116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3111,"mutability":"mutable","name":"_path","nameLocation":"14844:5:15","nodeType":"VariableDeclaration","scope":3212,"src":"14830:19:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3110,"name":"string","nodeType":"ElementaryTypeName","src":"14830:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3113,"mutability":"mutable","name":"_dataPointAddress","nameLocation":"14868:17:15","nodeType":"VariableDeclaration","scope":3212,"src":"14860:25:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3112,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14860:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3115,"mutability":"mutable","name":"_chunkIndex","nameLocation":"14904:11:15","nodeType":"VariableDeclaration","scope":3212,"src":"14896:19:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3114,"name":"uint256","nodeType":"ElementaryTypeName","src":"14896:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14819:103:15"},"returnParameters":{"id":3117,"nodeType":"ParameterList","parameters":[],"src":"14940:0:15"},"scope":3287,"src":"14795:1065:15","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3238,"nodeType":"Block","src":"16124:147:15","statements":[{"expression":{"id":3221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"16135:22:15","subExpression":{"baseExpression":{"id":3218,"name":"resource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2701,"src":"16142:8:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_array$_t_bytes32_$dyn_storage_$","typeString":"mapping(string memory => bytes32[] storage ref)"}},"id":3220,"indexExpression":{"id":3219,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3215,"src":"16151:5:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"16142:15:15","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3222,"nodeType":"ExpressionStatement","src":"16135:22:15"},{"expression":{"id":3228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":3223,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2695,"src":"16168:8:15","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_struct$_ResourceMetadata_$1053_storage_$","typeString":"mapping(string memory => struct ResourceMetadata storage ref)"}},"id":3225,"indexExpression":{"id":3224,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3215,"src":"16177:5:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16168:15:15","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_storage","typeString":"struct ResourceMetadata storage ref"}},"id":3226,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16184:4:15","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":1043,"src":"16168:20:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":3227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16191:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16168:24:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3229,"nodeType":"ExpressionStatement","src":"16168:24:15"},{"expression":{"arguments":[{"id":3231,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3215,"src":"16219:5:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":3230,"name":"_deleteMetadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2956,"src":"16203:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":3232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16203:22:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3233,"nodeType":"ExpressionStatement","src":"16203:22:15"},{"eventCall":{"arguments":[{"id":3235,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3215,"src":"16257:5:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":3234,"name":"ResourceDeleted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":872,"src":"16241:15:15","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":3236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16241:22:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3237,"nodeType":"EmitStatement","src":"16236:27:15"}]},"documentation":{"id":3213,"nodeType":"StructuredDocumentation","src":"15868:171:15","text":"@notice Removes a resource and its metadata\n @dev Clears resource array, resets size, and deletes metadata\n @param _path Path of the resource to delete"},"id":3239,"implemented":true,"kind":"function","modifiers":[],"name":"_deleteResource","nameLocation":"16054:15:15","nodeType":"FunctionDefinition","parameters":{"id":3216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3215,"mutability":"mutable","name":"_path","nameLocation":"16094:5:15","nodeType":"VariableDeclaration","scope":3239,"src":"16080:19:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3214,"name":"string","nodeType":"ElementaryTypeName","src":"16080:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"16069:37:15"},"returnParameters":{"id":3217,"nodeType":"ParameterList","parameters":[],"src":"16124:0:15"},"scope":3287,"src":"16045:226:15","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":3285,"nodeType":"Block","src":"16793:238:15","statements":[{"expression":{"id":3259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3252,"name":"_dataPointAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3250,"src":"16804:19:15","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":3256,"name":"_dataRegistration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3246,"src":"16840:17:15","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DataRegistration_$1064_memory_ptr_$dyn_memory_ptr","typeString":"struct DataRegistration memory[] memory"}},"id":3257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16858:6:15","memberName":"length","nodeType":"MemberAccess","src":"16840:24:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3255,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16826:13:15","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":3253,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16830:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3254,"nodeType":"ArrayTypeName","src":"16830:9:15","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":3258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16826:39:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"src":"16804:61:15","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":3260,"nodeType":"ExpressionStatement","src":"16804:61:15"},{"body":{"id":3283,"nodeType":"Block","src":"16928:96:15","statements":[{"expression":{"id":3281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3272,"name":"_dataPointAddresses","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3250,"src":"16943:19:15","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":3274,"indexExpression":{"id":3273,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3262,"src":"16963:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"16943:22:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3276,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3242,"src":"16984:5:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"baseExpression":{"id":3277,"name":"_dataRegistration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3246,"src":"16991:17:15","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DataRegistration_$1064_memory_ptr_$dyn_memory_ptr","typeString":"struct DataRegistration memory[] memory"}},"id":3279,"indexExpression":{"id":3278,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3262,"src":"17009:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16991:20:15","typeDescriptions":{"typeIdentifier":"t_struct$_DataRegistration_$1064_memory_ptr","typeString":"struct DataRegistration memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_DataRegistration_$1064_memory_ptr","typeString":"struct DataRegistration memory"}],"id":3275,"name":"_createResource","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3015,"src":"16968:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_DataRegistration_$1064_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory,struct DataRegistration memory) returns (bytes32)"}},"id":3280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16968:44:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"16943:69:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3282,"nodeType":"ExpressionStatement","src":"16943:69:15"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3265,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3262,"src":"16893:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":3266,"name":"_dataRegistration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3246,"src":"16897:17:15","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DataRegistration_$1064_memory_ptr_$dyn_memory_ptr","typeString":"struct DataRegistration memory[] memory"}},"id":3267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16915:6:15","memberName":"length","nodeType":"MemberAccess","src":"16897:24:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16893:28:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3284,"initializationExpression":{"assignments":[3262],"declarations":[{"constant":false,"id":3262,"mutability":"mutable","name":"i","nameLocation":"16886:1:15","nodeType":"VariableDeclaration","scope":3284,"src":"16881:6:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3261,"name":"uint","nodeType":"ElementaryTypeName","src":"16881:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3264,"initialValue":{"hexValue":"30","id":3263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16890:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"16881:10:15"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":3270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"16923:3:15","subExpression":{"id":3269,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3262,"src":"16923:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3271,"nodeType":"ExpressionStatement","src":"16923:3:15"},"nodeType":"ForStatement","src":"16876:148:15"}]},"documentation":{"id":3240,"nodeType":"StructuredDocumentation","src":"16279:328:15","text":"@notice Bulk upload of data points for a resource\n @dev Processes an array of data registrations in sequence\n @param _path Path of the resource\n @param _dataRegistration Array of registration data for multiple chunks\n @return _dataPointAddresses Array of addresses for the created data points"},"id":3286,"implemented":true,"kind":"function","modifiers":[],"name":"_uploadResource","nameLocation":"16622:15:15","nodeType":"FunctionDefinition","parameters":{"id":3247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3242,"mutability":"mutable","name":"_path","nameLocation":"16662:5:15","nodeType":"VariableDeclaration","scope":3286,"src":"16648:19:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3241,"name":"string","nodeType":"ElementaryTypeName","src":"16648:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3246,"mutability":"mutable","name":"_dataRegistration","nameLocation":"16704:17:15","nodeType":"VariableDeclaration","scope":3286,"src":"16678:43:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DataRegistration_$1064_memory_ptr_$dyn_memory_ptr","typeString":"struct DataRegistration[]"},"typeName":{"baseType":{"id":3244,"nodeType":"UserDefinedTypeName","pathNode":{"id":3243,"name":"DataRegistration","nameLocations":["16678:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":1064,"src":"16678:16:15"},"referencedDeclaration":1064,"src":"16678:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_DataRegistration_$1064_storage_ptr","typeString":"struct DataRegistration"}},"id":3245,"nodeType":"ArrayTypeName","src":"16678:18:15","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_DataRegistration_$1064_storage_$dyn_storage_ptr","typeString":"struct DataRegistration[]"}},"visibility":"internal"}],"src":"16637:91:15"},"returnParameters":{"id":3251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3250,"mutability":"mutable","name":"_dataPointAddresses","nameLocation":"16772:19:15","nodeType":"VariableDeclaration","scope":3286,"src":"16755:36:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3248,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16755:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3249,"nodeType":"ArrayTypeName","src":"16755:9:15","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"16754:38:15"},"scope":3287,"src":"16613:418:15","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":3288,"src":"1224:15810:15","usedErrors":[],"usedEvents":[]}],"src":"830:16206:15"},"id":15},"contracts/Web3Site.sol":{"ast":{"absolutePath":"contracts/Web3Site.sol","exportedSymbols":{"AccessControl":[296],"BYTE_RESPONSE_LIMIT":[835],"BaseWTTPPermissions":[1678],"BaseWTTPSite":[2632],"BaseWTTPStorage":[3287],"CHUNK_RESPONSE_LIMIT":[832],"CORSPolicy":[1000],"CORSPreset":[972],"CacheControl":[984],"CachePreset":[964],"Context":[409],"DEFINERequest":[1204],"DEFINEResponse":[1213],"DEFINESuccess":[1468],"DELETESuccess":[1492],"DataExists":[618],"DataPointRegistered":[652],"DataPointRoyalty":[677],"DataPointSizes":[1257],"DataPointWritten":[614],"DataRegistration":[1064],"ERC165":[433],"GETRequest":[1280],"GETResponse":[1290],"HEADRequest":[1142],"HEADResponse":[1158],"HeaderCreated":[840],"HeaderInfo":[1022],"HeaderUpdated":[845],"IAccessControl":[379],"IDataPointRegistry":[534],"IDataPointStorage":[573],"IERC165":[445],"IOwnable":[608],"InsufficientRoyaltyPayment":[626],"InvalidDPS":[622],"InvalidData":[620],"InvalidHeader":[878],"InvalidPublisher":[630],"InvalidRole":[829],"LOCATERequest":[1251],"LOCATEResponse":[1168],"LOCATEResponseSecure":[1270],"MetadataDeleted":[855],"MetadataUpdated":[850],"Method":[955],"OPTIONSResponse":[1131],"PATCHRequest":[1194],"PATCHSuccess":[1484],"PUTRequest":[1183],"PUTSuccess":[1476],"ProcessedData":[1263],"Range":[1241],"Redirect":[1008],"ResourceCreated":[860],"ResourceDeleted":[872],"ResourceMetadata":[1053],"ResourceProperties":[1035],"ResourceResponse":[885],"ResourceRoleCreated":[824],"ResourceUpdated":[867],"RoyaltiesCollected":[638],"RoyaltiesPaid":[646],"SiteAdminChanged":[819],"Web3Site":[3323],"_400":[892],"_402":[899],"_403":[906],"_404":[913],"_405":[922],"_409":[929],"_410":[934],"_416":[944],"calculateDataPointAddress":[671],"calculateEtag":[1233],"contentCode_":[1460],"getHeaderAddress":[1123],"maxMethods_":[1306],"methodsToMask":[1107],"normalizeRange_":[1434]},"id":3324,"license":"AGPL-3.0","nodeType":"SourceUnit","nodes":[{"id":3289,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"38:24:16"},{"absolutePath":"contracts/BaseWTTPSite.sol","file":"./BaseWTTPSite.sol","id":3290,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3324,"sourceUnit":2633,"src":"66:28:16","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":3291,"name":"BaseWTTPSite","nameLocations":["119:12:16"],"nodeType":"IdentifierPath","referencedDeclaration":2632,"src":"119:12:16"},"id":3292,"nodeType":"InheritanceSpecifier","src":"119:12:16"}],"canonicalName":"Web3Site","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":3323,"linearizedBaseContracts":[3323,2632,3287,1678,296,433,445,379,409],"name":"Web3Site","nameLocation":"107:8:16","nodeType":"ContractDefinition","nodes":[{"body":{"id":3307,"nodeType":"Block","src":"296:2:16","statements":[]},"id":3308,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":3302,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3294,"src":"266:6:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3303,"name":"_dpr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3296,"src":"274:4:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3304,"name":"_defaultHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3299,"src":"280:14:16","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"}}],"id":3305,"kind":"baseConstructorSpecifier","modifierName":{"id":3301,"name":"BaseWTTPSite","nameLocations":["253:12:16"],"nodeType":"IdentifierPath","referencedDeclaration":2632,"src":"253:12:16"},"nodeType":"ModifierInvocation","src":"253:42:16"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3294,"mutability":"mutable","name":"_owner","nameLocation":"171:6:16","nodeType":"VariableDeclaration","scope":3308,"src":"163:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3293,"name":"address","nodeType":"ElementaryTypeName","src":"163:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3296,"mutability":"mutable","name":"_dpr","nameLocation":"197:4:16","nodeType":"VariableDeclaration","scope":3308,"src":"189:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3295,"name":"address","nodeType":"ElementaryTypeName","src":"189:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3299,"mutability":"mutable","name":"_defaultHeader","nameLocation":"231:14:16","nodeType":"VariableDeclaration","scope":3308,"src":"213:32:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo"},"typeName":{"id":3298,"nodeType":"UserDefinedTypeName","pathNode":{"id":3297,"name":"HeaderInfo","nameLocations":["213:10:16"],"nodeType":"IdentifierPath","referencedDeclaration":1022,"src":"213:10:16"},"referencedDeclaration":1022,"src":"213:10:16","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_storage_ptr","typeString":"struct HeaderInfo"}},"visibility":"internal"}],"src":"152:100:16"},"returnParameters":{"id":3306,"nodeType":"ParameterList","parameters":[],"src":"296:0:16"},"scope":3323,"src":"141:157:16","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":3321,"nodeType":"Block","src":"404:52:16","statements":[{"expression":{"arguments":[{"id":3318,"name":"_defaultHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3311,"src":"433:14:16","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"}],"id":3317,"name":"_setDefaultHeader","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2822,"src":"415:17:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_HeaderInfo_$1022_memory_ptr_$returns$__$","typeString":"function (struct HeaderInfo memory)"}},"id":3319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"415:33:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3320,"nodeType":"ExpressionStatement","src":"415:33:16"}]},"functionSelector":"04f457fa","id":3322,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":3314,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30,"src":"384:18:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":3315,"kind":"modifierInvocation","modifierName":{"id":3313,"name":"onlyRole","nameLocations":["375:8:16"],"nodeType":"IdentifierPath","referencedDeclaration":41,"src":"375:8:16"},"nodeType":"ModifierInvocation","src":"375:28:16"}],"name":"setDefaultHeader","nameLocation":"315:16:16","nodeType":"FunctionDefinition","parameters":{"id":3312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3311,"mutability":"mutable","name":"_defaultHeader","nameLocation":"350:14:16","nodeType":"VariableDeclaration","scope":3322,"src":"332:32:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo"},"typeName":{"id":3310,"nodeType":"UserDefinedTypeName","pathNode":{"id":3309,"name":"HeaderInfo","nameLocations":["332:10:16"],"nodeType":"IdentifierPath","referencedDeclaration":1022,"src":"332:10:16"},"referencedDeclaration":1022,"src":"332:10:16","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_storage_ptr","typeString":"struct HeaderInfo"}},"visibility":"internal"}],"src":"331:34:16"},"returnParameters":{"id":3316,"nodeType":"ParameterList","parameters":[],"src":"404:0:16"},"scope":3323,"src":"306:150:16","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":3324,"src":"98:363:16","usedErrors":[306,309,829,878,906,913,922,944],"usedEvents":[318,327,336,819,824,840,845,850,855,860,867,872,1468,1476,1484,1492]}],"src":"38:423:16"},"id":16},"contracts/extensions/ExtendedWTTPSite.sol":{"ast":{"absolutePath":"contracts/extensions/ExtendedWTTPSite.sol","exportedSymbols":{"AccessControl":[296],"BYTE_RESPONSE_LIMIT":[835],"BaseWTTPPermissions":[1678],"CHUNK_RESPONSE_LIMIT":[832],"CORSPolicy":[1000],"CORSPreset":[972],"CacheControl":[984],"CachePreset":[964],"Context":[409],"DEFINERequest":[1204],"DEFINEResponse":[1213],"DEFINESuccess":[1468],"DELETESuccess":[1492],"DataExists":[618],"DataPointRegistered":[652],"DataPointRoyalty":[677],"DataPointSizes":[1257],"DataPointWritten":[614],"DataRegistration":[1064],"ERC165":[433],"ExtendedWTTPSite":[3700],"GETRequest":[1280],"GETResponse":[1290],"HEADRequest":[1142],"HEADResponse":[1158],"HeaderCreated":[840],"HeaderInfo":[1022],"HeaderUpdated":[845],"IAccessControl":[379],"IBaseWTTPPermissions":[711],"IBaseWTTPSite":[787],"IBaseWTTPStorage":[809],"IDataPointRegistry":[534],"IDataPointStorage":[573],"IERC165":[445],"IOwnable":[608],"InsufficientRoyaltyPayment":[626],"InvalidDPS":[622],"InvalidData":[620],"InvalidHeader":[878],"InvalidOrigins":[3349],"InvalidPublisher":[630],"InvalidRole":[829],"LOCATERequest":[1251],"LOCATEResponse":[1168],"LOCATEResponseSecure":[1270],"MetadataDeleted":[855],"MetadataUpdated":[850],"Method":[955],"OPTIONSResponse":[1131],"PATCHRequest":[1194],"PATCHSuccess":[1484],"PUTRequest":[1183],"PUTSuccess":[1476],"ProcessedData":[1263],"Range":[1241],"Redirect":[1008],"ResourceCreated":[860],"ResourceDeleted":[872],"ResourceMetadata":[1053],"ResourceProperties":[1035],"ResourceResponse":[885],"ResourceRoleCreated":[824],"ResourceUpdated":[867],"RoyaltiesCollected":[638],"RoyaltiesPaid":[646],"SiteAdminChanged":[819],"_400":[892],"_402":[899],"_403":[906],"_404":[913],"_405":[922],"_409":[929],"_410":[934],"_416":[944],"calculateDataPointAddress":[671],"calculateEtag":[1233],"contentCode_":[1460],"getHeaderAddress":[1123],"getSiteDPR_":[3343],"maxMethods_":[1306],"methodsToMask":[1107],"normalizeRange_":[1434]},"id":3701,"license":"AGPL-3.0","nodeType":"SourceUnit","nodes":[{"id":3325,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"830:24:17"},{"absolutePath":"contracts/BaseWTTPPermissions.sol","file":"../BaseWTTPPermissions.sol","id":3326,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3701,"sourceUnit":1679,"src":"858:36:17","symbolAliases":[],"unitAlias":""},{"absolutePath":"@wttp/core/contracts/types/WTTPTypes.sol","file":"@wttp/core/contracts/types/WTTPTypes.sol","id":3327,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3701,"sourceUnit":1493,"src":"896:50:17","symbolAliases":[],"unitAlias":""},{"absolutePath":"@wttp/core/contracts/interfaces/IBaseWTTPSite.sol","file":"@wttp/core/contracts/interfaces/IBaseWTTPSite.sol","id":3328,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3701,"sourceUnit":788,"src":"948:59:17","symbolAliases":[],"unitAlias":""},{"body":{"id":3342,"nodeType":"Block","src":"1088:51:17","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":3337,"name":"_siteAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3330,"src":"1116:12:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3336,"name":"IBaseWTTPSite","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":787,"src":"1102:13:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseWTTPSite_$787_$","typeString":"type(contract IBaseWTTPSite)"}},"id":3338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1102:27:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWTTPSite_$787","typeString":"contract IBaseWTTPSite"}},"id":3339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1130:3:17","memberName":"DPR","nodeType":"MemberAccess","referencedDeclaration":808,"src":"1102:31:17","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IDataPointRegistry_$534_$","typeString":"function () view external returns (contract IDataPointRegistry)"}},"id":3340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1102:33:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDataPointRegistry_$534","typeString":"contract IDataPointRegistry"}},"functionReturnParameters":3335,"id":3341,"nodeType":"Return","src":"1095:40:17"}]},"id":3343,"implemented":true,"kind":"freeFunction","modifiers":[],"name":"getSiteDPR_","nameLocation":"1020:11:17","nodeType":"FunctionDefinition","parameters":{"id":3331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3330,"mutability":"mutable","name":"_siteAddress","nameLocation":"1040:12:17","nodeType":"VariableDeclaration","scope":3343,"src":"1032:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3329,"name":"address","nodeType":"ElementaryTypeName","src":"1032:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1031:22:17"},"returnParameters":{"id":3335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3334,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3343,"src":"1068:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IDataPointRegistry_$534","typeString":"contract IDataPointRegistry"},"typeName":{"id":3333,"nodeType":"UserDefinedTypeName","pathNode":{"id":3332,"name":"IDataPointRegistry","nameLocations":["1068:18:17"],"nodeType":"IdentifierPath","referencedDeclaration":534,"src":"1068:18:17"},"referencedDeclaration":534,"src":"1068:18:17","typeDescriptions":{"typeIdentifier":"t_contract$_IDataPointRegistry_$534","typeString":"contract IDataPointRegistry"}},"visibility":"internal"}],"src":"1067:20:17"},"scope":3701,"src":"1011:128:17","stateMutability":"view","virtual":false,"visibility":"internal"},{"documentation":{"id":3344,"nodeType":"StructuredDocumentation","src":"1143:109:17","text":"@notice Error thrown when the default origins array is invalid\n @param _origins The invalid origins"},"errorSelector":"3f173414","id":3349,"name":"InvalidOrigins","nameLocation":"1258:14:17","nodeType":"ErrorDefinition","parameters":{"id":3348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3347,"mutability":"mutable","name":"_origins","nameLocation":"1283:8:17","nodeType":"VariableDeclaration","scope":3349,"src":"1273:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3345,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1273:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3346,"nodeType":"ArrayTypeName","src":"1273:9:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"1272:20:17"},"src":"1252:41:17"},{"abstract":true,"baseContracts":[{"baseName":{"id":3351,"name":"BaseWTTPPermissions","nameLocations":["1566:19:17"],"nodeType":"IdentifierPath","referencedDeclaration":1678,"src":"1566:19:17"},"id":3352,"nodeType":"InheritanceSpecifier","src":"1566:19:17"}],"canonicalName":"ExtendedWTTPSite","contractDependencies":[],"contractKind":"contract","documentation":{"id":3350,"nodeType":"StructuredDocumentation","src":"1297:231:17","text":"@title Extended WTTP Site Contract for Origin Testing\n @notice Extends BaseWTTPStorage with cross-site origin validation capabilities\n @dev Acts as a proxy to another WTTP site while enforcing strict origin validation"},"fullyImplemented":true,"id":3700,"linearizedBaseContracts":[3700,1678,296,433,445,379,409],"name":"ExtendedWTTPSite","nameLocation":"1546:16:17","nodeType":"ContractDefinition","nodes":[{"constant":false,"documentation":{"id":3353,"nodeType":"StructuredDocumentation","src":"1595:63:17","text":"@notice Reference to the underlying WTTP site being proxied"},"functionSelector":"e0d370ac","id":3356,"mutability":"immutable","name":"site","nameLocation":"1695:4:17","nodeType":"VariableDeclaration","scope":3700,"src":"1664:35:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWTTPSite_$787","typeString":"contract IBaseWTTPSite"},"typeName":{"id":3355,"nodeType":"UserDefinedTypeName","pathNode":{"id":3354,"name":"IBaseWTTPSite","nameLocations":["1664:13:17"],"nodeType":"IdentifierPath","referencedDeclaration":787,"src":"1664:13:17"},"referencedDeclaration":787,"src":"1664:13:17","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWTTPSite_$787","typeString":"contract IBaseWTTPSite"}},"visibility":"public"},{"constant":false,"functionSelector":"ff8fe981","id":3359,"mutability":"mutable","name":"defaultOrigins","nameLocation":"1725:14:17","nodeType":"VariableDeclaration","scope":3700,"src":"1708:31:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3357,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1708:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3358,"nodeType":"ArrayTypeName","src":"1708:9:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"public"},{"constant":false,"functionSelector":"a7cc59a1","id":3364,"mutability":"mutable","name":"resourceOrigins","nameLocation":"1784:15:17","nodeType":"VariableDeclaration","scope":3700,"src":"1748:51:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_array$_t_bytes32_$dyn_storage_$","typeString":"mapping(string => bytes32[])"},"typeName":{"id":3363,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":3360,"name":"string","nodeType":"ElementaryTypeName","src":"1756:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"nodeType":"Mapping","src":"1748:28:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_array$_t_bytes32_$dyn_storage_$","typeString":"mapping(string => bytes32[])"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"baseType":{"id":3361,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1766:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3362,"nodeType":"ArrayTypeName","src":"1766:9:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"visibility":"public"},{"constant":false,"documentation":{"id":3365,"nodeType":"StructuredDocumentation","src":"1812:68:17","text":"@notice Mapping to track allowed origins for cross-site requests"},"functionSelector":"a2610d93","id":3369,"mutability":"mutable","name":"allowedOrigins","nameLocation":"1918:14:17","nodeType":"VariableDeclaration","scope":3700,"src":"1886:46:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":3368,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":3366,"name":"address","nodeType":"ElementaryTypeName","src":"1894:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1886:24:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":3367,"name":"bool","nodeType":"ElementaryTypeName","src":"1905:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"anonymous":false,"documentation":{"id":3370,"nodeType":"StructuredDocumentation","src":"1945:61:17","text":"@notice Event emitted when origins are updated for a path"},"eventSelector":"22c561e1d5ae0d4e834e37ae451533b4a017a844a4188154b17e88acd6a0bc0e","id":3377,"name":"OriginUpdated","nameLocation":"2018:13:17","nodeType":"EventDefinition","parameters":{"id":3376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3372,"indexed":true,"mutability":"mutable","name":"_path","nameLocation":"2047:5:17","nodeType":"VariableDeclaration","scope":3377,"src":"2032:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3371,"name":"string","nodeType":"ElementaryTypeName","src":"2032:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3375,"indexed":false,"mutability":"mutable","name":"_origins","nameLocation":"2064:8:17","nodeType":"VariableDeclaration","scope":3377,"src":"2054:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3373,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2054:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3374,"nodeType":"ArrayTypeName","src":"2054:9:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"2031:42:17"},"src":"2012:62:17"},{"body":{"id":3396,"nodeType":"Block","src":"2125:120:17","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":3383,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3379,"src":"2146:5:17","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":3382,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2140:5:17","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":3381,"name":"bytes","nodeType":"ElementaryTypeName","src":"2140:5:17","typeDescriptions":{}}},"id":3384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2140:12:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2153:6:17","memberName":"length","nodeType":"MemberAccess","src":"2140:19:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2163:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2140:24:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3394,"nodeType":"IfStatement","src":"2136:90:17","trueBody":{"id":3393,"nodeType":"Block","src":"2166:60:17","statements":[{"errorCall":{"arguments":[{"hexValue":"4261642052657175657374","id":3389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2193:13:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_db3084483a3b1df79e99701b8b134852a4bdadf5211bfe6e8a5c57bbe5173fcb","typeString":"literal_string \"Bad Request\""},"value":"Bad Request"},{"id":3390,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3379,"src":"2208:5:17","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_db3084483a3b1df79e99701b8b134852a4bdadf5211bfe6e8a5c57bbe5173fcb","typeString":"literal_string \"Bad Request\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":3388,"name":"_400","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":892,"src":"2188:4:17","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory,string memory) pure returns (error)"}},"id":3391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2188:26:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":3392,"nodeType":"RevertStatement","src":"2181:33:17"}]}},{"id":3395,"nodeType":"PlaceholderStatement","src":"2236:1:17"}]},"id":3397,"name":"pathNotEmpty","nameLocation":"2091:12:17","nodeType":"ModifierDefinition","parameters":{"id":3380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3379,"mutability":"mutable","name":"_path","nameLocation":"2118:5:17","nodeType":"VariableDeclaration","scope":3397,"src":"2104:19:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3378,"name":"string","nodeType":"ElementaryTypeName","src":"2104:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2103:21:17"},"src":"2082:163:17","virtual":false,"visibility":"internal"},{"body":{"id":3444,"nodeType":"Block","src":"2437:315:17","statements":[{"assignments":[3406],"declarations":[{"constant":false,"id":3406,"mutability":"mutable","name":"_origins","nameLocation":"2465:8:17","nodeType":"VariableDeclaration","scope":3444,"src":"2448:25:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3404,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2448:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3405,"nodeType":"ArrayTypeName","src":"2448:9:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":3419,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":3409,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3400,"src":"2482:5:17","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":3408,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2476:5:17","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":3407,"name":"bytes","nodeType":"ElementaryTypeName","src":"2476:5:17","typeDescriptions":{}}},"id":3410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2476:12:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2489:6:17","memberName":"length","nodeType":"MemberAccess","src":"2476:19:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2499:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2476:24:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"baseExpression":{"id":3415,"name":"resourceOrigins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3364,"src":"2520:15:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_array$_t_bytes32_$dyn_storage_$","typeString":"mapping(string memory => bytes32[] storage ref)"}},"id":3417,"indexExpression":{"id":3416,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3400,"src":"2536:5:17","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2520:22:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":3418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2476:66:17","trueExpression":{"id":3414,"name":"defaultOrigins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3359,"src":"2503:14:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[] storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2448:94:17"},{"assignments":[3421],"declarations":[{"constant":false,"id":3421,"mutability":"mutable","name":"_authorizedRole","nameLocation":"2561:15:17","nodeType":"VariableDeclaration","scope":3444,"src":"2553:23:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3420,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2553:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":3429,"initialValue":{"baseExpression":{"id":3422,"name":"_origins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3406,"src":"2579:8:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":3428,"indexExpression":{"arguments":[{"expression":{"id":3425,"name":"Method","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"2596:6:17","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Method_$955_$","typeString":"type(enum Method)"}},"id":3426,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2603:6:17","memberName":"DEFINE","nodeType":"MemberAccess","referencedDeclaration":954,"src":"2596:13:17","typeDescriptions":{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Method_$955","typeString":"enum Method"}],"id":3424,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2588:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3423,"name":"uint256","nodeType":"ElementaryTypeName","src":"2588:7:17","typeDescriptions":{}}},"id":3427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2588:22:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2579:32:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2553:58:17"},{"condition":{"id":3435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2626:37:17","subExpression":{"arguments":[{"id":3431,"name":"_authorizedRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3421,"src":"2635:15:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":3432,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2652:3:17","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2656:6:17","memberName":"sender","nodeType":"MemberAccess","src":"2652:10:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3430,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[1582],"referencedDeclaration":1582,"src":"2627:7:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":3434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2627:36:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3442,"nodeType":"IfStatement","src":"2622:111:17","trueBody":{"id":3441,"nodeType":"Block","src":"2665:68:17","statements":[{"errorCall":{"arguments":[{"hexValue":"466f7262696464656e","id":3437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2692:11:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_479a1d8ebbddc9de30fd1886cb8a7ee233eac86d9b8bd3ece8b03587030879ef","typeString":"literal_string \"Forbidden\""},"value":"Forbidden"},{"id":3438,"name":"_authorizedRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3421,"src":"2705:15:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_479a1d8ebbddc9de30fd1886cb8a7ee233eac86d9b8bd3ece8b03587030879ef","typeString":"literal_string \"Forbidden\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3436,"name":"_403","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":906,"src":"2687:4:17","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$_t_bytes32_$returns$_t_error_$","typeString":"function (string memory,bytes32) pure returns (error)"}},"id":3439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2687:34:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":3440,"nodeType":"RevertStatement","src":"2680:41:17"}]}},{"id":3443,"nodeType":"PlaceholderStatement","src":"2743:1:17"}]},"documentation":{"id":3398,"nodeType":"StructuredDocumentation","src":"2257:123:17","text":"@notice Validates that calls are coming from authorized origins\n @dev Used for strict cross-site origin testing"},"id":3445,"name":"onlyAuthorizedOrigin","nameLocation":"2395:20:17","nodeType":"ModifierDefinition","parameters":{"id":3401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3400,"mutability":"mutable","name":"_path","nameLocation":"2430:5:17","nodeType":"VariableDeclaration","scope":3445,"src":"2416:19:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3399,"name":"string","nodeType":"ElementaryTypeName","src":"2416:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2415:21:17"},"src":"2386:366:17","virtual":false,"visibility":"internal"},{"body":{"id":3470,"nodeType":"Block","src":"3164:96:17","statements":[{"expression":{"id":3463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3459,"name":"site","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3356,"src":"3175:4:17","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWTTPSite_$787","typeString":"contract IBaseWTTPSite"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3461,"name":"_siteAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3450,"src":"3196:12:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3460,"name":"IBaseWTTPSite","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":787,"src":"3182:13:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseWTTPSite_$787_$","typeString":"type(contract IBaseWTTPSite)"}},"id":3462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3182:27:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWTTPSite_$787","typeString":"contract IBaseWTTPSite"}},"src":"3175:34:17","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWTTPSite_$787","typeString":"contract IBaseWTTPSite"}},"id":3464,"nodeType":"ExpressionStatement","src":"3175:34:17"},{"expression":{"arguments":[{"hexValue":"","id":3466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3232:2:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},{"id":3467,"name":"_defaultOrigins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3453,"src":"3236:15:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":3465,"name":"_setOrigins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3516,"src":"3220:11:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$","typeString":"function (string memory,bytes32[] memory)"}},"id":3468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3220:32:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3469,"nodeType":"ExpressionStatement","src":"3220:32:17"}]},"documentation":{"id":3446,"nodeType":"StructuredDocumentation","src":"2760:250:17","text":"@notice Initializes the extended site with origin validation\n @param _owner Address of the contract owner\n @param _siteAddress Address of the WTTP site to proxy to\n @param _defaultOrigins Default origins for this extension"},"id":3471,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":3456,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3448,"src":"3156:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":3457,"kind":"baseConstructorSpecifier","modifierName":{"id":3455,"name":"BaseWTTPPermissions","nameLocations":["3136:19:17"],"nodeType":"IdentifierPath","referencedDeclaration":1678,"src":"3136:19:17"},"nodeType":"ModifierInvocation","src":"3136:27:17"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3448,"mutability":"mutable","name":"_owner","nameLocation":"3046:6:17","nodeType":"VariableDeclaration","scope":3471,"src":"3038:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3447,"name":"address","nodeType":"ElementaryTypeName","src":"3038:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3450,"mutability":"mutable","name":"_siteAddress","nameLocation":"3072:12:17","nodeType":"VariableDeclaration","scope":3471,"src":"3064:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3449,"name":"address","nodeType":"ElementaryTypeName","src":"3064:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3453,"mutability":"mutable","name":"_defaultOrigins","nameLocation":"3113:15:17","nodeType":"VariableDeclaration","scope":3471,"src":"3096:32:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3451,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3096:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3452,"nodeType":"ArrayTypeName","src":"3096:9:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"3027:108:17"},"returnParameters":{"id":3458,"nodeType":"ParameterList","parameters":[],"src":"3164:0:17"},"scope":3700,"src":"3016:244:17","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3515,"nodeType":"Block","src":"3346:318:17","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3479,"name":"_origins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"3361:8:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":3480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3370:6:17","memberName":"length","nodeType":"MemberAccess","src":"3361:15:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":3481,"name":"maxMethods_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1306,"src":"3380:11:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint16_$","typeString":"function () pure returns (uint16)"}},"id":3482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3380:13:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"3361:32:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3489,"nodeType":"IfStatement","src":"3357:96:17","trueBody":{"id":3488,"nodeType":"Block","src":"3395:58:17","statements":[{"errorCall":{"arguments":[{"id":3485,"name":"_origins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"3432:8:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":3484,"name":"InvalidOrigins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3349,"src":"3417:14:17","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_error_$","typeString":"function (bytes32[] memory) pure returns (error)"}},"id":3486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3417:24:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":3487,"nodeType":"RevertStatement","src":"3410:31:17"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":3492,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3473,"src":"3473:5:17","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":3491,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3467:5:17","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":3490,"name":"bytes","nodeType":"ElementaryTypeName","src":"3467:5:17","typeDescriptions":{}}},"id":3493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3467:12:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3480:6:17","memberName":"length","nodeType":"MemberAccess","src":"3467:19:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3490:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3467:24:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3508,"nodeType":"Block","src":"3551:60:17","statements":[{"expression":{"id":3506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3502,"name":"resourceOrigins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3364,"src":"3566:15:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_ptr_$_t_array$_t_bytes32_$dyn_storage_$","typeString":"mapping(string memory => bytes32[] storage ref)"}},"id":3504,"indexExpression":{"id":3503,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3473,"src":"3582:5:17","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3566:22:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3505,"name":"_origins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"3591:8:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"src":"3566:33:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":3507,"nodeType":"ExpressionStatement","src":"3566:33:17"}]},"id":3509,"nodeType":"IfStatement","src":"3463:148:17","trueBody":{"id":3501,"nodeType":"Block","src":"3493:52:17","statements":[{"expression":{"id":3499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3497,"name":"defaultOrigins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3359,"src":"3508:14:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3498,"name":"_origins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"3525:8:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"src":"3508:25:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":3500,"nodeType":"ExpressionStatement","src":"3508:25:17"}]}},{"eventCall":{"arguments":[{"id":3511,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3473,"src":"3640:5:17","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":3512,"name":"_origins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3476,"src":"3647:8:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":3510,"name":"OriginUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3377,"src":"3626:13:17","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$","typeString":"function (string memory,bytes32[] memory)"}},"id":3513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3626:30:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3514,"nodeType":"EmitStatement","src":"3621:35:17"}]},"id":3516,"implemented":true,"kind":"function","modifiers":[],"name":"_setOrigins","nameLocation":"3277:11:17","nodeType":"FunctionDefinition","parameters":{"id":3477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3473,"mutability":"mutable","name":"_path","nameLocation":"3303:5:17","nodeType":"VariableDeclaration","scope":3516,"src":"3289:19:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3472,"name":"string","nodeType":"ElementaryTypeName","src":"3289:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3476,"mutability":"mutable","name":"_origins","nameLocation":"3327:8:17","nodeType":"VariableDeclaration","scope":3516,"src":"3310:25:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3474,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3310:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3475,"nodeType":"ArrayTypeName","src":"3310:9:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"3288:48:17"},"returnParameters":{"id":3478,"nodeType":"ParameterList","parameters":[],"src":"3346:0:17"},"scope":3700,"src":"3268:396:17","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3530,"nodeType":"Block","src":"3771:51:17","statements":[{"expression":{"arguments":[{"hexValue":"","id":3526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3794:2:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},{"id":3527,"name":"_defaultOrigins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3519,"src":"3798:15:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":3525,"name":"_setOrigins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3516,"src":"3782:11:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$","typeString":"function (string memory,bytes32[] memory)"}},"id":3528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3782:32:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3529,"nodeType":"ExpressionStatement","src":"3782:32:17"}]},"functionSelector":"22a50f35","id":3531,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":3522,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30,"src":"3751:18:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":3523,"kind":"modifierInvocation","modifierName":{"id":3521,"name":"onlyRole","nameLocations":["3742:8:17"],"nodeType":"IdentifierPath","referencedDeclaration":41,"src":"3742:8:17"},"nodeType":"ModifierInvocation","src":"3742:28:17"}],"name":"setDefaultOrigins","nameLocation":"3681:17:17","nodeType":"FunctionDefinition","parameters":{"id":3520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3519,"mutability":"mutable","name":"_defaultOrigins","nameLocation":"3716:15:17","nodeType":"VariableDeclaration","scope":3531,"src":"3699:32:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3517,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3699:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3518,"nodeType":"ArrayTypeName","src":"3699:9:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"3698:34:17"},"returnParameters":{"id":3524,"nodeType":"ParameterList","parameters":[],"src":"3771:0:17"},"scope":3700,"src":"3672:150:17","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":3550,"nodeType":"Block","src":"3963:47:17","statements":[{"expression":{"arguments":[{"id":3546,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3533,"src":"3986:5:17","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":3547,"name":"_origins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3536,"src":"3993:8:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":3545,"name":"_setOrigins","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3516,"src":"3974:11:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$","typeString":"function (string memory,bytes32[] memory)"}},"id":3548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3974:28:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3549,"nodeType":"ExpressionStatement","src":"3974:28:17"}]},"functionSelector":"02c234c5","id":3551,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":3539,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3533,"src":"3928:5:17","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":3540,"kind":"modifierInvocation","modifierName":{"id":3538,"name":"pathNotEmpty","nameLocations":["3915:12:17"],"nodeType":"IdentifierPath","referencedDeclaration":3397,"src":"3915:12:17"},"nodeType":"ModifierInvocation","src":"3915:19:17"},{"arguments":[{"id":3542,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3533,"src":"3956:5:17","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":3543,"kind":"modifierInvocation","modifierName":{"id":3541,"name":"onlyAuthorizedOrigin","nameLocations":["3935:20:17"],"nodeType":"IdentifierPath","referencedDeclaration":3445,"src":"3935:20:17"},"nodeType":"ModifierInvocation","src":"3935:27:17"}],"name":"setResourceOrigins","nameLocation":"3839:18:17","nodeType":"FunctionDefinition","parameters":{"id":3537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3533,"mutability":"mutable","name":"_path","nameLocation":"3872:5:17","nodeType":"VariableDeclaration","scope":3551,"src":"3858:19:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3532,"name":"string","nodeType":"ElementaryTypeName","src":"3858:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3536,"mutability":"mutable","name":"_origins","nameLocation":"3896:8:17","nodeType":"VariableDeclaration","scope":3551,"src":"3879:25:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3534,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3879:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3535,"nodeType":"ArrayTypeName","src":"3879:9:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"3857:48:17"},"returnParameters":{"id":3544,"nodeType":"ParameterList","parameters":[],"src":"3963:0:17"},"scope":3700,"src":"3830:180:17","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":3568,"nodeType":"Block","src":"4290:45:17","statements":[{"expression":{"arguments":[{"id":3565,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3554,"src":"4321:5:17","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":3563,"name":"site","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3356,"src":"4308:4:17","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWTTPSite_$787","typeString":"contract IBaseWTTPSite"}},"id":3564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4313:7:17","memberName":"OPTIONS","nodeType":"MemberAccess","referencedDeclaration":726,"src":"4308:12:17","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_string_memory_ptr_$returns$_t_struct$_OPTIONSResponse_$1131_memory_ptr_$","typeString":"function (string memory) view external returns (struct OPTIONSResponse memory)"}},"id":3566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4308:19:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_OPTIONSResponse_$1131_memory_ptr","typeString":"struct OPTIONSResponse memory"}},"functionReturnParameters":3562,"id":3567,"nodeType":"Return","src":"4301:26:17"}]},"documentation":{"id":3552,"nodeType":"StructuredDocumentation","src":"4018:153:17","text":"@notice Proxy OPTIONS requests with origin validation\n @param _path Resource path to check\n @return Response from the underlying site"},"functionSelector":"fd05b634","id":3569,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":3557,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3554,"src":"4250:5:17","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":3558,"kind":"modifierInvocation","modifierName":{"id":3556,"name":"onlyAuthorizedOrigin","nameLocations":["4229:20:17"],"nodeType":"IdentifierPath","referencedDeclaration":3445,"src":"4229:20:17"},"nodeType":"ModifierInvocation","src":"4229:27:17"}],"name":"OPTIONS","nameLocation":"4186:7:17","nodeType":"FunctionDefinition","parameters":{"id":3555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3554,"mutability":"mutable","name":"_path","nameLocation":"4208:5:17","nodeType":"VariableDeclaration","scope":3569,"src":"4194:19:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3553,"name":"string","nodeType":"ElementaryTypeName","src":"4194:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4193:21:17"},"returnParameters":{"id":3562,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3561,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3569,"src":"4266:22:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_OPTIONSResponse_$1131_memory_ptr","typeString":"struct OPTIONSResponse"},"typeName":{"id":3560,"nodeType":"UserDefinedTypeName","pathNode":{"id":3559,"name":"OPTIONSResponse","nameLocations":["4266:15:17"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"4266:15:17"},"referencedDeclaration":1131,"src":"4266:15:17","typeDescriptions":{"typeIdentifier":"t_struct$_OPTIONSResponse_$1131_storage_ptr","typeString":"struct OPTIONSResponse"}},"visibility":"internal"}],"src":"4265:24:17"},"scope":3700,"src":"4177:158:17","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":3588,"nodeType":"Block","src":"4626:45:17","statements":[{"expression":{"arguments":[{"id":3585,"name":"_request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3573,"src":"4654:8:17","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_memory_ptr","typeString":"struct HEADRequest memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_HEADRequest_$1142_memory_ptr","typeString":"struct HEADRequest memory"}],"expression":{"id":3583,"name":"site","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3356,"src":"4644:4:17","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWTTPSite_$787","typeString":"contract IBaseWTTPSite"}},"id":3584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4649:4:17","memberName":"HEAD","nodeType":"MemberAccess","referencedDeclaration":736,"src":"4644:9:17","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_HEADRequest_$1142_memory_ptr_$returns$_t_struct$_HEADResponse_$1158_memory_ptr_$","typeString":"function (struct HEADRequest memory) view external returns (struct HEADResponse memory)"}},"id":3586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4644:19:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}},"functionReturnParameters":3582,"id":3587,"nodeType":"Return","src":"4637:26:17"}]},"documentation":{"id":3570,"nodeType":"StructuredDocumentation","src":"4343:154:17","text":"@notice Proxy HEAD requests with origin validation\n @param _request HEAD request parameters\n @return Response from the underlying site"},"functionSelector":"28699f17","id":3589,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":3576,"name":"_request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3573,"src":"4581:8:17","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_memory_ptr","typeString":"struct HEADRequest memory"}},"id":3577,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4590:4:17","memberName":"path","nodeType":"MemberAccess","referencedDeclaration":1135,"src":"4581:13:17","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":3578,"kind":"modifierInvocation","modifierName":{"id":3575,"name":"onlyAuthorizedOrigin","nameLocations":["4560:20:17"],"nodeType":"IdentifierPath","referencedDeclaration":3445,"src":"4560:20:17"},"nodeType":"ModifierInvocation","src":"4560:35:17"}],"name":"HEAD","nameLocation":"4512:4:17","nodeType":"FunctionDefinition","parameters":{"id":3574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3573,"mutability":"mutable","name":"_request","nameLocation":"4536:8:17","nodeType":"VariableDeclaration","scope":3589,"src":"4517:27:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_memory_ptr","typeString":"struct HEADRequest"},"typeName":{"id":3572,"nodeType":"UserDefinedTypeName","pathNode":{"id":3571,"name":"HEADRequest","nameLocations":["4517:11:17"],"nodeType":"IdentifierPath","referencedDeclaration":1142,"src":"4517:11:17"},"referencedDeclaration":1142,"src":"4517:11:17","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_storage_ptr","typeString":"struct HEADRequest"}},"visibility":"internal"}],"src":"4516:29:17"},"returnParameters":{"id":3582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3581,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3589,"src":"4605:19:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse"},"typeName":{"id":3580,"nodeType":"UserDefinedTypeName","pathNode":{"id":3579,"name":"HEADResponse","nameLocations":["4605:12:17"],"nodeType":"IdentifierPath","referencedDeclaration":1158,"src":"4605:12:17"},"referencedDeclaration":1158,"src":"4605:12:17","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_storage_ptr","typeString":"struct HEADResponse"}},"visibility":"internal"}],"src":"4604:21:17"},"scope":3700,"src":"4503:168:17","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":3609,"nodeType":"Block","src":"4968:44:17","statements":[{"expression":{"arguments":[{"id":3606,"name":"_request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3593,"src":"4995:8:17","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATERequest_$1251_memory_ptr","typeString":"struct LOCATERequest memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_LOCATERequest_$1251_memory_ptr","typeString":"struct LOCATERequest memory"}],"expression":{"id":3604,"name":"site","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3356,"src":"4986:4:17","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWTTPSite_$787","typeString":"contract IBaseWTTPSite"}},"id":3605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4991:3:17","memberName":"GET","nodeType":"MemberAccess","referencedDeclaration":746,"src":"4986:8:17","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_struct$_LOCATERequest_$1251_memory_ptr_$returns$_t_struct$_LOCATEResponse_$1168_memory_ptr_$","typeString":"function (struct LOCATERequest memory) view external returns (struct LOCATEResponse memory)"}},"id":3607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4986:18:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_memory_ptr","typeString":"struct LOCATEResponse memory"}},"functionReturnParameters":3603,"id":3608,"nodeType":"Return","src":"4979:25:17"}]},"documentation":{"id":3590,"nodeType":"StructuredDocumentation","src":"4679:152:17","text":"@notice Proxy GET requests with origin validation\n @param _request GET request parameters\n @return Response from the underlying site"},"functionSelector":"0f9004b8","id":3610,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"expression":{"id":3596,"name":"_request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3593,"src":"4916:8:17","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATERequest_$1251_memory_ptr","typeString":"struct LOCATERequest memory"}},"id":3597,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4925:4:17","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":1246,"src":"4916:13:17","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_memory_ptr","typeString":"struct HEADRequest memory"}},"id":3598,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4930:4:17","memberName":"path","nodeType":"MemberAccess","referencedDeclaration":1135,"src":"4916:18:17","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":3599,"kind":"modifierInvocation","modifierName":{"id":3595,"name":"onlyAuthorizedOrigin","nameLocations":["4895:20:17"],"nodeType":"IdentifierPath","referencedDeclaration":3445,"src":"4895:20:17"},"nodeType":"ModifierInvocation","src":"4895:40:17"}],"name":"GET","nameLocation":"4846:3:17","nodeType":"FunctionDefinition","parameters":{"id":3594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3593,"mutability":"mutable","name":"_request","nameLocation":"4871:8:17","nodeType":"VariableDeclaration","scope":3610,"src":"4850:29:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATERequest_$1251_memory_ptr","typeString":"struct LOCATERequest"},"typeName":{"id":3592,"nodeType":"UserDefinedTypeName","pathNode":{"id":3591,"name":"LOCATERequest","nameLocations":["4850:13:17"],"nodeType":"IdentifierPath","referencedDeclaration":1251,"src":"4850:13:17"},"referencedDeclaration":1251,"src":"4850:13:17","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATERequest_$1251_storage_ptr","typeString":"struct LOCATERequest"}},"visibility":"internal"}],"src":"4849:31:17"},"returnParameters":{"id":3603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3602,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3610,"src":"4945:21:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_memory_ptr","typeString":"struct LOCATEResponse"},"typeName":{"id":3601,"nodeType":"UserDefinedTypeName","pathNode":{"id":3600,"name":"LOCATEResponse","nameLocations":["4945:14:17"],"nodeType":"IdentifierPath","referencedDeclaration":1168,"src":"4945:14:17"},"referencedDeclaration":1168,"src":"4945:14:17","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_storage_ptr","typeString":"struct LOCATEResponse"}},"visibility":"internal"}],"src":"4944:23:17"},"scope":3700,"src":"4837:175:17","stateMutability":"view","virtual":false,"visibility":"external"},{"body":{"id":3630,"nodeType":"Block","src":"5313:47:17","statements":[{"expression":{"arguments":[{"id":3627,"name":"_request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3614,"src":"5343:8:17","typeDescriptions":{"typeIdentifier":"t_struct$_DEFINERequest_$1204_memory_ptr","typeString":"struct DEFINERequest memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_DEFINERequest_$1204_memory_ptr","typeString":"struct DEFINERequest memory"}],"expression":{"id":3625,"name":"site","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3356,"src":"5331:4:17","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWTTPSite_$787","typeString":"contract IBaseWTTPSite"}},"id":3626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5336:6:17","memberName":"DEFINE","nodeType":"MemberAccess","referencedDeclaration":756,"src":"5331:11:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_DEFINERequest_$1204_memory_ptr_$returns$_t_struct$_DEFINEResponse_$1213_memory_ptr_$","typeString":"function (struct DEFINERequest memory) external returns (struct DEFINEResponse memory)"}},"id":3628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5331:21:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_DEFINEResponse_$1213_memory_ptr","typeString":"struct DEFINEResponse memory"}},"functionReturnParameters":3624,"id":3629,"nodeType":"Return","src":"5324:28:17"}]},"documentation":{"id":3611,"nodeType":"StructuredDocumentation","src":"5020:158:17","text":"@notice Proxy DEFINE requests with origin validation\n @param _request DEFINE request parameters\n @return Response from the underlying site"},"functionSelector":"42a4cf7d","id":3631,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"expression":{"id":3617,"name":"_request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3614,"src":"5261:8:17","typeDescriptions":{"typeIdentifier":"t_struct$_DEFINERequest_$1204_memory_ptr","typeString":"struct DEFINERequest memory"}},"id":3618,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5270:4:17","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":1199,"src":"5261:13:17","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_memory_ptr","typeString":"struct HEADRequest memory"}},"id":3619,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5275:4:17","memberName":"path","nodeType":"MemberAccess","referencedDeclaration":1135,"src":"5261:18:17","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":3620,"kind":"modifierInvocation","modifierName":{"id":3616,"name":"onlyAuthorizedOrigin","nameLocations":["5240:20:17"],"nodeType":"IdentifierPath","referencedDeclaration":3445,"src":"5240:20:17"},"nodeType":"ModifierInvocation","src":"5240:40:17"}],"name":"DEFINE","nameLocation":"5193:6:17","nodeType":"FunctionDefinition","parameters":{"id":3615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3614,"mutability":"mutable","name":"_request","nameLocation":"5221:8:17","nodeType":"VariableDeclaration","scope":3631,"src":"5200:29:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DEFINERequest_$1204_memory_ptr","typeString":"struct DEFINERequest"},"typeName":{"id":3613,"nodeType":"UserDefinedTypeName","pathNode":{"id":3612,"name":"DEFINERequest","nameLocations":["5200:13:17"],"nodeType":"IdentifierPath","referencedDeclaration":1204,"src":"5200:13:17"},"referencedDeclaration":1204,"src":"5200:13:17","typeDescriptions":{"typeIdentifier":"t_struct$_DEFINERequest_$1204_storage_ptr","typeString":"struct DEFINERequest"}},"visibility":"internal"}],"src":"5199:31:17"},"returnParameters":{"id":3624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3623,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3631,"src":"5290:21:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DEFINEResponse_$1213_memory_ptr","typeString":"struct DEFINEResponse"},"typeName":{"id":3622,"nodeType":"UserDefinedTypeName","pathNode":{"id":3621,"name":"DEFINEResponse","nameLocations":["5290:14:17"],"nodeType":"IdentifierPath","referencedDeclaration":1213,"src":"5290:14:17"},"referencedDeclaration":1213,"src":"5290:14:17","typeDescriptions":{"typeIdentifier":"t_struct$_DEFINEResponse_$1213_storage_ptr","typeString":"struct DEFINEResponse"}},"visibility":"internal"}],"src":"5289:23:17"},"scope":3700,"src":"5184:176:17","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":3650,"nodeType":"Block","src":"5656:47:17","statements":[{"expression":{"arguments":[{"id":3647,"name":"_request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3635,"src":"5686:8:17","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_memory_ptr","typeString":"struct HEADRequest memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_HEADRequest_$1142_memory_ptr","typeString":"struct HEADRequest memory"}],"expression":{"id":3645,"name":"site","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3356,"src":"5674:4:17","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWTTPSite_$787","typeString":"contract IBaseWTTPSite"}},"id":3646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5679:6:17","memberName":"DELETE","nodeType":"MemberAccess","referencedDeclaration":766,"src":"5674:11:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_HEADRequest_$1142_memory_ptr_$returns$_t_struct$_HEADResponse_$1158_memory_ptr_$","typeString":"function (struct HEADRequest memory) external returns (struct HEADResponse memory)"}},"id":3648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5674:21:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}},"functionReturnParameters":3644,"id":3649,"nodeType":"Return","src":"5667:28:17"}]},"documentation":{"id":3632,"nodeType":"StructuredDocumentation","src":"5372:158:17","text":"@notice Proxy DELETE requests with origin validation\n @param _request DELETE request parameters\n @return Response from the underlying site"},"functionSelector":"ca63628c","id":3651,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":3638,"name":"_request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3635,"src":"5611:8:17","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_memory_ptr","typeString":"struct HEADRequest memory"}},"id":3639,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5620:4:17","memberName":"path","nodeType":"MemberAccess","referencedDeclaration":1135,"src":"5611:13:17","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":3640,"kind":"modifierInvocation","modifierName":{"id":3637,"name":"onlyAuthorizedOrigin","nameLocations":["5590:20:17"],"nodeType":"IdentifierPath","referencedDeclaration":3445,"src":"5590:20:17"},"nodeType":"ModifierInvocation","src":"5590:35:17"}],"name":"DELETE","nameLocation":"5545:6:17","nodeType":"FunctionDefinition","parameters":{"id":3636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3635,"mutability":"mutable","name":"_request","nameLocation":"5571:8:17","nodeType":"VariableDeclaration","scope":3651,"src":"5552:27:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_memory_ptr","typeString":"struct HEADRequest"},"typeName":{"id":3634,"nodeType":"UserDefinedTypeName","pathNode":{"id":3633,"name":"HEADRequest","nameLocations":["5552:11:17"],"nodeType":"IdentifierPath","referencedDeclaration":1142,"src":"5552:11:17"},"referencedDeclaration":1142,"src":"5552:11:17","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_storage_ptr","typeString":"struct HEADRequest"}},"visibility":"internal"}],"src":"5551:29:17"},"returnParameters":{"id":3644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3643,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3651,"src":"5635:19:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse"},"typeName":{"id":3642,"nodeType":"UserDefinedTypeName","pathNode":{"id":3641,"name":"HEADResponse","nameLocations":["5635:12:17"],"nodeType":"IdentifierPath","referencedDeclaration":1158,"src":"5635:12:17"},"referencedDeclaration":1158,"src":"5635:12:17","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_storage_ptr","typeString":"struct HEADResponse"}},"visibility":"internal"}],"src":"5634:21:17"},"scope":3700,"src":"5536:167:17","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"body":{"id":3674,"nodeType":"Block","src":"6000:62:17","statements":[{"expression":{"arguments":[{"id":3671,"name":"_request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3655,"src":"6045:8:17","typeDescriptions":{"typeIdentifier":"t_struct$_PUTRequest_$1183_memory_ptr","typeString":"struct PUTRequest memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PUTRequest_$1183_memory_ptr","typeString":"struct PUTRequest memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PUTRequest_$1183_memory_ptr","typeString":"struct PUTRequest memory"}],"expression":{"id":3666,"name":"site","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3356,"src":"6018:4:17","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWTTPSite_$787","typeString":"contract IBaseWTTPSite"}},"id":3667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6023:3:17","memberName":"PUT","nodeType":"MemberAccess","referencedDeclaration":776,"src":"6018:8:17","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_PUTRequest_$1183_memory_ptr_$returns$_t_struct$_LOCATEResponse_$1168_memory_ptr_$","typeString":"function (struct PUTRequest memory) payable external returns (struct LOCATEResponse memory)"}},"id":3670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":3668,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6034:3:17","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6038:5:17","memberName":"value","nodeType":"MemberAccess","src":"6034:9:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"6018:26:17","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_PUTRequest_$1183_memory_ptr_$returns$_t_struct$_LOCATEResponse_$1168_memory_ptr_$value","typeString":"function (struct PUTRequest memory) payable external returns (struct LOCATEResponse memory)"}},"id":3672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6018:36:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_memory_ptr","typeString":"struct LOCATEResponse memory"}},"functionReturnParameters":3665,"id":3673,"nodeType":"Return","src":"6011:43:17"}]},"documentation":{"id":3652,"nodeType":"StructuredDocumentation","src":"5711:152:17","text":"@notice Proxy PUT requests with origin validation\n @param _request PUT request parameters\n @return Response from the underlying site"},"functionSelector":"b0184e01","id":3675,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"expression":{"id":3658,"name":"_request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3655,"src":"5948:8:17","typeDescriptions":{"typeIdentifier":"t_struct$_PUTRequest_$1183_memory_ptr","typeString":"struct PUTRequest memory"}},"id":3659,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5957:4:17","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":1173,"src":"5948:13:17","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_memory_ptr","typeString":"struct HEADRequest memory"}},"id":3660,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5962:4:17","memberName":"path","nodeType":"MemberAccess","referencedDeclaration":1135,"src":"5948:18:17","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":3661,"kind":"modifierInvocation","modifierName":{"id":3657,"name":"onlyAuthorizedOrigin","nameLocations":["5927:20:17"],"nodeType":"IdentifierPath","referencedDeclaration":3445,"src":"5927:20:17"},"nodeType":"ModifierInvocation","src":"5927:40:17"}],"name":"PUT","nameLocation":"5878:3:17","nodeType":"FunctionDefinition","parameters":{"id":3656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3655,"mutability":"mutable","name":"_request","nameLocation":"5900:8:17","nodeType":"VariableDeclaration","scope":3675,"src":"5882:26:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PUTRequest_$1183_memory_ptr","typeString":"struct PUTRequest"},"typeName":{"id":3654,"nodeType":"UserDefinedTypeName","pathNode":{"id":3653,"name":"PUTRequest","nameLocations":["5882:10:17"],"nodeType":"IdentifierPath","referencedDeclaration":1183,"src":"5882:10:17"},"referencedDeclaration":1183,"src":"5882:10:17","typeDescriptions":{"typeIdentifier":"t_struct$_PUTRequest_$1183_storage_ptr","typeString":"struct PUTRequest"}},"visibility":"internal"}],"src":"5881:28:17"},"returnParameters":{"id":3665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3664,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3675,"src":"5977:21:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_memory_ptr","typeString":"struct LOCATEResponse"},"typeName":{"id":3663,"nodeType":"UserDefinedTypeName","pathNode":{"id":3662,"name":"LOCATEResponse","nameLocations":["5977:14:17"],"nodeType":"IdentifierPath","referencedDeclaration":1168,"src":"5977:14:17"},"referencedDeclaration":1168,"src":"5977:14:17","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_storage_ptr","typeString":"struct LOCATEResponse"}},"visibility":"internal"}],"src":"5976:23:17"},"scope":3700,"src":"5869:193:17","stateMutability":"payable","virtual":false,"visibility":"external"},{"body":{"id":3698,"nodeType":"Block","src":"6371:64:17","statements":[{"expression":{"arguments":[{"id":3695,"name":"_request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"6418:8:17","typeDescriptions":{"typeIdentifier":"t_struct$_PATCHRequest_$1194_memory_ptr","typeString":"struct PATCHRequest memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PATCHRequest_$1194_memory_ptr","typeString":"struct PATCHRequest memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_PATCHRequest_$1194_memory_ptr","typeString":"struct PATCHRequest memory"}],"expression":{"id":3690,"name":"site","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3356,"src":"6389:4:17","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWTTPSite_$787","typeString":"contract IBaseWTTPSite"}},"id":3691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6394:5:17","memberName":"PATCH","nodeType":"MemberAccess","referencedDeclaration":786,"src":"6389:10:17","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_PATCHRequest_$1194_memory_ptr_$returns$_t_struct$_LOCATEResponse_$1168_memory_ptr_$","typeString":"function (struct PATCHRequest memory) payable external returns (struct LOCATEResponse memory)"}},"id":3694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":3692,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6407:3:17","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6411:5:17","memberName":"value","nodeType":"MemberAccess","src":"6407:9:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"6389:28:17","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_PATCHRequest_$1194_memory_ptr_$returns$_t_struct$_LOCATEResponse_$1168_memory_ptr_$value","typeString":"function (struct PATCHRequest memory) payable external returns (struct LOCATEResponse memory)"}},"id":3696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6389:38:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_memory_ptr","typeString":"struct LOCATEResponse memory"}},"functionReturnParameters":3689,"id":3697,"nodeType":"Return","src":"6382:45:17"}]},"documentation":{"id":3676,"nodeType":"StructuredDocumentation","src":"6074:156:17","text":"@notice Proxy PATCH requests with origin validation\n @param _request PATCH request parameters\n @return Response from the underlying site"},"functionSelector":"dd0fec4c","id":3699,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"expression":{"id":3682,"name":"_request","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"6319:8:17","typeDescriptions":{"typeIdentifier":"t_struct$_PATCHRequest_$1194_memory_ptr","typeString":"struct PATCHRequest memory"}},"id":3683,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6328:4:17","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":1188,"src":"6319:13:17","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_memory_ptr","typeString":"struct HEADRequest memory"}},"id":3684,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6333:4:17","memberName":"path","nodeType":"MemberAccess","referencedDeclaration":1135,"src":"6319:18:17","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":3685,"kind":"modifierInvocation","modifierName":{"id":3681,"name":"onlyAuthorizedOrigin","nameLocations":["6298:20:17"],"nodeType":"IdentifierPath","referencedDeclaration":3445,"src":"6298:20:17"},"nodeType":"ModifierInvocation","src":"6298:40:17"}],"name":"PATCH","nameLocation":"6245:5:17","nodeType":"FunctionDefinition","parameters":{"id":3680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3679,"mutability":"mutable","name":"_request","nameLocation":"6271:8:17","nodeType":"VariableDeclaration","scope":3699,"src":"6251:28:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PATCHRequest_$1194_memory_ptr","typeString":"struct PATCHRequest"},"typeName":{"id":3678,"nodeType":"UserDefinedTypeName","pathNode":{"id":3677,"name":"PATCHRequest","nameLocations":["6251:12:17"],"nodeType":"IdentifierPath","referencedDeclaration":1194,"src":"6251:12:17"},"referencedDeclaration":1194,"src":"6251:12:17","typeDescriptions":{"typeIdentifier":"t_struct$_PATCHRequest_$1194_storage_ptr","typeString":"struct PATCHRequest"}},"visibility":"internal"}],"src":"6250:30:17"},"returnParameters":{"id":3689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3688,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3699,"src":"6348:21:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_memory_ptr","typeString":"struct LOCATEResponse"},"typeName":{"id":3687,"nodeType":"UserDefinedTypeName","pathNode":{"id":3686,"name":"LOCATEResponse","nameLocations":["6348:14:17"],"nodeType":"IdentifierPath","referencedDeclaration":1168,"src":"6348:14:17"},"referencedDeclaration":1168,"src":"6348:14:17","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_storage_ptr","typeString":"struct LOCATEResponse"}},"visibility":"internal"}],"src":"6347:23:17"},"scope":3700,"src":"6236:199:17","stateMutability":"payable","virtual":false,"visibility":"external"}],"scope":3701,"src":"1528:4910:17","usedErrors":[306,309,829,892,906,3349],"usedEvents":[318,327,336,819,824,3377]}],"src":"830:5610:17"},"id":17},"contracts/extensions/WTTPAdminNFT.sol":{"ast":{"absolutePath":"contracts/extensions/WTTPAdminNFT.sol","exportedSymbols":{},"id":3702,"nodeType":"SourceUnit","nodes":[],"src":"792:0:18"},"id":18},"contracts/extensions/WTTPErrorSite.sol":{"ast":{"absolutePath":"contracts/extensions/WTTPErrorSite.sol","exportedSymbols":{"BYTE_RESPONSE_LIMIT":[835],"CHUNK_RESPONSE_LIMIT":[832],"CORSPolicy":[1000],"CORSPreset":[972],"CacheControl":[984],"CachePreset":[964],"DEFINERequest":[1204],"DEFINEResponse":[1213],"DEFINESuccess":[1468],"DELETESuccess":[1492],"DataExists":[618],"DataPointRegistered":[652],"DataPointRoyalty":[677],"DataPointSizes":[1257],"DataPointWritten":[614],"DataRegistration":[1064],"GETRequest":[1280],"GETResponse":[1290],"HEADRequest":[1142],"HEADResponse":[1158],"HeaderCreated":[840],"HeaderInfo":[1022],"HeaderUpdated":[845],"IAccessControl":[379],"IBaseWTTPPermissions":[711],"IBaseWTTPSite":[787],"IBaseWTTPStorage":[809],"IDataPointRegistry":[534],"IDataPointStorage":[573],"IOwnable":[608],"InsufficientRoyaltyPayment":[626],"InvalidDPS":[622],"InvalidData":[620],"InvalidHeader":[878],"InvalidPublisher":[630],"InvalidRole":[829],"LOCATERequest":[1251],"LOCATEResponse":[1168],"LOCATEResponseSecure":[1270],"MetadataDeleted":[855],"MetadataUpdated":[850],"Method":[955],"OPTIONSResponse":[1131],"PATCHRequest":[1194],"PATCHSuccess":[1484],"PUTRequest":[1183],"PUTSuccess":[1476],"ProcessedData":[1263],"Range":[1241],"Redirect":[1008],"ResourceCreated":[860],"ResourceDeleted":[872],"ResourceMetadata":[1053],"ResourceProperties":[1035],"ResourceResponse":[885],"ResourceRoleCreated":[824],"ResourceUpdated":[867],"RoyaltiesCollected":[638],"RoyaltiesPaid":[646],"SiteAdminChanged":[819],"WTTPErrorSite":[3720],"_400":[892],"_402":[899],"_403":[906],"_404":[913],"_405":[922],"_409":[929],"_410":[934],"_416":[944],"calculateDataPointAddress":[671],"calculateEtag":[1233],"contentCode_":[1460],"getHeaderAddress":[1123],"maxMethods_":[1306],"methodsToMask":[1107],"normalizeRange_":[1434]},"id":3721,"license":"AGPL-3.0","nodeType":"SourceUnit","nodes":[{"id":3703,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"38:24:19"},{"absolutePath":"@wttp/core/contracts/interfaces/IBaseWTTPSite.sol","file":"@wttp/core/contracts/interfaces/IBaseWTTPSite.sol","id":3704,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3721,"sourceUnit":788,"src":"66:59:19","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[],"canonicalName":"WTTPErrorSite","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":3720,"linearizedBaseContracts":[3720],"name":"WTTPErrorSite","nameLocation":"147:13:19","nodeType":"ContractDefinition","nodes":[{"constant":false,"functionSelector":"e0d370ac","id":3707,"mutability":"immutable","name":"site","nameLocation":"201:4:19","nodeType":"VariableDeclaration","scope":3720,"src":"170:35:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWTTPSite_$787","typeString":"contract IBaseWTTPSite"},"typeName":{"id":3706,"nodeType":"UserDefinedTypeName","pathNode":{"id":3705,"name":"IBaseWTTPSite","nameLocations":["170:13:19"],"nodeType":"IdentifierPath","referencedDeclaration":787,"src":"170:13:19"},"referencedDeclaration":787,"src":"170:13:19","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWTTPSite_$787","typeString":"contract IBaseWTTPSite"}},"visibility":"public"},{"body":{"id":3718,"nodeType":"Block","src":"248:53:19","statements":[{"expression":{"id":3716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3712,"name":"site","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3707,"src":"259:4:19","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWTTPSite_$787","typeString":"contract IBaseWTTPSite"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3714,"name":"_siteAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3709,"src":"280:12:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3713,"name":"IBaseWTTPSite","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":787,"src":"266:13:19","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseWTTPSite_$787_$","typeString":"type(contract IBaseWTTPSite)"}},"id":3715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"266:27:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWTTPSite_$787","typeString":"contract IBaseWTTPSite"}},"src":"259:34:19","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseWTTPSite_$787","typeString":"contract IBaseWTTPSite"}},"id":3717,"nodeType":"ExpressionStatement","src":"259:34:19"}]},"id":3719,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3709,"mutability":"mutable","name":"_siteAddress","nameLocation":"234:12:19","nodeType":"VariableDeclaration","scope":3719,"src":"226:20:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3708,"name":"address","nodeType":"ElementaryTypeName","src":"226:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"225:22:19"},"returnParameters":{"id":3711,"nodeType":"ParameterList","parameters":[],"src":"248:0:19"},"scope":3720,"src":"214:87:19","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":3721,"src":"129:183:19","usedErrors":[],"usedEvents":[]}],"src":"38:274:19"},"id":19},"contracts/extensions/WTTPForwarder.sol":{"ast":{"absolutePath":"contracts/extensions/WTTPForwarder.sol","exportedSymbols":{"BYTE_RESPONSE_LIMIT":[835],"CHUNK_RESPONSE_LIMIT":[832],"CORSPolicy":[1000],"CORSPreset":[972],"CacheControl":[984],"CachePreset":[964],"DEFINERequest":[1204],"DEFINEResponse":[1213],"DEFINESuccess":[1468],"DELETESuccess":[1492],"DataExists":[618],"DataPointRegistered":[652],"DataPointRoyalty":[677],"DataPointSizes":[1257],"DataPointWritten":[614],"DataRegistration":[1064],"GETRequest":[1280],"GETResponse":[1290],"HEADRequest":[1142],"HEADResponse":[1158],"HeaderCreated":[840],"HeaderInfo":[1022],"HeaderUpdated":[845],"IDataPointRegistry":[534],"IDataPointStorage":[573],"IOwnable":[608],"InsufficientRoyaltyPayment":[626],"InvalidDPS":[622],"InvalidData":[620],"InvalidHeader":[878],"InvalidPublisher":[630],"InvalidRole":[829],"LOCATERequest":[1251],"LOCATEResponse":[1168],"LOCATEResponseSecure":[1270],"MetadataDeleted":[855],"MetadataUpdated":[850],"Method":[955],"OPTIONSResponse":[1131],"PATCHRequest":[1194],"PATCHSuccess":[1484],"PUTRequest":[1183],"PUTSuccess":[1476],"ProcessedData":[1263],"Range":[1241],"Redirect":[1008],"ResourceCreated":[860],"ResourceDeleted":[872],"ResourceMetadata":[1053],"ResourceProperties":[1035],"ResourceResponse":[885],"ResourceRoleCreated":[824],"ResourceUpdated":[867],"RoyaltiesCollected":[638],"RoyaltiesPaid":[646],"SiteAdminChanged":[819],"WTTPForwarder":[3994],"_400":[892],"_402":[899],"_403":[906],"_404":[913],"_405":[922],"_409":[929],"_410":[934],"_416":[944],"calculateDataPointAddress":[671],"calculateEtag":[1233],"contentCode_":[1460],"getHeaderAddress":[1123],"maxMethods_":[1306],"methodsToMask":[1107],"normalizeRange_":[1434]},"id":3995,"license":"AGPL-3.0","nodeType":"SourceUnit","nodes":[{"id":3722,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"830:24:20"},{"absolutePath":"@wttp/core/contracts/types/WTTPTypes.sol","file":"@wttp/core/contracts/types/WTTPTypes.sol","id":3723,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3995,"sourceUnit":1493,"src":"858:50:20","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[],"canonicalName":"WTTPForwarder","contractDependencies":[],"contractKind":"contract","documentation":{"id":3724,"nodeType":"StructuredDocumentation","src":"912:267:20","text":"@title WTTP Forwarder Contract\n @notice Stores simple redirect rules for a smart contract and builds minimal WTTP responses\n @dev Adding this code to an ERC20 contract for example will allow developers to redirect all WTTP calls to an external WTTP site"},"fullyImplemented":true,"id":3994,"linearizedBaseContracts":[3994],"name":"WTTPForwarder","nameLocation":"1197:13:20","nodeType":"ContractDefinition","nodes":[{"constant":true,"functionSelector":"d5e608ad","id":3727,"mutability":"constant","name":"ALLOWED_METHODS","nameLocation":"1243:15:20","nodeType":"VariableDeclaration","scope":3994,"src":"1220:43:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3725,"name":"uint16","nodeType":"ElementaryTypeName","src":"1220:6:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"value":{"hexValue":"3637","id":3726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1261:2:20","typeDescriptions":{"typeIdentifier":"t_rational_67_by_1","typeString":"int_const 67"},"value":"67"},"visibility":"public"},{"constant":false,"documentation":{"id":3728,"nodeType":"StructuredDocumentation","src":"1326:44:20","text":"@notice Base URL to redirect requests to"},"functionSelector":"40c84b0e","id":3730,"mutability":"mutable","name":"baseURL","nameLocation":"1390:7:20","nodeType":"VariableDeclaration","scope":3994,"src":"1376:21:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":3729,"name":"string","nodeType":"ElementaryTypeName","src":"1376:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"public"},{"constant":false,"documentation":{"id":3731,"nodeType":"StructuredDocumentation","src":"1406:47:20","text":"@notice HTTP redirect status code (300-310)"},"functionSelector":"ac2845ef","id":3733,"mutability":"mutable","name":"redirectCode","nameLocation":"1473:12:20","nodeType":"VariableDeclaration","scope":3994,"src":"1459:26:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3732,"name":"uint16","nodeType":"ElementaryTypeName","src":"1459:6:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"public"},{"constant":false,"id":3735,"mutability":"mutable","name":"lastModified","nameLocation":"1511:12:20","nodeType":"VariableDeclaration","scope":3994,"src":"1494:29:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3734,"name":"uint256","nodeType":"ElementaryTypeName","src":"1494:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"anonymous":false,"documentation":{"id":3736,"nodeType":"StructuredDocumentation","src":"1532:64:20","text":"@notice Event emitted when redirect configuration is updated"},"eventSelector":"faf0c3d6fcc4918e322fa24b43d7dcd136c82cbce3c4c27a8d7ea063d7d207ad","id":3742,"name":"RedirectConfigUpdated","nameLocation":"1608:21:20","nodeType":"EventDefinition","parameters":{"id":3741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3738,"indexed":false,"mutability":"mutable","name":"baseURL","nameLocation":"1637:7:20","nodeType":"VariableDeclaration","scope":3742,"src":"1630:14:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3737,"name":"string","nodeType":"ElementaryTypeName","src":"1630:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3740,"indexed":false,"mutability":"mutable","name":"redirectCode","nameLocation":"1653:12:20","nodeType":"VariableDeclaration","scope":3742,"src":"1646:19:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3739,"name":"uint16","nodeType":"ElementaryTypeName","src":"1646:6:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1629:37:20"},"src":"1602:65:20"},{"documentation":{"id":3743,"nodeType":"StructuredDocumentation","src":"1675:113:20","text":"@notice Error thrown when an invalid redirect code is provided\n @param code The invalid redirect code"},"errorSelector":"50d4c0a2","id":3747,"name":"InvalidRedirect","nameLocation":"1800:15:20","nodeType":"ErrorDefinition","parameters":{"id":3746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3745,"mutability":"mutable","name":"code","nameLocation":"1823:4:20","nodeType":"VariableDeclaration","scope":3747,"src":"1816:11:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3744,"name":"uint16","nodeType":"ElementaryTypeName","src":"1816:6:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"1815:13:20"},"src":"1794:35:20"},{"documentation":{"id":3748,"nodeType":"StructuredDocumentation","src":"1837:59:20","text":"@notice Error thrown when an empty base URL is provided"},"errorSelector":"1969df4e","id":3750,"name":"EmptyBaseURL","nameLocation":"1908:12:20","nodeType":"ErrorDefinition","parameters":{"id":3749,"nodeType":"ParameterList","parameters":[],"src":"1920:2:20"},"src":"1902:21:20"},{"body":{"id":3763,"nodeType":"Block","src":"2309:62:20","statements":[{"expression":{"arguments":[{"id":3759,"name":"_baseURL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3753,"src":"2339:8:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":3760,"name":"_redirectCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3755,"src":"2349:13:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":3758,"name":"_setRedirectConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3821,"src":"2320:18:20","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_uint16_$returns$__$","typeString":"function (string memory,uint16)"}},"id":3761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2320:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3762,"nodeType":"ExpressionStatement","src":"2320:43:20"}]},"documentation":{"id":3751,"nodeType":"StructuredDocumentation","src":"1931:289:20","text":"@notice Initializes the forwarder with redirect configuration\n @param _baseURL Base URL to redirect to\n @dev since the path should include a leading slash, the baseURL should not include a trailing slash\n @param _redirectCode HTTP redirect status code (300-310)"},"id":3764,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3756,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3753,"mutability":"mutable","name":"_baseURL","nameLocation":"2262:8:20","nodeType":"VariableDeclaration","scope":3764,"src":"2248:22:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3752,"name":"string","nodeType":"ElementaryTypeName","src":"2248:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3755,"mutability":"mutable","name":"_redirectCode","nameLocation":"2288:13:20","nodeType":"VariableDeclaration","scope":3764,"src":"2281:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3754,"name":"uint16","nodeType":"ElementaryTypeName","src":"2281:6:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"2237:71:20"},"returnParameters":{"id":3757,"nodeType":"ParameterList","parameters":[],"src":"2309:0:20"},"scope":3994,"src":"2226:145:20","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3820,"nodeType":"Block","src":"3159:500:20","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":3774,"name":"_baseURL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3767,"src":"3180:8:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":3773,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3174:5:20","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":3772,"name":"bytes","nodeType":"ElementaryTypeName","src":"3174:5:20","typeDescriptions":{}}},"id":3775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3174:15:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":3776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3190:6:20","memberName":"length","nodeType":"MemberAccess","src":"3174:22:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3200:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3174:27:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3783,"nodeType":"IfStatement","src":"3170:81:20","trueBody":{"id":3782,"nodeType":"Block","src":"3203:48:20","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":3779,"name":"EmptyBaseURL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3750,"src":"3225:12:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":3780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3225:14:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":3781,"nodeType":"RevertStatement","src":"3218:21:20"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":3786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3784,"name":"_redirectCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3769,"src":"3347:13:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":3785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3364:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3347:18:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":3789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3787,"name":"_redirectCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3769,"src":"3370:13:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"333030","id":3788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3386:3:20","typeDescriptions":{"typeIdentifier":"t_rational_300_by_1","typeString":"int_const 300"},"value":"300"},"src":"3370:19:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint16","typeString":"uint16"},"id":3792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3790,"name":"_redirectCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3769,"src":"3393:13:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"333130","id":3791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3409:3:20","typeDescriptions":{"typeIdentifier":"t_rational_310_by_1","typeString":"int_const 310"},"value":"310"},"src":"3393:19:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3370:42:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":3794,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3369:44:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3347:66:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3801,"nodeType":"IfStatement","src":"3343:136:20","trueBody":{"id":3800,"nodeType":"Block","src":"3415:64:20","statements":[{"errorCall":{"arguments":[{"id":3797,"name":"_redirectCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3769,"src":"3453:13:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":3796,"name":"InvalidRedirect","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3747,"src":"3437:15:20","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint16_$returns$_t_error_$","typeString":"function (uint16) pure returns (error)"}},"id":3798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3437:30:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":3799,"nodeType":"RevertStatement","src":"3430:37:20"}]}},{"expression":{"id":3804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3802,"name":"baseURL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3730,"src":"3491:7:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3803,"name":"_baseURL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3767,"src":"3501:8:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"3491:18:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":3805,"nodeType":"ExpressionStatement","src":"3491:18:20"},{"expression":{"id":3808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3806,"name":"redirectCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3733,"src":"3520:12:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3807,"name":"_redirectCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3769,"src":"3535:13:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"3520:28:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":3809,"nodeType":"ExpressionStatement","src":"3520:28:20"},{"expression":{"id":3813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3810,"name":"lastModified","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3735,"src":"3559:12:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":3811,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3574:5:20","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":3812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3580:9:20","memberName":"timestamp","nodeType":"MemberAccess","src":"3574:15:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3559:30:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3814,"nodeType":"ExpressionStatement","src":"3559:30:20"},{"eventCall":{"arguments":[{"id":3816,"name":"_baseURL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3767,"src":"3627:8:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":3817,"name":"_redirectCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3769,"src":"3637:13:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint16","typeString":"uint16"}],"id":3815,"name":"RedirectConfigUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3742,"src":"3605:21:20","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$_t_uint16_$returns$__$","typeString":"function (string memory,uint16)"}},"id":3818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3605:46:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3819,"nodeType":"EmitStatement","src":"3600:51:20"}]},"documentation":{"id":3765,"nodeType":"StructuredDocumentation","src":"2880:190:20","text":"@notice Internal function to set redirect configuration with validation\n @param _baseURL Base URL to redirect to\n @param _redirectCode HTTP redirect status code (300-310)"},"id":3821,"implemented":true,"kind":"function","modifiers":[],"name":"_setRedirectConfig","nameLocation":"3085:18:20","nodeType":"FunctionDefinition","parameters":{"id":3770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3767,"mutability":"mutable","name":"_baseURL","nameLocation":"3118:8:20","nodeType":"VariableDeclaration","scope":3821,"src":"3104:22:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3766,"name":"string","nodeType":"ElementaryTypeName","src":"3104:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3769,"mutability":"mutable","name":"_redirectCode","nameLocation":"3135:13:20","nodeType":"VariableDeclaration","scope":3821,"src":"3128:20:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":3768,"name":"uint16","nodeType":"ElementaryTypeName","src":"3128:6:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"3103:46:20"},"returnParameters":{"id":3771,"nodeType":"ParameterList","parameters":[],"src":"3159:0:20"},"scope":3994,"src":"3076:583:20","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3838,"nodeType":"Block","src":"3891:66:20","statements":[{"expression":{"arguments":[{"arguments":[{"id":3833,"name":"baseURL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3730,"src":"3933:7:20","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"id":3834,"name":"_path","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3824,"src":"3942:5:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":3831,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3916:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3832,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3920:12:20","memberName":"encodePacked","nodeType":"MemberAccess","src":"3916:16:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3916:32:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3830,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3909:6:20","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":3829,"name":"string","nodeType":"ElementaryTypeName","src":"3909:6:20","typeDescriptions":{}}},"id":3836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3909:40:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":3828,"id":3837,"nodeType":"Return","src":"3902:47:20"}]},"documentation":{"id":3822,"nodeType":"StructuredDocumentation","src":"3667:134:20","text":"@notice Builds the redirect URL for a given path\n @param _path The request path\n @return The complete redirect URL"},"id":3839,"implemented":true,"kind":"function","modifiers":[],"name":"_getRedirectURL","nameLocation":"3816:15:20","nodeType":"FunctionDefinition","parameters":{"id":3825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3824,"mutability":"mutable","name":"_path","nameLocation":"3846:5:20","nodeType":"VariableDeclaration","scope":3839,"src":"3832:19:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3823,"name":"string","nodeType":"ElementaryTypeName","src":"3832:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3831:21:20"},"returnParameters":{"id":3828,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3827,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3839,"src":"3876:13:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3826,"name":"string","nodeType":"ElementaryTypeName","src":"3876:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3875:15:20"},"scope":3994,"src":"3807:150:20","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3860,"nodeType":"Block","src":"4353:97:20","statements":[{"expression":{"id":3852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3848,"name":"optionsResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3846,"src":"4364:15:20","typeDescriptions":{"typeIdentifier":"t_struct$_OPTIONSResponse_$1131_memory_ptr","typeString":"struct OPTIONSResponse memory"}},"id":3850,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4380:6:20","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":1127,"src":"4364:22:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"323034","id":3851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4389:3:20","typeDescriptions":{"typeIdentifier":"t_rational_204_by_1","typeString":"int_const 204"},"value":"204"},"src":"4364:28:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":3853,"nodeType":"ExpressionStatement","src":"4364:28:20"},{"expression":{"id":3858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3854,"name":"optionsResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3846,"src":"4403:15:20","typeDescriptions":{"typeIdentifier":"t_struct$_OPTIONSResponse_$1131_memory_ptr","typeString":"struct OPTIONSResponse memory"}},"id":3856,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4419:5:20","memberName":"allow","nodeType":"MemberAccess","referencedDeclaration":1130,"src":"4403:21:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3857,"name":"ALLOWED_METHODS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3727,"src":"4427:15:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"4403:39:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":3859,"nodeType":"ExpressionStatement","src":"4403:39:20"}]},"documentation":{"id":3840,"nodeType":"StructuredDocumentation","src":"4185:57:20","text":"@return optionsResponse Response with redirect status"},"functionSelector":"fd05b634","id":3861,"implemented":true,"kind":"function","modifiers":[],"name":"OPTIONS","nameLocation":"4257:7:20","nodeType":"FunctionDefinition","parameters":{"id":3843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3842,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3861,"src":"4265:13:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3841,"name":"string","nodeType":"ElementaryTypeName","src":"4265:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4264:25:20"},"returnParameters":{"id":3847,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3846,"mutability":"mutable","name":"optionsResponse","nameLocation":"4336:15:20","nodeType":"VariableDeclaration","scope":3861,"src":"4313:38:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_OPTIONSResponse_$1131_memory_ptr","typeString":"struct OPTIONSResponse"},"typeName":{"id":3845,"nodeType":"UserDefinedTypeName","pathNode":{"id":3844,"name":"OPTIONSResponse","nameLocations":["4313:15:20"],"nodeType":"IdentifierPath","referencedDeclaration":1131,"src":"4313:15:20"},"referencedDeclaration":1131,"src":"4313:15:20","typeDescriptions":{"typeIdentifier":"t_struct$_OPTIONSResponse_$1131_storage_ptr","typeString":"struct OPTIONSResponse"}},"visibility":"internal"}],"src":"4312:40:20"},"scope":3994,"src":"4248:202:20","stateMutability":"pure","virtual":false,"visibility":"external"},{"body":{"id":3972,"nodeType":"Block","src":"4733:1012:20","statements":[{"expression":{"id":3877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":3871,"name":"head","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3869,"src":"4777:4:20","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}},"id":3874,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4782:8:20","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":1154,"src":"4777:13:20","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"}},"id":3875,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4791:12:20","memberName":"lastModified","nodeType":"MemberAccess","referencedDeclaration":1049,"src":"4777:26:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3876,"name":"lastModified","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3735,"src":"4806:12:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4777:41:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3878,"nodeType":"ExpressionStatement","src":"4777:41:20"},{"expression":{"id":3885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":3879,"name":"head","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3869,"src":"4829:4:20","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}},"id":3882,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4834:8:20","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":1154,"src":"4829:13:20","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"}},"id":3883,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4843:4:20","memberName":"size","nodeType":"MemberAccess","referencedDeclaration":1043,"src":"4829:18:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":3884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4850:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4829:22:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3886,"nodeType":"ExpressionStatement","src":"4829:22:20"},{"expression":{"id":3893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":3887,"name":"head","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3869,"src":"4891:4:20","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}},"id":3890,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4896:8:20","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":1154,"src":"4891:13:20","typeDescriptions":{"typeIdentifier":"t_struct$_ResourceMetadata_$1053_memory_ptr","typeString":"struct ResourceMetadata memory"}},"id":3891,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4905:7:20","memberName":"version","nodeType":"MemberAccess","referencedDeclaration":1046,"src":"4891:21:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":3892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4915:1:20","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4891:25:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3894,"nodeType":"ExpressionStatement","src":"4891:25:20"},{"assignments":[3896],"declarations":[{"constant":false,"id":3896,"mutability":"mutable","name":"redirectURL","nameLocation":"4943:11:20","nodeType":"VariableDeclaration","scope":3972,"src":"4929:25:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3895,"name":"string","nodeType":"ElementaryTypeName","src":"4929:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":3901,"initialValue":{"arguments":[{"expression":{"id":3898,"name":"headRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3865,"src":"4973:11:20","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_memory_ptr","typeString":"struct HEADRequest memory"}},"id":3899,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4985:4:20","memberName":"path","nodeType":"MemberAccess","referencedDeclaration":1135,"src":"4973:16:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":3897,"name":"_getRedirectURL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3839,"src":"4957:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) view returns (string memory)"}},"id":3900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4957:33:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"4929:61:20"},{"expression":{"id":3912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3902,"name":"head","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3869,"src":"5054:4:20","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}},"id":3904,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5059:4:20","memberName":"etag","nodeType":"MemberAccess","referencedDeclaration":1157,"src":"5054:9:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":3908,"name":"redirectCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3733,"src":"5093:12:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3909,"name":"redirectURL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3896,"src":"5107:11:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":3906,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5076:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3907,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5080:12:20","memberName":"encodePacked","nodeType":"MemberAccess","src":"5076:16:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":3910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5076:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3905,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5066:9:20","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":3911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5066:54:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5054:66:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3913,"nodeType":"ExpressionStatement","src":"5054:66:20"},{"expression":{"id":3922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"expression":{"id":3914,"name":"head","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3869,"src":"5133:4:20","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}},"id":3918,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5138:10:20","memberName":"headerInfo","nodeType":"MemberAccess","referencedDeclaration":1150,"src":"5133:15:20","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"}},"id":3919,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5149:4:20","memberName":"cors","nodeType":"MemberAccess","referencedDeclaration":1017,"src":"5133:20:20","typeDescriptions":{"typeIdentifier":"t_struct$_CORSPolicy_$1000_memory_ptr","typeString":"struct CORSPolicy memory"}},"id":3920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5154:7:20","memberName":"methods","nodeType":"MemberAccess","referencedDeclaration":988,"src":"5133:28:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3921,"name":"ALLOWED_METHODS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3727,"src":"5164:15:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"5133:46:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":3923,"nodeType":"ExpressionStatement","src":"5133:46:20"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3924,"name":"headRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3865,"src":"5255:11:20","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_memory_ptr","typeString":"struct HEADRequest memory"}},"id":3925,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5267:15:20","memberName":"ifModifiedSince","nodeType":"MemberAccess","referencedDeclaration":1138,"src":"5255:27:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5285:1:20","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5255:31:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3928,"name":"headRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3865,"src":"5290:11:20","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_memory_ptr","typeString":"struct HEADRequest memory"}},"id":3929,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5302:15:20","memberName":"ifModifiedSince","nodeType":"MemberAccess","referencedDeclaration":1138,"src":"5290:27:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":3930,"name":"lastModified","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3735,"src":"5320:12:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5290:42:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5255:77:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":3933,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5254:79:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":3940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3934,"name":"headRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3865,"src":"5372:11:20","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_memory_ptr","typeString":"struct HEADRequest memory"}},"id":3935,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5384:11:20","memberName":"ifNoneMatch","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"5372:23:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":3938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5407:1:20","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":3937,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5399:7:20","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3936,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5399:7:20","typeDescriptions":{}}},"id":3939,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5399:10:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5372:37:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":3945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3941,"name":"headRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3865,"src":"5413:11:20","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_memory_ptr","typeString":"struct HEADRequest memory"}},"id":3942,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5425:11:20","memberName":"ifNoneMatch","nodeType":"MemberAccess","referencedDeclaration":1141,"src":"5413:23:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":3943,"name":"head","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3869,"src":"5440:4:20","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}},"id":3944,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5445:4:20","memberName":"etag","nodeType":"MemberAccess","referencedDeclaration":1157,"src":"5440:9:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5413:36:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5372:77:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":3947,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5371:79:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5254:196:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3958,"nodeType":"IfStatement","src":"5236:313:20","trueBody":{"id":3957,"nodeType":"Block","src":"5479:70:20","statements":[{"expression":{"id":3953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3949,"name":"head","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3869,"src":"5494:4:20","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}},"id":3951,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5499:6:20","memberName":"status","nodeType":"MemberAccess","referencedDeclaration":1146,"src":"5494:11:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"333034","id":3952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5508:3:20","typeDescriptions":{"typeIdentifier":"t_rational_304_by_1","typeString":"int_const 304"},"value":"304"},"src":"5494:17:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"id":3954,"nodeType":"ExpressionStatement","src":"5494:17:20"},{"expression":{"id":3955,"name":"head","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3869,"src":"5533:4:20","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}},"functionReturnParameters":3870,"id":3956,"nodeType":"Return","src":"5526:11:20"}]}},{"expression":{"id":3968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":3959,"name":"head","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3869,"src":"5598:4:20","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}},"id":3962,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5603:10:20","memberName":"headerInfo","nodeType":"MemberAccess","referencedDeclaration":1150,"src":"5598:15:20","typeDescriptions":{"typeIdentifier":"t_struct$_HeaderInfo_$1022_memory_ptr","typeString":"struct HeaderInfo memory"}},"id":3963,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5614:8:20","memberName":"redirect","nodeType":"MemberAccess","referencedDeclaration":1021,"src":"5598:24:20","typeDescriptions":{"typeIdentifier":"t_struct$_Redirect_$1008_memory_ptr","typeString":"struct Redirect memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3965,"name":"redirectCode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3733,"src":"5655:12:20","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},{"id":3966,"name":"redirectURL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3896,"src":"5692:11:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint16","typeString":"uint16"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":3964,"name":"Redirect","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1008,"src":"5625:8:20","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Redirect_$1008_storage_ptr_$","typeString":"type(struct Redirect storage pointer)"}},"id":3967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["5649:4:20","5682:8:20"],"names":["code","location"],"nodeType":"FunctionCall","src":"5625:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Redirect_$1008_memory_ptr","typeString":"struct Redirect memory"}},"src":"5598:117:20","typeDescriptions":{"typeIdentifier":"t_struct$_Redirect_$1008_memory_ptr","typeString":"struct Redirect memory"}},"id":3969,"nodeType":"ExpressionStatement","src":"5598:117:20"},{"expression":{"id":3970,"name":"head","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3869,"src":"5733:4:20","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}},"functionReturnParameters":3870,"id":3971,"nodeType":"Return","src":"5726:11:20"}]},"documentation":{"id":3862,"nodeType":"StructuredDocumentation","src":"4458:176:20","text":"@notice Handles HEAD requests with redirect information\n @param headRequest Request information including path\n @return head Response with redirect metadata"},"functionSelector":"28699f17","id":3973,"implemented":true,"kind":"function","modifiers":[],"name":"HEAD","nameLocation":"4649:4:20","nodeType":"FunctionDefinition","parameters":{"id":3866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3865,"mutability":"mutable","name":"headRequest","nameLocation":"4673:11:20","nodeType":"VariableDeclaration","scope":3973,"src":"4654:30:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_memory_ptr","typeString":"struct HEADRequest"},"typeName":{"id":3864,"nodeType":"UserDefinedTypeName","pathNode":{"id":3863,"name":"HEADRequest","nameLocations":["4654:11:20"],"nodeType":"IdentifierPath","referencedDeclaration":1142,"src":"4654:11:20"},"referencedDeclaration":1142,"src":"4654:11:20","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_storage_ptr","typeString":"struct HEADRequest"}},"visibility":"internal"}],"src":"4653:32:20"},"returnParameters":{"id":3870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3869,"mutability":"mutable","name":"head","nameLocation":"4727:4:20","nodeType":"VariableDeclaration","scope":3973,"src":"4707:24:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse"},"typeName":{"id":3868,"nodeType":"UserDefinedTypeName","pathNode":{"id":3867,"name":"HEADResponse","nameLocations":["4707:12:20"],"nodeType":"IdentifierPath","referencedDeclaration":1158,"src":"4707:12:20"},"referencedDeclaration":1158,"src":"4707:12:20","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_storage_ptr","typeString":"struct HEADResponse"}},"visibility":"internal"}],"src":"4706:26:20"},"scope":3994,"src":"4640:1105:20","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":3992,"nodeType":"Block","src":"6040:59:20","statements":[{"expression":{"id":3990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3983,"name":"getResponse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3981,"src":"6051:11:20","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_memory_ptr","typeString":"struct LOCATEResponse memory"}},"id":3985,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6063:4:20","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":1163,"src":"6051:16:20","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":3987,"name":"getRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3977,"src":"6075:10:20","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATERequest_$1251_memory_ptr","typeString":"struct LOCATERequest memory"}},"id":3988,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6086:4:20","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":1246,"src":"6075:15:20","typeDescriptions":{"typeIdentifier":"t_struct$_HEADRequest_$1142_memory_ptr","typeString":"struct HEADRequest memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_HEADRequest_$1142_memory_ptr","typeString":"struct HEADRequest memory"}],"id":3986,"name":"HEAD","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3973,"src":"6070:4:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_HEADRequest_$1142_memory_ptr_$returns$_t_struct$_HEADResponse_$1158_memory_ptr_$","typeString":"function (struct HEADRequest memory) view returns (struct HEADResponse memory)"}},"id":3989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6070:21:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}},"src":"6051:40:20","typeDescriptions":{"typeIdentifier":"t_struct$_HEADResponse_$1158_memory_ptr","typeString":"struct HEADResponse memory"}},"id":3991,"nodeType":"ExpressionStatement","src":"6051:40:20"}]},"documentation":{"id":3974,"nodeType":"StructuredDocumentation","src":"5753:177:20","text":"@notice Handles GET requests with redirect information\n @param getRequest Request information including path\n @return getResponse Response with redirect data"},"functionSelector":"0f9004b8","id":3993,"implemented":true,"kind":"function","modifiers":[],"name":"GET","nameLocation":"5945:3:20","nodeType":"FunctionDefinition","parameters":{"id":3978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3977,"mutability":"mutable","name":"getRequest","nameLocation":"5970:10:20","nodeType":"VariableDeclaration","scope":3993,"src":"5949:31:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATERequest_$1251_memory_ptr","typeString":"struct LOCATERequest"},"typeName":{"id":3976,"nodeType":"UserDefinedTypeName","pathNode":{"id":3975,"name":"LOCATERequest","nameLocations":["5949:13:20"],"nodeType":"IdentifierPath","referencedDeclaration":1251,"src":"5949:13:20"},"referencedDeclaration":1251,"src":"5949:13:20","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATERequest_$1251_storage_ptr","typeString":"struct LOCATERequest"}},"visibility":"internal"}],"src":"5948:33:20"},"returnParameters":{"id":3982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3981,"mutability":"mutable","name":"getResponse","nameLocation":"6027:11:20","nodeType":"VariableDeclaration","scope":3993,"src":"6005:33:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_memory_ptr","typeString":"struct LOCATEResponse"},"typeName":{"id":3980,"nodeType":"UserDefinedTypeName","pathNode":{"id":3979,"name":"LOCATEResponse","nameLocations":["6005:14:20"],"nodeType":"IdentifierPath","referencedDeclaration":1168,"src":"6005:14:20"},"referencedDeclaration":1168,"src":"6005:14:20","typeDescriptions":{"typeIdentifier":"t_struct$_LOCATEResponse_$1168_storage_ptr","typeString":"struct LOCATEResponse"}},"visibility":"internal"}],"src":"6004:35:20"},"scope":3994,"src":"5936:163:20","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":3995,"src":"1179:4923:20","usedErrors":[3747,3750],"usedEvents":[3742]}],"src":"830:5276:20"},"id":20}},"contracts":{"@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"}],"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 to signal 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":"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},"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 to signal 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\":\"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/access/AccessControl.sol\":\"AccessControl\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x1a6b4f6b7798ab80929d491b89d5427a9b3338c0fd1acd0ba325f69c6f1646af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7bb7f346c12a14dc622bc105ce3c47202fbc89f4b153a28a63bb68193297330c\",\"dweb:/ipfs/QmagwF8P3bUBXwdo159ueEnY9dLSvEWwK24kk2op58egwG\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d\",\"dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x2d9dc2fe26180f74c11c13663647d38e259e45f95eb88f57b61d2160b0109d3e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81233d1f98060113d9922180bb0f14f8335856fe9f339134b09335e9f678c377\",\"dweb:/ipfs/QmWh6R35SarhAn4z2wH8SU456jJSYL2FgucfTFgbHJJN4E\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]}},\"version\":1}","userdoc":{"kind":"user","methods":{},"version":1}}},"@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"}],"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 to signal 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},"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 to signal 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\":\"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d\",\"dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL\"]}},\"version\":1}","userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/utils/Context.sol":{"Context":{"abi":[],"devdoc":{"details":"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.","kind":"dev","methods":{},"version":1},"evm":{"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}","userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/utils/introspection/ERC165.sol":{"ERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"devdoc":{"details":"Implementation of the {IERC165} interface. Contracts that want to implement 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":"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},"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\":\"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/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x2d9dc2fe26180f74c11c13663647d38e259e45f95eb88f57b61d2160b0109d3e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81233d1f98060113d9922180bb0f14f8335856fe9f339134b09335e9f678c377\",\"dweb:/ipfs/QmWh6R35SarhAn4z2wH8SU456jJSYL2FgucfTFgbHJJN4E\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]}},\"version\":1}","userdoc":{"kind":"user","methods":{},"version":1}}},"@openzeppelin/contracts/utils/introspection/IERC165.sol":{"IERC165":{"abi":[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"devdoc":{"details":"Interface of the 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},"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\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]}},\"version\":1}","userdoc":{"kind":"user","methods":{},"version":1}}},"@tw3/esp/contracts/interfaces/IDataPointRegistry.sol":{"IDataPointRegistry":{"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":"DPS","outputs":[{"internalType":"contract IDataPointStorage","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_withdrawTo","type":"address"}],"name":"collectRoyalties","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_dataPointAddress","type":"bytes32"}],"name":"getDataPointRoyalty","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"_dataPoint","type":"bytes"},{"internalType":"address","name":"_publisher","type":"address"}],"name":"registerDataPoint","outputs":[{"internalType":"bytes32","name":"dataPointAddress","type":"bytes32"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_publisher","type":"address"}],"name":"royaltyBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"royaltyRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_dps","type":"address"}],"name":"setDPS","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_royaltyRate","type":"uint256"}],"name":"setRoyaltyRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_publisher","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_to","type":"address"}],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_dataPointAddress","type":"bytes32"},{"internalType":"address","name":"_newPublisher","type":"address"}],"name":"updatePublisherAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_dataPointAddress","type":"bytes32"},{"components":[{"internalType":"uint256","name":"gasUsed","type":"uint256"},{"internalType":"address","name":"publisher","type":"address"}],"internalType":"struct DataPointRoyalty","name":"_dataPointRoyalty","type":"tuple"}],"name":"updateRoyaltyRecord","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Extends storage functionality with economic incentives","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":{"collectRoyalties(uint256,address)":{"params":{"_amount":"The amount to withdraw","_withdrawTo":"The address to send the royalties to"}},"getDataPointRoyalty(bytes32)":{"params":{"_dataPointAddress":"The address of the data point"},"returns":{"_0":"The calculated royalty amount in wei"}},"owner()":{"details":"Returns the address of the current owner."},"registerDataPoint(bytes,address)":{"details":"Use address(0) as publisher to waive royalties","params":{"_dataPoint":"The data point to write","_publisher":"The publisher of the data point, can be address(0) to waive royalties"},"returns":{"dataPointAddress":"The address where the data point is stored"}},"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."},"royaltyBalance(address)":{"params":{"_publisher":"The address of the publisher"},"returns":{"_0":"The current balance in wei"}},"transfer(address,uint256,address)":{"details":"Should be protected by a strong consensus mechanism","params":{"_amount":"The amount to transfer","_publisher":"The address of the publisher","_to":"The address to send the royalties to"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"title":"Data Point Registry Contract","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DPS()":"ef4e06ec","collectRoyalties(uint256,address)":"4030c167","getDataPointRoyalty(bytes32)":"fd45d702","owner()":"8da5cb5b","registerDataPoint(bytes,address)":"f6e20077","renounceOwnership()":"715018a6","royaltyBalance(address)":"a31bae82","royaltyRate()":"c4d1510d","setDPS(address)":"0ccbebf7","setRoyaltyRate(uint256)":"537782a2","transfer(address,uint256,address)":"dbba0f01","transferOwnership(address)":"f2fde38b","updatePublisherAddress(bytes32,address)":"cc8e4f70","updateRoyaltyRecord(bytes32,(uint256,address))":"5f3ebd86"}},"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\":\"DPS\",\"outputs\":[{\"internalType\":\"contract IDataPointStorage\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_withdrawTo\",\"type\":\"address\"}],\"name\":\"collectRoyalties\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_dataPointAddress\",\"type\":\"bytes32\"}],\"name\":\"getDataPointRoyalty\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_dataPoint\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_publisher\",\"type\":\"address\"}],\"name\":\"registerDataPoint\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"dataPointAddress\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_publisher\",\"type\":\"address\"}],\"name\":\"royaltyBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"royaltyRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_dps\",\"type\":\"address\"}],\"name\":\"setDPS\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_royaltyRate\",\"type\":\"uint256\"}],\"name\":\"setRoyaltyRate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_publisher\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"transfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_dataPointAddress\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_newPublisher\",\"type\":\"address\"}],\"name\":\"updatePublisherAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_dataPointAddress\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"gasUsed\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"}],\"internalType\":\"struct DataPointRoyalty\",\"name\":\"_dataPointRoyalty\",\"type\":\"tuple\"}],\"name\":\"updateRoyaltyRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Extends storage functionality with economic incentives\",\"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\":{\"collectRoyalties(uint256,address)\":{\"params\":{\"_amount\":\"The amount to withdraw\",\"_withdrawTo\":\"The address to send the royalties to\"}},\"getDataPointRoyalty(bytes32)\":{\"params\":{\"_dataPointAddress\":\"The address of the data point\"},\"returns\":{\"_0\":\"The calculated royalty amount in wei\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"registerDataPoint(bytes,address)\":{\"details\":\"Use address(0) as publisher to waive royalties\",\"params\":{\"_dataPoint\":\"The data point to write\",\"_publisher\":\"The publisher of the data point, can be address(0) to waive royalties\"},\"returns\":{\"dataPointAddress\":\"The address where the data point is stored\"}},\"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.\"},\"royaltyBalance(address)\":{\"params\":{\"_publisher\":\"The address of the publisher\"},\"returns\":{\"_0\":\"The current balance in wei\"}},\"transfer(address,uint256,address)\":{\"details\":\"Should be protected by a strong consensus mechanism\",\"params\":{\"_amount\":\"The amount to transfer\",\"_publisher\":\"The address of the publisher\",\"_to\":\"The address to send the royalties to\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"Data Point Registry Contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"collectRoyalties(uint256,address)\":{\"notice\":\"Allows publishers to withdraw their earned royalties\"},\"getDataPointRoyalty(bytes32)\":{\"notice\":\"Calculates the royalty amount for a data point with overflow protection\"},\"registerDataPoint(bytes,address)\":{\"notice\":\"Writes a new data point and handles royalty logic\"},\"royaltyBalance(address)\":{\"notice\":\"Checks the royalty balance of a publisher\"},\"transfer(address,uint256,address)\":{\"notice\":\"Allows the owner to transfer royalties to a different address\"}},\"notice\":\"Manages data point publishing and royalty payments\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@tw3/esp/contracts/interfaces/IDataPointRegistry.sol\":\"IDataPointRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@tw3/esp/contracts/interfaces/IDataPointRegistry.sol\":{\"keccak256\":\"0xcd4a8cd032d6bcaf2962365dd42117d66b7b8fef28659c5a9a98eff92b1c4aa9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b69441061a8312b9cdcfd1324b8eda91b01439d93f687c3264187f3d602fb62\",\"dweb:/ipfs/QmSgy2z8z89U3Bpb7kdRa3BC8kyCPHsVrEhqoyo5RMTLhn\"]},\"@tw3/esp/contracts/interfaces/IDataPointStorage.sol\":{\"keccak256\":\"0xa4a14052a76722c3bd32abae7a8c9c69992431f10b1e8badd3cb6fb4df778f3a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc292c6f2b84e11c1517185862351016c6d826b8e43a7fd9d1feb8d5df323f01\",\"dweb:/ipfs/QmTPbMH2To279xMEwMHt2Wkn1112S8AoCEtyeMUeHPY2Yr\"]},\"@tw3/esp/contracts/interfaces/IOwnable.sol\":{\"keccak256\":\"0xccc9116dcc2404b7e137be6463dfa6b38056d5bb37dea682aa6439113b7cdbea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2eba65c8ee67fefab206555002096ca65111cf0a789a99fbcc3c3d4e1aace08\",\"dweb:/ipfs/Qmd2V1zRCTsamkixHcBjtc8YaWzk4uR1cW2AHbyVQRAE5Y\"]},\"@tw3/esp/contracts/types/ESPTypes.sol\":{\"keccak256\":\"0x1785aedd594e69b4d82eac428ed44e687cdfa02c95757e68fa530add9683f4b4\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://c46abca79aa57b5be3ecbe5fb29050efe6688f25de1213624a8fa12397fd351f\",\"dweb:/ipfs/QmbXMaastNWh4jCkb4HHm8e1B2L3L7aBRk3X2aadab6oBk\"]}},\"version\":1}","userdoc":{"kind":"user","methods":{"collectRoyalties(uint256,address)":{"notice":"Allows publishers to withdraw their earned royalties"},"getDataPointRoyalty(bytes32)":{"notice":"Calculates the royalty amount for a data point with overflow protection"},"registerDataPoint(bytes,address)":{"notice":"Writes a new data point and handles royalty logic"},"royaltyBalance(address)":{"notice":"Checks the royalty balance of a publisher"},"transfer(address,uint256,address)":{"notice":"Allows the owner to transfer royalties to a different address"}},"notice":"Manages data point publishing and royalty payments","version":1}}},"@tw3/esp/contracts/interfaces/IDataPointStorage.sol":{"IDataPointStorage":{"abi":[{"inputs":[],"name":"VERSION","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"calculateAddress","outputs":[{"internalType":"bytes32","name":"_dataPointAddress","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_dataPointAddress","type":"bytes32"}],"name":"dataPointSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_dataPointAddress","type":"bytes32"}],"name":"readDataPoint","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"writeDataPoint","outputs":[{"internalType":"bytes32","name":"_dataPointAddress","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"details":"Basic implementation without collision handling","kind":"dev","methods":{"calculateAddress(bytes)":{"params":{"_data":"The data point to calculate address for"},"returns":{"_dataPointAddress":"The calculated storage address"}},"writeDataPoint(bytes)":{"details":"Reverts if the calculated address is already occupied","params":{"_data":"The data point to store"},"returns":{"_dataPointAddress":"The address where the data point is stored"}}},"title":"Data Point Storage Contract","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"VERSION()":"ffa1ad74","calculateAddress(bytes)":"e8a4c04e","dataPointSize(bytes32)":"2be681f5","readDataPoint(bytes32)":"80435b64","writeDataPoint(bytes)":"43748b32"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"calculateAddress\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_dataPointAddress\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_dataPointAddress\",\"type\":\"bytes32\"}],\"name\":\"dataPointSize\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_dataPointAddress\",\"type\":\"bytes32\"}],\"name\":\"readDataPoint\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"writeDataPoint\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_dataPointAddress\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Basic implementation without collision handling\",\"kind\":\"dev\",\"methods\":{\"calculateAddress(bytes)\":{\"params\":{\"_data\":\"The data point to calculate address for\"},\"returns\":{\"_dataPointAddress\":\"The calculated storage address\"}},\"writeDataPoint(bytes)\":{\"details\":\"Reverts if the calculated address is already occupied\",\"params\":{\"_data\":\"The data point to store\"},\"returns\":{\"_dataPointAddress\":\"The address where the data point is stored\"}}},\"title\":\"Data Point Storage Contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"calculateAddress(bytes)\":{\"notice\":\"Calculates the storage address for a data point\"},\"writeDataPoint(bytes)\":{\"notice\":\"Stores a new data point with user-specified version\"}},\"notice\":\"Provides core storage functionality for data points\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@tw3/esp/contracts/interfaces/IDataPointStorage.sol\":\"IDataPointStorage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@tw3/esp/contracts/interfaces/IDataPointStorage.sol\":{\"keccak256\":\"0xa4a14052a76722c3bd32abae7a8c9c69992431f10b1e8badd3cb6fb4df778f3a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc292c6f2b84e11c1517185862351016c6d826b8e43a7fd9d1feb8d5df323f01\",\"dweb:/ipfs/QmTPbMH2To279xMEwMHt2Wkn1112S8AoCEtyeMUeHPY2Yr\"]}},\"version\":1}","userdoc":{"kind":"user","methods":{"calculateAddress(bytes)":{"notice":"Calculates the storage address for a data point"},"writeDataPoint(bytes)":{"notice":"Stores a new data point with user-specified version"}},"notice":"Provides core storage functionality for data points","version":1}}},"@tw3/esp/contracts/interfaces/IOwnable.sol":{"IOwnable":{"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":{"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":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"evm":{"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\":{\"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\":{\"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\":{\"@tw3/esp/contracts/interfaces/IOwnable.sol\":\"IOwnable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@tw3/esp/contracts/interfaces/IOwnable.sol\":{\"keccak256\":\"0xccc9116dcc2404b7e137be6463dfa6b38056d5bb37dea682aa6439113b7cdbea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2eba65c8ee67fefab206555002096ca65111cf0a789a99fbcc3c3d4e1aace08\",\"dweb:/ipfs/Qmd2V1zRCTsamkixHcBjtc8YaWzk4uR1cW2AHbyVQRAE5Y\"]}},\"version\":1}","userdoc":{"kind":"user","methods":{},"version":1}}},"@wttp/core/contracts/interfaces/IBaseWTTPPermissions.sol":{"IBaseWTTPPermissions":{"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":"_newSiteAdmin","type":"bytes32"}],"name":"changeSiteAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_role","type":"bytes32"}],"name":"createResourceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSiteAdminRole","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":{"author":"Web3 Transfer Protocol (WTTP) Development Team","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 to signal 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":{"changeSiteAdmin(bytes32)":{"details":"Allows wiping all current site admin permissions by changing the role hash","params":{"_newSiteAdmin":"The new role identifier to use for site administrators"}},"createResourceRole(bytes32)":{"details":"Sets the SITE_ADMIN_ROLE as the admin of the new role, preventing creation of privileged roles","params":{"_role":"The new role identifier to create"}},"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":"Overrides the standard AccessControl implementation to grant DEFAULT_ADMIN_ROLE holders access to all roles","params":{"account":"The address to check for the role","role":"The role identifier to check"},"returns":{"_0":"bool True if the account has the role or is a DEFAULT_ADMIN_ROLE holder"}},"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."}},"title":"WTTP Permissions Contract","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"changeSiteAdmin(bytes32)":"32729d5e","createResourceRole(bytes32)":"b2455654","getRoleAdmin(bytes32)":"248a9ca3","getSiteAdminRole()":"336875a1","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\":\"_newSiteAdmin\",\"type\":\"bytes32\"}],\"name\":\"changeSiteAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"}],\"name\":\"createResourceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSiteAdminRole\",\"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\":{\"author\":\"Web3 Transfer Protocol (WTTP) Development Team\",\"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 to signal 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\":{\"changeSiteAdmin(bytes32)\":{\"details\":\"Allows wiping all current site admin permissions by changing the role hash\",\"params\":{\"_newSiteAdmin\":\"The new role identifier to use for site administrators\"}},\"createResourceRole(bytes32)\":{\"details\":\"Sets the SITE_ADMIN_ROLE as the admin of the new role, preventing creation of privileged roles\",\"params\":{\"_role\":\"The new role identifier to create\"}},\"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\":\"Overrides the standard AccessControl implementation to grant DEFAULT_ADMIN_ROLE holders access to all roles\",\"params\":{\"account\":\"The address to check for the role\",\"role\":\"The role identifier to check\"},\"returns\":{\"_0\":\"bool True if the account has the role or is a DEFAULT_ADMIN_ROLE holder\"}},\"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.\"}},\"title\":\"WTTP Permissions Contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"changeSiteAdmin(bytes32)\":{\"notice\":\"Changes the SITE_ADMIN_ROLE identifier\"},\"createResourceRole(bytes32)\":{\"notice\":\"Creates a new resource-specific admin role\"},\"hasRole(bytes32,address)\":{\"notice\":\"Check if an account has a specific role\"}},\"notice\":\"Manages role-based access control for the WTTP protocol\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@wttp/core/contracts/interfaces/IBaseWTTPPermissions.sol\":\"IBaseWTTPPermissions\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d\",\"dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL\"]},\"@wttp/core/contracts/interfaces/IBaseWTTPPermissions.sol\":{\"keccak256\":\"0x11f839a3f8d0ab86afa0cb66ca2b12408ab5429ce53c619529d346673e93732c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e69f2e85b0706dea758aafb27740fbf7b198af17dbddfffd04e67469eb613533\",\"dweb:/ipfs/QmW79s5NNMNebwfesfdCRDZYJq4kp7txL4icYjJU2FeSx8\"]}},\"version\":1}","userdoc":{"kind":"user","methods":{"changeSiteAdmin(bytes32)":{"notice":"Changes the SITE_ADMIN_ROLE identifier"},"createResourceRole(bytes32)":{"notice":"Creates a new resource-specific admin role"},"hasRole(bytes32,address)":{"notice":"Check if an account has a specific role"}},"notice":"Manages role-based access control for the WTTP protocol","version":1}}},"@wttp/core/contracts/interfaces/IBaseWTTPSite.sol":{"IBaseWTTPSite":{"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":[{"components":[{"components":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint256","name":"ifModifiedSince","type":"uint256"},{"internalType":"bytes32","name":"ifNoneMatch","type":"bytes32"}],"internalType":"struct HEADRequest","name":"head","type":"tuple"},{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"data","type":"tuple"}],"internalType":"struct DEFINERequest","name":"defineRequest","type":"tuple"}],"name":"DEFINE","outputs":[{"components":[{"components":[{"internalType":"uint16","name":"status","type":"uint16"},{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"headerInfo","type":"tuple"},{"components":[{"components":[{"internalType":"bytes2","name":"mimeType","type":"bytes2"},{"internalType":"bytes2","name":"charset","type":"bytes2"},{"internalType":"bytes2","name":"encoding","type":"bytes2"},{"internalType":"bytes2","name":"language","type":"bytes2"}],"internalType":"struct ResourceProperties","name":"properties","type":"tuple"},{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"version","type":"uint256"},{"internalType":"uint256","name":"lastModified","type":"uint256"},{"internalType":"bytes32","name":"header","type":"bytes32"}],"internalType":"struct ResourceMetadata","name":"metadata","type":"tuple"},{"internalType":"bytes32","name":"etag","type":"bytes32"}],"internalType":"struct HEADResponse","name":"head","type":"tuple"},{"internalType":"bytes32","name":"headerAddress","type":"bytes32"}],"internalType":"struct DEFINEResponse","name":"defineResponse","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint256","name":"ifModifiedSince","type":"uint256"},{"internalType":"bytes32","name":"ifNoneMatch","type":"bytes32"}],"internalType":"struct HEADRequest","name":"deleteRequest","type":"tuple"}],"name":"DELETE","outputs":[{"components":[{"internalType":"uint16","name":"status","type":"uint16"},{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"headerInfo","type":"tuple"},{"components":[{"components":[{"internalType":"bytes2","name":"mimeType","type":"bytes2"},{"internalType":"bytes2","name":"charset","type":"bytes2"},{"internalType":"bytes2","name":"encoding","type":"bytes2"},{"internalType":"bytes2","name":"language","type":"bytes2"}],"internalType":"struct ResourceProperties","name":"properties","type":"tuple"},{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"version","type":"uint256"},{"internalType":"uint256","name":"lastModified","type":"uint256"},{"internalType":"bytes32","name":"header","type":"bytes32"}],"internalType":"struct ResourceMetadata","name":"metadata","type":"tuple"},{"internalType":"bytes32","name":"etag","type":"bytes32"}],"internalType":"struct HEADResponse","name":"deleteResponse","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"DPR","outputs":[{"internalType":"contract IDataPointRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DPS","outputs":[{"internalType":"contract IDataPointStorage","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint256","name":"ifModifiedSince","type":"uint256"},{"internalType":"bytes32","name":"ifNoneMatch","type":"bytes32"}],"internalType":"struct HEADRequest","name":"head","type":"tuple"},{"components":[{"internalType":"int256","name":"start","type":"int256"},{"internalType":"int256","name":"end","type":"int256"}],"internalType":"struct Range","name":"rangeChunks","type":"tuple"}],"internalType":"struct LOCATERequest","name":"getRequest","type":"tuple"}],"name":"GET","outputs":[{"components":[{"components":[{"internalType":"uint16","name":"status","type":"uint16"},{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"headerInfo","type":"tuple"},{"components":[{"components":[{"internalType":"bytes2","name":"mimeType","type":"bytes2"},{"internalType":"bytes2","name":"charset","type":"bytes2"},{"internalType":"bytes2","name":"encoding","type":"bytes2"},{"internalType":"bytes2","name":"language","type":"bytes2"}],"internalType":"struct ResourceProperties","name":"properties","type":"tuple"},{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"version","type":"uint256"},{"internalType":"uint256","name":"lastModified","type":"uint256"},{"internalType":"bytes32","name":"header","type":"bytes32"}],"internalType":"struct ResourceMetadata","name":"metadata","type":"tuple"},{"internalType":"bytes32","name":"etag","type":"bytes32"}],"internalType":"struct HEADResponse","name":"head","type":"tuple"},{"components":[{"internalType":"bytes32[]","name":"dataPoints","type":"bytes32[]"},{"internalType":"uint256","name":"totalChunks","type":"uint256"}],"internalType":"struct ResourceResponse","name":"resource","type":"tuple"}],"internalType":"struct LOCATEResponse","name":"getResponse","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint256","name":"ifModifiedSince","type":"uint256"},{"internalType":"bytes32","name":"ifNoneMatch","type":"bytes32"}],"internalType":"struct HEADRequest","name":"headRequest","type":"tuple"}],"name":"HEAD","outputs":[{"components":[{"internalType":"uint16","name":"status","type":"uint16"},{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"headerInfo","type":"tuple"},{"components":[{"components":[{"internalType":"bytes2","name":"mimeType","type":"bytes2"},{"internalType":"bytes2","name":"charset","type":"bytes2"},{"internalType":"bytes2","name":"encoding","type":"bytes2"},{"internalType":"bytes2","name":"language","type":"bytes2"}],"internalType":"struct ResourceProperties","name":"properties","type":"tuple"},{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"version","type":"uint256"},{"internalType":"uint256","name":"lastModified","type":"uint256"},{"internalType":"bytes32","name":"header","type":"bytes32"}],"internalType":"struct ResourceMetadata","name":"metadata","type":"tuple"},{"internalType":"bytes32","name":"etag","type":"bytes32"}],"internalType":"struct HEADResponse","name":"head","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_path","type":"string"}],"name":"OPTIONS","outputs":[{"components":[{"internalType":"uint16","name":"status","type":"uint16"},{"internalType":"uint16","name":"allow","type":"uint16"}],"internalType":"struct OPTIONSResponse","name":"optionsResponse","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint256","name":"ifModifiedSince","type":"uint256"},{"internalType":"bytes32","name":"ifNoneMatch","type":"bytes32"}],"internalType":"struct HEADRequest","name":"head","type":"tuple"},{"components":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"chunkIndex","type":"uint256"},{"internalType":"address","name":"publisher","type":"address"}],"internalType":"struct DataRegistration[]","name":"data","type":"tuple[]"}],"internalType":"struct PATCHRequest","name":"patchRequest","type":"tuple"}],"name":"PATCH","outputs":[{"components":[{"components":[{"internalType":"uint16","name":"status","type":"uint16"},{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"headerInfo","type":"tuple"},{"components":[{"components":[{"internalType":"bytes2","name":"mimeType","type":"bytes2"},{"internalType":"bytes2","name":"charset","type":"bytes2"},{"internalType":"bytes2","name":"encoding","type":"bytes2"},{"internalType":"bytes2","name":"language","type":"bytes2"}],"internalType":"struct ResourceProperties","name":"properties","type":"tuple"},{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"version","type":"uint256"},{"internalType":"uint256","name":"lastModified","type":"uint256"},{"internalType":"bytes32","name":"header","type":"bytes32"}],"internalType":"struct ResourceMetadata","name":"metadata","type":"tuple"},{"internalType":"bytes32","name":"etag","type":"bytes32"}],"internalType":"struct HEADResponse","name":"head","type":"tuple"},{"components":[{"internalType":"bytes32[]","name":"dataPoints","type":"bytes32[]"},{"internalType":"uint256","name":"totalChunks","type":"uint256"}],"internalType":"struct ResourceResponse","name":"resource","type":"tuple"}],"internalType":"struct LOCATEResponse","name":"patchResponse","type":"tuple"}],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint256","name":"ifModifiedSince","type":"uint256"},{"internalType":"bytes32","name":"ifNoneMatch","type":"bytes32"}],"internalType":"struct HEADRequest","name":"head","type":"tuple"},{"components":[{"internalType":"bytes2","name":"mimeType","type":"bytes2"},{"internalType":"bytes2","name":"charset","type":"bytes2"},{"internalType":"bytes2","name":"encoding","type":"bytes2"},{"internalType":"bytes2","name":"language","type":"bytes2"}],"internalType":"struct ResourceProperties","name":"properties","type":"tuple"},{"components":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"chunkIndex","type":"uint256"},{"internalType":"address","name":"publisher","type":"address"}],"internalType":"struct DataRegistration[]","name":"data","type":"tuple[]"}],"internalType":"struct PUTRequest","name":"putRequest","type":"tuple"}],"name":"PUT","outputs":[{"components":[{"components":[{"internalType":"uint16","name":"status","type":"uint16"},{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"headerInfo","type":"tuple"},{"components":[{"components":[{"internalType":"bytes2","name":"mimeType","type":"bytes2"},{"internalType":"bytes2","name":"charset","type":"bytes2"},{"internalType":"bytes2","name":"encoding","type":"bytes2"},{"internalType":"bytes2","name":"language","type":"bytes2"}],"internalType":"struct ResourceProperties","name":"properties","type":"tuple"},{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"version","type":"uint256"},{"internalType":"uint256","name":"lastModified","type":"uint256"},{"internalType":"bytes32","name":"header","type":"bytes32"}],"internalType":"struct ResourceMetadata","name":"metadata","type":"tuple"},{"internalType":"bytes32","name":"etag","type":"bytes32"}],"internalType":"struct HEADResponse","name":"head","type":"tuple"},{"components":[{"internalType":"bytes32[]","name":"dataPoints","type":"bytes32[]"},{"internalType":"uint256","name":"totalChunks","type":"uint256"}],"internalType":"struct ResourceResponse","name":"resource","type":"tuple"}],"internalType":"struct LOCATEResponse","name":"putResponse","type":"tuple"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_newSiteAdmin","type":"bytes32"}],"name":"changeSiteAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_role","type":"bytes32"}],"name":"createResourceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSiteAdminRole","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":{"author":"Web3 Transfer Protocol (WTTP) Development Team","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 to signal 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":{"DEFINE(((string,uint256,bytes32),((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string))))":{"details":"Only accessible to resource administrators, creates header if needed","params":{"defineRequest":"Request information with new header data"},"returns":{"defineResponse":"Response containing updated header information"}},"DELETE((string,uint256,bytes32))":{"details":"Only accessible to resource administrators, checks resource mutability","params":{"deleteRequest":"Request information"},"returns":{"deleteResponse":"Response confirming deletion"}},"DPR()":{"details":"Provides external access to the internal DPR_ reference","returns":{"_0":"IDataPointRegistry The Data Point Registry contract"}},"DPS()":{"returns":{"_0":"IDataPointStorage The Data Point Storage contract"}},"GET(((string,uint256,bytes32),(int256,int256)))":{"params":{"getRequest":"Request information"},"returns":{"getResponse":"Response containing resource and storage locations"}},"HEAD((string,uint256,bytes32))":{"details":"External interface for _HEAD with method enforcement","params":{"headRequest":"Request information including conditional headers"},"returns":{"head":"Response with header and metadata information"}},"OPTIONS(string)":{"details":"External interface for _OPTIONS with method enforcement","params":{"_path":"Resource path to check"},"returns":{"optionsResponse":"Response with allowed methods info"}},"PATCH(((string,uint256,bytes32),(bytes,uint256,address)[]))":{"details":"Only accessible to resource administrators, checks resource mutability","params":{"patchRequest":"Request information including update data"},"returns":{"patchResponse":"Response containing updated resource information"}},"PUT(((string,uint256,bytes32),(bytes2,bytes2,bytes2,bytes2),(bytes,uint256,address)[]))":{"details":"Only accessible to resource administrators, transfers any excess payment back","params":{"putRequest":"Request information including content data"},"returns":{"putResponse":"Response containing created resource information"}},"changeSiteAdmin(bytes32)":{"details":"Allows wiping all current site admin permissions by changing the role hash","params":{"_newSiteAdmin":"The new role identifier to use for site administrators"}},"createResourceRole(bytes32)":{"details":"Sets the SITE_ADMIN_ROLE as the admin of the new role, preventing creation of privileged roles","params":{"_role":"The new role identifier to create"}},"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":"Overrides the standard AccessControl implementation to grant DEFAULT_ADMIN_ROLE holders access to all roles","params":{"account":"The address to check for the role","role":"The role identifier to check"},"returns":{"_0":"bool True if the account has the role or is a DEFAULT_ADMIN_ROLE holder"}},"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."}},"title":"WTTP Base Site Contract","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DEFINE(((string,uint256,bytes32),((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string))))":"42a4cf7d","DELETE((string,uint256,bytes32))":"ca63628c","DPR()":"c2640ed1","DPS()":"ef4e06ec","GET(((string,uint256,bytes32),(int256,int256)))":"0f9004b8","HEAD((string,uint256,bytes32))":"28699f17","OPTIONS(string)":"fd05b634","PATCH(((string,uint256,bytes32),(bytes,uint256,address)[]))":"dd0fec4c","PUT(((string,uint256,bytes32),(bytes2,bytes2,bytes2,bytes2),(bytes,uint256,address)[]))":"b0184e01","changeSiteAdmin(bytes32)":"32729d5e","createResourceRole(bytes32)":"b2455654","getRoleAdmin(bytes32)":"248a9ca3","getSiteAdminRole()":"336875a1","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\":[{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"ifModifiedSince\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"ifNoneMatch\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADRequest\",\"name\":\"head\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"data\",\"type\":\"tuple\"}],\"internalType\":\"struct DEFINERequest\",\"name\":\"defineRequest\",\"type\":\"tuple\"}],\"name\":\"DEFINE\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"status\",\"type\":\"uint16\"},{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"headerInfo\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes2\",\"name\":\"mimeType\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"charset\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"encoding\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"language\",\"type\":\"bytes2\"}],\"internalType\":\"struct ResourceProperties\",\"name\":\"properties\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastModified\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"header\",\"type\":\"bytes32\"}],\"internalType\":\"struct ResourceMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"etag\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADResponse\",\"name\":\"head\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"headerAddress\",\"type\":\"bytes32\"}],\"internalType\":\"struct DEFINEResponse\",\"name\":\"defineResponse\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"ifModifiedSince\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"ifNoneMatch\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADRequest\",\"name\":\"deleteRequest\",\"type\":\"tuple\"}],\"name\":\"DELETE\",\"outputs\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"status\",\"type\":\"uint16\"},{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"headerInfo\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes2\",\"name\":\"mimeType\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"charset\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"encoding\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"language\",\"type\":\"bytes2\"}],\"internalType\":\"struct ResourceProperties\",\"name\":\"properties\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastModified\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"header\",\"type\":\"bytes32\"}],\"internalType\":\"struct ResourceMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"etag\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADResponse\",\"name\":\"deleteResponse\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DPR\",\"outputs\":[{\"internalType\":\"contract IDataPointRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DPS\",\"outputs\":[{\"internalType\":\"contract IDataPointStorage\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"ifModifiedSince\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"ifNoneMatch\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADRequest\",\"name\":\"head\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int256\",\"name\":\"start\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"end\",\"type\":\"int256\"}],\"internalType\":\"struct Range\",\"name\":\"rangeChunks\",\"type\":\"tuple\"}],\"internalType\":\"struct LOCATERequest\",\"name\":\"getRequest\",\"type\":\"tuple\"}],\"name\":\"GET\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"status\",\"type\":\"uint16\"},{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"headerInfo\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes2\",\"name\":\"mimeType\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"charset\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"encoding\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"language\",\"type\":\"bytes2\"}],\"internalType\":\"struct ResourceProperties\",\"name\":\"properties\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastModified\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"header\",\"type\":\"bytes32\"}],\"internalType\":\"struct ResourceMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"etag\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADResponse\",\"name\":\"head\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"dataPoints\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"totalChunks\",\"type\":\"uint256\"}],\"internalType\":\"struct ResourceResponse\",\"name\":\"resource\",\"type\":\"tuple\"}],\"internalType\":\"struct LOCATEResponse\",\"name\":\"getResponse\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"ifModifiedSince\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"ifNoneMatch\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADRequest\",\"name\":\"headRequest\",\"type\":\"tuple\"}],\"name\":\"HEAD\",\"outputs\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"status\",\"type\":\"uint16\"},{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"headerInfo\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes2\",\"name\":\"mimeType\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"charset\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"encoding\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"language\",\"type\":\"bytes2\"}],\"internalType\":\"struct ResourceProperties\",\"name\":\"properties\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastModified\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"header\",\"type\":\"bytes32\"}],\"internalType\":\"struct ResourceMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"etag\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADResponse\",\"name\":\"head\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_path\",\"type\":\"string\"}],\"name\":\"OPTIONS\",\"outputs\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"status\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"allow\",\"type\":\"uint16\"}],\"internalType\":\"struct OPTIONSResponse\",\"name\":\"optionsResponse\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"ifModifiedSince\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"ifNoneMatch\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADRequest\",\"name\":\"head\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"chunkIndex\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"}],\"internalType\":\"struct DataRegistration[]\",\"name\":\"data\",\"type\":\"tuple[]\"}],\"internalType\":\"struct PATCHRequest\",\"name\":\"patchRequest\",\"type\":\"tuple\"}],\"name\":\"PATCH\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"status\",\"type\":\"uint16\"},{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"headerInfo\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes2\",\"name\":\"mimeType\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"charset\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"encoding\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"language\",\"type\":\"bytes2\"}],\"internalType\":\"struct ResourceProperties\",\"name\":\"properties\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastModified\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"header\",\"type\":\"bytes32\"}],\"internalType\":\"struct ResourceMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"etag\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADResponse\",\"name\":\"head\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"dataPoints\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"totalChunks\",\"type\":\"uint256\"}],\"internalType\":\"struct ResourceResponse\",\"name\":\"resource\",\"type\":\"tuple\"}],\"internalType\":\"struct LOCATEResponse\",\"name\":\"patchResponse\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"ifModifiedSince\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"ifNoneMatch\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADRequest\",\"name\":\"head\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes2\",\"name\":\"mimeType\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"charset\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"encoding\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"language\",\"type\":\"bytes2\"}],\"internalType\":\"struct ResourceProperties\",\"name\":\"properties\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"chunkIndex\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"}],\"internalType\":\"struct DataRegistration[]\",\"name\":\"data\",\"type\":\"tuple[]\"}],\"internalType\":\"struct PUTRequest\",\"name\":\"putRequest\",\"type\":\"tuple\"}],\"name\":\"PUT\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"status\",\"type\":\"uint16\"},{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"headerInfo\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes2\",\"name\":\"mimeType\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"charset\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"encoding\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"language\",\"type\":\"bytes2\"}],\"internalType\":\"struct ResourceProperties\",\"name\":\"properties\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastModified\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"header\",\"type\":\"bytes32\"}],\"internalType\":\"struct ResourceMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"etag\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADResponse\",\"name\":\"head\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"dataPoints\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"totalChunks\",\"type\":\"uint256\"}],\"internalType\":\"struct ResourceResponse\",\"name\":\"resource\",\"type\":\"tuple\"}],\"internalType\":\"struct LOCATEResponse\",\"name\":\"putResponse\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_newSiteAdmin\",\"type\":\"bytes32\"}],\"name\":\"changeSiteAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"}],\"name\":\"createResourceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSiteAdminRole\",\"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\":{\"author\":\"Web3 Transfer Protocol (WTTP) Development Team\",\"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 to signal 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\":{\"DEFINE(((string,uint256,bytes32),((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string))))\":{\"details\":\"Only accessible to resource administrators, creates header if needed\",\"params\":{\"defineRequest\":\"Request information with new header data\"},\"returns\":{\"defineResponse\":\"Response containing updated header information\"}},\"DELETE((string,uint256,bytes32))\":{\"details\":\"Only accessible to resource administrators, checks resource mutability\",\"params\":{\"deleteRequest\":\"Request information\"},\"returns\":{\"deleteResponse\":\"Response confirming deletion\"}},\"DPR()\":{\"details\":\"Provides external access to the internal DPR_ reference\",\"returns\":{\"_0\":\"IDataPointRegistry The Data Point Registry contract\"}},\"DPS()\":{\"returns\":{\"_0\":\"IDataPointStorage The Data Point Storage contract\"}},\"GET(((string,uint256,bytes32),(int256,int256)))\":{\"params\":{\"getRequest\":\"Request information\"},\"returns\":{\"getResponse\":\"Response containing resource and storage locations\"}},\"HEAD((string,uint256,bytes32))\":{\"details\":\"External interface for _HEAD with method enforcement\",\"params\":{\"headRequest\":\"Request information including conditional headers\"},\"returns\":{\"head\":\"Response with header and metadata information\"}},\"OPTIONS(string)\":{\"details\":\"External interface for _OPTIONS with method enforcement\",\"params\":{\"_path\":\"Resource path to check\"},\"returns\":{\"optionsResponse\":\"Response with allowed methods info\"}},\"PATCH(((string,uint256,bytes32),(bytes,uint256,address)[]))\":{\"details\":\"Only accessible to resource administrators, checks resource mutability\",\"params\":{\"patchRequest\":\"Request information including update data\"},\"returns\":{\"patchResponse\":\"Response containing updated resource information\"}},\"PUT(((string,uint256,bytes32),(bytes2,bytes2,bytes2,bytes2),(bytes,uint256,address)[]))\":{\"details\":\"Only accessible to resource administrators, transfers any excess payment back\",\"params\":{\"putRequest\":\"Request information including content data\"},\"returns\":{\"putResponse\":\"Response containing created resource information\"}},\"changeSiteAdmin(bytes32)\":{\"details\":\"Allows wiping all current site admin permissions by changing the role hash\",\"params\":{\"_newSiteAdmin\":\"The new role identifier to use for site administrators\"}},\"createResourceRole(bytes32)\":{\"details\":\"Sets the SITE_ADMIN_ROLE as the admin of the new role, preventing creation of privileged roles\",\"params\":{\"_role\":\"The new role identifier to create\"}},\"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\":\"Overrides the standard AccessControl implementation to grant DEFAULT_ADMIN_ROLE holders access to all roles\",\"params\":{\"account\":\"The address to check for the role\",\"role\":\"The role identifier to check\"},\"returns\":{\"_0\":\"bool True if the account has the role or is a DEFAULT_ADMIN_ROLE holder\"}},\"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.\"}},\"title\":\"WTTP Base Site Contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DEFINE(((string,uint256,bytes32),((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string))))\":{\"notice\":\"Handles DEFINE requests to update resource headers\"},\"DELETE((string,uint256,bytes32))\":{\"notice\":\"Handles DELETE requests to remove resources\"},\"DPR()\":{\"notice\":\"Returns the Data Point Registry contract instance\"},\"GET(((string,uint256,bytes32),(int256,int256)))\":{\"notice\":\"Handles GET requests to retrieve resource content locations\"},\"HEAD((string,uint256,bytes32))\":{\"notice\":\"Handles WTTP HEAD requests for metadata\"},\"OPTIONS(string)\":{\"notice\":\"Handles OPTIONS requests to check available methods\"},\"PATCH(((string,uint256,bytes32),(bytes,uint256,address)[]))\":{\"notice\":\"Handles PATCH requests to update existing resources\"},\"PUT(((string,uint256,bytes32),(bytes2,bytes2,bytes2,bytes2),(bytes,uint256,address)[]))\":{\"notice\":\"Handles PUT requests to create new resources\"},\"changeSiteAdmin(bytes32)\":{\"notice\":\"Changes the SITE_ADMIN_ROLE identifier\"},\"createResourceRole(bytes32)\":{\"notice\":\"Creates a new resource-specific admin role\"},\"hasRole(bytes32,address)\":{\"notice\":\"Check if an account has a specific role\"}},\"notice\":\"Implements core WTTP protocol methods for HTTP-like operations on blockchain\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@wttp/core/contracts/interfaces/IBaseWTTPSite.sol\":\"IBaseWTTPSite\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d\",\"dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL\"]},\"@tw3/esp/contracts/interfaces/IDataPointRegistry.sol\":{\"keccak256\":\"0xcd4a8cd032d6bcaf2962365dd42117d66b7b8fef28659c5a9a98eff92b1c4aa9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b69441061a8312b9cdcfd1324b8eda91b01439d93f687c3264187f3d602fb62\",\"dweb:/ipfs/QmSgy2z8z89U3Bpb7kdRa3BC8kyCPHsVrEhqoyo5RMTLhn\"]},\"@tw3/esp/contracts/interfaces/IDataPointStorage.sol\":{\"keccak256\":\"0xa4a14052a76722c3bd32abae7a8c9c69992431f10b1e8badd3cb6fb4df778f3a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc292c6f2b84e11c1517185862351016c6d826b8e43a7fd9d1feb8d5df323f01\",\"dweb:/ipfs/QmTPbMH2To279xMEwMHt2Wkn1112S8AoCEtyeMUeHPY2Yr\"]},\"@tw3/esp/contracts/interfaces/IOwnable.sol\":{\"keccak256\":\"0xccc9116dcc2404b7e137be6463dfa6b38056d5bb37dea682aa6439113b7cdbea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2eba65c8ee67fefab206555002096ca65111cf0a789a99fbcc3c3d4e1aace08\",\"dweb:/ipfs/Qmd2V1zRCTsamkixHcBjtc8YaWzk4uR1cW2AHbyVQRAE5Y\"]},\"@tw3/esp/contracts/types/ESPTypes.sol\":{\"keccak256\":\"0x1785aedd594e69b4d82eac428ed44e687cdfa02c95757e68fa530add9683f4b4\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://c46abca79aa57b5be3ecbe5fb29050efe6688f25de1213624a8fa12397fd351f\",\"dweb:/ipfs/QmbXMaastNWh4jCkb4HHm8e1B2L3L7aBRk3X2aadab6oBk\"]},\"@wttp/core/contracts/interfaces/IBaseWTTPPermissions.sol\":{\"keccak256\":\"0x11f839a3f8d0ab86afa0cb66ca2b12408ab5429ce53c619529d346673e93732c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e69f2e85b0706dea758aafb27740fbf7b198af17dbddfffd04e67469eb613533\",\"dweb:/ipfs/QmW79s5NNMNebwfesfdCRDZYJq4kp7txL4icYjJU2FeSx8\"]},\"@wttp/core/contracts/interfaces/IBaseWTTPSite.sol\":{\"keccak256\":\"0x30ccdf2a4c4476120bf0ee836b0b6078433f91b27615913c50634986b1932084\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36ce00bece2291d87eed34c9a6861d5a8eaff85db336e05414ae7a303d06ec14\",\"dweb:/ipfs/Qmf3hXwu5mWhpmGWWniwkBkw4WJbnyVjvcT375ayfYbdou\"]},\"@wttp/core/contracts/interfaces/IBaseWTTPStorage.sol\":{\"keccak256\":\"0x7c7709635222697f643e94fc6bb21adb2594ddc466e6d7c6c8f067831a943101\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61b9e392ebd5c64d2f8f46c8057b9ade674650b10757b6d62ec55c8901babf3a\",\"dweb:/ipfs/QmX2CoFm92Z7AXeknvhfWdGaeiSYfp9iWHeSxaFePGD4DW\"]},\"@wttp/core/contracts/types/WTTPTypes.sol\":{\"keccak256\":\"0x582b2ae2c999be00bc0e84250947b68267c0094724c08bd6d469ce6a0c600033\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://ee0796885b414ab9273b1d71a7ad3fd82534eab2c31dca5cb28c1842ad386990\",\"dweb:/ipfs/QmXetxWra7YmuU2DmTaY3UbTPMwSTHKjKGXj9jY3DDurWm\"]}},\"version\":1}","userdoc":{"kind":"user","methods":{"DEFINE(((string,uint256,bytes32),((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string))))":{"notice":"Handles DEFINE requests to update resource headers"},"DELETE((string,uint256,bytes32))":{"notice":"Handles DELETE requests to remove resources"},"DPR()":{"notice":"Returns the Data Point Registry contract instance"},"GET(((string,uint256,bytes32),(int256,int256)))":{"notice":"Handles GET requests to retrieve resource content locations"},"HEAD((string,uint256,bytes32))":{"notice":"Handles WTTP HEAD requests for metadata"},"OPTIONS(string)":{"notice":"Handles OPTIONS requests to check available methods"},"PATCH(((string,uint256,bytes32),(bytes,uint256,address)[]))":{"notice":"Handles PATCH requests to update existing resources"},"PUT(((string,uint256,bytes32),(bytes2,bytes2,bytes2,bytes2),(bytes,uint256,address)[]))":{"notice":"Handles PUT requests to create new resources"},"changeSiteAdmin(bytes32)":{"notice":"Changes the SITE_ADMIN_ROLE identifier"},"createResourceRole(bytes32)":{"notice":"Creates a new resource-specific admin role"},"hasRole(bytes32,address)":{"notice":"Check if an account has a specific role"}},"notice":"Implements core WTTP protocol methods for HTTP-like operations on blockchain","version":1}}},"@wttp/core/contracts/interfaces/IBaseWTTPStorage.sol":{"IBaseWTTPStorage":{"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":"DPR","outputs":[{"internalType":"contract IDataPointRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DPS","outputs":[{"internalType":"contract IDataPointStorage","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_newSiteAdmin","type":"bytes32"}],"name":"changeSiteAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_role","type":"bytes32"}],"name":"createResourceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSiteAdminRole","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":{"author":"Web3 Transfer Protocol (WTTP) Development Team","details":"Core storage functionality for the WTTP protocol, inheriting permission management","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 to signal 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":{"DPR()":{"details":"Provides external access to the internal DPR_ reference","returns":{"_0":"IDataPointRegistry The Data Point Registry contract"}},"DPS()":{"returns":{"_0":"IDataPointStorage The Data Point Storage contract"}},"changeSiteAdmin(bytes32)":{"details":"Allows wiping all current site admin permissions by changing the role hash","params":{"_newSiteAdmin":"The new role identifier to use for site administrators"}},"createResourceRole(bytes32)":{"details":"Sets the SITE_ADMIN_ROLE as the admin of the new role, preventing creation of privileged roles","params":{"_role":"The new role identifier to create"}},"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":"Overrides the standard AccessControl implementation to grant DEFAULT_ADMIN_ROLE holders access to all roles","params":{"account":"The address to check for the role","role":"The role identifier to check"},"returns":{"_0":"bool True if the account has the role or is a DEFAULT_ADMIN_ROLE holder"}},"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."}},"title":"WTTP Base Storage Contract","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DPR()":"c2640ed1","DPS()":"ef4e06ec","changeSiteAdmin(bytes32)":"32729d5e","createResourceRole(bytes32)":"b2455654","getRoleAdmin(bytes32)":"248a9ca3","getSiteAdminRole()":"336875a1","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\":[],\"name\":\"DPR\",\"outputs\":[{\"internalType\":\"contract IDataPointRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DPS\",\"outputs\":[{\"internalType\":\"contract IDataPointStorage\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_newSiteAdmin\",\"type\":\"bytes32\"}],\"name\":\"changeSiteAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"}],\"name\":\"createResourceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSiteAdminRole\",\"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\":{\"author\":\"Web3 Transfer Protocol (WTTP) Development Team\",\"details\":\"Core storage functionality for the WTTP protocol, inheriting permission management\",\"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 to signal 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\":{\"DPR()\":{\"details\":\"Provides external access to the internal DPR_ reference\",\"returns\":{\"_0\":\"IDataPointRegistry The Data Point Registry contract\"}},\"DPS()\":{\"returns\":{\"_0\":\"IDataPointStorage The Data Point Storage contract\"}},\"changeSiteAdmin(bytes32)\":{\"details\":\"Allows wiping all current site admin permissions by changing the role hash\",\"params\":{\"_newSiteAdmin\":\"The new role identifier to use for site administrators\"}},\"createResourceRole(bytes32)\":{\"details\":\"Sets the SITE_ADMIN_ROLE as the admin of the new role, preventing creation of privileged roles\",\"params\":{\"_role\":\"The new role identifier to create\"}},\"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\":\"Overrides the standard AccessControl implementation to grant DEFAULT_ADMIN_ROLE holders access to all roles\",\"params\":{\"account\":\"The address to check for the role\",\"role\":\"The role identifier to check\"},\"returns\":{\"_0\":\"bool True if the account has the role or is a DEFAULT_ADMIN_ROLE holder\"}},\"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.\"}},\"title\":\"WTTP Base Storage Contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DPR()\":{\"notice\":\"Returns the Data Point Registry contract instance\"},\"changeSiteAdmin(bytes32)\":{\"notice\":\"Changes the SITE_ADMIN_ROLE identifier\"},\"createResourceRole(bytes32)\":{\"notice\":\"Creates a new resource-specific admin role\"},\"hasRole(bytes32,address)\":{\"notice\":\"Check if an account has a specific role\"}},\"notice\":\"Manages web resource storage and access control\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@wttp/core/contracts/interfaces/IBaseWTTPStorage.sol\":\"IBaseWTTPStorage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d\",\"dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL\"]},\"@tw3/esp/contracts/interfaces/IDataPointRegistry.sol\":{\"keccak256\":\"0xcd4a8cd032d6bcaf2962365dd42117d66b7b8fef28659c5a9a98eff92b1c4aa9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b69441061a8312b9cdcfd1324b8eda91b01439d93f687c3264187f3d602fb62\",\"dweb:/ipfs/QmSgy2z8z89U3Bpb7kdRa3BC8kyCPHsVrEhqoyo5RMTLhn\"]},\"@tw3/esp/contracts/interfaces/IDataPointStorage.sol\":{\"keccak256\":\"0xa4a14052a76722c3bd32abae7a8c9c69992431f10b1e8badd3cb6fb4df778f3a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc292c6f2b84e11c1517185862351016c6d826b8e43a7fd9d1feb8d5df323f01\",\"dweb:/ipfs/QmTPbMH2To279xMEwMHt2Wkn1112S8AoCEtyeMUeHPY2Yr\"]},\"@tw3/esp/contracts/interfaces/IOwnable.sol\":{\"keccak256\":\"0xccc9116dcc2404b7e137be6463dfa6b38056d5bb37dea682aa6439113b7cdbea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2eba65c8ee67fefab206555002096ca65111cf0a789a99fbcc3c3d4e1aace08\",\"dweb:/ipfs/Qmd2V1zRCTsamkixHcBjtc8YaWzk4uR1cW2AHbyVQRAE5Y\"]},\"@tw3/esp/contracts/types/ESPTypes.sol\":{\"keccak256\":\"0x1785aedd594e69b4d82eac428ed44e687cdfa02c95757e68fa530add9683f4b4\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://c46abca79aa57b5be3ecbe5fb29050efe6688f25de1213624a8fa12397fd351f\",\"dweb:/ipfs/QmbXMaastNWh4jCkb4HHm8e1B2L3L7aBRk3X2aadab6oBk\"]},\"@wttp/core/contracts/interfaces/IBaseWTTPPermissions.sol\":{\"keccak256\":\"0x11f839a3f8d0ab86afa0cb66ca2b12408ab5429ce53c619529d346673e93732c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e69f2e85b0706dea758aafb27740fbf7b198af17dbddfffd04e67469eb613533\",\"dweb:/ipfs/QmW79s5NNMNebwfesfdCRDZYJq4kp7txL4icYjJU2FeSx8\"]},\"@wttp/core/contracts/interfaces/IBaseWTTPStorage.sol\":{\"keccak256\":\"0x7c7709635222697f643e94fc6bb21adb2594ddc466e6d7c6c8f067831a943101\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61b9e392ebd5c64d2f8f46c8057b9ade674650b10757b6d62ec55c8901babf3a\",\"dweb:/ipfs/QmX2CoFm92Z7AXeknvhfWdGaeiSYfp9iWHeSxaFePGD4DW\"]},\"@wttp/core/contracts/types/WTTPTypes.sol\":{\"keccak256\":\"0x582b2ae2c999be00bc0e84250947b68267c0094724c08bd6d469ce6a0c600033\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://ee0796885b414ab9273b1d71a7ad3fd82534eab2c31dca5cb28c1842ad386990\",\"dweb:/ipfs/QmXetxWra7YmuU2DmTaY3UbTPMwSTHKjKGXj9jY3DDurWm\"]}},\"version\":1}","userdoc":{"kind":"user","methods":{"DPR()":{"notice":"Returns the Data Point Registry contract instance"},"changeSiteAdmin(bytes32)":{"notice":"Changes the SITE_ADMIN_ROLE identifier"},"createResourceRole(bytes32)":{"notice":"Creates a new resource-specific admin role"},"hasRole(bytes32,address)":{"notice":"Check if an account has a specific role"}},"notice":"Manages web resource storage and access control","version":1}}},"contracts/BaseWTTPPermissions.sol":{"BaseWTTPPermissions":{"abi":[{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"InvalidRole","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"ResourceRoleCreated","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":"bytes32","name":"oldSiteAdmin","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"newSiteAdmin","type":"bytes32"}],"name":"SiteAdminChanged","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_newSiteAdmin","type":"bytes32"}],"name":"changeSiteAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_role","type":"bytes32"}],"name":"createResourceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSiteAdminRole","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":{"author":"Web3 Transfer Protocol (WTTP) Development Team","details":"Extends OpenZeppelin's AccessControl with site-specific roles and custom permission logic","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."}],"InvalidRole(bytes32)":[{"params":{"role":"The role identifier that caused the error"}}]},"events":{"ResourceRoleCreated(bytes32)":{"params":{"role":"The role identifier that was created"}},"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 to signal 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`)"},"SiteAdminChanged(bytes32,bytes32)":{"params":{"newSiteAdmin":"New site admin role identifier","oldSiteAdmin":"Previous site admin role identifier"}}},"kind":"dev","methods":{"changeSiteAdmin(bytes32)":{"details":"Allows wiping all current site admin permissions by changing the role hash","params":{"_newSiteAdmin":"The new role identifier to use for site administrators"}},"constructor":{"details":"Creates the SITE_ADMIN_ROLE and establishes DEFAULT_ADMIN_ROLE as its admin","params":{"_owner":"Address of the contract owner who receives the DEFAULT_ADMIN_ROLE"}},"createResourceRole(bytes32)":{"details":"Sets the SITE_ADMIN_ROLE as the admin of the new role, preventing creation of privileged roles","params":{"_role":"The new role identifier to create"}},"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":"Overrides the standard AccessControl implementation to grant DEFAULT_ADMIN_ROLE holders access to all roles","params":{"account":"The address to check for the role","role":"The role identifier to check"},"returns":{"_0":"bool True if the account has the role or is a DEFAULT_ADMIN_ROLE holder"}},"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":"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."}},"stateVariables":{"SITE_ADMIN_ROLE":{"details":"Calculated via keccak256 during construction. Site admins have elevated privileges but below the DEFAULT_ADMIN_ROLE"}},"title":"WTTP Permissions Contract","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","changeSiteAdmin(bytes32)":"32729d5e","createResourceRole(bytes32)":"b2455654","getRoleAdmin(bytes32)":"248a9ca3","getSiteAdminRole()":"336875a1","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\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"InvalidRole\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"ResourceRoleCreated\",\"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\":\"bytes32\",\"name\":\"oldSiteAdmin\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"newSiteAdmin\",\"type\":\"bytes32\"}],\"name\":\"SiteAdminChanged\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_newSiteAdmin\",\"type\":\"bytes32\"}],\"name\":\"changeSiteAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"}],\"name\":\"createResourceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSiteAdminRole\",\"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\":{\"author\":\"Web3 Transfer Protocol (WTTP) Development Team\",\"details\":\"Extends OpenZeppelin's AccessControl with site-specific roles and custom permission logic\",\"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.\"}],\"InvalidRole(bytes32)\":[{\"params\":{\"role\":\"The role identifier that caused the error\"}}]},\"events\":{\"ResourceRoleCreated(bytes32)\":{\"params\":{\"role\":\"The role identifier that was created\"}},\"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 to signal 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`)\"},\"SiteAdminChanged(bytes32,bytes32)\":{\"params\":{\"newSiteAdmin\":\"New site admin role identifier\",\"oldSiteAdmin\":\"Previous site admin role identifier\"}}},\"kind\":\"dev\",\"methods\":{\"changeSiteAdmin(bytes32)\":{\"details\":\"Allows wiping all current site admin permissions by changing the role hash\",\"params\":{\"_newSiteAdmin\":\"The new role identifier to use for site administrators\"}},\"constructor\":{\"details\":\"Creates the SITE_ADMIN_ROLE and establishes DEFAULT_ADMIN_ROLE as its admin\",\"params\":{\"_owner\":\"Address of the contract owner who receives the DEFAULT_ADMIN_ROLE\"}},\"createResourceRole(bytes32)\":{\"details\":\"Sets the SITE_ADMIN_ROLE as the admin of the new role, preventing creation of privileged roles\",\"params\":{\"_role\":\"The new role identifier to create\"}},\"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\":\"Overrides the standard AccessControl implementation to grant DEFAULT_ADMIN_ROLE holders access to all roles\",\"params\":{\"account\":\"The address to check for the role\",\"role\":\"The role identifier to check\"},\"returns\":{\"_0\":\"bool True if the account has the role or is a DEFAULT_ADMIN_ROLE holder\"}},\"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\":\"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.\"}},\"stateVariables\":{\"SITE_ADMIN_ROLE\":{\"details\":\"Calculated via keccak256 during construction. Site admins have elevated privileges but below the DEFAULT_ADMIN_ROLE\"}},\"title\":\"WTTP Permissions Contract\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidRole(bytes32)\":[{\"notice\":\"Error thrown when an invalid role is used\"}]},\"events\":{\"ResourceRoleCreated(bytes32)\":{\"notice\":\"Emitted when a new resource role is created\"},\"SiteAdminChanged(bytes32,bytes32)\":{\"notice\":\"Emitted when the site admin role identifier is changed\"}},\"kind\":\"user\",\"methods\":{\"changeSiteAdmin(bytes32)\":{\"notice\":\"Changes the SITE_ADMIN_ROLE identifier\"},\"constructor\":{\"notice\":\"Sets up initial roles and permissions\"},\"createResourceRole(bytes32)\":{\"notice\":\"Creates a new resource-specific admin role\"},\"hasRole(bytes32,address)\":{\"notice\":\"Check if an account has a specific role\"}},\"notice\":\"Manages role-based access control for the WTTP protocol\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/BaseWTTPPermissions.sol\":\"BaseWTTPPermissions\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x1a6b4f6b7798ab80929d491b89d5427a9b3338c0fd1acd0ba325f69c6f1646af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7bb7f346c12a14dc622bc105ce3c47202fbc89f4b153a28a63bb68193297330c\",\"dweb:/ipfs/QmagwF8P3bUBXwdo159ueEnY9dLSvEWwK24kk2op58egwG\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d\",\"dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x2d9dc2fe26180f74c11c13663647d38e259e45f95eb88f57b61d2160b0109d3e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81233d1f98060113d9922180bb0f14f8335856fe9f339134b09335e9f678c377\",\"dweb:/ipfs/QmWh6R35SarhAn4z2wH8SU456jJSYL2FgucfTFgbHJJN4E\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"@tw3/esp/contracts/interfaces/IDataPointRegistry.sol\":{\"keccak256\":\"0xcd4a8cd032d6bcaf2962365dd42117d66b7b8fef28659c5a9a98eff92b1c4aa9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b69441061a8312b9cdcfd1324b8eda91b01439d93f687c3264187f3d602fb62\",\"dweb:/ipfs/QmSgy2z8z89U3Bpb7kdRa3BC8kyCPHsVrEhqoyo5RMTLhn\"]},\"@tw3/esp/contracts/interfaces/IDataPointStorage.sol\":{\"keccak256\":\"0xa4a14052a76722c3bd32abae7a8c9c69992431f10b1e8badd3cb6fb4df778f3a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc292c6f2b84e11c1517185862351016c6d826b8e43a7fd9d1feb8d5df323f01\",\"dweb:/ipfs/QmTPbMH2To279xMEwMHt2Wkn1112S8AoCEtyeMUeHPY2Yr\"]},\"@tw3/esp/contracts/interfaces/IOwnable.sol\":{\"keccak256\":\"0xccc9116dcc2404b7e137be6463dfa6b38056d5bb37dea682aa6439113b7cdbea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2eba65c8ee67fefab206555002096ca65111cf0a789a99fbcc3c3d4e1aace08\",\"dweb:/ipfs/Qmd2V1zRCTsamkixHcBjtc8YaWzk4uR1cW2AHbyVQRAE5Y\"]},\"@tw3/esp/contracts/types/ESPTypes.sol\":{\"keccak256\":\"0x1785aedd594e69b4d82eac428ed44e687cdfa02c95757e68fa530add9683f4b4\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://c46abca79aa57b5be3ecbe5fb29050efe6688f25de1213624a8fa12397fd351f\",\"dweb:/ipfs/QmbXMaastNWh4jCkb4HHm8e1B2L3L7aBRk3X2aadab6oBk\"]},\"@wttp/core/contracts/types/WTTPTypes.sol\":{\"keccak256\":\"0x582b2ae2c999be00bc0e84250947b68267c0094724c08bd6d469ce6a0c600033\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://ee0796885b414ab9273b1d71a7ad3fd82534eab2c31dca5cb28c1842ad386990\",\"dweb:/ipfs/QmXetxWra7YmuU2DmTaY3UbTPMwSTHKjKGXj9jY3DDurWm\"]},\"contracts/BaseWTTPPermissions.sol\":{\"keccak256\":\"0x37238be953aea95f118eac0da669bed4bd519cf92e8d2caf04bec41a43bbef4c\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://aae7deace578c29704b92e26a3b8f2185d012c232dfe464a0b4ae7e98adaf735\",\"dweb:/ipfs/QmY6W7gKfpJNouH4TjvpJYaL5ehAX3FGfTR32F5KrJXsmt\"]}},\"version\":1}","userdoc":{"errors":{"InvalidRole(bytes32)":[{"notice":"Error thrown when an invalid role is used"}]},"events":{"ResourceRoleCreated(bytes32)":{"notice":"Emitted when a new resource role is created"},"SiteAdminChanged(bytes32,bytes32)":{"notice":"Emitted when the site admin role identifier is changed"}},"kind":"user","methods":{"changeSiteAdmin(bytes32)":{"notice":"Changes the SITE_ADMIN_ROLE identifier"},"constructor":{"notice":"Sets up initial roles and permissions"},"createResourceRole(bytes32)":{"notice":"Creates a new resource-specific admin role"},"hasRole(bytes32,address)":{"notice":"Check if an account has a specific role"}},"notice":"Manages role-based access control for the WTTP protocol","version":1}}},"contracts/BaseWTTPSite.sol":{"BaseWTTPSite":{"abi":[{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"inputs":[{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"header","type":"tuple"}],"name":"InvalidHeader","type":"error"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"InvalidRole","type":"error"},{"inputs":[{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"_403","type":"error"},{"inputs":[{"internalType":"string","name":"reason","type":"string"},{"internalType":"bool","name":"isImmutable","type":"bool"}],"name":"_404","type":"error"},{"inputs":[{"internalType":"string","name":"reason","type":"string"},{"internalType":"uint16","name":"methodsAllowed","type":"uint16"},{"internalType":"bool","name":"isImmutable","type":"bool"}],"name":"_405","type":"error"},{"inputs":[{"internalType":"string","name":"reason","type":"string"},{"components":[{"internalType":"int256","name":"start","type":"int256"},{"internalType":"int256","name":"end","type":"int256"}],"internalType":"struct Range","name":"range","type":"tuple"},{"internalType":"int256","name":"outOfBounds","type":"int256"}],"name":"_416","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"components":[{"components":[{"internalType":"uint16","name":"status","type":"uint16"},{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"headerInfo","type":"tuple"},{"components":[{"components":[{"internalType":"bytes2","name":"mimeType","type":"bytes2"},{"internalType":"bytes2","name":"charset","type":"bytes2"},{"internalType":"bytes2","name":"encoding","type":"bytes2"},{"internalType":"bytes2","name":"language","type":"bytes2"}],"internalType":"struct ResourceProperties","name":"properties","type":"tuple"},{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"version","type":"uint256"},{"internalType":"uint256","name":"lastModified","type":"uint256"},{"internalType":"bytes32","name":"header","type":"bytes32"}],"internalType":"struct ResourceMetadata","name":"metadata","type":"tuple"},{"internalType":"bytes32","name":"etag","type":"bytes32"}],"internalType":"struct HEADResponse","name":"head","type":"tuple"},{"internalType":"bytes32","name":"headerAddress","type":"bytes32"}],"indexed":false,"internalType":"struct DEFINEResponse","name":"response","type":"tuple"}],"name":"DEFINESuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"components":[{"internalType":"uint16","name":"status","type":"uint16"},{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"headerInfo","type":"tuple"},{"components":[{"components":[{"internalType":"bytes2","name":"mimeType","type":"bytes2"},{"internalType":"bytes2","name":"charset","type":"bytes2"},{"internalType":"bytes2","name":"encoding","type":"bytes2"},{"internalType":"bytes2","name":"language","type":"bytes2"}],"internalType":"struct ResourceProperties","name":"properties","type":"tuple"},{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"version","type":"uint256"},{"internalType":"uint256","name":"lastModified","type":"uint256"},{"internalType":"bytes32","name":"header","type":"bytes32"}],"internalType":"struct ResourceMetadata","name":"metadata","type":"tuple"},{"internalType":"bytes32","name":"etag","type":"bytes32"}],"indexed":false,"internalType":"struct HEADResponse","name":"response","type":"tuple"}],"name":"DELETESuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"headerAddress","type":"bytes32"}],"name":"HeaderCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"headerAddress","type":"bytes32"}],"name":"HeaderUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"path","type":"string"}],"name":"MetadataDeleted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"path","type":"string"}],"name":"MetadataUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"components":[{"components":[{"internalType":"uint16","name":"status","type":"uint16"},{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"headerInfo","type":"tuple"},{"components":[{"components":[{"internalType":"bytes2","name":"mimeType","type":"bytes2"},{"internalType":"bytes2","name":"charset","type":"bytes2"},{"internalType":"bytes2","name":"encoding","type":"bytes2"},{"internalType":"bytes2","name":"language","type":"bytes2"}],"internalType":"struct ResourceProperties","name":"properties","type":"tuple"},{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"version","type":"uint256"},{"internalType":"uint256","name":"lastModified","type":"uint256"},{"internalType":"bytes32","name":"header","type":"bytes32"}],"internalType":"struct ResourceMetadata","name":"metadata","type":"tuple"},{"internalType":"bytes32","name":"etag","type":"bytes32"}],"internalType":"struct HEADResponse","name":"head","type":"tuple"},{"components":[{"internalType":"bytes32[]","name":"dataPoints","type":"bytes32[]"},{"internalType":"uint256","name":"totalChunks","type":"uint256"}],"internalType":"struct ResourceResponse","name":"resource","type":"tuple"}],"indexed":false,"internalType":"struct LOCATEResponse","name":"response","type":"tuple"}],"name":"PATCHSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"components":[{"components":[{"internalType":"uint16","name":"status","type":"uint16"},{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"headerInfo","type":"tuple"},{"components":[{"components":[{"internalType":"bytes2","name":"mimeType","type":"bytes2"},{"internalType":"bytes2","name":"charset","type":"bytes2"},{"internalType":"bytes2","name":"encoding","type":"bytes2"},{"internalType":"bytes2","name":"language","type":"bytes2"}],"internalType":"struct ResourceProperties","name":"properties","type":"tuple"},{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"version","type":"uint256"},{"internalType":"uint256","name":"lastModified","type":"uint256"},{"internalType":"bytes32","name":"header","type":"bytes32"}],"internalType":"struct ResourceMetadata","name":"metadata","type":"tuple"},{"internalType":"bytes32","name":"etag","type":"bytes32"}],"internalType":"struct HEADResponse","name":"head","type":"tuple"},{"components":[{"internalType":"bytes32[]","name":"dataPoints","type":"bytes32[]"},{"internalType":"uint256","name":"totalChunks","type":"uint256"}],"internalType":"struct ResourceResponse","name":"resource","type":"tuple"}],"indexed":false,"internalType":"struct LOCATEResponse","name":"response","type":"tuple"}],"name":"PUTSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"path","type":"string"}],"name":"ResourceCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"path","type":"string"}],"name":"ResourceDeleted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"ResourceRoleCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"path","type":"string"},{"indexed":false,"internalType":"uint256","name":"chunkIndex","type":"uint256"}],"name":"ResourceUpdated","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":"bytes32","name":"oldSiteAdmin","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"newSiteAdmin","type":"bytes32"}],"name":"SiteAdminChanged","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint256","name":"ifModifiedSince","type":"uint256"},{"internalType":"bytes32","name":"ifNoneMatch","type":"bytes32"}],"internalType":"struct HEADRequest","name":"head","type":"tuple"},{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"data","type":"tuple"}],"internalType":"struct DEFINERequest","name":"defineRequest","type":"tuple"}],"name":"DEFINE","outputs":[{"components":[{"components":[{"internalType":"uint16","name":"status","type":"uint16"},{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"headerInfo","type":"tuple"},{"components":[{"components":[{"internalType":"bytes2","name":"mimeType","type":"bytes2"},{"internalType":"bytes2","name":"charset","type":"bytes2"},{"internalType":"bytes2","name":"encoding","type":"bytes2"},{"internalType":"bytes2","name":"language","type":"bytes2"}],"internalType":"struct ResourceProperties","name":"properties","type":"tuple"},{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"version","type":"uint256"},{"internalType":"uint256","name":"lastModified","type":"uint256"},{"internalType":"bytes32","name":"header","type":"bytes32"}],"internalType":"struct ResourceMetadata","name":"metadata","type":"tuple"},{"internalType":"bytes32","name":"etag","type":"bytes32"}],"internalType":"struct HEADResponse","name":"head","type":"tuple"},{"internalType":"bytes32","name":"headerAddress","type":"bytes32"}],"internalType":"struct DEFINEResponse","name":"defineResponse","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint256","name":"ifModifiedSince","type":"uint256"},{"internalType":"bytes32","name":"ifNoneMatch","type":"bytes32"}],"internalType":"struct HEADRequest","name":"deleteRequest","type":"tuple"}],"name":"DELETE","outputs":[{"components":[{"internalType":"uint16","name":"status","type":"uint16"},{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"headerInfo","type":"tuple"},{"components":[{"components":[{"internalType":"bytes2","name":"mimeType","type":"bytes2"},{"internalType":"bytes2","name":"charset","type":"bytes2"},{"internalType":"bytes2","name":"encoding","type":"bytes2"},{"internalType":"bytes2","name":"language","type":"bytes2"}],"internalType":"struct ResourceProperties","name":"properties","type":"tuple"},{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"version","type":"uint256"},{"internalType":"uint256","name":"lastModified","type":"uint256"},{"internalType":"bytes32","name":"header","type":"bytes32"}],"internalType":"struct ResourceMetadata","name":"metadata","type":"tuple"},{"internalType":"bytes32","name":"etag","type":"bytes32"}],"internalType":"struct HEADResponse","name":"deleteResponse","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"DPR","outputs":[{"internalType":"contract IDataPointRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DPS","outputs":[{"internalType":"contract IDataPointStorage","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint256","name":"ifModifiedSince","type":"uint256"},{"internalType":"bytes32","name":"ifNoneMatch","type":"bytes32"}],"internalType":"struct HEADRequest","name":"head","type":"tuple"},{"components":[{"internalType":"int256","name":"start","type":"int256"},{"internalType":"int256","name":"end","type":"int256"}],"internalType":"struct Range","name":"rangeChunks","type":"tuple"}],"internalType":"struct LOCATERequest","name":"getRequest","type":"tuple"}],"name":"GET","outputs":[{"components":[{"components":[{"internalType":"uint16","name":"status","type":"uint16"},{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"headerInfo","type":"tuple"},{"components":[{"components":[{"internalType":"bytes2","name":"mimeType","type":"bytes2"},{"internalType":"bytes2","name":"charset","type":"bytes2"},{"internalType":"bytes2","name":"encoding","type":"bytes2"},{"internalType":"bytes2","name":"language","type":"bytes2"}],"internalType":"struct ResourceProperties","name":"properties","type":"tuple"},{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"version","type":"uint256"},{"internalType":"uint256","name":"lastModified","type":"uint256"},{"internalType":"bytes32","name":"header","type":"bytes32"}],"internalType":"struct ResourceMetadata","name":"metadata","type":"tuple"},{"internalType":"bytes32","name":"etag","type":"bytes32"}],"internalType":"struct HEADResponse","name":"head","type":"tuple"},{"components":[{"internalType":"bytes32[]","name":"dataPoints","type":"bytes32[]"},{"internalType":"uint256","name":"totalChunks","type":"uint256"}],"internalType":"struct ResourceResponse","name":"resource","type":"tuple"}],"internalType":"struct LOCATEResponse","name":"getResponse","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint256","name":"ifModifiedSince","type":"uint256"},{"internalType":"bytes32","name":"ifNoneMatch","type":"bytes32"}],"internalType":"struct HEADRequest","name":"headRequest","type":"tuple"}],"name":"HEAD","outputs":[{"components":[{"internalType":"uint16","name":"status","type":"uint16"},{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"headerInfo","type":"tuple"},{"components":[{"components":[{"internalType":"bytes2","name":"mimeType","type":"bytes2"},{"internalType":"bytes2","name":"charset","type":"bytes2"},{"internalType":"bytes2","name":"encoding","type":"bytes2"},{"internalType":"bytes2","name":"language","type":"bytes2"}],"internalType":"struct ResourceProperties","name":"properties","type":"tuple"},{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"version","type":"uint256"},{"internalType":"uint256","name":"lastModified","type":"uint256"},{"internalType":"bytes32","name":"header","type":"bytes32"}],"internalType":"struct ResourceMetadata","name":"metadata","type":"tuple"},{"internalType":"bytes32","name":"etag","type":"bytes32"}],"internalType":"struct HEADResponse","name":"head","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_path","type":"string"}],"name":"OPTIONS","outputs":[{"components":[{"internalType":"uint16","name":"status","type":"uint16"},{"internalType":"uint16","name":"allow","type":"uint16"}],"internalType":"struct OPTIONSResponse","name":"optionsResponse","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint256","name":"ifModifiedSince","type":"uint256"},{"internalType":"bytes32","name":"ifNoneMatch","type":"bytes32"}],"internalType":"struct HEADRequest","name":"head","type":"tuple"},{"components":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"chunkIndex","type":"uint256"},{"internalType":"address","name":"publisher","type":"address"}],"internalType":"struct DataRegistration[]","name":"data","type":"tuple[]"}],"internalType":"struct PATCHRequest","name":"patchRequest","type":"tuple"}],"name":"PATCH","outputs":[{"components":[{"components":[{"internalType":"uint16","name":"status","type":"uint16"},{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"headerInfo","type":"tuple"},{"components":[{"components":[{"internalType":"bytes2","name":"mimeType","type":"bytes2"},{"internalType":"bytes2","name":"charset","type":"bytes2"},{"internalType":"bytes2","name":"encoding","type":"bytes2"},{"internalType":"bytes2","name":"language","type":"bytes2"}],"internalType":"struct ResourceProperties","name":"properties","type":"tuple"},{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"version","type":"uint256"},{"internalType":"uint256","name":"lastModified","type":"uint256"},{"internalType":"bytes32","name":"header","type":"bytes32"}],"internalType":"struct ResourceMetadata","name":"metadata","type":"tuple"},{"internalType":"bytes32","name":"etag","type":"bytes32"}],"internalType":"struct HEADResponse","name":"head","type":"tuple"},{"components":[{"internalType":"bytes32[]","name":"dataPoints","type":"bytes32[]"},{"internalType":"uint256","name":"totalChunks","type":"uint256"}],"internalType":"struct ResourceResponse","name":"resource","type":"tuple"}],"internalType":"struct LOCATEResponse","name":"patchResponse","type":"tuple"}],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint256","name":"ifModifiedSince","type":"uint256"},{"internalType":"bytes32","name":"ifNoneMatch","type":"bytes32"}],"internalType":"struct HEADRequest","name":"head","type":"tuple"},{"components":[{"internalType":"bytes2","name":"mimeType","type":"bytes2"},{"internalType":"bytes2","name":"charset","type":"bytes2"},{"internalType":"bytes2","name":"encoding","type":"bytes2"},{"internalType":"bytes2","name":"language","type":"bytes2"}],"internalType":"struct ResourceProperties","name":"properties","type":"tuple"},{"components":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"chunkIndex","type":"uint256"},{"internalType":"address","name":"publisher","type":"address"}],"internalType":"struct DataRegistration[]","name":"data","type":"tuple[]"}],"internalType":"struct PUTRequest","name":"putRequest","type":"tuple"}],"name":"PUT","outputs":[{"components":[{"components":[{"internalType":"uint16","name":"status","type":"uint16"},{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"headerInfo","type":"tuple"},{"components":[{"components":[{"internalType":"bytes2","name":"mimeType","type":"bytes2"},{"internalType":"bytes2","name":"charset","type":"bytes2"},{"internalType":"bytes2","name":"encoding","type":"bytes2"},{"internalType":"bytes2","name":"language","type":"bytes2"}],"internalType":"struct ResourceProperties","name":"properties","type":"tuple"},{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"version","type":"uint256"},{"internalType":"uint256","name":"lastModified","type":"uint256"},{"internalType":"bytes32","name":"header","type":"bytes32"}],"internalType":"struct ResourceMetadata","name":"metadata","type":"tuple"},{"internalType":"bytes32","name":"etag","type":"bytes32"}],"internalType":"struct HEADResponse","name":"head","type":"tuple"},{"components":[{"internalType":"bytes32[]","name":"dataPoints","type":"bytes32[]"},{"internalType":"uint256","name":"totalChunks","type":"uint256"}],"internalType":"struct ResourceResponse","name":"resource","type":"tuple"}],"internalType":"struct LOCATEResponse","name":"putResponse","type":"tuple"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_newSiteAdmin","type":"bytes32"}],"name":"changeSiteAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_role","type":"bytes32"}],"name":"createResourceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSiteAdminRole","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":{"author":"Web3 Transfer Protocol (WTTP) Development Team","details":"Extends WTTPBaseStorage to provide web-like interactions with blockchain resources","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."}],"InvalidHeader(((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)))":[{"params":{"header":"The header that was invalid"}}],"InvalidRole(bytes32)":[{"params":{"role":"The role identifier that caused the error"}}],"_403(string,bytes32)":[{"params":{"reason":"Reason for the error","role":"Required role for the action"}}],"_404(string,bool)":[{"params":{"isImmutable":"Whether the resource is immutable","reason":"Reason for the error"}}],"_405(string,uint16,bool)":[{"params":{"isImmutable":"Whether the resource is immutable","methodsAllowed":"Bitmask of allowed methods","reason":"Reason for the error"}}],"_416(string,(int256,int256),int256)":[{"params":{"outOfBounds":"The index that was out of bounds","range":"The range that was out of bounds"}}]},"events":{"DEFINESuccess(address,((uint16,((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)),((bytes2,bytes2,bytes2,bytes2),uint256,uint256,uint256,bytes32),bytes32),bytes32))":{"params":{"account":"The account or contract that made the request","response":"The response data"}},"DELETESuccess(address,(uint16,((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)),((bytes2,bytes2,bytes2,bytes2),uint256,uint256,uint256,bytes32),bytes32))":{"params":{"account":"The account or contract that made the request","response":"The response data"}},"HeaderCreated(bytes32)":{"params":{"headerAddress":"Address of the created header"}},"HeaderUpdated(bytes32)":{"params":{"headerAddress":"Address of the updated header"}},"MetadataDeleted(string)":{"params":{"path":"Path of the deleted metadata"}},"MetadataUpdated(string)":{"params":{"path":"Path of the updated resource"}},"PATCHSuccess(address,((uint16,((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)),((bytes2,bytes2,bytes2,bytes2),uint256,uint256,uint256,bytes32),bytes32),(bytes32[],uint256)))":{"params":{"account":"The account or contract that made the request","response":"The response data"}},"PUTSuccess(address,((uint16,((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)),((bytes2,bytes2,bytes2,bytes2),uint256,uint256,uint256,bytes32),bytes32),(bytes32[],uint256)))":{"params":{"account":"The account or contract that made the request","response":"The response data"}},"ResourceCreated(string)":{"params":{"path":"Path of the created resource"}},"ResourceDeleted(string)":{"params":{"path":"Path of the deleted resource"}},"ResourceRoleCreated(bytes32)":{"params":{"role":"The role identifier that was created"}},"ResourceUpdated(string,uint256)":{"params":{"chunkIndex":"Index of the updated chunk","path":"Path of the updated resource"}},"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 to signal 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`)"},"SiteAdminChanged(bytes32,bytes32)":{"params":{"newSiteAdmin":"New site admin role identifier","oldSiteAdmin":"Previous site admin role identifier"}}},"kind":"dev","methods":{"DEFINE(((string,uint256,bytes32),((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string))))":{"details":"Only accessible to resource administrators, creates header if needed","params":{"defineRequest":"Request information with new header data"},"returns":{"defineResponse":"Response containing updated header information"}},"DELETE((string,uint256,bytes32))":{"details":"Only accessible to resource administrators, checks resource mutability","params":{"deleteRequest":"Request information"},"returns":{"deleteResponse":"Response confirming deletion"}},"DPR()":{"details":"Provides external access to the internal DPR_ reference","returns":{"_0":"IDataPointRegistry The Data Point Registry contract"}},"DPS()":{"returns":{"_0":"IDataPointStorage The Data Point Storage contract"}},"GET(((string,uint256,bytes32),(int256,int256)))":{"params":{"getRequest":"Request information"},"returns":{"getResponse":"Response containing resource and storage locations"}},"HEAD((string,uint256,bytes32))":{"details":"External interface for _HEAD with method enforcement","params":{"headRequest":"Request information including conditional headers"},"returns":{"head":"Response with header and metadata information"}},"OPTIONS(string)":{"details":"External interface for _OPTIONS with method enforcement","params":{"_path":"Resource path to check"},"returns":{"optionsResponse":"Response with allowed methods info"}},"PATCH(((string,uint256,bytes32),(bytes,uint256,address)[]))":{"details":"Only accessible to resource administrators, checks resource mutability","params":{"patchRequest":"Request information including update data"},"returns":{"patchResponse":"Response containing updated resource information"}},"PUT(((string,uint256,bytes32),(bytes2,bytes2,bytes2,bytes2),(bytes,uint256,address)[]))":{"details":"Only accessible to resource administrators, transfers any excess payment back","params":{"putRequest":"Request information including content data"},"returns":{"putResponse":"Response containing created resource information"}},"changeSiteAdmin(bytes32)":{"details":"Allows wiping all current site admin permissions by changing the role hash","params":{"_newSiteAdmin":"The new role identifier to use for site administrators"}},"createResourceRole(bytes32)":{"details":"Sets the SITE_ADMIN_ROLE as the admin of the new role, preventing creation of privileged roles","params":{"_role":"The new role identifier to create"}},"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":"Overrides the standard AccessControl implementation to grant DEFAULT_ADMIN_ROLE holders access to all roles","params":{"account":"The address to check for the role","role":"The role identifier to check"},"returns":{"_0":"bool True if the account has the role or is a DEFAULT_ADMIN_ROLE holder"}},"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":"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."}},"title":"WTTP Base Site Contract","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","DEFINE(((string,uint256,bytes32),((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string))))":"42a4cf7d","DELETE((string,uint256,bytes32))":"ca63628c","DPR()":"c2640ed1","DPS()":"ef4e06ec","GET(((string,uint256,bytes32),(int256,int256)))":"0f9004b8","HEAD((string,uint256,bytes32))":"28699f17","OPTIONS(string)":"fd05b634","PATCH(((string,uint256,bytes32),(bytes,uint256,address)[]))":"dd0fec4c","PUT(((string,uint256,bytes32),(bytes2,bytes2,bytes2,bytes2),(bytes,uint256,address)[]))":"b0184e01","changeSiteAdmin(bytes32)":"32729d5e","createResourceRole(bytes32)":"b2455654","getRoleAdmin(bytes32)":"248a9ca3","getSiteAdminRole()":"336875a1","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\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"header\",\"type\":\"tuple\"}],\"name\":\"InvalidHeader\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"InvalidRole\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"_403\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"isImmutable\",\"type\":\"bool\"}],\"name\":\"_404\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"uint16\",\"name\":\"methodsAllowed\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"isImmutable\",\"type\":\"bool\"}],\"name\":\"_405\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"int256\",\"name\":\"start\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"end\",\"type\":\"int256\"}],\"internalType\":\"struct Range\",\"name\":\"range\",\"type\":\"tuple\"},{\"internalType\":\"int256\",\"name\":\"outOfBounds\",\"type\":\"int256\"}],\"name\":\"_416\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"components\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"status\",\"type\":\"uint16\"},{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"headerInfo\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes2\",\"name\":\"mimeType\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"charset\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"encoding\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"language\",\"type\":\"bytes2\"}],\"internalType\":\"struct ResourceProperties\",\"name\":\"properties\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastModified\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"header\",\"type\":\"bytes32\"}],\"internalType\":\"struct ResourceMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"etag\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADResponse\",\"name\":\"head\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"headerAddress\",\"type\":\"bytes32\"}],\"indexed\":false,\"internalType\":\"struct DEFINEResponse\",\"name\":\"response\",\"type\":\"tuple\"}],\"name\":\"DEFINESuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"status\",\"type\":\"uint16\"},{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"headerInfo\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes2\",\"name\":\"mimeType\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"charset\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"encoding\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"language\",\"type\":\"bytes2\"}],\"internalType\":\"struct ResourceProperties\",\"name\":\"properties\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastModified\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"header\",\"type\":\"bytes32\"}],\"internalType\":\"struct ResourceMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"etag\",\"type\":\"bytes32\"}],\"indexed\":false,\"internalType\":\"struct HEADResponse\",\"name\":\"response\",\"type\":\"tuple\"}],\"name\":\"DELETESuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"headerAddress\",\"type\":\"bytes32\"}],\"name\":\"HeaderCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"headerAddress\",\"type\":\"bytes32\"}],\"name\":\"HeaderUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"MetadataDeleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"MetadataUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"components\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"status\",\"type\":\"uint16\"},{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"headerInfo\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes2\",\"name\":\"mimeType\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"charset\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"encoding\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"language\",\"type\":\"bytes2\"}],\"internalType\":\"struct ResourceProperties\",\"name\":\"properties\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastModified\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"header\",\"type\":\"bytes32\"}],\"internalType\":\"struct ResourceMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"etag\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADResponse\",\"name\":\"head\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"dataPoints\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"totalChunks\",\"type\":\"uint256\"}],\"internalType\":\"struct ResourceResponse\",\"name\":\"resource\",\"type\":\"tuple\"}],\"indexed\":false,\"internalType\":\"struct LOCATEResponse\",\"name\":\"response\",\"type\":\"tuple\"}],\"name\":\"PATCHSuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"components\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"status\",\"type\":\"uint16\"},{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"headerInfo\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes2\",\"name\":\"mimeType\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"charset\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"encoding\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"language\",\"type\":\"bytes2\"}],\"internalType\":\"struct ResourceProperties\",\"name\":\"properties\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastModified\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"header\",\"type\":\"bytes32\"}],\"internalType\":\"struct ResourceMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"etag\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADResponse\",\"name\":\"head\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"dataPoints\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"totalChunks\",\"type\":\"uint256\"}],\"internalType\":\"struct ResourceResponse\",\"name\":\"resource\",\"type\":\"tuple\"}],\"indexed\":false,\"internalType\":\"struct LOCATEResponse\",\"name\":\"response\",\"type\":\"tuple\"}],\"name\":\"PUTSuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"ResourceCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"ResourceDeleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"ResourceRoleCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"chunkIndex\",\"type\":\"uint256\"}],\"name\":\"ResourceUpdated\",\"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\":\"bytes32\",\"name\":\"oldSiteAdmin\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"newSiteAdmin\",\"type\":\"bytes32\"}],\"name\":\"SiteAdminChanged\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"ifModifiedSince\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"ifNoneMatch\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADRequest\",\"name\":\"head\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"data\",\"type\":\"tuple\"}],\"internalType\":\"struct DEFINERequest\",\"name\":\"defineRequest\",\"type\":\"tuple\"}],\"name\":\"DEFINE\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"status\",\"type\":\"uint16\"},{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"headerInfo\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes2\",\"name\":\"mimeType\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"charset\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"encoding\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"language\",\"type\":\"bytes2\"}],\"internalType\":\"struct ResourceProperties\",\"name\":\"properties\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastModified\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"header\",\"type\":\"bytes32\"}],\"internalType\":\"struct ResourceMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"etag\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADResponse\",\"name\":\"head\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"headerAddress\",\"type\":\"bytes32\"}],\"internalType\":\"struct DEFINEResponse\",\"name\":\"defineResponse\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"ifModifiedSince\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"ifNoneMatch\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADRequest\",\"name\":\"deleteRequest\",\"type\":\"tuple\"}],\"name\":\"DELETE\",\"outputs\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"status\",\"type\":\"uint16\"},{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"headerInfo\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes2\",\"name\":\"mimeType\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"charset\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"encoding\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"language\",\"type\":\"bytes2\"}],\"internalType\":\"struct ResourceProperties\",\"name\":\"properties\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastModified\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"header\",\"type\":\"bytes32\"}],\"internalType\":\"struct ResourceMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"etag\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADResponse\",\"name\":\"deleteResponse\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DPR\",\"outputs\":[{\"internalType\":\"contract IDataPointRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DPS\",\"outputs\":[{\"internalType\":\"contract IDataPointStorage\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"ifModifiedSince\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"ifNoneMatch\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADRequest\",\"name\":\"head\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int256\",\"name\":\"start\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"end\",\"type\":\"int256\"}],\"internalType\":\"struct Range\",\"name\":\"rangeChunks\",\"type\":\"tuple\"}],\"internalType\":\"struct LOCATERequest\",\"name\":\"getRequest\",\"type\":\"tuple\"}],\"name\":\"GET\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"status\",\"type\":\"uint16\"},{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"headerInfo\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes2\",\"name\":\"mimeType\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"charset\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"encoding\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"language\",\"type\":\"bytes2\"}],\"internalType\":\"struct ResourceProperties\",\"name\":\"properties\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastModified\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"header\",\"type\":\"bytes32\"}],\"internalType\":\"struct ResourceMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"etag\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADResponse\",\"name\":\"head\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"dataPoints\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"totalChunks\",\"type\":\"uint256\"}],\"internalType\":\"struct ResourceResponse\",\"name\":\"resource\",\"type\":\"tuple\"}],\"internalType\":\"struct LOCATEResponse\",\"name\":\"getResponse\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"ifModifiedSince\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"ifNoneMatch\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADRequest\",\"name\":\"headRequest\",\"type\":\"tuple\"}],\"name\":\"HEAD\",\"outputs\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"status\",\"type\":\"uint16\"},{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"headerInfo\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes2\",\"name\":\"mimeType\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"charset\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"encoding\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"language\",\"type\":\"bytes2\"}],\"internalType\":\"struct ResourceProperties\",\"name\":\"properties\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastModified\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"header\",\"type\":\"bytes32\"}],\"internalType\":\"struct ResourceMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"etag\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADResponse\",\"name\":\"head\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_path\",\"type\":\"string\"}],\"name\":\"OPTIONS\",\"outputs\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"status\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"allow\",\"type\":\"uint16\"}],\"internalType\":\"struct OPTIONSResponse\",\"name\":\"optionsResponse\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"ifModifiedSince\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"ifNoneMatch\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADRequest\",\"name\":\"head\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"chunkIndex\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"}],\"internalType\":\"struct DataRegistration[]\",\"name\":\"data\",\"type\":\"tuple[]\"}],\"internalType\":\"struct PATCHRequest\",\"name\":\"patchRequest\",\"type\":\"tuple\"}],\"name\":\"PATCH\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"status\",\"type\":\"uint16\"},{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"headerInfo\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes2\",\"name\":\"mimeType\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"charset\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"encoding\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"language\",\"type\":\"bytes2\"}],\"internalType\":\"struct ResourceProperties\",\"name\":\"properties\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastModified\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"header\",\"type\":\"bytes32\"}],\"internalType\":\"struct ResourceMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"etag\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADResponse\",\"name\":\"head\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"dataPoints\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"totalChunks\",\"type\":\"uint256\"}],\"internalType\":\"struct ResourceResponse\",\"name\":\"resource\",\"type\":\"tuple\"}],\"internalType\":\"struct LOCATEResponse\",\"name\":\"patchResponse\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"ifModifiedSince\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"ifNoneMatch\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADRequest\",\"name\":\"head\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes2\",\"name\":\"mimeType\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"charset\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"encoding\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"language\",\"type\":\"bytes2\"}],\"internalType\":\"struct ResourceProperties\",\"name\":\"properties\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"chunkIndex\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"}],\"internalType\":\"struct DataRegistration[]\",\"name\":\"data\",\"type\":\"tuple[]\"}],\"internalType\":\"struct PUTRequest\",\"name\":\"putRequest\",\"type\":\"tuple\"}],\"name\":\"PUT\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"status\",\"type\":\"uint16\"},{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"headerInfo\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes2\",\"name\":\"mimeType\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"charset\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"encoding\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"language\",\"type\":\"bytes2\"}],\"internalType\":\"struct ResourceProperties\",\"name\":\"properties\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastModified\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"header\",\"type\":\"bytes32\"}],\"internalType\":\"struct ResourceMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"etag\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADResponse\",\"name\":\"head\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"dataPoints\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"totalChunks\",\"type\":\"uint256\"}],\"internalType\":\"struct ResourceResponse\",\"name\":\"resource\",\"type\":\"tuple\"}],\"internalType\":\"struct LOCATEResponse\",\"name\":\"putResponse\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_newSiteAdmin\",\"type\":\"bytes32\"}],\"name\":\"changeSiteAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"}],\"name\":\"createResourceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSiteAdminRole\",\"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\":{\"author\":\"Web3 Transfer Protocol (WTTP) Development Team\",\"details\":\"Extends WTTPBaseStorage to provide web-like interactions with blockchain resources\",\"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.\"}],\"InvalidHeader(((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)))\":[{\"params\":{\"header\":\"The header that was invalid\"}}],\"InvalidRole(bytes32)\":[{\"params\":{\"role\":\"The role identifier that caused the error\"}}],\"_403(string,bytes32)\":[{\"params\":{\"reason\":\"Reason for the error\",\"role\":\"Required role for the action\"}}],\"_404(string,bool)\":[{\"params\":{\"isImmutable\":\"Whether the resource is immutable\",\"reason\":\"Reason for the error\"}}],\"_405(string,uint16,bool)\":[{\"params\":{\"isImmutable\":\"Whether the resource is immutable\",\"methodsAllowed\":\"Bitmask of allowed methods\",\"reason\":\"Reason for the error\"}}],\"_416(string,(int256,int256),int256)\":[{\"params\":{\"outOfBounds\":\"The index that was out of bounds\",\"range\":\"The range that was out of bounds\"}}]},\"events\":{\"DEFINESuccess(address,((uint16,((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)),((bytes2,bytes2,bytes2,bytes2),uint256,uint256,uint256,bytes32),bytes32),bytes32))\":{\"params\":{\"account\":\"The account or contract that made the request\",\"response\":\"The response data\"}},\"DELETESuccess(address,(uint16,((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)),((bytes2,bytes2,bytes2,bytes2),uint256,uint256,uint256,bytes32),bytes32))\":{\"params\":{\"account\":\"The account or contract that made the request\",\"response\":\"The response data\"}},\"HeaderCreated(bytes32)\":{\"params\":{\"headerAddress\":\"Address of the created header\"}},\"HeaderUpdated(bytes32)\":{\"params\":{\"headerAddress\":\"Address of the updated header\"}},\"MetadataDeleted(string)\":{\"params\":{\"path\":\"Path of the deleted metadata\"}},\"MetadataUpdated(string)\":{\"params\":{\"path\":\"Path of the updated resource\"}},\"PATCHSuccess(address,((uint16,((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)),((bytes2,bytes2,bytes2,bytes2),uint256,uint256,uint256,bytes32),bytes32),(bytes32[],uint256)))\":{\"params\":{\"account\":\"The account or contract that made the request\",\"response\":\"The response data\"}},\"PUTSuccess(address,((uint16,((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)),((bytes2,bytes2,bytes2,bytes2),uint256,uint256,uint256,bytes32),bytes32),(bytes32[],uint256)))\":{\"params\":{\"account\":\"The account or contract that made the request\",\"response\":\"The response data\"}},\"ResourceCreated(string)\":{\"params\":{\"path\":\"Path of the created resource\"}},\"ResourceDeleted(string)\":{\"params\":{\"path\":\"Path of the deleted resource\"}},\"ResourceRoleCreated(bytes32)\":{\"params\":{\"role\":\"The role identifier that was created\"}},\"ResourceUpdated(string,uint256)\":{\"params\":{\"chunkIndex\":\"Index of the updated chunk\",\"path\":\"Path of the updated resource\"}},\"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 to signal 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`)\"},\"SiteAdminChanged(bytes32,bytes32)\":{\"params\":{\"newSiteAdmin\":\"New site admin role identifier\",\"oldSiteAdmin\":\"Previous site admin role identifier\"}}},\"kind\":\"dev\",\"methods\":{\"DEFINE(((string,uint256,bytes32),((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string))))\":{\"details\":\"Only accessible to resource administrators, creates header if needed\",\"params\":{\"defineRequest\":\"Request information with new header data\"},\"returns\":{\"defineResponse\":\"Response containing updated header information\"}},\"DELETE((string,uint256,bytes32))\":{\"details\":\"Only accessible to resource administrators, checks resource mutability\",\"params\":{\"deleteRequest\":\"Request information\"},\"returns\":{\"deleteResponse\":\"Response confirming deletion\"}},\"DPR()\":{\"details\":\"Provides external access to the internal DPR_ reference\",\"returns\":{\"_0\":\"IDataPointRegistry The Data Point Registry contract\"}},\"DPS()\":{\"returns\":{\"_0\":\"IDataPointStorage The Data Point Storage contract\"}},\"GET(((string,uint256,bytes32),(int256,int256)))\":{\"params\":{\"getRequest\":\"Request information\"},\"returns\":{\"getResponse\":\"Response containing resource and storage locations\"}},\"HEAD((string,uint256,bytes32))\":{\"details\":\"External interface for _HEAD with method enforcement\",\"params\":{\"headRequest\":\"Request information including conditional headers\"},\"returns\":{\"head\":\"Response with header and metadata information\"}},\"OPTIONS(string)\":{\"details\":\"External interface for _OPTIONS with method enforcement\",\"params\":{\"_path\":\"Resource path to check\"},\"returns\":{\"optionsResponse\":\"Response with allowed methods info\"}},\"PATCH(((string,uint256,bytes32),(bytes,uint256,address)[]))\":{\"details\":\"Only accessible to resource administrators, checks resource mutability\",\"params\":{\"patchRequest\":\"Request information including update data\"},\"returns\":{\"patchResponse\":\"Response containing updated resource information\"}},\"PUT(((string,uint256,bytes32),(bytes2,bytes2,bytes2,bytes2),(bytes,uint256,address)[]))\":{\"details\":\"Only accessible to resource administrators, transfers any excess payment back\",\"params\":{\"putRequest\":\"Request information including content data\"},\"returns\":{\"putResponse\":\"Response containing created resource information\"}},\"changeSiteAdmin(bytes32)\":{\"details\":\"Allows wiping all current site admin permissions by changing the role hash\",\"params\":{\"_newSiteAdmin\":\"The new role identifier to use for site administrators\"}},\"createResourceRole(bytes32)\":{\"details\":\"Sets the SITE_ADMIN_ROLE as the admin of the new role, preventing creation of privileged roles\",\"params\":{\"_role\":\"The new role identifier to create\"}},\"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\":\"Overrides the standard AccessControl implementation to grant DEFAULT_ADMIN_ROLE holders access to all roles\",\"params\":{\"account\":\"The address to check for the role\",\"role\":\"The role identifier to check\"},\"returns\":{\"_0\":\"bool True if the account has the role or is a DEFAULT_ADMIN_ROLE holder\"}},\"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\":\"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.\"}},\"title\":\"WTTP Base Site Contract\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidHeader(((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)))\":[{\"notice\":\"Error thrown when an invalid header is used\"}],\"InvalidRole(bytes32)\":[{\"notice\":\"Error thrown when an invalid role is used\"}],\"_403(string,bytes32)\":[{\"notice\":\"Error thrown when an account lacks permission for a role\"}],\"_404(string,bool)\":[{\"notice\":\"Error thrown when a resource does not exist\"}],\"_405(string,uint16,bool)\":[{\"notice\":\"Error thrown when a method is not allowed for a resource\"}],\"_416(string,(int256,int256),int256)\":[{\"notice\":\"Error thrown when a range is out of bounds\"}]},\"events\":{\"DEFINESuccess(address,((uint16,((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)),((bytes2,bytes2,bytes2,bytes2),uint256,uint256,uint256,bytes32),bytes32),bytes32))\":{\"notice\":\"Emitted when a DEFINE request is successful\"},\"DELETESuccess(address,(uint16,((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)),((bytes2,bytes2,bytes2,bytes2),uint256,uint256,uint256,bytes32),bytes32))\":{\"notice\":\"Emitted when a DELETE request is successful\"},\"HeaderCreated(bytes32)\":{\"notice\":\"Emitted when a header is created\"},\"HeaderUpdated(bytes32)\":{\"notice\":\"Emitted when a header is updated\"},\"MetadataDeleted(string)\":{\"notice\":\"Emitted when resource metadata is deleted\"},\"MetadataUpdated(string)\":{\"notice\":\"Emitted when resource metadata is updated\"},\"PATCHSuccess(address,((uint16,((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)),((bytes2,bytes2,bytes2,bytes2),uint256,uint256,uint256,bytes32),bytes32),(bytes32[],uint256)))\":{\"notice\":\"Emitted when a PATCH request is successful\"},\"PUTSuccess(address,((uint16,((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)),((bytes2,bytes2,bytes2,bytes2),uint256,uint256,uint256,bytes32),bytes32),(bytes32[],uint256)))\":{\"notice\":\"Emitted when a PUT request is successful\"},\"ResourceCreated(string)\":{\"notice\":\"Emitted when a new resource is created\"},\"ResourceDeleted(string)\":{\"notice\":\"Emitted when a resource is deleted\"},\"ResourceRoleCreated(bytes32)\":{\"notice\":\"Emitted when a new resource role is created\"},\"ResourceUpdated(string,uint256)\":{\"notice\":\"Emitted when a resource is updated\"},\"SiteAdminChanged(bytes32,bytes32)\":{\"notice\":\"Emitted when the site admin role identifier is changed\"}},\"kind\":\"user\",\"methods\":{\"DEFINE(((string,uint256,bytes32),((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string))))\":{\"notice\":\"Handles DEFINE requests to update resource headers\"},\"DELETE((string,uint256,bytes32))\":{\"notice\":\"Handles DELETE requests to remove resources\"},\"DPR()\":{\"notice\":\"Returns the Data Point Registry contract instance\"},\"GET(((string,uint256,bytes32),(int256,int256)))\":{\"notice\":\"Handles GET requests to retrieve resource content locations\"},\"HEAD((string,uint256,bytes32))\":{\"notice\":\"Handles WTTP HEAD requests for metadata\"},\"OPTIONS(string)\":{\"notice\":\"Handles OPTIONS requests to check available methods\"},\"PATCH(((string,uint256,bytes32),(bytes,uint256,address)[]))\":{\"notice\":\"Handles PATCH requests to update existing resources\"},\"PUT(((string,uint256,bytes32),(bytes2,bytes2,bytes2,bytes2),(bytes,uint256,address)[]))\":{\"notice\":\"Handles PUT requests to create new resources\"},\"changeSiteAdmin(bytes32)\":{\"notice\":\"Changes the SITE_ADMIN_ROLE identifier\"},\"createResourceRole(bytes32)\":{\"notice\":\"Creates a new resource-specific admin role\"},\"hasRole(bytes32,address)\":{\"notice\":\"Check if an account has a specific role\"}},\"notice\":\"Implements core WTTP protocol methods for HTTP-like operations on blockchain\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/BaseWTTPSite.sol\":\"BaseWTTPSite\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x1a6b4f6b7798ab80929d491b89d5427a9b3338c0fd1acd0ba325f69c6f1646af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7bb7f346c12a14dc622bc105ce3c47202fbc89f4b153a28a63bb68193297330c\",\"dweb:/ipfs/QmagwF8P3bUBXwdo159ueEnY9dLSvEWwK24kk2op58egwG\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d\",\"dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x2d9dc2fe26180f74c11c13663647d38e259e45f95eb88f57b61d2160b0109d3e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81233d1f98060113d9922180bb0f14f8335856fe9f339134b09335e9f678c377\",\"dweb:/ipfs/QmWh6R35SarhAn4z2wH8SU456jJSYL2FgucfTFgbHJJN4E\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"@tw3/esp/contracts/interfaces/IDataPointRegistry.sol\":{\"keccak256\":\"0xcd4a8cd032d6bcaf2962365dd42117d66b7b8fef28659c5a9a98eff92b1c4aa9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b69441061a8312b9cdcfd1324b8eda91b01439d93f687c3264187f3d602fb62\",\"dweb:/ipfs/QmSgy2z8z89U3Bpb7kdRa3BC8kyCPHsVrEhqoyo5RMTLhn\"]},\"@tw3/esp/contracts/interfaces/IDataPointStorage.sol\":{\"keccak256\":\"0xa4a14052a76722c3bd32abae7a8c9c69992431f10b1e8badd3cb6fb4df778f3a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc292c6f2b84e11c1517185862351016c6d826b8e43a7fd9d1feb8d5df323f01\",\"dweb:/ipfs/QmTPbMH2To279xMEwMHt2Wkn1112S8AoCEtyeMUeHPY2Yr\"]},\"@tw3/esp/contracts/interfaces/IOwnable.sol\":{\"keccak256\":\"0xccc9116dcc2404b7e137be6463dfa6b38056d5bb37dea682aa6439113b7cdbea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2eba65c8ee67fefab206555002096ca65111cf0a789a99fbcc3c3d4e1aace08\",\"dweb:/ipfs/Qmd2V1zRCTsamkixHcBjtc8YaWzk4uR1cW2AHbyVQRAE5Y\"]},\"@tw3/esp/contracts/types/ESPTypes.sol\":{\"keccak256\":\"0x1785aedd594e69b4d82eac428ed44e687cdfa02c95757e68fa530add9683f4b4\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://c46abca79aa57b5be3ecbe5fb29050efe6688f25de1213624a8fa12397fd351f\",\"dweb:/ipfs/QmbXMaastNWh4jCkb4HHm8e1B2L3L7aBRk3X2aadab6oBk\"]},\"@wttp/core/contracts/types/WTTPTypes.sol\":{\"keccak256\":\"0x582b2ae2c999be00bc0e84250947b68267c0094724c08bd6d469ce6a0c600033\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://ee0796885b414ab9273b1d71a7ad3fd82534eab2c31dca5cb28c1842ad386990\",\"dweb:/ipfs/QmXetxWra7YmuU2DmTaY3UbTPMwSTHKjKGXj9jY3DDurWm\"]},\"contracts/BaseWTTPPermissions.sol\":{\"keccak256\":\"0x37238be953aea95f118eac0da669bed4bd519cf92e8d2caf04bec41a43bbef4c\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://aae7deace578c29704b92e26a3b8f2185d012c232dfe464a0b4ae7e98adaf735\",\"dweb:/ipfs/QmY6W7gKfpJNouH4TjvpJYaL5ehAX3FGfTR32F5KrJXsmt\"]},\"contracts/BaseWTTPSite.sol\":{\"keccak256\":\"0x8e65a1951b101da8b73b2a038363abaa1d5183ca6893146912808d3967d67510\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://49a945f162199f2e6bfe4de480f757cca9273869c1283a1123a419a9ef56b03b\",\"dweb:/ipfs/QmTGQnBv6j72zL6HMuxRSFFQQagr7rXZgUZaqgUx3WwsLa\"]},\"contracts/BaseWTTPStorage.sol\":{\"keccak256\":\"0x91e816da956dd20c2bae9f4938880a44aa288613cbab83dc1ee850be52e9a393\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://a4be291d3d109757b8cf8b73c2ba66168ad431ca95f4d305e36fec0319b89489\",\"dweb:/ipfs/QmbpGYBoEfwmuh5S981xPyWHDn94yqeJ6HYUYWb85pqEQH\"]}},\"version\":1}","userdoc":{"errors":{"InvalidHeader(((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)))":[{"notice":"Error thrown when an invalid header is used"}],"InvalidRole(bytes32)":[{"notice":"Error thrown when an invalid role is used"}],"_403(string,bytes32)":[{"notice":"Error thrown when an account lacks permission for a role"}],"_404(string,bool)":[{"notice":"Error thrown when a resource does not exist"}],"_405(string,uint16,bool)":[{"notice":"Error thrown when a method is not allowed for a resource"}],"_416(string,(int256,int256),int256)":[{"notice":"Error thrown when a range is out of bounds"}]},"events":{"DEFINESuccess(address,((uint16,((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)),((bytes2,bytes2,bytes2,bytes2),uint256,uint256,uint256,bytes32),bytes32),bytes32))":{"notice":"Emitted when a DEFINE request is successful"},"DELETESuccess(address,(uint16,((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)),((bytes2,bytes2,bytes2,bytes2),uint256,uint256,uint256,bytes32),bytes32))":{"notice":"Emitted when a DELETE request is successful"},"HeaderCreated(bytes32)":{"notice":"Emitted when a header is created"},"HeaderUpdated(bytes32)":{"notice":"Emitted when a header is updated"},"MetadataDeleted(string)":{"notice":"Emitted when resource metadata is deleted"},"MetadataUpdated(string)":{"notice":"Emitted when resource metadata is updated"},"PATCHSuccess(address,((uint16,((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)),((bytes2,bytes2,bytes2,bytes2),uint256,uint256,uint256,bytes32),bytes32),(bytes32[],uint256)))":{"notice":"Emitted when a PATCH request is successful"},"PUTSuccess(address,((uint16,((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)),((bytes2,bytes2,bytes2,bytes2),uint256,uint256,uint256,bytes32),bytes32),(bytes32[],uint256)))":{"notice":"Emitted when a PUT request is successful"},"ResourceCreated(string)":{"notice":"Emitted when a new resource is created"},"ResourceDeleted(string)":{"notice":"Emitted when a resource is deleted"},"ResourceRoleCreated(bytes32)":{"notice":"Emitted when a new resource role is created"},"ResourceUpdated(string,uint256)":{"notice":"Emitted when a resource is updated"},"SiteAdminChanged(bytes32,bytes32)":{"notice":"Emitted when the site admin role identifier is changed"}},"kind":"user","methods":{"DEFINE(((string,uint256,bytes32),((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string))))":{"notice":"Handles DEFINE requests to update resource headers"},"DELETE((string,uint256,bytes32))":{"notice":"Handles DELETE requests to remove resources"},"DPR()":{"notice":"Returns the Data Point Registry contract instance"},"GET(((string,uint256,bytes32),(int256,int256)))":{"notice":"Handles GET requests to retrieve resource content locations"},"HEAD((string,uint256,bytes32))":{"notice":"Handles WTTP HEAD requests for metadata"},"OPTIONS(string)":{"notice":"Handles OPTIONS requests to check available methods"},"PATCH(((string,uint256,bytes32),(bytes,uint256,address)[]))":{"notice":"Handles PATCH requests to update existing resources"},"PUT(((string,uint256,bytes32),(bytes2,bytes2,bytes2,bytes2),(bytes,uint256,address)[]))":{"notice":"Handles PUT requests to create new resources"},"changeSiteAdmin(bytes32)":{"notice":"Changes the SITE_ADMIN_ROLE identifier"},"createResourceRole(bytes32)":{"notice":"Creates a new resource-specific admin role"},"hasRole(bytes32,address)":{"notice":"Check if an account has a specific role"}},"notice":"Implements core WTTP protocol methods for HTTP-like operations on blockchain","version":1}}},"contracts/BaseWTTPStorage.sol":{"BaseWTTPStorage":{"abi":[{"inputs":[],"name":"DPR","outputs":[{"internalType":"contract IDataPointRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DPS","outputs":[{"internalType":"contract IDataPointStorage","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"devdoc":{"author":"Web3 Transfer Protocol (WTTP) Development Team","details":"Core storage functionality for the WTTP protocol      Resources are stored as chunks of data points with associated metadata and headers","kind":"dev","methods":{"DPR()":{"details":"Provides external access to the internal DPR_ reference","returns":{"_0":"IDataPointRegistry The Data Point Registry contract"}},"DPS()":{"returns":{"_0":"IDataPointStorage The Data Point Storage contract"}},"constructor":{"details":"Sets up the data point registry and default header","params":{"_dpr":"Address of the Data Point Registry contract"}}},"stateVariables":{"DPR_":{"details":"Used to register data points and access the Data Point Storage"},"header":{"details":"Headers contain HTTP-like metadata and access control settings"},"metadata":{"details":"Metadata includes size, version, timestamps, and header reference"},"resource":{"details":"Each resource is stored as a sequence of data point chunks"}},"title":"WTTP Base Storage Contract","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DPR()":"c2640ed1","DPS()":"ef4e06ec"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DPR\",\"outputs\":[{\"internalType\":\"contract IDataPointRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DPS\",\"outputs\":[{\"internalType\":\"contract IDataPointStorage\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Web3 Transfer Protocol (WTTP) Development Team\",\"details\":\"Core storage functionality for the WTTP protocol      Resources are stored as chunks of data points with associated metadata and headers\",\"kind\":\"dev\",\"methods\":{\"DPR()\":{\"details\":\"Provides external access to the internal DPR_ reference\",\"returns\":{\"_0\":\"IDataPointRegistry The Data Point Registry contract\"}},\"DPS()\":{\"returns\":{\"_0\":\"IDataPointStorage The Data Point Storage contract\"}},\"constructor\":{\"details\":\"Sets up the data point registry and default header\",\"params\":{\"_dpr\":\"Address of the Data Point Registry contract\"}}},\"stateVariables\":{\"DPR_\":{\"details\":\"Used to register data points and access the Data Point Storage\"},\"header\":{\"details\":\"Headers contain HTTP-like metadata and access control settings\"},\"metadata\":{\"details\":\"Metadata includes size, version, timestamps, and header reference\"},\"resource\":{\"details\":\"Each resource is stored as a sequence of data point chunks\"}},\"title\":\"WTTP Base Storage Contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DPR()\":{\"notice\":\"Returns the Data Point Registry contract instance\"},\"constructor\":{\"notice\":\"Initializes the storage contract with core dependencies and defaults\"}},\"notice\":\"Manages web resource storage and access control\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/BaseWTTPStorage.sol\":\"BaseWTTPStorage\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@tw3/esp/contracts/interfaces/IDataPointRegistry.sol\":{\"keccak256\":\"0xcd4a8cd032d6bcaf2962365dd42117d66b7b8fef28659c5a9a98eff92b1c4aa9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b69441061a8312b9cdcfd1324b8eda91b01439d93f687c3264187f3d602fb62\",\"dweb:/ipfs/QmSgy2z8z89U3Bpb7kdRa3BC8kyCPHsVrEhqoyo5RMTLhn\"]},\"@tw3/esp/contracts/interfaces/IDataPointStorage.sol\":{\"keccak256\":\"0xa4a14052a76722c3bd32abae7a8c9c69992431f10b1e8badd3cb6fb4df778f3a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc292c6f2b84e11c1517185862351016c6d826b8e43a7fd9d1feb8d5df323f01\",\"dweb:/ipfs/QmTPbMH2To279xMEwMHt2Wkn1112S8AoCEtyeMUeHPY2Yr\"]},\"@tw3/esp/contracts/interfaces/IOwnable.sol\":{\"keccak256\":\"0xccc9116dcc2404b7e137be6463dfa6b38056d5bb37dea682aa6439113b7cdbea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2eba65c8ee67fefab206555002096ca65111cf0a789a99fbcc3c3d4e1aace08\",\"dweb:/ipfs/Qmd2V1zRCTsamkixHcBjtc8YaWzk4uR1cW2AHbyVQRAE5Y\"]},\"@tw3/esp/contracts/types/ESPTypes.sol\":{\"keccak256\":\"0x1785aedd594e69b4d82eac428ed44e687cdfa02c95757e68fa530add9683f4b4\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://c46abca79aa57b5be3ecbe5fb29050efe6688f25de1213624a8fa12397fd351f\",\"dweb:/ipfs/QmbXMaastNWh4jCkb4HHm8e1B2L3L7aBRk3X2aadab6oBk\"]},\"@wttp/core/contracts/types/WTTPTypes.sol\":{\"keccak256\":\"0x582b2ae2c999be00bc0e84250947b68267c0094724c08bd6d469ce6a0c600033\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://ee0796885b414ab9273b1d71a7ad3fd82534eab2c31dca5cb28c1842ad386990\",\"dweb:/ipfs/QmXetxWra7YmuU2DmTaY3UbTPMwSTHKjKGXj9jY3DDurWm\"]},\"contracts/BaseWTTPStorage.sol\":{\"keccak256\":\"0x91e816da956dd20c2bae9f4938880a44aa288613cbab83dc1ee850be52e9a393\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://a4be291d3d109757b8cf8b73c2ba66168ad431ca95f4d305e36fec0319b89489\",\"dweb:/ipfs/QmbpGYBoEfwmuh5S981xPyWHDn94yqeJ6HYUYWb85pqEQH\"]}},\"version\":1}","userdoc":{"kind":"user","methods":{"DPR()":{"notice":"Returns the Data Point Registry contract instance"},"constructor":{"notice":"Initializes the storage contract with core dependencies and defaults"}},"notice":"Manages web resource storage and access control","version":1}}},"contracts/Web3Site.sol":{"Web3Site":{"abi":[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_dpr","type":"address"},{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"_defaultHeader","type":"tuple"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"inputs":[{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"header","type":"tuple"}],"name":"InvalidHeader","type":"error"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"InvalidRole","type":"error"},{"inputs":[{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"_403","type":"error"},{"inputs":[{"internalType":"string","name":"reason","type":"string"},{"internalType":"bool","name":"isImmutable","type":"bool"}],"name":"_404","type":"error"},{"inputs":[{"internalType":"string","name":"reason","type":"string"},{"internalType":"uint16","name":"methodsAllowed","type":"uint16"},{"internalType":"bool","name":"isImmutable","type":"bool"}],"name":"_405","type":"error"},{"inputs":[{"internalType":"string","name":"reason","type":"string"},{"components":[{"internalType":"int256","name":"start","type":"int256"},{"internalType":"int256","name":"end","type":"int256"}],"internalType":"struct Range","name":"range","type":"tuple"},{"internalType":"int256","name":"outOfBounds","type":"int256"}],"name":"_416","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"components":[{"components":[{"internalType":"uint16","name":"status","type":"uint16"},{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"headerInfo","type":"tuple"},{"components":[{"components":[{"internalType":"bytes2","name":"mimeType","type":"bytes2"},{"internalType":"bytes2","name":"charset","type":"bytes2"},{"internalType":"bytes2","name":"encoding","type":"bytes2"},{"internalType":"bytes2","name":"language","type":"bytes2"}],"internalType":"struct ResourceProperties","name":"properties","type":"tuple"},{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"version","type":"uint256"},{"internalType":"uint256","name":"lastModified","type":"uint256"},{"internalType":"bytes32","name":"header","type":"bytes32"}],"internalType":"struct ResourceMetadata","name":"metadata","type":"tuple"},{"internalType":"bytes32","name":"etag","type":"bytes32"}],"internalType":"struct HEADResponse","name":"head","type":"tuple"},{"internalType":"bytes32","name":"headerAddress","type":"bytes32"}],"indexed":false,"internalType":"struct DEFINEResponse","name":"response","type":"tuple"}],"name":"DEFINESuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"components":[{"internalType":"uint16","name":"status","type":"uint16"},{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"headerInfo","type":"tuple"},{"components":[{"components":[{"internalType":"bytes2","name":"mimeType","type":"bytes2"},{"internalType":"bytes2","name":"charset","type":"bytes2"},{"internalType":"bytes2","name":"encoding","type":"bytes2"},{"internalType":"bytes2","name":"language","type":"bytes2"}],"internalType":"struct ResourceProperties","name":"properties","type":"tuple"},{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"version","type":"uint256"},{"internalType":"uint256","name":"lastModified","type":"uint256"},{"internalType":"bytes32","name":"header","type":"bytes32"}],"internalType":"struct ResourceMetadata","name":"metadata","type":"tuple"},{"internalType":"bytes32","name":"etag","type":"bytes32"}],"indexed":false,"internalType":"struct HEADResponse","name":"response","type":"tuple"}],"name":"DELETESuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"headerAddress","type":"bytes32"}],"name":"HeaderCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"headerAddress","type":"bytes32"}],"name":"HeaderUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"path","type":"string"}],"name":"MetadataDeleted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"path","type":"string"}],"name":"MetadataUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"components":[{"components":[{"internalType":"uint16","name":"status","type":"uint16"},{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"headerInfo","type":"tuple"},{"components":[{"components":[{"internalType":"bytes2","name":"mimeType","type":"bytes2"},{"internalType":"bytes2","name":"charset","type":"bytes2"},{"internalType":"bytes2","name":"encoding","type":"bytes2"},{"internalType":"bytes2","name":"language","type":"bytes2"}],"internalType":"struct ResourceProperties","name":"properties","type":"tuple"},{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"version","type":"uint256"},{"internalType":"uint256","name":"lastModified","type":"uint256"},{"internalType":"bytes32","name":"header","type":"bytes32"}],"internalType":"struct ResourceMetadata","name":"metadata","type":"tuple"},{"internalType":"bytes32","name":"etag","type":"bytes32"}],"internalType":"struct HEADResponse","name":"head","type":"tuple"},{"components":[{"internalType":"bytes32[]","name":"dataPoints","type":"bytes32[]"},{"internalType":"uint256","name":"totalChunks","type":"uint256"}],"internalType":"struct ResourceResponse","name":"resource","type":"tuple"}],"indexed":false,"internalType":"struct LOCATEResponse","name":"response","type":"tuple"}],"name":"PATCHSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"components":[{"components":[{"internalType":"uint16","name":"status","type":"uint16"},{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"headerInfo","type":"tuple"},{"components":[{"components":[{"internalType":"bytes2","name":"mimeType","type":"bytes2"},{"internalType":"bytes2","name":"charset","type":"bytes2"},{"internalType":"bytes2","name":"encoding","type":"bytes2"},{"internalType":"bytes2","name":"language","type":"bytes2"}],"internalType":"struct ResourceProperties","name":"properties","type":"tuple"},{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"version","type":"uint256"},{"internalType":"uint256","name":"lastModified","type":"uint256"},{"internalType":"bytes32","name":"header","type":"bytes32"}],"internalType":"struct ResourceMetadata","name":"metadata","type":"tuple"},{"internalType":"bytes32","name":"etag","type":"bytes32"}],"internalType":"struct HEADResponse","name":"head","type":"tuple"},{"components":[{"internalType":"bytes32[]","name":"dataPoints","type":"bytes32[]"},{"internalType":"uint256","name":"totalChunks","type":"uint256"}],"internalType":"struct ResourceResponse","name":"resource","type":"tuple"}],"indexed":false,"internalType":"struct LOCATEResponse","name":"response","type":"tuple"}],"name":"PUTSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"path","type":"string"}],"name":"ResourceCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"path","type":"string"}],"name":"ResourceDeleted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"ResourceRoleCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"path","type":"string"},{"indexed":false,"internalType":"uint256","name":"chunkIndex","type":"uint256"}],"name":"ResourceUpdated","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":"bytes32","name":"oldSiteAdmin","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"newSiteAdmin","type":"bytes32"}],"name":"SiteAdminChanged","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint256","name":"ifModifiedSince","type":"uint256"},{"internalType":"bytes32","name":"ifNoneMatch","type":"bytes32"}],"internalType":"struct HEADRequest","name":"head","type":"tuple"},{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"data","type":"tuple"}],"internalType":"struct DEFINERequest","name":"defineRequest","type":"tuple"}],"name":"DEFINE","outputs":[{"components":[{"components":[{"internalType":"uint16","name":"status","type":"uint16"},{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"headerInfo","type":"tuple"},{"components":[{"components":[{"internalType":"bytes2","name":"mimeType","type":"bytes2"},{"internalType":"bytes2","name":"charset","type":"bytes2"},{"internalType":"bytes2","name":"encoding","type":"bytes2"},{"internalType":"bytes2","name":"language","type":"bytes2"}],"internalType":"struct ResourceProperties","name":"properties","type":"tuple"},{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"version","type":"uint256"},{"internalType":"uint256","name":"lastModified","type":"uint256"},{"internalType":"bytes32","name":"header","type":"bytes32"}],"internalType":"struct ResourceMetadata","name":"metadata","type":"tuple"},{"internalType":"bytes32","name":"etag","type":"bytes32"}],"internalType":"struct HEADResponse","name":"head","type":"tuple"},{"internalType":"bytes32","name":"headerAddress","type":"bytes32"}],"internalType":"struct DEFINEResponse","name":"defineResponse","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint256","name":"ifModifiedSince","type":"uint256"},{"internalType":"bytes32","name":"ifNoneMatch","type":"bytes32"}],"internalType":"struct HEADRequest","name":"deleteRequest","type":"tuple"}],"name":"DELETE","outputs":[{"components":[{"internalType":"uint16","name":"status","type":"uint16"},{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"headerInfo","type":"tuple"},{"components":[{"components":[{"internalType":"bytes2","name":"mimeType","type":"bytes2"},{"internalType":"bytes2","name":"charset","type":"bytes2"},{"internalType":"bytes2","name":"encoding","type":"bytes2"},{"internalType":"bytes2","name":"language","type":"bytes2"}],"internalType":"struct ResourceProperties","name":"properties","type":"tuple"},{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"version","type":"uint256"},{"internalType":"uint256","name":"lastModified","type":"uint256"},{"internalType":"bytes32","name":"header","type":"bytes32"}],"internalType":"struct ResourceMetadata","name":"metadata","type":"tuple"},{"internalType":"bytes32","name":"etag","type":"bytes32"}],"internalType":"struct HEADResponse","name":"deleteResponse","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"DPR","outputs":[{"internalType":"contract IDataPointRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DPS","outputs":[{"internalType":"contract IDataPointStorage","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint256","name":"ifModifiedSince","type":"uint256"},{"internalType":"bytes32","name":"ifNoneMatch","type":"bytes32"}],"internalType":"struct HEADRequest","name":"head","type":"tuple"},{"components":[{"internalType":"int256","name":"start","type":"int256"},{"internalType":"int256","name":"end","type":"int256"}],"internalType":"struct Range","name":"rangeChunks","type":"tuple"}],"internalType":"struct LOCATERequest","name":"getRequest","type":"tuple"}],"name":"GET","outputs":[{"components":[{"components":[{"internalType":"uint16","name":"status","type":"uint16"},{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"headerInfo","type":"tuple"},{"components":[{"components":[{"internalType":"bytes2","name":"mimeType","type":"bytes2"},{"internalType":"bytes2","name":"charset","type":"bytes2"},{"internalType":"bytes2","name":"encoding","type":"bytes2"},{"internalType":"bytes2","name":"language","type":"bytes2"}],"internalType":"struct ResourceProperties","name":"properties","type":"tuple"},{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"version","type":"uint256"},{"internalType":"uint256","name":"lastModified","type":"uint256"},{"internalType":"bytes32","name":"header","type":"bytes32"}],"internalType":"struct ResourceMetadata","name":"metadata","type":"tuple"},{"internalType":"bytes32","name":"etag","type":"bytes32"}],"internalType":"struct HEADResponse","name":"head","type":"tuple"},{"components":[{"internalType":"bytes32[]","name":"dataPoints","type":"bytes32[]"},{"internalType":"uint256","name":"totalChunks","type":"uint256"}],"internalType":"struct ResourceResponse","name":"resource","type":"tuple"}],"internalType":"struct LOCATEResponse","name":"getResponse","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint256","name":"ifModifiedSince","type":"uint256"},{"internalType":"bytes32","name":"ifNoneMatch","type":"bytes32"}],"internalType":"struct HEADRequest","name":"headRequest","type":"tuple"}],"name":"HEAD","outputs":[{"components":[{"internalType":"uint16","name":"status","type":"uint16"},{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"headerInfo","type":"tuple"},{"components":[{"components":[{"internalType":"bytes2","name":"mimeType","type":"bytes2"},{"internalType":"bytes2","name":"charset","type":"bytes2"},{"internalType":"bytes2","name":"encoding","type":"bytes2"},{"internalType":"bytes2","name":"language","type":"bytes2"}],"internalType":"struct ResourceProperties","name":"properties","type":"tuple"},{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"version","type":"uint256"},{"internalType":"uint256","name":"lastModified","type":"uint256"},{"internalType":"bytes32","name":"header","type":"bytes32"}],"internalType":"struct ResourceMetadata","name":"metadata","type":"tuple"},{"internalType":"bytes32","name":"etag","type":"bytes32"}],"internalType":"struct HEADResponse","name":"head","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_path","type":"string"}],"name":"OPTIONS","outputs":[{"components":[{"internalType":"uint16","name":"status","type":"uint16"},{"internalType":"uint16","name":"allow","type":"uint16"}],"internalType":"struct OPTIONSResponse","name":"optionsResponse","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint256","name":"ifModifiedSince","type":"uint256"},{"internalType":"bytes32","name":"ifNoneMatch","type":"bytes32"}],"internalType":"struct HEADRequest","name":"head","type":"tuple"},{"components":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"chunkIndex","type":"uint256"},{"internalType":"address","name":"publisher","type":"address"}],"internalType":"struct DataRegistration[]","name":"data","type":"tuple[]"}],"internalType":"struct PATCHRequest","name":"patchRequest","type":"tuple"}],"name":"PATCH","outputs":[{"components":[{"components":[{"internalType":"uint16","name":"status","type":"uint16"},{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"headerInfo","type":"tuple"},{"components":[{"components":[{"internalType":"bytes2","name":"mimeType","type":"bytes2"},{"internalType":"bytes2","name":"charset","type":"bytes2"},{"internalType":"bytes2","name":"encoding","type":"bytes2"},{"internalType":"bytes2","name":"language","type":"bytes2"}],"internalType":"struct ResourceProperties","name":"properties","type":"tuple"},{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"version","type":"uint256"},{"internalType":"uint256","name":"lastModified","type":"uint256"},{"internalType":"bytes32","name":"header","type":"bytes32"}],"internalType":"struct ResourceMetadata","name":"metadata","type":"tuple"},{"internalType":"bytes32","name":"etag","type":"bytes32"}],"internalType":"struct HEADResponse","name":"head","type":"tuple"},{"components":[{"internalType":"bytes32[]","name":"dataPoints","type":"bytes32[]"},{"internalType":"uint256","name":"totalChunks","type":"uint256"}],"internalType":"struct ResourceResponse","name":"resource","type":"tuple"}],"internalType":"struct LOCATEResponse","name":"patchResponse","type":"tuple"}],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint256","name":"ifModifiedSince","type":"uint256"},{"internalType":"bytes32","name":"ifNoneMatch","type":"bytes32"}],"internalType":"struct HEADRequest","name":"head","type":"tuple"},{"components":[{"internalType":"bytes2","name":"mimeType","type":"bytes2"},{"internalType":"bytes2","name":"charset","type":"bytes2"},{"internalType":"bytes2","name":"encoding","type":"bytes2"},{"internalType":"bytes2","name":"language","type":"bytes2"}],"internalType":"struct ResourceProperties","name":"properties","type":"tuple"},{"components":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"chunkIndex","type":"uint256"},{"internalType":"address","name":"publisher","type":"address"}],"internalType":"struct DataRegistration[]","name":"data","type":"tuple[]"}],"internalType":"struct PUTRequest","name":"putRequest","type":"tuple"}],"name":"PUT","outputs":[{"components":[{"components":[{"internalType":"uint16","name":"status","type":"uint16"},{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"headerInfo","type":"tuple"},{"components":[{"components":[{"internalType":"bytes2","name":"mimeType","type":"bytes2"},{"internalType":"bytes2","name":"charset","type":"bytes2"},{"internalType":"bytes2","name":"encoding","type":"bytes2"},{"internalType":"bytes2","name":"language","type":"bytes2"}],"internalType":"struct ResourceProperties","name":"properties","type":"tuple"},{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"version","type":"uint256"},{"internalType":"uint256","name":"lastModified","type":"uint256"},{"internalType":"bytes32","name":"header","type":"bytes32"}],"internalType":"struct ResourceMetadata","name":"metadata","type":"tuple"},{"internalType":"bytes32","name":"etag","type":"bytes32"}],"internalType":"struct HEADResponse","name":"head","type":"tuple"},{"components":[{"internalType":"bytes32[]","name":"dataPoints","type":"bytes32[]"},{"internalType":"uint256","name":"totalChunks","type":"uint256"}],"internalType":"struct ResourceResponse","name":"resource","type":"tuple"}],"internalType":"struct LOCATEResponse","name":"putResponse","type":"tuple"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_newSiteAdmin","type":"bytes32"}],"name":"changeSiteAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_role","type":"bytes32"}],"name":"createResourceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSiteAdminRole","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":[{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"_defaultHeader","type":"tuple"}],"name":"setDefaultHeader","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":{"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."}],"InvalidHeader(((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)))":[{"params":{"header":"The header that was invalid"}}],"InvalidRole(bytes32)":[{"params":{"role":"The role identifier that caused the error"}}],"_403(string,bytes32)":[{"params":{"reason":"Reason for the error","role":"Required role for the action"}}],"_404(string,bool)":[{"params":{"isImmutable":"Whether the resource is immutable","reason":"Reason for the error"}}],"_405(string,uint16,bool)":[{"params":{"isImmutable":"Whether the resource is immutable","methodsAllowed":"Bitmask of allowed methods","reason":"Reason for the error"}}],"_416(string,(int256,int256),int256)":[{"params":{"outOfBounds":"The index that was out of bounds","range":"The range that was out of bounds"}}]},"events":{"DEFINESuccess(address,((uint16,((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)),((bytes2,bytes2,bytes2,bytes2),uint256,uint256,uint256,bytes32),bytes32),bytes32))":{"params":{"account":"The account or contract that made the request","response":"The response data"}},"DELETESuccess(address,(uint16,((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)),((bytes2,bytes2,bytes2,bytes2),uint256,uint256,uint256,bytes32),bytes32))":{"params":{"account":"The account or contract that made the request","response":"The response data"}},"HeaderCreated(bytes32)":{"params":{"headerAddress":"Address of the created header"}},"HeaderUpdated(bytes32)":{"params":{"headerAddress":"Address of the updated header"}},"MetadataDeleted(string)":{"params":{"path":"Path of the deleted metadata"}},"MetadataUpdated(string)":{"params":{"path":"Path of the updated resource"}},"PATCHSuccess(address,((uint16,((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)),((bytes2,bytes2,bytes2,bytes2),uint256,uint256,uint256,bytes32),bytes32),(bytes32[],uint256)))":{"params":{"account":"The account or contract that made the request","response":"The response data"}},"PUTSuccess(address,((uint16,((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)),((bytes2,bytes2,bytes2,bytes2),uint256,uint256,uint256,bytes32),bytes32),(bytes32[],uint256)))":{"params":{"account":"The account or contract that made the request","response":"The response data"}},"ResourceCreated(string)":{"params":{"path":"Path of the created resource"}},"ResourceDeleted(string)":{"params":{"path":"Path of the deleted resource"}},"ResourceRoleCreated(bytes32)":{"params":{"role":"The role identifier that was created"}},"ResourceUpdated(string,uint256)":{"params":{"chunkIndex":"Index of the updated chunk","path":"Path of the updated resource"}},"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 to signal 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`)"},"SiteAdminChanged(bytes32,bytes32)":{"params":{"newSiteAdmin":"New site admin role identifier","oldSiteAdmin":"Previous site admin role identifier"}}},"kind":"dev","methods":{"DEFINE(((string,uint256,bytes32),((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string))))":{"details":"Only accessible to resource administrators, creates header if needed","params":{"defineRequest":"Request information with new header data"},"returns":{"defineResponse":"Response containing updated header information"}},"DELETE((string,uint256,bytes32))":{"details":"Only accessible to resource administrators, checks resource mutability","params":{"deleteRequest":"Request information"},"returns":{"deleteResponse":"Response confirming deletion"}},"DPR()":{"details":"Provides external access to the internal DPR_ reference","returns":{"_0":"IDataPointRegistry The Data Point Registry contract"}},"DPS()":{"returns":{"_0":"IDataPointStorage The Data Point Storage contract"}},"GET(((string,uint256,bytes32),(int256,int256)))":{"params":{"getRequest":"Request information"},"returns":{"getResponse":"Response containing resource and storage locations"}},"HEAD((string,uint256,bytes32))":{"details":"External interface for _HEAD with method enforcement","params":{"headRequest":"Request information including conditional headers"},"returns":{"head":"Response with header and metadata information"}},"OPTIONS(string)":{"details":"External interface for _OPTIONS with method enforcement","params":{"_path":"Resource path to check"},"returns":{"optionsResponse":"Response with allowed methods info"}},"PATCH(((string,uint256,bytes32),(bytes,uint256,address)[]))":{"details":"Only accessible to resource administrators, checks resource mutability","params":{"patchRequest":"Request information including update data"},"returns":{"patchResponse":"Response containing updated resource information"}},"PUT(((string,uint256,bytes32),(bytes2,bytes2,bytes2,bytes2),(bytes,uint256,address)[]))":{"details":"Only accessible to resource administrators, transfers any excess payment back","params":{"putRequest":"Request information including content data"},"returns":{"putResponse":"Response containing created resource information"}},"changeSiteAdmin(bytes32)":{"details":"Allows wiping all current site admin permissions by changing the role hash","params":{"_newSiteAdmin":"The new role identifier to use for site administrators"}},"createResourceRole(bytes32)":{"details":"Sets the SITE_ADMIN_ROLE as the admin of the new role, preventing creation of privileged roles","params":{"_role":"The new role identifier to create"}},"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":"Overrides the standard AccessControl implementation to grant DEFAULT_ADMIN_ROLE holders access to all roles","params":{"account":"The address to check for the role","role":"The role identifier to check"},"returns":{"_0":"bool True if the account has the role or is a DEFAULT_ADMIN_ROLE holder"}},"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":"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},"evm":{"bytecode":{"functionDebugData":{"@_1543":{"entryPoint":null,"id":1543,"parameterSlots":1,"returnSlots":0},"@_1708":{"entryPoint":null,"id":1708,"parameterSlots":3,"returnSlots":0},"@_2657":{"entryPoint":null,"id":2657,"parameterSlots":1,"returnSlots":0},"@_3308":{"entryPoint":null,"id":3308,"parameterSlots":3,"returnSlots":0},"@_grantRole_257":{"entryPoint":228,"id":257,"parameterSlots":2,"returnSlots":1},"@_msgSender_391":{"entryPoint":758,"id":391,"parameterSlots":0,"returnSlots":1},"@_setDefaultHeader_2822":{"entryPoint":578,"id":2822,"parameterSlots":1,"returnSlots":0},"@_setRoleAdmin_218":{"entryPoint":481,"id":218,"parameterSlots":2,"returnSlots":0},"@_updateHeader_2806":{"entryPoint":797,"id":2806,"parameterSlots":2,"returnSlots":0},"@getRoleAdmin_129":{"entryPoint":766,"id":129,"parameterSlots":1,"returnSlots":1},"@hasRole_1582":{"entryPoint":600,"id":1582,"parameterSlots":2,"returnSlots":1},"@hasRole_81":{"entryPoint":1430,"id":81,"parameterSlots":2,"returnSlots":1},"@maxMethods__1306":{"entryPoint":1536,"id":1306,"parameterSlots":0,"returnSlots":1},"abi_decode_available_length_t_array$_t_bytes32_$dyn_memory_ptr_fromMemory":{"entryPoint":2539,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_string_memory_ptr_fromMemory":{"entryPoint":2138,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address_fromMemory":{"entryPoint":1773,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_bytes32_$dyn_memory_ptr_fromMemory":{"entryPoint":2644,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool_fromMemory":{"entryPoint":1979,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes32_fromMemory":{"entryPoint":2518,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_enum$_CORSPreset_$972_fromMemory":{"entryPoint":2706,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_enum$_CachePreset_$964_fromMemory":{"entryPoint":2016,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_string_memory_ptr_fromMemory":{"entryPoint":2204,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_CORSPolicy_$1000_memory_ptr_fromMemory":{"entryPoint":2727,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_CacheControl_$984_memory_ptr_fromMemory":{"entryPoint":2250,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_HeaderInfo_$1022_memory_ptr_fromMemory":{"entryPoint":3011,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_Redirect_$1008_memory_ptr_fromMemory":{"entryPoint":2903,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint16_fromMemory":{"entryPoint":2415,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_struct$_HeaderInfo_$1022_memory_ptr_fromMemory":{"entryPoint":3195,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encodeUpdatedPos_t_bytes32_to_t_bytes32":{"entryPoint":3679,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr":{"entryPoint":3716,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bool_to_t_bool":{"entryPoint":3306,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32":{"entryPoint":3664,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":4921,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_enum$_CORSPreset_$972_to_t_uint8":{"entryPoint":3867,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_enum$_CachePreset_$964_to_t_uint8":{"entryPoint":3425,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr":{"entryPoint":3468,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_struct$_CORSPolicy_$1000_memory_ptr_to_t_struct$_CORSPolicy_$1000_memory_ptr":{"entryPoint":3882,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_struct$_CacheControl_$984_memory_ptr_to_t_struct$_CacheControl_$984_memory_ptr":{"entryPoint":3525,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_struct$_HeaderInfo_$1022_memory_ptr_to_t_struct$_HeaderInfo_$1022_memory_ptr_fromStack":{"entryPoint":4049,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_struct$_Redirect_$1008_memory_ptr_to_t_struct$_Redirect_$1008_memory_ptr":{"entryPoint":3988,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint16_to_t_uint16":{"entryPoint":3605,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":4936,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_HeaderInfo_$1022_memory_ptr__to_t_struct$_HeaderInfo_$1022_memory_ptr__fromStack_reversed":{"entryPoint":4143,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":1912,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":1680,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_array$_t_bytes32_$dyn_memory_ptr":{"entryPoint":2436,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_t_string_memory_ptr":{"entryPoint":2047,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_array$_t_bytes32_$dyn_memory_ptr":{"entryPoint":3648,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_string_storage":{"entryPoint":4273,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_array$_t_bytes32_$dyn_memory_ptr":{"entryPoint":3620,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":3440,"id":null,"parameterSlots":1,"returnSlots":1},"array_nextElement_t_array$_t_bytes32_$dyn_memory_ptr":{"entryPoint":3703,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr":{"entryPoint":3631,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr":{"entryPoint":3451,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint16":{"entryPoint":5010,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_t_string_storage":{"entryPoint":4570,"id":null,"parameterSlots":3,"returnSlots":0},"cleanup_t_address":{"entryPoint":1732,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":1944,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":2485,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_enum$_CORSPreset_$972":{"entryPoint":3830,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_enum$_CachePreset_$964":{"entryPoint":3388,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint16":{"entryPoint":2378,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":1700,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":4405,"id":null,"parameterSlots":1,"returnSlots":1},"clear_storage_range_t_bytes1":{"entryPoint":4535,"id":null,"parameterSlots":2,"returnSlots":0},"convert_t_enum$_CORSPreset_$972_to_t_uint8":{"entryPoint":3849,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_enum$_CachePreset_$964_to_t_uint8":{"entryPoint":3407,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint256_to_t_uint256":{"entryPoint":4425,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":4711,"id":null,"parameterSlots":2,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":2096,"id":null,"parameterSlots":3,"returnSlots":0},"divide_by_32_ceil":{"entryPoint":4294,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":4224,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":4683,"id":null,"parameterSlots":2,"returnSlots":1},"finalize_allocation":{"entryPoint":1863,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":4415,"id":null,"parameterSlots":1,"returnSlots":1},"mask_bytes_dynamic":{"entryPoint":4653,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":4963,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":3321,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x22":{"entryPoint":4177,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":1816,"id":null,"parameterSlots":0,"returnSlots":0},"prepare_store_t_uint256":{"entryPoint":4459,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":2037,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":1794,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":1939,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":2480,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":2042,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":1695,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":1690,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":1799,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_dynamic":{"entryPoint":4310,"id":null,"parameterSlots":2,"returnSlots":1},"shift_right_unsigned_dynamic":{"entryPoint":4640,"id":null,"parameterSlots":2,"returnSlots":1},"storage_set_to_zero_t_uint256":{"entryPoint":4511,"id":null,"parameterSlots":2,"returnSlots":0},"update_byte_slice_dynamic32":{"entryPoint":4323,"id":null,"parameterSlots":3,"returnSlots":1},"update_storage_value_t_uint256_to_t_uint256":{"entryPoint":4469,"id":null,"parameterSlots":3,"returnSlots":0},"validator_assert_t_enum$_CORSPreset_$972":{"entryPoint":3810,"id":null,"parameterSlots":1,"returnSlots":0},"validator_assert_t_enum$_CachePreset_$964":{"entryPoint":3368,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":1750,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":1956,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes32":{"entryPoint":2495,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_enum$_CORSPreset_$972":{"entryPoint":2690,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_enum$_CachePreset_$964":{"entryPoint":2000,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint16":{"entryPoint":2392,"id":null,"parameterSlots":1,"returnSlots":0},"zero_value_for_split_t_uint256":{"entryPoint":4506,"id":null,"parameterSlots":0,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:25672:21","nodeType":"YulBlock","src":"0:25672:21","statements":[{"body":{"nativeSrc":"47:35:21","nodeType":"YulBlock","src":"47:35:21","statements":[{"nativeSrc":"57:19:21","nodeType":"YulAssignment","src":"57:19:21","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:21","nodeType":"YulLiteral","src":"73:2:21","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:21","nodeType":"YulIdentifier","src":"67:5:21"},"nativeSrc":"67:9:21","nodeType":"YulFunctionCall","src":"67:9:21"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:21","nodeType":"YulIdentifier","src":"57:6:21"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:21","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:21","nodeType":"YulTypedName","src":"40:6:21","type":""}],"src":"7:75:21"},{"body":{"nativeSrc":"177:28:21","nodeType":"YulBlock","src":"177:28:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:21","nodeType":"YulLiteral","src":"194:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:21","nodeType":"YulLiteral","src":"197:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:21","nodeType":"YulIdentifier","src":"187:6:21"},"nativeSrc":"187:12:21","nodeType":"YulFunctionCall","src":"187:12:21"},"nativeSrc":"187:12:21","nodeType":"YulExpressionStatement","src":"187:12:21"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:21","nodeType":"YulFunctionDefinition","src":"88:117:21"},{"body":{"nativeSrc":"300:28:21","nodeType":"YulBlock","src":"300:28:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:21","nodeType":"YulLiteral","src":"317:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:21","nodeType":"YulLiteral","src":"320:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:21","nodeType":"YulIdentifier","src":"310:6:21"},"nativeSrc":"310:12:21","nodeType":"YulFunctionCall","src":"310:12:21"},"nativeSrc":"310:12:21","nodeType":"YulExpressionStatement","src":"310:12:21"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:21","nodeType":"YulFunctionDefinition","src":"211:117:21"},{"body":{"nativeSrc":"379:81:21","nodeType":"YulBlock","src":"379:81:21","statements":[{"nativeSrc":"389:65:21","nodeType":"YulAssignment","src":"389:65:21","value":{"arguments":[{"name":"value","nativeSrc":"404:5:21","nodeType":"YulIdentifier","src":"404:5:21"},{"kind":"number","nativeSrc":"411:42:21","nodeType":"YulLiteral","src":"411:42:21","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"400:3:21","nodeType":"YulIdentifier","src":"400:3:21"},"nativeSrc":"400:54:21","nodeType":"YulFunctionCall","src":"400:54:21"},"variableNames":[{"name":"cleaned","nativeSrc":"389:7:21","nodeType":"YulIdentifier","src":"389:7:21"}]}]},"name":"cleanup_t_uint160","nativeSrc":"334:126:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"361:5:21","nodeType":"YulTypedName","src":"361:5:21","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"371:7:21","nodeType":"YulTypedName","src":"371:7:21","type":""}],"src":"334:126:21"},{"body":{"nativeSrc":"511:51:21","nodeType":"YulBlock","src":"511:51:21","statements":[{"nativeSrc":"521:35:21","nodeType":"YulAssignment","src":"521:35:21","value":{"arguments":[{"name":"value","nativeSrc":"550:5:21","nodeType":"YulIdentifier","src":"550:5:21"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"532:17:21","nodeType":"YulIdentifier","src":"532:17:21"},"nativeSrc":"532:24:21","nodeType":"YulFunctionCall","src":"532:24:21"},"variableNames":[{"name":"cleaned","nativeSrc":"521:7:21","nodeType":"YulIdentifier","src":"521:7:21"}]}]},"name":"cleanup_t_address","nativeSrc":"466:96:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"493:5:21","nodeType":"YulTypedName","src":"493:5:21","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"503:7:21","nodeType":"YulTypedName","src":"503:7:21","type":""}],"src":"466:96:21"},{"body":{"nativeSrc":"611:79:21","nodeType":"YulBlock","src":"611:79:21","statements":[{"body":{"nativeSrc":"668:16:21","nodeType":"YulBlock","src":"668:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"677:1:21","nodeType":"YulLiteral","src":"677:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"680:1:21","nodeType":"YulLiteral","src":"680:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"670:6:21","nodeType":"YulIdentifier","src":"670:6:21"},"nativeSrc":"670:12:21","nodeType":"YulFunctionCall","src":"670:12:21"},"nativeSrc":"670:12:21","nodeType":"YulExpressionStatement","src":"670:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"634:5:21","nodeType":"YulIdentifier","src":"634:5:21"},{"arguments":[{"name":"value","nativeSrc":"659:5:21","nodeType":"YulIdentifier","src":"659:5:21"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"641:17:21","nodeType":"YulIdentifier","src":"641:17:21"},"nativeSrc":"641:24:21","nodeType":"YulFunctionCall","src":"641:24:21"}],"functionName":{"name":"eq","nativeSrc":"631:2:21","nodeType":"YulIdentifier","src":"631:2:21"},"nativeSrc":"631:35:21","nodeType":"YulFunctionCall","src":"631:35:21"}],"functionName":{"name":"iszero","nativeSrc":"624:6:21","nodeType":"YulIdentifier","src":"624:6:21"},"nativeSrc":"624:43:21","nodeType":"YulFunctionCall","src":"624:43:21"},"nativeSrc":"621:63:21","nodeType":"YulIf","src":"621:63:21"}]},"name":"validator_revert_t_address","nativeSrc":"568:122:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"604:5:21","nodeType":"YulTypedName","src":"604:5:21","type":""}],"src":"568:122:21"},{"body":{"nativeSrc":"759:80:21","nodeType":"YulBlock","src":"759:80:21","statements":[{"nativeSrc":"769:22:21","nodeType":"YulAssignment","src":"769:22:21","value":{"arguments":[{"name":"offset","nativeSrc":"784:6:21","nodeType":"YulIdentifier","src":"784:6:21"}],"functionName":{"name":"mload","nativeSrc":"778:5:21","nodeType":"YulIdentifier","src":"778:5:21"},"nativeSrc":"778:13:21","nodeType":"YulFunctionCall","src":"778:13:21"},"variableNames":[{"name":"value","nativeSrc":"769:5:21","nodeType":"YulIdentifier","src":"769:5:21"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"827:5:21","nodeType":"YulIdentifier","src":"827:5:21"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"800:26:21","nodeType":"YulIdentifier","src":"800:26:21"},"nativeSrc":"800:33:21","nodeType":"YulFunctionCall","src":"800:33:21"},"nativeSrc":"800:33:21","nodeType":"YulExpressionStatement","src":"800:33:21"}]},"name":"abi_decode_t_address_fromMemory","nativeSrc":"696:143:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"737:6:21","nodeType":"YulTypedName","src":"737:6:21","type":""},{"name":"end","nativeSrc":"745:3:21","nodeType":"YulTypedName","src":"745:3:21","type":""}],"returnVariables":[{"name":"value","nativeSrc":"753:5:21","nodeType":"YulTypedName","src":"753:5:21","type":""}],"src":"696:143:21"},{"body":{"nativeSrc":"934:28:21","nodeType":"YulBlock","src":"934:28:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"951:1:21","nodeType":"YulLiteral","src":"951:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"954:1:21","nodeType":"YulLiteral","src":"954:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"944:6:21","nodeType":"YulIdentifier","src":"944:6:21"},"nativeSrc":"944:12:21","nodeType":"YulFunctionCall","src":"944:12:21"},"nativeSrc":"944:12:21","nodeType":"YulExpressionStatement","src":"944:12:21"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"845:117:21","nodeType":"YulFunctionDefinition","src":"845:117:21"},{"body":{"nativeSrc":"1016:54:21","nodeType":"YulBlock","src":"1016:54:21","statements":[{"nativeSrc":"1026:38:21","nodeType":"YulAssignment","src":"1026:38:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1044:5:21","nodeType":"YulIdentifier","src":"1044:5:21"},{"kind":"number","nativeSrc":"1051:2:21","nodeType":"YulLiteral","src":"1051:2:21","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1040:3:21","nodeType":"YulIdentifier","src":"1040:3:21"},"nativeSrc":"1040:14:21","nodeType":"YulFunctionCall","src":"1040:14:21"},{"arguments":[{"kind":"number","nativeSrc":"1060:2:21","nodeType":"YulLiteral","src":"1060:2:21","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1056:3:21","nodeType":"YulIdentifier","src":"1056:3:21"},"nativeSrc":"1056:7:21","nodeType":"YulFunctionCall","src":"1056:7:21"}],"functionName":{"name":"and","nativeSrc":"1036:3:21","nodeType":"YulIdentifier","src":"1036:3:21"},"nativeSrc":"1036:28:21","nodeType":"YulFunctionCall","src":"1036:28:21"},"variableNames":[{"name":"result","nativeSrc":"1026:6:21","nodeType":"YulIdentifier","src":"1026:6:21"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"968:102:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"999:5:21","nodeType":"YulTypedName","src":"999:5:21","type":""}],"returnVariables":[{"name":"result","nativeSrc":"1009:6:21","nodeType":"YulTypedName","src":"1009:6:21","type":""}],"src":"968:102:21"},{"body":{"nativeSrc":"1104:152:21","nodeType":"YulBlock","src":"1104:152:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1121:1:21","nodeType":"YulLiteral","src":"1121:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"1124:77:21","nodeType":"YulLiteral","src":"1124:77:21","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"1114:6:21","nodeType":"YulIdentifier","src":"1114:6:21"},"nativeSrc":"1114:88:21","nodeType":"YulFunctionCall","src":"1114:88:21"},"nativeSrc":"1114:88:21","nodeType":"YulExpressionStatement","src":"1114:88:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1218:1:21","nodeType":"YulLiteral","src":"1218:1:21","type":"","value":"4"},{"kind":"number","nativeSrc":"1221:4:21","nodeType":"YulLiteral","src":"1221:4:21","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"1211:6:21","nodeType":"YulIdentifier","src":"1211:6:21"},"nativeSrc":"1211:15:21","nodeType":"YulFunctionCall","src":"1211:15:21"},"nativeSrc":"1211:15:21","nodeType":"YulExpressionStatement","src":"1211:15:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1242:1:21","nodeType":"YulLiteral","src":"1242:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"1245:4:21","nodeType":"YulLiteral","src":"1245:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1235:6:21","nodeType":"YulIdentifier","src":"1235:6:21"},"nativeSrc":"1235:15:21","nodeType":"YulFunctionCall","src":"1235:15:21"},"nativeSrc":"1235:15:21","nodeType":"YulExpressionStatement","src":"1235:15:21"}]},"name":"panic_error_0x41","nativeSrc":"1076:180:21","nodeType":"YulFunctionDefinition","src":"1076:180:21"},{"body":{"nativeSrc":"1305:238:21","nodeType":"YulBlock","src":"1305:238:21","statements":[{"nativeSrc":"1315:58:21","nodeType":"YulVariableDeclaration","src":"1315:58:21","value":{"arguments":[{"name":"memPtr","nativeSrc":"1337:6:21","nodeType":"YulIdentifier","src":"1337:6:21"},{"arguments":[{"name":"size","nativeSrc":"1367:4:21","nodeType":"YulIdentifier","src":"1367:4:21"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"1345:21:21","nodeType":"YulIdentifier","src":"1345:21:21"},"nativeSrc":"1345:27:21","nodeType":"YulFunctionCall","src":"1345:27:21"}],"functionName":{"name":"add","nativeSrc":"1333:3:21","nodeType":"YulIdentifier","src":"1333:3:21"},"nativeSrc":"1333:40:21","nodeType":"YulFunctionCall","src":"1333:40:21"},"variables":[{"name":"newFreePtr","nativeSrc":"1319:10:21","nodeType":"YulTypedName","src":"1319:10:21","type":""}]},{"body":{"nativeSrc":"1484:22:21","nodeType":"YulBlock","src":"1484:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"1486:16:21","nodeType":"YulIdentifier","src":"1486:16:21"},"nativeSrc":"1486:18:21","nodeType":"YulFunctionCall","src":"1486:18:21"},"nativeSrc":"1486:18:21","nodeType":"YulExpressionStatement","src":"1486:18:21"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"1427:10:21","nodeType":"YulIdentifier","src":"1427:10:21"},{"kind":"number","nativeSrc":"1439:18:21","nodeType":"YulLiteral","src":"1439:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"1424:2:21","nodeType":"YulIdentifier","src":"1424:2:21"},"nativeSrc":"1424:34:21","nodeType":"YulFunctionCall","src":"1424:34:21"},{"arguments":[{"name":"newFreePtr","nativeSrc":"1463:10:21","nodeType":"YulIdentifier","src":"1463:10:21"},{"name":"memPtr","nativeSrc":"1475:6:21","nodeType":"YulIdentifier","src":"1475:6:21"}],"functionName":{"name":"lt","nativeSrc":"1460:2:21","nodeType":"YulIdentifier","src":"1460:2:21"},"nativeSrc":"1460:22:21","nodeType":"YulFunctionCall","src":"1460:22:21"}],"functionName":{"name":"or","nativeSrc":"1421:2:21","nodeType":"YulIdentifier","src":"1421:2:21"},"nativeSrc":"1421:62:21","nodeType":"YulFunctionCall","src":"1421:62:21"},"nativeSrc":"1418:88:21","nodeType":"YulIf","src":"1418:88:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1522:2:21","nodeType":"YulLiteral","src":"1522:2:21","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"1526:10:21","nodeType":"YulIdentifier","src":"1526:10:21"}],"functionName":{"name":"mstore","nativeSrc":"1515:6:21","nodeType":"YulIdentifier","src":"1515:6:21"},"nativeSrc":"1515:22:21","nodeType":"YulFunctionCall","src":"1515:22:21"},"nativeSrc":"1515:22:21","nodeType":"YulExpressionStatement","src":"1515:22:21"}]},"name":"finalize_allocation","nativeSrc":"1262:281:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"1291:6:21","nodeType":"YulTypedName","src":"1291:6:21","type":""},{"name":"size","nativeSrc":"1299:4:21","nodeType":"YulTypedName","src":"1299:4:21","type":""}],"src":"1262:281:21"},{"body":{"nativeSrc":"1590:88:21","nodeType":"YulBlock","src":"1590:88:21","statements":[{"nativeSrc":"1600:30:21","nodeType":"YulAssignment","src":"1600:30:21","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"1610:18:21","nodeType":"YulIdentifier","src":"1610:18:21"},"nativeSrc":"1610:20:21","nodeType":"YulFunctionCall","src":"1610:20:21"},"variableNames":[{"name":"memPtr","nativeSrc":"1600:6:21","nodeType":"YulIdentifier","src":"1600:6:21"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"1659:6:21","nodeType":"YulIdentifier","src":"1659:6:21"},{"name":"size","nativeSrc":"1667:4:21","nodeType":"YulIdentifier","src":"1667:4:21"}],"functionName":{"name":"finalize_allocation","nativeSrc":"1639:19:21","nodeType":"YulIdentifier","src":"1639:19:21"},"nativeSrc":"1639:33:21","nodeType":"YulFunctionCall","src":"1639:33:21"},"nativeSrc":"1639:33:21","nodeType":"YulExpressionStatement","src":"1639:33:21"}]},"name":"allocate_memory","nativeSrc":"1549:129:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"1574:4:21","nodeType":"YulTypedName","src":"1574:4:21","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"1583:6:21","nodeType":"YulTypedName","src":"1583:6:21","type":""}],"src":"1549:129:21"},{"body":{"nativeSrc":"1773:28:21","nodeType":"YulBlock","src":"1773:28:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1790:1:21","nodeType":"YulLiteral","src":"1790:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"1793:1:21","nodeType":"YulLiteral","src":"1793:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1783:6:21","nodeType":"YulIdentifier","src":"1783:6:21"},"nativeSrc":"1783:12:21","nodeType":"YulFunctionCall","src":"1783:12:21"},"nativeSrc":"1783:12:21","nodeType":"YulExpressionStatement","src":"1783:12:21"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"1684:117:21","nodeType":"YulFunctionDefinition","src":"1684:117:21"},{"body":{"nativeSrc":"1849:48:21","nodeType":"YulBlock","src":"1849:48:21","statements":[{"nativeSrc":"1859:32:21","nodeType":"YulAssignment","src":"1859:32:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1884:5:21","nodeType":"YulIdentifier","src":"1884:5:21"}],"functionName":{"name":"iszero","nativeSrc":"1877:6:21","nodeType":"YulIdentifier","src":"1877:6:21"},"nativeSrc":"1877:13:21","nodeType":"YulFunctionCall","src":"1877:13:21"}],"functionName":{"name":"iszero","nativeSrc":"1870:6:21","nodeType":"YulIdentifier","src":"1870:6:21"},"nativeSrc":"1870:21:21","nodeType":"YulFunctionCall","src":"1870:21:21"},"variableNames":[{"name":"cleaned","nativeSrc":"1859:7:21","nodeType":"YulIdentifier","src":"1859:7:21"}]}]},"name":"cleanup_t_bool","nativeSrc":"1807:90:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1831:5:21","nodeType":"YulTypedName","src":"1831:5:21","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1841:7:21","nodeType":"YulTypedName","src":"1841:7:21","type":""}],"src":"1807:90:21"},{"body":{"nativeSrc":"1943:76:21","nodeType":"YulBlock","src":"1943:76:21","statements":[{"body":{"nativeSrc":"1997:16:21","nodeType":"YulBlock","src":"1997:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2006:1:21","nodeType":"YulLiteral","src":"2006:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"2009:1:21","nodeType":"YulLiteral","src":"2009:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1999:6:21","nodeType":"YulIdentifier","src":"1999:6:21"},"nativeSrc":"1999:12:21","nodeType":"YulFunctionCall","src":"1999:12:21"},"nativeSrc":"1999:12:21","nodeType":"YulExpressionStatement","src":"1999:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1966:5:21","nodeType":"YulIdentifier","src":"1966:5:21"},{"arguments":[{"name":"value","nativeSrc":"1988:5:21","nodeType":"YulIdentifier","src":"1988:5:21"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1973:14:21","nodeType":"YulIdentifier","src":"1973:14:21"},"nativeSrc":"1973:21:21","nodeType":"YulFunctionCall","src":"1973:21:21"}],"functionName":{"name":"eq","nativeSrc":"1963:2:21","nodeType":"YulIdentifier","src":"1963:2:21"},"nativeSrc":"1963:32:21","nodeType":"YulFunctionCall","src":"1963:32:21"}],"functionName":{"name":"iszero","nativeSrc":"1956:6:21","nodeType":"YulIdentifier","src":"1956:6:21"},"nativeSrc":"1956:40:21","nodeType":"YulFunctionCall","src":"1956:40:21"},"nativeSrc":"1953:60:21","nodeType":"YulIf","src":"1953:60:21"}]},"name":"validator_revert_t_bool","nativeSrc":"1903:116:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1936:5:21","nodeType":"YulTypedName","src":"1936:5:21","type":""}],"src":"1903:116:21"},{"body":{"nativeSrc":"2085:77:21","nodeType":"YulBlock","src":"2085:77:21","statements":[{"nativeSrc":"2095:22:21","nodeType":"YulAssignment","src":"2095:22:21","value":{"arguments":[{"name":"offset","nativeSrc":"2110:6:21","nodeType":"YulIdentifier","src":"2110:6:21"}],"functionName":{"name":"mload","nativeSrc":"2104:5:21","nodeType":"YulIdentifier","src":"2104:5:21"},"nativeSrc":"2104:13:21","nodeType":"YulFunctionCall","src":"2104:13:21"},"variableNames":[{"name":"value","nativeSrc":"2095:5:21","nodeType":"YulIdentifier","src":"2095:5:21"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2150:5:21","nodeType":"YulIdentifier","src":"2150:5:21"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"2126:23:21","nodeType":"YulIdentifier","src":"2126:23:21"},"nativeSrc":"2126:30:21","nodeType":"YulFunctionCall","src":"2126:30:21"},"nativeSrc":"2126:30:21","nodeType":"YulExpressionStatement","src":"2126:30:21"}]},"name":"abi_decode_t_bool_fromMemory","nativeSrc":"2025:137:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2063:6:21","nodeType":"YulTypedName","src":"2063:6:21","type":""},{"name":"end","nativeSrc":"2071:3:21","nodeType":"YulTypedName","src":"2071:3:21","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2079:5:21","nodeType":"YulTypedName","src":"2079:5:21","type":""}],"src":"2025:137:21"},{"body":{"nativeSrc":"2226:56:21","nodeType":"YulBlock","src":"2226:56:21","statements":[{"body":{"nativeSrc":"2260:16:21","nodeType":"YulBlock","src":"2260:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2269:1:21","nodeType":"YulLiteral","src":"2269:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"2272:1:21","nodeType":"YulLiteral","src":"2272:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2262:6:21","nodeType":"YulIdentifier","src":"2262:6:21"},"nativeSrc":"2262:12:21","nodeType":"YulFunctionCall","src":"2262:12:21"},"nativeSrc":"2262:12:21","nodeType":"YulExpressionStatement","src":"2262:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2249:5:21","nodeType":"YulIdentifier","src":"2249:5:21"},{"kind":"number","nativeSrc":"2256:1:21","nodeType":"YulLiteral","src":"2256:1:21","type":"","value":"7"}],"functionName":{"name":"lt","nativeSrc":"2246:2:21","nodeType":"YulIdentifier","src":"2246:2:21"},"nativeSrc":"2246:12:21","nodeType":"YulFunctionCall","src":"2246:12:21"}],"functionName":{"name":"iszero","nativeSrc":"2239:6:21","nodeType":"YulIdentifier","src":"2239:6:21"},"nativeSrc":"2239:20:21","nodeType":"YulFunctionCall","src":"2239:20:21"},"nativeSrc":"2236:40:21","nodeType":"YulIf","src":"2236:40:21"}]},"name":"validator_revert_t_enum$_CachePreset_$964","nativeSrc":"2168:114:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2219:5:21","nodeType":"YulTypedName","src":"2219:5:21","type":""}],"src":"2168:114:21"},{"body":{"nativeSrc":"2366:95:21","nodeType":"YulBlock","src":"2366:95:21","statements":[{"nativeSrc":"2376:22:21","nodeType":"YulAssignment","src":"2376:22:21","value":{"arguments":[{"name":"offset","nativeSrc":"2391:6:21","nodeType":"YulIdentifier","src":"2391:6:21"}],"functionName":{"name":"mload","nativeSrc":"2385:5:21","nodeType":"YulIdentifier","src":"2385:5:21"},"nativeSrc":"2385:13:21","nodeType":"YulFunctionCall","src":"2385:13:21"},"variableNames":[{"name":"value","nativeSrc":"2376:5:21","nodeType":"YulIdentifier","src":"2376:5:21"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2449:5:21","nodeType":"YulIdentifier","src":"2449:5:21"}],"functionName":{"name":"validator_revert_t_enum$_CachePreset_$964","nativeSrc":"2407:41:21","nodeType":"YulIdentifier","src":"2407:41:21"},"nativeSrc":"2407:48:21","nodeType":"YulFunctionCall","src":"2407:48:21"},"nativeSrc":"2407:48:21","nodeType":"YulExpressionStatement","src":"2407:48:21"}]},"name":"abi_decode_t_enum$_CachePreset_$964_fromMemory","nativeSrc":"2288:173:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2344:6:21","nodeType":"YulTypedName","src":"2344:6:21","type":""},{"name":"end","nativeSrc":"2352:3:21","nodeType":"YulTypedName","src":"2352:3:21","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2360:5:21","nodeType":"YulTypedName","src":"2360:5:21","type":""}],"src":"2288:173:21"},{"body":{"nativeSrc":"2556:28:21","nodeType":"YulBlock","src":"2556:28:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2573:1:21","nodeType":"YulLiteral","src":"2573:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"2576:1:21","nodeType":"YulLiteral","src":"2576:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2566:6:21","nodeType":"YulIdentifier","src":"2566:6:21"},"nativeSrc":"2566:12:21","nodeType":"YulFunctionCall","src":"2566:12:21"},"nativeSrc":"2566:12:21","nodeType":"YulExpressionStatement","src":"2566:12:21"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"2467:117:21","nodeType":"YulFunctionDefinition","src":"2467:117:21"},{"body":{"nativeSrc":"2679:28:21","nodeType":"YulBlock","src":"2679:28:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2696:1:21","nodeType":"YulLiteral","src":"2696:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"2699:1:21","nodeType":"YulLiteral","src":"2699:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2689:6:21","nodeType":"YulIdentifier","src":"2689:6:21"},"nativeSrc":"2689:12:21","nodeType":"YulFunctionCall","src":"2689:12:21"},"nativeSrc":"2689:12:21","nodeType":"YulExpressionStatement","src":"2689:12:21"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"2590:117:21","nodeType":"YulFunctionDefinition","src":"2590:117:21"},{"body":{"nativeSrc":"2780:241:21","nodeType":"YulBlock","src":"2780:241:21","statements":[{"body":{"nativeSrc":"2885:22:21","nodeType":"YulBlock","src":"2885:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2887:16:21","nodeType":"YulIdentifier","src":"2887:16:21"},"nativeSrc":"2887:18:21","nodeType":"YulFunctionCall","src":"2887:18:21"},"nativeSrc":"2887:18:21","nodeType":"YulExpressionStatement","src":"2887:18:21"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"2857:6:21","nodeType":"YulIdentifier","src":"2857:6:21"},{"kind":"number","nativeSrc":"2865:18:21","nodeType":"YulLiteral","src":"2865:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2854:2:21","nodeType":"YulIdentifier","src":"2854:2:21"},"nativeSrc":"2854:30:21","nodeType":"YulFunctionCall","src":"2854:30:21"},"nativeSrc":"2851:56:21","nodeType":"YulIf","src":"2851:56:21"},{"nativeSrc":"2917:37:21","nodeType":"YulAssignment","src":"2917:37:21","value":{"arguments":[{"name":"length","nativeSrc":"2947:6:21","nodeType":"YulIdentifier","src":"2947:6:21"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"2925:21:21","nodeType":"YulIdentifier","src":"2925:21:21"},"nativeSrc":"2925:29:21","nodeType":"YulFunctionCall","src":"2925:29:21"},"variableNames":[{"name":"size","nativeSrc":"2917:4:21","nodeType":"YulIdentifier","src":"2917:4:21"}]},{"nativeSrc":"2991:23:21","nodeType":"YulAssignment","src":"2991:23:21","value":{"arguments":[{"name":"size","nativeSrc":"3003:4:21","nodeType":"YulIdentifier","src":"3003:4:21"},{"kind":"number","nativeSrc":"3009:4:21","nodeType":"YulLiteral","src":"3009:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"2999:3:21","nodeType":"YulIdentifier","src":"2999:3:21"},"nativeSrc":"2999:15:21","nodeType":"YulFunctionCall","src":"2999:15:21"},"variableNames":[{"name":"size","nativeSrc":"2991:4:21","nodeType":"YulIdentifier","src":"2991:4:21"}]}]},"name":"array_allocation_size_t_string_memory_ptr","nativeSrc":"2713:308:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"2764:6:21","nodeType":"YulTypedName","src":"2764:6:21","type":""}],"returnVariables":[{"name":"size","nativeSrc":"2775:4:21","nodeType":"YulTypedName","src":"2775:4:21","type":""}],"src":"2713:308:21"},{"body":{"nativeSrc":"3089:186:21","nodeType":"YulBlock","src":"3089:186:21","statements":[{"nativeSrc":"3100:10:21","nodeType":"YulVariableDeclaration","src":"3100:10:21","value":{"kind":"number","nativeSrc":"3109:1:21","nodeType":"YulLiteral","src":"3109:1:21","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"3104:1:21","nodeType":"YulTypedName","src":"3104:1:21","type":""}]},{"body":{"nativeSrc":"3169:63:21","nodeType":"YulBlock","src":"3169:63:21","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"3194:3:21","nodeType":"YulIdentifier","src":"3194:3:21"},{"name":"i","nativeSrc":"3199:1:21","nodeType":"YulIdentifier","src":"3199:1:21"}],"functionName":{"name":"add","nativeSrc":"3190:3:21","nodeType":"YulIdentifier","src":"3190:3:21"},"nativeSrc":"3190:11:21","nodeType":"YulFunctionCall","src":"3190:11:21"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"3213:3:21","nodeType":"YulIdentifier","src":"3213:3:21"},{"name":"i","nativeSrc":"3218:1:21","nodeType":"YulIdentifier","src":"3218:1:21"}],"functionName":{"name":"add","nativeSrc":"3209:3:21","nodeType":"YulIdentifier","src":"3209:3:21"},"nativeSrc":"3209:11:21","nodeType":"YulFunctionCall","src":"3209:11:21"}],"functionName":{"name":"mload","nativeSrc":"3203:5:21","nodeType":"YulIdentifier","src":"3203:5:21"},"nativeSrc":"3203:18:21","nodeType":"YulFunctionCall","src":"3203:18:21"}],"functionName":{"name":"mstore","nativeSrc":"3183:6:21","nodeType":"YulIdentifier","src":"3183:6:21"},"nativeSrc":"3183:39:21","nodeType":"YulFunctionCall","src":"3183:39:21"},"nativeSrc":"3183:39:21","nodeType":"YulExpressionStatement","src":"3183:39:21"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"3130:1:21","nodeType":"YulIdentifier","src":"3130:1:21"},{"name":"length","nativeSrc":"3133:6:21","nodeType":"YulIdentifier","src":"3133:6:21"}],"functionName":{"name":"lt","nativeSrc":"3127:2:21","nodeType":"YulIdentifier","src":"3127:2:21"},"nativeSrc":"3127:13:21","nodeType":"YulFunctionCall","src":"3127:13:21"},"nativeSrc":"3119:113:21","nodeType":"YulForLoop","post":{"nativeSrc":"3141:19:21","nodeType":"YulBlock","src":"3141:19:21","statements":[{"nativeSrc":"3143:15:21","nodeType":"YulAssignment","src":"3143:15:21","value":{"arguments":[{"name":"i","nativeSrc":"3152:1:21","nodeType":"YulIdentifier","src":"3152:1:21"},{"kind":"number","nativeSrc":"3155:2:21","nodeType":"YulLiteral","src":"3155:2:21","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"3148:3:21","nodeType":"YulIdentifier","src":"3148:3:21"},"nativeSrc":"3148:10:21","nodeType":"YulFunctionCall","src":"3148:10:21"},"variableNames":[{"name":"i","nativeSrc":"3143:1:21","nodeType":"YulIdentifier","src":"3143:1:21"}]}]},"pre":{"nativeSrc":"3123:3:21","nodeType":"YulBlock","src":"3123:3:21","statements":[]},"src":"3119:113:21"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"3252:3:21","nodeType":"YulIdentifier","src":"3252:3:21"},{"name":"length","nativeSrc":"3257:6:21","nodeType":"YulIdentifier","src":"3257:6:21"}],"functionName":{"name":"add","nativeSrc":"3248:3:21","nodeType":"YulIdentifier","src":"3248:3:21"},"nativeSrc":"3248:16:21","nodeType":"YulFunctionCall","src":"3248:16:21"},{"kind":"number","nativeSrc":"3266:1:21","nodeType":"YulLiteral","src":"3266:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"3241:6:21","nodeType":"YulIdentifier","src":"3241:6:21"},"nativeSrc":"3241:27:21","nodeType":"YulFunctionCall","src":"3241:27:21"},"nativeSrc":"3241:27:21","nodeType":"YulExpressionStatement","src":"3241:27:21"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3027:248:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"3071:3:21","nodeType":"YulTypedName","src":"3071:3:21","type":""},{"name":"dst","nativeSrc":"3076:3:21","nodeType":"YulTypedName","src":"3076:3:21","type":""},{"name":"length","nativeSrc":"3081:6:21","nodeType":"YulTypedName","src":"3081:6:21","type":""}],"src":"3027:248:21"},{"body":{"nativeSrc":"3376:339:21","nodeType":"YulBlock","src":"3376:339:21","statements":[{"nativeSrc":"3386:75:21","nodeType":"YulAssignment","src":"3386:75:21","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"3453:6:21","nodeType":"YulIdentifier","src":"3453:6:21"}],"functionName":{"name":"array_allocation_size_t_string_memory_ptr","nativeSrc":"3411:41:21","nodeType":"YulIdentifier","src":"3411:41:21"},"nativeSrc":"3411:49:21","nodeType":"YulFunctionCall","src":"3411:49:21"}],"functionName":{"name":"allocate_memory","nativeSrc":"3395:15:21","nodeType":"YulIdentifier","src":"3395:15:21"},"nativeSrc":"3395:66:21","nodeType":"YulFunctionCall","src":"3395:66:21"},"variableNames":[{"name":"array","nativeSrc":"3386:5:21","nodeType":"YulIdentifier","src":"3386:5:21"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"3477:5:21","nodeType":"YulIdentifier","src":"3477:5:21"},{"name":"length","nativeSrc":"3484:6:21","nodeType":"YulIdentifier","src":"3484:6:21"}],"functionName":{"name":"mstore","nativeSrc":"3470:6:21","nodeType":"YulIdentifier","src":"3470:6:21"},"nativeSrc":"3470:21:21","nodeType":"YulFunctionCall","src":"3470:21:21"},"nativeSrc":"3470:21:21","nodeType":"YulExpressionStatement","src":"3470:21:21"},{"nativeSrc":"3500:27:21","nodeType":"YulVariableDeclaration","src":"3500:27:21","value":{"arguments":[{"name":"array","nativeSrc":"3515:5:21","nodeType":"YulIdentifier","src":"3515:5:21"},{"kind":"number","nativeSrc":"3522:4:21","nodeType":"YulLiteral","src":"3522:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3511:3:21","nodeType":"YulIdentifier","src":"3511:3:21"},"nativeSrc":"3511:16:21","nodeType":"YulFunctionCall","src":"3511:16:21"},"variables":[{"name":"dst","nativeSrc":"3504:3:21","nodeType":"YulTypedName","src":"3504:3:21","type":""}]},{"body":{"nativeSrc":"3565:83:21","nodeType":"YulBlock","src":"3565:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"3567:77:21","nodeType":"YulIdentifier","src":"3567:77:21"},"nativeSrc":"3567:79:21","nodeType":"YulFunctionCall","src":"3567:79:21"},"nativeSrc":"3567:79:21","nodeType":"YulExpressionStatement","src":"3567:79:21"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"3546:3:21","nodeType":"YulIdentifier","src":"3546:3:21"},{"name":"length","nativeSrc":"3551:6:21","nodeType":"YulIdentifier","src":"3551:6:21"}],"functionName":{"name":"add","nativeSrc":"3542:3:21","nodeType":"YulIdentifier","src":"3542:3:21"},"nativeSrc":"3542:16:21","nodeType":"YulFunctionCall","src":"3542:16:21"},{"name":"end","nativeSrc":"3560:3:21","nodeType":"YulIdentifier","src":"3560:3:21"}],"functionName":{"name":"gt","nativeSrc":"3539:2:21","nodeType":"YulIdentifier","src":"3539:2:21"},"nativeSrc":"3539:25:21","nodeType":"YulFunctionCall","src":"3539:25:21"},"nativeSrc":"3536:112:21","nodeType":"YulIf","src":"3536:112:21"},{"expression":{"arguments":[{"name":"src","nativeSrc":"3692:3:21","nodeType":"YulIdentifier","src":"3692:3:21"},{"name":"dst","nativeSrc":"3697:3:21","nodeType":"YulIdentifier","src":"3697:3:21"},{"name":"length","nativeSrc":"3702:6:21","nodeType":"YulIdentifier","src":"3702:6:21"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"3657:34:21","nodeType":"YulIdentifier","src":"3657:34:21"},"nativeSrc":"3657:52:21","nodeType":"YulFunctionCall","src":"3657:52:21"},"nativeSrc":"3657:52:21","nodeType":"YulExpressionStatement","src":"3657:52:21"}]},"name":"abi_decode_available_length_t_string_memory_ptr_fromMemory","nativeSrc":"3281:434:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"3349:3:21","nodeType":"YulTypedName","src":"3349:3:21","type":""},{"name":"length","nativeSrc":"3354:6:21","nodeType":"YulTypedName","src":"3354:6:21","type":""},{"name":"end","nativeSrc":"3362:3:21","nodeType":"YulTypedName","src":"3362:3:21","type":""}],"returnVariables":[{"name":"array","nativeSrc":"3370:5:21","nodeType":"YulTypedName","src":"3370:5:21","type":""}],"src":"3281:434:21"},{"body":{"nativeSrc":"3808:282:21","nodeType":"YulBlock","src":"3808:282:21","statements":[{"body":{"nativeSrc":"3857:83:21","nodeType":"YulBlock","src":"3857:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"3859:77:21","nodeType":"YulIdentifier","src":"3859:77:21"},"nativeSrc":"3859:79:21","nodeType":"YulFunctionCall","src":"3859:79:21"},"nativeSrc":"3859:79:21","nodeType":"YulExpressionStatement","src":"3859:79:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"3836:6:21","nodeType":"YulIdentifier","src":"3836:6:21"},{"kind":"number","nativeSrc":"3844:4:21","nodeType":"YulLiteral","src":"3844:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"3832:3:21","nodeType":"YulIdentifier","src":"3832:3:21"},"nativeSrc":"3832:17:21","nodeType":"YulFunctionCall","src":"3832:17:21"},{"name":"end","nativeSrc":"3851:3:21","nodeType":"YulIdentifier","src":"3851:3:21"}],"functionName":{"name":"slt","nativeSrc":"3828:3:21","nodeType":"YulIdentifier","src":"3828:3:21"},"nativeSrc":"3828:27:21","nodeType":"YulFunctionCall","src":"3828:27:21"}],"functionName":{"name":"iszero","nativeSrc":"3821:6:21","nodeType":"YulIdentifier","src":"3821:6:21"},"nativeSrc":"3821:35:21","nodeType":"YulFunctionCall","src":"3821:35:21"},"nativeSrc":"3818:122:21","nodeType":"YulIf","src":"3818:122:21"},{"nativeSrc":"3949:27:21","nodeType":"YulVariableDeclaration","src":"3949:27:21","value":{"arguments":[{"name":"offset","nativeSrc":"3969:6:21","nodeType":"YulIdentifier","src":"3969:6:21"}],"functionName":{"name":"mload","nativeSrc":"3963:5:21","nodeType":"YulIdentifier","src":"3963:5:21"},"nativeSrc":"3963:13:21","nodeType":"YulFunctionCall","src":"3963:13:21"},"variables":[{"name":"length","nativeSrc":"3953:6:21","nodeType":"YulTypedName","src":"3953:6:21","type":""}]},{"nativeSrc":"3985:99:21","nodeType":"YulAssignment","src":"3985:99:21","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"4057:6:21","nodeType":"YulIdentifier","src":"4057:6:21"},{"kind":"number","nativeSrc":"4065:4:21","nodeType":"YulLiteral","src":"4065:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4053:3:21","nodeType":"YulIdentifier","src":"4053:3:21"},"nativeSrc":"4053:17:21","nodeType":"YulFunctionCall","src":"4053:17:21"},{"name":"length","nativeSrc":"4072:6:21","nodeType":"YulIdentifier","src":"4072:6:21"},{"name":"end","nativeSrc":"4080:3:21","nodeType":"YulIdentifier","src":"4080:3:21"}],"functionName":{"name":"abi_decode_available_length_t_string_memory_ptr_fromMemory","nativeSrc":"3994:58:21","nodeType":"YulIdentifier","src":"3994:58:21"},"nativeSrc":"3994:90:21","nodeType":"YulFunctionCall","src":"3994:90:21"},"variableNames":[{"name":"array","nativeSrc":"3985:5:21","nodeType":"YulIdentifier","src":"3985:5:21"}]}]},"name":"abi_decode_t_string_memory_ptr_fromMemory","nativeSrc":"3735:355:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"3786:6:21","nodeType":"YulTypedName","src":"3786:6:21","type":""},{"name":"end","nativeSrc":"3794:3:21","nodeType":"YulTypedName","src":"3794:3:21","type":""}],"returnVariables":[{"name":"array","nativeSrc":"3802:5:21","nodeType":"YulTypedName","src":"3802:5:21","type":""}],"src":"3735:355:21"},{"body":{"nativeSrc":"4218:876:21","nodeType":"YulBlock","src":"4218:876:21","statements":[{"body":{"nativeSrc":"4262:83:21","nodeType":"YulBlock","src":"4262:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"4264:77:21","nodeType":"YulIdentifier","src":"4264:77:21"},"nativeSrc":"4264:79:21","nodeType":"YulFunctionCall","src":"4264:79:21"},"nativeSrc":"4264:79:21","nodeType":"YulExpressionStatement","src":"4264:79:21"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"4239:3:21","nodeType":"YulIdentifier","src":"4239:3:21"},{"name":"headStart","nativeSrc":"4244:9:21","nodeType":"YulIdentifier","src":"4244:9:21"}],"functionName":{"name":"sub","nativeSrc":"4235:3:21","nodeType":"YulIdentifier","src":"4235:3:21"},"nativeSrc":"4235:19:21","nodeType":"YulFunctionCall","src":"4235:19:21"},{"kind":"number","nativeSrc":"4256:4:21","nodeType":"YulLiteral","src":"4256:4:21","type":"","value":"0x60"}],"functionName":{"name":"slt","nativeSrc":"4231:3:21","nodeType":"YulIdentifier","src":"4231:3:21"},"nativeSrc":"4231:30:21","nodeType":"YulFunctionCall","src":"4231:30:21"},"nativeSrc":"4228:117:21","nodeType":"YulIf","src":"4228:117:21"},{"nativeSrc":"4354:30:21","nodeType":"YulAssignment","src":"4354:30:21","value":{"arguments":[{"kind":"number","nativeSrc":"4379:4:21","nodeType":"YulLiteral","src":"4379:4:21","type":"","value":"0x60"}],"functionName":{"name":"allocate_memory","nativeSrc":"4363:15:21","nodeType":"YulIdentifier","src":"4363:15:21"},"nativeSrc":"4363:21:21","nodeType":"YulFunctionCall","src":"4363:21:21"},"variableNames":[{"name":"value","nativeSrc":"4354:5:21","nodeType":"YulIdentifier","src":"4354:5:21"}]},{"nativeSrc":"4394:167:21","nodeType":"YulBlock","src":"4394:167:21","statements":[{"nativeSrc":"4438:15:21","nodeType":"YulVariableDeclaration","src":"4438:15:21","value":{"kind":"number","nativeSrc":"4452:1:21","nodeType":"YulLiteral","src":"4452:1:21","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4442:6:21","nodeType":"YulTypedName","src":"4442:6:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4478:5:21","nodeType":"YulIdentifier","src":"4478:5:21"},{"kind":"number","nativeSrc":"4485:4:21","nodeType":"YulLiteral","src":"4485:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"4474:3:21","nodeType":"YulIdentifier","src":"4474:3:21"},"nativeSrc":"4474:16:21","nodeType":"YulFunctionCall","src":"4474:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4525:9:21","nodeType":"YulIdentifier","src":"4525:9:21"},{"name":"offset","nativeSrc":"4536:6:21","nodeType":"YulIdentifier","src":"4536:6:21"}],"functionName":{"name":"add","nativeSrc":"4521:3:21","nodeType":"YulIdentifier","src":"4521:3:21"},"nativeSrc":"4521:22:21","nodeType":"YulFunctionCall","src":"4521:22:21"},{"name":"end","nativeSrc":"4545:3:21","nodeType":"YulIdentifier","src":"4545:3:21"}],"functionName":{"name":"abi_decode_t_bool_fromMemory","nativeSrc":"4492:28:21","nodeType":"YulIdentifier","src":"4492:28:21"},"nativeSrc":"4492:57:21","nodeType":"YulFunctionCall","src":"4492:57:21"}],"functionName":{"name":"mstore","nativeSrc":"4467:6:21","nodeType":"YulIdentifier","src":"4467:6:21"},"nativeSrc":"4467:83:21","nodeType":"YulFunctionCall","src":"4467:83:21"},"nativeSrc":"4467:83:21","nodeType":"YulExpressionStatement","src":"4467:83:21"}]},{"nativeSrc":"4571:179:21","nodeType":"YulBlock","src":"4571:179:21","statements":[{"nativeSrc":"4608:16:21","nodeType":"YulVariableDeclaration","src":"4608:16:21","value":{"kind":"number","nativeSrc":"4622:2:21","nodeType":"YulLiteral","src":"4622:2:21","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"4612:6:21","nodeType":"YulTypedName","src":"4612:6:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4649:5:21","nodeType":"YulIdentifier","src":"4649:5:21"},{"kind":"number","nativeSrc":"4656:4:21","nodeType":"YulLiteral","src":"4656:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4645:3:21","nodeType":"YulIdentifier","src":"4645:3:21"},"nativeSrc":"4645:16:21","nodeType":"YulFunctionCall","src":"4645:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4714:9:21","nodeType":"YulIdentifier","src":"4714:9:21"},{"name":"offset","nativeSrc":"4725:6:21","nodeType":"YulIdentifier","src":"4725:6:21"}],"functionName":{"name":"add","nativeSrc":"4710:3:21","nodeType":"YulIdentifier","src":"4710:3:21"},"nativeSrc":"4710:22:21","nodeType":"YulFunctionCall","src":"4710:22:21"},{"name":"end","nativeSrc":"4734:3:21","nodeType":"YulIdentifier","src":"4734:3:21"}],"functionName":{"name":"abi_decode_t_enum$_CachePreset_$964_fromMemory","nativeSrc":"4663:46:21","nodeType":"YulIdentifier","src":"4663:46:21"},"nativeSrc":"4663:75:21","nodeType":"YulFunctionCall","src":"4663:75:21"}],"functionName":{"name":"mstore","nativeSrc":"4638:6:21","nodeType":"YulIdentifier","src":"4638:6:21"},"nativeSrc":"4638:101:21","nodeType":"YulFunctionCall","src":"4638:101:21"},"nativeSrc":"4638:101:21","nodeType":"YulExpressionStatement","src":"4638:101:21"}]},{"nativeSrc":"4760:327:21","nodeType":"YulBlock","src":"4760:327:21","statements":[{"nativeSrc":"4797:39:21","nodeType":"YulVariableDeclaration","src":"4797:39:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4821:9:21","nodeType":"YulIdentifier","src":"4821:9:21"},{"kind":"number","nativeSrc":"4832:2:21","nodeType":"YulLiteral","src":"4832:2:21","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"4817:3:21","nodeType":"YulIdentifier","src":"4817:3:21"},"nativeSrc":"4817:18:21","nodeType":"YulFunctionCall","src":"4817:18:21"}],"functionName":{"name":"mload","nativeSrc":"4811:5:21","nodeType":"YulIdentifier","src":"4811:5:21"},"nativeSrc":"4811:25:21","nodeType":"YulFunctionCall","src":"4811:25:21"},"variables":[{"name":"offset","nativeSrc":"4801:6:21","nodeType":"YulTypedName","src":"4801:6:21","type":""}]},{"body":{"nativeSrc":"4883:83:21","nodeType":"YulBlock","src":"4883:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"4885:77:21","nodeType":"YulIdentifier","src":"4885:77:21"},"nativeSrc":"4885:79:21","nodeType":"YulFunctionCall","src":"4885:79:21"},"nativeSrc":"4885:79:21","nodeType":"YulExpressionStatement","src":"4885:79:21"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"4855:6:21","nodeType":"YulIdentifier","src":"4855:6:21"},{"kind":"number","nativeSrc":"4863:18:21","nodeType":"YulLiteral","src":"4863:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"4852:2:21","nodeType":"YulIdentifier","src":"4852:2:21"},"nativeSrc":"4852:30:21","nodeType":"YulFunctionCall","src":"4852:30:21"},"nativeSrc":"4849:117:21","nodeType":"YulIf","src":"4849:117:21"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4991:5:21","nodeType":"YulIdentifier","src":"4991:5:21"},{"kind":"number","nativeSrc":"4998:4:21","nodeType":"YulLiteral","src":"4998:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"4987:3:21","nodeType":"YulIdentifier","src":"4987:3:21"},"nativeSrc":"4987:16:21","nodeType":"YulFunctionCall","src":"4987:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5051:9:21","nodeType":"YulIdentifier","src":"5051:9:21"},{"name":"offset","nativeSrc":"5062:6:21","nodeType":"YulIdentifier","src":"5062:6:21"}],"functionName":{"name":"add","nativeSrc":"5047:3:21","nodeType":"YulIdentifier","src":"5047:3:21"},"nativeSrc":"5047:22:21","nodeType":"YulFunctionCall","src":"5047:22:21"},{"name":"end","nativeSrc":"5071:3:21","nodeType":"YulIdentifier","src":"5071:3:21"}],"functionName":{"name":"abi_decode_t_string_memory_ptr_fromMemory","nativeSrc":"5005:41:21","nodeType":"YulIdentifier","src":"5005:41:21"},"nativeSrc":"5005:70:21","nodeType":"YulFunctionCall","src":"5005:70:21"}],"functionName":{"name":"mstore","nativeSrc":"4980:6:21","nodeType":"YulIdentifier","src":"4980:6:21"},"nativeSrc":"4980:96:21","nodeType":"YulFunctionCall","src":"4980:96:21"},"nativeSrc":"4980:96:21","nodeType":"YulExpressionStatement","src":"4980:96:21"}]}]},"name":"abi_decode_t_struct$_CacheControl_$984_memory_ptr_fromMemory","nativeSrc":"4123:971:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4193:9:21","nodeType":"YulTypedName","src":"4193:9:21","type":""},{"name":"end","nativeSrc":"4204:3:21","nodeType":"YulTypedName","src":"4204:3:21","type":""}],"returnVariables":[{"name":"value","nativeSrc":"4212:5:21","nodeType":"YulTypedName","src":"4212:5:21","type":""}],"src":"4123:971:21"},{"body":{"nativeSrc":"5144:45:21","nodeType":"YulBlock","src":"5144:45:21","statements":[{"nativeSrc":"5154:29:21","nodeType":"YulAssignment","src":"5154:29:21","value":{"arguments":[{"name":"value","nativeSrc":"5169:5:21","nodeType":"YulIdentifier","src":"5169:5:21"},{"kind":"number","nativeSrc":"5176:6:21","nodeType":"YulLiteral","src":"5176:6:21","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"5165:3:21","nodeType":"YulIdentifier","src":"5165:3:21"},"nativeSrc":"5165:18:21","nodeType":"YulFunctionCall","src":"5165:18:21"},"variableNames":[{"name":"cleaned","nativeSrc":"5154:7:21","nodeType":"YulIdentifier","src":"5154:7:21"}]}]},"name":"cleanup_t_uint16","nativeSrc":"5100:89:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5126:5:21","nodeType":"YulTypedName","src":"5126:5:21","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5136:7:21","nodeType":"YulTypedName","src":"5136:7:21","type":""}],"src":"5100:89:21"},{"body":{"nativeSrc":"5237:78:21","nodeType":"YulBlock","src":"5237:78:21","statements":[{"body":{"nativeSrc":"5293:16:21","nodeType":"YulBlock","src":"5293:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5302:1:21","nodeType":"YulLiteral","src":"5302:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"5305:1:21","nodeType":"YulLiteral","src":"5305:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5295:6:21","nodeType":"YulIdentifier","src":"5295:6:21"},"nativeSrc":"5295:12:21","nodeType":"YulFunctionCall","src":"5295:12:21"},"nativeSrc":"5295:12:21","nodeType":"YulExpressionStatement","src":"5295:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5260:5:21","nodeType":"YulIdentifier","src":"5260:5:21"},{"arguments":[{"name":"value","nativeSrc":"5284:5:21","nodeType":"YulIdentifier","src":"5284:5:21"}],"functionName":{"name":"cleanup_t_uint16","nativeSrc":"5267:16:21","nodeType":"YulIdentifier","src":"5267:16:21"},"nativeSrc":"5267:23:21","nodeType":"YulFunctionCall","src":"5267:23:21"}],"functionName":{"name":"eq","nativeSrc":"5257:2:21","nodeType":"YulIdentifier","src":"5257:2:21"},"nativeSrc":"5257:34:21","nodeType":"YulFunctionCall","src":"5257:34:21"}],"functionName":{"name":"iszero","nativeSrc":"5250:6:21","nodeType":"YulIdentifier","src":"5250:6:21"},"nativeSrc":"5250:42:21","nodeType":"YulFunctionCall","src":"5250:42:21"},"nativeSrc":"5247:62:21","nodeType":"YulIf","src":"5247:62:21"}]},"name":"validator_revert_t_uint16","nativeSrc":"5195:120:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5230:5:21","nodeType":"YulTypedName","src":"5230:5:21","type":""}],"src":"5195:120:21"},{"body":{"nativeSrc":"5383:79:21","nodeType":"YulBlock","src":"5383:79:21","statements":[{"nativeSrc":"5393:22:21","nodeType":"YulAssignment","src":"5393:22:21","value":{"arguments":[{"name":"offset","nativeSrc":"5408:6:21","nodeType":"YulIdentifier","src":"5408:6:21"}],"functionName":{"name":"mload","nativeSrc":"5402:5:21","nodeType":"YulIdentifier","src":"5402:5:21"},"nativeSrc":"5402:13:21","nodeType":"YulFunctionCall","src":"5402:13:21"},"variableNames":[{"name":"value","nativeSrc":"5393:5:21","nodeType":"YulIdentifier","src":"5393:5:21"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5450:5:21","nodeType":"YulIdentifier","src":"5450:5:21"}],"functionName":{"name":"validator_revert_t_uint16","nativeSrc":"5424:25:21","nodeType":"YulIdentifier","src":"5424:25:21"},"nativeSrc":"5424:32:21","nodeType":"YulFunctionCall","src":"5424:32:21"},"nativeSrc":"5424:32:21","nodeType":"YulExpressionStatement","src":"5424:32:21"}]},"name":"abi_decode_t_uint16_fromMemory","nativeSrc":"5321:141:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5361:6:21","nodeType":"YulTypedName","src":"5361:6:21","type":""},{"name":"end","nativeSrc":"5369:3:21","nodeType":"YulTypedName","src":"5369:3:21","type":""}],"returnVariables":[{"name":"value","nativeSrc":"5377:5:21","nodeType":"YulTypedName","src":"5377:5:21","type":""}],"src":"5321:141:21"},{"body":{"nativeSrc":"5550:229:21","nodeType":"YulBlock","src":"5550:229:21","statements":[{"body":{"nativeSrc":"5655:22:21","nodeType":"YulBlock","src":"5655:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"5657:16:21","nodeType":"YulIdentifier","src":"5657:16:21"},"nativeSrc":"5657:18:21","nodeType":"YulFunctionCall","src":"5657:18:21"},"nativeSrc":"5657:18:21","nodeType":"YulExpressionStatement","src":"5657:18:21"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"5627:6:21","nodeType":"YulIdentifier","src":"5627:6:21"},{"kind":"number","nativeSrc":"5635:18:21","nodeType":"YulLiteral","src":"5635:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5624:2:21","nodeType":"YulIdentifier","src":"5624:2:21"},"nativeSrc":"5624:30:21","nodeType":"YulFunctionCall","src":"5624:30:21"},"nativeSrc":"5621:56:21","nodeType":"YulIf","src":"5621:56:21"},{"nativeSrc":"5687:25:21","nodeType":"YulAssignment","src":"5687:25:21","value":{"arguments":[{"name":"length","nativeSrc":"5699:6:21","nodeType":"YulIdentifier","src":"5699:6:21"},{"kind":"number","nativeSrc":"5707:4:21","nodeType":"YulLiteral","src":"5707:4:21","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"5695:3:21","nodeType":"YulIdentifier","src":"5695:3:21"},"nativeSrc":"5695:17:21","nodeType":"YulFunctionCall","src":"5695:17:21"},"variableNames":[{"name":"size","nativeSrc":"5687:4:21","nodeType":"YulIdentifier","src":"5687:4:21"}]},{"nativeSrc":"5749:23:21","nodeType":"YulAssignment","src":"5749:23:21","value":{"arguments":[{"name":"size","nativeSrc":"5761:4:21","nodeType":"YulIdentifier","src":"5761:4:21"},{"kind":"number","nativeSrc":"5767:4:21","nodeType":"YulLiteral","src":"5767:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5757:3:21","nodeType":"YulIdentifier","src":"5757:3:21"},"nativeSrc":"5757:15:21","nodeType":"YulFunctionCall","src":"5757:15:21"},"variableNames":[{"name":"size","nativeSrc":"5749:4:21","nodeType":"YulIdentifier","src":"5749:4:21"}]}]},"name":"array_allocation_size_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"5468:311:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"5534:6:21","nodeType":"YulTypedName","src":"5534:6:21","type":""}],"returnVariables":[{"name":"size","nativeSrc":"5545:4:21","nodeType":"YulTypedName","src":"5545:4:21","type":""}],"src":"5468:311:21"},{"body":{"nativeSrc":"5874:28:21","nodeType":"YulBlock","src":"5874:28:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5891:1:21","nodeType":"YulLiteral","src":"5891:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"5894:1:21","nodeType":"YulLiteral","src":"5894:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5884:6:21","nodeType":"YulIdentifier","src":"5884:6:21"},"nativeSrc":"5884:12:21","nodeType":"YulFunctionCall","src":"5884:12:21"},"nativeSrc":"5884:12:21","nodeType":"YulExpressionStatement","src":"5884:12:21"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"5785:117:21","nodeType":"YulFunctionDefinition","src":"5785:117:21"},{"body":{"nativeSrc":"5953:32:21","nodeType":"YulBlock","src":"5953:32:21","statements":[{"nativeSrc":"5963:16:21","nodeType":"YulAssignment","src":"5963:16:21","value":{"name":"value","nativeSrc":"5974:5:21","nodeType":"YulIdentifier","src":"5974:5:21"},"variableNames":[{"name":"cleaned","nativeSrc":"5963:7:21","nodeType":"YulIdentifier","src":"5963:7:21"}]}]},"name":"cleanup_t_bytes32","nativeSrc":"5908:77:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5935:5:21","nodeType":"YulTypedName","src":"5935:5:21","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5945:7:21","nodeType":"YulTypedName","src":"5945:7:21","type":""}],"src":"5908:77:21"},{"body":{"nativeSrc":"6034:79:21","nodeType":"YulBlock","src":"6034:79:21","statements":[{"body":{"nativeSrc":"6091:16:21","nodeType":"YulBlock","src":"6091:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6100:1:21","nodeType":"YulLiteral","src":"6100:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"6103:1:21","nodeType":"YulLiteral","src":"6103:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6093:6:21","nodeType":"YulIdentifier","src":"6093:6:21"},"nativeSrc":"6093:12:21","nodeType":"YulFunctionCall","src":"6093:12:21"},"nativeSrc":"6093:12:21","nodeType":"YulExpressionStatement","src":"6093:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6057:5:21","nodeType":"YulIdentifier","src":"6057:5:21"},{"arguments":[{"name":"value","nativeSrc":"6082:5:21","nodeType":"YulIdentifier","src":"6082:5:21"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"6064:17:21","nodeType":"YulIdentifier","src":"6064:17:21"},"nativeSrc":"6064:24:21","nodeType":"YulFunctionCall","src":"6064:24:21"}],"functionName":{"name":"eq","nativeSrc":"6054:2:21","nodeType":"YulIdentifier","src":"6054:2:21"},"nativeSrc":"6054:35:21","nodeType":"YulFunctionCall","src":"6054:35:21"}],"functionName":{"name":"iszero","nativeSrc":"6047:6:21","nodeType":"YulIdentifier","src":"6047:6:21"},"nativeSrc":"6047:43:21","nodeType":"YulFunctionCall","src":"6047:43:21"},"nativeSrc":"6044:63:21","nodeType":"YulIf","src":"6044:63:21"}]},"name":"validator_revert_t_bytes32","nativeSrc":"5991:122:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6027:5:21","nodeType":"YulTypedName","src":"6027:5:21","type":""}],"src":"5991:122:21"},{"body":{"nativeSrc":"6182:80:21","nodeType":"YulBlock","src":"6182:80:21","statements":[{"nativeSrc":"6192:22:21","nodeType":"YulAssignment","src":"6192:22:21","value":{"arguments":[{"name":"offset","nativeSrc":"6207:6:21","nodeType":"YulIdentifier","src":"6207:6:21"}],"functionName":{"name":"mload","nativeSrc":"6201:5:21","nodeType":"YulIdentifier","src":"6201:5:21"},"nativeSrc":"6201:13:21","nodeType":"YulFunctionCall","src":"6201:13:21"},"variableNames":[{"name":"value","nativeSrc":"6192:5:21","nodeType":"YulIdentifier","src":"6192:5:21"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6250:5:21","nodeType":"YulIdentifier","src":"6250:5:21"}],"functionName":{"name":"validator_revert_t_bytes32","nativeSrc":"6223:26:21","nodeType":"YulIdentifier","src":"6223:26:21"},"nativeSrc":"6223:33:21","nodeType":"YulFunctionCall","src":"6223:33:21"},"nativeSrc":"6223:33:21","nodeType":"YulExpressionStatement","src":"6223:33:21"}]},"name":"abi_decode_t_bytes32_fromMemory","nativeSrc":"6119:143:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6160:6:21","nodeType":"YulTypedName","src":"6160:6:21","type":""},{"name":"end","nativeSrc":"6168:3:21","nodeType":"YulTypedName","src":"6168:3:21","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6176:5:21","nodeType":"YulTypedName","src":"6176:5:21","type":""}],"src":"6119:143:21"},{"body":{"nativeSrc":"6398:619:21","nodeType":"YulBlock","src":"6398:619:21","statements":[{"nativeSrc":"6408:90:21","nodeType":"YulAssignment","src":"6408:90:21","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"6490:6:21","nodeType":"YulIdentifier","src":"6490:6:21"}],"functionName":{"name":"array_allocation_size_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"6433:56:21","nodeType":"YulIdentifier","src":"6433:56:21"},"nativeSrc":"6433:64:21","nodeType":"YulFunctionCall","src":"6433:64:21"}],"functionName":{"name":"allocate_memory","nativeSrc":"6417:15:21","nodeType":"YulIdentifier","src":"6417:15:21"},"nativeSrc":"6417:81:21","nodeType":"YulFunctionCall","src":"6417:81:21"},"variableNames":[{"name":"array","nativeSrc":"6408:5:21","nodeType":"YulIdentifier","src":"6408:5:21"}]},{"nativeSrc":"6507:16:21","nodeType":"YulVariableDeclaration","src":"6507:16:21","value":{"name":"array","nativeSrc":"6518:5:21","nodeType":"YulIdentifier","src":"6518:5:21"},"variables":[{"name":"dst","nativeSrc":"6511:3:21","nodeType":"YulTypedName","src":"6511:3:21","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"6540:5:21","nodeType":"YulIdentifier","src":"6540:5:21"},{"name":"length","nativeSrc":"6547:6:21","nodeType":"YulIdentifier","src":"6547:6:21"}],"functionName":{"name":"mstore","nativeSrc":"6533:6:21","nodeType":"YulIdentifier","src":"6533:6:21"},"nativeSrc":"6533:21:21","nodeType":"YulFunctionCall","src":"6533:21:21"},"nativeSrc":"6533:21:21","nodeType":"YulExpressionStatement","src":"6533:21:21"},{"nativeSrc":"6563:23:21","nodeType":"YulAssignment","src":"6563:23:21","value":{"arguments":[{"name":"array","nativeSrc":"6574:5:21","nodeType":"YulIdentifier","src":"6574:5:21"},{"kind":"number","nativeSrc":"6581:4:21","nodeType":"YulLiteral","src":"6581:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6570:3:21","nodeType":"YulIdentifier","src":"6570:3:21"},"nativeSrc":"6570:16:21","nodeType":"YulFunctionCall","src":"6570:16:21"},"variableNames":[{"name":"dst","nativeSrc":"6563:3:21","nodeType":"YulIdentifier","src":"6563:3:21"}]},{"nativeSrc":"6596:44:21","nodeType":"YulVariableDeclaration","src":"6596:44:21","value":{"arguments":[{"name":"offset","nativeSrc":"6614:6:21","nodeType":"YulIdentifier","src":"6614:6:21"},{"arguments":[{"name":"length","nativeSrc":"6626:6:21","nodeType":"YulIdentifier","src":"6626:6:21"},{"kind":"number","nativeSrc":"6634:4:21","nodeType":"YulLiteral","src":"6634:4:21","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"6622:3:21","nodeType":"YulIdentifier","src":"6622:3:21"},"nativeSrc":"6622:17:21","nodeType":"YulFunctionCall","src":"6622:17:21"}],"functionName":{"name":"add","nativeSrc":"6610:3:21","nodeType":"YulIdentifier","src":"6610:3:21"},"nativeSrc":"6610:30:21","nodeType":"YulFunctionCall","src":"6610:30:21"},"variables":[{"name":"srcEnd","nativeSrc":"6600:6:21","nodeType":"YulTypedName","src":"6600:6:21","type":""}]},{"body":{"nativeSrc":"6668:103:21","nodeType":"YulBlock","src":"6668:103:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"6682:77:21","nodeType":"YulIdentifier","src":"6682:77:21"},"nativeSrc":"6682:79:21","nodeType":"YulFunctionCall","src":"6682:79:21"},"nativeSrc":"6682:79:21","nodeType":"YulExpressionStatement","src":"6682:79:21"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"6655:6:21","nodeType":"YulIdentifier","src":"6655:6:21"},{"name":"end","nativeSrc":"6663:3:21","nodeType":"YulIdentifier","src":"6663:3:21"}],"functionName":{"name":"gt","nativeSrc":"6652:2:21","nodeType":"YulIdentifier","src":"6652:2:21"},"nativeSrc":"6652:15:21","nodeType":"YulFunctionCall","src":"6652:15:21"},"nativeSrc":"6649:122:21","nodeType":"YulIf","src":"6649:122:21"},{"body":{"nativeSrc":"6856:155:21","nodeType":"YulBlock","src":"6856:155:21","statements":[{"nativeSrc":"6871:21:21","nodeType":"YulVariableDeclaration","src":"6871:21:21","value":{"name":"src","nativeSrc":"6889:3:21","nodeType":"YulIdentifier","src":"6889:3:21"},"variables":[{"name":"elementPos","nativeSrc":"6875:10:21","nodeType":"YulTypedName","src":"6875:10:21","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"6913:3:21","nodeType":"YulIdentifier","src":"6913:3:21"},{"arguments":[{"name":"elementPos","nativeSrc":"6950:10:21","nodeType":"YulIdentifier","src":"6950:10:21"},{"name":"end","nativeSrc":"6962:3:21","nodeType":"YulIdentifier","src":"6962:3:21"}],"functionName":{"name":"abi_decode_t_bytes32_fromMemory","nativeSrc":"6918:31:21","nodeType":"YulIdentifier","src":"6918:31:21"},"nativeSrc":"6918:48:21","nodeType":"YulFunctionCall","src":"6918:48:21"}],"functionName":{"name":"mstore","nativeSrc":"6906:6:21","nodeType":"YulIdentifier","src":"6906:6:21"},"nativeSrc":"6906:61:21","nodeType":"YulFunctionCall","src":"6906:61:21"},"nativeSrc":"6906:61:21","nodeType":"YulExpressionStatement","src":"6906:61:21"},{"nativeSrc":"6980:21:21","nodeType":"YulAssignment","src":"6980:21:21","value":{"arguments":[{"name":"dst","nativeSrc":"6991:3:21","nodeType":"YulIdentifier","src":"6991:3:21"},{"kind":"number","nativeSrc":"6996:4:21","nodeType":"YulLiteral","src":"6996:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6987:3:21","nodeType":"YulIdentifier","src":"6987:3:21"},"nativeSrc":"6987:14:21","nodeType":"YulFunctionCall","src":"6987:14:21"},"variableNames":[{"name":"dst","nativeSrc":"6980:3:21","nodeType":"YulIdentifier","src":"6980:3:21"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"6809:3:21","nodeType":"YulIdentifier","src":"6809:3:21"},{"name":"srcEnd","nativeSrc":"6814:6:21","nodeType":"YulIdentifier","src":"6814:6:21"}],"functionName":{"name":"lt","nativeSrc":"6806:2:21","nodeType":"YulIdentifier","src":"6806:2:21"},"nativeSrc":"6806:15:21","nodeType":"YulFunctionCall","src":"6806:15:21"},"nativeSrc":"6780:231:21","nodeType":"YulForLoop","post":{"nativeSrc":"6822:25:21","nodeType":"YulBlock","src":"6822:25:21","statements":[{"nativeSrc":"6824:21:21","nodeType":"YulAssignment","src":"6824:21:21","value":{"arguments":[{"name":"src","nativeSrc":"6835:3:21","nodeType":"YulIdentifier","src":"6835:3:21"},{"kind":"number","nativeSrc":"6840:4:21","nodeType":"YulLiteral","src":"6840:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6831:3:21","nodeType":"YulIdentifier","src":"6831:3:21"},"nativeSrc":"6831:14:21","nodeType":"YulFunctionCall","src":"6831:14:21"},"variableNames":[{"name":"src","nativeSrc":"6824:3:21","nodeType":"YulIdentifier","src":"6824:3:21"}]}]},"pre":{"nativeSrc":"6784:21:21","nodeType":"YulBlock","src":"6784:21:21","statements":[{"nativeSrc":"6786:17:21","nodeType":"YulVariableDeclaration","src":"6786:17:21","value":{"name":"offset","nativeSrc":"6797:6:21","nodeType":"YulIdentifier","src":"6797:6:21"},"variables":[{"name":"src","nativeSrc":"6790:3:21","nodeType":"YulTypedName","src":"6790:3:21","type":""}]}]},"src":"6780:231:21"}]},"name":"abi_decode_available_length_t_array$_t_bytes32_$dyn_memory_ptr_fromMemory","nativeSrc":"6285:732:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6368:6:21","nodeType":"YulTypedName","src":"6368:6:21","type":""},{"name":"length","nativeSrc":"6376:6:21","nodeType":"YulTypedName","src":"6376:6:21","type":""},{"name":"end","nativeSrc":"6384:3:21","nodeType":"YulTypedName","src":"6384:3:21","type":""}],"returnVariables":[{"name":"array","nativeSrc":"6392:5:21","nodeType":"YulTypedName","src":"6392:5:21","type":""}],"src":"6285:732:21"},{"body":{"nativeSrc":"7128:297:21","nodeType":"YulBlock","src":"7128:297:21","statements":[{"body":{"nativeSrc":"7177:83:21","nodeType":"YulBlock","src":"7177:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"7179:77:21","nodeType":"YulIdentifier","src":"7179:77:21"},"nativeSrc":"7179:79:21","nodeType":"YulFunctionCall","src":"7179:79:21"},"nativeSrc":"7179:79:21","nodeType":"YulExpressionStatement","src":"7179:79:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"7156:6:21","nodeType":"YulIdentifier","src":"7156:6:21"},{"kind":"number","nativeSrc":"7164:4:21","nodeType":"YulLiteral","src":"7164:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"7152:3:21","nodeType":"YulIdentifier","src":"7152:3:21"},"nativeSrc":"7152:17:21","nodeType":"YulFunctionCall","src":"7152:17:21"},{"name":"end","nativeSrc":"7171:3:21","nodeType":"YulIdentifier","src":"7171:3:21"}],"functionName":{"name":"slt","nativeSrc":"7148:3:21","nodeType":"YulIdentifier","src":"7148:3:21"},"nativeSrc":"7148:27:21","nodeType":"YulFunctionCall","src":"7148:27:21"}],"functionName":{"name":"iszero","nativeSrc":"7141:6:21","nodeType":"YulIdentifier","src":"7141:6:21"},"nativeSrc":"7141:35:21","nodeType":"YulFunctionCall","src":"7141:35:21"},"nativeSrc":"7138:122:21","nodeType":"YulIf","src":"7138:122:21"},{"nativeSrc":"7269:27:21","nodeType":"YulVariableDeclaration","src":"7269:27:21","value":{"arguments":[{"name":"offset","nativeSrc":"7289:6:21","nodeType":"YulIdentifier","src":"7289:6:21"}],"functionName":{"name":"mload","nativeSrc":"7283:5:21","nodeType":"YulIdentifier","src":"7283:5:21"},"nativeSrc":"7283:13:21","nodeType":"YulFunctionCall","src":"7283:13:21"},"variables":[{"name":"length","nativeSrc":"7273:6:21","nodeType":"YulTypedName","src":"7273:6:21","type":""}]},{"nativeSrc":"7305:114:21","nodeType":"YulAssignment","src":"7305:114:21","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"7392:6:21","nodeType":"YulIdentifier","src":"7392:6:21"},{"kind":"number","nativeSrc":"7400:4:21","nodeType":"YulLiteral","src":"7400:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7388:3:21","nodeType":"YulIdentifier","src":"7388:3:21"},"nativeSrc":"7388:17:21","nodeType":"YulFunctionCall","src":"7388:17:21"},{"name":"length","nativeSrc":"7407:6:21","nodeType":"YulIdentifier","src":"7407:6:21"},{"name":"end","nativeSrc":"7415:3:21","nodeType":"YulIdentifier","src":"7415:3:21"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_bytes32_$dyn_memory_ptr_fromMemory","nativeSrc":"7314:73:21","nodeType":"YulIdentifier","src":"7314:73:21"},"nativeSrc":"7314:105:21","nodeType":"YulFunctionCall","src":"7314:105:21"},"variableNames":[{"name":"array","nativeSrc":"7305:5:21","nodeType":"YulIdentifier","src":"7305:5:21"}]}]},"name":"abi_decode_t_array$_t_bytes32_$dyn_memory_ptr_fromMemory","nativeSrc":"7040:385:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7106:6:21","nodeType":"YulTypedName","src":"7106:6:21","type":""},{"name":"end","nativeSrc":"7114:3:21","nodeType":"YulTypedName","src":"7114:3:21","type":""}],"returnVariables":[{"name":"array","nativeSrc":"7122:5:21","nodeType":"YulTypedName","src":"7122:5:21","type":""}],"src":"7040:385:21"},{"body":{"nativeSrc":"7488:56:21","nodeType":"YulBlock","src":"7488:56:21","statements":[{"body":{"nativeSrc":"7522:16:21","nodeType":"YulBlock","src":"7522:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7531:1:21","nodeType":"YulLiteral","src":"7531:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"7534:1:21","nodeType":"YulLiteral","src":"7534:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7524:6:21","nodeType":"YulIdentifier","src":"7524:6:21"},"nativeSrc":"7524:12:21","nodeType":"YulFunctionCall","src":"7524:12:21"},"nativeSrc":"7524:12:21","nodeType":"YulExpressionStatement","src":"7524:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7511:5:21","nodeType":"YulIdentifier","src":"7511:5:21"},{"kind":"number","nativeSrc":"7518:1:21","nodeType":"YulLiteral","src":"7518:1:21","type":"","value":"6"}],"functionName":{"name":"lt","nativeSrc":"7508:2:21","nodeType":"YulIdentifier","src":"7508:2:21"},"nativeSrc":"7508:12:21","nodeType":"YulFunctionCall","src":"7508:12:21"}],"functionName":{"name":"iszero","nativeSrc":"7501:6:21","nodeType":"YulIdentifier","src":"7501:6:21"},"nativeSrc":"7501:20:21","nodeType":"YulFunctionCall","src":"7501:20:21"},"nativeSrc":"7498:40:21","nodeType":"YulIf","src":"7498:40:21"}]},"name":"validator_revert_t_enum$_CORSPreset_$972","nativeSrc":"7431:113:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7481:5:21","nodeType":"YulTypedName","src":"7481:5:21","type":""}],"src":"7431:113:21"},{"body":{"nativeSrc":"7627:94:21","nodeType":"YulBlock","src":"7627:94:21","statements":[{"nativeSrc":"7637:22:21","nodeType":"YulAssignment","src":"7637:22:21","value":{"arguments":[{"name":"offset","nativeSrc":"7652:6:21","nodeType":"YulIdentifier","src":"7652:6:21"}],"functionName":{"name":"mload","nativeSrc":"7646:5:21","nodeType":"YulIdentifier","src":"7646:5:21"},"nativeSrc":"7646:13:21","nodeType":"YulFunctionCall","src":"7646:13:21"},"variableNames":[{"name":"value","nativeSrc":"7637:5:21","nodeType":"YulIdentifier","src":"7637:5:21"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"7709:5:21","nodeType":"YulIdentifier","src":"7709:5:21"}],"functionName":{"name":"validator_revert_t_enum$_CORSPreset_$972","nativeSrc":"7668:40:21","nodeType":"YulIdentifier","src":"7668:40:21"},"nativeSrc":"7668:47:21","nodeType":"YulFunctionCall","src":"7668:47:21"},"nativeSrc":"7668:47:21","nodeType":"YulExpressionStatement","src":"7668:47:21"}]},"name":"abi_decode_t_enum$_CORSPreset_$972_fromMemory","nativeSrc":"7550:171:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7605:6:21","nodeType":"YulTypedName","src":"7605:6:21","type":""},{"name":"end","nativeSrc":"7613:3:21","nodeType":"YulTypedName","src":"7613:3:21","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7621:5:21","nodeType":"YulTypedName","src":"7621:5:21","type":""}],"src":"7550:171:21"},{"body":{"nativeSrc":"7846:1224:21","nodeType":"YulBlock","src":"7846:1224:21","statements":[{"body":{"nativeSrc":"7890:83:21","nodeType":"YulBlock","src":"7890:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"7892:77:21","nodeType":"YulIdentifier","src":"7892:77:21"},"nativeSrc":"7892:79:21","nodeType":"YulFunctionCall","src":"7892:79:21"},"nativeSrc":"7892:79:21","nodeType":"YulExpressionStatement","src":"7892:79:21"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"7867:3:21","nodeType":"YulIdentifier","src":"7867:3:21"},{"name":"headStart","nativeSrc":"7872:9:21","nodeType":"YulIdentifier","src":"7872:9:21"}],"functionName":{"name":"sub","nativeSrc":"7863:3:21","nodeType":"YulIdentifier","src":"7863:3:21"},"nativeSrc":"7863:19:21","nodeType":"YulFunctionCall","src":"7863:19:21"},{"kind":"number","nativeSrc":"7884:4:21","nodeType":"YulLiteral","src":"7884:4:21","type":"","value":"0x80"}],"functionName":{"name":"slt","nativeSrc":"7859:3:21","nodeType":"YulIdentifier","src":"7859:3:21"},"nativeSrc":"7859:30:21","nodeType":"YulFunctionCall","src":"7859:30:21"},"nativeSrc":"7856:117:21","nodeType":"YulIf","src":"7856:117:21"},{"nativeSrc":"7982:30:21","nodeType":"YulAssignment","src":"7982:30:21","value":{"arguments":[{"kind":"number","nativeSrc":"8007:4:21","nodeType":"YulLiteral","src":"8007:4:21","type":"","value":"0x80"}],"functionName":{"name":"allocate_memory","nativeSrc":"7991:15:21","nodeType":"YulIdentifier","src":"7991:15:21"},"nativeSrc":"7991:21:21","nodeType":"YulFunctionCall","src":"7991:21:21"},"variableNames":[{"name":"value","nativeSrc":"7982:5:21","nodeType":"YulIdentifier","src":"7982:5:21"}]},{"nativeSrc":"8022:163:21","nodeType":"YulBlock","src":"8022:163:21","statements":[{"nativeSrc":"8060:15:21","nodeType":"YulVariableDeclaration","src":"8060:15:21","value":{"kind":"number","nativeSrc":"8074:1:21","nodeType":"YulLiteral","src":"8074:1:21","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8064:6:21","nodeType":"YulTypedName","src":"8064:6:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8100:5:21","nodeType":"YulIdentifier","src":"8100:5:21"},{"kind":"number","nativeSrc":"8107:4:21","nodeType":"YulLiteral","src":"8107:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"8096:3:21","nodeType":"YulIdentifier","src":"8096:3:21"},"nativeSrc":"8096:16:21","nodeType":"YulFunctionCall","src":"8096:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8149:9:21","nodeType":"YulIdentifier","src":"8149:9:21"},{"name":"offset","nativeSrc":"8160:6:21","nodeType":"YulIdentifier","src":"8160:6:21"}],"functionName":{"name":"add","nativeSrc":"8145:3:21","nodeType":"YulIdentifier","src":"8145:3:21"},"nativeSrc":"8145:22:21","nodeType":"YulFunctionCall","src":"8145:22:21"},{"name":"end","nativeSrc":"8169:3:21","nodeType":"YulIdentifier","src":"8169:3:21"}],"functionName":{"name":"abi_decode_t_uint16_fromMemory","nativeSrc":"8114:30:21","nodeType":"YulIdentifier","src":"8114:30:21"},"nativeSrc":"8114:59:21","nodeType":"YulFunctionCall","src":"8114:59:21"}],"functionName":{"name":"mstore","nativeSrc":"8089:6:21","nodeType":"YulIdentifier","src":"8089:6:21"},"nativeSrc":"8089:85:21","nodeType":"YulFunctionCall","src":"8089:85:21"},"nativeSrc":"8089:85:21","nodeType":"YulExpressionStatement","src":"8089:85:21"}]},{"nativeSrc":"8195:343:21","nodeType":"YulBlock","src":"8195:343:21","statements":[{"nativeSrc":"8233:39:21","nodeType":"YulVariableDeclaration","src":"8233:39:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8257:9:21","nodeType":"YulIdentifier","src":"8257:9:21"},{"kind":"number","nativeSrc":"8268:2:21","nodeType":"YulLiteral","src":"8268:2:21","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8253:3:21","nodeType":"YulIdentifier","src":"8253:3:21"},"nativeSrc":"8253:18:21","nodeType":"YulFunctionCall","src":"8253:18:21"}],"functionName":{"name":"mload","nativeSrc":"8247:5:21","nodeType":"YulIdentifier","src":"8247:5:21"},"nativeSrc":"8247:25:21","nodeType":"YulFunctionCall","src":"8247:25:21"},"variables":[{"name":"offset","nativeSrc":"8237:6:21","nodeType":"YulTypedName","src":"8237:6:21","type":""}]},{"body":{"nativeSrc":"8319:83:21","nodeType":"YulBlock","src":"8319:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"8321:77:21","nodeType":"YulIdentifier","src":"8321:77:21"},"nativeSrc":"8321:79:21","nodeType":"YulFunctionCall","src":"8321:79:21"},"nativeSrc":"8321:79:21","nodeType":"YulExpressionStatement","src":"8321:79:21"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"8291:6:21","nodeType":"YulIdentifier","src":"8291:6:21"},{"kind":"number","nativeSrc":"8299:18:21","nodeType":"YulLiteral","src":"8299:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8288:2:21","nodeType":"YulIdentifier","src":"8288:2:21"},"nativeSrc":"8288:30:21","nodeType":"YulFunctionCall","src":"8288:30:21"},"nativeSrc":"8285:117:21","nodeType":"YulIf","src":"8285:117:21"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8427:5:21","nodeType":"YulIdentifier","src":"8427:5:21"},{"kind":"number","nativeSrc":"8434:4:21","nodeType":"YulLiteral","src":"8434:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8423:3:21","nodeType":"YulIdentifier","src":"8423:3:21"},"nativeSrc":"8423:16:21","nodeType":"YulFunctionCall","src":"8423:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8502:9:21","nodeType":"YulIdentifier","src":"8502:9:21"},{"name":"offset","nativeSrc":"8513:6:21","nodeType":"YulIdentifier","src":"8513:6:21"}],"functionName":{"name":"add","nativeSrc":"8498:3:21","nodeType":"YulIdentifier","src":"8498:3:21"},"nativeSrc":"8498:22:21","nodeType":"YulFunctionCall","src":"8498:22:21"},{"name":"end","nativeSrc":"8522:3:21","nodeType":"YulIdentifier","src":"8522:3:21"}],"functionName":{"name":"abi_decode_t_array$_t_bytes32_$dyn_memory_ptr_fromMemory","nativeSrc":"8441:56:21","nodeType":"YulIdentifier","src":"8441:56:21"},"nativeSrc":"8441:85:21","nodeType":"YulFunctionCall","src":"8441:85:21"}],"functionName":{"name":"mstore","nativeSrc":"8416:6:21","nodeType":"YulIdentifier","src":"8416:6:21"},"nativeSrc":"8416:111:21","nodeType":"YulFunctionCall","src":"8416:111:21"},"nativeSrc":"8416:111:21","nodeType":"YulExpressionStatement","src":"8416:111:21"}]},{"nativeSrc":"8548:178:21","nodeType":"YulBlock","src":"8548:178:21","statements":[{"nativeSrc":"8585:16:21","nodeType":"YulVariableDeclaration","src":"8585:16:21","value":{"kind":"number","nativeSrc":"8599:2:21","nodeType":"YulLiteral","src":"8599:2:21","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"8589:6:21","nodeType":"YulTypedName","src":"8589:6:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8626:5:21","nodeType":"YulIdentifier","src":"8626:5:21"},{"kind":"number","nativeSrc":"8633:4:21","nodeType":"YulLiteral","src":"8633:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"8622:3:21","nodeType":"YulIdentifier","src":"8622:3:21"},"nativeSrc":"8622:16:21","nodeType":"YulFunctionCall","src":"8622:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8690:9:21","nodeType":"YulIdentifier","src":"8690:9:21"},{"name":"offset","nativeSrc":"8701:6:21","nodeType":"YulIdentifier","src":"8701:6:21"}],"functionName":{"name":"add","nativeSrc":"8686:3:21","nodeType":"YulIdentifier","src":"8686:3:21"},"nativeSrc":"8686:22:21","nodeType":"YulFunctionCall","src":"8686:22:21"},{"name":"end","nativeSrc":"8710:3:21","nodeType":"YulIdentifier","src":"8710:3:21"}],"functionName":{"name":"abi_decode_t_enum$_CORSPreset_$972_fromMemory","nativeSrc":"8640:45:21","nodeType":"YulIdentifier","src":"8640:45:21"},"nativeSrc":"8640:74:21","nodeType":"YulFunctionCall","src":"8640:74:21"}],"functionName":{"name":"mstore","nativeSrc":"8615:6:21","nodeType":"YulIdentifier","src":"8615:6:21"},"nativeSrc":"8615:100:21","nodeType":"YulFunctionCall","src":"8615:100:21"},"nativeSrc":"8615:100:21","nodeType":"YulExpressionStatement","src":"8615:100:21"}]},{"nativeSrc":"8736:327:21","nodeType":"YulBlock","src":"8736:327:21","statements":[{"nativeSrc":"8773:39:21","nodeType":"YulVariableDeclaration","src":"8773:39:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8797:9:21","nodeType":"YulIdentifier","src":"8797:9:21"},{"kind":"number","nativeSrc":"8808:2:21","nodeType":"YulLiteral","src":"8808:2:21","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"8793:3:21","nodeType":"YulIdentifier","src":"8793:3:21"},"nativeSrc":"8793:18:21","nodeType":"YulFunctionCall","src":"8793:18:21"}],"functionName":{"name":"mload","nativeSrc":"8787:5:21","nodeType":"YulIdentifier","src":"8787:5:21"},"nativeSrc":"8787:25:21","nodeType":"YulFunctionCall","src":"8787:25:21"},"variables":[{"name":"offset","nativeSrc":"8777:6:21","nodeType":"YulTypedName","src":"8777:6:21","type":""}]},{"body":{"nativeSrc":"8859:83:21","nodeType":"YulBlock","src":"8859:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"8861:77:21","nodeType":"YulIdentifier","src":"8861:77:21"},"nativeSrc":"8861:79:21","nodeType":"YulFunctionCall","src":"8861:79:21"},"nativeSrc":"8861:79:21","nodeType":"YulExpressionStatement","src":"8861:79:21"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"8831:6:21","nodeType":"YulIdentifier","src":"8831:6:21"},{"kind":"number","nativeSrc":"8839:18:21","nodeType":"YulLiteral","src":"8839:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8828:2:21","nodeType":"YulIdentifier","src":"8828:2:21"},"nativeSrc":"8828:30:21","nodeType":"YulFunctionCall","src":"8828:30:21"},"nativeSrc":"8825:117:21","nodeType":"YulIf","src":"8825:117:21"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8967:5:21","nodeType":"YulIdentifier","src":"8967:5:21"},{"kind":"number","nativeSrc":"8974:4:21","nodeType":"YulLiteral","src":"8974:4:21","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"8963:3:21","nodeType":"YulIdentifier","src":"8963:3:21"},"nativeSrc":"8963:16:21","nodeType":"YulFunctionCall","src":"8963:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9027:9:21","nodeType":"YulIdentifier","src":"9027:9:21"},{"name":"offset","nativeSrc":"9038:6:21","nodeType":"YulIdentifier","src":"9038:6:21"}],"functionName":{"name":"add","nativeSrc":"9023:3:21","nodeType":"YulIdentifier","src":"9023:3:21"},"nativeSrc":"9023:22:21","nodeType":"YulFunctionCall","src":"9023:22:21"},{"name":"end","nativeSrc":"9047:3:21","nodeType":"YulIdentifier","src":"9047:3:21"}],"functionName":{"name":"abi_decode_t_string_memory_ptr_fromMemory","nativeSrc":"8981:41:21","nodeType":"YulIdentifier","src":"8981:41:21"},"nativeSrc":"8981:70:21","nodeType":"YulFunctionCall","src":"8981:70:21"}],"functionName":{"name":"mstore","nativeSrc":"8956:6:21","nodeType":"YulIdentifier","src":"8956:6:21"},"nativeSrc":"8956:96:21","nodeType":"YulFunctionCall","src":"8956:96:21"},"nativeSrc":"8956:96:21","nodeType":"YulExpressionStatement","src":"8956:96:21"}]}]},"name":"abi_decode_t_struct$_CORSPolicy_$1000_memory_ptr_fromMemory","nativeSrc":"7752:1318:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"7821:9:21","nodeType":"YulTypedName","src":"7821:9:21","type":""},{"name":"end","nativeSrc":"7832:3:21","nodeType":"YulTypedName","src":"7832:3:21","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7840:5:21","nodeType":"YulTypedName","src":"7840:5:21","type":""}],"src":"7752:1318:21"},{"body":{"nativeSrc":"9191:682:21","nodeType":"YulBlock","src":"9191:682:21","statements":[{"body":{"nativeSrc":"9235:83:21","nodeType":"YulBlock","src":"9235:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"9237:77:21","nodeType":"YulIdentifier","src":"9237:77:21"},"nativeSrc":"9237:79:21","nodeType":"YulFunctionCall","src":"9237:79:21"},"nativeSrc":"9237:79:21","nodeType":"YulExpressionStatement","src":"9237:79:21"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"9212:3:21","nodeType":"YulIdentifier","src":"9212:3:21"},{"name":"headStart","nativeSrc":"9217:9:21","nodeType":"YulIdentifier","src":"9217:9:21"}],"functionName":{"name":"sub","nativeSrc":"9208:3:21","nodeType":"YulIdentifier","src":"9208:3:21"},"nativeSrc":"9208:19:21","nodeType":"YulFunctionCall","src":"9208:19:21"},{"kind":"number","nativeSrc":"9229:4:21","nodeType":"YulLiteral","src":"9229:4:21","type":"","value":"0x40"}],"functionName":{"name":"slt","nativeSrc":"9204:3:21","nodeType":"YulIdentifier","src":"9204:3:21"},"nativeSrc":"9204:30:21","nodeType":"YulFunctionCall","src":"9204:30:21"},"nativeSrc":"9201:117:21","nodeType":"YulIf","src":"9201:117:21"},{"nativeSrc":"9327:30:21","nodeType":"YulAssignment","src":"9327:30:21","value":{"arguments":[{"kind":"number","nativeSrc":"9352:4:21","nodeType":"YulLiteral","src":"9352:4:21","type":"","value":"0x40"}],"functionName":{"name":"allocate_memory","nativeSrc":"9336:15:21","nodeType":"YulIdentifier","src":"9336:15:21"},"nativeSrc":"9336:21:21","nodeType":"YulFunctionCall","src":"9336:21:21"},"variableNames":[{"name":"value","nativeSrc":"9327:5:21","nodeType":"YulIdentifier","src":"9327:5:21"}]},{"nativeSrc":"9367:160:21","nodeType":"YulBlock","src":"9367:160:21","statements":[{"nativeSrc":"9402:15:21","nodeType":"YulVariableDeclaration","src":"9402:15:21","value":{"kind":"number","nativeSrc":"9416:1:21","nodeType":"YulLiteral","src":"9416:1:21","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"9406:6:21","nodeType":"YulTypedName","src":"9406:6:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9442:5:21","nodeType":"YulIdentifier","src":"9442:5:21"},{"kind":"number","nativeSrc":"9449:4:21","nodeType":"YulLiteral","src":"9449:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"9438:3:21","nodeType":"YulIdentifier","src":"9438:3:21"},"nativeSrc":"9438:16:21","nodeType":"YulFunctionCall","src":"9438:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9491:9:21","nodeType":"YulIdentifier","src":"9491:9:21"},{"name":"offset","nativeSrc":"9502:6:21","nodeType":"YulIdentifier","src":"9502:6:21"}],"functionName":{"name":"add","nativeSrc":"9487:3:21","nodeType":"YulIdentifier","src":"9487:3:21"},"nativeSrc":"9487:22:21","nodeType":"YulFunctionCall","src":"9487:22:21"},{"name":"end","nativeSrc":"9511:3:21","nodeType":"YulIdentifier","src":"9511:3:21"}],"functionName":{"name":"abi_decode_t_uint16_fromMemory","nativeSrc":"9456:30:21","nodeType":"YulIdentifier","src":"9456:30:21"},"nativeSrc":"9456:59:21","nodeType":"YulFunctionCall","src":"9456:59:21"}],"functionName":{"name":"mstore","nativeSrc":"9431:6:21","nodeType":"YulIdentifier","src":"9431:6:21"},"nativeSrc":"9431:85:21","nodeType":"YulFunctionCall","src":"9431:85:21"},"nativeSrc":"9431:85:21","nodeType":"YulExpressionStatement","src":"9431:85:21"}]},{"nativeSrc":"9537:329:21","nodeType":"YulBlock","src":"9537:329:21","statements":[{"nativeSrc":"9576:39:21","nodeType":"YulVariableDeclaration","src":"9576:39:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9600:9:21","nodeType":"YulIdentifier","src":"9600:9:21"},{"kind":"number","nativeSrc":"9611:2:21","nodeType":"YulLiteral","src":"9611:2:21","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9596:3:21","nodeType":"YulIdentifier","src":"9596:3:21"},"nativeSrc":"9596:18:21","nodeType":"YulFunctionCall","src":"9596:18:21"}],"functionName":{"name":"mload","nativeSrc":"9590:5:21","nodeType":"YulIdentifier","src":"9590:5:21"},"nativeSrc":"9590:25:21","nodeType":"YulFunctionCall","src":"9590:25:21"},"variables":[{"name":"offset","nativeSrc":"9580:6:21","nodeType":"YulTypedName","src":"9580:6:21","type":""}]},{"body":{"nativeSrc":"9662:83:21","nodeType":"YulBlock","src":"9662:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"9664:77:21","nodeType":"YulIdentifier","src":"9664:77:21"},"nativeSrc":"9664:79:21","nodeType":"YulFunctionCall","src":"9664:79:21"},"nativeSrc":"9664:79:21","nodeType":"YulExpressionStatement","src":"9664:79:21"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"9634:6:21","nodeType":"YulIdentifier","src":"9634:6:21"},{"kind":"number","nativeSrc":"9642:18:21","nodeType":"YulLiteral","src":"9642:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9631:2:21","nodeType":"YulIdentifier","src":"9631:2:21"},"nativeSrc":"9631:30:21","nodeType":"YulFunctionCall","src":"9631:30:21"},"nativeSrc":"9628:117:21","nodeType":"YulIf","src":"9628:117:21"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9770:5:21","nodeType":"YulIdentifier","src":"9770:5:21"},{"kind":"number","nativeSrc":"9777:4:21","nodeType":"YulLiteral","src":"9777:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"9766:3:21","nodeType":"YulIdentifier","src":"9766:3:21"},"nativeSrc":"9766:16:21","nodeType":"YulFunctionCall","src":"9766:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9830:9:21","nodeType":"YulIdentifier","src":"9830:9:21"},{"name":"offset","nativeSrc":"9841:6:21","nodeType":"YulIdentifier","src":"9841:6:21"}],"functionName":{"name":"add","nativeSrc":"9826:3:21","nodeType":"YulIdentifier","src":"9826:3:21"},"nativeSrc":"9826:22:21","nodeType":"YulFunctionCall","src":"9826:22:21"},{"name":"end","nativeSrc":"9850:3:21","nodeType":"YulIdentifier","src":"9850:3:21"}],"functionName":{"name":"abi_decode_t_string_memory_ptr_fromMemory","nativeSrc":"9784:41:21","nodeType":"YulIdentifier","src":"9784:41:21"},"nativeSrc":"9784:70:21","nodeType":"YulFunctionCall","src":"9784:70:21"}],"functionName":{"name":"mstore","nativeSrc":"9759:6:21","nodeType":"YulIdentifier","src":"9759:6:21"},"nativeSrc":"9759:96:21","nodeType":"YulFunctionCall","src":"9759:96:21"},"nativeSrc":"9759:96:21","nodeType":"YulExpressionStatement","src":"9759:96:21"}]}]},"name":"abi_decode_t_struct$_Redirect_$1008_memory_ptr_fromMemory","nativeSrc":"9099:774:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9166:9:21","nodeType":"YulTypedName","src":"9166:9:21","type":""},{"name":"end","nativeSrc":"9177:3:21","nodeType":"YulTypedName","src":"9177:3:21","type":""}],"returnVariables":[{"name":"value","nativeSrc":"9185:5:21","nodeType":"YulTypedName","src":"9185:5:21","type":""}],"src":"9099:774:21"},{"body":{"nativeSrc":"9998:1235:21","nodeType":"YulBlock","src":"9998:1235:21","statements":[{"body":{"nativeSrc":"10042:83:21","nodeType":"YulBlock","src":"10042:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"10044:77:21","nodeType":"YulIdentifier","src":"10044:77:21"},"nativeSrc":"10044:79:21","nodeType":"YulFunctionCall","src":"10044:79:21"},"nativeSrc":"10044:79:21","nodeType":"YulExpressionStatement","src":"10044:79:21"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"10019:3:21","nodeType":"YulIdentifier","src":"10019:3:21"},{"name":"headStart","nativeSrc":"10024:9:21","nodeType":"YulIdentifier","src":"10024:9:21"}],"functionName":{"name":"sub","nativeSrc":"10015:3:21","nodeType":"YulIdentifier","src":"10015:3:21"},"nativeSrc":"10015:19:21","nodeType":"YulFunctionCall","src":"10015:19:21"},{"kind":"number","nativeSrc":"10036:4:21","nodeType":"YulLiteral","src":"10036:4:21","type":"","value":"0x60"}],"functionName":{"name":"slt","nativeSrc":"10011:3:21","nodeType":"YulIdentifier","src":"10011:3:21"},"nativeSrc":"10011:30:21","nodeType":"YulFunctionCall","src":"10011:30:21"},"nativeSrc":"10008:117:21","nodeType":"YulIf","src":"10008:117:21"},{"nativeSrc":"10134:30:21","nodeType":"YulAssignment","src":"10134:30:21","value":{"arguments":[{"kind":"number","nativeSrc":"10159:4:21","nodeType":"YulLiteral","src":"10159:4:21","type":"","value":"0x60"}],"functionName":{"name":"allocate_memory","nativeSrc":"10143:15:21","nodeType":"YulIdentifier","src":"10143:15:21"},"nativeSrc":"10143:21:21","nodeType":"YulFunctionCall","src":"10143:21:21"},"variableNames":[{"name":"value","nativeSrc":"10134:5:21","nodeType":"YulIdentifier","src":"10134:5:21"}]},{"nativeSrc":"10174:344:21","nodeType":"YulBlock","src":"10174:344:21","statements":[{"nativeSrc":"10210:38:21","nodeType":"YulVariableDeclaration","src":"10210:38:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10234:9:21","nodeType":"YulIdentifier","src":"10234:9:21"},{"kind":"number","nativeSrc":"10245:1:21","nodeType":"YulLiteral","src":"10245:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10230:3:21","nodeType":"YulIdentifier","src":"10230:3:21"},"nativeSrc":"10230:17:21","nodeType":"YulFunctionCall","src":"10230:17:21"}],"functionName":{"name":"mload","nativeSrc":"10224:5:21","nodeType":"YulIdentifier","src":"10224:5:21"},"nativeSrc":"10224:24:21","nodeType":"YulFunctionCall","src":"10224:24:21"},"variables":[{"name":"offset","nativeSrc":"10214:6:21","nodeType":"YulTypedName","src":"10214:6:21","type":""}]},{"body":{"nativeSrc":"10295:83:21","nodeType":"YulBlock","src":"10295:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"10297:77:21","nodeType":"YulIdentifier","src":"10297:77:21"},"nativeSrc":"10297:79:21","nodeType":"YulFunctionCall","src":"10297:79:21"},"nativeSrc":"10297:79:21","nodeType":"YulExpressionStatement","src":"10297:79:21"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"10267:6:21","nodeType":"YulIdentifier","src":"10267:6:21"},{"kind":"number","nativeSrc":"10275:18:21","nodeType":"YulLiteral","src":"10275:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10264:2:21","nodeType":"YulIdentifier","src":"10264:2:21"},"nativeSrc":"10264:30:21","nodeType":"YulFunctionCall","src":"10264:30:21"},"nativeSrc":"10261:117:21","nodeType":"YulIf","src":"10261:117:21"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10403:5:21","nodeType":"YulIdentifier","src":"10403:5:21"},{"kind":"number","nativeSrc":"10410:4:21","nodeType":"YulLiteral","src":"10410:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"10399:3:21","nodeType":"YulIdentifier","src":"10399:3:21"},"nativeSrc":"10399:16:21","nodeType":"YulFunctionCall","src":"10399:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10482:9:21","nodeType":"YulIdentifier","src":"10482:9:21"},{"name":"offset","nativeSrc":"10493:6:21","nodeType":"YulIdentifier","src":"10493:6:21"}],"functionName":{"name":"add","nativeSrc":"10478:3:21","nodeType":"YulIdentifier","src":"10478:3:21"},"nativeSrc":"10478:22:21","nodeType":"YulFunctionCall","src":"10478:22:21"},{"name":"end","nativeSrc":"10502:3:21","nodeType":"YulIdentifier","src":"10502:3:21"}],"functionName":{"name":"abi_decode_t_struct$_CacheControl_$984_memory_ptr_fromMemory","nativeSrc":"10417:60:21","nodeType":"YulIdentifier","src":"10417:60:21"},"nativeSrc":"10417:89:21","nodeType":"YulFunctionCall","src":"10417:89:21"}],"functionName":{"name":"mstore","nativeSrc":"10392:6:21","nodeType":"YulIdentifier","src":"10392:6:21"},"nativeSrc":"10392:115:21","nodeType":"YulFunctionCall","src":"10392:115:21"},"nativeSrc":"10392:115:21","nodeType":"YulExpressionStatement","src":"10392:115:21"}]},{"nativeSrc":"10528:343:21","nodeType":"YulBlock","src":"10528:343:21","statements":[{"nativeSrc":"10563:39:21","nodeType":"YulVariableDeclaration","src":"10563:39:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10587:9:21","nodeType":"YulIdentifier","src":"10587:9:21"},{"kind":"number","nativeSrc":"10598:2:21","nodeType":"YulLiteral","src":"10598:2:21","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10583:3:21","nodeType":"YulIdentifier","src":"10583:3:21"},"nativeSrc":"10583:18:21","nodeType":"YulFunctionCall","src":"10583:18:21"}],"functionName":{"name":"mload","nativeSrc":"10577:5:21","nodeType":"YulIdentifier","src":"10577:5:21"},"nativeSrc":"10577:25:21","nodeType":"YulFunctionCall","src":"10577:25:21"},"variables":[{"name":"offset","nativeSrc":"10567:6:21","nodeType":"YulTypedName","src":"10567:6:21","type":""}]},{"body":{"nativeSrc":"10649:83:21","nodeType":"YulBlock","src":"10649:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"10651:77:21","nodeType":"YulIdentifier","src":"10651:77:21"},"nativeSrc":"10651:79:21","nodeType":"YulFunctionCall","src":"10651:79:21"},"nativeSrc":"10651:79:21","nodeType":"YulExpressionStatement","src":"10651:79:21"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"10621:6:21","nodeType":"YulIdentifier","src":"10621:6:21"},{"kind":"number","nativeSrc":"10629:18:21","nodeType":"YulLiteral","src":"10629:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10618:2:21","nodeType":"YulIdentifier","src":"10618:2:21"},"nativeSrc":"10618:30:21","nodeType":"YulFunctionCall","src":"10618:30:21"},"nativeSrc":"10615:117:21","nodeType":"YulIf","src":"10615:117:21"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10757:5:21","nodeType":"YulIdentifier","src":"10757:5:21"},{"kind":"number","nativeSrc":"10764:4:21","nodeType":"YulLiteral","src":"10764:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10753:3:21","nodeType":"YulIdentifier","src":"10753:3:21"},"nativeSrc":"10753:16:21","nodeType":"YulFunctionCall","src":"10753:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10835:9:21","nodeType":"YulIdentifier","src":"10835:9:21"},{"name":"offset","nativeSrc":"10846:6:21","nodeType":"YulIdentifier","src":"10846:6:21"}],"functionName":{"name":"add","nativeSrc":"10831:3:21","nodeType":"YulIdentifier","src":"10831:3:21"},"nativeSrc":"10831:22:21","nodeType":"YulFunctionCall","src":"10831:22:21"},{"name":"end","nativeSrc":"10855:3:21","nodeType":"YulIdentifier","src":"10855:3:21"}],"functionName":{"name":"abi_decode_t_struct$_CORSPolicy_$1000_memory_ptr_fromMemory","nativeSrc":"10771:59:21","nodeType":"YulIdentifier","src":"10771:59:21"},"nativeSrc":"10771:88:21","nodeType":"YulFunctionCall","src":"10771:88:21"}],"functionName":{"name":"mstore","nativeSrc":"10746:6:21","nodeType":"YulIdentifier","src":"10746:6:21"},"nativeSrc":"10746:114:21","nodeType":"YulFunctionCall","src":"10746:114:21"},"nativeSrc":"10746:114:21","nodeType":"YulExpressionStatement","src":"10746:114:21"}]},{"nativeSrc":"10881:345:21","nodeType":"YulBlock","src":"10881:345:21","statements":[{"nativeSrc":"10920:39:21","nodeType":"YulVariableDeclaration","src":"10920:39:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10944:9:21","nodeType":"YulIdentifier","src":"10944:9:21"},{"kind":"number","nativeSrc":"10955:2:21","nodeType":"YulLiteral","src":"10955:2:21","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"10940:3:21","nodeType":"YulIdentifier","src":"10940:3:21"},"nativeSrc":"10940:18:21","nodeType":"YulFunctionCall","src":"10940:18:21"}],"functionName":{"name":"mload","nativeSrc":"10934:5:21","nodeType":"YulIdentifier","src":"10934:5:21"},"nativeSrc":"10934:25:21","nodeType":"YulFunctionCall","src":"10934:25:21"},"variables":[{"name":"offset","nativeSrc":"10924:6:21","nodeType":"YulTypedName","src":"10924:6:21","type":""}]},{"body":{"nativeSrc":"11006:83:21","nodeType":"YulBlock","src":"11006:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"11008:77:21","nodeType":"YulIdentifier","src":"11008:77:21"},"nativeSrc":"11008:79:21","nodeType":"YulFunctionCall","src":"11008:79:21"},"nativeSrc":"11008:79:21","nodeType":"YulExpressionStatement","src":"11008:79:21"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"10978:6:21","nodeType":"YulIdentifier","src":"10978:6:21"},{"kind":"number","nativeSrc":"10986:18:21","nodeType":"YulLiteral","src":"10986:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10975:2:21","nodeType":"YulIdentifier","src":"10975:2:21"},"nativeSrc":"10975:30:21","nodeType":"YulFunctionCall","src":"10975:30:21"},"nativeSrc":"10972:117:21","nodeType":"YulIf","src":"10972:117:21"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11114:5:21","nodeType":"YulIdentifier","src":"11114:5:21"},{"kind":"number","nativeSrc":"11121:4:21","nodeType":"YulLiteral","src":"11121:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"11110:3:21","nodeType":"YulIdentifier","src":"11110:3:21"},"nativeSrc":"11110:16:21","nodeType":"YulFunctionCall","src":"11110:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11190:9:21","nodeType":"YulIdentifier","src":"11190:9:21"},{"name":"offset","nativeSrc":"11201:6:21","nodeType":"YulIdentifier","src":"11201:6:21"}],"functionName":{"name":"add","nativeSrc":"11186:3:21","nodeType":"YulIdentifier","src":"11186:3:21"},"nativeSrc":"11186:22:21","nodeType":"YulFunctionCall","src":"11186:22:21"},{"name":"end","nativeSrc":"11210:3:21","nodeType":"YulIdentifier","src":"11210:3:21"}],"functionName":{"name":"abi_decode_t_struct$_Redirect_$1008_memory_ptr_fromMemory","nativeSrc":"11128:57:21","nodeType":"YulIdentifier","src":"11128:57:21"},"nativeSrc":"11128:86:21","nodeType":"YulFunctionCall","src":"11128:86:21"}],"functionName":{"name":"mstore","nativeSrc":"11103:6:21","nodeType":"YulIdentifier","src":"11103:6:21"},"nativeSrc":"11103:112:21","nodeType":"YulFunctionCall","src":"11103:112:21"},"nativeSrc":"11103:112:21","nodeType":"YulExpressionStatement","src":"11103:112:21"}]}]},"name":"abi_decode_t_struct$_HeaderInfo_$1022_memory_ptr_fromMemory","nativeSrc":"9904:1329:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9973:9:21","nodeType":"YulTypedName","src":"9973:9:21","type":""},{"name":"end","nativeSrc":"9984:3:21","nodeType":"YulTypedName","src":"9984:3:21","type":""}],"returnVariables":[{"name":"value","nativeSrc":"9992:5:21","nodeType":"YulTypedName","src":"9992:5:21","type":""}],"src":"9904:1329:21"},{"body":{"nativeSrc":"11378:733:21","nodeType":"YulBlock","src":"11378:733:21","statements":[{"body":{"nativeSrc":"11424:83:21","nodeType":"YulBlock","src":"11424:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"11426:77:21","nodeType":"YulIdentifier","src":"11426:77:21"},"nativeSrc":"11426:79:21","nodeType":"YulFunctionCall","src":"11426:79:21"},"nativeSrc":"11426:79:21","nodeType":"YulExpressionStatement","src":"11426:79:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11399:7:21","nodeType":"YulIdentifier","src":"11399:7:21"},{"name":"headStart","nativeSrc":"11408:9:21","nodeType":"YulIdentifier","src":"11408:9:21"}],"functionName":{"name":"sub","nativeSrc":"11395:3:21","nodeType":"YulIdentifier","src":"11395:3:21"},"nativeSrc":"11395:23:21","nodeType":"YulFunctionCall","src":"11395:23:21"},{"kind":"number","nativeSrc":"11420:2:21","nodeType":"YulLiteral","src":"11420:2:21","type":"","value":"96"}],"functionName":{"name":"slt","nativeSrc":"11391:3:21","nodeType":"YulIdentifier","src":"11391:3:21"},"nativeSrc":"11391:32:21","nodeType":"YulFunctionCall","src":"11391:32:21"},"nativeSrc":"11388:119:21","nodeType":"YulIf","src":"11388:119:21"},{"nativeSrc":"11517:128:21","nodeType":"YulBlock","src":"11517:128:21","statements":[{"nativeSrc":"11532:15:21","nodeType":"YulVariableDeclaration","src":"11532:15:21","value":{"kind":"number","nativeSrc":"11546:1:21","nodeType":"YulLiteral","src":"11546:1:21","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"11536:6:21","nodeType":"YulTypedName","src":"11536:6:21","type":""}]},{"nativeSrc":"11561:74:21","nodeType":"YulAssignment","src":"11561:74:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11607:9:21","nodeType":"YulIdentifier","src":"11607:9:21"},{"name":"offset","nativeSrc":"11618:6:21","nodeType":"YulIdentifier","src":"11618:6:21"}],"functionName":{"name":"add","nativeSrc":"11603:3:21","nodeType":"YulIdentifier","src":"11603:3:21"},"nativeSrc":"11603:22:21","nodeType":"YulFunctionCall","src":"11603:22:21"},{"name":"dataEnd","nativeSrc":"11627:7:21","nodeType":"YulIdentifier","src":"11627:7:21"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"11571:31:21","nodeType":"YulIdentifier","src":"11571:31:21"},"nativeSrc":"11571:64:21","nodeType":"YulFunctionCall","src":"11571:64:21"},"variableNames":[{"name":"value0","nativeSrc":"11561:6:21","nodeType":"YulIdentifier","src":"11561:6:21"}]}]},{"nativeSrc":"11655:129:21","nodeType":"YulBlock","src":"11655:129:21","statements":[{"nativeSrc":"11670:16:21","nodeType":"YulVariableDeclaration","src":"11670:16:21","value":{"kind":"number","nativeSrc":"11684:2:21","nodeType":"YulLiteral","src":"11684:2:21","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"11674:6:21","nodeType":"YulTypedName","src":"11674:6:21","type":""}]},{"nativeSrc":"11700:74:21","nodeType":"YulAssignment","src":"11700:74:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11746:9:21","nodeType":"YulIdentifier","src":"11746:9:21"},{"name":"offset","nativeSrc":"11757:6:21","nodeType":"YulIdentifier","src":"11757:6:21"}],"functionName":{"name":"add","nativeSrc":"11742:3:21","nodeType":"YulIdentifier","src":"11742:3:21"},"nativeSrc":"11742:22:21","nodeType":"YulFunctionCall","src":"11742:22:21"},{"name":"dataEnd","nativeSrc":"11766:7:21","nodeType":"YulIdentifier","src":"11766:7:21"}],"functionName":{"name":"abi_decode_t_address_fromMemory","nativeSrc":"11710:31:21","nodeType":"YulIdentifier","src":"11710:31:21"},"nativeSrc":"11710:64:21","nodeType":"YulFunctionCall","src":"11710:64:21"},"variableNames":[{"name":"value1","nativeSrc":"11700:6:21","nodeType":"YulIdentifier","src":"11700:6:21"}]}]},{"nativeSrc":"11794:310:21","nodeType":"YulBlock","src":"11794:310:21","statements":[{"nativeSrc":"11809:39:21","nodeType":"YulVariableDeclaration","src":"11809:39:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11833:9:21","nodeType":"YulIdentifier","src":"11833:9:21"},{"kind":"number","nativeSrc":"11844:2:21","nodeType":"YulLiteral","src":"11844:2:21","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11829:3:21","nodeType":"YulIdentifier","src":"11829:3:21"},"nativeSrc":"11829:18:21","nodeType":"YulFunctionCall","src":"11829:18:21"}],"functionName":{"name":"mload","nativeSrc":"11823:5:21","nodeType":"YulIdentifier","src":"11823:5:21"},"nativeSrc":"11823:25:21","nodeType":"YulFunctionCall","src":"11823:25:21"},"variables":[{"name":"offset","nativeSrc":"11813:6:21","nodeType":"YulTypedName","src":"11813:6:21","type":""}]},{"body":{"nativeSrc":"11895:83:21","nodeType":"YulBlock","src":"11895:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"11897:77:21","nodeType":"YulIdentifier","src":"11897:77:21"},"nativeSrc":"11897:79:21","nodeType":"YulFunctionCall","src":"11897:79:21"},"nativeSrc":"11897:79:21","nodeType":"YulExpressionStatement","src":"11897:79:21"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"11867:6:21","nodeType":"YulIdentifier","src":"11867:6:21"},{"kind":"number","nativeSrc":"11875:18:21","nodeType":"YulLiteral","src":"11875:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11864:2:21","nodeType":"YulIdentifier","src":"11864:2:21"},"nativeSrc":"11864:30:21","nodeType":"YulFunctionCall","src":"11864:30:21"},"nativeSrc":"11861:117:21","nodeType":"YulIf","src":"11861:117:21"},{"nativeSrc":"11992:102:21","nodeType":"YulAssignment","src":"11992:102:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12066:9:21","nodeType":"YulIdentifier","src":"12066:9:21"},{"name":"offset","nativeSrc":"12077:6:21","nodeType":"YulIdentifier","src":"12077:6:21"}],"functionName":{"name":"add","nativeSrc":"12062:3:21","nodeType":"YulIdentifier","src":"12062:3:21"},"nativeSrc":"12062:22:21","nodeType":"YulFunctionCall","src":"12062:22:21"},{"name":"dataEnd","nativeSrc":"12086:7:21","nodeType":"YulIdentifier","src":"12086:7:21"}],"functionName":{"name":"abi_decode_t_struct$_HeaderInfo_$1022_memory_ptr_fromMemory","nativeSrc":"12002:59:21","nodeType":"YulIdentifier","src":"12002:59:21"},"nativeSrc":"12002:92:21","nodeType":"YulFunctionCall","src":"12002:92:21"},"variableNames":[{"name":"value2","nativeSrc":"11992:6:21","nodeType":"YulIdentifier","src":"11992:6:21"}]}]}]},"name":"abi_decode_tuple_t_addresst_addresst_struct$_HeaderInfo_$1022_memory_ptr_fromMemory","nativeSrc":"11239:872:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11332:9:21","nodeType":"YulTypedName","src":"11332:9:21","type":""},{"name":"dataEnd","nativeSrc":"11343:7:21","nodeType":"YulTypedName","src":"11343:7:21","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11355:6:21","nodeType":"YulTypedName","src":"11355:6:21","type":""},{"name":"value1","nativeSrc":"11363:6:21","nodeType":"YulTypedName","src":"11363:6:21","type":""},{"name":"value2","nativeSrc":"11371:6:21","nodeType":"YulTypedName","src":"11371:6:21","type":""}],"src":"11239:872:21"},{"body":{"nativeSrc":"12166:50:21","nodeType":"YulBlock","src":"12166:50:21","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"12183:3:21","nodeType":"YulIdentifier","src":"12183:3:21"},{"arguments":[{"name":"value","nativeSrc":"12203:5:21","nodeType":"YulIdentifier","src":"12203:5:21"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"12188:14:21","nodeType":"YulIdentifier","src":"12188:14:21"},"nativeSrc":"12188:21:21","nodeType":"YulFunctionCall","src":"12188:21:21"}],"functionName":{"name":"mstore","nativeSrc":"12176:6:21","nodeType":"YulIdentifier","src":"12176:6:21"},"nativeSrc":"12176:34:21","nodeType":"YulFunctionCall","src":"12176:34:21"},"nativeSrc":"12176:34:21","nodeType":"YulExpressionStatement","src":"12176:34:21"}]},"name":"abi_encode_t_bool_to_t_bool","nativeSrc":"12117:99:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12154:5:21","nodeType":"YulTypedName","src":"12154:5:21","type":""},{"name":"pos","nativeSrc":"12161:3:21","nodeType":"YulTypedName","src":"12161:3:21","type":""}],"src":"12117:99:21"},{"body":{"nativeSrc":"12250:152:21","nodeType":"YulBlock","src":"12250:152:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12267:1:21","nodeType":"YulLiteral","src":"12267:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"12270:77:21","nodeType":"YulLiteral","src":"12270:77:21","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"12260:6:21","nodeType":"YulIdentifier","src":"12260:6:21"},"nativeSrc":"12260:88:21","nodeType":"YulFunctionCall","src":"12260:88:21"},"nativeSrc":"12260:88:21","nodeType":"YulExpressionStatement","src":"12260:88:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12364:1:21","nodeType":"YulLiteral","src":"12364:1:21","type":"","value":"4"},{"kind":"number","nativeSrc":"12367:4:21","nodeType":"YulLiteral","src":"12367:4:21","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"12357:6:21","nodeType":"YulIdentifier","src":"12357:6:21"},"nativeSrc":"12357:15:21","nodeType":"YulFunctionCall","src":"12357:15:21"},"nativeSrc":"12357:15:21","nodeType":"YulExpressionStatement","src":"12357:15:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"12388:1:21","nodeType":"YulLiteral","src":"12388:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"12391:4:21","nodeType":"YulLiteral","src":"12391:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"12381:6:21","nodeType":"YulIdentifier","src":"12381:6:21"},"nativeSrc":"12381:15:21","nodeType":"YulFunctionCall","src":"12381:15:21"},"nativeSrc":"12381:15:21","nodeType":"YulExpressionStatement","src":"12381:15:21"}]},"name":"panic_error_0x21","nativeSrc":"12222:180:21","nodeType":"YulFunctionDefinition","src":"12222:180:21"},{"body":{"nativeSrc":"12466:62:21","nodeType":"YulBlock","src":"12466:62:21","statements":[{"body":{"nativeSrc":"12500:22:21","nodeType":"YulBlock","src":"12500:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nativeSrc":"12502:16:21","nodeType":"YulIdentifier","src":"12502:16:21"},"nativeSrc":"12502:18:21","nodeType":"YulFunctionCall","src":"12502:18:21"},"nativeSrc":"12502:18:21","nodeType":"YulExpressionStatement","src":"12502:18:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12489:5:21","nodeType":"YulIdentifier","src":"12489:5:21"},{"kind":"number","nativeSrc":"12496:1:21","nodeType":"YulLiteral","src":"12496:1:21","type":"","value":"7"}],"functionName":{"name":"lt","nativeSrc":"12486:2:21","nodeType":"YulIdentifier","src":"12486:2:21"},"nativeSrc":"12486:12:21","nodeType":"YulFunctionCall","src":"12486:12:21"}],"functionName":{"name":"iszero","nativeSrc":"12479:6:21","nodeType":"YulIdentifier","src":"12479:6:21"},"nativeSrc":"12479:20:21","nodeType":"YulFunctionCall","src":"12479:20:21"},"nativeSrc":"12476:46:21","nodeType":"YulIf","src":"12476:46:21"}]},"name":"validator_assert_t_enum$_CachePreset_$964","nativeSrc":"12408:120:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12459:5:21","nodeType":"YulTypedName","src":"12459:5:21","type":""}],"src":"12408:120:21"},{"body":{"nativeSrc":"12594:81:21","nodeType":"YulBlock","src":"12594:81:21","statements":[{"nativeSrc":"12604:16:21","nodeType":"YulAssignment","src":"12604:16:21","value":{"name":"value","nativeSrc":"12615:5:21","nodeType":"YulIdentifier","src":"12615:5:21"},"variableNames":[{"name":"cleaned","nativeSrc":"12604:7:21","nodeType":"YulIdentifier","src":"12604:7:21"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"12663:5:21","nodeType":"YulIdentifier","src":"12663:5:21"}],"functionName":{"name":"validator_assert_t_enum$_CachePreset_$964","nativeSrc":"12621:41:21","nodeType":"YulIdentifier","src":"12621:41:21"},"nativeSrc":"12621:48:21","nodeType":"YulFunctionCall","src":"12621:48:21"},"nativeSrc":"12621:48:21","nodeType":"YulExpressionStatement","src":"12621:48:21"}]},"name":"cleanup_t_enum$_CachePreset_$964","nativeSrc":"12534:141:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12576:5:21","nodeType":"YulTypedName","src":"12576:5:21","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"12586:7:21","nodeType":"YulTypedName","src":"12586:7:21","type":""}],"src":"12534:141:21"},{"body":{"nativeSrc":"12754:68:21","nodeType":"YulBlock","src":"12754:68:21","statements":[{"nativeSrc":"12764:52:21","nodeType":"YulAssignment","src":"12764:52:21","value":{"arguments":[{"name":"value","nativeSrc":"12810:5:21","nodeType":"YulIdentifier","src":"12810:5:21"}],"functionName":{"name":"cleanup_t_enum$_CachePreset_$964","nativeSrc":"12777:32:21","nodeType":"YulIdentifier","src":"12777:32:21"},"nativeSrc":"12777:39:21","nodeType":"YulFunctionCall","src":"12777:39:21"},"variableNames":[{"name":"converted","nativeSrc":"12764:9:21","nodeType":"YulIdentifier","src":"12764:9:21"}]}]},"name":"convert_t_enum$_CachePreset_$964_to_t_uint8","nativeSrc":"12681:141:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12734:5:21","nodeType":"YulTypedName","src":"12734:5:21","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"12744:9:21","nodeType":"YulTypedName","src":"12744:9:21","type":""}],"src":"12681:141:21"},{"body":{"nativeSrc":"12896:79:21","nodeType":"YulBlock","src":"12896:79:21","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"12913:3:21","nodeType":"YulIdentifier","src":"12913:3:21"},{"arguments":[{"name":"value","nativeSrc":"12962:5:21","nodeType":"YulIdentifier","src":"12962:5:21"}],"functionName":{"name":"convert_t_enum$_CachePreset_$964_to_t_uint8","nativeSrc":"12918:43:21","nodeType":"YulIdentifier","src":"12918:43:21"},"nativeSrc":"12918:50:21","nodeType":"YulFunctionCall","src":"12918:50:21"}],"functionName":{"name":"mstore","nativeSrc":"12906:6:21","nodeType":"YulIdentifier","src":"12906:6:21"},"nativeSrc":"12906:63:21","nodeType":"YulFunctionCall","src":"12906:63:21"},"nativeSrc":"12906:63:21","nodeType":"YulExpressionStatement","src":"12906:63:21"}]},"name":"abi_encode_t_enum$_CachePreset_$964_to_t_uint8","nativeSrc":"12828:147:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12884:5:21","nodeType":"YulTypedName","src":"12884:5:21","type":""},{"name":"pos","nativeSrc":"12891:3:21","nodeType":"YulTypedName","src":"12891:3:21","type":""}],"src":"12828:147:21"},{"body":{"nativeSrc":"13040:40:21","nodeType":"YulBlock","src":"13040:40:21","statements":[{"nativeSrc":"13051:22:21","nodeType":"YulAssignment","src":"13051:22:21","value":{"arguments":[{"name":"value","nativeSrc":"13067:5:21","nodeType":"YulIdentifier","src":"13067:5:21"}],"functionName":{"name":"mload","nativeSrc":"13061:5:21","nodeType":"YulIdentifier","src":"13061:5:21"},"nativeSrc":"13061:12:21","nodeType":"YulFunctionCall","src":"13061:12:21"},"variableNames":[{"name":"length","nativeSrc":"13051:6:21","nodeType":"YulIdentifier","src":"13051:6:21"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"12981:99:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13023:5:21","nodeType":"YulTypedName","src":"13023:5:21","type":""}],"returnVariables":[{"name":"length","nativeSrc":"13033:6:21","nodeType":"YulTypedName","src":"13033:6:21","type":""}],"src":"12981:99:21"},{"body":{"nativeSrc":"13172:73:21","nodeType":"YulBlock","src":"13172:73:21","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"13189:3:21","nodeType":"YulIdentifier","src":"13189:3:21"},{"name":"length","nativeSrc":"13194:6:21","nodeType":"YulIdentifier","src":"13194:6:21"}],"functionName":{"name":"mstore","nativeSrc":"13182:6:21","nodeType":"YulIdentifier","src":"13182:6:21"},"nativeSrc":"13182:19:21","nodeType":"YulFunctionCall","src":"13182:19:21"},"nativeSrc":"13182:19:21","nodeType":"YulExpressionStatement","src":"13182:19:21"},{"nativeSrc":"13210:29:21","nodeType":"YulAssignment","src":"13210:29:21","value":{"arguments":[{"name":"pos","nativeSrc":"13229:3:21","nodeType":"YulIdentifier","src":"13229:3:21"},{"kind":"number","nativeSrc":"13234:4:21","nodeType":"YulLiteral","src":"13234:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13225:3:21","nodeType":"YulIdentifier","src":"13225:3:21"},"nativeSrc":"13225:14:21","nodeType":"YulFunctionCall","src":"13225:14:21"},"variableNames":[{"name":"updated_pos","nativeSrc":"13210:11:21","nodeType":"YulIdentifier","src":"13210:11:21"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr","nativeSrc":"13086:159:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"13144:3:21","nodeType":"YulTypedName","src":"13144:3:21","type":""},{"name":"length","nativeSrc":"13149:6:21","nodeType":"YulTypedName","src":"13149:6:21","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"13160:11:21","nodeType":"YulTypedName","src":"13160:11:21","type":""}],"src":"13086:159:21"},{"body":{"nativeSrc":"13333:275:21","nodeType":"YulBlock","src":"13333:275:21","statements":[{"nativeSrc":"13343:53:21","nodeType":"YulVariableDeclaration","src":"13343:53:21","value":{"arguments":[{"name":"value","nativeSrc":"13390:5:21","nodeType":"YulIdentifier","src":"13390:5:21"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"13357:32:21","nodeType":"YulIdentifier","src":"13357:32:21"},"nativeSrc":"13357:39:21","nodeType":"YulFunctionCall","src":"13357:39:21"},"variables":[{"name":"length","nativeSrc":"13347:6:21","nodeType":"YulTypedName","src":"13347:6:21","type":""}]},{"nativeSrc":"13405:68:21","nodeType":"YulAssignment","src":"13405:68:21","value":{"arguments":[{"name":"pos","nativeSrc":"13461:3:21","nodeType":"YulIdentifier","src":"13461:3:21"},{"name":"length","nativeSrc":"13466:6:21","nodeType":"YulIdentifier","src":"13466:6:21"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr","nativeSrc":"13412:48:21","nodeType":"YulIdentifier","src":"13412:48:21"},"nativeSrc":"13412:61:21","nodeType":"YulFunctionCall","src":"13412:61:21"},"variableNames":[{"name":"pos","nativeSrc":"13405:3:21","nodeType":"YulIdentifier","src":"13405:3:21"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13521:5:21","nodeType":"YulIdentifier","src":"13521:5:21"},{"kind":"number","nativeSrc":"13528:4:21","nodeType":"YulLiteral","src":"13528:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13517:3:21","nodeType":"YulIdentifier","src":"13517:3:21"},"nativeSrc":"13517:16:21","nodeType":"YulFunctionCall","src":"13517:16:21"},{"name":"pos","nativeSrc":"13535:3:21","nodeType":"YulIdentifier","src":"13535:3:21"},{"name":"length","nativeSrc":"13540:6:21","nodeType":"YulIdentifier","src":"13540:6:21"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"13482:34:21","nodeType":"YulIdentifier","src":"13482:34:21"},"nativeSrc":"13482:65:21","nodeType":"YulFunctionCall","src":"13482:65:21"},"nativeSrc":"13482:65:21","nodeType":"YulExpressionStatement","src":"13482:65:21"},{"nativeSrc":"13556:46:21","nodeType":"YulAssignment","src":"13556:46:21","value":{"arguments":[{"name":"pos","nativeSrc":"13567:3:21","nodeType":"YulIdentifier","src":"13567:3:21"},{"arguments":[{"name":"length","nativeSrc":"13594:6:21","nodeType":"YulIdentifier","src":"13594:6:21"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"13572:21:21","nodeType":"YulIdentifier","src":"13572:21:21"},"nativeSrc":"13572:29:21","nodeType":"YulFunctionCall","src":"13572:29:21"}],"functionName":{"name":"add","nativeSrc":"13563:3:21","nodeType":"YulIdentifier","src":"13563:3:21"},"nativeSrc":"13563:39:21","nodeType":"YulFunctionCall","src":"13563:39:21"},"variableNames":[{"name":"end","nativeSrc":"13556:3:21","nodeType":"YulIdentifier","src":"13556:3:21"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr","nativeSrc":"13251:357:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13314:5:21","nodeType":"YulTypedName","src":"13314:5:21","type":""},{"name":"pos","nativeSrc":"13321:3:21","nodeType":"YulTypedName","src":"13321:3:21","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13329:3:21","nodeType":"YulTypedName","src":"13329:3:21","type":""}],"src":"13251:357:21"},{"body":{"nativeSrc":"13786:676:21","nodeType":"YulBlock","src":"13786:676:21","statements":[{"nativeSrc":"13796:26:21","nodeType":"YulVariableDeclaration","src":"13796:26:21","value":{"arguments":[{"name":"pos","nativeSrc":"13812:3:21","nodeType":"YulIdentifier","src":"13812:3:21"},{"kind":"number","nativeSrc":"13817:4:21","nodeType":"YulLiteral","src":"13817:4:21","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"13808:3:21","nodeType":"YulIdentifier","src":"13808:3:21"},"nativeSrc":"13808:14:21","nodeType":"YulFunctionCall","src":"13808:14:21"},"variables":[{"name":"tail","nativeSrc":"13800:4:21","nodeType":"YulTypedName","src":"13800:4:21","type":""}]},{"nativeSrc":"13832:167:21","nodeType":"YulBlock","src":"13832:167:21","statements":[{"nativeSrc":"13876:43:21","nodeType":"YulVariableDeclaration","src":"13876:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13906:5:21","nodeType":"YulIdentifier","src":"13906:5:21"},{"kind":"number","nativeSrc":"13913:4:21","nodeType":"YulLiteral","src":"13913:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"13902:3:21","nodeType":"YulIdentifier","src":"13902:3:21"},"nativeSrc":"13902:16:21","nodeType":"YulFunctionCall","src":"13902:16:21"}],"functionName":{"name":"mload","nativeSrc":"13896:5:21","nodeType":"YulIdentifier","src":"13896:5:21"},"nativeSrc":"13896:23:21","nodeType":"YulFunctionCall","src":"13896:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"13880:12:21","nodeType":"YulTypedName","src":"13880:12:21","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"13960:12:21","nodeType":"YulIdentifier","src":"13960:12:21"},{"arguments":[{"name":"pos","nativeSrc":"13978:3:21","nodeType":"YulIdentifier","src":"13978:3:21"},{"kind":"number","nativeSrc":"13983:4:21","nodeType":"YulLiteral","src":"13983:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"13974:3:21","nodeType":"YulIdentifier","src":"13974:3:21"},"nativeSrc":"13974:14:21","nodeType":"YulFunctionCall","src":"13974:14:21"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool","nativeSrc":"13932:27:21","nodeType":"YulIdentifier","src":"13932:27:21"},"nativeSrc":"13932:57:21","nodeType":"YulFunctionCall","src":"13932:57:21"},"nativeSrc":"13932:57:21","nodeType":"YulExpressionStatement","src":"13932:57:21"}]},{"nativeSrc":"14009:179:21","nodeType":"YulBlock","src":"14009:179:21","statements":[{"nativeSrc":"14046:43:21","nodeType":"YulVariableDeclaration","src":"14046:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"14076:5:21","nodeType":"YulIdentifier","src":"14076:5:21"},{"kind":"number","nativeSrc":"14083:4:21","nodeType":"YulLiteral","src":"14083:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14072:3:21","nodeType":"YulIdentifier","src":"14072:3:21"},"nativeSrc":"14072:16:21","nodeType":"YulFunctionCall","src":"14072:16:21"}],"functionName":{"name":"mload","nativeSrc":"14066:5:21","nodeType":"YulIdentifier","src":"14066:5:21"},"nativeSrc":"14066:23:21","nodeType":"YulFunctionCall","src":"14066:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"14050:12:21","nodeType":"YulTypedName","src":"14050:12:21","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"14149:12:21","nodeType":"YulIdentifier","src":"14149:12:21"},{"arguments":[{"name":"pos","nativeSrc":"14167:3:21","nodeType":"YulIdentifier","src":"14167:3:21"},{"kind":"number","nativeSrc":"14172:4:21","nodeType":"YulLiteral","src":"14172:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14163:3:21","nodeType":"YulIdentifier","src":"14163:3:21"},"nativeSrc":"14163:14:21","nodeType":"YulFunctionCall","src":"14163:14:21"}],"functionName":{"name":"abi_encode_t_enum$_CachePreset_$964_to_t_uint8","nativeSrc":"14102:46:21","nodeType":"YulIdentifier","src":"14102:46:21"},"nativeSrc":"14102:76:21","nodeType":"YulFunctionCall","src":"14102:76:21"},"nativeSrc":"14102:76:21","nodeType":"YulExpressionStatement","src":"14102:76:21"}]},{"nativeSrc":"14198:237:21","nodeType":"YulBlock","src":"14198:237:21","statements":[{"nativeSrc":"14235:43:21","nodeType":"YulVariableDeclaration","src":"14235:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"14265:5:21","nodeType":"YulIdentifier","src":"14265:5:21"},{"kind":"number","nativeSrc":"14272:4:21","nodeType":"YulLiteral","src":"14272:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"14261:3:21","nodeType":"YulIdentifier","src":"14261:3:21"},"nativeSrc":"14261:16:21","nodeType":"YulFunctionCall","src":"14261:16:21"}],"functionName":{"name":"mload","nativeSrc":"14255:5:21","nodeType":"YulIdentifier","src":"14255:5:21"},"nativeSrc":"14255:23:21","nodeType":"YulFunctionCall","src":"14255:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"14239:12:21","nodeType":"YulTypedName","src":"14239:12:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"14303:3:21","nodeType":"YulIdentifier","src":"14303:3:21"},{"kind":"number","nativeSrc":"14308:4:21","nodeType":"YulLiteral","src":"14308:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"14299:3:21","nodeType":"YulIdentifier","src":"14299:3:21"},"nativeSrc":"14299:14:21","nodeType":"YulFunctionCall","src":"14299:14:21"},{"arguments":[{"name":"tail","nativeSrc":"14319:4:21","nodeType":"YulIdentifier","src":"14319:4:21"},{"name":"pos","nativeSrc":"14325:3:21","nodeType":"YulIdentifier","src":"14325:3:21"}],"functionName":{"name":"sub","nativeSrc":"14315:3:21","nodeType":"YulIdentifier","src":"14315:3:21"},"nativeSrc":"14315:14:21","nodeType":"YulFunctionCall","src":"14315:14:21"}],"functionName":{"name":"mstore","nativeSrc":"14292:6:21","nodeType":"YulIdentifier","src":"14292:6:21"},"nativeSrc":"14292:38:21","nodeType":"YulFunctionCall","src":"14292:38:21"},"nativeSrc":"14292:38:21","nodeType":"YulExpressionStatement","src":"14292:38:21"},{"nativeSrc":"14343:81:21","nodeType":"YulAssignment","src":"14343:81:21","value":{"arguments":[{"name":"memberValue0","nativeSrc":"14405:12:21","nodeType":"YulIdentifier","src":"14405:12:21"},{"name":"tail","nativeSrc":"14419:4:21","nodeType":"YulIdentifier","src":"14419:4:21"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr","nativeSrc":"14351:53:21","nodeType":"YulIdentifier","src":"14351:53:21"},"nativeSrc":"14351:73:21","nodeType":"YulFunctionCall","src":"14351:73:21"},"variableNames":[{"name":"tail","nativeSrc":"14343:4:21","nodeType":"YulIdentifier","src":"14343:4:21"}]}]},{"nativeSrc":"14445:11:21","nodeType":"YulAssignment","src":"14445:11:21","value":{"name":"tail","nativeSrc":"14452:4:21","nodeType":"YulIdentifier","src":"14452:4:21"},"variableNames":[{"name":"end","nativeSrc":"14445:3:21","nodeType":"YulIdentifier","src":"14445:3:21"}]}]},"name":"abi_encode_t_struct$_CacheControl_$984_memory_ptr_to_t_struct$_CacheControl_$984_memory_ptr","nativeSrc":"13664:798:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13765:5:21","nodeType":"YulTypedName","src":"13765:5:21","type":""},{"name":"pos","nativeSrc":"13772:3:21","nodeType":"YulTypedName","src":"13772:3:21","type":""}],"returnVariables":[{"name":"end","nativeSrc":"13781:3:21","nodeType":"YulTypedName","src":"13781:3:21","type":""}],"src":"13664:798:21"},{"body":{"nativeSrc":"14521:52:21","nodeType":"YulBlock","src":"14521:52:21","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"14538:3:21","nodeType":"YulIdentifier","src":"14538:3:21"},{"arguments":[{"name":"value","nativeSrc":"14560:5:21","nodeType":"YulIdentifier","src":"14560:5:21"}],"functionName":{"name":"cleanup_t_uint16","nativeSrc":"14543:16:21","nodeType":"YulIdentifier","src":"14543:16:21"},"nativeSrc":"14543:23:21","nodeType":"YulFunctionCall","src":"14543:23:21"}],"functionName":{"name":"mstore","nativeSrc":"14531:6:21","nodeType":"YulIdentifier","src":"14531:6:21"},"nativeSrc":"14531:36:21","nodeType":"YulFunctionCall","src":"14531:36:21"},"nativeSrc":"14531:36:21","nodeType":"YulExpressionStatement","src":"14531:36:21"}]},"name":"abi_encode_t_uint16_to_t_uint16","nativeSrc":"14468:105:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14509:5:21","nodeType":"YulTypedName","src":"14509:5:21","type":""},{"name":"pos","nativeSrc":"14516:3:21","nodeType":"YulTypedName","src":"14516:3:21","type":""}],"src":"14468:105:21"},{"body":{"nativeSrc":"14653:40:21","nodeType":"YulBlock","src":"14653:40:21","statements":[{"nativeSrc":"14664:22:21","nodeType":"YulAssignment","src":"14664:22:21","value":{"arguments":[{"name":"value","nativeSrc":"14680:5:21","nodeType":"YulIdentifier","src":"14680:5:21"}],"functionName":{"name":"mload","nativeSrc":"14674:5:21","nodeType":"YulIdentifier","src":"14674:5:21"},"nativeSrc":"14674:12:21","nodeType":"YulFunctionCall","src":"14674:12:21"},"variableNames":[{"name":"length","nativeSrc":"14664:6:21","nodeType":"YulIdentifier","src":"14664:6:21"}]}]},"name":"array_length_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"14579:114:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"14636:5:21","nodeType":"YulTypedName","src":"14636:5:21","type":""}],"returnVariables":[{"name":"length","nativeSrc":"14646:6:21","nodeType":"YulTypedName","src":"14646:6:21","type":""}],"src":"14579:114:21"},{"body":{"nativeSrc":"14800:73:21","nodeType":"YulBlock","src":"14800:73:21","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"14817:3:21","nodeType":"YulIdentifier","src":"14817:3:21"},{"name":"length","nativeSrc":"14822:6:21","nodeType":"YulIdentifier","src":"14822:6:21"}],"functionName":{"name":"mstore","nativeSrc":"14810:6:21","nodeType":"YulIdentifier","src":"14810:6:21"},"nativeSrc":"14810:19:21","nodeType":"YulFunctionCall","src":"14810:19:21"},"nativeSrc":"14810:19:21","nodeType":"YulExpressionStatement","src":"14810:19:21"},{"nativeSrc":"14838:29:21","nodeType":"YulAssignment","src":"14838:29:21","value":{"arguments":[{"name":"pos","nativeSrc":"14857:3:21","nodeType":"YulIdentifier","src":"14857:3:21"},{"kind":"number","nativeSrc":"14862:4:21","nodeType":"YulLiteral","src":"14862:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14853:3:21","nodeType":"YulIdentifier","src":"14853:3:21"},"nativeSrc":"14853:14:21","nodeType":"YulFunctionCall","src":"14853:14:21"},"variableNames":[{"name":"updated_pos","nativeSrc":"14838:11:21","nodeType":"YulIdentifier","src":"14838:11:21"}]}]},"name":"array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"14699:174:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"14772:3:21","nodeType":"YulTypedName","src":"14772:3:21","type":""},{"name":"length","nativeSrc":"14777:6:21","nodeType":"YulTypedName","src":"14777:6:21","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"14788:11:21","nodeType":"YulTypedName","src":"14788:11:21","type":""}],"src":"14699:174:21"},{"body":{"nativeSrc":"14951:60:21","nodeType":"YulBlock","src":"14951:60:21","statements":[{"nativeSrc":"14961:11:21","nodeType":"YulAssignment","src":"14961:11:21","value":{"name":"ptr","nativeSrc":"14969:3:21","nodeType":"YulIdentifier","src":"14969:3:21"},"variableNames":[{"name":"data","nativeSrc":"14961:4:21","nodeType":"YulIdentifier","src":"14961:4:21"}]},{"nativeSrc":"14982:22:21","nodeType":"YulAssignment","src":"14982:22:21","value":{"arguments":[{"name":"ptr","nativeSrc":"14994:3:21","nodeType":"YulIdentifier","src":"14994:3:21"},{"kind":"number","nativeSrc":"14999:4:21","nodeType":"YulLiteral","src":"14999:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14990:3:21","nodeType":"YulIdentifier","src":"14990:3:21"},"nativeSrc":"14990:14:21","nodeType":"YulFunctionCall","src":"14990:14:21"},"variableNames":[{"name":"data","nativeSrc":"14982:4:21","nodeType":"YulIdentifier","src":"14982:4:21"}]}]},"name":"array_dataslot_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"14879:132:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"14938:3:21","nodeType":"YulTypedName","src":"14938:3:21","type":""}],"returnVariables":[{"name":"data","nativeSrc":"14946:4:21","nodeType":"YulTypedName","src":"14946:4:21","type":""}],"src":"14879:132:21"},{"body":{"nativeSrc":"15072:53:21","nodeType":"YulBlock","src":"15072:53:21","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"15089:3:21","nodeType":"YulIdentifier","src":"15089:3:21"},{"arguments":[{"name":"value","nativeSrc":"15112:5:21","nodeType":"YulIdentifier","src":"15112:5:21"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"15094:17:21","nodeType":"YulIdentifier","src":"15094:17:21"},"nativeSrc":"15094:24:21","nodeType":"YulFunctionCall","src":"15094:24:21"}],"functionName":{"name":"mstore","nativeSrc":"15082:6:21","nodeType":"YulIdentifier","src":"15082:6:21"},"nativeSrc":"15082:37:21","nodeType":"YulFunctionCall","src":"15082:37:21"},"nativeSrc":"15082:37:21","nodeType":"YulExpressionStatement","src":"15082:37:21"}]},"name":"abi_encode_t_bytes32_to_t_bytes32","nativeSrc":"15017:108:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15060:5:21","nodeType":"YulTypedName","src":"15060:5:21","type":""},{"name":"pos","nativeSrc":"15067:3:21","nodeType":"YulTypedName","src":"15067:3:21","type":""}],"src":"15017:108:21"},{"body":{"nativeSrc":"15211:99:21","nodeType":"YulBlock","src":"15211:99:21","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"15255:6:21","nodeType":"YulIdentifier","src":"15255:6:21"},{"name":"pos","nativeSrc":"15263:3:21","nodeType":"YulIdentifier","src":"15263:3:21"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32","nativeSrc":"15221:33:21","nodeType":"YulIdentifier","src":"15221:33:21"},"nativeSrc":"15221:46:21","nodeType":"YulFunctionCall","src":"15221:46:21"},"nativeSrc":"15221:46:21","nodeType":"YulExpressionStatement","src":"15221:46:21"},{"nativeSrc":"15276:28:21","nodeType":"YulAssignment","src":"15276:28:21","value":{"arguments":[{"name":"pos","nativeSrc":"15294:3:21","nodeType":"YulIdentifier","src":"15294:3:21"},{"kind":"number","nativeSrc":"15299:4:21","nodeType":"YulLiteral","src":"15299:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15290:3:21","nodeType":"YulIdentifier","src":"15290:3:21"},"nativeSrc":"15290:14:21","nodeType":"YulFunctionCall","src":"15290:14:21"},"variableNames":[{"name":"updatedPos","nativeSrc":"15276:10:21","nodeType":"YulIdentifier","src":"15276:10:21"}]}]},"name":"abi_encodeUpdatedPos_t_bytes32_to_t_bytes32","nativeSrc":"15131:179:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value0","nativeSrc":"15184:6:21","nodeType":"YulTypedName","src":"15184:6:21","type":""},{"name":"pos","nativeSrc":"15192:3:21","nodeType":"YulTypedName","src":"15192:3:21","type":""}],"returnVariables":[{"name":"updatedPos","nativeSrc":"15200:10:21","nodeType":"YulTypedName","src":"15200:10:21","type":""}],"src":"15131:179:21"},{"body":{"nativeSrc":"15391:38:21","nodeType":"YulBlock","src":"15391:38:21","statements":[{"nativeSrc":"15401:22:21","nodeType":"YulAssignment","src":"15401:22:21","value":{"arguments":[{"name":"ptr","nativeSrc":"15413:3:21","nodeType":"YulIdentifier","src":"15413:3:21"},{"kind":"number","nativeSrc":"15418:4:21","nodeType":"YulLiteral","src":"15418:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15409:3:21","nodeType":"YulIdentifier","src":"15409:3:21"},"nativeSrc":"15409:14:21","nodeType":"YulFunctionCall","src":"15409:14:21"},"variableNames":[{"name":"next","nativeSrc":"15401:4:21","nodeType":"YulIdentifier","src":"15401:4:21"}]}]},"name":"array_nextElement_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"15316:113:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"15378:3:21","nodeType":"YulTypedName","src":"15378:3:21","type":""}],"returnVariables":[{"name":"next","nativeSrc":"15386:4:21","nodeType":"YulTypedName","src":"15386:4:21","type":""}],"src":"15316:113:21"},{"body":{"nativeSrc":"15579:598:21","nodeType":"YulBlock","src":"15579:598:21","statements":[{"nativeSrc":"15589:68:21","nodeType":"YulVariableDeclaration","src":"15589:68:21","value":{"arguments":[{"name":"value","nativeSrc":"15651:5:21","nodeType":"YulIdentifier","src":"15651:5:21"}],"functionName":{"name":"array_length_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"15603:47:21","nodeType":"YulIdentifier","src":"15603:47:21"},"nativeSrc":"15603:54:21","nodeType":"YulFunctionCall","src":"15603:54:21"},"variables":[{"name":"length","nativeSrc":"15593:6:21","nodeType":"YulTypedName","src":"15593:6:21","type":""}]},{"nativeSrc":"15666:83:21","nodeType":"YulAssignment","src":"15666:83:21","value":{"arguments":[{"name":"pos","nativeSrc":"15737:3:21","nodeType":"YulIdentifier","src":"15737:3:21"},{"name":"length","nativeSrc":"15742:6:21","nodeType":"YulIdentifier","src":"15742:6:21"}],"functionName":{"name":"array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"15673:63:21","nodeType":"YulIdentifier","src":"15673:63:21"},"nativeSrc":"15673:76:21","nodeType":"YulFunctionCall","src":"15673:76:21"},"variableNames":[{"name":"pos","nativeSrc":"15666:3:21","nodeType":"YulIdentifier","src":"15666:3:21"}]},{"nativeSrc":"15758:71:21","nodeType":"YulVariableDeclaration","src":"15758:71:21","value":{"arguments":[{"name":"value","nativeSrc":"15823:5:21","nodeType":"YulIdentifier","src":"15823:5:21"}],"functionName":{"name":"array_dataslot_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"15773:49:21","nodeType":"YulIdentifier","src":"15773:49:21"},"nativeSrc":"15773:56:21","nodeType":"YulFunctionCall","src":"15773:56:21"},"variables":[{"name":"baseRef","nativeSrc":"15762:7:21","nodeType":"YulTypedName","src":"15762:7:21","type":""}]},{"nativeSrc":"15838:21:21","nodeType":"YulVariableDeclaration","src":"15838:21:21","value":{"name":"baseRef","nativeSrc":"15852:7:21","nodeType":"YulIdentifier","src":"15852:7:21"},"variables":[{"name":"srcPtr","nativeSrc":"15842:6:21","nodeType":"YulTypedName","src":"15842:6:21","type":""}]},{"body":{"nativeSrc":"15928:224:21","nodeType":"YulBlock","src":"15928:224:21","statements":[{"nativeSrc":"15942:34:21","nodeType":"YulVariableDeclaration","src":"15942:34:21","value":{"arguments":[{"name":"srcPtr","nativeSrc":"15969:6:21","nodeType":"YulIdentifier","src":"15969:6:21"}],"functionName":{"name":"mload","nativeSrc":"15963:5:21","nodeType":"YulIdentifier","src":"15963:5:21"},"nativeSrc":"15963:13:21","nodeType":"YulFunctionCall","src":"15963:13:21"},"variables":[{"name":"elementValue0","nativeSrc":"15946:13:21","nodeType":"YulTypedName","src":"15946:13:21","type":""}]},{"nativeSrc":"15989:70:21","nodeType":"YulAssignment","src":"15989:70:21","value":{"arguments":[{"name":"elementValue0","nativeSrc":"16040:13:21","nodeType":"YulIdentifier","src":"16040:13:21"},{"name":"pos","nativeSrc":"16055:3:21","nodeType":"YulIdentifier","src":"16055:3:21"}],"functionName":{"name":"abi_encodeUpdatedPos_t_bytes32_to_t_bytes32","nativeSrc":"15996:43:21","nodeType":"YulIdentifier","src":"15996:43:21"},"nativeSrc":"15996:63:21","nodeType":"YulFunctionCall","src":"15996:63:21"},"variableNames":[{"name":"pos","nativeSrc":"15989:3:21","nodeType":"YulIdentifier","src":"15989:3:21"}]},{"nativeSrc":"16072:70:21","nodeType":"YulAssignment","src":"16072:70:21","value":{"arguments":[{"name":"srcPtr","nativeSrc":"16135:6:21","nodeType":"YulIdentifier","src":"16135:6:21"}],"functionName":{"name":"array_nextElement_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"16082:52:21","nodeType":"YulIdentifier","src":"16082:52:21"},"nativeSrc":"16082:60:21","nodeType":"YulFunctionCall","src":"16082:60:21"},"variableNames":[{"name":"srcPtr","nativeSrc":"16072:6:21","nodeType":"YulIdentifier","src":"16072:6:21"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"15890:1:21","nodeType":"YulIdentifier","src":"15890:1:21"},{"name":"length","nativeSrc":"15893:6:21","nodeType":"YulIdentifier","src":"15893:6:21"}],"functionName":{"name":"lt","nativeSrc":"15887:2:21","nodeType":"YulIdentifier","src":"15887:2:21"},"nativeSrc":"15887:13:21","nodeType":"YulFunctionCall","src":"15887:13:21"},"nativeSrc":"15868:284:21","nodeType":"YulForLoop","post":{"nativeSrc":"15901:18:21","nodeType":"YulBlock","src":"15901:18:21","statements":[{"nativeSrc":"15903:14:21","nodeType":"YulAssignment","src":"15903:14:21","value":{"arguments":[{"name":"i","nativeSrc":"15912:1:21","nodeType":"YulIdentifier","src":"15912:1:21"},{"kind":"number","nativeSrc":"15915:1:21","nodeType":"YulLiteral","src":"15915:1:21","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"15908:3:21","nodeType":"YulIdentifier","src":"15908:3:21"},"nativeSrc":"15908:9:21","nodeType":"YulFunctionCall","src":"15908:9:21"},"variableNames":[{"name":"i","nativeSrc":"15903:1:21","nodeType":"YulIdentifier","src":"15903:1:21"}]}]},"pre":{"nativeSrc":"15872:14:21","nodeType":"YulBlock","src":"15872:14:21","statements":[{"nativeSrc":"15874:10:21","nodeType":"YulVariableDeclaration","src":"15874:10:21","value":{"kind":"number","nativeSrc":"15883:1:21","nodeType":"YulLiteral","src":"15883:1:21","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"15878:1:21","nodeType":"YulTypedName","src":"15878:1:21","type":""}]}]},"src":"15868:284:21"},{"nativeSrc":"16161:10:21","nodeType":"YulAssignment","src":"16161:10:21","value":{"name":"pos","nativeSrc":"16168:3:21","nodeType":"YulIdentifier","src":"16168:3:21"},"variableNames":[{"name":"end","nativeSrc":"16161:3:21","nodeType":"YulIdentifier","src":"16161:3:21"}]}]},"name":"abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"15465:712:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15558:5:21","nodeType":"YulTypedName","src":"15558:5:21","type":""},{"name":"pos","nativeSrc":"15565:3:21","nodeType":"YulTypedName","src":"15565:3:21","type":""}],"returnVariables":[{"name":"end","nativeSrc":"15574:3:21","nodeType":"YulTypedName","src":"15574:3:21","type":""}],"src":"15465:712:21"},{"body":{"nativeSrc":"16240:62:21","nodeType":"YulBlock","src":"16240:62:21","statements":[{"body":{"nativeSrc":"16274:22:21","nodeType":"YulBlock","src":"16274:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nativeSrc":"16276:16:21","nodeType":"YulIdentifier","src":"16276:16:21"},"nativeSrc":"16276:18:21","nodeType":"YulFunctionCall","src":"16276:18:21"},"nativeSrc":"16276:18:21","nodeType":"YulExpressionStatement","src":"16276:18:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16263:5:21","nodeType":"YulIdentifier","src":"16263:5:21"},{"kind":"number","nativeSrc":"16270:1:21","nodeType":"YulLiteral","src":"16270:1:21","type":"","value":"6"}],"functionName":{"name":"lt","nativeSrc":"16260:2:21","nodeType":"YulIdentifier","src":"16260:2:21"},"nativeSrc":"16260:12:21","nodeType":"YulFunctionCall","src":"16260:12:21"}],"functionName":{"name":"iszero","nativeSrc":"16253:6:21","nodeType":"YulIdentifier","src":"16253:6:21"},"nativeSrc":"16253:20:21","nodeType":"YulFunctionCall","src":"16253:20:21"},"nativeSrc":"16250:46:21","nodeType":"YulIf","src":"16250:46:21"}]},"name":"validator_assert_t_enum$_CORSPreset_$972","nativeSrc":"16183:119:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16233:5:21","nodeType":"YulTypedName","src":"16233:5:21","type":""}],"src":"16183:119:21"},{"body":{"nativeSrc":"16367:80:21","nodeType":"YulBlock","src":"16367:80:21","statements":[{"nativeSrc":"16377:16:21","nodeType":"YulAssignment","src":"16377:16:21","value":{"name":"value","nativeSrc":"16388:5:21","nodeType":"YulIdentifier","src":"16388:5:21"},"variableNames":[{"name":"cleaned","nativeSrc":"16377:7:21","nodeType":"YulIdentifier","src":"16377:7:21"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"16435:5:21","nodeType":"YulIdentifier","src":"16435:5:21"}],"functionName":{"name":"validator_assert_t_enum$_CORSPreset_$972","nativeSrc":"16394:40:21","nodeType":"YulIdentifier","src":"16394:40:21"},"nativeSrc":"16394:47:21","nodeType":"YulFunctionCall","src":"16394:47:21"},"nativeSrc":"16394:47:21","nodeType":"YulExpressionStatement","src":"16394:47:21"}]},"name":"cleanup_t_enum$_CORSPreset_$972","nativeSrc":"16308:139:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16349:5:21","nodeType":"YulTypedName","src":"16349:5:21","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"16359:7:21","nodeType":"YulTypedName","src":"16359:7:21","type":""}],"src":"16308:139:21"},{"body":{"nativeSrc":"16525:67:21","nodeType":"YulBlock","src":"16525:67:21","statements":[{"nativeSrc":"16535:51:21","nodeType":"YulAssignment","src":"16535:51:21","value":{"arguments":[{"name":"value","nativeSrc":"16580:5:21","nodeType":"YulIdentifier","src":"16580:5:21"}],"functionName":{"name":"cleanup_t_enum$_CORSPreset_$972","nativeSrc":"16548:31:21","nodeType":"YulIdentifier","src":"16548:31:21"},"nativeSrc":"16548:38:21","nodeType":"YulFunctionCall","src":"16548:38:21"},"variableNames":[{"name":"converted","nativeSrc":"16535:9:21","nodeType":"YulIdentifier","src":"16535:9:21"}]}]},"name":"convert_t_enum$_CORSPreset_$972_to_t_uint8","nativeSrc":"16453:139:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16505:5:21","nodeType":"YulTypedName","src":"16505:5:21","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"16515:9:21","nodeType":"YulTypedName","src":"16515:9:21","type":""}],"src":"16453:139:21"},{"body":{"nativeSrc":"16665:78:21","nodeType":"YulBlock","src":"16665:78:21","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"16682:3:21","nodeType":"YulIdentifier","src":"16682:3:21"},{"arguments":[{"name":"value","nativeSrc":"16730:5:21","nodeType":"YulIdentifier","src":"16730:5:21"}],"functionName":{"name":"convert_t_enum$_CORSPreset_$972_to_t_uint8","nativeSrc":"16687:42:21","nodeType":"YulIdentifier","src":"16687:42:21"},"nativeSrc":"16687:49:21","nodeType":"YulFunctionCall","src":"16687:49:21"}],"functionName":{"name":"mstore","nativeSrc":"16675:6:21","nodeType":"YulIdentifier","src":"16675:6:21"},"nativeSrc":"16675:62:21","nodeType":"YulFunctionCall","src":"16675:62:21"},"nativeSrc":"16675:62:21","nodeType":"YulExpressionStatement","src":"16675:62:21"}]},"name":"abi_encode_t_enum$_CORSPreset_$972_to_t_uint8","nativeSrc":"16598:145:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16653:5:21","nodeType":"YulTypedName","src":"16653:5:21","type":""},{"name":"pos","nativeSrc":"16660:3:21","nodeType":"YulTypedName","src":"16660:3:21","type":""}],"src":"16598:145:21"},{"body":{"nativeSrc":"16915:951:21","nodeType":"YulBlock","src":"16915:951:21","statements":[{"nativeSrc":"16925:26:21","nodeType":"YulVariableDeclaration","src":"16925:26:21","value":{"arguments":[{"name":"pos","nativeSrc":"16941:3:21","nodeType":"YulIdentifier","src":"16941:3:21"},{"kind":"number","nativeSrc":"16946:4:21","nodeType":"YulLiteral","src":"16946:4:21","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"16937:3:21","nodeType":"YulIdentifier","src":"16937:3:21"},"nativeSrc":"16937:14:21","nodeType":"YulFunctionCall","src":"16937:14:21"},"variables":[{"name":"tail","nativeSrc":"16929:4:21","nodeType":"YulTypedName","src":"16929:4:21","type":""}]},{"nativeSrc":"16961:165:21","nodeType":"YulBlock","src":"16961:165:21","statements":[{"nativeSrc":"16999:43:21","nodeType":"YulVariableDeclaration","src":"16999:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17029:5:21","nodeType":"YulIdentifier","src":"17029:5:21"},{"kind":"number","nativeSrc":"17036:4:21","nodeType":"YulLiteral","src":"17036:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"17025:3:21","nodeType":"YulIdentifier","src":"17025:3:21"},"nativeSrc":"17025:16:21","nodeType":"YulFunctionCall","src":"17025:16:21"}],"functionName":{"name":"mload","nativeSrc":"17019:5:21","nodeType":"YulIdentifier","src":"17019:5:21"},"nativeSrc":"17019:23:21","nodeType":"YulFunctionCall","src":"17019:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"17003:12:21","nodeType":"YulTypedName","src":"17003:12:21","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"17087:12:21","nodeType":"YulIdentifier","src":"17087:12:21"},{"arguments":[{"name":"pos","nativeSrc":"17105:3:21","nodeType":"YulIdentifier","src":"17105:3:21"},{"kind":"number","nativeSrc":"17110:4:21","nodeType":"YulLiteral","src":"17110:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"17101:3:21","nodeType":"YulIdentifier","src":"17101:3:21"},"nativeSrc":"17101:14:21","nodeType":"YulFunctionCall","src":"17101:14:21"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16","nativeSrc":"17055:31:21","nodeType":"YulIdentifier","src":"17055:31:21"},"nativeSrc":"17055:61:21","nodeType":"YulFunctionCall","src":"17055:61:21"},"nativeSrc":"17055:61:21","nodeType":"YulExpressionStatement","src":"17055:61:21"}]},{"nativeSrc":"17136:268:21","nodeType":"YulBlock","src":"17136:268:21","statements":[{"nativeSrc":"17174:43:21","nodeType":"YulVariableDeclaration","src":"17174:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17204:5:21","nodeType":"YulIdentifier","src":"17204:5:21"},{"kind":"number","nativeSrc":"17211:4:21","nodeType":"YulLiteral","src":"17211:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17200:3:21","nodeType":"YulIdentifier","src":"17200:3:21"},"nativeSrc":"17200:16:21","nodeType":"YulFunctionCall","src":"17200:16:21"}],"functionName":{"name":"mload","nativeSrc":"17194:5:21","nodeType":"YulIdentifier","src":"17194:5:21"},"nativeSrc":"17194:23:21","nodeType":"YulFunctionCall","src":"17194:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"17178:12:21","nodeType":"YulTypedName","src":"17178:12:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"17242:3:21","nodeType":"YulIdentifier","src":"17242:3:21"},{"kind":"number","nativeSrc":"17247:4:21","nodeType":"YulLiteral","src":"17247:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17238:3:21","nodeType":"YulIdentifier","src":"17238:3:21"},"nativeSrc":"17238:14:21","nodeType":"YulFunctionCall","src":"17238:14:21"},{"arguments":[{"name":"tail","nativeSrc":"17258:4:21","nodeType":"YulIdentifier","src":"17258:4:21"},{"name":"pos","nativeSrc":"17264:3:21","nodeType":"YulIdentifier","src":"17264:3:21"}],"functionName":{"name":"sub","nativeSrc":"17254:3:21","nodeType":"YulIdentifier","src":"17254:3:21"},"nativeSrc":"17254:14:21","nodeType":"YulFunctionCall","src":"17254:14:21"}],"functionName":{"name":"mstore","nativeSrc":"17231:6:21","nodeType":"YulIdentifier","src":"17231:6:21"},"nativeSrc":"17231:38:21","nodeType":"YulFunctionCall","src":"17231:38:21"},"nativeSrc":"17231:38:21","nodeType":"YulExpressionStatement","src":"17231:38:21"},{"nativeSrc":"17282:111:21","nodeType":"YulAssignment","src":"17282:111:21","value":{"arguments":[{"name":"memberValue0","nativeSrc":"17374:12:21","nodeType":"YulIdentifier","src":"17374:12:21"},{"name":"tail","nativeSrc":"17388:4:21","nodeType":"YulIdentifier","src":"17388:4:21"}],"functionName":{"name":"abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"17290:83:21","nodeType":"YulIdentifier","src":"17290:83:21"},"nativeSrc":"17290:103:21","nodeType":"YulFunctionCall","src":"17290:103:21"},"variableNames":[{"name":"tail","nativeSrc":"17282:4:21","nodeType":"YulIdentifier","src":"17282:4:21"}]}]},{"nativeSrc":"17414:178:21","nodeType":"YulBlock","src":"17414:178:21","statements":[{"nativeSrc":"17451:43:21","nodeType":"YulVariableDeclaration","src":"17451:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17481:5:21","nodeType":"YulIdentifier","src":"17481:5:21"},{"kind":"number","nativeSrc":"17488:4:21","nodeType":"YulLiteral","src":"17488:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"17477:3:21","nodeType":"YulIdentifier","src":"17477:3:21"},"nativeSrc":"17477:16:21","nodeType":"YulFunctionCall","src":"17477:16:21"}],"functionName":{"name":"mload","nativeSrc":"17471:5:21","nodeType":"YulIdentifier","src":"17471:5:21"},"nativeSrc":"17471:23:21","nodeType":"YulFunctionCall","src":"17471:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"17455:12:21","nodeType":"YulTypedName","src":"17455:12:21","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"17553:12:21","nodeType":"YulIdentifier","src":"17553:12:21"},{"arguments":[{"name":"pos","nativeSrc":"17571:3:21","nodeType":"YulIdentifier","src":"17571:3:21"},{"kind":"number","nativeSrc":"17576:4:21","nodeType":"YulLiteral","src":"17576:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"17567:3:21","nodeType":"YulIdentifier","src":"17567:3:21"},"nativeSrc":"17567:14:21","nodeType":"YulFunctionCall","src":"17567:14:21"}],"functionName":{"name":"abi_encode_t_enum$_CORSPreset_$972_to_t_uint8","nativeSrc":"17507:45:21","nodeType":"YulIdentifier","src":"17507:45:21"},"nativeSrc":"17507:75:21","nodeType":"YulFunctionCall","src":"17507:75:21"},"nativeSrc":"17507:75:21","nodeType":"YulExpressionStatement","src":"17507:75:21"}]},{"nativeSrc":"17602:237:21","nodeType":"YulBlock","src":"17602:237:21","statements":[{"nativeSrc":"17639:43:21","nodeType":"YulVariableDeclaration","src":"17639:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17669:5:21","nodeType":"YulIdentifier","src":"17669:5:21"},{"kind":"number","nativeSrc":"17676:4:21","nodeType":"YulLiteral","src":"17676:4:21","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"17665:3:21","nodeType":"YulIdentifier","src":"17665:3:21"},"nativeSrc":"17665:16:21","nodeType":"YulFunctionCall","src":"17665:16:21"}],"functionName":{"name":"mload","nativeSrc":"17659:5:21","nodeType":"YulIdentifier","src":"17659:5:21"},"nativeSrc":"17659:23:21","nodeType":"YulFunctionCall","src":"17659:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"17643:12:21","nodeType":"YulTypedName","src":"17643:12:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"17707:3:21","nodeType":"YulIdentifier","src":"17707:3:21"},{"kind":"number","nativeSrc":"17712:4:21","nodeType":"YulLiteral","src":"17712:4:21","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"17703:3:21","nodeType":"YulIdentifier","src":"17703:3:21"},"nativeSrc":"17703:14:21","nodeType":"YulFunctionCall","src":"17703:14:21"},{"arguments":[{"name":"tail","nativeSrc":"17723:4:21","nodeType":"YulIdentifier","src":"17723:4:21"},{"name":"pos","nativeSrc":"17729:3:21","nodeType":"YulIdentifier","src":"17729:3:21"}],"functionName":{"name":"sub","nativeSrc":"17719:3:21","nodeType":"YulIdentifier","src":"17719:3:21"},"nativeSrc":"17719:14:21","nodeType":"YulFunctionCall","src":"17719:14:21"}],"functionName":{"name":"mstore","nativeSrc":"17696:6:21","nodeType":"YulIdentifier","src":"17696:6:21"},"nativeSrc":"17696:38:21","nodeType":"YulFunctionCall","src":"17696:38:21"},"nativeSrc":"17696:38:21","nodeType":"YulExpressionStatement","src":"17696:38:21"},{"nativeSrc":"17747:81:21","nodeType":"YulAssignment","src":"17747:81:21","value":{"arguments":[{"name":"memberValue0","nativeSrc":"17809:12:21","nodeType":"YulIdentifier","src":"17809:12:21"},{"name":"tail","nativeSrc":"17823:4:21","nodeType":"YulIdentifier","src":"17823:4:21"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr","nativeSrc":"17755:53:21","nodeType":"YulIdentifier","src":"17755:53:21"},"nativeSrc":"17755:73:21","nodeType":"YulFunctionCall","src":"17755:73:21"},"variableNames":[{"name":"tail","nativeSrc":"17747:4:21","nodeType":"YulIdentifier","src":"17747:4:21"}]}]},{"nativeSrc":"17849:11:21","nodeType":"YulAssignment","src":"17849:11:21","value":{"name":"tail","nativeSrc":"17856:4:21","nodeType":"YulIdentifier","src":"17856:4:21"},"variableNames":[{"name":"end","nativeSrc":"17849:3:21","nodeType":"YulIdentifier","src":"17849:3:21"}]}]},"name":"abi_encode_t_struct$_CORSPolicy_$1000_memory_ptr_to_t_struct$_CORSPolicy_$1000_memory_ptr","nativeSrc":"16795:1071:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16894:5:21","nodeType":"YulTypedName","src":"16894:5:21","type":""},{"name":"pos","nativeSrc":"16901:3:21","nodeType":"YulTypedName","src":"16901:3:21","type":""}],"returnVariables":[{"name":"end","nativeSrc":"16910:3:21","nodeType":"YulTypedName","src":"16910:3:21","type":""}],"src":"16795:1071:21"},{"body":{"nativeSrc":"18030:484:21","nodeType":"YulBlock","src":"18030:484:21","statements":[{"nativeSrc":"18040:26:21","nodeType":"YulVariableDeclaration","src":"18040:26:21","value":{"arguments":[{"name":"pos","nativeSrc":"18056:3:21","nodeType":"YulIdentifier","src":"18056:3:21"},{"kind":"number","nativeSrc":"18061:4:21","nodeType":"YulLiteral","src":"18061:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"18052:3:21","nodeType":"YulIdentifier","src":"18052:3:21"},"nativeSrc":"18052:14:21","nodeType":"YulFunctionCall","src":"18052:14:21"},"variables":[{"name":"tail","nativeSrc":"18044:4:21","nodeType":"YulTypedName","src":"18044:4:21","type":""}]},{"nativeSrc":"18076:162:21","nodeType":"YulBlock","src":"18076:162:21","statements":[{"nativeSrc":"18111:43:21","nodeType":"YulVariableDeclaration","src":"18111:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18141:5:21","nodeType":"YulIdentifier","src":"18141:5:21"},{"kind":"number","nativeSrc":"18148:4:21","nodeType":"YulLiteral","src":"18148:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"18137:3:21","nodeType":"YulIdentifier","src":"18137:3:21"},"nativeSrc":"18137:16:21","nodeType":"YulFunctionCall","src":"18137:16:21"}],"functionName":{"name":"mload","nativeSrc":"18131:5:21","nodeType":"YulIdentifier","src":"18131:5:21"},"nativeSrc":"18131:23:21","nodeType":"YulFunctionCall","src":"18131:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"18115:12:21","nodeType":"YulTypedName","src":"18115:12:21","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"18199:12:21","nodeType":"YulIdentifier","src":"18199:12:21"},{"arguments":[{"name":"pos","nativeSrc":"18217:3:21","nodeType":"YulIdentifier","src":"18217:3:21"},{"kind":"number","nativeSrc":"18222:4:21","nodeType":"YulLiteral","src":"18222:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"18213:3:21","nodeType":"YulIdentifier","src":"18213:3:21"},"nativeSrc":"18213:14:21","nodeType":"YulFunctionCall","src":"18213:14:21"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16","nativeSrc":"18167:31:21","nodeType":"YulIdentifier","src":"18167:31:21"},"nativeSrc":"18167:61:21","nodeType":"YulFunctionCall","src":"18167:61:21"},"nativeSrc":"18167:61:21","nodeType":"YulExpressionStatement","src":"18167:61:21"}]},{"nativeSrc":"18248:239:21","nodeType":"YulBlock","src":"18248:239:21","statements":[{"nativeSrc":"18287:43:21","nodeType":"YulVariableDeclaration","src":"18287:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18317:5:21","nodeType":"YulIdentifier","src":"18317:5:21"},{"kind":"number","nativeSrc":"18324:4:21","nodeType":"YulLiteral","src":"18324:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18313:3:21","nodeType":"YulIdentifier","src":"18313:3:21"},"nativeSrc":"18313:16:21","nodeType":"YulFunctionCall","src":"18313:16:21"}],"functionName":{"name":"mload","nativeSrc":"18307:5:21","nodeType":"YulIdentifier","src":"18307:5:21"},"nativeSrc":"18307:23:21","nodeType":"YulFunctionCall","src":"18307:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"18291:12:21","nodeType":"YulTypedName","src":"18291:12:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"18355:3:21","nodeType":"YulIdentifier","src":"18355:3:21"},{"kind":"number","nativeSrc":"18360:4:21","nodeType":"YulLiteral","src":"18360:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18351:3:21","nodeType":"YulIdentifier","src":"18351:3:21"},"nativeSrc":"18351:14:21","nodeType":"YulFunctionCall","src":"18351:14:21"},{"arguments":[{"name":"tail","nativeSrc":"18371:4:21","nodeType":"YulIdentifier","src":"18371:4:21"},{"name":"pos","nativeSrc":"18377:3:21","nodeType":"YulIdentifier","src":"18377:3:21"}],"functionName":{"name":"sub","nativeSrc":"18367:3:21","nodeType":"YulIdentifier","src":"18367:3:21"},"nativeSrc":"18367:14:21","nodeType":"YulFunctionCall","src":"18367:14:21"}],"functionName":{"name":"mstore","nativeSrc":"18344:6:21","nodeType":"YulIdentifier","src":"18344:6:21"},"nativeSrc":"18344:38:21","nodeType":"YulFunctionCall","src":"18344:38:21"},"nativeSrc":"18344:38:21","nodeType":"YulExpressionStatement","src":"18344:38:21"},{"nativeSrc":"18395:81:21","nodeType":"YulAssignment","src":"18395:81:21","value":{"arguments":[{"name":"memberValue0","nativeSrc":"18457:12:21","nodeType":"YulIdentifier","src":"18457:12:21"},{"name":"tail","nativeSrc":"18471:4:21","nodeType":"YulIdentifier","src":"18471:4:21"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr","nativeSrc":"18403:53:21","nodeType":"YulIdentifier","src":"18403:53:21"},"nativeSrc":"18403:73:21","nodeType":"YulFunctionCall","src":"18403:73:21"},"variableNames":[{"name":"tail","nativeSrc":"18395:4:21","nodeType":"YulIdentifier","src":"18395:4:21"}]}]},{"nativeSrc":"18497:11:21","nodeType":"YulAssignment","src":"18497:11:21","value":{"name":"tail","nativeSrc":"18504:4:21","nodeType":"YulIdentifier","src":"18504:4:21"},"variableNames":[{"name":"end","nativeSrc":"18497:3:21","nodeType":"YulIdentifier","src":"18497:3:21"}]}]},"name":"abi_encode_t_struct$_Redirect_$1008_memory_ptr_to_t_struct$_Redirect_$1008_memory_ptr","nativeSrc":"17914:600:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"18009:5:21","nodeType":"YulTypedName","src":"18009:5:21","type":""},{"name":"pos","nativeSrc":"18016:3:21","nodeType":"YulTypedName","src":"18016:3:21","type":""}],"returnVariables":[{"name":"end","nativeSrc":"18025:3:21","nodeType":"YulTypedName","src":"18025:3:21","type":""}],"src":"17914:600:21"},{"body":{"nativeSrc":"18696:909:21","nodeType":"YulBlock","src":"18696:909:21","statements":[{"nativeSrc":"18706:26:21","nodeType":"YulVariableDeclaration","src":"18706:26:21","value":{"arguments":[{"name":"pos","nativeSrc":"18722:3:21","nodeType":"YulIdentifier","src":"18722:3:21"},{"kind":"number","nativeSrc":"18727:4:21","nodeType":"YulLiteral","src":"18727:4:21","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"18718:3:21","nodeType":"YulIdentifier","src":"18718:3:21"},"nativeSrc":"18718:14:21","nodeType":"YulFunctionCall","src":"18718:14:21"},"variables":[{"name":"tail","nativeSrc":"18710:4:21","nodeType":"YulTypedName","src":"18710:4:21","type":""}]},{"nativeSrc":"18742:274:21","nodeType":"YulBlock","src":"18742:274:21","statements":[{"nativeSrc":"18778:43:21","nodeType":"YulVariableDeclaration","src":"18778:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18808:5:21","nodeType":"YulIdentifier","src":"18808:5:21"},{"kind":"number","nativeSrc":"18815:4:21","nodeType":"YulLiteral","src":"18815:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"18804:3:21","nodeType":"YulIdentifier","src":"18804:3:21"},"nativeSrc":"18804:16:21","nodeType":"YulFunctionCall","src":"18804:16:21"}],"functionName":{"name":"mload","nativeSrc":"18798:5:21","nodeType":"YulIdentifier","src":"18798:5:21"},"nativeSrc":"18798:23:21","nodeType":"YulFunctionCall","src":"18798:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"18782:12:21","nodeType":"YulTypedName","src":"18782:12:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"18846:3:21","nodeType":"YulIdentifier","src":"18846:3:21"},{"kind":"number","nativeSrc":"18851:4:21","nodeType":"YulLiteral","src":"18851:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"18842:3:21","nodeType":"YulIdentifier","src":"18842:3:21"},"nativeSrc":"18842:14:21","nodeType":"YulFunctionCall","src":"18842:14:21"},{"arguments":[{"name":"tail","nativeSrc":"18862:4:21","nodeType":"YulIdentifier","src":"18862:4:21"},{"name":"pos","nativeSrc":"18868:3:21","nodeType":"YulIdentifier","src":"18868:3:21"}],"functionName":{"name":"sub","nativeSrc":"18858:3:21","nodeType":"YulIdentifier","src":"18858:3:21"},"nativeSrc":"18858:14:21","nodeType":"YulFunctionCall","src":"18858:14:21"}],"functionName":{"name":"mstore","nativeSrc":"18835:6:21","nodeType":"YulIdentifier","src":"18835:6:21"},"nativeSrc":"18835:38:21","nodeType":"YulFunctionCall","src":"18835:38:21"},"nativeSrc":"18835:38:21","nodeType":"YulExpressionStatement","src":"18835:38:21"},{"nativeSrc":"18886:119:21","nodeType":"YulAssignment","src":"18886:119:21","value":{"arguments":[{"name":"memberValue0","nativeSrc":"18986:12:21","nodeType":"YulIdentifier","src":"18986:12:21"},{"name":"tail","nativeSrc":"19000:4:21","nodeType":"YulIdentifier","src":"19000:4:21"}],"functionName":{"name":"abi_encode_t_struct$_CacheControl_$984_memory_ptr_to_t_struct$_CacheControl_$984_memory_ptr","nativeSrc":"18894:91:21","nodeType":"YulIdentifier","src":"18894:91:21"},"nativeSrc":"18894:111:21","nodeType":"YulFunctionCall","src":"18894:111:21"},"variableNames":[{"name":"tail","nativeSrc":"18886:4:21","nodeType":"YulIdentifier","src":"18886:4:21"}]}]},{"nativeSrc":"19026:271:21","nodeType":"YulBlock","src":"19026:271:21","statements":[{"nativeSrc":"19061:43:21","nodeType":"YulVariableDeclaration","src":"19061:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"19091:5:21","nodeType":"YulIdentifier","src":"19091:5:21"},{"kind":"number","nativeSrc":"19098:4:21","nodeType":"YulLiteral","src":"19098:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19087:3:21","nodeType":"YulIdentifier","src":"19087:3:21"},"nativeSrc":"19087:16:21","nodeType":"YulFunctionCall","src":"19087:16:21"}],"functionName":{"name":"mload","nativeSrc":"19081:5:21","nodeType":"YulIdentifier","src":"19081:5:21"},"nativeSrc":"19081:23:21","nodeType":"YulFunctionCall","src":"19081:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"19065:12:21","nodeType":"YulTypedName","src":"19065:12:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"19129:3:21","nodeType":"YulIdentifier","src":"19129:3:21"},{"kind":"number","nativeSrc":"19134:4:21","nodeType":"YulLiteral","src":"19134:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19125:3:21","nodeType":"YulIdentifier","src":"19125:3:21"},"nativeSrc":"19125:14:21","nodeType":"YulFunctionCall","src":"19125:14:21"},{"arguments":[{"name":"tail","nativeSrc":"19145:4:21","nodeType":"YulIdentifier","src":"19145:4:21"},{"name":"pos","nativeSrc":"19151:3:21","nodeType":"YulIdentifier","src":"19151:3:21"}],"functionName":{"name":"sub","nativeSrc":"19141:3:21","nodeType":"YulIdentifier","src":"19141:3:21"},"nativeSrc":"19141:14:21","nodeType":"YulFunctionCall","src":"19141:14:21"}],"functionName":{"name":"mstore","nativeSrc":"19118:6:21","nodeType":"YulIdentifier","src":"19118:6:21"},"nativeSrc":"19118:38:21","nodeType":"YulFunctionCall","src":"19118:38:21"},"nativeSrc":"19118:38:21","nodeType":"YulExpressionStatement","src":"19118:38:21"},{"nativeSrc":"19169:117:21","nodeType":"YulAssignment","src":"19169:117:21","value":{"arguments":[{"name":"memberValue0","nativeSrc":"19267:12:21","nodeType":"YulIdentifier","src":"19267:12:21"},{"name":"tail","nativeSrc":"19281:4:21","nodeType":"YulIdentifier","src":"19281:4:21"}],"functionName":{"name":"abi_encode_t_struct$_CORSPolicy_$1000_memory_ptr_to_t_struct$_CORSPolicy_$1000_memory_ptr","nativeSrc":"19177:89:21","nodeType":"YulIdentifier","src":"19177:89:21"},"nativeSrc":"19177:109:21","nodeType":"YulFunctionCall","src":"19177:109:21"},"variableNames":[{"name":"tail","nativeSrc":"19169:4:21","nodeType":"YulIdentifier","src":"19169:4:21"}]}]},{"nativeSrc":"19307:271:21","nodeType":"YulBlock","src":"19307:271:21","statements":[{"nativeSrc":"19346:43:21","nodeType":"YulVariableDeclaration","src":"19346:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"19376:5:21","nodeType":"YulIdentifier","src":"19376:5:21"},{"kind":"number","nativeSrc":"19383:4:21","nodeType":"YulLiteral","src":"19383:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"19372:3:21","nodeType":"YulIdentifier","src":"19372:3:21"},"nativeSrc":"19372:16:21","nodeType":"YulFunctionCall","src":"19372:16:21"}],"functionName":{"name":"mload","nativeSrc":"19366:5:21","nodeType":"YulIdentifier","src":"19366:5:21"},"nativeSrc":"19366:23:21","nodeType":"YulFunctionCall","src":"19366:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"19350:12:21","nodeType":"YulTypedName","src":"19350:12:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"19414:3:21","nodeType":"YulIdentifier","src":"19414:3:21"},{"kind":"number","nativeSrc":"19419:4:21","nodeType":"YulLiteral","src":"19419:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"19410:3:21","nodeType":"YulIdentifier","src":"19410:3:21"},"nativeSrc":"19410:14:21","nodeType":"YulFunctionCall","src":"19410:14:21"},{"arguments":[{"name":"tail","nativeSrc":"19430:4:21","nodeType":"YulIdentifier","src":"19430:4:21"},{"name":"pos","nativeSrc":"19436:3:21","nodeType":"YulIdentifier","src":"19436:3:21"}],"functionName":{"name":"sub","nativeSrc":"19426:3:21","nodeType":"YulIdentifier","src":"19426:3:21"},"nativeSrc":"19426:14:21","nodeType":"YulFunctionCall","src":"19426:14:21"}],"functionName":{"name":"mstore","nativeSrc":"19403:6:21","nodeType":"YulIdentifier","src":"19403:6:21"},"nativeSrc":"19403:38:21","nodeType":"YulFunctionCall","src":"19403:38:21"},"nativeSrc":"19403:38:21","nodeType":"YulExpressionStatement","src":"19403:38:21"},{"nativeSrc":"19454:113:21","nodeType":"YulAssignment","src":"19454:113:21","value":{"arguments":[{"name":"memberValue0","nativeSrc":"19548:12:21","nodeType":"YulIdentifier","src":"19548:12:21"},{"name":"tail","nativeSrc":"19562:4:21","nodeType":"YulIdentifier","src":"19562:4:21"}],"functionName":{"name":"abi_encode_t_struct$_Redirect_$1008_memory_ptr_to_t_struct$_Redirect_$1008_memory_ptr","nativeSrc":"19462:85:21","nodeType":"YulIdentifier","src":"19462:85:21"},"nativeSrc":"19462:105:21","nodeType":"YulFunctionCall","src":"19462:105:21"},"variableNames":[{"name":"tail","nativeSrc":"19454:4:21","nodeType":"YulIdentifier","src":"19454:4:21"}]}]},{"nativeSrc":"19588:11:21","nodeType":"YulAssignment","src":"19588:11:21","value":{"name":"tail","nativeSrc":"19595:4:21","nodeType":"YulIdentifier","src":"19595:4:21"},"variableNames":[{"name":"end","nativeSrc":"19588:3:21","nodeType":"YulIdentifier","src":"19588:3:21"}]}]},"name":"abi_encode_t_struct$_HeaderInfo_$1022_memory_ptr_to_t_struct$_HeaderInfo_$1022_memory_ptr_fromStack","nativeSrc":"18566:1039:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"18675:5:21","nodeType":"YulTypedName","src":"18675:5:21","type":""},{"name":"pos","nativeSrc":"18682:3:21","nodeType":"YulTypedName","src":"18682:3:21","type":""}],"returnVariables":[{"name":"end","nativeSrc":"18691:3:21","nodeType":"YulTypedName","src":"18691:3:21","type":""}],"src":"18566:1039:21"},{"body":{"nativeSrc":"19765:231:21","nodeType":"YulBlock","src":"19765:231:21","statements":[{"nativeSrc":"19775:26:21","nodeType":"YulAssignment","src":"19775:26:21","value":{"arguments":[{"name":"headStart","nativeSrc":"19787:9:21","nodeType":"YulIdentifier","src":"19787:9:21"},{"kind":"number","nativeSrc":"19798:2:21","nodeType":"YulLiteral","src":"19798:2:21","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"19783:3:21","nodeType":"YulIdentifier","src":"19783:3:21"},"nativeSrc":"19783:18:21","nodeType":"YulFunctionCall","src":"19783:18:21"},"variableNames":[{"name":"tail","nativeSrc":"19775:4:21","nodeType":"YulIdentifier","src":"19775:4:21"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"19822:9:21","nodeType":"YulIdentifier","src":"19822:9:21"},{"kind":"number","nativeSrc":"19833:1:21","nodeType":"YulLiteral","src":"19833:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"19818:3:21","nodeType":"YulIdentifier","src":"19818:3:21"},"nativeSrc":"19818:17:21","nodeType":"YulFunctionCall","src":"19818:17:21"},{"arguments":[{"name":"tail","nativeSrc":"19841:4:21","nodeType":"YulIdentifier","src":"19841:4:21"},{"name":"headStart","nativeSrc":"19847:9:21","nodeType":"YulIdentifier","src":"19847:9:21"}],"functionName":{"name":"sub","nativeSrc":"19837:3:21","nodeType":"YulIdentifier","src":"19837:3:21"},"nativeSrc":"19837:20:21","nodeType":"YulFunctionCall","src":"19837:20:21"}],"functionName":{"name":"mstore","nativeSrc":"19811:6:21","nodeType":"YulIdentifier","src":"19811:6:21"},"nativeSrc":"19811:47:21","nodeType":"YulFunctionCall","src":"19811:47:21"},"nativeSrc":"19811:47:21","nodeType":"YulExpressionStatement","src":"19811:47:21"},{"nativeSrc":"19867:122:21","nodeType":"YulAssignment","src":"19867:122:21","value":{"arguments":[{"name":"value0","nativeSrc":"19975:6:21","nodeType":"YulIdentifier","src":"19975:6:21"},{"name":"tail","nativeSrc":"19984:4:21","nodeType":"YulIdentifier","src":"19984:4:21"}],"functionName":{"name":"abi_encode_t_struct$_HeaderInfo_$1022_memory_ptr_to_t_struct$_HeaderInfo_$1022_memory_ptr_fromStack","nativeSrc":"19875:99:21","nodeType":"YulIdentifier","src":"19875:99:21"},"nativeSrc":"19875:114:21","nodeType":"YulFunctionCall","src":"19875:114:21"},"variableNames":[{"name":"tail","nativeSrc":"19867:4:21","nodeType":"YulIdentifier","src":"19867:4:21"}]}]},"name":"abi_encode_tuple_t_struct$_HeaderInfo_$1022_memory_ptr__to_t_struct$_HeaderInfo_$1022_memory_ptr__fromStack_reversed","nativeSrc":"19611:385:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"19737:9:21","nodeType":"YulTypedName","src":"19737:9:21","type":""},{"name":"value0","nativeSrc":"19749:6:21","nodeType":"YulTypedName","src":"19749:6:21","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"19760:4:21","nodeType":"YulTypedName","src":"19760:4:21","type":""}],"src":"19611:385:21"},{"body":{"nativeSrc":"20030:152:21","nodeType":"YulBlock","src":"20030:152:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20047:1:21","nodeType":"YulLiteral","src":"20047:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"20050:77:21","nodeType":"YulLiteral","src":"20050:77:21","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"20040:6:21","nodeType":"YulIdentifier","src":"20040:6:21"},"nativeSrc":"20040:88:21","nodeType":"YulFunctionCall","src":"20040:88:21"},"nativeSrc":"20040:88:21","nodeType":"YulExpressionStatement","src":"20040:88:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20144:1:21","nodeType":"YulLiteral","src":"20144:1:21","type":"","value":"4"},{"kind":"number","nativeSrc":"20147:4:21","nodeType":"YulLiteral","src":"20147:4:21","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"20137:6:21","nodeType":"YulIdentifier","src":"20137:6:21"},"nativeSrc":"20137:15:21","nodeType":"YulFunctionCall","src":"20137:15:21"},"nativeSrc":"20137:15:21","nodeType":"YulExpressionStatement","src":"20137:15:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20168:1:21","nodeType":"YulLiteral","src":"20168:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"20171:4:21","nodeType":"YulLiteral","src":"20171:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"20161:6:21","nodeType":"YulIdentifier","src":"20161:6:21"},"nativeSrc":"20161:15:21","nodeType":"YulFunctionCall","src":"20161:15:21"},"nativeSrc":"20161:15:21","nodeType":"YulExpressionStatement","src":"20161:15:21"}]},"name":"panic_error_0x22","nativeSrc":"20002:180:21","nodeType":"YulFunctionDefinition","src":"20002:180:21"},{"body":{"nativeSrc":"20239:269:21","nodeType":"YulBlock","src":"20239:269:21","statements":[{"nativeSrc":"20249:22:21","nodeType":"YulAssignment","src":"20249:22:21","value":{"arguments":[{"name":"data","nativeSrc":"20263:4:21","nodeType":"YulIdentifier","src":"20263:4:21"},{"kind":"number","nativeSrc":"20269:1:21","nodeType":"YulLiteral","src":"20269:1:21","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"20259:3:21","nodeType":"YulIdentifier","src":"20259:3:21"},"nativeSrc":"20259:12:21","nodeType":"YulFunctionCall","src":"20259:12:21"},"variableNames":[{"name":"length","nativeSrc":"20249:6:21","nodeType":"YulIdentifier","src":"20249:6:21"}]},{"nativeSrc":"20280:38:21","nodeType":"YulVariableDeclaration","src":"20280:38:21","value":{"arguments":[{"name":"data","nativeSrc":"20310:4:21","nodeType":"YulIdentifier","src":"20310:4:21"},{"kind":"number","nativeSrc":"20316:1:21","nodeType":"YulLiteral","src":"20316:1:21","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"20306:3:21","nodeType":"YulIdentifier","src":"20306:3:21"},"nativeSrc":"20306:12:21","nodeType":"YulFunctionCall","src":"20306:12:21"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"20284:18:21","nodeType":"YulTypedName","src":"20284:18:21","type":""}]},{"body":{"nativeSrc":"20357:51:21","nodeType":"YulBlock","src":"20357:51:21","statements":[{"nativeSrc":"20371:27:21","nodeType":"YulAssignment","src":"20371:27:21","value":{"arguments":[{"name":"length","nativeSrc":"20385:6:21","nodeType":"YulIdentifier","src":"20385:6:21"},{"kind":"number","nativeSrc":"20393:4:21","nodeType":"YulLiteral","src":"20393:4:21","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"20381:3:21","nodeType":"YulIdentifier","src":"20381:3:21"},"nativeSrc":"20381:17:21","nodeType":"YulFunctionCall","src":"20381:17:21"},"variableNames":[{"name":"length","nativeSrc":"20371:6:21","nodeType":"YulIdentifier","src":"20371:6:21"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"20337:18:21","nodeType":"YulIdentifier","src":"20337:18:21"}],"functionName":{"name":"iszero","nativeSrc":"20330:6:21","nodeType":"YulIdentifier","src":"20330:6:21"},"nativeSrc":"20330:26:21","nodeType":"YulFunctionCall","src":"20330:26:21"},"nativeSrc":"20327:81:21","nodeType":"YulIf","src":"20327:81:21"},{"body":{"nativeSrc":"20460:42:21","nodeType":"YulBlock","src":"20460:42:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"20474:16:21","nodeType":"YulIdentifier","src":"20474:16:21"},"nativeSrc":"20474:18:21","nodeType":"YulFunctionCall","src":"20474:18:21"},"nativeSrc":"20474:18:21","nodeType":"YulExpressionStatement","src":"20474:18:21"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"20424:18:21","nodeType":"YulIdentifier","src":"20424:18:21"},{"arguments":[{"name":"length","nativeSrc":"20447:6:21","nodeType":"YulIdentifier","src":"20447:6:21"},{"kind":"number","nativeSrc":"20455:2:21","nodeType":"YulLiteral","src":"20455:2:21","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"20444:2:21","nodeType":"YulIdentifier","src":"20444:2:21"},"nativeSrc":"20444:14:21","nodeType":"YulFunctionCall","src":"20444:14:21"}],"functionName":{"name":"eq","nativeSrc":"20421:2:21","nodeType":"YulIdentifier","src":"20421:2:21"},"nativeSrc":"20421:38:21","nodeType":"YulFunctionCall","src":"20421:38:21"},"nativeSrc":"20418:84:21","nodeType":"YulIf","src":"20418:84:21"}]},"name":"extract_byte_array_length","nativeSrc":"20188:320:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"20223:4:21","nodeType":"YulTypedName","src":"20223:4:21","type":""}],"returnVariables":[{"name":"length","nativeSrc":"20232:6:21","nodeType":"YulTypedName","src":"20232:6:21","type":""}],"src":"20188:320:21"},{"body":{"nativeSrc":"20568:87:21","nodeType":"YulBlock","src":"20568:87:21","statements":[{"nativeSrc":"20578:11:21","nodeType":"YulAssignment","src":"20578:11:21","value":{"name":"ptr","nativeSrc":"20586:3:21","nodeType":"YulIdentifier","src":"20586:3:21"},"variableNames":[{"name":"data","nativeSrc":"20578:4:21","nodeType":"YulIdentifier","src":"20578:4:21"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20606:1:21","nodeType":"YulLiteral","src":"20606:1:21","type":"","value":"0"},{"name":"ptr","nativeSrc":"20609:3:21","nodeType":"YulIdentifier","src":"20609:3:21"}],"functionName":{"name":"mstore","nativeSrc":"20599:6:21","nodeType":"YulIdentifier","src":"20599:6:21"},"nativeSrc":"20599:14:21","nodeType":"YulFunctionCall","src":"20599:14:21"},"nativeSrc":"20599:14:21","nodeType":"YulExpressionStatement","src":"20599:14:21"},{"nativeSrc":"20622:26:21","nodeType":"YulAssignment","src":"20622:26:21","value":{"arguments":[{"kind":"number","nativeSrc":"20640:1:21","nodeType":"YulLiteral","src":"20640:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"20643:4:21","nodeType":"YulLiteral","src":"20643:4:21","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"20630:9:21","nodeType":"YulIdentifier","src":"20630:9:21"},"nativeSrc":"20630:18:21","nodeType":"YulFunctionCall","src":"20630:18:21"},"variableNames":[{"name":"data","nativeSrc":"20622:4:21","nodeType":"YulIdentifier","src":"20622:4:21"}]}]},"name":"array_dataslot_t_string_storage","nativeSrc":"20514:141:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"20555:3:21","nodeType":"YulTypedName","src":"20555:3:21","type":""}],"returnVariables":[{"name":"data","nativeSrc":"20563:4:21","nodeType":"YulTypedName","src":"20563:4:21","type":""}],"src":"20514:141:21"},{"body":{"nativeSrc":"20705:49:21","nodeType":"YulBlock","src":"20705:49:21","statements":[{"nativeSrc":"20715:33:21","nodeType":"YulAssignment","src":"20715:33:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"20733:5:21","nodeType":"YulIdentifier","src":"20733:5:21"},{"kind":"number","nativeSrc":"20740:2:21","nodeType":"YulLiteral","src":"20740:2:21","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"20729:3:21","nodeType":"YulIdentifier","src":"20729:3:21"},"nativeSrc":"20729:14:21","nodeType":"YulFunctionCall","src":"20729:14:21"},{"kind":"number","nativeSrc":"20745:2:21","nodeType":"YulLiteral","src":"20745:2:21","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"20725:3:21","nodeType":"YulIdentifier","src":"20725:3:21"},"nativeSrc":"20725:23:21","nodeType":"YulFunctionCall","src":"20725:23:21"},"variableNames":[{"name":"result","nativeSrc":"20715:6:21","nodeType":"YulIdentifier","src":"20715:6:21"}]}]},"name":"divide_by_32_ceil","nativeSrc":"20661:93:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"20688:5:21","nodeType":"YulTypedName","src":"20688:5:21","type":""}],"returnVariables":[{"name":"result","nativeSrc":"20698:6:21","nodeType":"YulTypedName","src":"20698:6:21","type":""}],"src":"20661:93:21"},{"body":{"nativeSrc":"20813:54:21","nodeType":"YulBlock","src":"20813:54:21","statements":[{"nativeSrc":"20823:37:21","nodeType":"YulAssignment","src":"20823:37:21","value":{"arguments":[{"name":"bits","nativeSrc":"20848:4:21","nodeType":"YulIdentifier","src":"20848:4:21"},{"name":"value","nativeSrc":"20854:5:21","nodeType":"YulIdentifier","src":"20854:5:21"}],"functionName":{"name":"shl","nativeSrc":"20844:3:21","nodeType":"YulIdentifier","src":"20844:3:21"},"nativeSrc":"20844:16:21","nodeType":"YulFunctionCall","src":"20844:16:21"},"variableNames":[{"name":"newValue","nativeSrc":"20823:8:21","nodeType":"YulIdentifier","src":"20823:8:21"}]}]},"name":"shift_left_dynamic","nativeSrc":"20760:107:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"20788:4:21","nodeType":"YulTypedName","src":"20788:4:21","type":""},{"name":"value","nativeSrc":"20794:5:21","nodeType":"YulTypedName","src":"20794:5:21","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"20804:8:21","nodeType":"YulTypedName","src":"20804:8:21","type":""}],"src":"20760:107:21"},{"body":{"nativeSrc":"20949:317:21","nodeType":"YulBlock","src":"20949:317:21","statements":[{"nativeSrc":"20959:35:21","nodeType":"YulVariableDeclaration","src":"20959:35:21","value":{"arguments":[{"name":"shiftBytes","nativeSrc":"20980:10:21","nodeType":"YulIdentifier","src":"20980:10:21"},{"kind":"number","nativeSrc":"20992:1:21","nodeType":"YulLiteral","src":"20992:1:21","type":"","value":"8"}],"functionName":{"name":"mul","nativeSrc":"20976:3:21","nodeType":"YulIdentifier","src":"20976:3:21"},"nativeSrc":"20976:18:21","nodeType":"YulFunctionCall","src":"20976:18:21"},"variables":[{"name":"shiftBits","nativeSrc":"20963:9:21","nodeType":"YulTypedName","src":"20963:9:21","type":""}]},{"nativeSrc":"21003:109:21","nodeType":"YulVariableDeclaration","src":"21003:109:21","value":{"arguments":[{"name":"shiftBits","nativeSrc":"21034:9:21","nodeType":"YulIdentifier","src":"21034:9:21"},{"kind":"number","nativeSrc":"21045:66:21","nodeType":"YulLiteral","src":"21045:66:21","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"21015:18:21","nodeType":"YulIdentifier","src":"21015:18:21"},"nativeSrc":"21015:97:21","nodeType":"YulFunctionCall","src":"21015:97:21"},"variables":[{"name":"mask","nativeSrc":"21007:4:21","nodeType":"YulTypedName","src":"21007:4:21","type":""}]},{"nativeSrc":"21121:51:21","nodeType":"YulAssignment","src":"21121:51:21","value":{"arguments":[{"name":"shiftBits","nativeSrc":"21152:9:21","nodeType":"YulIdentifier","src":"21152:9:21"},{"name":"toInsert","nativeSrc":"21163:8:21","nodeType":"YulIdentifier","src":"21163:8:21"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"21133:18:21","nodeType":"YulIdentifier","src":"21133:18:21"},"nativeSrc":"21133:39:21","nodeType":"YulFunctionCall","src":"21133:39:21"},"variableNames":[{"name":"toInsert","nativeSrc":"21121:8:21","nodeType":"YulIdentifier","src":"21121:8:21"}]},{"nativeSrc":"21181:30:21","nodeType":"YulAssignment","src":"21181:30:21","value":{"arguments":[{"name":"value","nativeSrc":"21194:5:21","nodeType":"YulIdentifier","src":"21194:5:21"},{"arguments":[{"name":"mask","nativeSrc":"21205:4:21","nodeType":"YulIdentifier","src":"21205:4:21"}],"functionName":{"name":"not","nativeSrc":"21201:3:21","nodeType":"YulIdentifier","src":"21201:3:21"},"nativeSrc":"21201:9:21","nodeType":"YulFunctionCall","src":"21201:9:21"}],"functionName":{"name":"and","nativeSrc":"21190:3:21","nodeType":"YulIdentifier","src":"21190:3:21"},"nativeSrc":"21190:21:21","nodeType":"YulFunctionCall","src":"21190:21:21"},"variableNames":[{"name":"value","nativeSrc":"21181:5:21","nodeType":"YulIdentifier","src":"21181:5:21"}]},{"nativeSrc":"21220:40:21","nodeType":"YulAssignment","src":"21220:40:21","value":{"arguments":[{"name":"value","nativeSrc":"21233:5:21","nodeType":"YulIdentifier","src":"21233:5:21"},{"arguments":[{"name":"toInsert","nativeSrc":"21244:8:21","nodeType":"YulIdentifier","src":"21244:8:21"},{"name":"mask","nativeSrc":"21254:4:21","nodeType":"YulIdentifier","src":"21254:4:21"}],"functionName":{"name":"and","nativeSrc":"21240:3:21","nodeType":"YulIdentifier","src":"21240:3:21"},"nativeSrc":"21240:19:21","nodeType":"YulFunctionCall","src":"21240:19:21"}],"functionName":{"name":"or","nativeSrc":"21230:2:21","nodeType":"YulIdentifier","src":"21230:2:21"},"nativeSrc":"21230:30:21","nodeType":"YulFunctionCall","src":"21230:30:21"},"variableNames":[{"name":"result","nativeSrc":"21220:6:21","nodeType":"YulIdentifier","src":"21220:6:21"}]}]},"name":"update_byte_slice_dynamic32","nativeSrc":"20873:393:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"20910:5:21","nodeType":"YulTypedName","src":"20910:5:21","type":""},{"name":"shiftBytes","nativeSrc":"20917:10:21","nodeType":"YulTypedName","src":"20917:10:21","type":""},{"name":"toInsert","nativeSrc":"20929:8:21","nodeType":"YulTypedName","src":"20929:8:21","type":""}],"returnVariables":[{"name":"result","nativeSrc":"20942:6:21","nodeType":"YulTypedName","src":"20942:6:21","type":""}],"src":"20873:393:21"},{"body":{"nativeSrc":"21317:32:21","nodeType":"YulBlock","src":"21317:32:21","statements":[{"nativeSrc":"21327:16:21","nodeType":"YulAssignment","src":"21327:16:21","value":{"name":"value","nativeSrc":"21338:5:21","nodeType":"YulIdentifier","src":"21338:5:21"},"variableNames":[{"name":"cleaned","nativeSrc":"21327:7:21","nodeType":"YulIdentifier","src":"21327:7:21"}]}]},"name":"cleanup_t_uint256","nativeSrc":"21272:77:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"21299:5:21","nodeType":"YulTypedName","src":"21299:5:21","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"21309:7:21","nodeType":"YulTypedName","src":"21309:7:21","type":""}],"src":"21272:77:21"},{"body":{"nativeSrc":"21387:28:21","nodeType":"YulBlock","src":"21387:28:21","statements":[{"nativeSrc":"21397:12:21","nodeType":"YulAssignment","src":"21397:12:21","value":{"name":"value","nativeSrc":"21404:5:21","nodeType":"YulIdentifier","src":"21404:5:21"},"variableNames":[{"name":"ret","nativeSrc":"21397:3:21","nodeType":"YulIdentifier","src":"21397:3:21"}]}]},"name":"identity","nativeSrc":"21355:60:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"21373:5:21","nodeType":"YulTypedName","src":"21373:5:21","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"21383:3:21","nodeType":"YulTypedName","src":"21383:3:21","type":""}],"src":"21355:60:21"},{"body":{"nativeSrc":"21481:82:21","nodeType":"YulBlock","src":"21481:82:21","statements":[{"nativeSrc":"21491:66:21","nodeType":"YulAssignment","src":"21491:66:21","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"21549:5:21","nodeType":"YulIdentifier","src":"21549:5:21"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"21531:17:21","nodeType":"YulIdentifier","src":"21531:17:21"},"nativeSrc":"21531:24:21","nodeType":"YulFunctionCall","src":"21531:24:21"}],"functionName":{"name":"identity","nativeSrc":"21522:8:21","nodeType":"YulIdentifier","src":"21522:8:21"},"nativeSrc":"21522:34:21","nodeType":"YulFunctionCall","src":"21522:34:21"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"21504:17:21","nodeType":"YulIdentifier","src":"21504:17:21"},"nativeSrc":"21504:53:21","nodeType":"YulFunctionCall","src":"21504:53:21"},"variableNames":[{"name":"converted","nativeSrc":"21491:9:21","nodeType":"YulIdentifier","src":"21491:9:21"}]}]},"name":"convert_t_uint256_to_t_uint256","nativeSrc":"21421:142:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"21461:5:21","nodeType":"YulTypedName","src":"21461:5:21","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"21471:9:21","nodeType":"YulTypedName","src":"21471:9:21","type":""}],"src":"21421:142:21"},{"body":{"nativeSrc":"21616:28:21","nodeType":"YulBlock","src":"21616:28:21","statements":[{"nativeSrc":"21626:12:21","nodeType":"YulAssignment","src":"21626:12:21","value":{"name":"value","nativeSrc":"21633:5:21","nodeType":"YulIdentifier","src":"21633:5:21"},"variableNames":[{"name":"ret","nativeSrc":"21626:3:21","nodeType":"YulIdentifier","src":"21626:3:21"}]}]},"name":"prepare_store_t_uint256","nativeSrc":"21569:75:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"21602:5:21","nodeType":"YulTypedName","src":"21602:5:21","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"21612:3:21","nodeType":"YulTypedName","src":"21612:3:21","type":""}],"src":"21569:75:21"},{"body":{"nativeSrc":"21726:193:21","nodeType":"YulBlock","src":"21726:193:21","statements":[{"nativeSrc":"21736:63:21","nodeType":"YulVariableDeclaration","src":"21736:63:21","value":{"arguments":[{"name":"value_0","nativeSrc":"21791:7:21","nodeType":"YulIdentifier","src":"21791:7:21"}],"functionName":{"name":"convert_t_uint256_to_t_uint256","nativeSrc":"21760:30:21","nodeType":"YulIdentifier","src":"21760:30:21"},"nativeSrc":"21760:39:21","nodeType":"YulFunctionCall","src":"21760:39:21"},"variables":[{"name":"convertedValue_0","nativeSrc":"21740:16:21","nodeType":"YulTypedName","src":"21740:16:21","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"21815:4:21","nodeType":"YulIdentifier","src":"21815:4:21"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"21855:4:21","nodeType":"YulIdentifier","src":"21855:4:21"}],"functionName":{"name":"sload","nativeSrc":"21849:5:21","nodeType":"YulIdentifier","src":"21849:5:21"},"nativeSrc":"21849:11:21","nodeType":"YulFunctionCall","src":"21849:11:21"},{"name":"offset","nativeSrc":"21862:6:21","nodeType":"YulIdentifier","src":"21862:6:21"},{"arguments":[{"name":"convertedValue_0","nativeSrc":"21894:16:21","nodeType":"YulIdentifier","src":"21894:16:21"}],"functionName":{"name":"prepare_store_t_uint256","nativeSrc":"21870:23:21","nodeType":"YulIdentifier","src":"21870:23:21"},"nativeSrc":"21870:41:21","nodeType":"YulFunctionCall","src":"21870:41:21"}],"functionName":{"name":"update_byte_slice_dynamic32","nativeSrc":"21821:27:21","nodeType":"YulIdentifier","src":"21821:27:21"},"nativeSrc":"21821:91:21","nodeType":"YulFunctionCall","src":"21821:91:21"}],"functionName":{"name":"sstore","nativeSrc":"21808:6:21","nodeType":"YulIdentifier","src":"21808:6:21"},"nativeSrc":"21808:105:21","nodeType":"YulFunctionCall","src":"21808:105:21"},"nativeSrc":"21808:105:21","nodeType":"YulExpressionStatement","src":"21808:105:21"}]},"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"21650:269:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"21703:4:21","nodeType":"YulTypedName","src":"21703:4:21","type":""},{"name":"offset","nativeSrc":"21709:6:21","nodeType":"YulTypedName","src":"21709:6:21","type":""},{"name":"value_0","nativeSrc":"21717:7:21","nodeType":"YulTypedName","src":"21717:7:21","type":""}],"src":"21650:269:21"},{"body":{"nativeSrc":"21974:24:21","nodeType":"YulBlock","src":"21974:24:21","statements":[{"nativeSrc":"21984:8:21","nodeType":"YulAssignment","src":"21984:8:21","value":{"kind":"number","nativeSrc":"21991:1:21","nodeType":"YulLiteral","src":"21991:1:21","type":"","value":"0"},"variableNames":[{"name":"ret","nativeSrc":"21984:3:21","nodeType":"YulIdentifier","src":"21984:3:21"}]}]},"name":"zero_value_for_split_t_uint256","nativeSrc":"21925:73:21","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"ret","nativeSrc":"21970:3:21","nodeType":"YulTypedName","src":"21970:3:21","type":""}],"src":"21925:73:21"},{"body":{"nativeSrc":"22057:136:21","nodeType":"YulBlock","src":"22057:136:21","statements":[{"nativeSrc":"22067:46:21","nodeType":"YulVariableDeclaration","src":"22067:46:21","value":{"arguments":[],"functionName":{"name":"zero_value_for_split_t_uint256","nativeSrc":"22081:30:21","nodeType":"YulIdentifier","src":"22081:30:21"},"nativeSrc":"22081:32:21","nodeType":"YulFunctionCall","src":"22081:32:21"},"variables":[{"name":"zero_0","nativeSrc":"22071:6:21","nodeType":"YulTypedName","src":"22071:6:21","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"22166:4:21","nodeType":"YulIdentifier","src":"22166:4:21"},{"name":"offset","nativeSrc":"22172:6:21","nodeType":"YulIdentifier","src":"22172:6:21"},{"name":"zero_0","nativeSrc":"22180:6:21","nodeType":"YulIdentifier","src":"22180:6:21"}],"functionName":{"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"22122:43:21","nodeType":"YulIdentifier","src":"22122:43:21"},"nativeSrc":"22122:65:21","nodeType":"YulFunctionCall","src":"22122:65:21"},"nativeSrc":"22122:65:21","nodeType":"YulExpressionStatement","src":"22122:65:21"}]},"name":"storage_set_to_zero_t_uint256","nativeSrc":"22004:189:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"22043:4:21","nodeType":"YulTypedName","src":"22043:4:21","type":""},{"name":"offset","nativeSrc":"22049:6:21","nodeType":"YulTypedName","src":"22049:6:21","type":""}],"src":"22004:189:21"},{"body":{"nativeSrc":"22249:136:21","nodeType":"YulBlock","src":"22249:136:21","statements":[{"body":{"nativeSrc":"22316:63:21","nodeType":"YulBlock","src":"22316:63:21","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"22360:5:21","nodeType":"YulIdentifier","src":"22360:5:21"},{"kind":"number","nativeSrc":"22367:1:21","nodeType":"YulLiteral","src":"22367:1:21","type":"","value":"0"}],"functionName":{"name":"storage_set_to_zero_t_uint256","nativeSrc":"22330:29:21","nodeType":"YulIdentifier","src":"22330:29:21"},"nativeSrc":"22330:39:21","nodeType":"YulFunctionCall","src":"22330:39:21"},"nativeSrc":"22330:39:21","nodeType":"YulExpressionStatement","src":"22330:39:21"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"22269:5:21","nodeType":"YulIdentifier","src":"22269:5:21"},{"name":"end","nativeSrc":"22276:3:21","nodeType":"YulIdentifier","src":"22276:3:21"}],"functionName":{"name":"lt","nativeSrc":"22266:2:21","nodeType":"YulIdentifier","src":"22266:2:21"},"nativeSrc":"22266:14:21","nodeType":"YulFunctionCall","src":"22266:14:21"},"nativeSrc":"22259:120:21","nodeType":"YulForLoop","post":{"nativeSrc":"22281:26:21","nodeType":"YulBlock","src":"22281:26:21","statements":[{"nativeSrc":"22283:22:21","nodeType":"YulAssignment","src":"22283:22:21","value":{"arguments":[{"name":"start","nativeSrc":"22296:5:21","nodeType":"YulIdentifier","src":"22296:5:21"},{"kind":"number","nativeSrc":"22303:1:21","nodeType":"YulLiteral","src":"22303:1:21","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"22292:3:21","nodeType":"YulIdentifier","src":"22292:3:21"},"nativeSrc":"22292:13:21","nodeType":"YulFunctionCall","src":"22292:13:21"},"variableNames":[{"name":"start","nativeSrc":"22283:5:21","nodeType":"YulIdentifier","src":"22283:5:21"}]}]},"pre":{"nativeSrc":"22263:2:21","nodeType":"YulBlock","src":"22263:2:21","statements":[]},"src":"22259:120:21"}]},"name":"clear_storage_range_t_bytes1","nativeSrc":"22199:186:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"22237:5:21","nodeType":"YulTypedName","src":"22237:5:21","type":""},{"name":"end","nativeSrc":"22244:3:21","nodeType":"YulTypedName","src":"22244:3:21","type":""}],"src":"22199:186:21"},{"body":{"nativeSrc":"22470:464:21","nodeType":"YulBlock","src":"22470:464:21","statements":[{"body":{"nativeSrc":"22496:431:21","nodeType":"YulBlock","src":"22496:431:21","statements":[{"nativeSrc":"22510:54:21","nodeType":"YulVariableDeclaration","src":"22510:54:21","value":{"arguments":[{"name":"array","nativeSrc":"22558:5:21","nodeType":"YulIdentifier","src":"22558:5:21"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"22526:31:21","nodeType":"YulIdentifier","src":"22526:31:21"},"nativeSrc":"22526:38:21","nodeType":"YulFunctionCall","src":"22526:38:21"},"variables":[{"name":"dataArea","nativeSrc":"22514:8:21","nodeType":"YulTypedName","src":"22514:8:21","type":""}]},{"nativeSrc":"22577:63:21","nodeType":"YulVariableDeclaration","src":"22577:63:21","value":{"arguments":[{"name":"dataArea","nativeSrc":"22600:8:21","nodeType":"YulIdentifier","src":"22600:8:21"},{"arguments":[{"name":"startIndex","nativeSrc":"22628:10:21","nodeType":"YulIdentifier","src":"22628:10:21"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"22610:17:21","nodeType":"YulIdentifier","src":"22610:17:21"},"nativeSrc":"22610:29:21","nodeType":"YulFunctionCall","src":"22610:29:21"}],"functionName":{"name":"add","nativeSrc":"22596:3:21","nodeType":"YulIdentifier","src":"22596:3:21"},"nativeSrc":"22596:44:21","nodeType":"YulFunctionCall","src":"22596:44:21"},"variables":[{"name":"deleteStart","nativeSrc":"22581:11:21","nodeType":"YulTypedName","src":"22581:11:21","type":""}]},{"body":{"nativeSrc":"22797:27:21","nodeType":"YulBlock","src":"22797:27:21","statements":[{"nativeSrc":"22799:23:21","nodeType":"YulAssignment","src":"22799:23:21","value":{"name":"dataArea","nativeSrc":"22814:8:21","nodeType":"YulIdentifier","src":"22814:8:21"},"variableNames":[{"name":"deleteStart","nativeSrc":"22799:11:21","nodeType":"YulIdentifier","src":"22799:11:21"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"22781:10:21","nodeType":"YulIdentifier","src":"22781:10:21"},{"kind":"number","nativeSrc":"22793:2:21","nodeType":"YulLiteral","src":"22793:2:21","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"22778:2:21","nodeType":"YulIdentifier","src":"22778:2:21"},"nativeSrc":"22778:18:21","nodeType":"YulFunctionCall","src":"22778:18:21"},"nativeSrc":"22775:49:21","nodeType":"YulIf","src":"22775:49:21"},{"expression":{"arguments":[{"name":"deleteStart","nativeSrc":"22866:11:21","nodeType":"YulIdentifier","src":"22866:11:21"},{"arguments":[{"name":"dataArea","nativeSrc":"22883:8:21","nodeType":"YulIdentifier","src":"22883:8:21"},{"arguments":[{"name":"len","nativeSrc":"22911:3:21","nodeType":"YulIdentifier","src":"22911:3:21"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"22893:17:21","nodeType":"YulIdentifier","src":"22893:17:21"},"nativeSrc":"22893:22:21","nodeType":"YulFunctionCall","src":"22893:22:21"}],"functionName":{"name":"add","nativeSrc":"22879:3:21","nodeType":"YulIdentifier","src":"22879:3:21"},"nativeSrc":"22879:37:21","nodeType":"YulFunctionCall","src":"22879:37:21"}],"functionName":{"name":"clear_storage_range_t_bytes1","nativeSrc":"22837:28:21","nodeType":"YulIdentifier","src":"22837:28:21"},"nativeSrc":"22837:80:21","nodeType":"YulFunctionCall","src":"22837:80:21"},"nativeSrc":"22837:80:21","nodeType":"YulExpressionStatement","src":"22837:80:21"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"22487:3:21","nodeType":"YulIdentifier","src":"22487:3:21"},{"kind":"number","nativeSrc":"22492:2:21","nodeType":"YulLiteral","src":"22492:2:21","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"22484:2:21","nodeType":"YulIdentifier","src":"22484:2:21"},"nativeSrc":"22484:11:21","nodeType":"YulFunctionCall","src":"22484:11:21"},"nativeSrc":"22481:446:21","nodeType":"YulIf","src":"22481:446:21"}]},"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"22391:543:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"22446:5:21","nodeType":"YulTypedName","src":"22446:5:21","type":""},{"name":"len","nativeSrc":"22453:3:21","nodeType":"YulTypedName","src":"22453:3:21","type":""},{"name":"startIndex","nativeSrc":"22458:10:21","nodeType":"YulTypedName","src":"22458:10:21","type":""}],"src":"22391:543:21"},{"body":{"nativeSrc":"23003:54:21","nodeType":"YulBlock","src":"23003:54:21","statements":[{"nativeSrc":"23013:37:21","nodeType":"YulAssignment","src":"23013:37:21","value":{"arguments":[{"name":"bits","nativeSrc":"23038:4:21","nodeType":"YulIdentifier","src":"23038:4:21"},{"name":"value","nativeSrc":"23044:5:21","nodeType":"YulIdentifier","src":"23044:5:21"}],"functionName":{"name":"shr","nativeSrc":"23034:3:21","nodeType":"YulIdentifier","src":"23034:3:21"},"nativeSrc":"23034:16:21","nodeType":"YulFunctionCall","src":"23034:16:21"},"variableNames":[{"name":"newValue","nativeSrc":"23013:8:21","nodeType":"YulIdentifier","src":"23013:8:21"}]}]},"name":"shift_right_unsigned_dynamic","nativeSrc":"22940:117:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"22978:4:21","nodeType":"YulTypedName","src":"22978:4:21","type":""},{"name":"value","nativeSrc":"22984:5:21","nodeType":"YulTypedName","src":"22984:5:21","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"22994:8:21","nodeType":"YulTypedName","src":"22994:8:21","type":""}],"src":"22940:117:21"},{"body":{"nativeSrc":"23114:118:21","nodeType":"YulBlock","src":"23114:118:21","statements":[{"nativeSrc":"23124:68:21","nodeType":"YulVariableDeclaration","src":"23124:68:21","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"23173:1:21","nodeType":"YulLiteral","src":"23173:1:21","type":"","value":"8"},{"name":"bytes","nativeSrc":"23176:5:21","nodeType":"YulIdentifier","src":"23176:5:21"}],"functionName":{"name":"mul","nativeSrc":"23169:3:21","nodeType":"YulIdentifier","src":"23169:3:21"},"nativeSrc":"23169:13:21","nodeType":"YulFunctionCall","src":"23169:13:21"},{"arguments":[{"kind":"number","nativeSrc":"23188:1:21","nodeType":"YulLiteral","src":"23188:1:21","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"23184:3:21","nodeType":"YulIdentifier","src":"23184:3:21"},"nativeSrc":"23184:6:21","nodeType":"YulFunctionCall","src":"23184:6:21"}],"functionName":{"name":"shift_right_unsigned_dynamic","nativeSrc":"23140:28:21","nodeType":"YulIdentifier","src":"23140:28:21"},"nativeSrc":"23140:51:21","nodeType":"YulFunctionCall","src":"23140:51:21"}],"functionName":{"name":"not","nativeSrc":"23136:3:21","nodeType":"YulIdentifier","src":"23136:3:21"},"nativeSrc":"23136:56:21","nodeType":"YulFunctionCall","src":"23136:56:21"},"variables":[{"name":"mask","nativeSrc":"23128:4:21","nodeType":"YulTypedName","src":"23128:4:21","type":""}]},{"nativeSrc":"23201:25:21","nodeType":"YulAssignment","src":"23201:25:21","value":{"arguments":[{"name":"data","nativeSrc":"23215:4:21","nodeType":"YulIdentifier","src":"23215:4:21"},{"name":"mask","nativeSrc":"23221:4:21","nodeType":"YulIdentifier","src":"23221:4:21"}],"functionName":{"name":"and","nativeSrc":"23211:3:21","nodeType":"YulIdentifier","src":"23211:3:21"},"nativeSrc":"23211:15:21","nodeType":"YulFunctionCall","src":"23211:15:21"},"variableNames":[{"name":"result","nativeSrc":"23201:6:21","nodeType":"YulIdentifier","src":"23201:6:21"}]}]},"name":"mask_bytes_dynamic","nativeSrc":"23063:169:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"23091:4:21","nodeType":"YulTypedName","src":"23091:4:21","type":""},{"name":"bytes","nativeSrc":"23097:5:21","nodeType":"YulTypedName","src":"23097:5:21","type":""}],"returnVariables":[{"name":"result","nativeSrc":"23107:6:21","nodeType":"YulTypedName","src":"23107:6:21","type":""}],"src":"23063:169:21"},{"body":{"nativeSrc":"23318:214:21","nodeType":"YulBlock","src":"23318:214:21","statements":[{"nativeSrc":"23451:37:21","nodeType":"YulAssignment","src":"23451:37:21","value":{"arguments":[{"name":"data","nativeSrc":"23478:4:21","nodeType":"YulIdentifier","src":"23478:4:21"},{"name":"len","nativeSrc":"23484:3:21","nodeType":"YulIdentifier","src":"23484:3:21"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"23459:18:21","nodeType":"YulIdentifier","src":"23459:18:21"},"nativeSrc":"23459:29:21","nodeType":"YulFunctionCall","src":"23459:29:21"},"variableNames":[{"name":"data","nativeSrc":"23451:4:21","nodeType":"YulIdentifier","src":"23451:4:21"}]},{"nativeSrc":"23497:29:21","nodeType":"YulAssignment","src":"23497:29:21","value":{"arguments":[{"name":"data","nativeSrc":"23508:4:21","nodeType":"YulIdentifier","src":"23508:4:21"},{"arguments":[{"kind":"number","nativeSrc":"23518:1:21","nodeType":"YulLiteral","src":"23518:1:21","type":"","value":"2"},{"name":"len","nativeSrc":"23521:3:21","nodeType":"YulIdentifier","src":"23521:3:21"}],"functionName":{"name":"mul","nativeSrc":"23514:3:21","nodeType":"YulIdentifier","src":"23514:3:21"},"nativeSrc":"23514:11:21","nodeType":"YulFunctionCall","src":"23514:11:21"}],"functionName":{"name":"or","nativeSrc":"23505:2:21","nodeType":"YulIdentifier","src":"23505:2:21"},"nativeSrc":"23505:21:21","nodeType":"YulFunctionCall","src":"23505:21:21"},"variableNames":[{"name":"used","nativeSrc":"23497:4:21","nodeType":"YulIdentifier","src":"23497:4:21"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"23237:295:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"23299:4:21","nodeType":"YulTypedName","src":"23299:4:21","type":""},{"name":"len","nativeSrc":"23305:3:21","nodeType":"YulTypedName","src":"23305:3:21","type":""}],"returnVariables":[{"name":"used","nativeSrc":"23313:4:21","nodeType":"YulTypedName","src":"23313:4:21","type":""}],"src":"23237:295:21"},{"body":{"nativeSrc":"23629:1303:21","nodeType":"YulBlock","src":"23629:1303:21","statements":[{"nativeSrc":"23640:51:21","nodeType":"YulVariableDeclaration","src":"23640:51:21","value":{"arguments":[{"name":"src","nativeSrc":"23687:3:21","nodeType":"YulIdentifier","src":"23687:3:21"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"23654:32:21","nodeType":"YulIdentifier","src":"23654:32:21"},"nativeSrc":"23654:37:21","nodeType":"YulFunctionCall","src":"23654:37:21"},"variables":[{"name":"newLen","nativeSrc":"23644:6:21","nodeType":"YulTypedName","src":"23644:6:21","type":""}]},{"body":{"nativeSrc":"23776:22:21","nodeType":"YulBlock","src":"23776:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"23778:16:21","nodeType":"YulIdentifier","src":"23778:16:21"},"nativeSrc":"23778:18:21","nodeType":"YulFunctionCall","src":"23778:18:21"},"nativeSrc":"23778:18:21","nodeType":"YulExpressionStatement","src":"23778:18:21"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"23748:6:21","nodeType":"YulIdentifier","src":"23748:6:21"},{"kind":"number","nativeSrc":"23756:18:21","nodeType":"YulLiteral","src":"23756:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"23745:2:21","nodeType":"YulIdentifier","src":"23745:2:21"},"nativeSrc":"23745:30:21","nodeType":"YulFunctionCall","src":"23745:30:21"},"nativeSrc":"23742:56:21","nodeType":"YulIf","src":"23742:56:21"},{"nativeSrc":"23808:52:21","nodeType":"YulVariableDeclaration","src":"23808:52:21","value":{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"23854:4:21","nodeType":"YulIdentifier","src":"23854:4:21"}],"functionName":{"name":"sload","nativeSrc":"23848:5:21","nodeType":"YulIdentifier","src":"23848:5:21"},"nativeSrc":"23848:11:21","nodeType":"YulFunctionCall","src":"23848:11:21"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"23822:25:21","nodeType":"YulIdentifier","src":"23822:25:21"},"nativeSrc":"23822:38:21","nodeType":"YulFunctionCall","src":"23822:38:21"},"variables":[{"name":"oldLen","nativeSrc":"23812:6:21","nodeType":"YulTypedName","src":"23812:6:21","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"23953:4:21","nodeType":"YulIdentifier","src":"23953:4:21"},{"name":"oldLen","nativeSrc":"23959:6:21","nodeType":"YulIdentifier","src":"23959:6:21"},{"name":"newLen","nativeSrc":"23967:6:21","nodeType":"YulIdentifier","src":"23967:6:21"}],"functionName":{"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"23907:45:21","nodeType":"YulIdentifier","src":"23907:45:21"},"nativeSrc":"23907:67:21","nodeType":"YulFunctionCall","src":"23907:67:21"},"nativeSrc":"23907:67:21","nodeType":"YulExpressionStatement","src":"23907:67:21"},{"nativeSrc":"23984:18:21","nodeType":"YulVariableDeclaration","src":"23984:18:21","value":{"kind":"number","nativeSrc":"24001:1:21","nodeType":"YulLiteral","src":"24001:1:21","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"23988:9:21","nodeType":"YulTypedName","src":"23988:9:21","type":""}]},{"nativeSrc":"24012:17:21","nodeType":"YulAssignment","src":"24012:17:21","value":{"kind":"number","nativeSrc":"24025:4:21","nodeType":"YulLiteral","src":"24025:4:21","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"24012:9:21","nodeType":"YulIdentifier","src":"24012:9:21"}]},{"cases":[{"body":{"nativeSrc":"24076:611:21","nodeType":"YulBlock","src":"24076:611:21","statements":[{"nativeSrc":"24090:37:21","nodeType":"YulVariableDeclaration","src":"24090:37:21","value":{"arguments":[{"name":"newLen","nativeSrc":"24109:6:21","nodeType":"YulIdentifier","src":"24109:6:21"},{"arguments":[{"kind":"number","nativeSrc":"24121:4:21","nodeType":"YulLiteral","src":"24121:4:21","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"24117:3:21","nodeType":"YulIdentifier","src":"24117:3:21"},"nativeSrc":"24117:9:21","nodeType":"YulFunctionCall","src":"24117:9:21"}],"functionName":{"name":"and","nativeSrc":"24105:3:21","nodeType":"YulIdentifier","src":"24105:3:21"},"nativeSrc":"24105:22:21","nodeType":"YulFunctionCall","src":"24105:22:21"},"variables":[{"name":"loopEnd","nativeSrc":"24094:7:21","nodeType":"YulTypedName","src":"24094:7:21","type":""}]},{"nativeSrc":"24141:51:21","nodeType":"YulVariableDeclaration","src":"24141:51:21","value":{"arguments":[{"name":"slot","nativeSrc":"24187:4:21","nodeType":"YulIdentifier","src":"24187:4:21"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"24155:31:21","nodeType":"YulIdentifier","src":"24155:31:21"},"nativeSrc":"24155:37:21","nodeType":"YulFunctionCall","src":"24155:37:21"},"variables":[{"name":"dstPtr","nativeSrc":"24145:6:21","nodeType":"YulTypedName","src":"24145:6:21","type":""}]},{"nativeSrc":"24205:10:21","nodeType":"YulVariableDeclaration","src":"24205:10:21","value":{"kind":"number","nativeSrc":"24214:1:21","nodeType":"YulLiteral","src":"24214:1:21","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"24209:1:21","nodeType":"YulTypedName","src":"24209:1:21","type":""}]},{"body":{"nativeSrc":"24273:163:21","nodeType":"YulBlock","src":"24273:163:21","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"24298:6:21","nodeType":"YulIdentifier","src":"24298:6:21"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"24316:3:21","nodeType":"YulIdentifier","src":"24316:3:21"},{"name":"srcOffset","nativeSrc":"24321:9:21","nodeType":"YulIdentifier","src":"24321:9:21"}],"functionName":{"name":"add","nativeSrc":"24312:3:21","nodeType":"YulIdentifier","src":"24312:3:21"},"nativeSrc":"24312:19:21","nodeType":"YulFunctionCall","src":"24312:19:21"}],"functionName":{"name":"mload","nativeSrc":"24306:5:21","nodeType":"YulIdentifier","src":"24306:5:21"},"nativeSrc":"24306:26:21","nodeType":"YulFunctionCall","src":"24306:26:21"}],"functionName":{"name":"sstore","nativeSrc":"24291:6:21","nodeType":"YulIdentifier","src":"24291:6:21"},"nativeSrc":"24291:42:21","nodeType":"YulFunctionCall","src":"24291:42:21"},"nativeSrc":"24291:42:21","nodeType":"YulExpressionStatement","src":"24291:42:21"},{"nativeSrc":"24350:24:21","nodeType":"YulAssignment","src":"24350:24:21","value":{"arguments":[{"name":"dstPtr","nativeSrc":"24364:6:21","nodeType":"YulIdentifier","src":"24364:6:21"},{"kind":"number","nativeSrc":"24372:1:21","nodeType":"YulLiteral","src":"24372:1:21","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"24360:3:21","nodeType":"YulIdentifier","src":"24360:3:21"},"nativeSrc":"24360:14:21","nodeType":"YulFunctionCall","src":"24360:14:21"},"variableNames":[{"name":"dstPtr","nativeSrc":"24350:6:21","nodeType":"YulIdentifier","src":"24350:6:21"}]},{"nativeSrc":"24391:31:21","nodeType":"YulAssignment","src":"24391:31:21","value":{"arguments":[{"name":"srcOffset","nativeSrc":"24408:9:21","nodeType":"YulIdentifier","src":"24408:9:21"},{"kind":"number","nativeSrc":"24419:2:21","nodeType":"YulLiteral","src":"24419:2:21","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"24404:3:21","nodeType":"YulIdentifier","src":"24404:3:21"},"nativeSrc":"24404:18:21","nodeType":"YulFunctionCall","src":"24404:18:21"},"variableNames":[{"name":"srcOffset","nativeSrc":"24391:9:21","nodeType":"YulIdentifier","src":"24391:9:21"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"24239:1:21","nodeType":"YulIdentifier","src":"24239:1:21"},{"name":"loopEnd","nativeSrc":"24242:7:21","nodeType":"YulIdentifier","src":"24242:7:21"}],"functionName":{"name":"lt","nativeSrc":"24236:2:21","nodeType":"YulIdentifier","src":"24236:2:21"},"nativeSrc":"24236:14:21","nodeType":"YulFunctionCall","src":"24236:14:21"},"nativeSrc":"24228:208:21","nodeType":"YulForLoop","post":{"nativeSrc":"24251:21:21","nodeType":"YulBlock","src":"24251:21:21","statements":[{"nativeSrc":"24253:17:21","nodeType":"YulAssignment","src":"24253:17:21","value":{"arguments":[{"name":"i","nativeSrc":"24262:1:21","nodeType":"YulIdentifier","src":"24262:1:21"},{"kind":"number","nativeSrc":"24265:4:21","nodeType":"YulLiteral","src":"24265:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"24258:3:21","nodeType":"YulIdentifier","src":"24258:3:21"},"nativeSrc":"24258:12:21","nodeType":"YulFunctionCall","src":"24258:12:21"},"variableNames":[{"name":"i","nativeSrc":"24253:1:21","nodeType":"YulIdentifier","src":"24253:1:21"}]}]},"pre":{"nativeSrc":"24232:3:21","nodeType":"YulBlock","src":"24232:3:21","statements":[]},"src":"24228:208:21"},{"body":{"nativeSrc":"24472:156:21","nodeType":"YulBlock","src":"24472:156:21","statements":[{"nativeSrc":"24490:43:21","nodeType":"YulVariableDeclaration","src":"24490:43:21","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"24517:3:21","nodeType":"YulIdentifier","src":"24517:3:21"},{"name":"srcOffset","nativeSrc":"24522:9:21","nodeType":"YulIdentifier","src":"24522:9:21"}],"functionName":{"name":"add","nativeSrc":"24513:3:21","nodeType":"YulIdentifier","src":"24513:3:21"},"nativeSrc":"24513:19:21","nodeType":"YulFunctionCall","src":"24513:19:21"}],"functionName":{"name":"mload","nativeSrc":"24507:5:21","nodeType":"YulIdentifier","src":"24507:5:21"},"nativeSrc":"24507:26:21","nodeType":"YulFunctionCall","src":"24507:26:21"},"variables":[{"name":"lastValue","nativeSrc":"24494:9:21","nodeType":"YulTypedName","src":"24494:9:21","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"24557:6:21","nodeType":"YulIdentifier","src":"24557:6:21"},{"arguments":[{"name":"lastValue","nativeSrc":"24584:9:21","nodeType":"YulIdentifier","src":"24584:9:21"},{"arguments":[{"name":"newLen","nativeSrc":"24599:6:21","nodeType":"YulIdentifier","src":"24599:6:21"},{"kind":"number","nativeSrc":"24607:4:21","nodeType":"YulLiteral","src":"24607:4:21","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"24595:3:21","nodeType":"YulIdentifier","src":"24595:3:21"},"nativeSrc":"24595:17:21","nodeType":"YulFunctionCall","src":"24595:17:21"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"24565:18:21","nodeType":"YulIdentifier","src":"24565:18:21"},"nativeSrc":"24565:48:21","nodeType":"YulFunctionCall","src":"24565:48:21"}],"functionName":{"name":"sstore","nativeSrc":"24550:6:21","nodeType":"YulIdentifier","src":"24550:6:21"},"nativeSrc":"24550:64:21","nodeType":"YulFunctionCall","src":"24550:64:21"},"nativeSrc":"24550:64:21","nodeType":"YulExpressionStatement","src":"24550:64:21"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"24455:7:21","nodeType":"YulIdentifier","src":"24455:7:21"},{"name":"newLen","nativeSrc":"24464:6:21","nodeType":"YulIdentifier","src":"24464:6:21"}],"functionName":{"name":"lt","nativeSrc":"24452:2:21","nodeType":"YulIdentifier","src":"24452:2:21"},"nativeSrc":"24452:19:21","nodeType":"YulFunctionCall","src":"24452:19:21"},"nativeSrc":"24449:179:21","nodeType":"YulIf","src":"24449:179:21"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"24648:4:21","nodeType":"YulIdentifier","src":"24648:4:21"},{"arguments":[{"arguments":[{"name":"newLen","nativeSrc":"24662:6:21","nodeType":"YulIdentifier","src":"24662:6:21"},{"kind":"number","nativeSrc":"24670:1:21","nodeType":"YulLiteral","src":"24670:1:21","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"24658:3:21","nodeType":"YulIdentifier","src":"24658:3:21"},"nativeSrc":"24658:14:21","nodeType":"YulFunctionCall","src":"24658:14:21"},{"kind":"number","nativeSrc":"24674:1:21","nodeType":"YulLiteral","src":"24674:1:21","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"24654:3:21","nodeType":"YulIdentifier","src":"24654:3:21"},"nativeSrc":"24654:22:21","nodeType":"YulFunctionCall","src":"24654:22:21"}],"functionName":{"name":"sstore","nativeSrc":"24641:6:21","nodeType":"YulIdentifier","src":"24641:6:21"},"nativeSrc":"24641:36:21","nodeType":"YulFunctionCall","src":"24641:36:21"},"nativeSrc":"24641:36:21","nodeType":"YulExpressionStatement","src":"24641:36:21"}]},"nativeSrc":"24069:618:21","nodeType":"YulCase","src":"24069:618:21","value":{"kind":"number","nativeSrc":"24074:1:21","nodeType":"YulLiteral","src":"24074:1:21","type":"","value":"1"}},{"body":{"nativeSrc":"24704:222:21","nodeType":"YulBlock","src":"24704:222:21","statements":[{"nativeSrc":"24718:14:21","nodeType":"YulVariableDeclaration","src":"24718:14:21","value":{"kind":"number","nativeSrc":"24731:1:21","nodeType":"YulLiteral","src":"24731:1:21","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"24722:5:21","nodeType":"YulTypedName","src":"24722:5:21","type":""}]},{"body":{"nativeSrc":"24755:67:21","nodeType":"YulBlock","src":"24755:67:21","statements":[{"nativeSrc":"24773:35:21","nodeType":"YulAssignment","src":"24773:35:21","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"24792:3:21","nodeType":"YulIdentifier","src":"24792:3:21"},{"name":"srcOffset","nativeSrc":"24797:9:21","nodeType":"YulIdentifier","src":"24797:9:21"}],"functionName":{"name":"add","nativeSrc":"24788:3:21","nodeType":"YulIdentifier","src":"24788:3:21"},"nativeSrc":"24788:19:21","nodeType":"YulFunctionCall","src":"24788:19:21"}],"functionName":{"name":"mload","nativeSrc":"24782:5:21","nodeType":"YulIdentifier","src":"24782:5:21"},"nativeSrc":"24782:26:21","nodeType":"YulFunctionCall","src":"24782:26:21"},"variableNames":[{"name":"value","nativeSrc":"24773:5:21","nodeType":"YulIdentifier","src":"24773:5:21"}]}]},"condition":{"name":"newLen","nativeSrc":"24748:6:21","nodeType":"YulIdentifier","src":"24748:6:21"},"nativeSrc":"24745:77:21","nodeType":"YulIf","src":"24745:77:21"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"24842:4:21","nodeType":"YulIdentifier","src":"24842:4:21"},{"arguments":[{"name":"value","nativeSrc":"24901:5:21","nodeType":"YulIdentifier","src":"24901:5:21"},{"name":"newLen","nativeSrc":"24908:6:21","nodeType":"YulIdentifier","src":"24908:6:21"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"24848:52:21","nodeType":"YulIdentifier","src":"24848:52:21"},"nativeSrc":"24848:67:21","nodeType":"YulFunctionCall","src":"24848:67:21"}],"functionName":{"name":"sstore","nativeSrc":"24835:6:21","nodeType":"YulIdentifier","src":"24835:6:21"},"nativeSrc":"24835:81:21","nodeType":"YulFunctionCall","src":"24835:81:21"},"nativeSrc":"24835:81:21","nodeType":"YulExpressionStatement","src":"24835:81:21"}]},"nativeSrc":"24696:230:21","nodeType":"YulCase","src":"24696:230:21","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"24049:6:21","nodeType":"YulIdentifier","src":"24049:6:21"},{"kind":"number","nativeSrc":"24057:2:21","nodeType":"YulLiteral","src":"24057:2:21","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"24046:2:21","nodeType":"YulIdentifier","src":"24046:2:21"},"nativeSrc":"24046:14:21","nodeType":"YulFunctionCall","src":"24046:14:21"},"nativeSrc":"24039:887:21","nodeType":"YulSwitch","src":"24039:887:21"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"23537:1395:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"23618:4:21","nodeType":"YulTypedName","src":"23618:4:21","type":""},{"name":"src","nativeSrc":"23624:3:21","nodeType":"YulTypedName","src":"23624:3:21","type":""}],"src":"23537:1395:21"},{"body":{"nativeSrc":"25003:53:21","nodeType":"YulBlock","src":"25003:53:21","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"25020:3:21","nodeType":"YulIdentifier","src":"25020:3:21"},{"arguments":[{"name":"value","nativeSrc":"25043:5:21","nodeType":"YulIdentifier","src":"25043:5:21"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"25025:17:21","nodeType":"YulIdentifier","src":"25025:17:21"},"nativeSrc":"25025:24:21","nodeType":"YulFunctionCall","src":"25025:24:21"}],"functionName":{"name":"mstore","nativeSrc":"25013:6:21","nodeType":"YulIdentifier","src":"25013:6:21"},"nativeSrc":"25013:37:21","nodeType":"YulFunctionCall","src":"25013:37:21"},"nativeSrc":"25013:37:21","nodeType":"YulExpressionStatement","src":"25013:37:21"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"24938:118:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"24991:5:21","nodeType":"YulTypedName","src":"24991:5:21","type":""},{"name":"pos","nativeSrc":"24998:3:21","nodeType":"YulTypedName","src":"24998:3:21","type":""}],"src":"24938:118:21"},{"body":{"nativeSrc":"25160:124:21","nodeType":"YulBlock","src":"25160:124:21","statements":[{"nativeSrc":"25170:26:21","nodeType":"YulAssignment","src":"25170:26:21","value":{"arguments":[{"name":"headStart","nativeSrc":"25182:9:21","nodeType":"YulIdentifier","src":"25182:9:21"},{"kind":"number","nativeSrc":"25193:2:21","nodeType":"YulLiteral","src":"25193:2:21","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"25178:3:21","nodeType":"YulIdentifier","src":"25178:3:21"},"nativeSrc":"25178:18:21","nodeType":"YulFunctionCall","src":"25178:18:21"},"variableNames":[{"name":"tail","nativeSrc":"25170:4:21","nodeType":"YulIdentifier","src":"25170:4:21"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"25250:6:21","nodeType":"YulIdentifier","src":"25250:6:21"},{"arguments":[{"name":"headStart","nativeSrc":"25263:9:21","nodeType":"YulIdentifier","src":"25263:9:21"},{"kind":"number","nativeSrc":"25274:1:21","nodeType":"YulLiteral","src":"25274:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"25259:3:21","nodeType":"YulIdentifier","src":"25259:3:21"},"nativeSrc":"25259:17:21","nodeType":"YulFunctionCall","src":"25259:17:21"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"25206:43:21","nodeType":"YulIdentifier","src":"25206:43:21"},"nativeSrc":"25206:71:21","nodeType":"YulFunctionCall","src":"25206:71:21"},"nativeSrc":"25206:71:21","nodeType":"YulExpressionStatement","src":"25206:71:21"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"25062:222:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"25132:9:21","nodeType":"YulTypedName","src":"25132:9:21","type":""},{"name":"value0","nativeSrc":"25144:6:21","nodeType":"YulTypedName","src":"25144:6:21","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"25155:4:21","nodeType":"YulTypedName","src":"25155:4:21","type":""}],"src":"25062:222:21"},{"body":{"nativeSrc":"25318:152:21","nodeType":"YulBlock","src":"25318:152:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"25335:1:21","nodeType":"YulLiteral","src":"25335:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"25338:77:21","nodeType":"YulLiteral","src":"25338:77:21","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"25328:6:21","nodeType":"YulIdentifier","src":"25328:6:21"},"nativeSrc":"25328:88:21","nodeType":"YulFunctionCall","src":"25328:88:21"},"nativeSrc":"25328:88:21","nodeType":"YulExpressionStatement","src":"25328:88:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"25432:1:21","nodeType":"YulLiteral","src":"25432:1:21","type":"","value":"4"},{"kind":"number","nativeSrc":"25435:4:21","nodeType":"YulLiteral","src":"25435:4:21","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"25425:6:21","nodeType":"YulIdentifier","src":"25425:6:21"},"nativeSrc":"25425:15:21","nodeType":"YulFunctionCall","src":"25425:15:21"},"nativeSrc":"25425:15:21","nodeType":"YulExpressionStatement","src":"25425:15:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"25456:1:21","nodeType":"YulLiteral","src":"25456:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"25459:4:21","nodeType":"YulLiteral","src":"25459:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"25449:6:21","nodeType":"YulIdentifier","src":"25449:6:21"},"nativeSrc":"25449:15:21","nodeType":"YulFunctionCall","src":"25449:15:21"},"nativeSrc":"25449:15:21","nodeType":"YulExpressionStatement","src":"25449:15:21"}]},"name":"panic_error_0x11","nativeSrc":"25290:180:21","nodeType":"YulFunctionDefinition","src":"25290:180:21"},{"body":{"nativeSrc":"25519:150:21","nodeType":"YulBlock","src":"25519:150:21","statements":[{"nativeSrc":"25529:24:21","nodeType":"YulAssignment","src":"25529:24:21","value":{"arguments":[{"name":"x","nativeSrc":"25551:1:21","nodeType":"YulIdentifier","src":"25551:1:21"}],"functionName":{"name":"cleanup_t_uint16","nativeSrc":"25534:16:21","nodeType":"YulIdentifier","src":"25534:16:21"},"nativeSrc":"25534:19:21","nodeType":"YulFunctionCall","src":"25534:19:21"},"variableNames":[{"name":"x","nativeSrc":"25529:1:21","nodeType":"YulIdentifier","src":"25529:1:21"}]},{"nativeSrc":"25562:24:21","nodeType":"YulAssignment","src":"25562:24:21","value":{"arguments":[{"name":"y","nativeSrc":"25584:1:21","nodeType":"YulIdentifier","src":"25584:1:21"}],"functionName":{"name":"cleanup_t_uint16","nativeSrc":"25567:16:21","nodeType":"YulIdentifier","src":"25567:16:21"},"nativeSrc":"25567:19:21","nodeType":"YulFunctionCall","src":"25567:19:21"},"variableNames":[{"name":"y","nativeSrc":"25562:1:21","nodeType":"YulIdentifier","src":"25562:1:21"}]},{"nativeSrc":"25595:16:21","nodeType":"YulAssignment","src":"25595:16:21","value":{"arguments":[{"name":"x","nativeSrc":"25606:1:21","nodeType":"YulIdentifier","src":"25606:1:21"},{"name":"y","nativeSrc":"25609:1:21","nodeType":"YulIdentifier","src":"25609:1:21"}],"functionName":{"name":"add","nativeSrc":"25602:3:21","nodeType":"YulIdentifier","src":"25602:3:21"},"nativeSrc":"25602:9:21","nodeType":"YulFunctionCall","src":"25602:9:21"},"variableNames":[{"name":"sum","nativeSrc":"25595:3:21","nodeType":"YulIdentifier","src":"25595:3:21"}]},{"body":{"nativeSrc":"25640:22:21","nodeType":"YulBlock","src":"25640:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"25642:16:21","nodeType":"YulIdentifier","src":"25642:16:21"},"nativeSrc":"25642:18:21","nodeType":"YulFunctionCall","src":"25642:18:21"},"nativeSrc":"25642:18:21","nodeType":"YulExpressionStatement","src":"25642:18:21"}]},"condition":{"arguments":[{"name":"sum","nativeSrc":"25627:3:21","nodeType":"YulIdentifier","src":"25627:3:21"},{"kind":"number","nativeSrc":"25632:6:21","nodeType":"YulLiteral","src":"25632:6:21","type":"","value":"0xffff"}],"functionName":{"name":"gt","nativeSrc":"25624:2:21","nodeType":"YulIdentifier","src":"25624:2:21"},"nativeSrc":"25624:15:21","nodeType":"YulFunctionCall","src":"25624:15:21"},"nativeSrc":"25621:41:21","nodeType":"YulIf","src":"25621:41:21"}]},"name":"checked_add_t_uint16","nativeSrc":"25476:193:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"25506:1:21","nodeType":"YulTypedName","src":"25506:1:21","type":""},{"name":"y","nativeSrc":"25509:1:21","nodeType":"YulTypedName","src":"25509:1:21","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"25515:3:21","nodeType":"YulTypedName","src":"25515:3:21","type":""}],"src":"25476:193:21"}]},"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_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\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 revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n        revert(0, 0)\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 validator_revert_t_enum$_CachePreset_$964(value) {\n        if iszero(lt(value, 7)) { revert(0, 0) }\n    }\n\n    function abi_decode_t_enum$_CachePreset_$964_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_enum$_CachePreset_$964(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 array_allocation_size_t_string_memory_ptr(length) -> size {\n        // Make sure we can allocate memory without overflow\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n        size := round_up_to_mul_of_32(length)\n\n        // add length slot\n        size := add(size, 0x20)\n\n    }\n\n    function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n        mstore(array, length)\n        let dst := add(array, 0x20)\n        if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n        copy_memory_to_memory_with_cleanup(src, dst, length)\n    }\n\n    // string\n    function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        let length := mload(offset)\n        array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n    }\n\n    // struct CacheControl\n    function abi_decode_t_struct$_CacheControl_$984_memory_ptr_fromMemory(headStart, end) -> value {\n        if slt(sub(end, headStart), 0x60) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n        value := allocate_memory(0x60)\n\n        {\n            // immutableFlag\n\n            let offset := 0\n\n            mstore(add(value, 0x00), abi_decode_t_bool_fromMemory(add(headStart, offset), end))\n\n        }\n\n        {\n            // preset\n\n            let offset := 32\n\n            mstore(add(value, 0x20), abi_decode_t_enum$_CachePreset_$964_fromMemory(add(headStart, offset), end))\n\n        }\n\n        {\n            // custom\n\n            let offset := mload(add(headStart, 64))\n            if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n            mstore(add(value, 0x40), abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), end))\n\n        }\n\n    }\n\n    function cleanup_t_uint16(value) -> cleaned {\n        cleaned := and(value, 0xffff)\n    }\n\n    function validator_revert_t_uint16(value) {\n        if iszero(eq(value, cleanup_t_uint16(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint16_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_uint16(value)\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    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_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_bytes32(value)\n    }\n\n    // bytes32[]\n    function abi_decode_available_length_t_array$_t_bytes32_$dyn_memory_ptr_fromMemory(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_fromMemory(elementPos, end))\n            dst := add(dst, 0x20)\n        }\n    }\n\n    // bytes32[]\n    function abi_decode_t_array$_t_bytes32_$dyn_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_array$_t_bytes32_$dyn_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n    }\n\n    function validator_revert_t_enum$_CORSPreset_$972(value) {\n        if iszero(lt(value, 6)) { revert(0, 0) }\n    }\n\n    function abi_decode_t_enum$_CORSPreset_$972_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_enum$_CORSPreset_$972(value)\n    }\n\n    // struct CORSPolicy\n    function abi_decode_t_struct$_CORSPolicy_$1000_memory_ptr_fromMemory(headStart, end) -> value {\n        if slt(sub(end, headStart), 0x80) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n        value := allocate_memory(0x80)\n\n        {\n            // methods\n\n            let offset := 0\n\n            mstore(add(value, 0x00), abi_decode_t_uint16_fromMemory(add(headStart, offset), end))\n\n        }\n\n        {\n            // origins\n\n            let offset := mload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n            mstore(add(value, 0x20), abi_decode_t_array$_t_bytes32_$dyn_memory_ptr_fromMemory(add(headStart, offset), end))\n\n        }\n\n        {\n            // preset\n\n            let offset := 64\n\n            mstore(add(value, 0x40), abi_decode_t_enum$_CORSPreset_$972_fromMemory(add(headStart, offset), end))\n\n        }\n\n        {\n            // custom\n\n            let offset := mload(add(headStart, 96))\n            if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n            mstore(add(value, 0x60), abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), end))\n\n        }\n\n    }\n\n    // struct Redirect\n    function abi_decode_t_struct$_Redirect_$1008_memory_ptr_fromMemory(headStart, end) -> value {\n        if slt(sub(end, headStart), 0x40) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n        value := allocate_memory(0x40)\n\n        {\n            // code\n\n            let offset := 0\n\n            mstore(add(value, 0x00), abi_decode_t_uint16_fromMemory(add(headStart, offset), end))\n\n        }\n\n        {\n            // location\n\n            let offset := mload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n            mstore(add(value, 0x20), abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), end))\n\n        }\n\n    }\n\n    // struct HeaderInfo\n    function abi_decode_t_struct$_HeaderInfo_$1022_memory_ptr_fromMemory(headStart, end) -> value {\n        if slt(sub(end, headStart), 0x60) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n        value := allocate_memory(0x60)\n\n        {\n            // cache\n\n            let offset := mload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n            mstore(add(value, 0x00), abi_decode_t_struct$_CacheControl_$984_memory_ptr_fromMemory(add(headStart, offset), end))\n\n        }\n\n        {\n            // cors\n\n            let offset := mload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n            mstore(add(value, 0x20), abi_decode_t_struct$_CORSPolicy_$1000_memory_ptr_fromMemory(add(headStart, offset), end))\n\n        }\n\n        {\n            // redirect\n\n            let offset := mload(add(headStart, 64))\n            if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n            mstore(add(value, 0x40), abi_decode_t_struct$_Redirect_$1008_memory_ptr_fromMemory(add(headStart, offset), end))\n\n        }\n\n    }\n\n    function abi_decode_tuple_t_addresst_addresst_struct$_HeaderInfo_$1022_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_struct$_HeaderInfo_$1022_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_bool_to_t_bool(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function panic_error_0x21() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x21)\n        revert(0, 0x24)\n    }\n\n    function validator_assert_t_enum$_CachePreset_$964(value) {\n        if iszero(lt(value, 7)) { panic_error_0x21() }\n    }\n\n    function cleanup_t_enum$_CachePreset_$964(value) -> cleaned {\n        cleaned := value validator_assert_t_enum$_CachePreset_$964(value)\n    }\n\n    function convert_t_enum$_CachePreset_$964_to_t_uint8(value) -> converted {\n        converted := cleanup_t_enum$_CachePreset_$964(value)\n    }\n\n    function abi_encode_t_enum$_CachePreset_$964_to_t_uint8(value, pos) {\n        mstore(pos, convert_t_enum$_CachePreset_$964_to_t_uint8(value))\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(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr(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    // struct CacheControl -> struct CacheControl\n    function abi_encode_t_struct$_CacheControl_$984_memory_ptr_to_t_struct$_CacheControl_$984_memory_ptr(value, pos)  -> end  {\n        let tail := add(pos, 0x60)\n\n        {\n            // immutableFlag\n\n            let memberValue0 := mload(add(value, 0x00))\n            abi_encode_t_bool_to_t_bool(memberValue0, add(pos, 0x00))\n        }\n\n        {\n            // preset\n\n            let memberValue0 := mload(add(value, 0x20))\n            abi_encode_t_enum$_CachePreset_$964_to_t_uint8(memberValue0, add(pos, 0x20))\n        }\n\n        {\n            // custom\n\n            let memberValue0 := mload(add(value, 0x40))\n\n            mstore(add(pos, 0x40), sub(tail, pos))\n            tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(memberValue0, tail)\n\n        }\n\n        end := tail\n    }\n\n    function abi_encode_t_uint16_to_t_uint16(value, pos) {\n        mstore(pos, cleanup_t_uint16(value))\n    }\n\n    function array_length_t_array$_t_bytes32_$dyn_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function array_dataslot_t_array$_t_bytes32_$dyn_memory_ptr(ptr) -> data {\n        data := ptr\n\n        data := add(ptr, 0x20)\n\n    }\n\n    function abi_encode_t_bytes32_to_t_bytes32(value, pos) {\n        mstore(pos, cleanup_t_bytes32(value))\n    }\n\n    function abi_encodeUpdatedPos_t_bytes32_to_t_bytes32(value0, pos) -> updatedPos {\n        abi_encode_t_bytes32_to_t_bytes32(value0, pos)\n        updatedPos := add(pos, 0x20)\n    }\n\n    function array_nextElement_t_array$_t_bytes32_$dyn_memory_ptr(ptr) -> next {\n        next := add(ptr, 0x20)\n    }\n\n    // bytes32[] -> bytes32[]\n    function abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr(value, pos)  -> end  {\n        let length := array_length_t_array$_t_bytes32_$dyn_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr(pos, length)\n        let baseRef := array_dataslot_t_array$_t_bytes32_$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_bytes32_to_t_bytes32(elementValue0, pos)\n            srcPtr := array_nextElement_t_array$_t_bytes32_$dyn_memory_ptr(srcPtr)\n        }\n        end := pos\n    }\n\n    function validator_assert_t_enum$_CORSPreset_$972(value) {\n        if iszero(lt(value, 6)) { panic_error_0x21() }\n    }\n\n    function cleanup_t_enum$_CORSPreset_$972(value) -> cleaned {\n        cleaned := value validator_assert_t_enum$_CORSPreset_$972(value)\n    }\n\n    function convert_t_enum$_CORSPreset_$972_to_t_uint8(value) -> converted {\n        converted := cleanup_t_enum$_CORSPreset_$972(value)\n    }\n\n    function abi_encode_t_enum$_CORSPreset_$972_to_t_uint8(value, pos) {\n        mstore(pos, convert_t_enum$_CORSPreset_$972_to_t_uint8(value))\n    }\n\n    // struct CORSPolicy -> struct CORSPolicy\n    function abi_encode_t_struct$_CORSPolicy_$1000_memory_ptr_to_t_struct$_CORSPolicy_$1000_memory_ptr(value, pos)  -> end  {\n        let tail := add(pos, 0x80)\n\n        {\n            // methods\n\n            let memberValue0 := mload(add(value, 0x00))\n            abi_encode_t_uint16_to_t_uint16(memberValue0, add(pos, 0x00))\n        }\n\n        {\n            // origins\n\n            let memberValue0 := mload(add(value, 0x20))\n\n            mstore(add(pos, 0x20), sub(tail, pos))\n            tail := abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr(memberValue0, tail)\n\n        }\n\n        {\n            // preset\n\n            let memberValue0 := mload(add(value, 0x40))\n            abi_encode_t_enum$_CORSPreset_$972_to_t_uint8(memberValue0, add(pos, 0x40))\n        }\n\n        {\n            // custom\n\n            let memberValue0 := mload(add(value, 0x60))\n\n            mstore(add(pos, 0x60), sub(tail, pos))\n            tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(memberValue0, tail)\n\n        }\n\n        end := tail\n    }\n\n    // struct Redirect -> struct Redirect\n    function abi_encode_t_struct$_Redirect_$1008_memory_ptr_to_t_struct$_Redirect_$1008_memory_ptr(value, pos)  -> end  {\n        let tail := add(pos, 0x40)\n\n        {\n            // code\n\n            let memberValue0 := mload(add(value, 0x00))\n            abi_encode_t_uint16_to_t_uint16(memberValue0, add(pos, 0x00))\n        }\n\n        {\n            // location\n\n            let memberValue0 := mload(add(value, 0x20))\n\n            mstore(add(pos, 0x20), sub(tail, pos))\n            tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(memberValue0, tail)\n\n        }\n\n        end := tail\n    }\n\n    // struct HeaderInfo -> struct HeaderInfo\n    function abi_encode_t_struct$_HeaderInfo_$1022_memory_ptr_to_t_struct$_HeaderInfo_$1022_memory_ptr_fromStack(value, pos)  -> end  {\n        let tail := add(pos, 0x60)\n\n        {\n            // cache\n\n            let memberValue0 := mload(add(value, 0x00))\n\n            mstore(add(pos, 0x00), sub(tail, pos))\n            tail := abi_encode_t_struct$_CacheControl_$984_memory_ptr_to_t_struct$_CacheControl_$984_memory_ptr(memberValue0, tail)\n\n        }\n\n        {\n            // cors\n\n            let memberValue0 := mload(add(value, 0x20))\n\n            mstore(add(pos, 0x20), sub(tail, pos))\n            tail := abi_encode_t_struct$_CORSPolicy_$1000_memory_ptr_to_t_struct$_CORSPolicy_$1000_memory_ptr(memberValue0, tail)\n\n        }\n\n        {\n            // redirect\n\n            let memberValue0 := mload(add(value, 0x40))\n\n            mstore(add(pos, 0x40), sub(tail, pos))\n            tail := abi_encode_t_struct$_Redirect_$1008_memory_ptr_to_t_struct$_Redirect_$1008_memory_ptr(memberValue0, tail)\n\n        }\n\n        end := tail\n    }\n\n    function abi_encode_tuple_t_struct$_HeaderInfo_$1022_memory_ptr__to_t_struct$_HeaderInfo_$1022_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_struct$_HeaderInfo_$1022_memory_ptr_to_t_struct$_HeaderInfo_$1022_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n    function panic_error_0x22() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x22)\n        revert(0, 0x24)\n    }\n\n    function extract_byte_array_length(data) -> length {\n        length := div(data, 2)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) {\n            length := and(length, 0x7f)\n        }\n\n        if eq(outOfPlaceEncoding, lt(length, 32)) {\n            panic_error_0x22()\n        }\n    }\n\n    function array_dataslot_t_string_storage(ptr) -> data {\n        data := ptr\n\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n\n    }\n\n    function divide_by_32_ceil(value) -> result {\n        result := div(add(value, 31), 32)\n    }\n\n    function shift_left_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shl(bits, value)\n\n    }\n\n    function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n        let shiftBits := mul(shiftBytes, 8)\n        let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n        toInsert := shift_left_dynamic(shiftBits, toInsert)\n        value := and(value, not(mask))\n        result := or(value, and(toInsert, mask))\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function identity(value) -> ret {\n        ret := value\n    }\n\n    function convert_t_uint256_to_t_uint256(value) -> converted {\n        converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n    }\n\n    function prepare_store_t_uint256(value) -> ret {\n        ret := value\n    }\n\n    function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n        let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n        sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n    }\n\n    function zero_value_for_split_t_uint256() -> ret {\n        ret := 0\n    }\n\n    function storage_set_to_zero_t_uint256(slot, offset) {\n        let zero_0 := zero_value_for_split_t_uint256()\n        update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n    }\n\n    function clear_storage_range_t_bytes1(start, end) {\n        for {} lt(start, end) { start := add(start, 1) }\n        {\n            storage_set_to_zero_t_uint256(start, 0)\n        }\n    }\n\n    function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n        if gt(len, 31) {\n            let dataArea := array_dataslot_t_string_storage(array)\n            let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n            // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n            if lt(startIndex, 32) { deleteStart := dataArea }\n            clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n        }\n\n    }\n\n    function shift_right_unsigned_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shr(bits, value)\n\n    }\n\n    function mask_bytes_dynamic(data, bytes) -> result {\n        let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n        result := and(data, mask)\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n        // we want to save only elements that are part of the array after resizing\n        // others should be set to zero\n        data := mask_bytes_dynamic(data, len)\n        used := or(data, mul(2, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n        let newLen := array_length_t_string_memory_ptr(src)\n        // Make sure array length is sane\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n        let oldLen := extract_byte_array_length(sload(slot))\n\n        // potentially truncate data\n        clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n        let srcOffset := 0\n\n        srcOffset := 0x20\n\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(0x1f))\n\n            let dstPtr := array_dataslot_t_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 32)\n            }\n            if lt(loopEnd, newLen) {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n            }\n            sstore(slot, add(mul(newLen, 2), 1))\n        }\n        default {\n            let value := 0\n            if newLen {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n\n    function 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 panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_add_t_uint16(x, y) -> sum {\n        x := cleanup_t_uint16(x)\n        y := cleanup_t_uint16(y)\n        sum := add(x, y)\n\n        if gt(sum, 0xffff) { panic_error_0x11() }\n\n    }\n\n}\n","id":21,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b506040516169b33803806169b383398181016040528101906100329190610c7b565b82828281837fe883badc8743699137027ae6ca9d40716b522f64bf5b61a15f071a2371479c926001819055506100716000801b826100e460201b60201c565b506100876001546000801b6101e160201b60201c565b5080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506100d98161024260201b60201c565b5050505050506113c8565b60006100f6838361025860201b60201c565b6101d657600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506101736102f660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506101db565b600090505b92915050565b60006101f2836102fe60201b60201c565b905081600080858152602001908152602001600020600101819055508181847fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a4505050565b6102556000801b8261031d60201b60201c565b50565b600061026d6000801b8361059660201b60201c565b1561027b57600190506102f0565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60001b83036102dd576102d57f22435ed027edf5f902dc0093fbc24cdb50c05b5fd5f311b78c67c1cbaff60e138361059660201b60201c565b1590506102f0565b6102ed838361059660201b60201c565b90505b92915050565b600033905090565b6000806000838152602001908152602001600020600101549050919050565b6000816040015160000151905060008161ffff1614158015610354575061012c8161ffff16108061035357506101368161ffff16115b5b1561039657816040517f3afff42b00000000000000000000000000000000000000000000000000000000815260040161038d919061102f565b60405180910390fd5b60008260200151602001515190506103b261060060201b60201c565b61ffff168160ff16146103fc57826040517f3afff42b0000000000000000000000000000000000000000000000000000000081526004016103f3919061102f565b60405180910390fd5b826010600086815260200190815260200160002060008201518160000160008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff0219169083600681111561046457610463610cf9565b5b0217905550604082015181600101908161047e9190611267565b50505060208201518160020160008201518160000160006101000a81548161ffff021916908361ffff16021790555060208201518160010190805190602001906104c9929190610626565b5060408201518160020160006101000a81548160ff021916908360058111156104f5576104f4610cf9565b5b0217905550606082015181600301908161050f9190611267565b50505060408201518160060160008201518160000160006101000a81548161ffff021916908361ffff16021790555060208201518160010190816105539190611267565b5050509050507fc4c76143cbd497adc2b5bc159d932dcfa8483928a0d22661d1404ef1c68984a1846040516105889190611348565b60405180910390a150505050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000600160088081111561061757610616610cf9565b5b6106219190611392565b905090565b828054828255906000526020600020908101928215610662579160200282015b82811115610661578251825591602001919060010190610646565b5b50905061066f9190610673565b5090565b5b8082111561068c576000816000905550600101610674565b5090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006106cf826106a4565b9050919050565b6106df816106c4565b81146106ea57600080fd5b50565b6000815190506106fc816106d6565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61075082610707565b810181811067ffffffffffffffff8211171561076f5761076e610718565b5b80604052505050565b6000610782610690565b905061078e8282610747565b919050565b600080fd5b60008115159050919050565b6107ad81610798565b81146107b857600080fd5b50565b6000815190506107ca816107a4565b92915050565b600781106107dd57600080fd5b50565b6000815190506107ef816107d0565b92915050565b600080fd5b600080fd5b600067ffffffffffffffff82111561081a57610819610718565b5b61082382610707565b9050602081019050919050565b60005b8381101561084e578082015181840152602081019050610833565b60008484015250505050565b600061086d610868846107ff565b610778565b905082815260208101848484011115610889576108886107fa565b5b610894848285610830565b509392505050565b600082601f8301126108b1576108b06107f5565b5b81516108c184826020860161085a565b91505092915050565b6000606082840312156108e0576108df610702565b5b6108ea6060610778565b905060006108fa848285016107bb565b600083015250602061090e848285016107e0565b602083015250604082015167ffffffffffffffff81111561093257610931610793565b5b61093e8482850161089c565b60408301525092915050565b600061ffff82169050919050565b6109618161094a565b811461096c57600080fd5b50565b60008151905061097e81610958565b92915050565b600067ffffffffffffffff82111561099f5761099e610718565b5b602082029050602081019050919050565b600080fd5b6000819050919050565b6109c8816109b5565b81146109d357600080fd5b50565b6000815190506109e5816109bf565b92915050565b60006109fe6109f984610984565b610778565b90508083825260208201905060208402830185811115610a2157610a206109b0565b5b835b81811015610a4a5780610a3688826109d6565b845260208401935050602081019050610a23565b5050509392505050565b600082601f830112610a6957610a686107f5565b5b8151610a798482602086016109eb565b91505092915050565b60068110610a8f57600080fd5b50565b600081519050610aa181610a82565b92915050565b600060808284031215610abd57610abc610702565b5b610ac76080610778565b90506000610ad78482850161096f565b600083015250602082015167ffffffffffffffff811115610afb57610afa610793565b5b610b0784828501610a54565b6020830152506040610b1b84828501610a92565b604083015250606082015167ffffffffffffffff811115610b3f57610b3e610793565b5b610b4b8482850161089c565b60608301525092915050565b600060408284031215610b6d57610b6c610702565b5b610b776040610778565b90506000610b878482850161096f565b600083015250602082015167ffffffffffffffff811115610bab57610baa610793565b5b610bb78482850161089c565b60208301525092915050565b600060608284031215610bd957610bd8610702565b5b610be36060610778565b9050600082015167ffffffffffffffff811115610c0357610c02610793565b5b610c0f848285016108ca565b600083015250602082015167ffffffffffffffff811115610c3357610c32610793565b5b610c3f84828501610aa7565b602083015250604082015167ffffffffffffffff811115610c6357610c62610793565b5b610c6f84828501610b57565b60408301525092915050565b600080600060608486031215610c9457610c9361069a565b5b6000610ca2868287016106ed565b9350506020610cb3868287016106ed565b925050604084015167ffffffffffffffff811115610cd457610cd361069f565b5b610ce086828701610bc3565b9150509250925092565b610cf381610798565b82525050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60078110610d3957610d38610cf9565b5b50565b6000819050610d4a82610d28565b919050565b6000610d5a82610d3c565b9050919050565b610d6a81610d4f565b82525050565b600081519050919050565b600082825260208201905092915050565b6000610d9782610d70565b610da18185610d7b565b9350610db1818560208601610830565b610dba81610707565b840191505092915050565b6000606083016000830151610ddd6000860182610cea565b506020830151610df06020860182610d61565b5060408301518482036040860152610e088282610d8c565b9150508091505092915050565b610e1e8161094a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b610e59816109b5565b82525050565b6000610e6b8383610e50565b60208301905092915050565b6000602082019050919050565b6000610e8f82610e24565b610e998185610e2f565b9350610ea483610e40565b8060005b83811015610ed5578151610ebc8882610e5f565b9750610ec783610e77565b925050600181019050610ea8565b5085935050505092915050565b60068110610ef357610ef2610cf9565b5b50565b6000819050610f0482610ee2565b919050565b6000610f1482610ef6565b9050919050565b610f2481610f09565b82525050565b6000608083016000830151610f426000860182610e15565b5060208301518482036020860152610f5a8282610e84565b9150506040830151610f6f6040860182610f1b565b5060608301518482036060860152610f878282610d8c565b9150508091505092915050565b6000604083016000830151610fac6000860182610e15565b5060208301518482036020860152610fc48282610d8c565b9150508091505092915050565b60006060830160008301518482036000860152610fee8282610dc5565b915050602083015184820360208601526110088282610f2a565b915050604083015184820360408601526110228282610f94565b9150508091505092915050565b600060208201905081810360008301526110498184610fd1565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061109857607f821691505b6020821081036110ab576110aa611051565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026111137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826110d6565b61111d86836110d6565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600061116461115f61115a84611135565b61113f565b611135565b9050919050565b6000819050919050565b61117e83611149565b61119261118a8261116b565b8484546110e3565b825550505050565b600090565b6111a761119a565b6111b2818484611175565b505050565b5b818110156111d6576111cb60008261119f565b6001810190506111b8565b5050565b601f82111561121b576111ec816110b1565b6111f5846110c6565b81016020851015611204578190505b611218611210856110c6565b8301826111b7565b50505b505050565b600082821c905092915050565b600061123e60001984600802611220565b1980831691505092915050565b6000611257838361122d565b9150826002028217905092915050565b61127082610d70565b67ffffffffffffffff81111561128957611288610718565b5b6112938254611080565b61129e8282856111da565b600060209050601f8311600181146112d157600084156112bf578287015190505b6112c9858261124b565b865550611331565b601f1984166112df866110b1565b60005b82811015611307578489015182556001820191506020850194506020810190506112e2565b868310156113245784890151611320601f89168261122d565b8355505b6001600288020188555050505b505050505050565b611342816109b5565b82525050565b600060208201905061135d6000830184611339565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061139d8261094a565b91506113a88361094a565b9250828201905061ffff8111156113c2576113c1611363565b5b92915050565b6155dc806113d76000396000f3fe60806040526004361061011f5760003560e01c806391d14854116100a0578063ca63628c11610064578063ca63628c14610410578063d547741f1461044d578063dd0fec4c14610476578063ef4e06ec146104a6578063fd05b634146104d15761011f565b806391d1485414610324578063a217fddf14610361578063b0184e011461038c578063b2455654146103bc578063c2640ed1146103e55761011f565b80632f2ff15d116100e75780632f2ff15d1461024157806332729d5e1461026a578063336875a11461029357806336568abe146102be57806342a4cf7d146102e75761011f565b806301ffc9a71461012457806304f457fa146101615780630f9004b81461018a578063248a9ca3146101c757806328699f1714610204575b600080fd5b34801561013057600080fd5b5061014b60048036038101906101469190613398565b61050e565b60405161015891906133e0565b60405180910390f35b34801561016d57600080fd5b506101886004803603810190610183919061394d565b610588565b005b34801561019657600080fd5b506101b160048036038101906101ac9190613b3e565b6105a2565b6040516101be91906140e4565b60405180910390f35b3480156101d357600080fd5b506101ee60048036038101906101e99190614106565b6105bc565b6040516101fb9190614142565b60405180910390f35b34801561021057600080fd5b5061022b6004803603810190610226919061415d565b6105db565b604051610238919061420b565b60405180910390f35b34801561024d57600080fd5b506102686004803603810190610263919061428b565b6105f5565b005b34801561027657600080fd5b50610291600480360381019061028c9190614106565b610617565b005b34801561029f57600080fd5b506102a8610672565b6040516102b59190614142565b60405180910390f35b3480156102ca57600080fd5b506102e560048036038101906102e0919061428b565b61067c565b005b3480156102f357600080fd5b5061030e60048036038101906103099190614353565b6106f7565b60405161031b91906143d9565b60405180910390f35b34801561033057600080fd5b5061034b6004803603810190610346919061428b565b610841565b60405161035891906133e0565b60405180910390f35b34801561036d57600080fd5b506103766108cd565b6040516103839190614142565b60405180910390f35b6103a660048036038101906103a1919061473d565b6108d4565b6040516103b391906140e4565b60405180910390f35b3480156103c857600080fd5b506103e360048036038101906103de9190614106565b610a71565b005b3480156103f157600080fd5b506103fa610ba4565b60405161040791906147e5565b60405180910390f35b34801561041c57600080fd5b506104376004803603810190610432919061415d565b610bce565b604051610444919061420b565b60405180910390f35b34801561045957600080fd5b50610474600480360381019061046f919061428b565b610cd8565b005b610490600480360381019061048b9190614888565b610cfa565b60405161049d91906140e4565b60405180910390f35b3480156104b257600080fd5b506104bb610dee565b6040516104c891906148f2565b60405180910390f35b3480156104dd57600080fd5b506104f860048036038101906104f3919061490d565b610e86565b6040516105059190614985565b60405180910390f35b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610581575061058082610ea0565b5b9050919050565b6000801b61059581610f0a565b61059e82610f1e565b5050565b6105aa61301f565b6105b5826001610f2e565b9050919050565b6000806000838152602001908152602001600020600101549050919050565b6105e3613045565b6105ee826000610fba565b9050919050565b6105fe826105bc565b61060781610f0a565b6106118383611100565b50505050565b6000801b61062481610f0a565b60006001549050826001819055507f80f9b6a37a676933a62100891a89f9c5ebd8d425dbc6d36160234076dd227abf816001546040516106659291906149a0565b60405180910390a1505050565b6000600154905090565b6106846111f1565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146106e8576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106f282826111f9565b505050565b6106ff613080565b600082600001516000015190506107178160086112eb565b5060006107278460200151611564565b9050610768826040518060a00160405280610741866115b7565b6000015181526020016000815260200160008152602001600081526020018481525061178f565b6000610773836115b7565b90506000610797846040518060400160405280600081526020016000815250611931565b6000015190506040518060400160405280604051806080016040528060c861ffff1681526020016107c788611a82565b81526020018581526020016107dc8686611dd6565b81525081526020018481525094503373ffffffffffffffffffffffffffffffffffffffff167f55c67887bc565be1497d05f1493b6b0b1a9f5240476ebf2ada689d5c296493fa8660405161083091906143d9565b60405180910390a250505050919050565b60006108506000801b83611e09565b1561085e57600190506108c7565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60001b83036108ba576108b27f22435ed027edf5f902dc0093fbc24cdb50c05b5fd5f311b78c67c1cbaff60e1383611e09565b1590506108c7565b6108c48383611e09565b90505b92915050565b6000801b81565b6108dc61301f565b600082600001516000015190506108f48160036112eb565b5060008360400151905060006101f49050600061091084611e73565b9050600061091d856115b7565b60800151905081156109335761093285611e8b565b5b600087604001515111156109655761094b8585611f1f565b50816109585760c961095b565b60c85b60ff16925061096a565b60cc92505b6109a1856040518060a001604052808a6020015181526020016000815260200160008152602001600081526020018481525061178f565b60006109ac866115b7565b905060006109b986611fd0565b905060405180608001604052808661ffff1681526020016109d989611a82565b81526020018381526020016109ee8484611dd6565b81525088600001819052506040518060400160405280828152602001875181525088602001819052503373ffffffffffffffffffffffffffffffffffffffff167f46def6174d80782227f3ccfbaca1edbec0d3b3185a673ec4e577ee84d6cc514689604051610a5d91906140e4565b60405180910390a250505050505050919050565b600154610a7d81610f0a565b81600154811480610a9057506000801b81145b15610ad257806040517f125a2bb7000000000000000000000000000000000000000000000000000000008152600401610ac99190614142565b60405180910390fd5b827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60001b811480610b2357507f22435ed027edf5f902dc0093fbc24cdb50c05b5fd5f311b78c67c1cbaff60e1381145b15610b6557806040517f125a2bb7000000000000000000000000000000000000000000000000000000008152600401610b5c9190614142565b60405180910390fd5b610b7184600154612100565b837f17a96dcfa97ca23bb8a7066cd78d58de2dc54b954a551ba0113958bfe2e13c2a60405160405180910390a250505050565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610bd6613045565b600082600001519050610bea8160056112eb565b50610bf481611e8b565b6000610bff826115b7565b9050604051806080016040528060cc61ffff168152602001610c2084611a82565b8152602001828152602001610c7e83600067ffffffffffffffff811115610c4a57610c49613411565b5b604051908082528060200260200182016040528015610c785781602001602082028036833780820191505090505b50611dd6565b81525092503373ffffffffffffffffffffffffffffffffffffffff167f2bf365ff6e8001ea62dc0ac216f36ce036f1289e9bb002d9122024e5b23319c784604051610cc9919061420b565b60405180910390a25050919050565b610ce1826105bc565b610cea81610f0a565b610cf483836111f9565b50505050565b610d0261301f565b60008260000151600001519050610d1a8160046112eb565b506000836020015190506000610d308383611f1f565b9050610d4185600001516004610fba565b8460000181905250610d5c8151610d578561215b565b612186565b84600001516000019061ffff16908161ffff16815250506040518060400160405280828152602001610d8d8561215b565b81525084602001819052503373ffffffffffffffffffffffffffffffffffffffff167f520fec3c44f5956316e49db6b3cf126095e5356d2f5f12b0bb4dea8a13392bbc85604051610dde91906140e4565b60405180910390a2505050919050565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ef4e06ec6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e819190614a07565b905090565b610e8e6130a3565b610e998260066112eb565b9050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610f1b81610f166111f1565b6121b3565b50565b610f2b6000801b82612204565b50565b610f3661301f565b600083600001516000015190506000610f53856000015185610fba565b90506000610f65838760200151611931565b90508084602001819052506101f4826000015161ffff1603610fa857610f948160000151518260200151612186565b826000019061ffff16908161ffff16815250505b81846000018190525050505092915050565b610fc2613045565b600083600001519050610fd581846112eb565b506000610fe1826115b7565b90506000610fee83611a82565b9050600061101f83611016866040518060400160405280600081526020016000815250611931565b60000151611dd6565b905060006101f49050876040015182148061105257508760200151846060015111158015611051575060008460600151115b5b156110615761013090506110ce565b600083604001516000015161ffff16146110855782604001516000015190506110cd565b6000600881111561109957611098613ba5565b5b8760088111156110ac576110ab613ba5565b5b036110cc5760006110bc8661215b565b90506110c88182612186565b9150505b5b5b60405180608001604052808261ffff168152602001848152602001858152602001838152509550505050505092915050565b600061110c8383610841565b6111e657600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506111836111f1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506111eb565b600090505b92915050565b600033905090565b60006112058383610841565b156112e057600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061127d6111f1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a4600190506112e5565b600090505b92915050565b6112f36130a3565b82826112ff8282612477565b6113625761130c82611a82565b602001516000015161131d83611a82565b60000151600001516040517f1695ed8d000000000000000000000000000000000000000000000000000000008152600401611359929190614aa0565b60405180910390fd5b61136b826124d1565b156113c05761137982611a82565b602001516000015160016040517f1695ed8d0000000000000000000000000000000000000000000000000000000081526004016113b7929190614b28565b60405180910390fd5b600360088111156113d4576113d3613ba5565b5b8160088111156113e7576113e6613ba5565b5b1480611416575060088081111561140157611400613ba5565b5b81600881111561141457611413613ba5565b5b145b806114455750600660088111156114305761142f613ba5565b5b81600881111561144357611442613ba5565b5b145b158015611458575061145682611e73565b155b156114aa5761146682611a82565b60000151600001516040517f658435f30000000000000000000000000000000000000000000000000000000081526004016114a19190614bb0565b60405180910390fd5b6114b5828233612503565b6114ff576114c38282612526565b6040517f84e9e2790000000000000000000000000000000000000000000000000000000081526004016114f69190614c2a565b60405180910390fd5b6006600881111561151357611512613ba5565b5b84600881111561152657611525613ba5565b5b0361155c57604051806040016040528060cc61ffff16815260200161154a87611a82565b602001516000015161ffff1681525092505b505092915050565b600061156f82612588565b905061157b8183612204565b7f516a84c6e4979ef4f74784ed61e83aa5cbe2779d10935d7d9564b2a098d4a5df816040516115aa9190614142565b60405180910390a1919050565b6115bf6130c5565b6011826040516115cf9190614c94565b90815260200160405180910390206040518060a0016040529081600082016040518060800160405290816000820160009054906101000a900460f01b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020016000820160029054906101000a900460f01b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020016000820160049054906101000a900460f01b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020016000820160069054906101000a900460f01b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152505081526020016001820154815260200160028201548152602001600382015481526020016004820154815250509050919050565b611798826125b8565b6011826040516117a89190614c94565b9081526020016040518091039020600101548160200181815250506011826040516117d39190614c94565b9081526020016040518091039020600201548160400181815250506011826040516117fe9190614c94565b9081526020016040518091039020600301548160600181815250508060118360405161182a9190614c94565b908152602001604051809103902060008201518160000160008201518160000160006101000a81548161ffff021916908360f01c021790555060208201518160000160026101000a81548161ffff021916908360f01c021790555060408201518160000160046101000a81548161ffff021916908360f01c021790555060608201518160000160066101000a81548161ffff021916908360f01c02179055505050602082015181600101556040820151816002015560608201518160030155608082015181600401559050507f1c306e70c05992619e2128ad1ef88df75f36c9476282e59f51401b2abaa42e4e826040516119259190614ce4565b60405180910390a15050565b6119396130fd565b60006119448461215b565b9050600061195284836126aa565b9050600060018260000151836020015161196c9190614d35565b6119769190614d78565b90506000620186a0821161198a578161198f565b620186a05b905060008167ffffffffffffffff8111156119ad576119ac613411565b5b6040519080825280602002602001820160405280156119db5781602001602082028036833780820191505090505b50905060005b82811015611a5f576012896040516119f99190614c94565b9081526020016040518091039020818660000151611a179190614dbc565b81548110611a2857611a27614df0565b5b9060005260206000200154828281518110611a4657611a45614df0565b5b60200260200101818152505080806001019150506119e1565b506040518060400160405280828152602001868152509550505050505092915050565b611a8a613117565b60106000611a97846115b7565b608001518152602001908152602001600020604051806060016040529081600082016040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff166006811115611b0457611b03613ba5565b5b6006811115611b1657611b15613ba5565b5b8152602001600182018054611b2a90614e4e565b80601f0160208091040260200160405190810160405280929190818152602001828054611b5690614e4e565b8015611ba35780601f10611b7857610100808354040283529160200191611ba3565b820191906000526020600020905b815481529060010190602001808311611b8657829003601f168201915b5050505050815250508152602001600282016040518060800160405290816000820160009054906101000a900461ffff1661ffff1661ffff16815260200160018201805480602002602001604051908101604052809291908181526020018280548015611c2f57602002820191906000526020600020905b815481526020019060010190808311611c1b575b505050505081526020016002820160009054906101000a900460ff166005811115611c5d57611c5c613ba5565b5b6005811115611c6f57611c6e613ba5565b5b8152602001600382018054611c8390614e4e565b80601f0160208091040260200160405190810160405280929190818152602001828054611caf90614e4e565b8015611cfc5780601f10611cd157610100808354040283529160200191611cfc565b820191906000526020600020905b815481529060010190602001808311611cdf57829003601f168201915b5050505050815250508152602001600682016040518060400160405290816000820160009054906101000a900461ffff1661ffff1661ffff168152602001600182018054611d4990614e4e565b80601f0160208091040260200160405190810160405280929190818152602001828054611d7590614e4e565b8015611dc25780601f10611d9757610100808354040283529160200191611dc2565b820191906000526020600020905b815481529060010190602001808311611da557829003601f168201915b505050505081525050815250509050919050565b60008282604051602001611deb929190614f57565b60405160208183030381529060405280519060200120905092915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600080611e7f836115b7565b60600151119050919050565b601281604051611e9b9190614c94565b90815260200160405180910390206000611eb5919061314a565b6000601182604051611ec79190614c94565b908152602001604051809103902060010181905550611ee581612837565b7f055b00e14f3647ce9af043f85e942a4b8169374d43992a7044ad50a8a7e1845a81604051611f149190614ce4565b60405180910390a150565b6060815167ffffffffffffffff811115611f3c57611f3b613411565b5b604051908082528060200260200182016040528015611f6a5781602001602082028036833780820191505090505b50905060005b8251811015611fc957611f9d84848381518110611f9057611f8f614df0565b5b6020026020010151612a4e565b828281518110611fb057611faf614df0565b5b6020026020010181815250508080600101915050611f70565b5092915050565b60606000825190508067ffffffffffffffff811115611ff257611ff1613411565b5b6040519080825280602002602001820160405280156120205781602001602082028036833780820191505090505b50915060005b818110156120f957612036610dee565b73ffffffffffffffffffffffffffffffffffffffff1663e8a4c04e85838151811061206457612063614df0565b5b6020026020010151600001516040518263ffffffff1660e01b815260040161208c9190614fde565b602060405180830381865afa1580156120a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120cd9190615015565b8382815181106120e0576120df614df0565b5b6020026020010181815250508080600101915050612026565b5050919050565b600061210b836105bc565b905081600080858152602001908152602001600020600101819055508181847fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a4505050565b600060128260405161216d9190614c94565b9081526020016040518091039020805490509050919050565b60008082036121985760cc90506121ad565b8282036121a85760c890506121ad565b60ce90505b92915050565b6121bd8282610841565b6122005780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016121f7929190615051565b60405180910390fd5b5050565b6000816040015160000151905060008161ffff161415801561223b575061012c8161ffff16108061223a57506101368161ffff16115b5b1561227d57816040517f3afff42b00000000000000000000000000000000000000000000000000000000815260040161227491906150d8565b60405180910390fd5b6000826020015160200151519050612293612c68565b61ffff168160ff16146122dd57826040517f3afff42b0000000000000000000000000000000000000000000000000000000081526004016122d491906150d8565b60405180910390fd5b826010600086815260200190815260200160002060008201518160000160008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff0219169083600681111561234557612344613ba5565b5b0217905550604082015181600101908161235f919061529c565b50505060208201518160020160008201518160000160006101000a81548161ffff021916908361ffff16021790555060208201518160010190805190602001906123aa92919061316b565b5060408201518160020160006101000a81548160ff021916908360058111156123d6576123d5613ba5565b5b021790555060608201518160030190816123f0919061529c565b50505060408201518160060160008201518160000160006101000a81548161ffff021916908361ffff1602179055506020820151816001019081612434919061529c565b5050509050507fc4c76143cbd497adc2b5bc159d932dcfa8483928a0d22661d1404ef1c68984a1846040516124699190614142565b60405180910390a150505050565b60006124866000801b33610841565b1561249457600190506124cb565b60008260088111156124a9576124a8613ba5565b5b60ff166001901b6124b985611a82565b60200151600001511661ffff16141590505b92915050565b60006124dc82611a82565b600001516000015180156124fc575060006124f6836115b7565b60400151115b9050919050565b6000806125108585612526565b905061251c8184610841565b9150509392505050565b60008061253284611a82565b602001516020015190506000815103612551576000801b915050612582565b8083600881111561256557612564613ba5565b5b8151811061257657612575614df0565b5b60200260200101519150505b92915050565b60008160405160200161259b91906150d8565b604051602081830303815290604052805190602001209050919050565b426011826040516125c99190614c94565b90815260200160405180910390206003018190555060006012826040516125f09190614c94565b9081526020016040518091039020805490501115612644576011816040516126189190614c94565b9081526020016040518091039020600201600081548092919061263a9061536e565b91905055506126a7565b60006011826040516126569190614c94565b90815260200160405180910390206002015411156126a65760118160405161267e9190614c94565b908152602001604051809103902060020160008154809291906126a09061536e565b91905055505b5b50565b6126b26131b8565b60008290507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84600001511480156126ee575060008460200151145b15612712576000846000018181525050600084602001818152505083915050612831565b6000846020015114801561272a575060008460000151145b1561274e5760018161273c9190614d35565b84602001818152505083915050612831565b60008460000151121561278157836000015160018261276d9190614d35565b6127779190614d78565b8460000181815250505b6000846020015112156127b45783602001516001826127a09190614d35565b6127aa9190614d78565b8460200181815250505b600184602001516127c59190614d78565b846000015113806127da575060008460000151125b806127e85750808460200151135b1561282c5783816040517f6de8558200000000000000000000000000000000000000000000000000000000815260040161282392919061544f565b60405180910390fd5b839150505b92915050565b6129ed81600a6040518060a0016040529081600082016040518060800160405290816000820160009054906101000a900460f01b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020016000820160029054906101000a900460f01b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020016000820160049054906101000a900460f01b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020016000820160069054906101000a900460f01b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681525050815260200160018201548152602001600282015481526020016003820154815260200160048201548152505061178f565b60006011826040516129ff9190614c94565b9081526020016040518091039020600301819055507f510fb78f495511d68f630cfabc06d8a58d5aeb7bc63f3538b9cd46923aa23e5d81604051612a439190614ce4565b60405180910390a150565b6000612a58610dee565b73ffffffffffffffffffffffffffffffffffffffff1663e8a4c04e83600001516040518263ffffffff1660e01b8152600401612a949190614fde565b602060405180830381865afa158015612ab1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ad59190615015565b9050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f6e20077600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fd45d702846040518263ffffffff1660e01b8152600401612b709190614142565b602060405180830381865afa158015612b8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bb191906154a0565b846000015185604001516040518463ffffffff1660e01b8152600401612bd89291906154cd565b60206040518083038185885af1158015612bf6573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612c1b9190615015565b507f688cfefb012ebddc451bd5077139509d5fbfdfc92c33cba16d7e76f16c2f5da883604051612c4b9190614ce4565b60405180910390a1612c6283828460200151612c8e565b92915050565b60006001600880811115612c7f57612c7e613ba5565b5b612c8991906154fd565b905090565b6000612c998461215b565b905080821115612cf75760405180604001604052806000815260200182815250826040517f6de85582000000000000000000000000000000000000000000000000000000008152600401612cee92919061544f565b60405180910390fd5b808203612e0057601284604051612d0e9190614c94565b9081526020016040518091039020839080600181540180825580915050600190039060005260206000200160009091909190915055612d4b610dee565b73ffffffffffffffffffffffffffffffffffffffff16632be681f5846040518263ffffffff1660e01b8152600401612d839190614142565b602060405180830381865afa158015612da0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dc491906154a0565b601185604051612dd49190614c94565b90815260200160405180910390206001016000828254612df49190614dbc565b92505081905550612fd7565b612e08610dee565b73ffffffffffffffffffffffffffffffffffffffff16632be681f5601286604051612e339190614c94565b90815260200160405180910390208481548110612e5357612e52614df0565b5b90600052602060002001546040518263ffffffff1660e01b8152600401612e7a9190614142565b602060405180830381865afa158015612e97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ebb91906154a0565b612ec3610dee565b73ffffffffffffffffffffffffffffffffffffffff16632be681f5856040518263ffffffff1660e01b8152600401612efb9190614142565b602060405180830381865afa158015612f18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f3c91906154a0565b601186604051612f4c9190614c94565b908152602001604051809103902060010154612f689190614dbc565b612f729190615533565b601185604051612f829190614c94565b90815260200160405180910390206001018190555082601285604051612fa89190614c94565b90815260200160405180910390208381548110612fc857612fc7614df0565b5b90600052602060002001819055505b612fe0846125b8565b7fd9104dbb62c9778e68f07361617c0e7c290633d8fc9d4335dd0710803633b93b8483604051613011929190615576565b60405180910390a150505050565b6040518060400160405280613032613045565b815260200161303f6130fd565b81525090565b6040518060800160405280600061ffff168152602001613063613117565b81526020016130706130c5565b8152602001600080191681525090565b6040518060400160405280613093613045565b8152602001600080191681525090565b6040518060400160405280600061ffff168152602001600061ffff1681525090565b6040518060a001604052806130d86131d2565b8152602001600081526020016000815260200160008152602001600080191681525090565b604051806040016040528060608152602001600081525090565b604051806060016040528061312a61327e565b81526020016131376132b3565b81526020016131446132f1565b81525090565b5080546000825590600052602060002090810190613168919061330f565b50565b8280548282559060005260206000209081019282156131a7579160200282015b828111156131a657825182559160200191906001019061318b565b5b5090506131b4919061330f565b5090565b604051806040016040528060008152602001600081525090565b604051806080016040528060007dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200160007dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200160007dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200160007dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681525090565b6040518060600160405280600015158152602001600060068111156132a6576132a5613ba5565b5b8152602001606081525090565b6040518060800160405280600061ffff16815260200160608152602001600060058111156132e4576132e3613ba5565b5b8152602001606081525090565b6040518060400160405280600061ffff168152602001606081525090565b5b80821115613328576000816000905550600101613310565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61337581613340565b811461338057600080fd5b50565b6000813590506133928161336c565b92915050565b6000602082840312156133ae576133ad613336565b5b60006133bc84828501613383565b91505092915050565b60008115159050919050565b6133da816133c5565b82525050565b60006020820190506133f560008301846133d1565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61344982613400565b810181811067ffffffffffffffff8211171561346857613467613411565b5b80604052505050565b600061347b61332c565b90506134878282613440565b919050565b600080fd5b61349a816133c5565b81146134a557600080fd5b50565b6000813590506134b781613491565b92915050565b600781106134ca57600080fd5b50565b6000813590506134dc816134bd565b92915050565b600080fd5b600080fd5b600067ffffffffffffffff82111561350757613506613411565b5b61351082613400565b9050602081019050919050565b82818337600083830152505050565b600061353f61353a846134ec565b613471565b90508281526020810184848401111561355b5761355a6134e7565b5b61356684828561351d565b509392505050565b600082601f830112613583576135826134e2565b5b813561359384826020860161352c565b91505092915050565b6000606082840312156135b2576135b16133fb565b5b6135bc6060613471565b905060006135cc848285016134a8565b60008301525060206135e0848285016134cd565b602083015250604082013567ffffffffffffffff8111156136045761360361348c565b5b6136108482850161356e565b60408301525092915050565b600061ffff82169050919050565b6136338161361c565b811461363e57600080fd5b50565b6000813590506136508161362a565b92915050565b600067ffffffffffffffff82111561367157613670613411565b5b602082029050602081019050919050565b600080fd5b6000819050919050565b61369a81613687565b81146136a557600080fd5b50565b6000813590506136b781613691565b92915050565b60006136d06136cb84613656565b613471565b905080838252602082019050602084028301858111156136f3576136f2613682565b5b835b8181101561371c578061370888826136a8565b8452602084019350506020810190506136f5565b5050509392505050565b600082601f83011261373b5761373a6134e2565b5b813561374b8482602086016136bd565b91505092915050565b6006811061376157600080fd5b50565b60008135905061377381613754565b92915050565b60006080828403121561378f5761378e6133fb565b5b6137996080613471565b905060006137a984828501613641565b600083015250602082013567ffffffffffffffff8111156137cd576137cc61348c565b5b6137d984828501613726565b60208301525060406137ed84828501613764565b604083015250606082013567ffffffffffffffff8111156138115761381061348c565b5b61381d8482850161356e565b60608301525092915050565b60006040828403121561383f5761383e6133fb565b5b6138496040613471565b9050600061385984828501613641565b600083015250602082013567ffffffffffffffff81111561387d5761387c61348c565b5b6138898482850161356e565b60208301525092915050565b6000606082840312156138ab576138aa6133fb565b5b6138b56060613471565b9050600082013567ffffffffffffffff8111156138d5576138d461348c565b5b6138e18482850161359c565b600083015250602082013567ffffffffffffffff8111156139055761390461348c565b5b61391184828501613779565b602083015250604082013567ffffffffffffffff8111156139355761393461348c565b5b61394184828501613829565b60408301525092915050565b60006020828403121561396357613962613336565b5b600082013567ffffffffffffffff8111156139815761398061333b565b5b61398d84828501613895565b91505092915050565b6000819050919050565b6139a981613996565b81146139b457600080fd5b50565b6000813590506139c6816139a0565b92915050565b6000606082840312156139e2576139e16133fb565b5b6139ec6060613471565b9050600082013567ffffffffffffffff811115613a0c57613a0b61348c565b5b613a188482850161356e565b6000830152506020613a2c848285016139b7565b6020830152506040613a40848285016136a8565b60408301525092915050565b6000819050919050565b613a5f81613a4c565b8114613a6a57600080fd5b50565b600081359050613a7c81613a56565b92915050565b600060408284031215613a9857613a976133fb565b5b613aa26040613471565b90506000613ab284828501613a6d565b6000830152506020613ac684828501613a6d565b60208301525092915050565b600060608284031215613ae857613ae76133fb565b5b613af26040613471565b9050600082013567ffffffffffffffff811115613b1257613b1161348c565b5b613b1e848285016139cc565b6000830152506020613b3284828501613a82565b60208301525092915050565b600060208284031215613b5457613b53613336565b5b600082013567ffffffffffffffff811115613b7257613b7161333b565b5b613b7e84828501613ad2565b91505092915050565b613b908161361c565b82525050565b613b9f816133c5565b82525050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60078110613be557613be4613ba5565b5b50565b6000819050613bf682613bd4565b919050565b6000613c0682613be8565b9050919050565b613c1681613bfb565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613c56578082015181840152602081019050613c3b565b60008484015250505050565b6000613c6d82613c1c565b613c778185613c27565b9350613c87818560208601613c38565b613c9081613400565b840191505092915050565b6000606083016000830151613cb36000860182613b96565b506020830151613cc66020860182613c0d565b5060408301518482036040860152613cde8282613c62565b9150508091505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613d2081613687565b82525050565b6000613d328383613d17565b60208301905092915050565b6000602082019050919050565b6000613d5682613ceb565b613d608185613cf6565b9350613d6b83613d07565b8060005b83811015613d9c578151613d838882613d26565b9750613d8e83613d3e565b925050600181019050613d6f565b5085935050505092915050565b60068110613dba57613db9613ba5565b5b50565b6000819050613dcb82613da9565b919050565b6000613ddb82613dbd565b9050919050565b613deb81613dd0565b82525050565b6000608083016000830151613e096000860182613b87565b5060208301518482036020860152613e218282613d4b565b9150506040830151613e366040860182613de2565b5060608301518482036060860152613e4e8282613c62565b9150508091505092915050565b6000604083016000830151613e736000860182613b87565b5060208301518482036020860152613e8b8282613c62565b9150508091505092915050565b60006060830160008301518482036000860152613eb58282613c9b565b91505060208301518482036020860152613ecf8282613df1565b91505060408301518482036040860152613ee98282613e5b565b9150508091505092915050565b60007fffff00000000000000000000000000000000000000000000000000000000000082169050919050565b613f2b81613ef6565b82525050565b608082016000820151613f476000850182613f22565b506020820151613f5a6020850182613f22565b506040820151613f6d6040850182613f22565b506060820151613f806060850182613f22565b50505050565b613f8f81613996565b82525050565b61010082016000820151613fac6000850182613f31565b506020820151613fbf6080850182613f86565b506040820151613fd260a0850182613f86565b506060820151613fe560c0850182613f86565b506080820151613ff860e0850182613d17565b50505050565b6000610160830160008301516140176000860182613b87565b506020830151848203602086015261402f8282613e98565b91505060408301516140446040860182613f95565b506060830151614058610140860182613d17565b508091505092915050565b600060408301600083015184820360008601526140808282613d4b565b91505060208301516140956020860182613f86565b508091505092915050565b600060408301600083015184820360008601526140bd8282613ffe565b915050602083015184820360208601526140d78282614063565b9150508091505092915050565b600060208201905081810360008301526140fe81846140a0565b905092915050565b60006020828403121561411c5761411b613336565b5b600061412a848285016136a8565b91505092915050565b61413c81613687565b82525050565b60006020820190506141576000830184614133565b92915050565b60006020828403121561417357614172613336565b5b600082013567ffffffffffffffff8111156141915761419061333b565b5b61419d848285016139cc565b91505092915050565b6000610160830160008301516141bf6000860182613b87565b50602083015184820360208601526141d78282613e98565b91505060408301516141ec6040860182613f95565b506060830151614200610140860182613d17565b508091505092915050565b6000602082019050818103600083015261422581846141a6565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006142588261422d565b9050919050565b6142688161424d565b811461427357600080fd5b50565b6000813590506142858161425f565b92915050565b600080604083850312156142a2576142a1613336565b5b60006142b0858286016136a8565b92505060206142c185828601614276565b9150509250929050565b6000604082840312156142e1576142e06133fb565b5b6142eb6040613471565b9050600082013567ffffffffffffffff81111561430b5761430a61348c565b5b614317848285016139cc565b600083015250602082013567ffffffffffffffff81111561433b5761433a61348c565b5b61434784828501613895565b60208301525092915050565b60006020828403121561436957614368613336565b5b600082013567ffffffffffffffff8111156143875761438661333b565b5b614393848285016142cb565b91505092915050565b600060408301600083015184820360008601526143b98282613ffe565b91505060208301516143ce6020860182613d17565b508091505092915050565b600060208201905081810360008301526143f3818461439c565b905092915050565b61440481613ef6565b811461440f57600080fd5b50565b600081359050614421816143fb565b92915050565b60006080828403121561443d5761443c6133fb565b5b6144476080613471565b9050600061445784828501614412565b600083015250602061446b84828501614412565b602083015250604061447f84828501614412565b604083015250606061449384828501614412565b60608301525092915050565b600067ffffffffffffffff8211156144ba576144b9613411565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156144e6576144e5613411565b5b6144ef82613400565b9050602081019050919050565b600061450f61450a846144cb565b613471565b90508281526020810184848401111561452b5761452a6134e7565b5b61453684828561351d565b509392505050565b600082601f830112614553576145526134e2565b5b81356145638482602086016144fc565b91505092915050565b600060608284031215614582576145816133fb565b5b61458c6060613471565b9050600082013567ffffffffffffffff8111156145ac576145ab61348c565b5b6145b88482850161453e565b60008301525060206145cc848285016139b7565b60208301525060406145e084828501614276565b60408301525092915050565b60006145ff6145fa8461449f565b613471565b9050808382526020820190506020840283018581111561462257614621613682565b5b835b8181101561466957803567ffffffffffffffff811115614647576146466134e2565b5b808601614654898261456c565b85526020850194505050602081019050614624565b5050509392505050565b600082601f830112614688576146876134e2565b5b81356146988482602086016145ec565b91505092915050565b600060c082840312156146b7576146b66133fb565b5b6146c16060613471565b9050600082013567ffffffffffffffff8111156146e1576146e061348c565b5b6146ed848285016139cc565b600083015250602061470184828501614427565b60208301525060a082013567ffffffffffffffff8111156147255761472461348c565b5b61473184828501614673565b60408301525092915050565b60006020828403121561475357614752613336565b5b600082013567ffffffffffffffff8111156147715761477061333b565b5b61477d848285016146a1565b91505092915050565b6000819050919050565b60006147ab6147a66147a18461422d565b614786565b61422d565b9050919050565b60006147bd82614790565b9050919050565b60006147cf826147b2565b9050919050565b6147df816147c4565b82525050565b60006020820190506147fa60008301846147d6565b92915050565b600060408284031215614816576148156133fb565b5b6148206040613471565b9050600082013567ffffffffffffffff8111156148405761483f61348c565b5b61484c848285016139cc565b600083015250602082013567ffffffffffffffff8111156148705761486f61348c565b5b61487c84828501614673565b60208301525092915050565b60006020828403121561489e5761489d613336565b5b600082013567ffffffffffffffff8111156148bc576148bb61333b565b5b6148c884828501614800565b91505092915050565b60006148dc826147b2565b9050919050565b6148ec816148d1565b82525050565b600060208201905061490760008301846148e3565b92915050565b60006020828403121561492357614922613336565b5b600082013567ffffffffffffffff8111156149415761494061333b565b5b61494d8482850161356e565b91505092915050565b60408201600082015161496c6000850182613b87565b50602082015161497f6020850182613b87565b50505050565b600060408201905061499a6000830184614956565b92915050565b60006040820190506149b56000830185614133565b6149c26020830184614133565b9392505050565b60006149d48261424d565b9050919050565b6149e4816149c9565b81146149ef57600080fd5b50565b600081519050614a01816149db565b92915050565b600060208284031215614a1d57614a1c613336565b5b6000614a2b848285016149f2565b91505092915050565b600082825260208201905092915050565b7f4d6574686f64204e6f7420416c6c6f7765640000000000000000000000000000600082015250565b6000614a7b601283614a34565b9150614a8682614a45565b602082019050919050565b614a9a8161361c565b82525050565b60006060820190508181036000830152614ab981614a6e565b9050614ac86020830185614a91565b614ad560408301846133d1565b9392505050565b7f5265736f7572636520496d6d757461626c650000000000000000000000000000600082015250565b6000614b12601283614a34565b9150614b1d82614adc565b602082019050919050565b60006060820190508181036000830152614b4181614b05565b9050614b506020830185614a91565b614b5d60408301846133d1565b9392505050565b7f4e6f7420466f756e640000000000000000000000000000000000000000000000600082015250565b6000614b9a600983614a34565b9150614ba582614b64565b602082019050919050565b60006040820190508181036000830152614bc981614b8d565b9050614bd860208301846133d1565b92915050565b7f466f7262696464656e0000000000000000000000000000000000000000000000600082015250565b6000614c14600983614a34565b9150614c1f82614bde565b602082019050919050565b60006040820190508181036000830152614c4381614c07565b9050614c526020830184614133565b92915050565b600081905092915050565b6000614c6e82613c1c565b614c788185614c58565b9350614c88818560208601613c38565b80840191505092915050565b6000614ca08284614c63565b915081905092915050565b6000614cb682613c1c565b614cc08185614a34565b9350614cd0818560208601613c38565b614cd981613400565b840191505092915050565b60006020820190508181036000830152614cfe8184614cab565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614d4082613a4c565b9150614d4b83613a4c565b9250828203905081811260008412168282136000851215161715614d7257614d71614d06565b5b92915050565b6000614d8382613a4c565b9150614d8e83613a4c565b925082820190508281121560008312168382126000841215161715614db657614db5614d06565b5b92915050565b6000614dc782613996565b9150614dd283613996565b9250828201905080821115614dea57614de9614d06565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680614e6657607f821691505b602082108103614e7957614e78614e1f565b5b50919050565b61010082016000820151614e966000850182613f31565b506020820151614ea96080850182613f86565b506040820151614ebc60a0850182613f86565b506060820151614ecf60c0850182613f86565b506080820151614ee260e0850182613d17565b50505050565b600082825260208201905092915050565b6000614f0482613ceb565b614f0e8185614ee8565b9350614f1983613d07565b8060005b83811015614f4a578151614f318882613d26565b9750614f3c83613d3e565b925050600181019050614f1d565b5085935050505092915050565b600061012082019050614f6d6000830185614e7f565b818103610100830152614f808184614ef9565b90509392505050565b600081519050919050565b600082825260208201905092915050565b6000614fb082614f89565b614fba8185614f94565b9350614fca818560208601613c38565b614fd381613400565b840191505092915050565b60006020820190508181036000830152614ff88184614fa5565b905092915050565b60008151905061500f81613691565b92915050565b60006020828403121561502b5761502a613336565b5b600061503984828501615000565b91505092915050565b61504b8161424d565b82525050565b60006040820190506150666000830185615042565b6150736020830184614133565b9392505050565b600060608301600083015184820360008601526150978282613c9b565b915050602083015184820360208601526150b18282613df1565b915050604083015184820360408601526150cb8282613e5b565b9150508091505092915050565b600060208201905081810360008301526150f2818461507a565b905092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261515c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261511f565b615166868361511f565b95508019841693508086168417925050509392505050565b600061519961519461518f84613996565b614786565b613996565b9050919050565b6000819050919050565b6151b38361517e565b6151c76151bf826151a0565b84845461512c565b825550505050565b600090565b6151dc6151cf565b6151e78184846151aa565b505050565b5b8181101561520b576152006000826151d4565b6001810190506151ed565b5050565b601f82111561525057615221816150fa565b61522a8461510f565b81016020851015615239578190505b61524d6152458561510f565b8301826151ec565b50505b505050565b600082821c905092915050565b600061527360001984600802615255565b1980831691505092915050565b600061528c8383615262565b9150826002028217905092915050565b6152a582613c1c565b67ffffffffffffffff8111156152be576152bd613411565b5b6152c88254614e4e565b6152d382828561520f565b600060209050601f83116001811461530657600084156152f4578287015190505b6152fe8582615280565b865550615366565b601f198416615314866150fa565b60005b8281101561533c57848901518255600182019150602085019450602081019050615317565b868310156153595784890151615355601f891682615262565b8355505b6001600288020188555050505b505050505050565b600061537982613996565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036153ab576153aa614d06565b5b600182019050919050565b7f4f7574206f6620426f756e647300000000000000000000000000000000000000600082015250565b60006153ec600d83614a34565b91506153f7826153b6565b602082019050919050565b61540b81613a4c565b82525050565b6040820160008201516154276000850182615402565b50602082015161543a6020850182615402565b50505050565b61544981613a4c565b82525050565b60006080820190508181036000830152615468816153df565b90506154776020830185615411565b6154846060830184615440565b9392505050565b60008151905061549a816139a0565b92915050565b6000602082840312156154b6576154b5613336565b5b60006154c48482850161548b565b91505092915050565b600060408201905081810360008301526154e78185614fa5565b90506154f66020830184615042565b9392505050565b60006155088261361c565b91506155138361361c565b9250828201905061ffff81111561552d5761552c614d06565b5b92915050565b600061553e82613996565b915061554983613996565b925082820390508181111561556157615560614d06565b5b92915050565b61557081613996565b82525050565b600060408201905081810360008301526155908185614cab565b905061559f6020830184615567565b939250505056fea26469706673582212208d0f2aff1c7c6bb6bb8c4fa1e7c0c2ac06d17b31ea19035c75273072c27845b364736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x69B3 CODESIZE SUB DUP1 PUSH2 0x69B3 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0xC7B JUMP JUMPDEST DUP3 DUP3 DUP3 DUP2 DUP4 PUSH32 0xE883BADC8743699137027AE6CA9D40716B522F64BF5B61A15F071A2371479C92 PUSH1 0x1 DUP2 SWAP1 SSTORE POP PUSH2 0x71 PUSH1 0x0 DUP1 SHL DUP3 PUSH2 0xE4 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH2 0x87 PUSH1 0x1 SLOAD PUSH1 0x0 DUP1 SHL PUSH2 0x1E1 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP DUP1 PUSH1 0xF PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP PUSH2 0xD9 DUP2 PUSH2 0x242 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP POP POP POP POP POP PUSH2 0x13C8 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF6 DUP4 DUP4 PUSH2 0x258 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x1D6 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 0x173 PUSH2 0x2F6 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 0x1DB JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F2 DUP4 PUSH2 0x2FE 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 PUSH2 0x255 PUSH1 0x0 DUP1 SHL DUP3 PUSH2 0x31D PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x26D PUSH1 0x0 DUP1 SHL DUP4 PUSH2 0x596 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST ISZERO PUSH2 0x27B JUMPI PUSH1 0x1 SWAP1 POP PUSH2 0x2F0 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x0 SHL DUP4 SUB PUSH2 0x2DD JUMPI PUSH2 0x2D5 PUSH32 0x22435ED027EDF5F902DC0093FBC24CDB50C05B5FD5F311B78C67C1CBAFF60E13 DUP4 PUSH2 0x596 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST ISZERO SWAP1 POP PUSH2 0x2F0 JUMP JUMPDEST PUSH2 0x2ED DUP4 DUP4 PUSH2 0x596 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST SWAP1 POP JUMPDEST 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 DUP2 PUSH1 0x40 ADD MLOAD PUSH1 0x0 ADD MLOAD SWAP1 POP PUSH1 0x0 DUP2 PUSH2 0xFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x354 JUMPI POP PUSH2 0x12C DUP2 PUSH2 0xFFFF AND LT DUP1 PUSH2 0x353 JUMPI POP PUSH2 0x136 DUP2 PUSH2 0xFFFF AND GT JUMPDEST JUMPDEST ISZERO PUSH2 0x396 JUMPI DUP2 PUSH1 0x40 MLOAD PUSH32 0x3AFFF42B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x38D SWAP2 SWAP1 PUSH2 0x102F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0x20 ADD MLOAD MLOAD SWAP1 POP PUSH2 0x3B2 PUSH2 0x600 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 PUSH1 0xFF AND EQ PUSH2 0x3FC JUMPI DUP3 PUSH1 0x40 MLOAD PUSH32 0x3AFFF42B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3F3 SWAP2 SWAP1 PUSH2 0x102F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x10 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x464 JUMPI PUSH2 0x463 PUSH2 0xCF9 JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP2 PUSH2 0x47E SWAP2 SWAP1 PUSH2 0x1267 JUMP JUMPDEST POP POP POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH2 0xFFFF MUL NOT AND SWAP1 DUP4 PUSH2 0xFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x4C9 SWAP3 SWAP2 SWAP1 PUSH2 0x626 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x4F5 JUMPI PUSH2 0x4F4 PUSH2 0xCF9 JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD SWAP1 DUP2 PUSH2 0x50F SWAP2 SWAP1 PUSH2 0x1267 JUMP JUMPDEST POP POP POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x6 ADD PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH2 0xFFFF MUL NOT AND SWAP1 DUP4 PUSH2 0xFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP2 PUSH2 0x553 SWAP2 SWAP1 PUSH2 0x1267 JUMP JUMPDEST POP POP POP SWAP1 POP POP PUSH32 0xC4C76143CBD497ADC2B5BC159D932DCFA8483928A0D22661D1404EF1C68984A1 DUP5 PUSH1 0x40 MLOAD PUSH2 0x588 SWAP2 SWAP1 PUSH2 0x1348 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP 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 PUSH1 0x1 PUSH1 0x8 DUP1 DUP2 GT ISZERO PUSH2 0x617 JUMPI PUSH2 0x616 PUSH2 0xCF9 JUMP JUMPDEST JUMPDEST PUSH2 0x621 SWAP2 SWAP1 PUSH2 0x1392 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x662 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x661 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x646 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x66F SWAP2 SWAP1 PUSH2 0x673 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x68C JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x674 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x6CF DUP3 PUSH2 0x6A4 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x6DF DUP2 PUSH2 0x6C4 JUMP JUMPDEST DUP2 EQ PUSH2 0x6EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x6FC DUP2 PUSH2 0x6D6 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 0x750 DUP3 PUSH2 0x707 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x76F JUMPI PUSH2 0x76E PUSH2 0x718 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x782 PUSH2 0x690 JUMP JUMPDEST SWAP1 POP PUSH2 0x78E DUP3 DUP3 PUSH2 0x747 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x7AD DUP2 PUSH2 0x798 JUMP JUMPDEST DUP2 EQ PUSH2 0x7B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x7CA DUP2 PUSH2 0x7A4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x7 DUP2 LT PUSH2 0x7DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x7EF DUP2 PUSH2 0x7D0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x81A JUMPI PUSH2 0x819 PUSH2 0x718 JUMP JUMPDEST JUMPDEST PUSH2 0x823 DUP3 PUSH2 0x707 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x84E JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x833 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x86D PUSH2 0x868 DUP5 PUSH2 0x7FF JUMP JUMPDEST PUSH2 0x778 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x889 JUMPI PUSH2 0x888 PUSH2 0x7FA JUMP JUMPDEST JUMPDEST PUSH2 0x894 DUP5 DUP3 DUP6 PUSH2 0x830 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x8B1 JUMPI PUSH2 0x8B0 PUSH2 0x7F5 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x8C1 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x85A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x8E0 JUMPI PUSH2 0x8DF PUSH2 0x702 JUMP JUMPDEST JUMPDEST PUSH2 0x8EA PUSH1 0x60 PUSH2 0x778 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x8FA DUP5 DUP3 DUP6 ADD PUSH2 0x7BB JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x90E DUP5 DUP3 DUP6 ADD PUSH2 0x7E0 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x932 JUMPI PUSH2 0x931 PUSH2 0x793 JUMP JUMPDEST JUMPDEST PUSH2 0x93E DUP5 DUP3 DUP6 ADD PUSH2 0x89C JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x961 DUP2 PUSH2 0x94A JUMP JUMPDEST DUP2 EQ PUSH2 0x96C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x97E DUP2 PUSH2 0x958 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x99F JUMPI PUSH2 0x99E PUSH2 0x718 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 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x9C8 DUP2 PUSH2 0x9B5 JUMP JUMPDEST DUP2 EQ PUSH2 0x9D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x9E5 DUP2 PUSH2 0x9BF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9FE PUSH2 0x9F9 DUP5 PUSH2 0x984 JUMP JUMPDEST PUSH2 0x778 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 0xA21 JUMPI PUSH2 0xA20 PUSH2 0x9B0 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0xA4A JUMPI DUP1 PUSH2 0xA36 DUP9 DUP3 PUSH2 0x9D6 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xA23 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xA69 JUMPI PUSH2 0xA68 PUSH2 0x7F5 JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0xA79 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x9EB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x6 DUP2 LT PUSH2 0xA8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xAA1 DUP2 PUSH2 0xA82 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xABD JUMPI PUSH2 0xABC PUSH2 0x702 JUMP JUMPDEST JUMPDEST PUSH2 0xAC7 PUSH1 0x80 PUSH2 0x778 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xAD7 DUP5 DUP3 DUP6 ADD PUSH2 0x96F JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xAFB JUMPI PUSH2 0xAFA PUSH2 0x793 JUMP JUMPDEST JUMPDEST PUSH2 0xB07 DUP5 DUP3 DUP6 ADD PUSH2 0xA54 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0xB1B DUP5 DUP3 DUP6 ADD PUSH2 0xA92 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB3F JUMPI PUSH2 0xB3E PUSH2 0x793 JUMP JUMPDEST JUMPDEST PUSH2 0xB4B DUP5 DUP3 DUP6 ADD PUSH2 0x89C JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB6D JUMPI PUSH2 0xB6C PUSH2 0x702 JUMP JUMPDEST JUMPDEST PUSH2 0xB77 PUSH1 0x40 PUSH2 0x778 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB87 DUP5 DUP3 DUP6 ADD PUSH2 0x96F JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xBAB JUMPI PUSH2 0xBAA PUSH2 0x793 JUMP JUMPDEST JUMPDEST PUSH2 0xBB7 DUP5 DUP3 DUP6 ADD PUSH2 0x89C JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBD9 JUMPI PUSH2 0xBD8 PUSH2 0x702 JUMP JUMPDEST JUMPDEST PUSH2 0xBE3 PUSH1 0x60 PUSH2 0x778 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC03 JUMPI PUSH2 0xC02 PUSH2 0x793 JUMP JUMPDEST JUMPDEST PUSH2 0xC0F DUP5 DUP3 DUP6 ADD PUSH2 0x8CA JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC33 JUMPI PUSH2 0xC32 PUSH2 0x793 JUMP JUMPDEST JUMPDEST PUSH2 0xC3F DUP5 DUP3 DUP6 ADD PUSH2 0xAA7 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC63 JUMPI PUSH2 0xC62 PUSH2 0x793 JUMP JUMPDEST JUMPDEST PUSH2 0xC6F DUP5 DUP3 DUP6 ADD PUSH2 0xB57 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xC94 JUMPI PUSH2 0xC93 PUSH2 0x69A JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0xCA2 DUP7 DUP3 DUP8 ADD PUSH2 0x6ED JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0xCB3 DUP7 DUP3 DUP8 ADD PUSH2 0x6ED JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xCD4 JUMPI PUSH2 0xCD3 PUSH2 0x69F JUMP JUMPDEST JUMPDEST PUSH2 0xCE0 DUP7 DUP3 DUP8 ADD PUSH2 0xBC3 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH2 0xCF3 DUP2 PUSH2 0x798 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x7 DUP2 LT PUSH2 0xD39 JUMPI PUSH2 0xD38 PUSH2 0xCF9 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0xD4A DUP3 PUSH2 0xD28 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD5A DUP3 PUSH2 0xD3C JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xD6A DUP2 PUSH2 0xD4F JUMP JUMPDEST DUP3 MSTORE 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 0xD97 DUP3 PUSH2 0xD70 JUMP JUMPDEST PUSH2 0xDA1 DUP2 DUP6 PUSH2 0xD7B JUMP JUMPDEST SWAP4 POP PUSH2 0xDB1 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x830 JUMP JUMPDEST PUSH2 0xDBA DUP2 PUSH2 0x707 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD PUSH2 0xDDD PUSH1 0x0 DUP7 ADD DUP3 PUSH2 0xCEA JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0xDF0 PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0xD61 JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0xE08 DUP3 DUP3 PUSH2 0xD8C JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xE1E DUP2 PUSH2 0x94A JUMP JUMPDEST DUP3 MSTORE 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 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE59 DUP2 PUSH2 0x9B5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE6B DUP4 DUP4 PUSH2 0xE50 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 0xE8F DUP3 PUSH2 0xE24 JUMP JUMPDEST PUSH2 0xE99 DUP2 DUP6 PUSH2 0xE2F JUMP JUMPDEST SWAP4 POP PUSH2 0xEA4 DUP4 PUSH2 0xE40 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xED5 JUMPI DUP2 MLOAD PUSH2 0xEBC DUP9 DUP3 PUSH2 0xE5F JUMP JUMPDEST SWAP8 POP PUSH2 0xEC7 DUP4 PUSH2 0xE77 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0xEA8 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x6 DUP2 LT PUSH2 0xEF3 JUMPI PUSH2 0xEF2 PUSH2 0xCF9 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0xF04 DUP3 PUSH2 0xEE2 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF14 DUP3 PUSH2 0xEF6 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF24 DUP2 PUSH2 0xF09 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD PUSH2 0xF42 PUSH1 0x0 DUP7 ADD DUP3 PUSH2 0xE15 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0xF5A DUP3 DUP3 PUSH2 0xE84 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0xF6F PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0xF1B JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0xF87 DUP3 DUP3 PUSH2 0xD8C JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD PUSH2 0xFAC PUSH1 0x0 DUP7 ADD DUP3 PUSH2 0xE15 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0xFC4 DUP3 DUP3 PUSH2 0xD8C JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x0 DUP7 ADD MSTORE PUSH2 0xFEE DUP3 DUP3 PUSH2 0xDC5 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x1008 DUP3 DUP3 PUSH2 0xF2A JUMP JUMPDEST SWAP2 POP POP PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x1022 DUP3 DUP3 PUSH2 0xF94 JUMP JUMPDEST SWAP2 POP POP DUP1 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 0x1049 DUP2 DUP5 PUSH2 0xFD1 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x1098 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x10AB JUMPI PUSH2 0x10AA PUSH2 0x1051 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0x1113 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x10D6 JUMP JUMPDEST PUSH2 0x111D DUP7 DUP4 PUSH2 0x10D6 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1164 PUSH2 0x115F PUSH2 0x115A DUP5 PUSH2 0x1135 JUMP JUMPDEST PUSH2 0x113F JUMP JUMPDEST PUSH2 0x1135 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x117E DUP4 PUSH2 0x1149 JUMP JUMPDEST PUSH2 0x1192 PUSH2 0x118A DUP3 PUSH2 0x116B JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x10E3 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x11A7 PUSH2 0x119A JUMP JUMPDEST PUSH2 0x11B2 DUP2 DUP5 DUP5 PUSH2 0x1175 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x11D6 JUMPI PUSH2 0x11CB PUSH1 0x0 DUP3 PUSH2 0x119F JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x11B8 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x121B JUMPI PUSH2 0x11EC DUP2 PUSH2 0x10B1 JUMP JUMPDEST PUSH2 0x11F5 DUP5 PUSH2 0x10C6 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x1204 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x1218 PUSH2 0x1210 DUP6 PUSH2 0x10C6 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x11B7 JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x123E PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x1220 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1257 DUP4 DUP4 PUSH2 0x122D JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1270 DUP3 PUSH2 0xD70 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1289 JUMPI PUSH2 0x1288 PUSH2 0x718 JUMP JUMPDEST JUMPDEST PUSH2 0x1293 DUP3 SLOAD PUSH2 0x1080 JUMP JUMPDEST PUSH2 0x129E DUP3 DUP3 DUP6 PUSH2 0x11DA JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x12D1 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x12BF JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x12C9 DUP6 DUP3 PUSH2 0x124B JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x1331 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x12DF DUP7 PUSH2 0x10B1 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1307 JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x12E2 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x1324 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x1320 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x122D JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1342 DUP2 PUSH2 0x9B5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x135D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1339 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 0x139D DUP3 PUSH2 0x94A JUMP JUMPDEST SWAP2 POP PUSH2 0x13A8 DUP4 PUSH2 0x94A JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH2 0xFFFF DUP2 GT ISZERO PUSH2 0x13C2 JUMPI PUSH2 0x13C1 PUSH2 0x1363 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x55DC DUP1 PUSH2 0x13D7 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x11F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x91D14854 GT PUSH2 0xA0 JUMPI DUP1 PUSH4 0xCA63628C GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xCA63628C EQ PUSH2 0x410 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x44D JUMPI DUP1 PUSH4 0xDD0FEC4C EQ PUSH2 0x476 JUMPI DUP1 PUSH4 0xEF4E06EC EQ PUSH2 0x4A6 JUMPI DUP1 PUSH4 0xFD05B634 EQ PUSH2 0x4D1 JUMPI PUSH2 0x11F JUMP JUMPDEST DUP1 PUSH4 0x91D14854 EQ PUSH2 0x324 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x361 JUMPI DUP1 PUSH4 0xB0184E01 EQ PUSH2 0x38C JUMPI DUP1 PUSH4 0xB2455654 EQ PUSH2 0x3BC JUMPI DUP1 PUSH4 0xC2640ED1 EQ PUSH2 0x3E5 JUMPI PUSH2 0x11F JUMP JUMPDEST DUP1 PUSH4 0x2F2FF15D GT PUSH2 0xE7 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x241 JUMPI DUP1 PUSH4 0x32729D5E EQ PUSH2 0x26A JUMPI DUP1 PUSH4 0x336875A1 EQ PUSH2 0x293 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x2BE JUMPI DUP1 PUSH4 0x42A4CF7D EQ PUSH2 0x2E7 JUMPI PUSH2 0x11F JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x124 JUMPI DUP1 PUSH4 0x4F457FA EQ PUSH2 0x161 JUMPI DUP1 PUSH4 0xF9004B8 EQ PUSH2 0x18A JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0x28699F17 EQ PUSH2 0x204 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x130 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x14B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x146 SWAP2 SWAP1 PUSH2 0x3398 JUMP JUMPDEST PUSH2 0x50E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x158 SWAP2 SWAP1 PUSH2 0x33E0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x188 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x183 SWAP2 SWAP1 PUSH2 0x394D JUMP JUMPDEST PUSH2 0x588 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x196 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AC SWAP2 SWAP1 PUSH2 0x3B3E JUMP JUMPDEST PUSH2 0x5A2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0x40E4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E9 SWAP2 SWAP1 PUSH2 0x4106 JUMP JUMPDEST PUSH2 0x5BC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1FB SWAP2 SWAP1 PUSH2 0x4142 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x210 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x226 SWAP2 SWAP1 PUSH2 0x415D JUMP JUMPDEST PUSH2 0x5DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x238 SWAP2 SWAP1 PUSH2 0x420B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x263 SWAP2 SWAP1 PUSH2 0x428B JUMP JUMPDEST PUSH2 0x5F5 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x276 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x291 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x28C SWAP2 SWAP1 PUSH2 0x4106 JUMP JUMPDEST PUSH2 0x617 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A8 PUSH2 0x672 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B5 SWAP2 SWAP1 PUSH2 0x4142 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2E0 SWAP2 SWAP1 PUSH2 0x428B JUMP JUMPDEST PUSH2 0x67C JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x30E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x309 SWAP2 SWAP1 PUSH2 0x4353 JUMP JUMPDEST PUSH2 0x6F7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31B SWAP2 SWAP1 PUSH2 0x43D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x330 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x34B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x346 SWAP2 SWAP1 PUSH2 0x428B JUMP JUMPDEST PUSH2 0x841 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x358 SWAP2 SWAP1 PUSH2 0x33E0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x36D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x376 PUSH2 0x8CD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x383 SWAP2 SWAP1 PUSH2 0x4142 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3A6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3A1 SWAP2 SWAP1 PUSH2 0x473D JUMP JUMPDEST PUSH2 0x8D4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3B3 SWAP2 SWAP1 PUSH2 0x40E4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3DE SWAP2 SWAP1 PUSH2 0x4106 JUMP JUMPDEST PUSH2 0xA71 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FA PUSH2 0xBA4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x407 SWAP2 SWAP1 PUSH2 0x47E5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x437 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x432 SWAP2 SWAP1 PUSH2 0x415D JUMP JUMPDEST PUSH2 0xBCE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x444 SWAP2 SWAP1 PUSH2 0x420B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x459 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x474 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x46F SWAP2 SWAP1 PUSH2 0x428B JUMP JUMPDEST PUSH2 0xCD8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x490 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x48B SWAP2 SWAP1 PUSH2 0x4888 JUMP JUMPDEST PUSH2 0xCFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x49D SWAP2 SWAP1 PUSH2 0x40E4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4BB PUSH2 0xDEE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4C8 SWAP2 SWAP1 PUSH2 0x48F2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4F8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4F3 SWAP2 SWAP1 PUSH2 0x490D JUMP JUMPDEST PUSH2 0xE86 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x505 SWAP2 SWAP1 PUSH2 0x4985 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x581 JUMPI POP PUSH2 0x580 DUP3 PUSH2 0xEA0 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x595 DUP2 PUSH2 0xF0A JUMP JUMPDEST PUSH2 0x59E DUP3 PUSH2 0xF1E JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x5AA PUSH2 0x301F JUMP JUMPDEST PUSH2 0x5B5 DUP3 PUSH1 0x1 PUSH2 0xF2E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 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 0x5E3 PUSH2 0x3045 JUMP JUMPDEST PUSH2 0x5EE DUP3 PUSH1 0x0 PUSH2 0xFBA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x5FE DUP3 PUSH2 0x5BC JUMP JUMPDEST PUSH2 0x607 DUP2 PUSH2 0xF0A JUMP JUMPDEST PUSH2 0x611 DUP4 DUP4 PUSH2 0x1100 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x624 DUP2 PUSH2 0xF0A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SLOAD SWAP1 POP DUP3 PUSH1 0x1 DUP2 SWAP1 SSTORE POP PUSH32 0x80F9B6A37A676933A62100891A89F9C5EBD8D425DBC6D36160234076DD227ABF DUP2 PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH2 0x665 SWAP3 SWAP2 SWAP1 PUSH2 0x49A0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x684 PUSH2 0x11F1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x6E8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6697B23200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6F2 DUP3 DUP3 PUSH2 0x11F9 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x6FF PUSH2 0x3080 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD MLOAD PUSH1 0x0 ADD MLOAD SWAP1 POP PUSH2 0x717 DUP2 PUSH1 0x8 PUSH2 0x12EB JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x727 DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x1564 JUMP JUMPDEST SWAP1 POP PUSH2 0x768 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x741 DUP7 PUSH2 0x15B7 JUMP JUMPDEST PUSH1 0x0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE POP PUSH2 0x178F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x773 DUP4 PUSH2 0x15B7 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x797 DUP5 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1931 JUMP JUMPDEST PUSH1 0x0 ADD MLOAD SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xC8 PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x7C7 DUP9 PUSH2 0x1A82 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x7DC DUP7 DUP7 PUSH2 0x1DD6 JUMP JUMPDEST DUP2 MSTORE POP DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE POP SWAP5 POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x55C67887BC565BE1497D05F1493B6B0B1A9F5240476EBF2ADA689D5C296493FA DUP7 PUSH1 0x40 MLOAD PUSH2 0x830 SWAP2 SWAP1 PUSH2 0x43D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x850 PUSH1 0x0 DUP1 SHL DUP4 PUSH2 0x1E09 JUMP JUMPDEST ISZERO PUSH2 0x85E JUMPI PUSH1 0x1 SWAP1 POP PUSH2 0x8C7 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x0 SHL DUP4 SUB PUSH2 0x8BA JUMPI PUSH2 0x8B2 PUSH32 0x22435ED027EDF5F902DC0093FBC24CDB50C05B5FD5F311B78C67C1CBAFF60E13 DUP4 PUSH2 0x1E09 JUMP JUMPDEST ISZERO SWAP1 POP PUSH2 0x8C7 JUMP JUMPDEST PUSH2 0x8C4 DUP4 DUP4 PUSH2 0x1E09 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST PUSH2 0x8DC PUSH2 0x301F JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD MLOAD PUSH1 0x0 ADD MLOAD SWAP1 POP PUSH2 0x8F4 DUP2 PUSH1 0x3 PUSH2 0x12EB JUMP JUMPDEST POP PUSH1 0x0 DUP4 PUSH1 0x40 ADD MLOAD SWAP1 POP PUSH1 0x0 PUSH2 0x1F4 SWAP1 POP PUSH1 0x0 PUSH2 0x910 DUP5 PUSH2 0x1E73 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x91D DUP6 PUSH2 0x15B7 JUMP JUMPDEST PUSH1 0x80 ADD MLOAD SWAP1 POP DUP2 ISZERO PUSH2 0x933 JUMPI PUSH2 0x932 DUP6 PUSH2 0x1E8B JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP8 PUSH1 0x40 ADD MLOAD MLOAD GT ISZERO PUSH2 0x965 JUMPI PUSH2 0x94B DUP6 DUP6 PUSH2 0x1F1F JUMP JUMPDEST POP DUP2 PUSH2 0x958 JUMPI PUSH1 0xC9 PUSH2 0x95B JUMP JUMPDEST PUSH1 0xC8 JUMPDEST PUSH1 0xFF AND SWAP3 POP PUSH2 0x96A JUMP JUMPDEST PUSH1 0xCC SWAP3 POP JUMPDEST PUSH2 0x9A1 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP11 PUSH1 0x20 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE POP PUSH2 0x178F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9AC DUP7 PUSH2 0x15B7 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x9B9 DUP7 PUSH2 0x1FD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP7 PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x9D9 DUP10 PUSH2 0x1A82 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x9EE DUP5 DUP5 PUSH2 0x1DD6 JUMP JUMPDEST DUP2 MSTORE POP DUP9 PUSH1 0x0 ADD DUP2 SWAP1 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD DUP8 MLOAD DUP2 MSTORE POP DUP9 PUSH1 0x20 ADD DUP2 SWAP1 MSTORE POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x46DEF6174D80782227F3CCFBACA1EDBEC0D3B3185A673EC4E577EE84D6CC5146 DUP10 PUSH1 0x40 MLOAD PUSH2 0xA5D SWAP2 SWAP1 PUSH2 0x40E4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0xA7D DUP2 PUSH2 0xF0A JUMP JUMPDEST DUP2 PUSH1 0x1 SLOAD DUP2 EQ DUP1 PUSH2 0xA90 JUMPI POP PUSH1 0x0 DUP1 SHL DUP2 EQ JUMPDEST ISZERO PUSH2 0xAD2 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x125A2BB700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAC9 SWAP2 SWAP1 PUSH2 0x4142 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x0 SHL DUP2 EQ DUP1 PUSH2 0xB23 JUMPI POP PUSH32 0x22435ED027EDF5F902DC0093FBC24CDB50C05B5FD5F311B78C67C1CBAFF60E13 DUP2 EQ JUMPDEST ISZERO PUSH2 0xB65 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x125A2BB700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB5C SWAP2 SWAP1 PUSH2 0x4142 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB71 DUP5 PUSH1 0x1 SLOAD PUSH2 0x2100 JUMP JUMPDEST DUP4 PUSH32 0x17A96DCFA97CA23BB8A7066CD78D58DE2DC54B954A551BA0113958BFE2E13C2A PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xF PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xBD6 PUSH2 0x3045 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD MLOAD SWAP1 POP PUSH2 0xBEA DUP2 PUSH1 0x5 PUSH2 0x12EB JUMP JUMPDEST POP PUSH2 0xBF4 DUP2 PUSH2 0x1E8B JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBFF DUP3 PUSH2 0x15B7 JUMP JUMPDEST SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xCC PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC20 DUP5 PUSH2 0x1A82 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC7E DUP4 PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC4A JUMPI PUSH2 0xC49 PUSH2 0x3411 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 0xC78 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP PUSH2 0x1DD6 JUMP JUMPDEST DUP2 MSTORE POP SWAP3 POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x2BF365FF6E8001EA62DC0AC216F36CE036F1289E9BB002D9122024E5B23319C7 DUP5 PUSH1 0x40 MLOAD PUSH2 0xCC9 SWAP2 SWAP1 PUSH2 0x420B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCE1 DUP3 PUSH2 0x5BC JUMP JUMPDEST PUSH2 0xCEA DUP2 PUSH2 0xF0A JUMP JUMPDEST PUSH2 0xCF4 DUP4 DUP4 PUSH2 0x11F9 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0xD02 PUSH2 0x301F JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD MLOAD PUSH1 0x0 ADD MLOAD SWAP1 POP PUSH2 0xD1A DUP2 PUSH1 0x4 PUSH2 0x12EB JUMP JUMPDEST POP PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD SWAP1 POP PUSH1 0x0 PUSH2 0xD30 DUP4 DUP4 PUSH2 0x1F1F JUMP JUMPDEST SWAP1 POP PUSH2 0xD41 DUP6 PUSH1 0x0 ADD MLOAD PUSH1 0x4 PUSH2 0xFBA JUMP JUMPDEST DUP5 PUSH1 0x0 ADD DUP2 SWAP1 MSTORE POP PUSH2 0xD5C DUP2 MLOAD PUSH2 0xD57 DUP6 PUSH2 0x215B JUMP JUMPDEST PUSH2 0x2186 JUMP JUMPDEST DUP5 PUSH1 0x0 ADD MLOAD PUSH1 0x0 ADD SWAP1 PUSH2 0xFFFF AND SWAP1 DUP2 PUSH2 0xFFFF AND DUP2 MSTORE POP POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xD8D DUP6 PUSH2 0x215B JUMP JUMPDEST DUP2 MSTORE POP DUP5 PUSH1 0x20 ADD DUP2 SWAP1 MSTORE POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x520FEC3C44F5956316E49DB6B3CF126095E5356D2F5F12B0BB4DEA8A13392BBC DUP6 PUSH1 0x40 MLOAD PUSH2 0xDDE SWAP2 SWAP1 PUSH2 0x40E4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xF PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xEF4E06EC 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 0xE5D 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 0xE81 SWAP2 SWAP1 PUSH2 0x4A07 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xE8E PUSH2 0x30A3 JUMP JUMPDEST PUSH2 0xE99 DUP3 PUSH1 0x6 PUSH2 0x12EB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF1B DUP2 PUSH2 0xF16 PUSH2 0x11F1 JUMP JUMPDEST PUSH2 0x21B3 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xF2B PUSH1 0x0 DUP1 SHL DUP3 PUSH2 0x2204 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xF36 PUSH2 0x301F JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH1 0x0 ADD MLOAD PUSH1 0x0 ADD MLOAD SWAP1 POP PUSH1 0x0 PUSH2 0xF53 DUP6 PUSH1 0x0 ADD MLOAD DUP6 PUSH2 0xFBA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xF65 DUP4 DUP8 PUSH1 0x20 ADD MLOAD PUSH2 0x1931 JUMP JUMPDEST SWAP1 POP DUP1 DUP5 PUSH1 0x20 ADD DUP2 SWAP1 MSTORE POP PUSH2 0x1F4 DUP3 PUSH1 0x0 ADD MLOAD PUSH2 0xFFFF AND SUB PUSH2 0xFA8 JUMPI PUSH2 0xF94 DUP2 PUSH1 0x0 ADD MLOAD MLOAD DUP3 PUSH1 0x20 ADD MLOAD PUSH2 0x2186 JUMP JUMPDEST DUP3 PUSH1 0x0 ADD SWAP1 PUSH2 0xFFFF AND SWAP1 DUP2 PUSH2 0xFFFF AND DUP2 MSTORE POP POP JUMPDEST DUP2 DUP5 PUSH1 0x0 ADD DUP2 SWAP1 MSTORE POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFC2 PUSH2 0x3045 JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH1 0x0 ADD MLOAD SWAP1 POP PUSH2 0xFD5 DUP2 DUP5 PUSH2 0x12EB JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0xFE1 DUP3 PUSH2 0x15B7 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xFEE DUP4 PUSH2 0x1A82 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x101F DUP4 PUSH2 0x1016 DUP7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1931 JUMP JUMPDEST PUSH1 0x0 ADD MLOAD PUSH2 0x1DD6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1F4 SWAP1 POP DUP8 PUSH1 0x40 ADD MLOAD DUP3 EQ DUP1 PUSH2 0x1052 JUMPI POP DUP8 PUSH1 0x20 ADD MLOAD DUP5 PUSH1 0x60 ADD MLOAD GT ISZERO DUP1 ISZERO PUSH2 0x1051 JUMPI POP PUSH1 0x0 DUP5 PUSH1 0x60 ADD MLOAD GT JUMPDEST JUMPDEST ISZERO PUSH2 0x1061 JUMPI PUSH2 0x130 SWAP1 POP PUSH2 0x10CE JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH1 0x40 ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH2 0xFFFF AND EQ PUSH2 0x1085 JUMPI DUP3 PUSH1 0x40 ADD MLOAD PUSH1 0x0 ADD MLOAD SWAP1 POP PUSH2 0x10CD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP2 GT ISZERO PUSH2 0x1099 JUMPI PUSH2 0x1098 PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST DUP8 PUSH1 0x8 DUP2 GT ISZERO PUSH2 0x10AC JUMPI PUSH2 0x10AB PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST SUB PUSH2 0x10CC JUMPI PUSH1 0x0 PUSH2 0x10BC DUP7 PUSH2 0x215B JUMP JUMPDEST SWAP1 POP PUSH2 0x10C8 DUP2 DUP3 PUSH2 0x2186 JUMP JUMPDEST SWAP2 POP POP JUMPDEST JUMPDEST JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP3 PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE POP SWAP6 POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x110C DUP4 DUP4 PUSH2 0x841 JUMP JUMPDEST PUSH2 0x11E6 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 0x1183 PUSH2 0x11F1 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 0x11EB JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1205 DUP4 DUP4 PUSH2 0x841 JUMP JUMPDEST ISZERO PUSH2 0x12E0 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 0x127D PUSH2 0x11F1 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 0x12E5 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x12F3 PUSH2 0x30A3 JUMP JUMPDEST DUP3 DUP3 PUSH2 0x12FF DUP3 DUP3 PUSH2 0x2477 JUMP JUMPDEST PUSH2 0x1362 JUMPI PUSH2 0x130C DUP3 PUSH2 0x1A82 JUMP JUMPDEST PUSH1 0x20 ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH2 0x131D DUP4 PUSH2 0x1A82 JUMP JUMPDEST PUSH1 0x0 ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x1695ED8D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1359 SWAP3 SWAP2 SWAP1 PUSH2 0x4AA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x136B DUP3 PUSH2 0x24D1 JUMP JUMPDEST ISZERO PUSH2 0x13C0 JUMPI PUSH2 0x1379 DUP3 PUSH2 0x1A82 JUMP JUMPDEST PUSH1 0x20 ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x40 MLOAD PUSH32 0x1695ED8D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x13B7 SWAP3 SWAP2 SWAP1 PUSH2 0x4B28 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 PUSH1 0x8 DUP2 GT ISZERO PUSH2 0x13D4 JUMPI PUSH2 0x13D3 PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST DUP2 PUSH1 0x8 DUP2 GT ISZERO PUSH2 0x13E7 JUMPI PUSH2 0x13E6 PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST EQ DUP1 PUSH2 0x1416 JUMPI POP PUSH1 0x8 DUP1 DUP2 GT ISZERO PUSH2 0x1401 JUMPI PUSH2 0x1400 PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST DUP2 PUSH1 0x8 DUP2 GT ISZERO PUSH2 0x1414 JUMPI PUSH2 0x1413 PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST EQ JUMPDEST DUP1 PUSH2 0x1445 JUMPI POP PUSH1 0x6 PUSH1 0x8 DUP2 GT ISZERO PUSH2 0x1430 JUMPI PUSH2 0x142F PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST DUP2 PUSH1 0x8 DUP2 GT ISZERO PUSH2 0x1443 JUMPI PUSH2 0x1442 PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST EQ JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x1458 JUMPI POP PUSH2 0x1456 DUP3 PUSH2 0x1E73 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x14AA JUMPI PUSH2 0x1466 DUP3 PUSH2 0x1A82 JUMP JUMPDEST PUSH1 0x0 ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x658435F300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14A1 SWAP2 SWAP1 PUSH2 0x4BB0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14B5 DUP3 DUP3 CALLER PUSH2 0x2503 JUMP JUMPDEST PUSH2 0x14FF JUMPI PUSH2 0x14C3 DUP3 DUP3 PUSH2 0x2526 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x84E9E27900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14F6 SWAP2 SWAP1 PUSH2 0x4C2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 PUSH1 0x8 DUP2 GT ISZERO PUSH2 0x1513 JUMPI PUSH2 0x1512 PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST DUP5 PUSH1 0x8 DUP2 GT ISZERO PUSH2 0x1526 JUMPI PUSH2 0x1525 PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST SUB PUSH2 0x155C JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xCC PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x154A DUP8 PUSH2 0x1A82 JUMP JUMPDEST PUSH1 0x20 ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH2 0xFFFF AND DUP2 MSTORE POP SWAP3 POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x156F DUP3 PUSH2 0x2588 JUMP JUMPDEST SWAP1 POP PUSH2 0x157B DUP2 DUP4 PUSH2 0x2204 JUMP JUMPDEST PUSH32 0x516A84C6E4979EF4F74784ED61E83AA5CBE2779D10935D7D9564B2A098D4A5DF DUP2 PUSH1 0x40 MLOAD PUSH2 0x15AA SWAP2 SWAP1 PUSH2 0x4142 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x15BF PUSH2 0x30C5 JUMP JUMPDEST PUSH1 0x11 DUP3 PUSH1 0x40 MLOAD PUSH2 0x15CF SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xF0 SHL PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xF0 SHL PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x4 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xF0 SHL PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x6 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xF0 SHL PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1798 DUP3 PUSH2 0x25B8 JUMP JUMPDEST PUSH1 0x11 DUP3 PUSH1 0x40 MLOAD PUSH2 0x17A8 SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD DUP2 PUSH1 0x20 ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x11 DUP3 PUSH1 0x40 MLOAD PUSH2 0x17D3 SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD DUP2 PUSH1 0x40 ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x11 DUP3 PUSH1 0x40 MLOAD PUSH2 0x17FE SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x3 ADD SLOAD DUP2 PUSH1 0x60 ADD DUP2 DUP2 MSTORE POP POP DUP1 PUSH1 0x11 DUP4 PUSH1 0x40 MLOAD PUSH2 0x182A SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH2 0xFFFF MUL NOT AND SWAP1 DUP4 PUSH1 0xF0 SHR MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH2 0xFFFF MUL NOT AND SWAP1 DUP4 PUSH1 0xF0 SHR MUL OR SWAP1 SSTORE POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x4 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH2 0xFFFF MUL NOT AND SWAP1 DUP4 PUSH1 0xF0 SHR MUL OR SWAP1 SSTORE POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x6 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH2 0xFFFF MUL NOT AND SWAP1 DUP4 PUSH1 0xF0 SHR MUL OR SWAP1 SSTORE POP POP POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD SSTORE PUSH1 0x80 DUP3 ADD MLOAD DUP2 PUSH1 0x4 ADD SSTORE SWAP1 POP POP PUSH32 0x1C306E70C05992619E2128AD1EF88DF75F36C9476282E59F51401B2ABAA42E4E DUP3 PUSH1 0x40 MLOAD PUSH2 0x1925 SWAP2 SWAP1 PUSH2 0x4CE4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0x1939 PUSH2 0x30FD JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1944 DUP5 PUSH2 0x215B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1952 DUP5 DUP4 PUSH2 0x26AA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 DUP3 PUSH1 0x0 ADD MLOAD DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0x196C SWAP2 SWAP1 PUSH2 0x4D35 JUMP JUMPDEST PUSH2 0x1976 SWAP2 SWAP1 PUSH2 0x4D78 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH3 0x186A0 DUP3 GT PUSH2 0x198A JUMPI DUP2 PUSH2 0x198F JUMP JUMPDEST PUSH3 0x186A0 JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19AD JUMPI PUSH2 0x19AC PUSH2 0x3411 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 0x19DB JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1A5F JUMPI PUSH1 0x12 DUP10 PUSH1 0x40 MLOAD PUSH2 0x19F9 SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP2 DUP7 PUSH1 0x0 ADD MLOAD PUSH2 0x1A17 SWAP2 SWAP1 PUSH2 0x4DBC JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x1A28 JUMPI PUSH2 0x1A27 PUSH2 0x4DF0 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1A46 JUMPI PUSH2 0x1A45 PUSH2 0x4DF0 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x19E1 JUMP JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE POP SWAP6 POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A8A PUSH2 0x3117 JUMP JUMPDEST PUSH1 0x10 PUSH1 0x0 PUSH2 0x1A97 DUP5 PUSH2 0x15B7 JUMP JUMPDEST PUSH1 0x80 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1B04 JUMPI PUSH2 0x1B03 PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1B16 JUMPI PUSH2 0x1B15 PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH2 0x1B2A SWAP1 PUSH2 0x4E4E JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1B56 SWAP1 PUSH2 0x4E4E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1BA3 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1B78 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1BA3 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1B86 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x1C2F JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x1C1B JUMPI JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x1C5D JUMPI PUSH2 0x1C5C PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x1C6F JUMPI PUSH2 0x1C6E PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH2 0x1C83 SWAP1 PUSH2 0x4E4E JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1CAF SWAP1 PUSH2 0x4E4E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1CFC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1CD1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1CFC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1CDF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH2 0x1D49 SWAP1 PUSH2 0x4E4E JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1D75 SWAP1 PUSH2 0x4E4E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1DC2 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1D97 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1DC2 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1DA5 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1DEB SWAP3 SWAP2 SWAP1 PUSH2 0x4F57 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 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 DUP1 PUSH2 0x1E7F DUP4 PUSH2 0x15B7 JUMP JUMPDEST PUSH1 0x60 ADD MLOAD GT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x12 DUP2 PUSH1 0x40 MLOAD PUSH2 0x1E9B SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x0 PUSH2 0x1EB5 SWAP2 SWAP1 PUSH2 0x314A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x11 DUP3 PUSH1 0x40 MLOAD PUSH2 0x1EC7 SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x1 ADD DUP2 SWAP1 SSTORE POP PUSH2 0x1EE5 DUP2 PUSH2 0x2837 JUMP JUMPDEST PUSH32 0x55B00E14F3647CE9AF043F85E942A4B8169374D43992A7044AD50A8A7E1845A DUP2 PUSH1 0x40 MLOAD PUSH2 0x1F14 SWAP2 SWAP1 PUSH2 0x4CE4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1F3C JUMPI PUSH2 0x1F3B PUSH2 0x3411 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 0x1F6A JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x1FC9 JUMPI PUSH2 0x1F9D DUP5 DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1F90 JUMPI PUSH2 0x1F8F PUSH2 0x4DF0 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x2A4E JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1FB0 JUMPI PUSH2 0x1FAF PUSH2 0x4DF0 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x1F70 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP3 MLOAD SWAP1 POP DUP1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1FF2 JUMPI PUSH2 0x1FF1 PUSH2 0x3411 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 0x2020 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP2 POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x20F9 JUMPI PUSH2 0x2036 PUSH2 0xDEE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xE8A4C04E DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x2064 JUMPI PUSH2 0x2063 PUSH2 0x4DF0 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x208C SWAP2 SWAP1 PUSH2 0x4FDE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20A9 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 0x20CD SWAP2 SWAP1 PUSH2 0x5015 JUMP JUMPDEST DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x20E0 JUMPI PUSH2 0x20DF PUSH2 0x4DF0 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x2026 JUMP JUMPDEST POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x210B DUP4 PUSH2 0x5BC 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 PUSH1 0x12 DUP3 PUSH1 0x40 MLOAD PUSH2 0x216D SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP1 SLOAD SWAP1 POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 SUB PUSH2 0x2198 JUMPI PUSH1 0xCC SWAP1 POP PUSH2 0x21AD JUMP JUMPDEST DUP3 DUP3 SUB PUSH2 0x21A8 JUMPI PUSH1 0xC8 SWAP1 POP PUSH2 0x21AD JUMP JUMPDEST PUSH1 0xCE SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x21BD DUP3 DUP3 PUSH2 0x841 JUMP JUMPDEST PUSH2 0x2200 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH32 0xE2517D3F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21F7 SWAP3 SWAP2 SWAP1 PUSH2 0x5051 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x40 ADD MLOAD PUSH1 0x0 ADD MLOAD SWAP1 POP PUSH1 0x0 DUP2 PUSH2 0xFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x223B JUMPI POP PUSH2 0x12C DUP2 PUSH2 0xFFFF AND LT DUP1 PUSH2 0x223A JUMPI POP PUSH2 0x136 DUP2 PUSH2 0xFFFF AND GT JUMPDEST JUMPDEST ISZERO PUSH2 0x227D JUMPI DUP2 PUSH1 0x40 MLOAD PUSH32 0x3AFFF42B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2274 SWAP2 SWAP1 PUSH2 0x50D8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0x20 ADD MLOAD MLOAD SWAP1 POP PUSH2 0x2293 PUSH2 0x2C68 JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 PUSH1 0xFF AND EQ PUSH2 0x22DD JUMPI DUP3 PUSH1 0x40 MLOAD PUSH32 0x3AFFF42B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22D4 SWAP2 SWAP1 PUSH2 0x50D8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x10 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x2345 JUMPI PUSH2 0x2344 PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP2 PUSH2 0x235F SWAP2 SWAP1 PUSH2 0x529C JUMP JUMPDEST POP POP POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH2 0xFFFF MUL NOT AND SWAP1 DUP4 PUSH2 0xFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x23AA SWAP3 SWAP2 SWAP1 PUSH2 0x316B JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x23D6 JUMPI PUSH2 0x23D5 PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD SWAP1 DUP2 PUSH2 0x23F0 SWAP2 SWAP1 PUSH2 0x529C JUMP JUMPDEST POP POP POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x6 ADD PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH2 0xFFFF MUL NOT AND SWAP1 DUP4 PUSH2 0xFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP2 PUSH2 0x2434 SWAP2 SWAP1 PUSH2 0x529C JUMP JUMPDEST POP POP POP SWAP1 POP POP PUSH32 0xC4C76143CBD497ADC2B5BC159D932DCFA8483928A0D22661D1404EF1C68984A1 DUP5 PUSH1 0x40 MLOAD PUSH2 0x2469 SWAP2 SWAP1 PUSH2 0x4142 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2486 PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x841 JUMP JUMPDEST ISZERO PUSH2 0x2494 JUMPI PUSH1 0x1 SWAP1 POP PUSH2 0x24CB JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x8 DUP2 GT ISZERO PUSH2 0x24A9 JUMPI PUSH2 0x24A8 PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST PUSH1 0xFF AND PUSH1 0x1 SWAP1 SHL PUSH2 0x24B9 DUP6 PUSH2 0x1A82 JUMP JUMPDEST PUSH1 0x20 ADD MLOAD PUSH1 0x0 ADD MLOAD AND PUSH2 0xFFFF AND EQ ISZERO SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24DC DUP3 PUSH2 0x1A82 JUMP JUMPDEST PUSH1 0x0 ADD MLOAD PUSH1 0x0 ADD MLOAD DUP1 ISZERO PUSH2 0x24FC JUMPI POP PUSH1 0x0 PUSH2 0x24F6 DUP4 PUSH2 0x15B7 JUMP JUMPDEST PUSH1 0x40 ADD MLOAD GT JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2510 DUP6 DUP6 PUSH2 0x2526 JUMP JUMPDEST SWAP1 POP PUSH2 0x251C DUP2 DUP5 PUSH2 0x841 JUMP JUMPDEST SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2532 DUP5 PUSH2 0x1A82 JUMP JUMPDEST PUSH1 0x20 ADD MLOAD PUSH1 0x20 ADD MLOAD SWAP1 POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x2551 JUMPI PUSH1 0x0 DUP1 SHL SWAP2 POP POP PUSH2 0x2582 JUMP JUMPDEST DUP1 DUP4 PUSH1 0x8 DUP2 GT ISZERO PUSH2 0x2565 JUMPI PUSH2 0x2564 PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x2576 JUMPI PUSH2 0x2575 PUSH2 0x4DF0 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x259B SWAP2 SWAP1 PUSH2 0x50D8 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 SWAP2 SWAP1 POP JUMP JUMPDEST TIMESTAMP PUSH1 0x11 DUP3 PUSH1 0x40 MLOAD PUSH2 0x25C9 SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x3 ADD DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x12 DUP3 PUSH1 0x40 MLOAD PUSH2 0x25F0 SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP1 SLOAD SWAP1 POP GT ISZERO PUSH2 0x2644 JUMPI PUSH1 0x11 DUP2 PUSH1 0x40 MLOAD PUSH2 0x2618 SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x2 ADD PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x263A SWAP1 PUSH2 0x536E JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH2 0x26A7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x11 DUP3 PUSH1 0x40 MLOAD PUSH2 0x2656 SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD GT ISZERO PUSH2 0x26A6 JUMPI PUSH1 0x11 DUP2 PUSH1 0x40 MLOAD PUSH2 0x267E SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x2 ADD PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x26A0 SWAP1 PUSH2 0x536E JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH2 0x26B2 PUSH2 0x31B8 JUMP JUMPDEST PUSH1 0x0 DUP3 SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 PUSH1 0x0 ADD MLOAD EQ DUP1 ISZERO PUSH2 0x26EE JUMPI POP PUSH1 0x0 DUP5 PUSH1 0x20 ADD MLOAD EQ JUMPDEST ISZERO PUSH2 0x2712 JUMPI PUSH1 0x0 DUP5 PUSH1 0x0 ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x0 DUP5 PUSH1 0x20 ADD DUP2 DUP2 MSTORE POP POP DUP4 SWAP2 POP POP PUSH2 0x2831 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x20 ADD MLOAD EQ DUP1 ISZERO PUSH2 0x272A JUMPI POP PUSH1 0x0 DUP5 PUSH1 0x0 ADD MLOAD EQ JUMPDEST ISZERO PUSH2 0x274E JUMPI PUSH1 0x1 DUP2 PUSH2 0x273C SWAP2 SWAP1 PUSH2 0x4D35 JUMP JUMPDEST DUP5 PUSH1 0x20 ADD DUP2 DUP2 MSTORE POP POP DUP4 SWAP2 POP POP PUSH2 0x2831 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 ADD MLOAD SLT ISZERO PUSH2 0x2781 JUMPI DUP4 PUSH1 0x0 ADD MLOAD PUSH1 0x1 DUP3 PUSH2 0x276D SWAP2 SWAP1 PUSH2 0x4D35 JUMP JUMPDEST PUSH2 0x2777 SWAP2 SWAP1 PUSH2 0x4D78 JUMP JUMPDEST DUP5 PUSH1 0x0 ADD DUP2 DUP2 MSTORE POP POP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x20 ADD MLOAD SLT ISZERO PUSH2 0x27B4 JUMPI DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x1 DUP3 PUSH2 0x27A0 SWAP2 SWAP1 PUSH2 0x4D35 JUMP JUMPDEST PUSH2 0x27AA SWAP2 SWAP1 PUSH2 0x4D78 JUMP JUMPDEST DUP5 PUSH1 0x20 ADD DUP2 DUP2 MSTORE POP POP JUMPDEST PUSH1 0x1 DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x27C5 SWAP2 SWAP1 PUSH2 0x4D78 JUMP JUMPDEST DUP5 PUSH1 0x0 ADD MLOAD SGT DUP1 PUSH2 0x27DA JUMPI POP PUSH1 0x0 DUP5 PUSH1 0x0 ADD MLOAD SLT JUMPDEST DUP1 PUSH2 0x27E8 JUMPI POP DUP1 DUP5 PUSH1 0x20 ADD MLOAD SGT JUMPDEST ISZERO PUSH2 0x282C JUMPI DUP4 DUP2 PUSH1 0x40 MLOAD PUSH32 0x6DE8558200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2823 SWAP3 SWAP2 SWAP1 PUSH2 0x544F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x29ED DUP2 PUSH1 0xA PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xF0 SHL PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xF0 SHL PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x4 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xF0 SHL PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x6 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xF0 SHL PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE POP POP PUSH2 0x178F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x11 DUP3 PUSH1 0x40 MLOAD PUSH2 0x29FF SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x3 ADD DUP2 SWAP1 SSTORE POP PUSH32 0x510FB78F495511D68F630CFABC06D8A58D5AEB7BC63F3538B9CD46923AA23E5D DUP2 PUSH1 0x40 MLOAD PUSH2 0x2A43 SWAP2 SWAP1 PUSH2 0x4CE4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A58 PUSH2 0xDEE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xE8A4C04E DUP4 PUSH1 0x0 ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2A94 SWAP2 SWAP1 PUSH2 0x4FDE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2AB1 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 0x2AD5 SWAP2 SWAP1 PUSH2 0x5015 JUMP JUMPDEST SWAP1 POP PUSH1 0xF PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF6E20077 PUSH1 0xF PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xFD45D702 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2B70 SWAP2 SWAP1 PUSH2 0x4142 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2B8D 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 0x2BB1 SWAP2 SWAP1 PUSH2 0x54A0 JUMP JUMPDEST DUP5 PUSH1 0x0 ADD MLOAD DUP6 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2BD8 SWAP3 SWAP2 SWAP1 PUSH2 0x54CD JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2BF6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP 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 0x2C1B SWAP2 SWAP1 PUSH2 0x5015 JUMP JUMPDEST POP PUSH32 0x688CFEFB012EBDDC451BD5077139509D5FBFDFC92C33CBA16D7E76F16C2F5DA8 DUP4 PUSH1 0x40 MLOAD PUSH2 0x2C4B SWAP2 SWAP1 PUSH2 0x4CE4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x2C62 DUP4 DUP3 DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x2C8E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x8 DUP1 DUP2 GT ISZERO PUSH2 0x2C7F JUMPI PUSH2 0x2C7E PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST PUSH2 0x2C89 SWAP2 SWAP1 PUSH2 0x54FD JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C99 DUP5 PUSH2 0x215B JUMP JUMPDEST SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x2CF7 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE POP DUP3 PUSH1 0x40 MLOAD PUSH32 0x6DE8558200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2CEE SWAP3 SWAP2 SWAP1 PUSH2 0x544F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 DUP3 SUB PUSH2 0x2E00 JUMPI PUSH1 0x12 DUP5 PUSH1 0x40 MLOAD PUSH2 0x2D0E SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP4 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP SSTORE PUSH2 0x2D4B PUSH2 0xDEE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x2BE681F5 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D83 SWAP2 SWAP1 PUSH2 0x4142 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2DA0 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 0x2DC4 SWAP2 SWAP1 PUSH2 0x54A0 JUMP JUMPDEST PUSH1 0x11 DUP6 PUSH1 0x40 MLOAD PUSH2 0x2DD4 SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2DF4 SWAP2 SWAP1 PUSH2 0x4DBC JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x2FD7 JUMP JUMPDEST PUSH2 0x2E08 PUSH2 0xDEE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x2BE681F5 PUSH1 0x12 DUP7 PUSH1 0x40 MLOAD PUSH2 0x2E33 SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x2E53 JUMPI PUSH2 0x2E52 PUSH2 0x4DF0 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E7A SWAP2 SWAP1 PUSH2 0x4142 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2E97 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 0x2EBB SWAP2 SWAP1 PUSH2 0x54A0 JUMP JUMPDEST PUSH2 0x2EC3 PUSH2 0xDEE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x2BE681F5 DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2EFB SWAP2 SWAP1 PUSH2 0x4142 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F18 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 0x2F3C SWAP2 SWAP1 PUSH2 0x54A0 JUMP JUMPDEST PUSH1 0x11 DUP7 PUSH1 0x40 MLOAD PUSH2 0x2F4C SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x2F68 SWAP2 SWAP1 PUSH2 0x4DBC JUMP JUMPDEST PUSH2 0x2F72 SWAP2 SWAP1 PUSH2 0x5533 JUMP JUMPDEST PUSH1 0x11 DUP6 PUSH1 0x40 MLOAD PUSH2 0x2F82 SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x1 ADD DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x12 DUP6 PUSH1 0x40 MLOAD PUSH2 0x2FA8 SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x2FC8 JUMPI PUSH2 0x2FC7 PUSH2 0x4DF0 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP2 SWAP1 SSTORE POP JUMPDEST PUSH2 0x2FE0 DUP5 PUSH2 0x25B8 JUMP JUMPDEST PUSH32 0xD9104DBB62C9778E68F07361617C0E7C290633D8FC9D4335DD0710803633B93B DUP5 DUP4 PUSH1 0x40 MLOAD PUSH2 0x3011 SWAP3 SWAP2 SWAP1 PUSH2 0x5576 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x3032 PUSH2 0x3045 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x303F PUSH2 0x30FD JUMP JUMPDEST DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3063 PUSH2 0x3117 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3070 PUSH2 0x30C5 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x3093 PUSH2 0x3045 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH2 0xFFFF AND DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x30D8 PUSH2 0x31D2 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x312A PUSH2 0x327E JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3137 PUSH2 0x32B3 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3144 PUSH2 0x32F1 JUMP JUMPDEST DUP2 MSTORE POP SWAP1 JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x0 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3168 SWAP2 SWAP1 PUSH2 0x330F JUMP JUMPDEST POP JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x31A7 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x31A6 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x318B JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x31B4 SWAP2 SWAP1 PUSH2 0x330F JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x32A6 JUMPI PUSH2 0x32A5 PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x32E4 JUMPI PUSH2 0x32E3 PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x3328 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x3310 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3375 DUP2 PUSH2 0x3340 JUMP JUMPDEST DUP2 EQ PUSH2 0x3380 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3392 DUP2 PUSH2 0x336C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x33AE JUMPI PUSH2 0x33AD PUSH2 0x3336 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x33BC DUP5 DUP3 DUP6 ADD PUSH2 0x3383 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x33DA DUP2 PUSH2 0x33C5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x33F5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x33D1 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 0x3449 DUP3 PUSH2 0x3400 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x3468 JUMPI PUSH2 0x3467 PUSH2 0x3411 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x347B PUSH2 0x332C JUMP JUMPDEST SWAP1 POP PUSH2 0x3487 DUP3 DUP3 PUSH2 0x3440 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x349A DUP2 PUSH2 0x33C5 JUMP JUMPDEST DUP2 EQ PUSH2 0x34A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x34B7 DUP2 PUSH2 0x3491 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x7 DUP2 LT PUSH2 0x34CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x34DC DUP2 PUSH2 0x34BD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x3507 JUMPI PUSH2 0x3506 PUSH2 0x3411 JUMP JUMPDEST JUMPDEST PUSH2 0x3510 DUP3 PUSH2 0x3400 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 0x353F PUSH2 0x353A DUP5 PUSH2 0x34EC JUMP JUMPDEST PUSH2 0x3471 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x355B JUMPI PUSH2 0x355A PUSH2 0x34E7 JUMP JUMPDEST JUMPDEST PUSH2 0x3566 DUP5 DUP3 DUP6 PUSH2 0x351D JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3583 JUMPI PUSH2 0x3582 PUSH2 0x34E2 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3593 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x352C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x35B2 JUMPI PUSH2 0x35B1 PUSH2 0x33FB JUMP JUMPDEST JUMPDEST PUSH2 0x35BC PUSH1 0x60 PUSH2 0x3471 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x35CC DUP5 DUP3 DUP6 ADD PUSH2 0x34A8 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x35E0 DUP5 DUP3 DUP6 ADD PUSH2 0x34CD JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3604 JUMPI PUSH2 0x3603 PUSH2 0x348C JUMP JUMPDEST JUMPDEST PUSH2 0x3610 DUP5 DUP3 DUP6 ADD PUSH2 0x356E JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3633 DUP2 PUSH2 0x361C JUMP JUMPDEST DUP2 EQ PUSH2 0x363E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3650 DUP2 PUSH2 0x362A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x3671 JUMPI PUSH2 0x3670 PUSH2 0x3411 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 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x369A DUP2 PUSH2 0x3687 JUMP JUMPDEST DUP2 EQ PUSH2 0x36A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x36B7 DUP2 PUSH2 0x3691 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x36D0 PUSH2 0x36CB DUP5 PUSH2 0x3656 JUMP JUMPDEST PUSH2 0x3471 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 0x36F3 JUMPI PUSH2 0x36F2 PUSH2 0x3682 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x371C JUMPI DUP1 PUSH2 0x3708 DUP9 DUP3 PUSH2 0x36A8 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x36F5 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x373B JUMPI PUSH2 0x373A PUSH2 0x34E2 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x374B DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x36BD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x6 DUP2 LT PUSH2 0x3761 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3773 DUP2 PUSH2 0x3754 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x378F JUMPI PUSH2 0x378E PUSH2 0x33FB JUMP JUMPDEST JUMPDEST PUSH2 0x3799 PUSH1 0x80 PUSH2 0x3471 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x37A9 DUP5 DUP3 DUP6 ADD PUSH2 0x3641 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x37CD JUMPI PUSH2 0x37CC PUSH2 0x348C JUMP JUMPDEST JUMPDEST PUSH2 0x37D9 DUP5 DUP3 DUP6 ADD PUSH2 0x3726 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x37ED DUP5 DUP3 DUP6 ADD PUSH2 0x3764 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3811 JUMPI PUSH2 0x3810 PUSH2 0x348C JUMP JUMPDEST JUMPDEST PUSH2 0x381D DUP5 DUP3 DUP6 ADD PUSH2 0x356E JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x383F JUMPI PUSH2 0x383E PUSH2 0x33FB JUMP JUMPDEST JUMPDEST PUSH2 0x3849 PUSH1 0x40 PUSH2 0x3471 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3859 DUP5 DUP3 DUP6 ADD PUSH2 0x3641 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x387D JUMPI PUSH2 0x387C PUSH2 0x348C JUMP JUMPDEST JUMPDEST PUSH2 0x3889 DUP5 DUP3 DUP6 ADD PUSH2 0x356E JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x38AB JUMPI PUSH2 0x38AA PUSH2 0x33FB JUMP JUMPDEST JUMPDEST PUSH2 0x38B5 PUSH1 0x60 PUSH2 0x3471 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x38D5 JUMPI PUSH2 0x38D4 PUSH2 0x348C JUMP JUMPDEST JUMPDEST PUSH2 0x38E1 DUP5 DUP3 DUP6 ADD PUSH2 0x359C JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3905 JUMPI PUSH2 0x3904 PUSH2 0x348C JUMP JUMPDEST JUMPDEST PUSH2 0x3911 DUP5 DUP3 DUP6 ADD PUSH2 0x3779 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3935 JUMPI PUSH2 0x3934 PUSH2 0x348C JUMP JUMPDEST JUMPDEST PUSH2 0x3941 DUP5 DUP3 DUP6 ADD PUSH2 0x3829 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3963 JUMPI PUSH2 0x3962 PUSH2 0x3336 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3981 JUMPI PUSH2 0x3980 PUSH2 0x333B JUMP JUMPDEST JUMPDEST PUSH2 0x398D DUP5 DUP3 DUP6 ADD PUSH2 0x3895 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x39A9 DUP2 PUSH2 0x3996 JUMP JUMPDEST DUP2 EQ PUSH2 0x39B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x39C6 DUP2 PUSH2 0x39A0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x39E2 JUMPI PUSH2 0x39E1 PUSH2 0x33FB JUMP JUMPDEST JUMPDEST PUSH2 0x39EC PUSH1 0x60 PUSH2 0x3471 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3A0C JUMPI PUSH2 0x3A0B PUSH2 0x348C JUMP JUMPDEST JUMPDEST PUSH2 0x3A18 DUP5 DUP3 DUP6 ADD PUSH2 0x356E JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x3A2C DUP5 DUP3 DUP6 ADD PUSH2 0x39B7 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x3A40 DUP5 DUP3 DUP6 ADD PUSH2 0x36A8 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3A5F DUP2 PUSH2 0x3A4C JUMP JUMPDEST DUP2 EQ PUSH2 0x3A6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3A7C DUP2 PUSH2 0x3A56 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3A98 JUMPI PUSH2 0x3A97 PUSH2 0x33FB JUMP JUMPDEST JUMPDEST PUSH2 0x3AA2 PUSH1 0x40 PUSH2 0x3471 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3AB2 DUP5 DUP3 DUP6 ADD PUSH2 0x3A6D JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x3AC6 DUP5 DUP3 DUP6 ADD PUSH2 0x3A6D JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3AE8 JUMPI PUSH2 0x3AE7 PUSH2 0x33FB JUMP JUMPDEST JUMPDEST PUSH2 0x3AF2 PUSH1 0x40 PUSH2 0x3471 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3B12 JUMPI PUSH2 0x3B11 PUSH2 0x348C JUMP JUMPDEST JUMPDEST PUSH2 0x3B1E DUP5 DUP3 DUP6 ADD PUSH2 0x39CC JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x3B32 DUP5 DUP3 DUP6 ADD PUSH2 0x3A82 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3B54 JUMPI PUSH2 0x3B53 PUSH2 0x3336 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3B72 JUMPI PUSH2 0x3B71 PUSH2 0x333B JUMP JUMPDEST JUMPDEST PUSH2 0x3B7E DUP5 DUP3 DUP6 ADD PUSH2 0x3AD2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x3B90 DUP2 PUSH2 0x361C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x3B9F DUP2 PUSH2 0x33C5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x7 DUP2 LT PUSH2 0x3BE5 JUMPI PUSH2 0x3BE4 PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0x3BF6 DUP3 PUSH2 0x3BD4 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C06 DUP3 PUSH2 0x3BE8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3C16 DUP2 PUSH2 0x3BFB JUMP JUMPDEST DUP3 MSTORE 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 0x3C56 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x3C3B JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C6D DUP3 PUSH2 0x3C1C JUMP JUMPDEST PUSH2 0x3C77 DUP2 DUP6 PUSH2 0x3C27 JUMP JUMPDEST SWAP4 POP PUSH2 0x3C87 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3C38 JUMP JUMPDEST PUSH2 0x3C90 DUP2 PUSH2 0x3400 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD PUSH2 0x3CB3 PUSH1 0x0 DUP7 ADD DUP3 PUSH2 0x3B96 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x3CC6 PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x3C0D JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x3CDE DUP3 DUP3 PUSH2 0x3C62 JUMP JUMPDEST SWAP2 POP POP DUP1 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 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3D20 DUP2 PUSH2 0x3687 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3D32 DUP4 DUP4 PUSH2 0x3D17 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 0x3D56 DUP3 PUSH2 0x3CEB JUMP JUMPDEST PUSH2 0x3D60 DUP2 DUP6 PUSH2 0x3CF6 JUMP JUMPDEST SWAP4 POP PUSH2 0x3D6B DUP4 PUSH2 0x3D07 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3D9C JUMPI DUP2 MLOAD PUSH2 0x3D83 DUP9 DUP3 PUSH2 0x3D26 JUMP JUMPDEST SWAP8 POP PUSH2 0x3D8E DUP4 PUSH2 0x3D3E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x3D6F JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x6 DUP2 LT PUSH2 0x3DBA JUMPI PUSH2 0x3DB9 PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0x3DCB DUP3 PUSH2 0x3DA9 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3DDB DUP3 PUSH2 0x3DBD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3DEB DUP2 PUSH2 0x3DD0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD PUSH2 0x3E09 PUSH1 0x0 DUP7 ADD DUP3 PUSH2 0x3B87 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x3E21 DUP3 DUP3 PUSH2 0x3D4B JUMP JUMPDEST SWAP2 POP POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x3E36 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x3DE2 JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x3E4E DUP3 DUP3 PUSH2 0x3C62 JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD PUSH2 0x3E73 PUSH1 0x0 DUP7 ADD DUP3 PUSH2 0x3B87 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x3E8B DUP3 DUP3 PUSH2 0x3C62 JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x0 DUP7 ADD MSTORE PUSH2 0x3EB5 DUP3 DUP3 PUSH2 0x3C9B JUMP JUMPDEST SWAP2 POP POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x3ECF DUP3 DUP3 PUSH2 0x3DF1 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x3EE9 DUP3 DUP3 PUSH2 0x3E5B JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFF000000000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3F2B DUP2 PUSH2 0x3EF6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x80 DUP3 ADD PUSH1 0x0 DUP3 ADD MLOAD PUSH2 0x3F47 PUSH1 0x0 DUP6 ADD DUP3 PUSH2 0x3F22 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x3F5A PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x3F22 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH2 0x3F6D PUSH1 0x40 DUP6 ADD DUP3 PUSH2 0x3F22 JUMP JUMPDEST POP PUSH1 0x60 DUP3 ADD MLOAD PUSH2 0x3F80 PUSH1 0x60 DUP6 ADD DUP3 PUSH2 0x3F22 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x3F8F DUP2 PUSH2 0x3996 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x100 DUP3 ADD PUSH1 0x0 DUP3 ADD MLOAD PUSH2 0x3FAC PUSH1 0x0 DUP6 ADD DUP3 PUSH2 0x3F31 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x3FBF PUSH1 0x80 DUP6 ADD DUP3 PUSH2 0x3F86 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH2 0x3FD2 PUSH1 0xA0 DUP6 ADD DUP3 PUSH2 0x3F86 JUMP JUMPDEST POP PUSH1 0x60 DUP3 ADD MLOAD PUSH2 0x3FE5 PUSH1 0xC0 DUP6 ADD DUP3 PUSH2 0x3F86 JUMP JUMPDEST POP PUSH1 0x80 DUP3 ADD MLOAD PUSH2 0x3FF8 PUSH1 0xE0 DUP6 ADD DUP3 PUSH2 0x3D17 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x160 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD PUSH2 0x4017 PUSH1 0x0 DUP7 ADD DUP3 PUSH2 0x3B87 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x402F DUP3 DUP3 PUSH2 0x3E98 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x4044 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x3F95 JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x4058 PUSH2 0x140 DUP7 ADD DUP3 PUSH2 0x3D17 JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x0 DUP7 ADD MSTORE PUSH2 0x4080 DUP3 DUP3 PUSH2 0x3D4B JUMP JUMPDEST SWAP2 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x4095 PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x3F86 JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x0 DUP7 ADD MSTORE PUSH2 0x40BD DUP3 DUP3 PUSH2 0x3FFE JUMP JUMPDEST SWAP2 POP POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x40D7 DUP3 DUP3 PUSH2 0x4063 JUMP JUMPDEST SWAP2 POP POP DUP1 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 0x40FE DUP2 DUP5 PUSH2 0x40A0 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x411C JUMPI PUSH2 0x411B PUSH2 0x3336 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x412A DUP5 DUP3 DUP6 ADD PUSH2 0x36A8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x413C DUP2 PUSH2 0x3687 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x4157 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x4133 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4173 JUMPI PUSH2 0x4172 PUSH2 0x3336 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4191 JUMPI PUSH2 0x4190 PUSH2 0x333B JUMP JUMPDEST JUMPDEST PUSH2 0x419D DUP5 DUP3 DUP6 ADD PUSH2 0x39CC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x160 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD PUSH2 0x41BF PUSH1 0x0 DUP7 ADD DUP3 PUSH2 0x3B87 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x41D7 DUP3 DUP3 PUSH2 0x3E98 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x41EC PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x3F95 JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x4200 PUSH2 0x140 DUP7 ADD DUP3 PUSH2 0x3D17 JUMP JUMPDEST POP DUP1 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 0x4225 DUP2 DUP5 PUSH2 0x41A6 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4258 DUP3 PUSH2 0x422D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x4268 DUP2 PUSH2 0x424D JUMP JUMPDEST DUP2 EQ PUSH2 0x4273 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x4285 DUP2 PUSH2 0x425F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x42A2 JUMPI PUSH2 0x42A1 PUSH2 0x3336 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x42B0 DUP6 DUP3 DUP7 ADD PUSH2 0x36A8 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x42C1 DUP6 DUP3 DUP7 ADD PUSH2 0x4276 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x42E1 JUMPI PUSH2 0x42E0 PUSH2 0x33FB JUMP JUMPDEST JUMPDEST PUSH2 0x42EB PUSH1 0x40 PUSH2 0x3471 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x430B JUMPI PUSH2 0x430A PUSH2 0x348C JUMP JUMPDEST JUMPDEST PUSH2 0x4317 DUP5 DUP3 DUP6 ADD PUSH2 0x39CC JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x433B JUMPI PUSH2 0x433A PUSH2 0x348C JUMP JUMPDEST JUMPDEST PUSH2 0x4347 DUP5 DUP3 DUP6 ADD PUSH2 0x3895 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4369 JUMPI PUSH2 0x4368 PUSH2 0x3336 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4387 JUMPI PUSH2 0x4386 PUSH2 0x333B JUMP JUMPDEST JUMPDEST PUSH2 0x4393 DUP5 DUP3 DUP6 ADD PUSH2 0x42CB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x0 DUP7 ADD MSTORE PUSH2 0x43B9 DUP3 DUP3 PUSH2 0x3FFE JUMP JUMPDEST SWAP2 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x43CE PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x3D17 JUMP JUMPDEST POP DUP1 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 0x43F3 DUP2 DUP5 PUSH2 0x439C JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x4404 DUP2 PUSH2 0x3EF6 JUMP JUMPDEST DUP2 EQ PUSH2 0x440F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x4421 DUP2 PUSH2 0x43FB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x443D JUMPI PUSH2 0x443C PUSH2 0x33FB JUMP JUMPDEST JUMPDEST PUSH2 0x4447 PUSH1 0x80 PUSH2 0x3471 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x4457 DUP5 DUP3 DUP6 ADD PUSH2 0x4412 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x446B DUP5 DUP3 DUP6 ADD PUSH2 0x4412 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x447F DUP5 DUP3 DUP6 ADD PUSH2 0x4412 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x4493 DUP5 DUP3 DUP6 ADD PUSH2 0x4412 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x44BA JUMPI PUSH2 0x44B9 PUSH2 0x3411 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x44E6 JUMPI PUSH2 0x44E5 PUSH2 0x3411 JUMP JUMPDEST JUMPDEST PUSH2 0x44EF DUP3 PUSH2 0x3400 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x450F PUSH2 0x450A DUP5 PUSH2 0x44CB JUMP JUMPDEST PUSH2 0x3471 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x452B JUMPI PUSH2 0x452A PUSH2 0x34E7 JUMP JUMPDEST JUMPDEST PUSH2 0x4536 DUP5 DUP3 DUP6 PUSH2 0x351D JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4553 JUMPI PUSH2 0x4552 PUSH2 0x34E2 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4563 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x44FC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4582 JUMPI PUSH2 0x4581 PUSH2 0x33FB JUMP JUMPDEST JUMPDEST PUSH2 0x458C PUSH1 0x60 PUSH2 0x3471 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x45AC JUMPI PUSH2 0x45AB PUSH2 0x348C JUMP JUMPDEST JUMPDEST PUSH2 0x45B8 DUP5 DUP3 DUP6 ADD PUSH2 0x453E JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x45CC DUP5 DUP3 DUP6 ADD PUSH2 0x39B7 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x45E0 DUP5 DUP3 DUP6 ADD PUSH2 0x4276 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x45FF PUSH2 0x45FA DUP5 PUSH2 0x449F JUMP JUMPDEST PUSH2 0x3471 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 0x4622 JUMPI PUSH2 0x4621 PUSH2 0x3682 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x4669 JUMPI DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4647 JUMPI PUSH2 0x4646 PUSH2 0x34E2 JUMP JUMPDEST JUMPDEST DUP1 DUP7 ADD PUSH2 0x4654 DUP10 DUP3 PUSH2 0x456C JUMP JUMPDEST DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP5 POP POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x4624 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4688 JUMPI PUSH2 0x4687 PUSH2 0x34E2 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4698 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x45EC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x46B7 JUMPI PUSH2 0x46B6 PUSH2 0x33FB JUMP JUMPDEST JUMPDEST PUSH2 0x46C1 PUSH1 0x60 PUSH2 0x3471 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x46E1 JUMPI PUSH2 0x46E0 PUSH2 0x348C JUMP JUMPDEST JUMPDEST PUSH2 0x46ED DUP5 DUP3 DUP6 ADD PUSH2 0x39CC JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x4701 DUP5 DUP3 DUP6 ADD PUSH2 0x4427 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0xA0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4725 JUMPI PUSH2 0x4724 PUSH2 0x348C JUMP JUMPDEST JUMPDEST PUSH2 0x4731 DUP5 DUP3 DUP6 ADD PUSH2 0x4673 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4753 JUMPI PUSH2 0x4752 PUSH2 0x3336 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4771 JUMPI PUSH2 0x4770 PUSH2 0x333B JUMP JUMPDEST JUMPDEST PUSH2 0x477D DUP5 DUP3 DUP6 ADD PUSH2 0x46A1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x47AB PUSH2 0x47A6 PUSH2 0x47A1 DUP5 PUSH2 0x422D JUMP JUMPDEST PUSH2 0x4786 JUMP JUMPDEST PUSH2 0x422D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x47BD DUP3 PUSH2 0x4790 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x47CF DUP3 PUSH2 0x47B2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x47DF DUP2 PUSH2 0x47C4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x47FA PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x47D6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4816 JUMPI PUSH2 0x4815 PUSH2 0x33FB JUMP JUMPDEST JUMPDEST PUSH2 0x4820 PUSH1 0x40 PUSH2 0x3471 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4840 JUMPI PUSH2 0x483F PUSH2 0x348C JUMP JUMPDEST JUMPDEST PUSH2 0x484C DUP5 DUP3 DUP6 ADD PUSH2 0x39CC JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4870 JUMPI PUSH2 0x486F PUSH2 0x348C JUMP JUMPDEST JUMPDEST PUSH2 0x487C DUP5 DUP3 DUP6 ADD PUSH2 0x4673 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x489E JUMPI PUSH2 0x489D PUSH2 0x3336 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x48BC JUMPI PUSH2 0x48BB PUSH2 0x333B JUMP JUMPDEST JUMPDEST PUSH2 0x48C8 DUP5 DUP3 DUP6 ADD PUSH2 0x4800 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x48DC DUP3 PUSH2 0x47B2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x48EC DUP2 PUSH2 0x48D1 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x4907 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x48E3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4923 JUMPI PUSH2 0x4922 PUSH2 0x3336 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4941 JUMPI PUSH2 0x4940 PUSH2 0x333B JUMP JUMPDEST JUMPDEST PUSH2 0x494D DUP5 DUP3 DUP6 ADD PUSH2 0x356E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP3 ADD PUSH1 0x0 DUP3 ADD MLOAD PUSH2 0x496C PUSH1 0x0 DUP6 ADD DUP3 PUSH2 0x3B87 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x497F PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x3B87 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x499A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x4956 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x49B5 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x4133 JUMP JUMPDEST PUSH2 0x49C2 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x4133 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x49D4 DUP3 PUSH2 0x424D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x49E4 DUP2 PUSH2 0x49C9 JUMP JUMPDEST DUP2 EQ PUSH2 0x49EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x4A01 DUP2 PUSH2 0x49DB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4A1D JUMPI PUSH2 0x4A1C PUSH2 0x3336 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x4A2B DUP5 DUP3 DUP6 ADD PUSH2 0x49F2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4D6574686F64204E6F7420416C6C6F7765640000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4A7B PUSH1 0x12 DUP4 PUSH2 0x4A34 JUMP JUMPDEST SWAP2 POP PUSH2 0x4A86 DUP3 PUSH2 0x4A45 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x4A9A DUP2 PUSH2 0x361C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4AB9 DUP2 PUSH2 0x4A6E JUMP JUMPDEST SWAP1 POP PUSH2 0x4AC8 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x4A91 JUMP JUMPDEST PUSH2 0x4AD5 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x33D1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x5265736F7572636520496D6D757461626C650000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4B12 PUSH1 0x12 DUP4 PUSH2 0x4A34 JUMP JUMPDEST SWAP2 POP PUSH2 0x4B1D DUP3 PUSH2 0x4ADC JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4B41 DUP2 PUSH2 0x4B05 JUMP JUMPDEST SWAP1 POP PUSH2 0x4B50 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x4A91 JUMP JUMPDEST PUSH2 0x4B5D PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x33D1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E6F7420466F756E640000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4B9A PUSH1 0x9 DUP4 PUSH2 0x4A34 JUMP JUMPDEST SWAP2 POP PUSH2 0x4BA5 DUP3 PUSH2 0x4B64 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4BC9 DUP2 PUSH2 0x4B8D JUMP JUMPDEST SWAP1 POP PUSH2 0x4BD8 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x33D1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x466F7262696464656E0000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C14 PUSH1 0x9 DUP4 PUSH2 0x4A34 JUMP JUMPDEST SWAP2 POP PUSH2 0x4C1F DUP3 PUSH2 0x4BDE JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4C43 DUP2 PUSH2 0x4C07 JUMP JUMPDEST SWAP1 POP PUSH2 0x4C52 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x4133 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C6E DUP3 PUSH2 0x3C1C JUMP JUMPDEST PUSH2 0x4C78 DUP2 DUP6 PUSH2 0x4C58 JUMP JUMPDEST SWAP4 POP PUSH2 0x4C88 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3C38 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4CA0 DUP3 DUP5 PUSH2 0x4C63 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4CB6 DUP3 PUSH2 0x3C1C JUMP JUMPDEST PUSH2 0x4CC0 DUP2 DUP6 PUSH2 0x4A34 JUMP JUMPDEST SWAP4 POP PUSH2 0x4CD0 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3C38 JUMP JUMPDEST PUSH2 0x4CD9 DUP2 PUSH2 0x3400 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 0x4CFE DUP2 DUP5 PUSH2 0x4CAB JUMP JUMPDEST SWAP1 POP 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 0x4D40 DUP3 PUSH2 0x3A4C JUMP JUMPDEST SWAP2 POP PUSH2 0x4D4B DUP4 PUSH2 0x3A4C JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 SLT PUSH1 0x0 DUP5 SLT AND DUP3 DUP3 SGT PUSH1 0x0 DUP6 SLT ISZERO AND OR ISZERO PUSH2 0x4D72 JUMPI PUSH2 0x4D71 PUSH2 0x4D06 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D83 DUP3 PUSH2 0x3A4C JUMP JUMPDEST SWAP2 POP PUSH2 0x4D8E DUP4 PUSH2 0x3A4C JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP3 DUP2 SLT ISZERO PUSH1 0x0 DUP4 SLT AND DUP4 DUP3 SLT PUSH1 0x0 DUP5 SLT ISZERO AND OR ISZERO PUSH2 0x4DB6 JUMPI PUSH2 0x4DB5 PUSH2 0x4D06 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4DC7 DUP3 PUSH2 0x3996 JUMP JUMPDEST SWAP2 POP PUSH2 0x4DD2 DUP4 PUSH2 0x3996 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x4DEA JUMPI PUSH2 0x4DE9 PUSH2 0x4D06 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x4E66 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x4E79 JUMPI PUSH2 0x4E78 PUSH2 0x4E1F JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x100 DUP3 ADD PUSH1 0x0 DUP3 ADD MLOAD PUSH2 0x4E96 PUSH1 0x0 DUP6 ADD DUP3 PUSH2 0x3F31 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x4EA9 PUSH1 0x80 DUP6 ADD DUP3 PUSH2 0x3F86 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH2 0x4EBC PUSH1 0xA0 DUP6 ADD DUP3 PUSH2 0x3F86 JUMP JUMPDEST POP PUSH1 0x60 DUP3 ADD MLOAD PUSH2 0x4ECF PUSH1 0xC0 DUP6 ADD DUP3 PUSH2 0x3F86 JUMP JUMPDEST POP PUSH1 0x80 DUP3 ADD MLOAD PUSH2 0x4EE2 PUSH1 0xE0 DUP6 ADD DUP3 PUSH2 0x3D17 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F04 DUP3 PUSH2 0x3CEB JUMP JUMPDEST PUSH2 0x4F0E DUP2 DUP6 PUSH2 0x4EE8 JUMP JUMPDEST SWAP4 POP PUSH2 0x4F19 DUP4 PUSH2 0x3D07 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4F4A JUMPI DUP2 MLOAD PUSH2 0x4F31 DUP9 DUP3 PUSH2 0x3D26 JUMP JUMPDEST SWAP8 POP PUSH2 0x4F3C DUP4 PUSH2 0x3D3E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x4F1D JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP3 ADD SWAP1 POP PUSH2 0x4F6D PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x4E7F JUMP JUMPDEST DUP2 DUP2 SUB PUSH2 0x100 DUP4 ADD MSTORE PUSH2 0x4F80 DUP2 DUP5 PUSH2 0x4EF9 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 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 PUSH2 0x4FB0 DUP3 PUSH2 0x4F89 JUMP JUMPDEST PUSH2 0x4FBA DUP2 DUP6 PUSH2 0x4F94 JUMP JUMPDEST SWAP4 POP PUSH2 0x4FCA DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3C38 JUMP JUMPDEST PUSH2 0x4FD3 DUP2 PUSH2 0x3400 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 0x4FF8 DUP2 DUP5 PUSH2 0x4FA5 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x500F DUP2 PUSH2 0x3691 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x502B JUMPI PUSH2 0x502A PUSH2 0x3336 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x5039 DUP5 DUP3 DUP6 ADD PUSH2 0x5000 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x504B DUP2 PUSH2 0x424D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x5066 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x5042 JUMP JUMPDEST PUSH2 0x5073 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x4133 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x0 DUP7 ADD MSTORE PUSH2 0x5097 DUP3 DUP3 PUSH2 0x3C9B JUMP JUMPDEST SWAP2 POP POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x50B1 DUP3 DUP3 PUSH2 0x3DF1 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x50CB DUP3 DUP3 PUSH2 0x3E5B JUMP JUMPDEST SWAP2 POP POP DUP1 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 0x50F2 DUP2 DUP5 PUSH2 0x507A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0x515C PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x511F JUMP JUMPDEST PUSH2 0x5166 DUP7 DUP4 PUSH2 0x511F JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5199 PUSH2 0x5194 PUSH2 0x518F DUP5 PUSH2 0x3996 JUMP JUMPDEST PUSH2 0x4786 JUMP JUMPDEST PUSH2 0x3996 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x51B3 DUP4 PUSH2 0x517E JUMP JUMPDEST PUSH2 0x51C7 PUSH2 0x51BF DUP3 PUSH2 0x51A0 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x512C JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x51DC PUSH2 0x51CF JUMP JUMPDEST PUSH2 0x51E7 DUP2 DUP5 DUP5 PUSH2 0x51AA JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x520B JUMPI PUSH2 0x5200 PUSH1 0x0 DUP3 PUSH2 0x51D4 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x51ED JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x5250 JUMPI PUSH2 0x5221 DUP2 PUSH2 0x50FA JUMP JUMPDEST PUSH2 0x522A DUP5 PUSH2 0x510F JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x5239 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x524D PUSH2 0x5245 DUP6 PUSH2 0x510F JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x51EC JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5273 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x5255 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x528C DUP4 DUP4 PUSH2 0x5262 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x52A5 DUP3 PUSH2 0x3C1C JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x52BE JUMPI PUSH2 0x52BD PUSH2 0x3411 JUMP JUMPDEST JUMPDEST PUSH2 0x52C8 DUP3 SLOAD PUSH2 0x4E4E JUMP JUMPDEST PUSH2 0x52D3 DUP3 DUP3 DUP6 PUSH2 0x520F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x5306 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x52F4 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x52FE DUP6 DUP3 PUSH2 0x5280 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x5366 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x5314 DUP7 PUSH2 0x50FA JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x533C JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x5317 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x5359 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x5355 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x5262 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5379 DUP3 PUSH2 0x3996 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x53AB JUMPI PUSH2 0x53AA PUSH2 0x4D06 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4F7574206F6620426F756E647300000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x53EC PUSH1 0xD DUP4 PUSH2 0x4A34 JUMP JUMPDEST SWAP2 POP PUSH2 0x53F7 DUP3 PUSH2 0x53B6 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x540B DUP2 PUSH2 0x3A4C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x40 DUP3 ADD PUSH1 0x0 DUP3 ADD MLOAD PUSH2 0x5427 PUSH1 0x0 DUP6 ADD DUP3 PUSH2 0x5402 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x543A PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x5402 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x5449 DUP2 PUSH2 0x3A4C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x5468 DUP2 PUSH2 0x53DF JUMP JUMPDEST SWAP1 POP PUSH2 0x5477 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x5411 JUMP JUMPDEST PUSH2 0x5484 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x5440 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x549A DUP2 PUSH2 0x39A0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x54B6 JUMPI PUSH2 0x54B5 PUSH2 0x3336 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x54C4 DUP5 DUP3 DUP6 ADD PUSH2 0x548B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x54E7 DUP2 DUP6 PUSH2 0x4FA5 JUMP JUMPDEST SWAP1 POP PUSH2 0x54F6 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x5042 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5508 DUP3 PUSH2 0x361C JUMP JUMPDEST SWAP2 POP PUSH2 0x5513 DUP4 PUSH2 0x361C JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH2 0xFFFF DUP2 GT ISZERO PUSH2 0x552D JUMPI PUSH2 0x552C PUSH2 0x4D06 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x553E DUP3 PUSH2 0x3996 JUMP JUMPDEST SWAP2 POP PUSH2 0x5549 DUP4 PUSH2 0x3996 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x5561 JUMPI PUSH2 0x5560 PUSH2 0x4D06 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x5570 DUP2 PUSH2 0x3996 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x5590 DUP2 DUP6 PUSH2 0x4CAB JUMP JUMPDEST SWAP1 POP PUSH2 0x559F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x5567 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP14 0xF 0x2A SELFDESTRUCT SHR PUSH29 0x6BB6BB8C4FA1E7C0C2AC06D17B31EA19035C75273072C27845B364736F PUSH13 0x634300081C0033000000000000 ","sourceMap":"98:363:16:-:0;;;141:157;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;266:6;274:4;280:14;1416:4:14;1442:6;1990:28:13;1972:15;:46;;;;2029:38;2241:4:0;2040:18:13;;2060:6;2029:10;;;:38;;:::i;:::-;;2078:50;2092:15;;2241:4:0;2109:18:13;;2078:13;;;:50;;:::i;:::-;1933:203;1896:4:15;1870;;:31;;;;;;;;;;;;;;;;;;1817:173;1461:33:14::2;1479:14;1461:17;;;:33;;:::i;:::-;1290:212:::0;;;141:157:16;;;98:363;;6155:316:0;6232:4;6253:22;6261:4;6267:7;6253;;;:22;;:::i;:::-;6248:217;;6323:4;6291:6;:12;6298:4;6291:12;;;;;;;;;;;:20;;:29;6312:7;6291:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;6373:12;:10;;;:12;;:::i;:::-;6346:40;;6364:7;6346:40;;6358:4;6346:40;;;;;;;;;;6407:4;6400:11;;;;6248:217;6449:5;6442:12;;6155:316;;;;;:::o;5674:247::-;5757:25;5785:18;5798:4;5785:12;;;:18;;:::i;:::-;5757:46;;5838:9;5813:6;:12;5820:4;5813:12;;;;;;;;;;;:22;;:34;;;;5904:9;5885:17;5879:4;5862:52;;;;;;;;;;5747:174;5674:247;;:::o;7391:551:15:-;7900:34;7922:1;7914:10;;7926:7;7900:13;;;:34;;:::i;:::-;7391:551;:::o;2520:444:13:-;2606:4;2717:42;2241:4:0;2731:18:13;;2751:7;2717:13;;;:42;;:::i;:::-;2713:86;;;2783:4;2776:11;;;;2713:86;1594:17;1578:35;;2815:4;:19;2811:98;;2859:38;1663:27;2889:7;2859:13;;;:38;;:::i;:::-;2858:39;2851:46;;;;2811:98;2928:28;2942:4;2948:7;2928:13;;;:28;;:::i;:::-;2921:35;;2520:444;;;;;:::o;656:96:2:-;709:7;735:10;728:17;;656:96;:::o;3786:120:0:-;3851:7;3877:6;:12;3884:4;3877:12;;;;;;;;;;;:22;;;3870:29;;3786:120;;;:::o;4304:2406:15:-;5950:20;5973:7;:16;;;:21;;;5950:44;;6025:1;6009:13;:17;;;;:65;;;;;6047:3;6031:13;:19;;;:42;;;;6070:3;6054:13;:19;;;6031:42;6009:65;6005:127;;;6112:7;6098:22;;;;;;;;;;;:::i;:::-;;;;;;;;6005:127;6220:14;6243:7;:12;;;:20;;;:27;6220:51;;6298:13;:11;;;:13;;:::i;:::-;6286:25;;:8;:25;;;6282:333;;6595:7;6581:22;;;;;;;;;;;:::i;:::-;;;;;;;;6282:333;6650:7;6625:6;:22;6632:14;6625:22;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;6673:29;6687:14;6673:29;;;;;;:::i;:::-;;;;;;;;4395:2315;;4304:2406;;:::o;2830:136:0:-;2907:4;2930:6;:12;2937:4;2930:12;;;;;;;;;;;:20;;:29;2951:7;2930:29;;;;;;;;;;;;;;;;;;;;;;;;;2923:36;;2830:136;;;;:::o;18074:91:12:-;18111:6;18160:1;18140:16;18133:24;;;;;;;;:::i;:::-;;:28;;;;:::i;:::-;18126:35;;18074:91;:::o;98:363:16:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:75:21:-;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:102;1009:6;1060:2;1056:7;1051:2;1044:5;1040:14;1036:28;1026:38;;968:102;;;:::o;1076:180::-;1124:77;1121:1;1114:88;1221:4;1218:1;1211:15;1245:4;1242:1;1235:15;1262:281;1345:27;1367:4;1345:27;:::i;:::-;1337:6;1333:40;1475:6;1463:10;1460:22;1439:18;1427:10;1424:34;1421:62;1418:88;;;1486:18;;:::i;:::-;1418:88;1526:10;1522:2;1515:22;1305:238;1262:281;;:::o;1549:129::-;1583:6;1610:20;;:::i;:::-;1600:30;;1639:33;1667:4;1659:6;1639:33;:::i;:::-;1549:129;;;:::o;1684:117::-;1793:1;1790;1783:12;1807:90;1841:7;1884:5;1877:13;1870:21;1859:32;;1807:90;;;:::o;1903:116::-;1973:21;1988:5;1973:21;:::i;:::-;1966:5;1963:32;1953:60;;2009:1;2006;1999:12;1953:60;1903:116;:::o;2025:137::-;2079:5;2110:6;2104:13;2095:22;;2126:30;2150:5;2126:30;:::i;:::-;2025:137;;;;:::o;2168:114::-;2256:1;2249:5;2246:12;2236:40;;2272:1;2269;2262:12;2236:40;2168:114;:::o;2288:173::-;2360:5;2391:6;2385:13;2376:22;;2407:48;2449:5;2407:48;:::i;:::-;2288:173;;;;:::o;2467:117::-;2576:1;2573;2566:12;2590:117;2699:1;2696;2689:12;2713:308;2775:4;2865:18;2857:6;2854:30;2851:56;;;2887:18;;:::i;:::-;2851:56;2925:29;2947:6;2925:29;:::i;:::-;2917:37;;3009:4;3003;2999:15;2991:23;;2713:308;;;:::o;3027:248::-;3109:1;3119:113;3133:6;3130:1;3127:13;3119:113;;;3218:1;3213:3;3209:11;3203:18;3199:1;3194:3;3190:11;3183:39;3155:2;3152:1;3148:10;3143:15;;3119:113;;;3266:1;3257:6;3252:3;3248:16;3241:27;3089:186;3027:248;;;:::o;3281:434::-;3370:5;3395:66;3411:49;3453:6;3411:49;:::i;:::-;3395:66;:::i;:::-;3386:75;;3484:6;3477:5;3470:21;3522:4;3515:5;3511:16;3560:3;3551:6;3546:3;3542:16;3539:25;3536:112;;;3567:79;;:::i;:::-;3536:112;3657:52;3702:6;3697:3;3692;3657:52;:::i;:::-;3376:339;3281:434;;;;;:::o;3735:355::-;3802:5;3851:3;3844:4;3836:6;3832:17;3828:27;3818:122;;3859:79;;:::i;:::-;3818:122;3969:6;3963:13;3994:90;4080:3;4072:6;4065:4;4057:6;4053:17;3994:90;:::i;:::-;3985:99;;3808:282;3735:355;;;;:::o;4123:971::-;4212:5;4256:4;4244:9;4239:3;4235:19;4231:30;4228:117;;;4264:79;;:::i;:::-;4228:117;4363:21;4379:4;4363:21;:::i;:::-;4354:30;;4452:1;4492:57;4545:3;4536:6;4525:9;4521:22;4492:57;:::i;:::-;4485:4;4478:5;4474:16;4467:83;4394:167;4622:2;4663:75;4734:3;4725:6;4714:9;4710:22;4663:75;:::i;:::-;4656:4;4649:5;4645:16;4638:101;4571:179;4832:2;4821:9;4817:18;4811:25;4863:18;4855:6;4852:30;4849:117;;;4885:79;;:::i;:::-;4849:117;5005:70;5071:3;5062:6;5051:9;5047:22;5005:70;:::i;:::-;4998:4;4991:5;4987:16;4980:96;4760:327;4123:971;;;;:::o;5100:89::-;5136:7;5176:6;5169:5;5165:18;5154:29;;5100:89;;;:::o;5195:120::-;5267:23;5284:5;5267:23;:::i;:::-;5260:5;5257:34;5247:62;;5305:1;5302;5295:12;5247:62;5195:120;:::o;5321:141::-;5377:5;5408:6;5402:13;5393:22;;5424:32;5450:5;5424:32;:::i;:::-;5321:141;;;;:::o;5468:311::-;5545:4;5635:18;5627:6;5624:30;5621:56;;;5657:18;;:::i;:::-;5621:56;5707:4;5699:6;5695:17;5687:25;;5767:4;5761;5757:15;5749:23;;5468:311;;;:::o;5785:117::-;5894:1;5891;5884:12;5908:77;5945:7;5974:5;5963:16;;5908:77;;;:::o;5991:122::-;6064:24;6082:5;6064:24;:::i;:::-;6057:5;6054:35;6044:63;;6103:1;6100;6093:12;6044:63;5991:122;:::o;6119:143::-;6176:5;6207:6;6201:13;6192:22;;6223:33;6250:5;6223:33;:::i;:::-;6119:143;;;;:::o;6285:732::-;6392:5;6417:81;6433:64;6490:6;6433:64;:::i;:::-;6417:81;:::i;:::-;6408:90;;6518:5;6547:6;6540:5;6533:21;6581:4;6574:5;6570:16;6563:23;;6634:4;6626:6;6622:17;6614:6;6610:30;6663:3;6655:6;6652:15;6649:122;;;6682:79;;:::i;:::-;6649:122;6797:6;6780:231;6814:6;6809:3;6806:15;6780:231;;;6889:3;6918:48;6962:3;6950:10;6918:48;:::i;:::-;6913:3;6906:61;6996:4;6991:3;6987:14;6980:21;;6856:155;6840:4;6835:3;6831:14;6824:21;;6780:231;;;6784:21;6398:619;;6285:732;;;;;:::o;7040:385::-;7122:5;7171:3;7164:4;7156:6;7152:17;7148:27;7138:122;;7179:79;;:::i;:::-;7138:122;7289:6;7283:13;7314:105;7415:3;7407:6;7400:4;7392:6;7388:17;7314:105;:::i;:::-;7305:114;;7128:297;7040:385;;;;:::o;7431:113::-;7518:1;7511:5;7508:12;7498:40;;7534:1;7531;7524:12;7498:40;7431:113;:::o;7550:171::-;7621:5;7652:6;7646:13;7637:22;;7668:47;7709:5;7668:47;:::i;:::-;7550:171;;;;:::o;7752:1318::-;7840:5;7884:4;7872:9;7867:3;7863:19;7859:30;7856:117;;;7892:79;;:::i;:::-;7856:117;7991:21;8007:4;7991:21;:::i;:::-;7982:30;;8074:1;8114:59;8169:3;8160:6;8149:9;8145:22;8114:59;:::i;:::-;8107:4;8100:5;8096:16;8089:85;8022:163;8268:2;8257:9;8253:18;8247:25;8299:18;8291:6;8288:30;8285:117;;;8321:79;;:::i;:::-;8285:117;8441:85;8522:3;8513:6;8502:9;8498:22;8441:85;:::i;:::-;8434:4;8427:5;8423:16;8416:111;8195:343;8599:2;8640:74;8710:3;8701:6;8690:9;8686:22;8640:74;:::i;:::-;8633:4;8626:5;8622:16;8615:100;8548:178;8808:2;8797:9;8793:18;8787:25;8839:18;8831:6;8828:30;8825:117;;;8861:79;;:::i;:::-;8825:117;8981:70;9047:3;9038:6;9027:9;9023:22;8981:70;:::i;:::-;8974:4;8967:5;8963:16;8956:96;8736:327;7752:1318;;;;:::o;9099:774::-;9185:5;9229:4;9217:9;9212:3;9208:19;9204:30;9201:117;;;9237:79;;:::i;:::-;9201:117;9336:21;9352:4;9336:21;:::i;:::-;9327:30;;9416:1;9456:59;9511:3;9502:6;9491:9;9487:22;9456:59;:::i;:::-;9449:4;9442:5;9438:16;9431:85;9367:160;9611:2;9600:9;9596:18;9590:25;9642:18;9634:6;9631:30;9628:117;;;9664:79;;:::i;:::-;9628:117;9784:70;9850:3;9841:6;9830:9;9826:22;9784:70;:::i;:::-;9777:4;9770:5;9766:16;9759:96;9537:329;9099:774;;;;:::o;9904:1329::-;9992:5;10036:4;10024:9;10019:3;10015:19;10011:30;10008:117;;;10044:79;;:::i;:::-;10008:117;10143:21;10159:4;10143:21;:::i;:::-;10134:30;;10245:1;10234:9;10230:17;10224:24;10275:18;10267:6;10264:30;10261:117;;;10297:79;;:::i;:::-;10261:117;10417:89;10502:3;10493:6;10482:9;10478:22;10417:89;:::i;:::-;10410:4;10403:5;10399:16;10392:115;10174:344;10598:2;10587:9;10583:18;10577:25;10629:18;10621:6;10618:30;10615:117;;;10651:79;;:::i;:::-;10615:117;10771:88;10855:3;10846:6;10835:9;10831:22;10771:88;:::i;:::-;10764:4;10757:5;10753:16;10746:114;10528:343;10955:2;10944:9;10940:18;10934:25;10986:18;10978:6;10975:30;10972:117;;;11008:79;;:::i;:::-;10972:117;11128:86;11210:3;11201:6;11190:9;11186:22;11128:86;:::i;:::-;11121:4;11114:5;11110:16;11103:112;10881:345;9904:1329;;;;:::o;11239:872::-;11355:6;11363;11371;11420:2;11408:9;11399:7;11395:23;11391:32;11388:119;;;11426:79;;:::i;:::-;11388:119;11546:1;11571:64;11627:7;11618:6;11607:9;11603:22;11571:64;:::i;:::-;11561:74;;11517:128;11684:2;11710:64;11766:7;11757:6;11746:9;11742:22;11710:64;:::i;:::-;11700:74;;11655:129;11844:2;11833:9;11829:18;11823:25;11875:18;11867:6;11864:30;11861:117;;;11897:79;;:::i;:::-;11861:117;12002:92;12086:7;12077:6;12066:9;12062:22;12002:92;:::i;:::-;11992:102;;11794:310;11239:872;;;;;:::o;12117:99::-;12188:21;12203:5;12188:21;:::i;:::-;12183:3;12176:34;12117:99;;:::o;12222:180::-;12270:77;12267:1;12260:88;12367:4;12364:1;12357:15;12391:4;12388:1;12381:15;12408:120;12496:1;12489:5;12486:12;12476:46;;12502:18;;:::i;:::-;12476:46;12408:120;:::o;12534:141::-;12586:7;12615:5;12604:16;;12621:48;12663:5;12621:48;:::i;:::-;12534:141;;;:::o;12681:::-;12744:9;12777:39;12810:5;12777:39;:::i;:::-;12764:52;;12681:141;;;:::o;12828:147::-;12918:50;12962:5;12918:50;:::i;:::-;12913:3;12906:63;12828:147;;:::o;12981:99::-;13033:6;13067:5;13061:12;13051:22;;12981:99;;;:::o;13086:159::-;13160:11;13194:6;13189:3;13182:19;13234:4;13229:3;13225:14;13210:29;;13086:159;;;;:::o;13251:357::-;13329:3;13357:39;13390:5;13357:39;:::i;:::-;13412:61;13466:6;13461:3;13412:61;:::i;:::-;13405:68;;13482:65;13540:6;13535:3;13528:4;13521:5;13517:16;13482:65;:::i;:::-;13572:29;13594:6;13572:29;:::i;:::-;13567:3;13563:39;13556:46;;13333:275;13251:357;;;;:::o;13664:798::-;13781:3;13817:4;13812:3;13808:14;13913:4;13906:5;13902:16;13896:23;13932:57;13983:4;13978:3;13974:14;13960:12;13932:57;:::i;:::-;13832:167;14083:4;14076:5;14072:16;14066:23;14102:76;14172:4;14167:3;14163:14;14149:12;14102:76;:::i;:::-;14009:179;14272:4;14265:5;14261:16;14255:23;14325:3;14319:4;14315:14;14308:4;14303:3;14299:14;14292:38;14351:73;14419:4;14405:12;14351:73;:::i;:::-;14343:81;;14198:237;14452:4;14445:11;;13786:676;13664:798;;;;:::o;14468:105::-;14543:23;14560:5;14543:23;:::i;:::-;14538:3;14531:36;14468:105;;:::o;14579:114::-;14646:6;14680:5;14674:12;14664:22;;14579:114;;;:::o;14699:174::-;14788:11;14822:6;14817:3;14810:19;14862:4;14857:3;14853:14;14838:29;;14699:174;;;;:::o;14879:132::-;14946:4;14969:3;14961:11;;14999:4;14994:3;14990:14;14982:22;;14879:132;;;:::o;15017:108::-;15094:24;15112:5;15094:24;:::i;:::-;15089:3;15082:37;15017:108;;:::o;15131:179::-;15200:10;15221:46;15263:3;15255:6;15221:46;:::i;:::-;15299:4;15294:3;15290:14;15276:28;;15131:179;;;;:::o;15316:113::-;15386:4;15418;15413:3;15409:14;15401:22;;15316:113;;;:::o;15465:712::-;15574:3;15603:54;15651:5;15603:54;:::i;:::-;15673:76;15742:6;15737:3;15673:76;:::i;:::-;15666:83;;15773:56;15823:5;15773:56;:::i;:::-;15852:7;15883:1;15868:284;15893:6;15890:1;15887:13;15868:284;;;15969:6;15963:13;15996:63;16055:3;16040:13;15996:63;:::i;:::-;15989:70;;16082:60;16135:6;16082:60;:::i;:::-;16072:70;;15928:224;15915:1;15912;15908:9;15903:14;;15868:284;;;15872:14;16168:3;16161:10;;15579:598;;;15465:712;;;;:::o;16183:119::-;16270:1;16263:5;16260:12;16250:46;;16276:18;;:::i;:::-;16250:46;16183:119;:::o;16308:139::-;16359:7;16388:5;16377:16;;16394:47;16435:5;16394:47;:::i;:::-;16308:139;;;:::o;16453:::-;16515:9;16548:38;16580:5;16548:38;:::i;:::-;16535:51;;16453:139;;;:::o;16598:145::-;16687:49;16730:5;16687:49;:::i;:::-;16682:3;16675:62;16598:145;;:::o;16795:1071::-;16910:3;16946:4;16941:3;16937:14;17036:4;17029:5;17025:16;17019:23;17055:61;17110:4;17105:3;17101:14;17087:12;17055:61;:::i;:::-;16961:165;17211:4;17204:5;17200:16;17194:23;17264:3;17258:4;17254:14;17247:4;17242:3;17238:14;17231:38;17290:103;17388:4;17374:12;17290:103;:::i;:::-;17282:111;;17136:268;17488:4;17481:5;17477:16;17471:23;17507:75;17576:4;17571:3;17567:14;17553:12;17507:75;:::i;:::-;17414:178;17676:4;17669:5;17665:16;17659:23;17729:3;17723:4;17719:14;17712:4;17707:3;17703:14;17696:38;17755:73;17823:4;17809:12;17755:73;:::i;:::-;17747:81;;17602:237;17856:4;17849:11;;16915:951;16795:1071;;;;:::o;17914:600::-;18025:3;18061:4;18056:3;18052:14;18148:4;18141:5;18137:16;18131:23;18167:61;18222:4;18217:3;18213:14;18199:12;18167:61;:::i;:::-;18076:162;18324:4;18317:5;18313:16;18307:23;18377:3;18371:4;18367:14;18360:4;18355:3;18351:14;18344:38;18403:73;18471:4;18457:12;18403:73;:::i;:::-;18395:81;;18248:239;18504:4;18497:11;;18030:484;17914:600;;;;:::o;18566:1039::-;18691:3;18727:4;18722:3;18718:14;18815:4;18808:5;18804:16;18798:23;18868:3;18862:4;18858:14;18851:4;18846:3;18842:14;18835:38;18894:111;19000:4;18986:12;18894:111;:::i;:::-;18886:119;;18742:274;19098:4;19091:5;19087:16;19081:23;19151:3;19145:4;19141:14;19134:4;19129:3;19125:14;19118:38;19177:109;19281:4;19267:12;19177:109;:::i;:::-;19169:117;;19026:271;19383:4;19376:5;19372:16;19366:23;19436:3;19430:4;19426:14;19419:4;19414:3;19410:14;19403:38;19462:105;19562:4;19548:12;19462:105;:::i;:::-;19454:113;;19307:271;19595:4;19588:11;;18696:909;18566:1039;;;;:::o;19611:385::-;19760:4;19798:2;19787:9;19783:18;19775:26;;19847:9;19841:4;19837:20;19833:1;19822:9;19818:17;19811:47;19875:114;19984:4;19975:6;19875:114;:::i;:::-;19867:122;;19611:385;;;;:::o;20002:180::-;20050:77;20047:1;20040:88;20147:4;20144:1;20137:15;20171:4;20168:1;20161:15;20188:320;20232:6;20269:1;20263:4;20259:12;20249:22;;20316:1;20310:4;20306:12;20337:18;20327:81;;20393:4;20385:6;20381:17;20371:27;;20327:81;20455:2;20447:6;20444:14;20424:18;20421:38;20418:84;;20474:18;;:::i;:::-;20418:84;20239:269;20188:320;;;:::o;20514:141::-;20563:4;20586:3;20578:11;;20609:3;20606:1;20599:14;20643:4;20640:1;20630:18;20622:26;;20514:141;;;:::o;20661:93::-;20698:6;20745:2;20740;20733:5;20729:14;20725:23;20715:33;;20661:93;;;:::o;20760:107::-;20804:8;20854:5;20848:4;20844:16;20823:37;;20760:107;;;;:::o;20873:393::-;20942:6;20992:1;20980:10;20976:18;21015:97;21045:66;21034:9;21015:97;:::i;:::-;21133:39;21163:8;21152:9;21133:39;:::i;:::-;21121:51;;21205:4;21201:9;21194:5;21190:21;21181:30;;21254:4;21244:8;21240:19;21233:5;21230:30;21220:40;;20949:317;;20873:393;;;;;:::o;21272:77::-;21309:7;21338:5;21327:16;;21272:77;;;:::o;21355:60::-;21383:3;21404:5;21397:12;;21355:60;;;:::o;21421:142::-;21471:9;21504:53;21522:34;21531:24;21549:5;21531:24;:::i;:::-;21522:34;:::i;:::-;21504:53;:::i;:::-;21491:66;;21421:142;;;:::o;21569:75::-;21612:3;21633:5;21626:12;;21569:75;;;:::o;21650:269::-;21760:39;21791:7;21760:39;:::i;:::-;21821:91;21870:41;21894:16;21870:41;:::i;:::-;21862:6;21855:4;21849:11;21821:91;:::i;:::-;21815:4;21808:105;21726:193;21650:269;;;:::o;21925:73::-;21970:3;21925:73;:::o;22004:189::-;22081:32;;:::i;:::-;22122:65;22180:6;22172;22166:4;22122:65;:::i;:::-;22057:136;22004:189;;:::o;22199:186::-;22259:120;22276:3;22269:5;22266:14;22259:120;;;22330:39;22367:1;22360:5;22330:39;:::i;:::-;22303:1;22296:5;22292:13;22283:22;;22259:120;;;22199:186;;:::o;22391:543::-;22492:2;22487:3;22484:11;22481:446;;;22526:38;22558:5;22526:38;:::i;:::-;22610:29;22628:10;22610:29;:::i;:::-;22600:8;22596:44;22793:2;22781:10;22778:18;22775:49;;;22814:8;22799:23;;22775:49;22837:80;22893:22;22911:3;22893:22;:::i;:::-;22883:8;22879:37;22866:11;22837:80;:::i;:::-;22496:431;;22481:446;22391:543;;;:::o;22940:117::-;22994:8;23044:5;23038:4;23034:16;23013:37;;22940:117;;;;:::o;23063:169::-;23107:6;23140:51;23188:1;23184:6;23176:5;23173:1;23169:13;23140:51;:::i;:::-;23136:56;23221:4;23215;23211:15;23201:25;;23114:118;23063:169;;;;:::o;23237:295::-;23313:4;23459:29;23484:3;23478:4;23459:29;:::i;:::-;23451:37;;23521:3;23518:1;23514:11;23508:4;23505:21;23497:29;;23237:295;;;;:::o;23537:1395::-;23654:37;23687:3;23654:37;:::i;:::-;23756:18;23748:6;23745:30;23742:56;;;23778:18;;:::i;:::-;23742:56;23822:38;23854:4;23848:11;23822:38;:::i;:::-;23907:67;23967:6;23959;23953:4;23907:67;:::i;:::-;24001:1;24025:4;24012:17;;24057:2;24049:6;24046:14;24074:1;24069:618;;;;24731:1;24748:6;24745:77;;;24797:9;24792:3;24788:19;24782:26;24773:35;;24745:77;24848:67;24908:6;24901:5;24848:67;:::i;:::-;24842:4;24835:81;24704:222;24039:887;;24069:618;24121:4;24117:9;24109:6;24105:22;24155:37;24187:4;24155:37;:::i;:::-;24214:1;24228:208;24242:7;24239:1;24236:14;24228:208;;;24321:9;24316:3;24312:19;24306:26;24298:6;24291:42;24372:1;24364:6;24360:14;24350:24;;24419:2;24408:9;24404:18;24391:31;;24265:4;24262:1;24258:12;24253:17;;24228:208;;;24464:6;24455:7;24452:19;24449:179;;;24522:9;24517:3;24513:19;24507:26;24565:48;24607:4;24599:6;24595:17;24584:9;24565:48;:::i;:::-;24557:6;24550:64;24472:156;24449:179;24674:1;24670;24662:6;24658:14;24654:22;24648:4;24641:36;24076:611;;;24039:887;;23629:1303;;;23537:1395;;:::o;24938:118::-;25025:24;25043:5;25025:24;:::i;:::-;25020:3;25013:37;24938:118;;:::o;25062:222::-;25155:4;25193:2;25182:9;25178:18;25170:26;;25206:71;25274:1;25263:9;25259:17;25250:6;25206:71;:::i;:::-;25062:222;;;;:::o;25290:180::-;25338:77;25335:1;25328:88;25435:4;25432:1;25425:15;25459:4;25456:1;25449:15;25476:193;25515:3;25534:19;25551:1;25534:19;:::i;:::-;25529:24;;25567:19;25584:1;25567:19;:::i;:::-;25562:24;;25609:1;25606;25602:9;25595:16;;25632:6;25627:3;25624:15;25621:41;;;25642:18;;:::i;:::-;25621:41;25476:193;;;;:::o;98:363:16:-;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@DEFAULT_ADMIN_ROLE_30":{"entryPoint":2253,"id":30,"parameterSlots":0,"returnSlots":0},"@DEFINE_2353":{"entryPoint":1783,"id":2353,"parameterSlots":1,"returnSlots":1},"@DELETE_2410":{"entryPoint":3022,"id":2410,"parameterSlots":1,"returnSlots":1},"@DPR_2683":{"entryPoint":2980,"id":2683,"parameterSlots":0,"returnSlots":1},"@DPS_2673":{"entryPoint":3566,"id":2673,"parameterSlots":0,"returnSlots":1},"@GET_2265":{"entryPoint":1442,"id":2265,"parameterSlots":1,"returnSlots":1},"@HEAD_2180":{"entryPoint":1499,"id":2180,"parameterSlots":1,"returnSlots":1},"@OPTIONS_2042":{"entryPoint":3718,"id":2042,"parameterSlots":1,"returnSlots":1},"@PATCH_2631":{"entryPoint":3322,"id":2631,"parameterSlots":1,"returnSlots":1},"@PUT_2548":{"entryPoint":2260,"id":2548,"parameterSlots":1,"returnSlots":1},"@_GET_2248":{"entryPoint":3886,"id":2248,"parameterSlots":2,"returnSlots":1},"@_HEAD_2161":{"entryPoint":4026,"id":2161,"parameterSlots":2,"returnSlots":1},"@_OPTIONS_2026":{"entryPoint":4843,"id":2026,"parameterSlots":2,"returnSlots":1},"@_checkRole_115":{"entryPoint":8627,"id":115,"parameterSlots":2,"returnSlots":0},"@_checkRole_94":{"entryPoint":3850,"id":94,"parameterSlots":1,"returnSlots":0},"@_createHeader_2726":{"entryPoint":5476,"id":2726,"parameterSlots":1,"returnSlots":1},"@_createResource_3015":{"entryPoint":10830,"id":3015,"parameterSlots":2,"returnSlots":1},"@_deleteMetadata_2956":{"entryPoint":10295,"id":2956,"parameterSlots":1,"returnSlots":0},"@_deleteResource_3239":{"entryPoint":7819,"id":3239,"parameterSlots":1,"returnSlots":0},"@_getAuthorizedRole_1785":{"entryPoint":9510,"id":1785,"parameterSlots":2,"returnSlots":1},"@_getDataPoints_1992":{"entryPoint":8144,"id":1992,"parameterSlots":1,"returnSlots":1},"@_grantRole_257":{"entryPoint":4352,"id":257,"parameterSlots":2,"returnSlots":1},"@_isAuthorized_1811":{"entryPoint":9475,"id":1811,"parameterSlots":3,"returnSlots":1},"@_isImmutable_1848":{"entryPoint":9425,"id":1848,"parameterSlots":1,"returnSlots":1},"@_methodAllowed_1747":{"entryPoint":9335,"id":1747,"parameterSlots":2,"returnSlots":1},"@_msgSender_391":{"entryPoint":4593,"id":391,"parameterSlots":0,"returnSlots":1},"@_readHeader_2743":{"entryPoint":6786,"id":2743,"parameterSlots":1,"returnSlots":1},"@_readMetadata_2838":{"entryPoint":5559,"id":2838,"parameterSlots":1,"returnSlots":1},"@_readResource_3108":{"entryPoint":6449,"id":3108,"parameterSlots":2,"returnSlots":1},"@_resourceDataPoints_2969":{"entryPoint":8539,"id":2969,"parameterSlots":1,"returnSlots":1},"@_resourceExists_1827":{"entryPoint":7795,"id":1827,"parameterSlots":1,"returnSlots":1},"@_revokeRole_295":{"entryPoint":4601,"id":295,"parameterSlots":2,"returnSlots":1},"@_setDefaultHeader_2822":{"entryPoint":3870,"id":2822,"parameterSlots":1,"returnSlots":0},"@_setRoleAdmin_218":{"entryPoint":8448,"id":218,"parameterSlots":2,"returnSlots":0},"@_updateHeader_2806":{"entryPoint":8708,"id":2806,"parameterSlots":2,"returnSlots":0},"@_updateMetadataStats_2882":{"entryPoint":9656,"id":2882,"parameterSlots":1,"returnSlots":0},"@_updateMetadata_2933":{"entryPoint":6031,"id":2933,"parameterSlots":2,"returnSlots":0},"@_updateResource_3212":{"entryPoint":11406,"id":3212,"parameterSlots":3,"returnSlots":0},"@_uploadResource_3286":{"entryPoint":7967,"id":3286,"parameterSlots":2,"returnSlots":1},"@calculateEtag_1233":{"entryPoint":7638,"id":1233,"parameterSlots":2,"returnSlots":1},"@changeSiteAdmin_1669":{"entryPoint":1559,"id":1669,"parameterSlots":1,"returnSlots":0},"@contentCode__1460":{"entryPoint":8582,"id":1460,"parameterSlots":2,"returnSlots":1},"@createResourceRole_1646":{"entryPoint":2673,"id":1646,"parameterSlots":1,"returnSlots":0},"@getHeaderAddress_1123":{"entryPoint":9608,"id":1123,"parameterSlots":1,"returnSlots":1},"@getRoleAdmin_129":{"entryPoint":1468,"id":129,"parameterSlots":1,"returnSlots":1},"@getSiteAdminRole_1677":{"entryPoint":1650,"id":1677,"parameterSlots":0,"returnSlots":1},"@grantRole_148":{"entryPoint":1525,"id":148,"parameterSlots":2,"returnSlots":0},"@hasRole_1582":{"entryPoint":2113,"id":1582,"parameterSlots":2,"returnSlots":1},"@hasRole_81":{"entryPoint":7689,"id":81,"parameterSlots":2,"returnSlots":1},"@maxMethods__1306":{"entryPoint":11368,"id":1306,"parameterSlots":0,"returnSlots":1},"@normalizeRange__1434":{"entryPoint":9898,"id":1434,"parameterSlots":2,"returnSlots":1},"@renounceRole_190":{"entryPoint":1660,"id":190,"parameterSlots":2,"returnSlots":0},"@revokeRole_167":{"entryPoint":3288,"id":167,"parameterSlots":2,"returnSlots":0},"@setDefaultHeader_3322":{"entryPoint":1416,"id":3322,"parameterSlots":1,"returnSlots":0},"@supportsInterface_432":{"entryPoint":3744,"id":432,"parameterSlots":1,"returnSlots":1},"@supportsInterface_63":{"entryPoint":1294,"id":63,"parameterSlots":1,"returnSlots":1},"abi_decode_available_length_t_array$_t_bytes32_$dyn_memory_ptr":{"entryPoint":14013,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_array$_t_struct$_DataRegistration_$1064_memory_ptr_$dyn_memory_ptr":{"entryPoint":17900,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_bytes_memory_ptr":{"entryPoint":17660,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_available_length_t_string_memory_ptr":{"entryPoint":13612,"id":null,"parameterSlots":3,"returnSlots":1},"abi_decode_t_address":{"entryPoint":17014,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_bytes32_$dyn_memory_ptr":{"entryPoint":14118,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_array$_t_struct$_DataRegistration_$1064_memory_ptr_$dyn_memory_ptr":{"entryPoint":18035,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bool":{"entryPoint":13480,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes2":{"entryPoint":17426,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes32":{"entryPoint":13992,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes32_fromMemory":{"entryPoint":20480,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes4":{"entryPoint":13187,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_bytes_memory_ptr":{"entryPoint":17726,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_contract$_IDataPointStorage_$573_fromMemory":{"entryPoint":18930,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_enum$_CORSPreset_$972":{"entryPoint":14180,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_enum$_CachePreset_$964":{"entryPoint":13517,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_int256":{"entryPoint":14957,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_string_memory_ptr":{"entryPoint":13678,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_CORSPolicy_$1000_memory_ptr":{"entryPoint":14201,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_CacheControl_$984_memory_ptr":{"entryPoint":13724,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_DEFINERequest_$1204_memory_ptr":{"entryPoint":17099,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_DataRegistration_$1064_memory_ptr":{"entryPoint":17772,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_HEADRequest_$1142_memory_ptr":{"entryPoint":14796,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_HeaderInfo_$1022_memory_ptr":{"entryPoint":14485,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_LOCATERequest_$1251_memory_ptr":{"entryPoint":15058,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_PATCHRequest_$1194_memory_ptr":{"entryPoint":18432,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_PUTRequest_$1183_memory_ptr":{"entryPoint":18081,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_Range_$1241_memory_ptr":{"entryPoint":14978,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_Redirect_$1008_memory_ptr":{"entryPoint":14377,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_struct$_ResourceProperties_$1035_memory_ptr":{"entryPoint":17447,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint16":{"entryPoint":13889,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256":{"entryPoint":14775,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_t_uint256_fromMemory":{"entryPoint":21643,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32":{"entryPoint":16646,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32_fromMemory":{"entryPoint":20501,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_address":{"entryPoint":17035,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes4":{"entryPoint":13208,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_contract$_IDataPointStorage_$573_fromMemory":{"entryPoint":18951,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptr":{"entryPoint":18701,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_DEFINERequest_$1204_memory_ptr":{"entryPoint":17235,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_HEADRequest_$1142_memory_ptr":{"entryPoint":16733,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_HeaderInfo_$1022_memory_ptr":{"entryPoint":14669,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_LOCATERequest_$1251_memory_ptr":{"entryPoint":15166,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_PATCHRequest_$1194_memory_ptr":{"entryPoint":18568,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_struct$_PUTRequest_$1183_memory_ptr":{"entryPoint":18237,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":21664,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encodeUpdatedPos_t_bytes32_to_t_bytes32":{"entryPoint":15654,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_address_to_t_address_fromStack":{"entryPoint":20546,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr":{"entryPoint":15691,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr_fromStack":{"entryPoint":20217,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_bool_to_t_bool":{"entryPoint":15254,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bool_to_t_bool_fromStack":{"entryPoint":13265,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes2_to_t_bytes2":{"entryPoint":16162,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32":{"entryPoint":15639,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes32_to_t_bytes32_fromStack":{"entryPoint":16691,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack":{"entryPoint":20389,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_contract$_IDataPointRegistry_$534_to_t_address_fromStack":{"entryPoint":18390,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_contract$_IDataPointStorage_$573_to_t_address_fromStack":{"entryPoint":18659,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_enum$_CORSPreset_$972_to_t_uint8":{"entryPoint":15842,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_enum$_CachePreset_$964_to_t_uint8":{"entryPoint":15373,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_int256_to_t_int256":{"entryPoint":21506,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_int256_to_t_int256_fromStack":{"entryPoint":21568,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr":{"entryPoint":15458,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack":{"entryPoint":19627,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":19555,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_stringliteral_15232cbb030dcf3f4ee56d3191d078b5ac1eaff91b0325c151acfbad69663cad_to_t_string_memory_ptr_fromStack":{"entryPoint":19341,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_479a1d8ebbddc9de30fd1886cb8a7ee233eac86d9b8bd3ece8b03587030879ef_to_t_string_memory_ptr_fromStack":{"entryPoint":19463,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_7a964d37282303714fb467b98ec1cbe6d2e90dd52c96aeb740b8369104751d6b_to_t_string_memory_ptr_fromStack":{"entryPoint":19054,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_ec4917d1aed7ef8cbcf1c44444d2aa8d01b09b6f026baf9654d1305e94617eba_to_t_string_memory_ptr_fromStack":{"entryPoint":19205,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_stringliteral_f6f291dd7b3716f60112b675ea3e6f8513a7a585e9132e9f82751d445f328d0b_to_t_string_memory_ptr_fromStack":{"entryPoint":21471,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_t_struct$_CORSPolicy_$1000_memory_ptr_to_t_struct$_CORSPolicy_$1000_memory_ptr":{"entryPoint":15857,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_struct$_CacheControl_$984_memory_ptr_to_t_struct$_CacheControl_$984_memory_ptr":{"entryPoint":15515,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_struct$_DEFINEResponse_$1213_memory_ptr_to_t_struct$_DEFINEResponse_$1213_memory_ptr_fromStack":{"entryPoint":17308,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_struct$_HEADResponse_$1158_memory_ptr_to_t_struct$_HEADResponse_$1158_memory_ptr":{"entryPoint":16382,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_struct$_HEADResponse_$1158_memory_ptr_to_t_struct$_HEADResponse_$1158_memory_ptr_fromStack":{"entryPoint":16806,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_struct$_HeaderInfo_$1022_memory_ptr_to_t_struct$_HeaderInfo_$1022_memory_ptr":{"entryPoint":16024,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_struct$_HeaderInfo_$1022_memory_ptr_to_t_struct$_HeaderInfo_$1022_memory_ptr_fromStack":{"entryPoint":20602,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_struct$_LOCATEResponse_$1168_memory_ptr_to_t_struct$_LOCATEResponse_$1168_memory_ptr_fromStack":{"entryPoint":16544,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_struct$_OPTIONSResponse_$1131_memory_ptr_to_t_struct$_OPTIONSResponse_$1131_memory_ptr_fromStack":{"entryPoint":18774,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_struct$_Range_$1241_memory_ptr_to_t_struct$_Range_$1241_memory_ptr_fromStack":{"entryPoint":21521,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_struct$_Redirect_$1008_memory_ptr_to_t_struct$_Redirect_$1008_memory_ptr":{"entryPoint":15963,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_struct$_ResourceMetadata_$1053_memory_ptr_to_t_struct$_ResourceMetadata_$1053_memory_ptr":{"entryPoint":16277,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_struct$_ResourceMetadata_$1053_memory_ptr_to_t_struct$_ResourceMetadata_$1053_memory_ptr_fromStack":{"entryPoint":20095,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_struct$_ResourceProperties_$1035_memory_ptr_to_t_struct$_ResourceProperties_$1035_memory_ptr":{"entryPoint":16177,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_struct$_ResourceResponse_$885_memory_ptr_to_t_struct$_ResourceResponse_$885_memory_ptr":{"entryPoint":16483,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_t_uint16_to_t_uint16":{"entryPoint":15239,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint16_to_t_uint16_fromStack":{"entryPoint":19089,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256":{"entryPoint":16262,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_t_uint256_to_t_uint256_fromStack":{"entryPoint":21863,"id":null,"parameterSlots":2,"returnSlots":0},"abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":19604,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed":{"entryPoint":20561,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":13280,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":16706,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32__fromStack_reversed":{"entryPoint":18848,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":20446,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr_t_address__to_t_bytes_memory_ptr_t_address__fromStack_reversed":{"entryPoint":21709,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_contract$_IDataPointRegistry_$534__to_t_address__fromStack_reversed":{"entryPoint":18405,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_contract$_IDataPointStorage_$573__to_t_address__fromStack_reversed":{"entryPoint":18674,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":19684,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr_t_uint256__to_t_string_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":21878,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_stringliteral_15232cbb030dcf3f4ee56d3191d078b5ac1eaff91b0325c151acfbad69663cad_t_bool__to_t_string_memory_ptr_t_bool__fromStack_reversed":{"entryPoint":19376,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_479a1d8ebbddc9de30fd1886cb8a7ee233eac86d9b8bd3ece8b03587030879ef_t_bytes32__to_t_string_memory_ptr_t_bytes32__fromStack_reversed":{"entryPoint":19498,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_7a964d37282303714fb467b98ec1cbe6d2e90dd52c96aeb740b8369104751d6b_t_uint16_t_bool__to_t_string_memory_ptr_t_uint16_t_bool__fromStack_reversed":{"entryPoint":19104,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_stringliteral_ec4917d1aed7ef8cbcf1c44444d2aa8d01b09b6f026baf9654d1305e94617eba_t_uint16_t_bool__to_t_string_memory_ptr_t_uint16_t_bool__fromStack_reversed":{"entryPoint":19240,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_stringliteral_f6f291dd7b3716f60112b675ea3e6f8513a7a585e9132e9f82751d445f328d0b_t_struct$_Range_$1241_memory_ptr_t_int256__to_t_string_memory_ptr_t_struct$_Range_$1241_memory_ptr_t_int256__fromStack_reversed":{"entryPoint":21583,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_struct$_DEFINEResponse_$1213_memory_ptr__to_t_struct$_DEFINEResponse_$1213_memory_ptr__fromStack_reversed":{"entryPoint":17369,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_HEADResponse_$1158_memory_ptr__to_t_struct$_HEADResponse_$1158_memory_ptr__fromStack_reversed":{"entryPoint":16907,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_HeaderInfo_$1022_memory_ptr__to_t_struct$_HeaderInfo_$1022_memory_ptr__fromStack_reversed":{"entryPoint":20696,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_LOCATEResponse_$1168_memory_ptr__to_t_struct$_LOCATEResponse_$1168_memory_ptr__fromStack_reversed":{"entryPoint":16612,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_OPTIONSResponse_$1131_memory_ptr__to_t_struct$_OPTIONSResponse_$1131_memory_ptr__fromStack_reversed":{"entryPoint":18821,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_struct$_ResourceMetadata_$1053_memory_ptr_t_array$_t_bytes32_$dyn_memory_ptr__to_t_struct$_ResourceMetadata_$1053_memory_ptr_t_array$_t_bytes32_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":20311,"id":null,"parameterSlots":3,"returnSlots":1},"allocate_memory":{"entryPoint":13425,"id":null,"parameterSlots":1,"returnSlots":1},"allocate_unbounded":{"entryPoint":13100,"id":null,"parameterSlots":0,"returnSlots":1},"array_allocation_size_t_array$_t_bytes32_$dyn_memory_ptr":{"entryPoint":13910,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_t_array$_t_struct$_DataRegistration_$1064_memory_ptr_$dyn_memory_ptr":{"entryPoint":17567,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_t_bytes_memory_ptr":{"entryPoint":17611,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_t_string_memory_ptr":{"entryPoint":13548,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_array$_t_bytes32_$dyn_memory_ptr":{"entryPoint":15623,"id":null,"parameterSlots":1,"returnSlots":1},"array_dataslot_t_string_storage":{"entryPoint":20730,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_array$_t_bytes32_$dyn_memory_ptr":{"entryPoint":15595,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_bytes_memory_ptr":{"entryPoint":20361,"id":null,"parameterSlots":1,"returnSlots":1},"array_length_t_string_memory_ptr":{"entryPoint":15388,"id":null,"parameterSlots":1,"returnSlots":1},"array_nextElement_t_array$_t_bytes32_$dyn_memory_ptr":{"entryPoint":15678,"id":null,"parameterSlots":1,"returnSlots":1},"array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr":{"entryPoint":15606,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr_fromStack":{"entryPoint":20200,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack":{"entryPoint":20372,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr":{"entryPoint":15399,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_fromStack":{"entryPoint":18996,"id":null,"parameterSlots":2,"returnSlots":1},"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack":{"entryPoint":19544,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_int256":{"entryPoint":19832,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint16":{"entryPoint":21757,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":19900,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_int256":{"entryPoint":19765,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":21811,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_t_string_storage":{"entryPoint":21007,"id":null,"parameterSlots":3,"returnSlots":0},"cleanup_t_address":{"entryPoint":16973,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bool":{"entryPoint":13253,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes2":{"entryPoint":16118,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes32":{"entryPoint":13959,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_bytes4":{"entryPoint":13120,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_contract$_IDataPointStorage_$573":{"entryPoint":18889,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_enum$_CORSPreset_$972":{"entryPoint":15805,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_enum$_CachePreset_$964":{"entryPoint":15336,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_int256":{"entryPoint":14924,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint16":{"entryPoint":13852,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint160":{"entryPoint":16941,"id":null,"parameterSlots":1,"returnSlots":1},"cleanup_t_uint256":{"entryPoint":14742,"id":null,"parameterSlots":1,"returnSlots":1},"clear_storage_range_t_bytes1":{"entryPoint":20972,"id":null,"parameterSlots":2,"returnSlots":0},"convert_t_contract$_IDataPointRegistry_$534_to_t_address":{"entryPoint":18372,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_contract$_IDataPointStorage_$573_to_t_address":{"entryPoint":18641,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_enum$_CORSPreset_$972_to_t_uint8":{"entryPoint":15824,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_enum$_CachePreset_$964_to_t_uint8":{"entryPoint":15355,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_address":{"entryPoint":18354,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint160_to_t_uint160":{"entryPoint":18320,"id":null,"parameterSlots":1,"returnSlots":1},"convert_t_uint256_to_t_uint256":{"entryPoint":20862,"id":null,"parameterSlots":1,"returnSlots":1},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":21148,"id":null,"parameterSlots":2,"returnSlots":0},"copy_calldata_to_memory_with_cleanup":{"entryPoint":13597,"id":null,"parameterSlots":3,"returnSlots":0},"copy_memory_to_memory_with_cleanup":{"entryPoint":15416,"id":null,"parameterSlots":3,"returnSlots":0},"divide_by_32_ceil":{"entryPoint":20751,"id":null,"parameterSlots":1,"returnSlots":1},"extract_byte_array_length":{"entryPoint":20046,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":21120,"id":null,"parameterSlots":2,"returnSlots":1},"finalize_allocation":{"entryPoint":13376,"id":null,"parameterSlots":2,"returnSlots":0},"identity":{"entryPoint":18310,"id":null,"parameterSlots":1,"returnSlots":1},"increment_t_uint256":{"entryPoint":21358,"id":null,"parameterSlots":1,"returnSlots":1},"mask_bytes_dynamic":{"entryPoint":21090,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x11":{"entryPoint":19718,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":15269,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x22":{"entryPoint":19999,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":19952,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":13329,"id":null,"parameterSlots":0,"returnSlots":0},"prepare_store_t_uint256":{"entryPoint":20896,"id":null,"parameterSlots":1,"returnSlots":1},"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d":{"entryPoint":13538,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f":{"entryPoint":13307,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421":{"entryPoint":13452,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef":{"entryPoint":13954,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae":{"entryPoint":13543,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db":{"entryPoint":13115,"id":null,"parameterSlots":0,"returnSlots":0},"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b":{"entryPoint":13110,"id":null,"parameterSlots":0,"returnSlots":0},"round_up_to_mul_of_32":{"entryPoint":13312,"id":null,"parameterSlots":1,"returnSlots":1},"shift_left_dynamic":{"entryPoint":20767,"id":null,"parameterSlots":2,"returnSlots":1},"shift_right_unsigned_dynamic":{"entryPoint":21077,"id":null,"parameterSlots":2,"returnSlots":1},"storage_set_to_zero_t_uint256":{"entryPoint":20948,"id":null,"parameterSlots":2,"returnSlots":0},"store_literal_in_memory_15232cbb030dcf3f4ee56d3191d078b5ac1eaff91b0325c151acfbad69663cad":{"entryPoint":19300,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_479a1d8ebbddc9de30fd1886cb8a7ee233eac86d9b8bd3ece8b03587030879ef":{"entryPoint":19422,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_7a964d37282303714fb467b98ec1cbe6d2e90dd52c96aeb740b8369104751d6b":{"entryPoint":19013,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_ec4917d1aed7ef8cbcf1c44444d2aa8d01b09b6f026baf9654d1305e94617eba":{"entryPoint":19164,"id":null,"parameterSlots":1,"returnSlots":0},"store_literal_in_memory_f6f291dd7b3716f60112b675ea3e6f8513a7a585e9132e9f82751d445f328d0b":{"entryPoint":21430,"id":null,"parameterSlots":1,"returnSlots":0},"update_byte_slice_dynamic32":{"entryPoint":20780,"id":null,"parameterSlots":3,"returnSlots":1},"update_storage_value_t_uint256_to_t_uint256":{"entryPoint":20906,"id":null,"parameterSlots":3,"returnSlots":0},"validator_assert_t_enum$_CORSPreset_$972":{"entryPoint":15785,"id":null,"parameterSlots":1,"returnSlots":0},"validator_assert_t_enum$_CachePreset_$964":{"entryPoint":15316,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_address":{"entryPoint":16991,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bool":{"entryPoint":13457,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes2":{"entryPoint":17403,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes32":{"entryPoint":13969,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_bytes4":{"entryPoint":13164,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_contract$_IDataPointStorage_$573":{"entryPoint":18907,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_enum$_CORSPreset_$972":{"entryPoint":14164,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_enum$_CachePreset_$964":{"entryPoint":13501,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_int256":{"entryPoint":14934,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint16":{"entryPoint":13866,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_t_uint256":{"entryPoint":14752,"id":null,"parameterSlots":1,"returnSlots":0},"zero_value_for_split_t_uint256":{"entryPoint":20943,"id":null,"parameterSlots":0,"returnSlots":1}},"generatedSources":[{"ast":{"nativeSrc":"0:71129:21","nodeType":"YulBlock","src":"0:71129:21","statements":[{"body":{"nativeSrc":"47:35:21","nodeType":"YulBlock","src":"47:35:21","statements":[{"nativeSrc":"57:19:21","nodeType":"YulAssignment","src":"57:19:21","value":{"arguments":[{"kind":"number","nativeSrc":"73:2:21","nodeType":"YulLiteral","src":"73:2:21","type":"","value":"64"}],"functionName":{"name":"mload","nativeSrc":"67:5:21","nodeType":"YulIdentifier","src":"67:5:21"},"nativeSrc":"67:9:21","nodeType":"YulFunctionCall","src":"67:9:21"},"variableNames":[{"name":"memPtr","nativeSrc":"57:6:21","nodeType":"YulIdentifier","src":"57:6:21"}]}]},"name":"allocate_unbounded","nativeSrc":"7:75:21","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"memPtr","nativeSrc":"40:6:21","nodeType":"YulTypedName","src":"40:6:21","type":""}],"src":"7:75:21"},{"body":{"nativeSrc":"177:28:21","nodeType":"YulBlock","src":"177:28:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"194:1:21","nodeType":"YulLiteral","src":"194:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"197:1:21","nodeType":"YulLiteral","src":"197:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"187:6:21","nodeType":"YulIdentifier","src":"187:6:21"},"nativeSrc":"187:12:21","nodeType":"YulFunctionCall","src":"187:12:21"},"nativeSrc":"187:12:21","nodeType":"YulExpressionStatement","src":"187:12:21"}]},"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"88:117:21","nodeType":"YulFunctionDefinition","src":"88:117:21"},{"body":{"nativeSrc":"300:28:21","nodeType":"YulBlock","src":"300:28:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"317:1:21","nodeType":"YulLiteral","src":"317:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"320:1:21","nodeType":"YulLiteral","src":"320:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"310:6:21","nodeType":"YulIdentifier","src":"310:6:21"},"nativeSrc":"310:12:21","nodeType":"YulFunctionCall","src":"310:12:21"},"nativeSrc":"310:12:21","nodeType":"YulExpressionStatement","src":"310:12:21"}]},"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"211:117:21","nodeType":"YulFunctionDefinition","src":"211:117:21"},{"body":{"nativeSrc":"378:105:21","nodeType":"YulBlock","src":"378:105:21","statements":[{"nativeSrc":"388:89:21","nodeType":"YulAssignment","src":"388:89:21","value":{"arguments":[{"name":"value","nativeSrc":"403:5:21","nodeType":"YulIdentifier","src":"403:5:21"},{"kind":"number","nativeSrc":"410:66:21","nodeType":"YulLiteral","src":"410:66:21","type":"","value":"0xffffffff00000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"399:3:21","nodeType":"YulIdentifier","src":"399:3:21"},"nativeSrc":"399:78:21","nodeType":"YulFunctionCall","src":"399:78:21"},"variableNames":[{"name":"cleaned","nativeSrc":"388:7:21","nodeType":"YulIdentifier","src":"388:7:21"}]}]},"name":"cleanup_t_bytes4","nativeSrc":"334:149:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"360:5:21","nodeType":"YulTypedName","src":"360:5:21","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"370:7:21","nodeType":"YulTypedName","src":"370:7:21","type":""}],"src":"334:149:21"},{"body":{"nativeSrc":"531:78:21","nodeType":"YulBlock","src":"531:78:21","statements":[{"body":{"nativeSrc":"587:16:21","nodeType":"YulBlock","src":"587:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"596:1:21","nodeType":"YulLiteral","src":"596:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"599:1:21","nodeType":"YulLiteral","src":"599:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"589:6:21","nodeType":"YulIdentifier","src":"589:6:21"},"nativeSrc":"589:12:21","nodeType":"YulFunctionCall","src":"589:12:21"},"nativeSrc":"589:12:21","nodeType":"YulExpressionStatement","src":"589:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"554:5:21","nodeType":"YulIdentifier","src":"554:5:21"},{"arguments":[{"name":"value","nativeSrc":"578:5:21","nodeType":"YulIdentifier","src":"578:5:21"}],"functionName":{"name":"cleanup_t_bytes4","nativeSrc":"561:16:21","nodeType":"YulIdentifier","src":"561:16:21"},"nativeSrc":"561:23:21","nodeType":"YulFunctionCall","src":"561:23:21"}],"functionName":{"name":"eq","nativeSrc":"551:2:21","nodeType":"YulIdentifier","src":"551:2:21"},"nativeSrc":"551:34:21","nodeType":"YulFunctionCall","src":"551:34:21"}],"functionName":{"name":"iszero","nativeSrc":"544:6:21","nodeType":"YulIdentifier","src":"544:6:21"},"nativeSrc":"544:42:21","nodeType":"YulFunctionCall","src":"544:42:21"},"nativeSrc":"541:62:21","nodeType":"YulIf","src":"541:62:21"}]},"name":"validator_revert_t_bytes4","nativeSrc":"489:120:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"524:5:21","nodeType":"YulTypedName","src":"524:5:21","type":""}],"src":"489:120:21"},{"body":{"nativeSrc":"666:86:21","nodeType":"YulBlock","src":"666:86:21","statements":[{"nativeSrc":"676:29:21","nodeType":"YulAssignment","src":"676:29:21","value":{"arguments":[{"name":"offset","nativeSrc":"698:6:21","nodeType":"YulIdentifier","src":"698:6:21"}],"functionName":{"name":"calldataload","nativeSrc":"685:12:21","nodeType":"YulIdentifier","src":"685:12:21"},"nativeSrc":"685:20:21","nodeType":"YulFunctionCall","src":"685:20:21"},"variableNames":[{"name":"value","nativeSrc":"676:5:21","nodeType":"YulIdentifier","src":"676:5:21"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"740:5:21","nodeType":"YulIdentifier","src":"740:5:21"}],"functionName":{"name":"validator_revert_t_bytes4","nativeSrc":"714:25:21","nodeType":"YulIdentifier","src":"714:25:21"},"nativeSrc":"714:32:21","nodeType":"YulFunctionCall","src":"714:32:21"},"nativeSrc":"714:32:21","nodeType":"YulExpressionStatement","src":"714:32:21"}]},"name":"abi_decode_t_bytes4","nativeSrc":"615:137:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"644:6:21","nodeType":"YulTypedName","src":"644:6:21","type":""},{"name":"end","nativeSrc":"652:3:21","nodeType":"YulTypedName","src":"652:3:21","type":""}],"returnVariables":[{"name":"value","nativeSrc":"660:5:21","nodeType":"YulTypedName","src":"660:5:21","type":""}],"src":"615:137:21"},{"body":{"nativeSrc":"823:262:21","nodeType":"YulBlock","src":"823:262:21","statements":[{"body":{"nativeSrc":"869:83:21","nodeType":"YulBlock","src":"869:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"871:77:21","nodeType":"YulIdentifier","src":"871:77:21"},"nativeSrc":"871:79:21","nodeType":"YulFunctionCall","src":"871:79:21"},"nativeSrc":"871:79:21","nodeType":"YulExpressionStatement","src":"871:79:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"844:7:21","nodeType":"YulIdentifier","src":"844:7:21"},{"name":"headStart","nativeSrc":"853:9:21","nodeType":"YulIdentifier","src":"853:9:21"}],"functionName":{"name":"sub","nativeSrc":"840:3:21","nodeType":"YulIdentifier","src":"840:3:21"},"nativeSrc":"840:23:21","nodeType":"YulFunctionCall","src":"840:23:21"},{"kind":"number","nativeSrc":"865:2:21","nodeType":"YulLiteral","src":"865:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"836:3:21","nodeType":"YulIdentifier","src":"836:3:21"},"nativeSrc":"836:32:21","nodeType":"YulFunctionCall","src":"836:32:21"},"nativeSrc":"833:119:21","nodeType":"YulIf","src":"833:119:21"},{"nativeSrc":"962:116:21","nodeType":"YulBlock","src":"962:116:21","statements":[{"nativeSrc":"977:15:21","nodeType":"YulVariableDeclaration","src":"977:15:21","value":{"kind":"number","nativeSrc":"991:1:21","nodeType":"YulLiteral","src":"991:1:21","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"981:6:21","nodeType":"YulTypedName","src":"981:6:21","type":""}]},{"nativeSrc":"1006:62:21","nodeType":"YulAssignment","src":"1006:62:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"1040:9:21","nodeType":"YulIdentifier","src":"1040:9:21"},{"name":"offset","nativeSrc":"1051:6:21","nodeType":"YulIdentifier","src":"1051:6:21"}],"functionName":{"name":"add","nativeSrc":"1036:3:21","nodeType":"YulIdentifier","src":"1036:3:21"},"nativeSrc":"1036:22:21","nodeType":"YulFunctionCall","src":"1036:22:21"},{"name":"dataEnd","nativeSrc":"1060:7:21","nodeType":"YulIdentifier","src":"1060:7:21"}],"functionName":{"name":"abi_decode_t_bytes4","nativeSrc":"1016:19:21","nodeType":"YulIdentifier","src":"1016:19:21"},"nativeSrc":"1016:52:21","nodeType":"YulFunctionCall","src":"1016:52:21"},"variableNames":[{"name":"value0","nativeSrc":"1006:6:21","nodeType":"YulIdentifier","src":"1006:6:21"}]}]}]},"name":"abi_decode_tuple_t_bytes4","nativeSrc":"758:327:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"793:9:21","nodeType":"YulTypedName","src":"793:9:21","type":""},{"name":"dataEnd","nativeSrc":"804:7:21","nodeType":"YulTypedName","src":"804:7:21","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"816:6:21","nodeType":"YulTypedName","src":"816:6:21","type":""}],"src":"758:327:21"},{"body":{"nativeSrc":"1133:48:21","nodeType":"YulBlock","src":"1133:48:21","statements":[{"nativeSrc":"1143:32:21","nodeType":"YulAssignment","src":"1143:32:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1168:5:21","nodeType":"YulIdentifier","src":"1168:5:21"}],"functionName":{"name":"iszero","nativeSrc":"1161:6:21","nodeType":"YulIdentifier","src":"1161:6:21"},"nativeSrc":"1161:13:21","nodeType":"YulFunctionCall","src":"1161:13:21"}],"functionName":{"name":"iszero","nativeSrc":"1154:6:21","nodeType":"YulIdentifier","src":"1154:6:21"},"nativeSrc":"1154:21:21","nodeType":"YulFunctionCall","src":"1154:21:21"},"variableNames":[{"name":"cleaned","nativeSrc":"1143:7:21","nodeType":"YulIdentifier","src":"1143:7:21"}]}]},"name":"cleanup_t_bool","nativeSrc":"1091:90:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1115:5:21","nodeType":"YulTypedName","src":"1115:5:21","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"1125:7:21","nodeType":"YulTypedName","src":"1125:7:21","type":""}],"src":"1091:90:21"},{"body":{"nativeSrc":"1246:50:21","nodeType":"YulBlock","src":"1246:50:21","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"1263:3:21","nodeType":"YulIdentifier","src":"1263:3:21"},{"arguments":[{"name":"value","nativeSrc":"1283:5:21","nodeType":"YulIdentifier","src":"1283:5:21"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"1268:14:21","nodeType":"YulIdentifier","src":"1268:14:21"},"nativeSrc":"1268:21:21","nodeType":"YulFunctionCall","src":"1268:21:21"}],"functionName":{"name":"mstore","nativeSrc":"1256:6:21","nodeType":"YulIdentifier","src":"1256:6:21"},"nativeSrc":"1256:34:21","nodeType":"YulFunctionCall","src":"1256:34:21"},"nativeSrc":"1256:34:21","nodeType":"YulExpressionStatement","src":"1256:34:21"}]},"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1187:109:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1234:5:21","nodeType":"YulTypedName","src":"1234:5:21","type":""},{"name":"pos","nativeSrc":"1241:3:21","nodeType":"YulTypedName","src":"1241:3:21","type":""}],"src":"1187:109:21"},{"body":{"nativeSrc":"1394:118:21","nodeType":"YulBlock","src":"1394:118:21","statements":[{"nativeSrc":"1404:26:21","nodeType":"YulAssignment","src":"1404:26:21","value":{"arguments":[{"name":"headStart","nativeSrc":"1416:9:21","nodeType":"YulIdentifier","src":"1416:9:21"},{"kind":"number","nativeSrc":"1427:2:21","nodeType":"YulLiteral","src":"1427:2:21","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"1412:3:21","nodeType":"YulIdentifier","src":"1412:3:21"},"nativeSrc":"1412:18:21","nodeType":"YulFunctionCall","src":"1412:18:21"},"variableNames":[{"name":"tail","nativeSrc":"1404:4:21","nodeType":"YulIdentifier","src":"1404:4:21"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"1478:6:21","nodeType":"YulIdentifier","src":"1478:6:21"},{"arguments":[{"name":"headStart","nativeSrc":"1491:9:21","nodeType":"YulIdentifier","src":"1491:9:21"},{"kind":"number","nativeSrc":"1502:1:21","nodeType":"YulLiteral","src":"1502:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"1487:3:21","nodeType":"YulIdentifier","src":"1487:3:21"},"nativeSrc":"1487:17:21","nodeType":"YulFunctionCall","src":"1487:17:21"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"1440:37:21","nodeType":"YulIdentifier","src":"1440:37:21"},"nativeSrc":"1440:65:21","nodeType":"YulFunctionCall","src":"1440:65:21"},"nativeSrc":"1440:65:21","nodeType":"YulExpressionStatement","src":"1440:65:21"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nativeSrc":"1302:210:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"1366:9:21","nodeType":"YulTypedName","src":"1366:9:21","type":""},{"name":"value0","nativeSrc":"1378:6:21","nodeType":"YulTypedName","src":"1378:6:21","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"1389:4:21","nodeType":"YulTypedName","src":"1389:4:21","type":""}],"src":"1302:210:21"},{"body":{"nativeSrc":"1607:28:21","nodeType":"YulBlock","src":"1607:28:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1624:1:21","nodeType":"YulLiteral","src":"1624:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"1627:1:21","nodeType":"YulLiteral","src":"1627:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"1617:6:21","nodeType":"YulIdentifier","src":"1617:6:21"},"nativeSrc":"1617:12:21","nodeType":"YulFunctionCall","src":"1617:12:21"},"nativeSrc":"1617:12:21","nodeType":"YulExpressionStatement","src":"1617:12:21"}]},"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"1518:117:21","nodeType":"YulFunctionDefinition","src":"1518:117:21"},{"body":{"nativeSrc":"1689:54:21","nodeType":"YulBlock","src":"1689:54:21","statements":[{"nativeSrc":"1699:38:21","nodeType":"YulAssignment","src":"1699:38:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"1717:5:21","nodeType":"YulIdentifier","src":"1717:5:21"},{"kind":"number","nativeSrc":"1724:2:21","nodeType":"YulLiteral","src":"1724:2:21","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"1713:3:21","nodeType":"YulIdentifier","src":"1713:3:21"},"nativeSrc":"1713:14:21","nodeType":"YulFunctionCall","src":"1713:14:21"},{"arguments":[{"kind":"number","nativeSrc":"1733:2:21","nodeType":"YulLiteral","src":"1733:2:21","type":"","value":"31"}],"functionName":{"name":"not","nativeSrc":"1729:3:21","nodeType":"YulIdentifier","src":"1729:3:21"},"nativeSrc":"1729:7:21","nodeType":"YulFunctionCall","src":"1729:7:21"}],"functionName":{"name":"and","nativeSrc":"1709:3:21","nodeType":"YulIdentifier","src":"1709:3:21"},"nativeSrc":"1709:28:21","nodeType":"YulFunctionCall","src":"1709:28:21"},"variableNames":[{"name":"result","nativeSrc":"1699:6:21","nodeType":"YulIdentifier","src":"1699:6:21"}]}]},"name":"round_up_to_mul_of_32","nativeSrc":"1641:102:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"1672:5:21","nodeType":"YulTypedName","src":"1672:5:21","type":""}],"returnVariables":[{"name":"result","nativeSrc":"1682:6:21","nodeType":"YulTypedName","src":"1682:6:21","type":""}],"src":"1641:102:21"},{"body":{"nativeSrc":"1777:152:21","nodeType":"YulBlock","src":"1777:152:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"1794:1:21","nodeType":"YulLiteral","src":"1794:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"1797:77:21","nodeType":"YulLiteral","src":"1797:77:21","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"1787:6:21","nodeType":"YulIdentifier","src":"1787:6:21"},"nativeSrc":"1787:88:21","nodeType":"YulFunctionCall","src":"1787:88:21"},"nativeSrc":"1787:88:21","nodeType":"YulExpressionStatement","src":"1787:88:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1891:1:21","nodeType":"YulLiteral","src":"1891:1:21","type":"","value":"4"},{"kind":"number","nativeSrc":"1894:4:21","nodeType":"YulLiteral","src":"1894:4:21","type":"","value":"0x41"}],"functionName":{"name":"mstore","nativeSrc":"1884:6:21","nodeType":"YulIdentifier","src":"1884:6:21"},"nativeSrc":"1884:15:21","nodeType":"YulFunctionCall","src":"1884:15:21"},"nativeSrc":"1884:15:21","nodeType":"YulExpressionStatement","src":"1884:15:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"1915:1:21","nodeType":"YulLiteral","src":"1915:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"1918:4:21","nodeType":"YulLiteral","src":"1918:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"1908:6:21","nodeType":"YulIdentifier","src":"1908:6:21"},"nativeSrc":"1908:15:21","nodeType":"YulFunctionCall","src":"1908:15:21"},"nativeSrc":"1908:15:21","nodeType":"YulExpressionStatement","src":"1908:15:21"}]},"name":"panic_error_0x41","nativeSrc":"1749:180:21","nodeType":"YulFunctionDefinition","src":"1749:180:21"},{"body":{"nativeSrc":"1978:238:21","nodeType":"YulBlock","src":"1978:238:21","statements":[{"nativeSrc":"1988:58:21","nodeType":"YulVariableDeclaration","src":"1988:58:21","value":{"arguments":[{"name":"memPtr","nativeSrc":"2010:6:21","nodeType":"YulIdentifier","src":"2010:6:21"},{"arguments":[{"name":"size","nativeSrc":"2040:4:21","nodeType":"YulIdentifier","src":"2040:4:21"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"2018:21:21","nodeType":"YulIdentifier","src":"2018:21:21"},"nativeSrc":"2018:27:21","nodeType":"YulFunctionCall","src":"2018:27:21"}],"functionName":{"name":"add","nativeSrc":"2006:3:21","nodeType":"YulIdentifier","src":"2006:3:21"},"nativeSrc":"2006:40:21","nodeType":"YulFunctionCall","src":"2006:40:21"},"variables":[{"name":"newFreePtr","nativeSrc":"1992:10:21","nodeType":"YulTypedName","src":"1992:10:21","type":""}]},{"body":{"nativeSrc":"2157:22:21","nodeType":"YulBlock","src":"2157:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"2159:16:21","nodeType":"YulIdentifier","src":"2159:16:21"},"nativeSrc":"2159:18:21","nodeType":"YulFunctionCall","src":"2159:18:21"},"nativeSrc":"2159:18:21","nodeType":"YulExpressionStatement","src":"2159:18:21"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nativeSrc":"2100:10:21","nodeType":"YulIdentifier","src":"2100:10:21"},{"kind":"number","nativeSrc":"2112:18:21","nodeType":"YulLiteral","src":"2112:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"2097:2:21","nodeType":"YulIdentifier","src":"2097:2:21"},"nativeSrc":"2097:34:21","nodeType":"YulFunctionCall","src":"2097:34:21"},{"arguments":[{"name":"newFreePtr","nativeSrc":"2136:10:21","nodeType":"YulIdentifier","src":"2136:10:21"},{"name":"memPtr","nativeSrc":"2148:6:21","nodeType":"YulIdentifier","src":"2148:6:21"}],"functionName":{"name":"lt","nativeSrc":"2133:2:21","nodeType":"YulIdentifier","src":"2133:2:21"},"nativeSrc":"2133:22:21","nodeType":"YulFunctionCall","src":"2133:22:21"}],"functionName":{"name":"or","nativeSrc":"2094:2:21","nodeType":"YulIdentifier","src":"2094:2:21"},"nativeSrc":"2094:62:21","nodeType":"YulFunctionCall","src":"2094:62:21"},"nativeSrc":"2091:88:21","nodeType":"YulIf","src":"2091:88:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"2195:2:21","nodeType":"YulLiteral","src":"2195:2:21","type":"","value":"64"},{"name":"newFreePtr","nativeSrc":"2199:10:21","nodeType":"YulIdentifier","src":"2199:10:21"}],"functionName":{"name":"mstore","nativeSrc":"2188:6:21","nodeType":"YulIdentifier","src":"2188:6:21"},"nativeSrc":"2188:22:21","nodeType":"YulFunctionCall","src":"2188:22:21"},"nativeSrc":"2188:22:21","nodeType":"YulExpressionStatement","src":"2188:22:21"}]},"name":"finalize_allocation","nativeSrc":"1935:281:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"1964:6:21","nodeType":"YulTypedName","src":"1964:6:21","type":""},{"name":"size","nativeSrc":"1972:4:21","nodeType":"YulTypedName","src":"1972:4:21","type":""}],"src":"1935:281:21"},{"body":{"nativeSrc":"2263:88:21","nodeType":"YulBlock","src":"2263:88:21","statements":[{"nativeSrc":"2273:30:21","nodeType":"YulAssignment","src":"2273:30:21","value":{"arguments":[],"functionName":{"name":"allocate_unbounded","nativeSrc":"2283:18:21","nodeType":"YulIdentifier","src":"2283:18:21"},"nativeSrc":"2283:20:21","nodeType":"YulFunctionCall","src":"2283:20:21"},"variableNames":[{"name":"memPtr","nativeSrc":"2273:6:21","nodeType":"YulIdentifier","src":"2273:6:21"}]},{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"2332:6:21","nodeType":"YulIdentifier","src":"2332:6:21"},{"name":"size","nativeSrc":"2340:4:21","nodeType":"YulIdentifier","src":"2340:4:21"}],"functionName":{"name":"finalize_allocation","nativeSrc":"2312:19:21","nodeType":"YulIdentifier","src":"2312:19:21"},"nativeSrc":"2312:33:21","nodeType":"YulFunctionCall","src":"2312:33:21"},"nativeSrc":"2312:33:21","nodeType":"YulExpressionStatement","src":"2312:33:21"}]},"name":"allocate_memory","nativeSrc":"2222:129:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nativeSrc":"2247:4:21","nodeType":"YulTypedName","src":"2247:4:21","type":""}],"returnVariables":[{"name":"memPtr","nativeSrc":"2256:6:21","nodeType":"YulTypedName","src":"2256:6:21","type":""}],"src":"2222:129:21"},{"body":{"nativeSrc":"2446:28:21","nodeType":"YulBlock","src":"2446:28:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2463:1:21","nodeType":"YulLiteral","src":"2463:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"2466:1:21","nodeType":"YulLiteral","src":"2466:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2456:6:21","nodeType":"YulIdentifier","src":"2456:6:21"},"nativeSrc":"2456:12:21","nodeType":"YulFunctionCall","src":"2456:12:21"},"nativeSrc":"2456:12:21","nodeType":"YulExpressionStatement","src":"2456:12:21"}]},"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"2357:117:21","nodeType":"YulFunctionDefinition","src":"2357:117:21"},{"body":{"nativeSrc":"2520:76:21","nodeType":"YulBlock","src":"2520:76:21","statements":[{"body":{"nativeSrc":"2574:16:21","nodeType":"YulBlock","src":"2574:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2583:1:21","nodeType":"YulLiteral","src":"2583:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"2586:1:21","nodeType":"YulLiteral","src":"2586:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2576:6:21","nodeType":"YulIdentifier","src":"2576:6:21"},"nativeSrc":"2576:12:21","nodeType":"YulFunctionCall","src":"2576:12:21"},"nativeSrc":"2576:12:21","nodeType":"YulExpressionStatement","src":"2576:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2543:5:21","nodeType":"YulIdentifier","src":"2543:5:21"},{"arguments":[{"name":"value","nativeSrc":"2565:5:21","nodeType":"YulIdentifier","src":"2565:5:21"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"2550:14:21","nodeType":"YulIdentifier","src":"2550:14:21"},"nativeSrc":"2550:21:21","nodeType":"YulFunctionCall","src":"2550:21:21"}],"functionName":{"name":"eq","nativeSrc":"2540:2:21","nodeType":"YulIdentifier","src":"2540:2:21"},"nativeSrc":"2540:32:21","nodeType":"YulFunctionCall","src":"2540:32:21"}],"functionName":{"name":"iszero","nativeSrc":"2533:6:21","nodeType":"YulIdentifier","src":"2533:6:21"},"nativeSrc":"2533:40:21","nodeType":"YulFunctionCall","src":"2533:40:21"},"nativeSrc":"2530:60:21","nodeType":"YulIf","src":"2530:60:21"}]},"name":"validator_revert_t_bool","nativeSrc":"2480:116:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2513:5:21","nodeType":"YulTypedName","src":"2513:5:21","type":""}],"src":"2480:116:21"},{"body":{"nativeSrc":"2651:84:21","nodeType":"YulBlock","src":"2651:84:21","statements":[{"nativeSrc":"2661:29:21","nodeType":"YulAssignment","src":"2661:29:21","value":{"arguments":[{"name":"offset","nativeSrc":"2683:6:21","nodeType":"YulIdentifier","src":"2683:6:21"}],"functionName":{"name":"calldataload","nativeSrc":"2670:12:21","nodeType":"YulIdentifier","src":"2670:12:21"},"nativeSrc":"2670:20:21","nodeType":"YulFunctionCall","src":"2670:20:21"},"variableNames":[{"name":"value","nativeSrc":"2661:5:21","nodeType":"YulIdentifier","src":"2661:5:21"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"2723:5:21","nodeType":"YulIdentifier","src":"2723:5:21"}],"functionName":{"name":"validator_revert_t_bool","nativeSrc":"2699:23:21","nodeType":"YulIdentifier","src":"2699:23:21"},"nativeSrc":"2699:30:21","nodeType":"YulFunctionCall","src":"2699:30:21"},"nativeSrc":"2699:30:21","nodeType":"YulExpressionStatement","src":"2699:30:21"}]},"name":"abi_decode_t_bool","nativeSrc":"2602:133:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2629:6:21","nodeType":"YulTypedName","src":"2629:6:21","type":""},{"name":"end","nativeSrc":"2637:3:21","nodeType":"YulTypedName","src":"2637:3:21","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2645:5:21","nodeType":"YulTypedName","src":"2645:5:21","type":""}],"src":"2602:133:21"},{"body":{"nativeSrc":"2799:56:21","nodeType":"YulBlock","src":"2799:56:21","statements":[{"body":{"nativeSrc":"2833:16:21","nodeType":"YulBlock","src":"2833:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"2842:1:21","nodeType":"YulLiteral","src":"2842:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"2845:1:21","nodeType":"YulLiteral","src":"2845:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"2835:6:21","nodeType":"YulIdentifier","src":"2835:6:21"},"nativeSrc":"2835:12:21","nodeType":"YulFunctionCall","src":"2835:12:21"},"nativeSrc":"2835:12:21","nodeType":"YulExpressionStatement","src":"2835:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"2822:5:21","nodeType":"YulIdentifier","src":"2822:5:21"},{"kind":"number","nativeSrc":"2829:1:21","nodeType":"YulLiteral","src":"2829:1:21","type":"","value":"7"}],"functionName":{"name":"lt","nativeSrc":"2819:2:21","nodeType":"YulIdentifier","src":"2819:2:21"},"nativeSrc":"2819:12:21","nodeType":"YulFunctionCall","src":"2819:12:21"}],"functionName":{"name":"iszero","nativeSrc":"2812:6:21","nodeType":"YulIdentifier","src":"2812:6:21"},"nativeSrc":"2812:20:21","nodeType":"YulFunctionCall","src":"2812:20:21"},"nativeSrc":"2809:40:21","nodeType":"YulIf","src":"2809:40:21"}]},"name":"validator_revert_t_enum$_CachePreset_$964","nativeSrc":"2741:114:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"2792:5:21","nodeType":"YulTypedName","src":"2792:5:21","type":""}],"src":"2741:114:21"},{"body":{"nativeSrc":"2928:102:21","nodeType":"YulBlock","src":"2928:102:21","statements":[{"nativeSrc":"2938:29:21","nodeType":"YulAssignment","src":"2938:29:21","value":{"arguments":[{"name":"offset","nativeSrc":"2960:6:21","nodeType":"YulIdentifier","src":"2960:6:21"}],"functionName":{"name":"calldataload","nativeSrc":"2947:12:21","nodeType":"YulIdentifier","src":"2947:12:21"},"nativeSrc":"2947:20:21","nodeType":"YulFunctionCall","src":"2947:20:21"},"variableNames":[{"name":"value","nativeSrc":"2938:5:21","nodeType":"YulIdentifier","src":"2938:5:21"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"3018:5:21","nodeType":"YulIdentifier","src":"3018:5:21"}],"functionName":{"name":"validator_revert_t_enum$_CachePreset_$964","nativeSrc":"2976:41:21","nodeType":"YulIdentifier","src":"2976:41:21"},"nativeSrc":"2976:48:21","nodeType":"YulFunctionCall","src":"2976:48:21"},"nativeSrc":"2976:48:21","nodeType":"YulExpressionStatement","src":"2976:48:21"}]},"name":"abi_decode_t_enum$_CachePreset_$964","nativeSrc":"2861:169:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"2906:6:21","nodeType":"YulTypedName","src":"2906:6:21","type":""},{"name":"end","nativeSrc":"2914:3:21","nodeType":"YulTypedName","src":"2914:3:21","type":""}],"returnVariables":[{"name":"value","nativeSrc":"2922:5:21","nodeType":"YulTypedName","src":"2922:5:21","type":""}],"src":"2861:169:21"},{"body":{"nativeSrc":"3125:28:21","nodeType":"YulBlock","src":"3125:28:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3142:1:21","nodeType":"YulLiteral","src":"3142:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"3145:1:21","nodeType":"YulLiteral","src":"3145:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3135:6:21","nodeType":"YulIdentifier","src":"3135:6:21"},"nativeSrc":"3135:12:21","nodeType":"YulFunctionCall","src":"3135:12:21"},"nativeSrc":"3135:12:21","nodeType":"YulExpressionStatement","src":"3135:12:21"}]},"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"3036:117:21","nodeType":"YulFunctionDefinition","src":"3036:117:21"},{"body":{"nativeSrc":"3248:28:21","nodeType":"YulBlock","src":"3248:28:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"3265:1:21","nodeType":"YulLiteral","src":"3265:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"3268:1:21","nodeType":"YulLiteral","src":"3268:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"3258:6:21","nodeType":"YulIdentifier","src":"3258:6:21"},"nativeSrc":"3258:12:21","nodeType":"YulFunctionCall","src":"3258:12:21"},"nativeSrc":"3258:12:21","nodeType":"YulExpressionStatement","src":"3258:12:21"}]},"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"3159:117:21","nodeType":"YulFunctionDefinition","src":"3159:117:21"},{"body":{"nativeSrc":"3349:241:21","nodeType":"YulBlock","src":"3349:241:21","statements":[{"body":{"nativeSrc":"3454:22:21","nodeType":"YulBlock","src":"3454:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"3456:16:21","nodeType":"YulIdentifier","src":"3456:16:21"},"nativeSrc":"3456:18:21","nodeType":"YulFunctionCall","src":"3456:18:21"},"nativeSrc":"3456:18:21","nodeType":"YulExpressionStatement","src":"3456:18:21"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"3426:6:21","nodeType":"YulIdentifier","src":"3426:6:21"},{"kind":"number","nativeSrc":"3434:18:21","nodeType":"YulLiteral","src":"3434:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"3423:2:21","nodeType":"YulIdentifier","src":"3423:2:21"},"nativeSrc":"3423:30:21","nodeType":"YulFunctionCall","src":"3423:30:21"},"nativeSrc":"3420:56:21","nodeType":"YulIf","src":"3420:56:21"},{"nativeSrc":"3486:37:21","nodeType":"YulAssignment","src":"3486:37:21","value":{"arguments":[{"name":"length","nativeSrc":"3516:6:21","nodeType":"YulIdentifier","src":"3516:6:21"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"3494:21:21","nodeType":"YulIdentifier","src":"3494:21:21"},"nativeSrc":"3494:29:21","nodeType":"YulFunctionCall","src":"3494:29:21"},"variableNames":[{"name":"size","nativeSrc":"3486:4:21","nodeType":"YulIdentifier","src":"3486:4:21"}]},{"nativeSrc":"3560:23:21","nodeType":"YulAssignment","src":"3560:23:21","value":{"arguments":[{"name":"size","nativeSrc":"3572:4:21","nodeType":"YulIdentifier","src":"3572:4:21"},{"kind":"number","nativeSrc":"3578:4:21","nodeType":"YulLiteral","src":"3578:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3568:3:21","nodeType":"YulIdentifier","src":"3568:3:21"},"nativeSrc":"3568:15:21","nodeType":"YulFunctionCall","src":"3568:15:21"},"variableNames":[{"name":"size","nativeSrc":"3560:4:21","nodeType":"YulIdentifier","src":"3560:4:21"}]}]},"name":"array_allocation_size_t_string_memory_ptr","nativeSrc":"3282:308:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"3333:6:21","nodeType":"YulTypedName","src":"3333:6:21","type":""}],"returnVariables":[{"name":"size","nativeSrc":"3344:4:21","nodeType":"YulTypedName","src":"3344:4:21","type":""}],"src":"3282:308:21"},{"body":{"nativeSrc":"3660:84:21","nodeType":"YulBlock","src":"3660:84:21","statements":[{"expression":{"arguments":[{"name":"dst","nativeSrc":"3684:3:21","nodeType":"YulIdentifier","src":"3684:3:21"},{"name":"src","nativeSrc":"3689:3:21","nodeType":"YulIdentifier","src":"3689:3:21"},{"name":"length","nativeSrc":"3694:6:21","nodeType":"YulIdentifier","src":"3694:6:21"}],"functionName":{"name":"calldatacopy","nativeSrc":"3671:12:21","nodeType":"YulIdentifier","src":"3671:12:21"},"nativeSrc":"3671:30:21","nodeType":"YulFunctionCall","src":"3671:30:21"},"nativeSrc":"3671:30:21","nodeType":"YulExpressionStatement","src":"3671:30:21"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"3721:3:21","nodeType":"YulIdentifier","src":"3721:3:21"},{"name":"length","nativeSrc":"3726:6:21","nodeType":"YulIdentifier","src":"3726:6:21"}],"functionName":{"name":"add","nativeSrc":"3717:3:21","nodeType":"YulIdentifier","src":"3717:3:21"},"nativeSrc":"3717:16:21","nodeType":"YulFunctionCall","src":"3717:16:21"},{"kind":"number","nativeSrc":"3735:1:21","nodeType":"YulLiteral","src":"3735:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"3710:6:21","nodeType":"YulIdentifier","src":"3710:6:21"},"nativeSrc":"3710:27:21","nodeType":"YulFunctionCall","src":"3710:27:21"},"nativeSrc":"3710:27:21","nodeType":"YulExpressionStatement","src":"3710:27:21"}]},"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"3596:148:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"3642:3:21","nodeType":"YulTypedName","src":"3642:3:21","type":""},{"name":"dst","nativeSrc":"3647:3:21","nodeType":"YulTypedName","src":"3647:3:21","type":""},{"name":"length","nativeSrc":"3652:6:21","nodeType":"YulTypedName","src":"3652:6:21","type":""}],"src":"3596:148:21"},{"body":{"nativeSrc":"3834:341:21","nodeType":"YulBlock","src":"3834:341:21","statements":[{"nativeSrc":"3844:75:21","nodeType":"YulAssignment","src":"3844:75:21","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"3911:6:21","nodeType":"YulIdentifier","src":"3911:6:21"}],"functionName":{"name":"array_allocation_size_t_string_memory_ptr","nativeSrc":"3869:41:21","nodeType":"YulIdentifier","src":"3869:41:21"},"nativeSrc":"3869:49:21","nodeType":"YulFunctionCall","src":"3869:49:21"}],"functionName":{"name":"allocate_memory","nativeSrc":"3853:15:21","nodeType":"YulIdentifier","src":"3853:15:21"},"nativeSrc":"3853:66:21","nodeType":"YulFunctionCall","src":"3853:66:21"},"variableNames":[{"name":"array","nativeSrc":"3844:5:21","nodeType":"YulIdentifier","src":"3844:5:21"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"3935:5:21","nodeType":"YulIdentifier","src":"3935:5:21"},{"name":"length","nativeSrc":"3942:6:21","nodeType":"YulIdentifier","src":"3942:6:21"}],"functionName":{"name":"mstore","nativeSrc":"3928:6:21","nodeType":"YulIdentifier","src":"3928:6:21"},"nativeSrc":"3928:21:21","nodeType":"YulFunctionCall","src":"3928:21:21"},"nativeSrc":"3928:21:21","nodeType":"YulExpressionStatement","src":"3928:21:21"},{"nativeSrc":"3958:27:21","nodeType":"YulVariableDeclaration","src":"3958:27:21","value":{"arguments":[{"name":"array","nativeSrc":"3973:5:21","nodeType":"YulIdentifier","src":"3973:5:21"},{"kind":"number","nativeSrc":"3980:4:21","nodeType":"YulLiteral","src":"3980:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"3969:3:21","nodeType":"YulIdentifier","src":"3969:3:21"},"nativeSrc":"3969:16:21","nodeType":"YulFunctionCall","src":"3969:16:21"},"variables":[{"name":"dst","nativeSrc":"3962:3:21","nodeType":"YulTypedName","src":"3962:3:21","type":""}]},{"body":{"nativeSrc":"4023:83:21","nodeType":"YulBlock","src":"4023:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"4025:77:21","nodeType":"YulIdentifier","src":"4025:77:21"},"nativeSrc":"4025:79:21","nodeType":"YulFunctionCall","src":"4025:79:21"},"nativeSrc":"4025:79:21","nodeType":"YulExpressionStatement","src":"4025:79:21"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"4004:3:21","nodeType":"YulIdentifier","src":"4004:3:21"},{"name":"length","nativeSrc":"4009:6:21","nodeType":"YulIdentifier","src":"4009:6:21"}],"functionName":{"name":"add","nativeSrc":"4000:3:21","nodeType":"YulIdentifier","src":"4000:3:21"},"nativeSrc":"4000:16:21","nodeType":"YulFunctionCall","src":"4000:16:21"},{"name":"end","nativeSrc":"4018:3:21","nodeType":"YulIdentifier","src":"4018:3:21"}],"functionName":{"name":"gt","nativeSrc":"3997:2:21","nodeType":"YulIdentifier","src":"3997:2:21"},"nativeSrc":"3997:25:21","nodeType":"YulFunctionCall","src":"3997:25:21"},"nativeSrc":"3994:112:21","nodeType":"YulIf","src":"3994:112:21"},{"expression":{"arguments":[{"name":"src","nativeSrc":"4152:3:21","nodeType":"YulIdentifier","src":"4152:3:21"},{"name":"dst","nativeSrc":"4157:3:21","nodeType":"YulIdentifier","src":"4157:3:21"},{"name":"length","nativeSrc":"4162:6:21","nodeType":"YulIdentifier","src":"4162:6:21"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"4115:36:21","nodeType":"YulIdentifier","src":"4115:36:21"},"nativeSrc":"4115:54:21","nodeType":"YulFunctionCall","src":"4115:54:21"},"nativeSrc":"4115:54:21","nodeType":"YulExpressionStatement","src":"4115:54:21"}]},"name":"abi_decode_available_length_t_string_memory_ptr","nativeSrc":"3750:425:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"3807:3:21","nodeType":"YulTypedName","src":"3807:3:21","type":""},{"name":"length","nativeSrc":"3812:6:21","nodeType":"YulTypedName","src":"3812:6:21","type":""},{"name":"end","nativeSrc":"3820:3:21","nodeType":"YulTypedName","src":"3820:3:21","type":""}],"returnVariables":[{"name":"array","nativeSrc":"3828:5:21","nodeType":"YulTypedName","src":"3828:5:21","type":""}],"src":"3750:425:21"},{"body":{"nativeSrc":"4257:278:21","nodeType":"YulBlock","src":"4257:278:21","statements":[{"body":{"nativeSrc":"4306:83:21","nodeType":"YulBlock","src":"4306:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"4308:77:21","nodeType":"YulIdentifier","src":"4308:77:21"},"nativeSrc":"4308:79:21","nodeType":"YulFunctionCall","src":"4308:79:21"},"nativeSrc":"4308:79:21","nodeType":"YulExpressionStatement","src":"4308:79:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"4285:6:21","nodeType":"YulIdentifier","src":"4285:6:21"},{"kind":"number","nativeSrc":"4293:4:21","nodeType":"YulLiteral","src":"4293:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"4281:3:21","nodeType":"YulIdentifier","src":"4281:3:21"},"nativeSrc":"4281:17:21","nodeType":"YulFunctionCall","src":"4281:17:21"},{"name":"end","nativeSrc":"4300:3:21","nodeType":"YulIdentifier","src":"4300:3:21"}],"functionName":{"name":"slt","nativeSrc":"4277:3:21","nodeType":"YulIdentifier","src":"4277:3:21"},"nativeSrc":"4277:27:21","nodeType":"YulFunctionCall","src":"4277:27:21"}],"functionName":{"name":"iszero","nativeSrc":"4270:6:21","nodeType":"YulIdentifier","src":"4270:6:21"},"nativeSrc":"4270:35:21","nodeType":"YulFunctionCall","src":"4270:35:21"},"nativeSrc":"4267:122:21","nodeType":"YulIf","src":"4267:122:21"},{"nativeSrc":"4398:34:21","nodeType":"YulVariableDeclaration","src":"4398:34:21","value":{"arguments":[{"name":"offset","nativeSrc":"4425:6:21","nodeType":"YulIdentifier","src":"4425:6:21"}],"functionName":{"name":"calldataload","nativeSrc":"4412:12:21","nodeType":"YulIdentifier","src":"4412:12:21"},"nativeSrc":"4412:20:21","nodeType":"YulFunctionCall","src":"4412:20:21"},"variables":[{"name":"length","nativeSrc":"4402:6:21","nodeType":"YulTypedName","src":"4402:6:21","type":""}]},{"nativeSrc":"4441:88:21","nodeType":"YulAssignment","src":"4441:88:21","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"4502:6:21","nodeType":"YulIdentifier","src":"4502:6:21"},{"kind":"number","nativeSrc":"4510:4:21","nodeType":"YulLiteral","src":"4510:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"4498:3:21","nodeType":"YulIdentifier","src":"4498:3:21"},"nativeSrc":"4498:17:21","nodeType":"YulFunctionCall","src":"4498:17:21"},{"name":"length","nativeSrc":"4517:6:21","nodeType":"YulIdentifier","src":"4517:6:21"},{"name":"end","nativeSrc":"4525:3:21","nodeType":"YulIdentifier","src":"4525:3:21"}],"functionName":{"name":"abi_decode_available_length_t_string_memory_ptr","nativeSrc":"4450:47:21","nodeType":"YulIdentifier","src":"4450:47:21"},"nativeSrc":"4450:79:21","nodeType":"YulFunctionCall","src":"4450:79:21"},"variableNames":[{"name":"array","nativeSrc":"4441:5:21","nodeType":"YulIdentifier","src":"4441:5:21"}]}]},"name":"abi_decode_t_string_memory_ptr","nativeSrc":"4195:340:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"4235:6:21","nodeType":"YulTypedName","src":"4235:6:21","type":""},{"name":"end","nativeSrc":"4243:3:21","nodeType":"YulTypedName","src":"4243:3:21","type":""}],"returnVariables":[{"name":"array","nativeSrc":"4251:5:21","nodeType":"YulTypedName","src":"4251:5:21","type":""}],"src":"4195:340:21"},{"body":{"nativeSrc":"4652:850:21","nodeType":"YulBlock","src":"4652:850:21","statements":[{"body":{"nativeSrc":"4696:83:21","nodeType":"YulBlock","src":"4696:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"4698:77:21","nodeType":"YulIdentifier","src":"4698:77:21"},"nativeSrc":"4698:79:21","nodeType":"YulFunctionCall","src":"4698:79:21"},"nativeSrc":"4698:79:21","nodeType":"YulExpressionStatement","src":"4698:79:21"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"4673:3:21","nodeType":"YulIdentifier","src":"4673:3:21"},{"name":"headStart","nativeSrc":"4678:9:21","nodeType":"YulIdentifier","src":"4678:9:21"}],"functionName":{"name":"sub","nativeSrc":"4669:3:21","nodeType":"YulIdentifier","src":"4669:3:21"},"nativeSrc":"4669:19:21","nodeType":"YulFunctionCall","src":"4669:19:21"},{"kind":"number","nativeSrc":"4690:4:21","nodeType":"YulLiteral","src":"4690:4:21","type":"","value":"0x60"}],"functionName":{"name":"slt","nativeSrc":"4665:3:21","nodeType":"YulIdentifier","src":"4665:3:21"},"nativeSrc":"4665:30:21","nodeType":"YulFunctionCall","src":"4665:30:21"},"nativeSrc":"4662:117:21","nodeType":"YulIf","src":"4662:117:21"},{"nativeSrc":"4788:30:21","nodeType":"YulAssignment","src":"4788:30:21","value":{"arguments":[{"kind":"number","nativeSrc":"4813:4:21","nodeType":"YulLiteral","src":"4813:4:21","type":"","value":"0x60"}],"functionName":{"name":"allocate_memory","nativeSrc":"4797:15:21","nodeType":"YulIdentifier","src":"4797:15:21"},"nativeSrc":"4797:21:21","nodeType":"YulFunctionCall","src":"4797:21:21"},"variableNames":[{"name":"value","nativeSrc":"4788:5:21","nodeType":"YulIdentifier","src":"4788:5:21"}]},{"nativeSrc":"4828:156:21","nodeType":"YulBlock","src":"4828:156:21","statements":[{"nativeSrc":"4872:15:21","nodeType":"YulVariableDeclaration","src":"4872:15:21","value":{"kind":"number","nativeSrc":"4886:1:21","nodeType":"YulLiteral","src":"4886:1:21","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"4876:6:21","nodeType":"YulTypedName","src":"4876:6:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"4912:5:21","nodeType":"YulIdentifier","src":"4912:5:21"},{"kind":"number","nativeSrc":"4919:4:21","nodeType":"YulLiteral","src":"4919:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"4908:3:21","nodeType":"YulIdentifier","src":"4908:3:21"},"nativeSrc":"4908:16:21","nodeType":"YulFunctionCall","src":"4908:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"4948:9:21","nodeType":"YulIdentifier","src":"4948:9:21"},{"name":"offset","nativeSrc":"4959:6:21","nodeType":"YulIdentifier","src":"4959:6:21"}],"functionName":{"name":"add","nativeSrc":"4944:3:21","nodeType":"YulIdentifier","src":"4944:3:21"},"nativeSrc":"4944:22:21","nodeType":"YulFunctionCall","src":"4944:22:21"},{"name":"end","nativeSrc":"4968:3:21","nodeType":"YulIdentifier","src":"4968:3:21"}],"functionName":{"name":"abi_decode_t_bool","nativeSrc":"4926:17:21","nodeType":"YulIdentifier","src":"4926:17:21"},"nativeSrc":"4926:46:21","nodeType":"YulFunctionCall","src":"4926:46:21"}],"functionName":{"name":"mstore","nativeSrc":"4901:6:21","nodeType":"YulIdentifier","src":"4901:6:21"},"nativeSrc":"4901:72:21","nodeType":"YulFunctionCall","src":"4901:72:21"},"nativeSrc":"4901:72:21","nodeType":"YulExpressionStatement","src":"4901:72:21"}]},{"nativeSrc":"4994:168:21","nodeType":"YulBlock","src":"4994:168:21","statements":[{"nativeSrc":"5031:16:21","nodeType":"YulVariableDeclaration","src":"5031:16:21","value":{"kind":"number","nativeSrc":"5045:2:21","nodeType":"YulLiteral","src":"5045:2:21","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"5035:6:21","nodeType":"YulTypedName","src":"5035:6:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5072:5:21","nodeType":"YulIdentifier","src":"5072:5:21"},{"kind":"number","nativeSrc":"5079:4:21","nodeType":"YulLiteral","src":"5079:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"5068:3:21","nodeType":"YulIdentifier","src":"5068:3:21"},"nativeSrc":"5068:16:21","nodeType":"YulFunctionCall","src":"5068:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5126:9:21","nodeType":"YulIdentifier","src":"5126:9:21"},{"name":"offset","nativeSrc":"5137:6:21","nodeType":"YulIdentifier","src":"5137:6:21"}],"functionName":{"name":"add","nativeSrc":"5122:3:21","nodeType":"YulIdentifier","src":"5122:3:21"},"nativeSrc":"5122:22:21","nodeType":"YulFunctionCall","src":"5122:22:21"},{"name":"end","nativeSrc":"5146:3:21","nodeType":"YulIdentifier","src":"5146:3:21"}],"functionName":{"name":"abi_decode_t_enum$_CachePreset_$964","nativeSrc":"5086:35:21","nodeType":"YulIdentifier","src":"5086:35:21"},"nativeSrc":"5086:64:21","nodeType":"YulFunctionCall","src":"5086:64:21"}],"functionName":{"name":"mstore","nativeSrc":"5061:6:21","nodeType":"YulIdentifier","src":"5061:6:21"},"nativeSrc":"5061:90:21","nodeType":"YulFunctionCall","src":"5061:90:21"},"nativeSrc":"5061:90:21","nodeType":"YulExpressionStatement","src":"5061:90:21"}]},{"nativeSrc":"5172:323:21","nodeType":"YulBlock","src":"5172:323:21","statements":[{"nativeSrc":"5209:46:21","nodeType":"YulVariableDeclaration","src":"5209:46:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5240:9:21","nodeType":"YulIdentifier","src":"5240:9:21"},{"kind":"number","nativeSrc":"5251:2:21","nodeType":"YulLiteral","src":"5251:2:21","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"5236:3:21","nodeType":"YulIdentifier","src":"5236:3:21"},"nativeSrc":"5236:18:21","nodeType":"YulFunctionCall","src":"5236:18:21"}],"functionName":{"name":"calldataload","nativeSrc":"5223:12:21","nodeType":"YulIdentifier","src":"5223:12:21"},"nativeSrc":"5223:32:21","nodeType":"YulFunctionCall","src":"5223:32:21"},"variables":[{"name":"offset","nativeSrc":"5213:6:21","nodeType":"YulTypedName","src":"5213:6:21","type":""}]},{"body":{"nativeSrc":"5302:83:21","nodeType":"YulBlock","src":"5302:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"5304:77:21","nodeType":"YulIdentifier","src":"5304:77:21"},"nativeSrc":"5304:79:21","nodeType":"YulFunctionCall","src":"5304:79:21"},"nativeSrc":"5304:79:21","nodeType":"YulExpressionStatement","src":"5304:79:21"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"5274:6:21","nodeType":"YulIdentifier","src":"5274:6:21"},{"kind":"number","nativeSrc":"5282:18:21","nodeType":"YulLiteral","src":"5282:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"5271:2:21","nodeType":"YulIdentifier","src":"5271:2:21"},"nativeSrc":"5271:30:21","nodeType":"YulFunctionCall","src":"5271:30:21"},"nativeSrc":"5268:117:21","nodeType":"YulIf","src":"5268:117:21"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5410:5:21","nodeType":"YulIdentifier","src":"5410:5:21"},{"kind":"number","nativeSrc":"5417:4:21","nodeType":"YulLiteral","src":"5417:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"5406:3:21","nodeType":"YulIdentifier","src":"5406:3:21"},"nativeSrc":"5406:16:21","nodeType":"YulFunctionCall","src":"5406:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"5459:9:21","nodeType":"YulIdentifier","src":"5459:9:21"},{"name":"offset","nativeSrc":"5470:6:21","nodeType":"YulIdentifier","src":"5470:6:21"}],"functionName":{"name":"add","nativeSrc":"5455:3:21","nodeType":"YulIdentifier","src":"5455:3:21"},"nativeSrc":"5455:22:21","nodeType":"YulFunctionCall","src":"5455:22:21"},{"name":"end","nativeSrc":"5479:3:21","nodeType":"YulIdentifier","src":"5479:3:21"}],"functionName":{"name":"abi_decode_t_string_memory_ptr","nativeSrc":"5424:30:21","nodeType":"YulIdentifier","src":"5424:30:21"},"nativeSrc":"5424:59:21","nodeType":"YulFunctionCall","src":"5424:59:21"}],"functionName":{"name":"mstore","nativeSrc":"5399:6:21","nodeType":"YulIdentifier","src":"5399:6:21"},"nativeSrc":"5399:85:21","nodeType":"YulFunctionCall","src":"5399:85:21"},"nativeSrc":"5399:85:21","nodeType":"YulExpressionStatement","src":"5399:85:21"}]}]},"name":"abi_decode_t_struct$_CacheControl_$984_memory_ptr","nativeSrc":"4568:934:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"4627:9:21","nodeType":"YulTypedName","src":"4627:9:21","type":""},{"name":"end","nativeSrc":"4638:3:21","nodeType":"YulTypedName","src":"4638:3:21","type":""}],"returnVariables":[{"name":"value","nativeSrc":"4646:5:21","nodeType":"YulTypedName","src":"4646:5:21","type":""}],"src":"4568:934:21"},{"body":{"nativeSrc":"5552:45:21","nodeType":"YulBlock","src":"5552:45:21","statements":[{"nativeSrc":"5562:29:21","nodeType":"YulAssignment","src":"5562:29:21","value":{"arguments":[{"name":"value","nativeSrc":"5577:5:21","nodeType":"YulIdentifier","src":"5577:5:21"},{"kind":"number","nativeSrc":"5584:6:21","nodeType":"YulLiteral","src":"5584:6:21","type":"","value":"0xffff"}],"functionName":{"name":"and","nativeSrc":"5573:3:21","nodeType":"YulIdentifier","src":"5573:3:21"},"nativeSrc":"5573:18:21","nodeType":"YulFunctionCall","src":"5573:18:21"},"variableNames":[{"name":"cleaned","nativeSrc":"5562:7:21","nodeType":"YulIdentifier","src":"5562:7:21"}]}]},"name":"cleanup_t_uint16","nativeSrc":"5508:89:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5534:5:21","nodeType":"YulTypedName","src":"5534:5:21","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"5544:7:21","nodeType":"YulTypedName","src":"5544:7:21","type":""}],"src":"5508:89:21"},{"body":{"nativeSrc":"5645:78:21","nodeType":"YulBlock","src":"5645:78:21","statements":[{"body":{"nativeSrc":"5701:16:21","nodeType":"YulBlock","src":"5701:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"5710:1:21","nodeType":"YulLiteral","src":"5710:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"5713:1:21","nodeType":"YulLiteral","src":"5713:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"5703:6:21","nodeType":"YulIdentifier","src":"5703:6:21"},"nativeSrc":"5703:12:21","nodeType":"YulFunctionCall","src":"5703:12:21"},"nativeSrc":"5703:12:21","nodeType":"YulExpressionStatement","src":"5703:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"5668:5:21","nodeType":"YulIdentifier","src":"5668:5:21"},{"arguments":[{"name":"value","nativeSrc":"5692:5:21","nodeType":"YulIdentifier","src":"5692:5:21"}],"functionName":{"name":"cleanup_t_uint16","nativeSrc":"5675:16:21","nodeType":"YulIdentifier","src":"5675:16:21"},"nativeSrc":"5675:23:21","nodeType":"YulFunctionCall","src":"5675:23:21"}],"functionName":{"name":"eq","nativeSrc":"5665:2:21","nodeType":"YulIdentifier","src":"5665:2:21"},"nativeSrc":"5665:34:21","nodeType":"YulFunctionCall","src":"5665:34:21"}],"functionName":{"name":"iszero","nativeSrc":"5658:6:21","nodeType":"YulIdentifier","src":"5658:6:21"},"nativeSrc":"5658:42:21","nodeType":"YulFunctionCall","src":"5658:42:21"},"nativeSrc":"5655:62:21","nodeType":"YulIf","src":"5655:62:21"}]},"name":"validator_revert_t_uint16","nativeSrc":"5603:120:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"5638:5:21","nodeType":"YulTypedName","src":"5638:5:21","type":""}],"src":"5603:120:21"},{"body":{"nativeSrc":"5780:86:21","nodeType":"YulBlock","src":"5780:86:21","statements":[{"nativeSrc":"5790:29:21","nodeType":"YulAssignment","src":"5790:29:21","value":{"arguments":[{"name":"offset","nativeSrc":"5812:6:21","nodeType":"YulIdentifier","src":"5812:6:21"}],"functionName":{"name":"calldataload","nativeSrc":"5799:12:21","nodeType":"YulIdentifier","src":"5799:12:21"},"nativeSrc":"5799:20:21","nodeType":"YulFunctionCall","src":"5799:20:21"},"variableNames":[{"name":"value","nativeSrc":"5790:5:21","nodeType":"YulIdentifier","src":"5790:5:21"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"5854:5:21","nodeType":"YulIdentifier","src":"5854:5:21"}],"functionName":{"name":"validator_revert_t_uint16","nativeSrc":"5828:25:21","nodeType":"YulIdentifier","src":"5828:25:21"},"nativeSrc":"5828:32:21","nodeType":"YulFunctionCall","src":"5828:32:21"},"nativeSrc":"5828:32:21","nodeType":"YulExpressionStatement","src":"5828:32:21"}]},"name":"abi_decode_t_uint16","nativeSrc":"5729:137:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"5758:6:21","nodeType":"YulTypedName","src":"5758:6:21","type":""},{"name":"end","nativeSrc":"5766:3:21","nodeType":"YulTypedName","src":"5766:3:21","type":""}],"returnVariables":[{"name":"value","nativeSrc":"5774:5:21","nodeType":"YulTypedName","src":"5774:5:21","type":""}],"src":"5729:137:21"},{"body":{"nativeSrc":"5954:229:21","nodeType":"YulBlock","src":"5954:229:21","statements":[{"body":{"nativeSrc":"6059:22:21","nodeType":"YulBlock","src":"6059:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"6061:16:21","nodeType":"YulIdentifier","src":"6061:16:21"},"nativeSrc":"6061:18:21","nodeType":"YulFunctionCall","src":"6061:18:21"},"nativeSrc":"6061:18:21","nodeType":"YulExpressionStatement","src":"6061:18:21"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"6031:6:21","nodeType":"YulIdentifier","src":"6031:6:21"},{"kind":"number","nativeSrc":"6039:18:21","nodeType":"YulLiteral","src":"6039:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"6028:2:21","nodeType":"YulIdentifier","src":"6028:2:21"},"nativeSrc":"6028:30:21","nodeType":"YulFunctionCall","src":"6028:30:21"},"nativeSrc":"6025:56:21","nodeType":"YulIf","src":"6025:56:21"},{"nativeSrc":"6091:25:21","nodeType":"YulAssignment","src":"6091:25:21","value":{"arguments":[{"name":"length","nativeSrc":"6103:6:21","nodeType":"YulIdentifier","src":"6103:6:21"},{"kind":"number","nativeSrc":"6111:4:21","nodeType":"YulLiteral","src":"6111:4:21","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"6099:3:21","nodeType":"YulIdentifier","src":"6099:3:21"},"nativeSrc":"6099:17:21","nodeType":"YulFunctionCall","src":"6099:17:21"},"variableNames":[{"name":"size","nativeSrc":"6091:4:21","nodeType":"YulIdentifier","src":"6091:4:21"}]},{"nativeSrc":"6153:23:21","nodeType":"YulAssignment","src":"6153:23:21","value":{"arguments":[{"name":"size","nativeSrc":"6165:4:21","nodeType":"YulIdentifier","src":"6165:4:21"},{"kind":"number","nativeSrc":"6171:4:21","nodeType":"YulLiteral","src":"6171:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6161:3:21","nodeType":"YulIdentifier","src":"6161:3:21"},"nativeSrc":"6161:15:21","nodeType":"YulFunctionCall","src":"6161:15:21"},"variableNames":[{"name":"size","nativeSrc":"6153:4:21","nodeType":"YulIdentifier","src":"6153:4:21"}]}]},"name":"array_allocation_size_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"5872:311:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"5938:6:21","nodeType":"YulTypedName","src":"5938:6:21","type":""}],"returnVariables":[{"name":"size","nativeSrc":"5949:4:21","nodeType":"YulTypedName","src":"5949:4:21","type":""}],"src":"5872:311:21"},{"body":{"nativeSrc":"6278:28:21","nodeType":"YulBlock","src":"6278:28:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6295:1:21","nodeType":"YulLiteral","src":"6295:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"6298:1:21","nodeType":"YulLiteral","src":"6298:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6288:6:21","nodeType":"YulIdentifier","src":"6288:6:21"},"nativeSrc":"6288:12:21","nodeType":"YulFunctionCall","src":"6288:12:21"},"nativeSrc":"6288:12:21","nodeType":"YulExpressionStatement","src":"6288:12:21"}]},"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"6189:117:21","nodeType":"YulFunctionDefinition","src":"6189:117:21"},{"body":{"nativeSrc":"6357:32:21","nodeType":"YulBlock","src":"6357:32:21","statements":[{"nativeSrc":"6367:16:21","nodeType":"YulAssignment","src":"6367:16:21","value":{"name":"value","nativeSrc":"6378:5:21","nodeType":"YulIdentifier","src":"6378:5:21"},"variableNames":[{"name":"cleaned","nativeSrc":"6367:7:21","nodeType":"YulIdentifier","src":"6367:7:21"}]}]},"name":"cleanup_t_bytes32","nativeSrc":"6312:77:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6339:5:21","nodeType":"YulTypedName","src":"6339:5:21","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"6349:7:21","nodeType":"YulTypedName","src":"6349:7:21","type":""}],"src":"6312:77:21"},{"body":{"nativeSrc":"6438:79:21","nodeType":"YulBlock","src":"6438:79:21","statements":[{"body":{"nativeSrc":"6495:16:21","nodeType":"YulBlock","src":"6495:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"6504:1:21","nodeType":"YulLiteral","src":"6504:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"6507:1:21","nodeType":"YulLiteral","src":"6507:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"6497:6:21","nodeType":"YulIdentifier","src":"6497:6:21"},"nativeSrc":"6497:12:21","nodeType":"YulFunctionCall","src":"6497:12:21"},"nativeSrc":"6497:12:21","nodeType":"YulExpressionStatement","src":"6497:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"6461:5:21","nodeType":"YulIdentifier","src":"6461:5:21"},{"arguments":[{"name":"value","nativeSrc":"6486:5:21","nodeType":"YulIdentifier","src":"6486:5:21"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"6468:17:21","nodeType":"YulIdentifier","src":"6468:17:21"},"nativeSrc":"6468:24:21","nodeType":"YulFunctionCall","src":"6468:24:21"}],"functionName":{"name":"eq","nativeSrc":"6458:2:21","nodeType":"YulIdentifier","src":"6458:2:21"},"nativeSrc":"6458:35:21","nodeType":"YulFunctionCall","src":"6458:35:21"}],"functionName":{"name":"iszero","nativeSrc":"6451:6:21","nodeType":"YulIdentifier","src":"6451:6:21"},"nativeSrc":"6451:43:21","nodeType":"YulFunctionCall","src":"6451:43:21"},"nativeSrc":"6448:63:21","nodeType":"YulIf","src":"6448:63:21"}]},"name":"validator_revert_t_bytes32","nativeSrc":"6395:122:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"6431:5:21","nodeType":"YulTypedName","src":"6431:5:21","type":""}],"src":"6395:122:21"},{"body":{"nativeSrc":"6575:87:21","nodeType":"YulBlock","src":"6575:87:21","statements":[{"nativeSrc":"6585:29:21","nodeType":"YulAssignment","src":"6585:29:21","value":{"arguments":[{"name":"offset","nativeSrc":"6607:6:21","nodeType":"YulIdentifier","src":"6607:6:21"}],"functionName":{"name":"calldataload","nativeSrc":"6594:12:21","nodeType":"YulIdentifier","src":"6594:12:21"},"nativeSrc":"6594:20:21","nodeType":"YulFunctionCall","src":"6594:20:21"},"variableNames":[{"name":"value","nativeSrc":"6585:5:21","nodeType":"YulIdentifier","src":"6585:5:21"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"6650:5:21","nodeType":"YulIdentifier","src":"6650:5:21"}],"functionName":{"name":"validator_revert_t_bytes32","nativeSrc":"6623:26:21","nodeType":"YulIdentifier","src":"6623:26:21"},"nativeSrc":"6623:33:21","nodeType":"YulFunctionCall","src":"6623:33:21"},"nativeSrc":"6623:33:21","nodeType":"YulExpressionStatement","src":"6623:33:21"}]},"name":"abi_decode_t_bytes32","nativeSrc":"6523:139:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6553:6:21","nodeType":"YulTypedName","src":"6553:6:21","type":""},{"name":"end","nativeSrc":"6561:3:21","nodeType":"YulTypedName","src":"6561:3:21","type":""}],"returnVariables":[{"name":"value","nativeSrc":"6569:5:21","nodeType":"YulTypedName","src":"6569:5:21","type":""}],"src":"6523:139:21"},{"body":{"nativeSrc":"6787:608:21","nodeType":"YulBlock","src":"6787:608:21","statements":[{"nativeSrc":"6797:90:21","nodeType":"YulAssignment","src":"6797:90:21","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"6879:6:21","nodeType":"YulIdentifier","src":"6879:6:21"}],"functionName":{"name":"array_allocation_size_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"6822:56:21","nodeType":"YulIdentifier","src":"6822:56:21"},"nativeSrc":"6822:64:21","nodeType":"YulFunctionCall","src":"6822:64:21"}],"functionName":{"name":"allocate_memory","nativeSrc":"6806:15:21","nodeType":"YulIdentifier","src":"6806:15:21"},"nativeSrc":"6806:81:21","nodeType":"YulFunctionCall","src":"6806:81:21"},"variableNames":[{"name":"array","nativeSrc":"6797:5:21","nodeType":"YulIdentifier","src":"6797:5:21"}]},{"nativeSrc":"6896:16:21","nodeType":"YulVariableDeclaration","src":"6896:16:21","value":{"name":"array","nativeSrc":"6907:5:21","nodeType":"YulIdentifier","src":"6907:5:21"},"variables":[{"name":"dst","nativeSrc":"6900:3:21","nodeType":"YulTypedName","src":"6900:3:21","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"6929:5:21","nodeType":"YulIdentifier","src":"6929:5:21"},{"name":"length","nativeSrc":"6936:6:21","nodeType":"YulIdentifier","src":"6936:6:21"}],"functionName":{"name":"mstore","nativeSrc":"6922:6:21","nodeType":"YulIdentifier","src":"6922:6:21"},"nativeSrc":"6922:21:21","nodeType":"YulFunctionCall","src":"6922:21:21"},"nativeSrc":"6922:21:21","nodeType":"YulExpressionStatement","src":"6922:21:21"},{"nativeSrc":"6952:23:21","nodeType":"YulAssignment","src":"6952:23:21","value":{"arguments":[{"name":"array","nativeSrc":"6963:5:21","nodeType":"YulIdentifier","src":"6963:5:21"},{"kind":"number","nativeSrc":"6970:4:21","nodeType":"YulLiteral","src":"6970:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"6959:3:21","nodeType":"YulIdentifier","src":"6959:3:21"},"nativeSrc":"6959:16:21","nodeType":"YulFunctionCall","src":"6959:16:21"},"variableNames":[{"name":"dst","nativeSrc":"6952:3:21","nodeType":"YulIdentifier","src":"6952:3:21"}]},{"nativeSrc":"6985:44:21","nodeType":"YulVariableDeclaration","src":"6985:44:21","value":{"arguments":[{"name":"offset","nativeSrc":"7003:6:21","nodeType":"YulIdentifier","src":"7003:6:21"},{"arguments":[{"name":"length","nativeSrc":"7015:6:21","nodeType":"YulIdentifier","src":"7015:6:21"},{"kind":"number","nativeSrc":"7023:4:21","nodeType":"YulLiteral","src":"7023:4:21","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"7011:3:21","nodeType":"YulIdentifier","src":"7011:3:21"},"nativeSrc":"7011:17:21","nodeType":"YulFunctionCall","src":"7011:17:21"}],"functionName":{"name":"add","nativeSrc":"6999:3:21","nodeType":"YulIdentifier","src":"6999:3:21"},"nativeSrc":"6999:30:21","nodeType":"YulFunctionCall","src":"6999:30:21"},"variables":[{"name":"srcEnd","nativeSrc":"6989:6:21","nodeType":"YulTypedName","src":"6989:6:21","type":""}]},{"body":{"nativeSrc":"7057:103:21","nodeType":"YulBlock","src":"7057:103:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"7071:77:21","nodeType":"YulIdentifier","src":"7071:77:21"},"nativeSrc":"7071:79:21","nodeType":"YulFunctionCall","src":"7071:79:21"},"nativeSrc":"7071:79:21","nodeType":"YulExpressionStatement","src":"7071:79:21"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"7044:6:21","nodeType":"YulIdentifier","src":"7044:6:21"},{"name":"end","nativeSrc":"7052:3:21","nodeType":"YulIdentifier","src":"7052:3:21"}],"functionName":{"name":"gt","nativeSrc":"7041:2:21","nodeType":"YulIdentifier","src":"7041:2:21"},"nativeSrc":"7041:15:21","nodeType":"YulFunctionCall","src":"7041:15:21"},"nativeSrc":"7038:122:21","nodeType":"YulIf","src":"7038:122:21"},{"body":{"nativeSrc":"7245:144:21","nodeType":"YulBlock","src":"7245:144:21","statements":[{"nativeSrc":"7260:21:21","nodeType":"YulVariableDeclaration","src":"7260:21:21","value":{"name":"src","nativeSrc":"7278:3:21","nodeType":"YulIdentifier","src":"7278:3:21"},"variables":[{"name":"elementPos","nativeSrc":"7264:10:21","nodeType":"YulTypedName","src":"7264:10:21","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"7302:3:21","nodeType":"YulIdentifier","src":"7302:3:21"},{"arguments":[{"name":"elementPos","nativeSrc":"7328:10:21","nodeType":"YulIdentifier","src":"7328:10:21"},{"name":"end","nativeSrc":"7340:3:21","nodeType":"YulIdentifier","src":"7340:3:21"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"7307:20:21","nodeType":"YulIdentifier","src":"7307:20:21"},"nativeSrc":"7307:37:21","nodeType":"YulFunctionCall","src":"7307:37:21"}],"functionName":{"name":"mstore","nativeSrc":"7295:6:21","nodeType":"YulIdentifier","src":"7295:6:21"},"nativeSrc":"7295:50:21","nodeType":"YulFunctionCall","src":"7295:50:21"},"nativeSrc":"7295:50:21","nodeType":"YulExpressionStatement","src":"7295:50:21"},{"nativeSrc":"7358:21:21","nodeType":"YulAssignment","src":"7358:21:21","value":{"arguments":[{"name":"dst","nativeSrc":"7369:3:21","nodeType":"YulIdentifier","src":"7369:3:21"},{"kind":"number","nativeSrc":"7374:4:21","nodeType":"YulLiteral","src":"7374:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7365:3:21","nodeType":"YulIdentifier","src":"7365:3:21"},"nativeSrc":"7365:14:21","nodeType":"YulFunctionCall","src":"7365:14:21"},"variableNames":[{"name":"dst","nativeSrc":"7358:3:21","nodeType":"YulIdentifier","src":"7358:3:21"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"7198:3:21","nodeType":"YulIdentifier","src":"7198:3:21"},{"name":"srcEnd","nativeSrc":"7203:6:21","nodeType":"YulIdentifier","src":"7203:6:21"}],"functionName":{"name":"lt","nativeSrc":"7195:2:21","nodeType":"YulIdentifier","src":"7195:2:21"},"nativeSrc":"7195:15:21","nodeType":"YulFunctionCall","src":"7195:15:21"},"nativeSrc":"7169:220:21","nodeType":"YulForLoop","post":{"nativeSrc":"7211:25:21","nodeType":"YulBlock","src":"7211:25:21","statements":[{"nativeSrc":"7213:21:21","nodeType":"YulAssignment","src":"7213:21:21","value":{"arguments":[{"name":"src","nativeSrc":"7224:3:21","nodeType":"YulIdentifier","src":"7224:3:21"},{"kind":"number","nativeSrc":"7229:4:21","nodeType":"YulLiteral","src":"7229:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7220:3:21","nodeType":"YulIdentifier","src":"7220:3:21"},"nativeSrc":"7220:14:21","nodeType":"YulFunctionCall","src":"7220:14:21"},"variableNames":[{"name":"src","nativeSrc":"7213:3:21","nodeType":"YulIdentifier","src":"7213:3:21"}]}]},"pre":{"nativeSrc":"7173:21:21","nodeType":"YulBlock","src":"7173:21:21","statements":[{"nativeSrc":"7175:17:21","nodeType":"YulVariableDeclaration","src":"7175:17:21","value":{"name":"offset","nativeSrc":"7186:6:21","nodeType":"YulIdentifier","src":"7186:6:21"},"variables":[{"name":"src","nativeSrc":"7179:3:21","nodeType":"YulTypedName","src":"7179:3:21","type":""}]}]},"src":"7169:220:21"}]},"name":"abi_decode_available_length_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"6685:710:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"6757:6:21","nodeType":"YulTypedName","src":"6757:6:21","type":""},{"name":"length","nativeSrc":"6765:6:21","nodeType":"YulTypedName","src":"6765:6:21","type":""},{"name":"end","nativeSrc":"6773:3:21","nodeType":"YulTypedName","src":"6773:3:21","type":""}],"returnVariables":[{"name":"array","nativeSrc":"6781:5:21","nodeType":"YulTypedName","src":"6781:5:21","type":""}],"src":"6685:710:21"},{"body":{"nativeSrc":"7495:293:21","nodeType":"YulBlock","src":"7495:293:21","statements":[{"body":{"nativeSrc":"7544:83:21","nodeType":"YulBlock","src":"7544:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"7546:77:21","nodeType":"YulIdentifier","src":"7546:77:21"},"nativeSrc":"7546:79:21","nodeType":"YulFunctionCall","src":"7546:79:21"},"nativeSrc":"7546:79:21","nodeType":"YulExpressionStatement","src":"7546:79:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"7523:6:21","nodeType":"YulIdentifier","src":"7523:6:21"},{"kind":"number","nativeSrc":"7531:4:21","nodeType":"YulLiteral","src":"7531:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"7519:3:21","nodeType":"YulIdentifier","src":"7519:3:21"},"nativeSrc":"7519:17:21","nodeType":"YulFunctionCall","src":"7519:17:21"},{"name":"end","nativeSrc":"7538:3:21","nodeType":"YulIdentifier","src":"7538:3:21"}],"functionName":{"name":"slt","nativeSrc":"7515:3:21","nodeType":"YulIdentifier","src":"7515:3:21"},"nativeSrc":"7515:27:21","nodeType":"YulFunctionCall","src":"7515:27:21"}],"functionName":{"name":"iszero","nativeSrc":"7508:6:21","nodeType":"YulIdentifier","src":"7508:6:21"},"nativeSrc":"7508:35:21","nodeType":"YulFunctionCall","src":"7508:35:21"},"nativeSrc":"7505:122:21","nodeType":"YulIf","src":"7505:122:21"},{"nativeSrc":"7636:34:21","nodeType":"YulVariableDeclaration","src":"7636:34:21","value":{"arguments":[{"name":"offset","nativeSrc":"7663:6:21","nodeType":"YulIdentifier","src":"7663:6:21"}],"functionName":{"name":"calldataload","nativeSrc":"7650:12:21","nodeType":"YulIdentifier","src":"7650:12:21"},"nativeSrc":"7650:20:21","nodeType":"YulFunctionCall","src":"7650:20:21"},"variables":[{"name":"length","nativeSrc":"7640:6:21","nodeType":"YulTypedName","src":"7640:6:21","type":""}]},{"nativeSrc":"7679:103:21","nodeType":"YulAssignment","src":"7679:103:21","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"7755:6:21","nodeType":"YulIdentifier","src":"7755:6:21"},{"kind":"number","nativeSrc":"7763:4:21","nodeType":"YulLiteral","src":"7763:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"7751:3:21","nodeType":"YulIdentifier","src":"7751:3:21"},"nativeSrc":"7751:17:21","nodeType":"YulFunctionCall","src":"7751:17:21"},{"name":"length","nativeSrc":"7770:6:21","nodeType":"YulIdentifier","src":"7770:6:21"},{"name":"end","nativeSrc":"7778:3:21","nodeType":"YulIdentifier","src":"7778:3:21"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"7688:62:21","nodeType":"YulIdentifier","src":"7688:62:21"},"nativeSrc":"7688:94:21","nodeType":"YulFunctionCall","src":"7688:94:21"},"variableNames":[{"name":"array","nativeSrc":"7679:5:21","nodeType":"YulIdentifier","src":"7679:5:21"}]}]},"name":"abi_decode_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"7418:370:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7473:6:21","nodeType":"YulTypedName","src":"7473:6:21","type":""},{"name":"end","nativeSrc":"7481:3:21","nodeType":"YulTypedName","src":"7481:3:21","type":""}],"returnVariables":[{"name":"array","nativeSrc":"7489:5:21","nodeType":"YulTypedName","src":"7489:5:21","type":""}],"src":"7418:370:21"},{"body":{"nativeSrc":"7851:56:21","nodeType":"YulBlock","src":"7851:56:21","statements":[{"body":{"nativeSrc":"7885:16:21","nodeType":"YulBlock","src":"7885:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"7894:1:21","nodeType":"YulLiteral","src":"7894:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"7897:1:21","nodeType":"YulLiteral","src":"7897:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"7887:6:21","nodeType":"YulIdentifier","src":"7887:6:21"},"nativeSrc":"7887:12:21","nodeType":"YulFunctionCall","src":"7887:12:21"},"nativeSrc":"7887:12:21","nodeType":"YulExpressionStatement","src":"7887:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"7874:5:21","nodeType":"YulIdentifier","src":"7874:5:21"},{"kind":"number","nativeSrc":"7881:1:21","nodeType":"YulLiteral","src":"7881:1:21","type":"","value":"6"}],"functionName":{"name":"lt","nativeSrc":"7871:2:21","nodeType":"YulIdentifier","src":"7871:2:21"},"nativeSrc":"7871:12:21","nodeType":"YulFunctionCall","src":"7871:12:21"}],"functionName":{"name":"iszero","nativeSrc":"7864:6:21","nodeType":"YulIdentifier","src":"7864:6:21"},"nativeSrc":"7864:20:21","nodeType":"YulFunctionCall","src":"7864:20:21"},"nativeSrc":"7861:40:21","nodeType":"YulIf","src":"7861:40:21"}]},"name":"validator_revert_t_enum$_CORSPreset_$972","nativeSrc":"7794:113:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"7844:5:21","nodeType":"YulTypedName","src":"7844:5:21","type":""}],"src":"7794:113:21"},{"body":{"nativeSrc":"7979:101:21","nodeType":"YulBlock","src":"7979:101:21","statements":[{"nativeSrc":"7989:29:21","nodeType":"YulAssignment","src":"7989:29:21","value":{"arguments":[{"name":"offset","nativeSrc":"8011:6:21","nodeType":"YulIdentifier","src":"8011:6:21"}],"functionName":{"name":"calldataload","nativeSrc":"7998:12:21","nodeType":"YulIdentifier","src":"7998:12:21"},"nativeSrc":"7998:20:21","nodeType":"YulFunctionCall","src":"7998:20:21"},"variableNames":[{"name":"value","nativeSrc":"7989:5:21","nodeType":"YulIdentifier","src":"7989:5:21"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"8068:5:21","nodeType":"YulIdentifier","src":"8068:5:21"}],"functionName":{"name":"validator_revert_t_enum$_CORSPreset_$972","nativeSrc":"8027:40:21","nodeType":"YulIdentifier","src":"8027:40:21"},"nativeSrc":"8027:47:21","nodeType":"YulFunctionCall","src":"8027:47:21"},"nativeSrc":"8027:47:21","nodeType":"YulExpressionStatement","src":"8027:47:21"}]},"name":"abi_decode_t_enum$_CORSPreset_$972","nativeSrc":"7913:167:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"7957:6:21","nodeType":"YulTypedName","src":"7957:6:21","type":""},{"name":"end","nativeSrc":"7965:3:21","nodeType":"YulTypedName","src":"7965:3:21","type":""}],"returnVariables":[{"name":"value","nativeSrc":"7973:5:21","nodeType":"YulTypedName","src":"7973:5:21","type":""}],"src":"7913:167:21"},{"body":{"nativeSrc":"8194:1194:21","nodeType":"YulBlock","src":"8194:1194:21","statements":[{"body":{"nativeSrc":"8238:83:21","nodeType":"YulBlock","src":"8238:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"8240:77:21","nodeType":"YulIdentifier","src":"8240:77:21"},"nativeSrc":"8240:79:21","nodeType":"YulFunctionCall","src":"8240:79:21"},"nativeSrc":"8240:79:21","nodeType":"YulExpressionStatement","src":"8240:79:21"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"8215:3:21","nodeType":"YulIdentifier","src":"8215:3:21"},{"name":"headStart","nativeSrc":"8220:9:21","nodeType":"YulIdentifier","src":"8220:9:21"}],"functionName":{"name":"sub","nativeSrc":"8211:3:21","nodeType":"YulIdentifier","src":"8211:3:21"},"nativeSrc":"8211:19:21","nodeType":"YulFunctionCall","src":"8211:19:21"},{"kind":"number","nativeSrc":"8232:4:21","nodeType":"YulLiteral","src":"8232:4:21","type":"","value":"0x80"}],"functionName":{"name":"slt","nativeSrc":"8207:3:21","nodeType":"YulIdentifier","src":"8207:3:21"},"nativeSrc":"8207:30:21","nodeType":"YulFunctionCall","src":"8207:30:21"},"nativeSrc":"8204:117:21","nodeType":"YulIf","src":"8204:117:21"},{"nativeSrc":"8330:30:21","nodeType":"YulAssignment","src":"8330:30:21","value":{"arguments":[{"kind":"number","nativeSrc":"8355:4:21","nodeType":"YulLiteral","src":"8355:4:21","type":"","value":"0x80"}],"functionName":{"name":"allocate_memory","nativeSrc":"8339:15:21","nodeType":"YulIdentifier","src":"8339:15:21"},"nativeSrc":"8339:21:21","nodeType":"YulFunctionCall","src":"8339:21:21"},"variableNames":[{"name":"value","nativeSrc":"8330:5:21","nodeType":"YulIdentifier","src":"8330:5:21"}]},{"nativeSrc":"8370:152:21","nodeType":"YulBlock","src":"8370:152:21","statements":[{"nativeSrc":"8408:15:21","nodeType":"YulVariableDeclaration","src":"8408:15:21","value":{"kind":"number","nativeSrc":"8422:1:21","nodeType":"YulLiteral","src":"8422:1:21","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"8412:6:21","nodeType":"YulTypedName","src":"8412:6:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8448:5:21","nodeType":"YulIdentifier","src":"8448:5:21"},{"kind":"number","nativeSrc":"8455:4:21","nodeType":"YulLiteral","src":"8455:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"8444:3:21","nodeType":"YulIdentifier","src":"8444:3:21"},"nativeSrc":"8444:16:21","nodeType":"YulFunctionCall","src":"8444:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8486:9:21","nodeType":"YulIdentifier","src":"8486:9:21"},{"name":"offset","nativeSrc":"8497:6:21","nodeType":"YulIdentifier","src":"8497:6:21"}],"functionName":{"name":"add","nativeSrc":"8482:3:21","nodeType":"YulIdentifier","src":"8482:3:21"},"nativeSrc":"8482:22:21","nodeType":"YulFunctionCall","src":"8482:22:21"},{"name":"end","nativeSrc":"8506:3:21","nodeType":"YulIdentifier","src":"8506:3:21"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"8462:19:21","nodeType":"YulIdentifier","src":"8462:19:21"},"nativeSrc":"8462:48:21","nodeType":"YulFunctionCall","src":"8462:48:21"}],"functionName":{"name":"mstore","nativeSrc":"8437:6:21","nodeType":"YulIdentifier","src":"8437:6:21"},"nativeSrc":"8437:74:21","nodeType":"YulFunctionCall","src":"8437:74:21"},"nativeSrc":"8437:74:21","nodeType":"YulExpressionStatement","src":"8437:74:21"}]},{"nativeSrc":"8532:339:21","nodeType":"YulBlock","src":"8532:339:21","statements":[{"nativeSrc":"8570:46:21","nodeType":"YulVariableDeclaration","src":"8570:46:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8601:9:21","nodeType":"YulIdentifier","src":"8601:9:21"},{"kind":"number","nativeSrc":"8612:2:21","nodeType":"YulLiteral","src":"8612:2:21","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"8597:3:21","nodeType":"YulIdentifier","src":"8597:3:21"},"nativeSrc":"8597:18:21","nodeType":"YulFunctionCall","src":"8597:18:21"}],"functionName":{"name":"calldataload","nativeSrc":"8584:12:21","nodeType":"YulIdentifier","src":"8584:12:21"},"nativeSrc":"8584:32:21","nodeType":"YulFunctionCall","src":"8584:32:21"},"variables":[{"name":"offset","nativeSrc":"8574:6:21","nodeType":"YulTypedName","src":"8574:6:21","type":""}]},{"body":{"nativeSrc":"8663:83:21","nodeType":"YulBlock","src":"8663:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"8665:77:21","nodeType":"YulIdentifier","src":"8665:77:21"},"nativeSrc":"8665:79:21","nodeType":"YulFunctionCall","src":"8665:79:21"},"nativeSrc":"8665:79:21","nodeType":"YulExpressionStatement","src":"8665:79:21"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"8635:6:21","nodeType":"YulIdentifier","src":"8635:6:21"},{"kind":"number","nativeSrc":"8643:18:21","nodeType":"YulLiteral","src":"8643:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"8632:2:21","nodeType":"YulIdentifier","src":"8632:2:21"},"nativeSrc":"8632:30:21","nodeType":"YulFunctionCall","src":"8632:30:21"},"nativeSrc":"8629:117:21","nodeType":"YulIf","src":"8629:117:21"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8771:5:21","nodeType":"YulIdentifier","src":"8771:5:21"},{"kind":"number","nativeSrc":"8778:4:21","nodeType":"YulLiteral","src":"8778:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"8767:3:21","nodeType":"YulIdentifier","src":"8767:3:21"},"nativeSrc":"8767:16:21","nodeType":"YulFunctionCall","src":"8767:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"8835:9:21","nodeType":"YulIdentifier","src":"8835:9:21"},{"name":"offset","nativeSrc":"8846:6:21","nodeType":"YulIdentifier","src":"8846:6:21"}],"functionName":{"name":"add","nativeSrc":"8831:3:21","nodeType":"YulIdentifier","src":"8831:3:21"},"nativeSrc":"8831:22:21","nodeType":"YulFunctionCall","src":"8831:22:21"},{"name":"end","nativeSrc":"8855:3:21","nodeType":"YulIdentifier","src":"8855:3:21"}],"functionName":{"name":"abi_decode_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"8785:45:21","nodeType":"YulIdentifier","src":"8785:45:21"},"nativeSrc":"8785:74:21","nodeType":"YulFunctionCall","src":"8785:74:21"}],"functionName":{"name":"mstore","nativeSrc":"8760:6:21","nodeType":"YulIdentifier","src":"8760:6:21"},"nativeSrc":"8760:100:21","nodeType":"YulFunctionCall","src":"8760:100:21"},"nativeSrc":"8760:100:21","nodeType":"YulExpressionStatement","src":"8760:100:21"}]},{"nativeSrc":"8881:167:21","nodeType":"YulBlock","src":"8881:167:21","statements":[{"nativeSrc":"8918:16:21","nodeType":"YulVariableDeclaration","src":"8918:16:21","value":{"kind":"number","nativeSrc":"8932:2:21","nodeType":"YulLiteral","src":"8932:2:21","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"8922:6:21","nodeType":"YulTypedName","src":"8922:6:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"8959:5:21","nodeType":"YulIdentifier","src":"8959:5:21"},{"kind":"number","nativeSrc":"8966:4:21","nodeType":"YulLiteral","src":"8966:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"8955:3:21","nodeType":"YulIdentifier","src":"8955:3:21"},"nativeSrc":"8955:16:21","nodeType":"YulFunctionCall","src":"8955:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9012:9:21","nodeType":"YulIdentifier","src":"9012:9:21"},{"name":"offset","nativeSrc":"9023:6:21","nodeType":"YulIdentifier","src":"9023:6:21"}],"functionName":{"name":"add","nativeSrc":"9008:3:21","nodeType":"YulIdentifier","src":"9008:3:21"},"nativeSrc":"9008:22:21","nodeType":"YulFunctionCall","src":"9008:22:21"},{"name":"end","nativeSrc":"9032:3:21","nodeType":"YulIdentifier","src":"9032:3:21"}],"functionName":{"name":"abi_decode_t_enum$_CORSPreset_$972","nativeSrc":"8973:34:21","nodeType":"YulIdentifier","src":"8973:34:21"},"nativeSrc":"8973:63:21","nodeType":"YulFunctionCall","src":"8973:63:21"}],"functionName":{"name":"mstore","nativeSrc":"8948:6:21","nodeType":"YulIdentifier","src":"8948:6:21"},"nativeSrc":"8948:89:21","nodeType":"YulFunctionCall","src":"8948:89:21"},"nativeSrc":"8948:89:21","nodeType":"YulExpressionStatement","src":"8948:89:21"}]},{"nativeSrc":"9058:323:21","nodeType":"YulBlock","src":"9058:323:21","statements":[{"nativeSrc":"9095:46:21","nodeType":"YulVariableDeclaration","src":"9095:46:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9126:9:21","nodeType":"YulIdentifier","src":"9126:9:21"},{"kind":"number","nativeSrc":"9137:2:21","nodeType":"YulLiteral","src":"9137:2:21","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"9122:3:21","nodeType":"YulIdentifier","src":"9122:3:21"},"nativeSrc":"9122:18:21","nodeType":"YulFunctionCall","src":"9122:18:21"}],"functionName":{"name":"calldataload","nativeSrc":"9109:12:21","nodeType":"YulIdentifier","src":"9109:12:21"},"nativeSrc":"9109:32:21","nodeType":"YulFunctionCall","src":"9109:32:21"},"variables":[{"name":"offset","nativeSrc":"9099:6:21","nodeType":"YulTypedName","src":"9099:6:21","type":""}]},{"body":{"nativeSrc":"9188:83:21","nodeType":"YulBlock","src":"9188:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"9190:77:21","nodeType":"YulIdentifier","src":"9190:77:21"},"nativeSrc":"9190:79:21","nodeType":"YulFunctionCall","src":"9190:79:21"},"nativeSrc":"9190:79:21","nodeType":"YulExpressionStatement","src":"9190:79:21"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"9160:6:21","nodeType":"YulIdentifier","src":"9160:6:21"},{"kind":"number","nativeSrc":"9168:18:21","nodeType":"YulLiteral","src":"9168:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9157:2:21","nodeType":"YulIdentifier","src":"9157:2:21"},"nativeSrc":"9157:30:21","nodeType":"YulFunctionCall","src":"9157:30:21"},"nativeSrc":"9154:117:21","nodeType":"YulIf","src":"9154:117:21"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9296:5:21","nodeType":"YulIdentifier","src":"9296:5:21"},{"kind":"number","nativeSrc":"9303:4:21","nodeType":"YulLiteral","src":"9303:4:21","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"9292:3:21","nodeType":"YulIdentifier","src":"9292:3:21"},"nativeSrc":"9292:16:21","nodeType":"YulFunctionCall","src":"9292:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9345:9:21","nodeType":"YulIdentifier","src":"9345:9:21"},{"name":"offset","nativeSrc":"9356:6:21","nodeType":"YulIdentifier","src":"9356:6:21"}],"functionName":{"name":"add","nativeSrc":"9341:3:21","nodeType":"YulIdentifier","src":"9341:3:21"},"nativeSrc":"9341:22:21","nodeType":"YulFunctionCall","src":"9341:22:21"},{"name":"end","nativeSrc":"9365:3:21","nodeType":"YulIdentifier","src":"9365:3:21"}],"functionName":{"name":"abi_decode_t_string_memory_ptr","nativeSrc":"9310:30:21","nodeType":"YulIdentifier","src":"9310:30:21"},"nativeSrc":"9310:59:21","nodeType":"YulFunctionCall","src":"9310:59:21"}],"functionName":{"name":"mstore","nativeSrc":"9285:6:21","nodeType":"YulIdentifier","src":"9285:6:21"},"nativeSrc":"9285:85:21","nodeType":"YulFunctionCall","src":"9285:85:21"},"nativeSrc":"9285:85:21","nodeType":"YulExpressionStatement","src":"9285:85:21"}]}]},"name":"abi_decode_t_struct$_CORSPolicy_$1000_memory_ptr","nativeSrc":"8111:1277:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"8169:9:21","nodeType":"YulTypedName","src":"8169:9:21","type":""},{"name":"end","nativeSrc":"8180:3:21","nodeType":"YulTypedName","src":"8180:3:21","type":""}],"returnVariables":[{"name":"value","nativeSrc":"8188:5:21","nodeType":"YulTypedName","src":"8188:5:21","type":""}],"src":"8111:1277:21"},{"body":{"nativeSrc":"9498:667:21","nodeType":"YulBlock","src":"9498:667:21","statements":[{"body":{"nativeSrc":"9542:83:21","nodeType":"YulBlock","src":"9542:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"9544:77:21","nodeType":"YulIdentifier","src":"9544:77:21"},"nativeSrc":"9544:79:21","nodeType":"YulFunctionCall","src":"9544:79:21"},"nativeSrc":"9544:79:21","nodeType":"YulExpressionStatement","src":"9544:79:21"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"9519:3:21","nodeType":"YulIdentifier","src":"9519:3:21"},{"name":"headStart","nativeSrc":"9524:9:21","nodeType":"YulIdentifier","src":"9524:9:21"}],"functionName":{"name":"sub","nativeSrc":"9515:3:21","nodeType":"YulIdentifier","src":"9515:3:21"},"nativeSrc":"9515:19:21","nodeType":"YulFunctionCall","src":"9515:19:21"},{"kind":"number","nativeSrc":"9536:4:21","nodeType":"YulLiteral","src":"9536:4:21","type":"","value":"0x40"}],"functionName":{"name":"slt","nativeSrc":"9511:3:21","nodeType":"YulIdentifier","src":"9511:3:21"},"nativeSrc":"9511:30:21","nodeType":"YulFunctionCall","src":"9511:30:21"},"nativeSrc":"9508:117:21","nodeType":"YulIf","src":"9508:117:21"},{"nativeSrc":"9634:30:21","nodeType":"YulAssignment","src":"9634:30:21","value":{"arguments":[{"kind":"number","nativeSrc":"9659:4:21","nodeType":"YulLiteral","src":"9659:4:21","type":"","value":"0x40"}],"functionName":{"name":"allocate_memory","nativeSrc":"9643:15:21","nodeType":"YulIdentifier","src":"9643:15:21"},"nativeSrc":"9643:21:21","nodeType":"YulFunctionCall","src":"9643:21:21"},"variableNames":[{"name":"value","nativeSrc":"9634:5:21","nodeType":"YulIdentifier","src":"9634:5:21"}]},{"nativeSrc":"9674:149:21","nodeType":"YulBlock","src":"9674:149:21","statements":[{"nativeSrc":"9709:15:21","nodeType":"YulVariableDeclaration","src":"9709:15:21","value":{"kind":"number","nativeSrc":"9723:1:21","nodeType":"YulLiteral","src":"9723:1:21","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"9713:6:21","nodeType":"YulTypedName","src":"9713:6:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"9749:5:21","nodeType":"YulIdentifier","src":"9749:5:21"},{"kind":"number","nativeSrc":"9756:4:21","nodeType":"YulLiteral","src":"9756:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"9745:3:21","nodeType":"YulIdentifier","src":"9745:3:21"},"nativeSrc":"9745:16:21","nodeType":"YulFunctionCall","src":"9745:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9787:9:21","nodeType":"YulIdentifier","src":"9787:9:21"},{"name":"offset","nativeSrc":"9798:6:21","nodeType":"YulIdentifier","src":"9798:6:21"}],"functionName":{"name":"add","nativeSrc":"9783:3:21","nodeType":"YulIdentifier","src":"9783:3:21"},"nativeSrc":"9783:22:21","nodeType":"YulFunctionCall","src":"9783:22:21"},{"name":"end","nativeSrc":"9807:3:21","nodeType":"YulIdentifier","src":"9807:3:21"}],"functionName":{"name":"abi_decode_t_uint16","nativeSrc":"9763:19:21","nodeType":"YulIdentifier","src":"9763:19:21"},"nativeSrc":"9763:48:21","nodeType":"YulFunctionCall","src":"9763:48:21"}],"functionName":{"name":"mstore","nativeSrc":"9738:6:21","nodeType":"YulIdentifier","src":"9738:6:21"},"nativeSrc":"9738:74:21","nodeType":"YulFunctionCall","src":"9738:74:21"},"nativeSrc":"9738:74:21","nodeType":"YulExpressionStatement","src":"9738:74:21"}]},{"nativeSrc":"9833:325:21","nodeType":"YulBlock","src":"9833:325:21","statements":[{"nativeSrc":"9872:46:21","nodeType":"YulVariableDeclaration","src":"9872:46:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"9903:9:21","nodeType":"YulIdentifier","src":"9903:9:21"},{"kind":"number","nativeSrc":"9914:2:21","nodeType":"YulLiteral","src":"9914:2:21","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"9899:3:21","nodeType":"YulIdentifier","src":"9899:3:21"},"nativeSrc":"9899:18:21","nodeType":"YulFunctionCall","src":"9899:18:21"}],"functionName":{"name":"calldataload","nativeSrc":"9886:12:21","nodeType":"YulIdentifier","src":"9886:12:21"},"nativeSrc":"9886:32:21","nodeType":"YulFunctionCall","src":"9886:32:21"},"variables":[{"name":"offset","nativeSrc":"9876:6:21","nodeType":"YulTypedName","src":"9876:6:21","type":""}]},{"body":{"nativeSrc":"9965:83:21","nodeType":"YulBlock","src":"9965:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"9967:77:21","nodeType":"YulIdentifier","src":"9967:77:21"},"nativeSrc":"9967:79:21","nodeType":"YulFunctionCall","src":"9967:79:21"},"nativeSrc":"9967:79:21","nodeType":"YulExpressionStatement","src":"9967:79:21"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"9937:6:21","nodeType":"YulIdentifier","src":"9937:6:21"},{"kind":"number","nativeSrc":"9945:18:21","nodeType":"YulLiteral","src":"9945:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"9934:2:21","nodeType":"YulIdentifier","src":"9934:2:21"},"nativeSrc":"9934:30:21","nodeType":"YulFunctionCall","src":"9934:30:21"},"nativeSrc":"9931:117:21","nodeType":"YulIf","src":"9931:117:21"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10073:5:21","nodeType":"YulIdentifier","src":"10073:5:21"},{"kind":"number","nativeSrc":"10080:4:21","nodeType":"YulLiteral","src":"10080:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"10069:3:21","nodeType":"YulIdentifier","src":"10069:3:21"},"nativeSrc":"10069:16:21","nodeType":"YulFunctionCall","src":"10069:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10122:9:21","nodeType":"YulIdentifier","src":"10122:9:21"},{"name":"offset","nativeSrc":"10133:6:21","nodeType":"YulIdentifier","src":"10133:6:21"}],"functionName":{"name":"add","nativeSrc":"10118:3:21","nodeType":"YulIdentifier","src":"10118:3:21"},"nativeSrc":"10118:22:21","nodeType":"YulFunctionCall","src":"10118:22:21"},{"name":"end","nativeSrc":"10142:3:21","nodeType":"YulIdentifier","src":"10142:3:21"}],"functionName":{"name":"abi_decode_t_string_memory_ptr","nativeSrc":"10087:30:21","nodeType":"YulIdentifier","src":"10087:30:21"},"nativeSrc":"10087:59:21","nodeType":"YulFunctionCall","src":"10087:59:21"}],"functionName":{"name":"mstore","nativeSrc":"10062:6:21","nodeType":"YulIdentifier","src":"10062:6:21"},"nativeSrc":"10062:85:21","nodeType":"YulFunctionCall","src":"10062:85:21"},"nativeSrc":"10062:85:21","nodeType":"YulExpressionStatement","src":"10062:85:21"}]}]},"name":"abi_decode_t_struct$_Redirect_$1008_memory_ptr","nativeSrc":"9417:748:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"9473:9:21","nodeType":"YulTypedName","src":"9473:9:21","type":""},{"name":"end","nativeSrc":"9484:3:21","nodeType":"YulTypedName","src":"9484:3:21","type":""}],"returnVariables":[{"name":"value","nativeSrc":"9492:5:21","nodeType":"YulTypedName","src":"9492:5:21","type":""}],"src":"9417:748:21"},{"body":{"nativeSrc":"10279:1223:21","nodeType":"YulBlock","src":"10279:1223:21","statements":[{"body":{"nativeSrc":"10323:83:21","nodeType":"YulBlock","src":"10323:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"10325:77:21","nodeType":"YulIdentifier","src":"10325:77:21"},"nativeSrc":"10325:79:21","nodeType":"YulFunctionCall","src":"10325:79:21"},"nativeSrc":"10325:79:21","nodeType":"YulExpressionStatement","src":"10325:79:21"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"10300:3:21","nodeType":"YulIdentifier","src":"10300:3:21"},{"name":"headStart","nativeSrc":"10305:9:21","nodeType":"YulIdentifier","src":"10305:9:21"}],"functionName":{"name":"sub","nativeSrc":"10296:3:21","nodeType":"YulIdentifier","src":"10296:3:21"},"nativeSrc":"10296:19:21","nodeType":"YulFunctionCall","src":"10296:19:21"},{"kind":"number","nativeSrc":"10317:4:21","nodeType":"YulLiteral","src":"10317:4:21","type":"","value":"0x60"}],"functionName":{"name":"slt","nativeSrc":"10292:3:21","nodeType":"YulIdentifier","src":"10292:3:21"},"nativeSrc":"10292:30:21","nodeType":"YulFunctionCall","src":"10292:30:21"},"nativeSrc":"10289:117:21","nodeType":"YulIf","src":"10289:117:21"},{"nativeSrc":"10415:30:21","nodeType":"YulAssignment","src":"10415:30:21","value":{"arguments":[{"kind":"number","nativeSrc":"10440:4:21","nodeType":"YulLiteral","src":"10440:4:21","type":"","value":"0x60"}],"functionName":{"name":"allocate_memory","nativeSrc":"10424:15:21","nodeType":"YulIdentifier","src":"10424:15:21"},"nativeSrc":"10424:21:21","nodeType":"YulFunctionCall","src":"10424:21:21"},"variableNames":[{"name":"value","nativeSrc":"10415:5:21","nodeType":"YulIdentifier","src":"10415:5:21"}]},{"nativeSrc":"10455:340:21","nodeType":"YulBlock","src":"10455:340:21","statements":[{"nativeSrc":"10491:45:21","nodeType":"YulVariableDeclaration","src":"10491:45:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10522:9:21","nodeType":"YulIdentifier","src":"10522:9:21"},{"kind":"number","nativeSrc":"10533:1:21","nodeType":"YulLiteral","src":"10533:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"10518:3:21","nodeType":"YulIdentifier","src":"10518:3:21"},"nativeSrc":"10518:17:21","nodeType":"YulFunctionCall","src":"10518:17:21"}],"functionName":{"name":"calldataload","nativeSrc":"10505:12:21","nodeType":"YulIdentifier","src":"10505:12:21"},"nativeSrc":"10505:31:21","nodeType":"YulFunctionCall","src":"10505:31:21"},"variables":[{"name":"offset","nativeSrc":"10495:6:21","nodeType":"YulTypedName","src":"10495:6:21","type":""}]},{"body":{"nativeSrc":"10583:83:21","nodeType":"YulBlock","src":"10583:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"10585:77:21","nodeType":"YulIdentifier","src":"10585:77:21"},"nativeSrc":"10585:79:21","nodeType":"YulFunctionCall","src":"10585:79:21"},"nativeSrc":"10585:79:21","nodeType":"YulExpressionStatement","src":"10585:79:21"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"10555:6:21","nodeType":"YulIdentifier","src":"10555:6:21"},{"kind":"number","nativeSrc":"10563:18:21","nodeType":"YulLiteral","src":"10563:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10552:2:21","nodeType":"YulIdentifier","src":"10552:2:21"},"nativeSrc":"10552:30:21","nodeType":"YulFunctionCall","src":"10552:30:21"},"nativeSrc":"10549:117:21","nodeType":"YulIf","src":"10549:117:21"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"10691:5:21","nodeType":"YulIdentifier","src":"10691:5:21"},{"kind":"number","nativeSrc":"10698:4:21","nodeType":"YulLiteral","src":"10698:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"10687:3:21","nodeType":"YulIdentifier","src":"10687:3:21"},"nativeSrc":"10687:16:21","nodeType":"YulFunctionCall","src":"10687:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10759:9:21","nodeType":"YulIdentifier","src":"10759:9:21"},{"name":"offset","nativeSrc":"10770:6:21","nodeType":"YulIdentifier","src":"10770:6:21"}],"functionName":{"name":"add","nativeSrc":"10755:3:21","nodeType":"YulIdentifier","src":"10755:3:21"},"nativeSrc":"10755:22:21","nodeType":"YulFunctionCall","src":"10755:22:21"},{"name":"end","nativeSrc":"10779:3:21","nodeType":"YulIdentifier","src":"10779:3:21"}],"functionName":{"name":"abi_decode_t_struct$_CacheControl_$984_memory_ptr","nativeSrc":"10705:49:21","nodeType":"YulIdentifier","src":"10705:49:21"},"nativeSrc":"10705:78:21","nodeType":"YulFunctionCall","src":"10705:78:21"}],"functionName":{"name":"mstore","nativeSrc":"10680:6:21","nodeType":"YulIdentifier","src":"10680:6:21"},"nativeSrc":"10680:104:21","nodeType":"YulFunctionCall","src":"10680:104:21"},"nativeSrc":"10680:104:21","nodeType":"YulExpressionStatement","src":"10680:104:21"}]},{"nativeSrc":"10805:339:21","nodeType":"YulBlock","src":"10805:339:21","statements":[{"nativeSrc":"10840:46:21","nodeType":"YulVariableDeclaration","src":"10840:46:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"10871:9:21","nodeType":"YulIdentifier","src":"10871:9:21"},{"kind":"number","nativeSrc":"10882:2:21","nodeType":"YulLiteral","src":"10882:2:21","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"10867:3:21","nodeType":"YulIdentifier","src":"10867:3:21"},"nativeSrc":"10867:18:21","nodeType":"YulFunctionCall","src":"10867:18:21"}],"functionName":{"name":"calldataload","nativeSrc":"10854:12:21","nodeType":"YulIdentifier","src":"10854:12:21"},"nativeSrc":"10854:32:21","nodeType":"YulFunctionCall","src":"10854:32:21"},"variables":[{"name":"offset","nativeSrc":"10844:6:21","nodeType":"YulTypedName","src":"10844:6:21","type":""}]},{"body":{"nativeSrc":"10933:83:21","nodeType":"YulBlock","src":"10933:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"10935:77:21","nodeType":"YulIdentifier","src":"10935:77:21"},"nativeSrc":"10935:79:21","nodeType":"YulFunctionCall","src":"10935:79:21"},"nativeSrc":"10935:79:21","nodeType":"YulExpressionStatement","src":"10935:79:21"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"10905:6:21","nodeType":"YulIdentifier","src":"10905:6:21"},{"kind":"number","nativeSrc":"10913:18:21","nodeType":"YulLiteral","src":"10913:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"10902:2:21","nodeType":"YulIdentifier","src":"10902:2:21"},"nativeSrc":"10902:30:21","nodeType":"YulFunctionCall","src":"10902:30:21"},"nativeSrc":"10899:117:21","nodeType":"YulIf","src":"10899:117:21"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11041:5:21","nodeType":"YulIdentifier","src":"11041:5:21"},{"kind":"number","nativeSrc":"11048:4:21","nodeType":"YulLiteral","src":"11048:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"11037:3:21","nodeType":"YulIdentifier","src":"11037:3:21"},"nativeSrc":"11037:16:21","nodeType":"YulFunctionCall","src":"11037:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11108:9:21","nodeType":"YulIdentifier","src":"11108:9:21"},{"name":"offset","nativeSrc":"11119:6:21","nodeType":"YulIdentifier","src":"11119:6:21"}],"functionName":{"name":"add","nativeSrc":"11104:3:21","nodeType":"YulIdentifier","src":"11104:3:21"},"nativeSrc":"11104:22:21","nodeType":"YulFunctionCall","src":"11104:22:21"},{"name":"end","nativeSrc":"11128:3:21","nodeType":"YulIdentifier","src":"11128:3:21"}],"functionName":{"name":"abi_decode_t_struct$_CORSPolicy_$1000_memory_ptr","nativeSrc":"11055:48:21","nodeType":"YulIdentifier","src":"11055:48:21"},"nativeSrc":"11055:77:21","nodeType":"YulFunctionCall","src":"11055:77:21"}],"functionName":{"name":"mstore","nativeSrc":"11030:6:21","nodeType":"YulIdentifier","src":"11030:6:21"},"nativeSrc":"11030:103:21","nodeType":"YulFunctionCall","src":"11030:103:21"},"nativeSrc":"11030:103:21","nodeType":"YulExpressionStatement","src":"11030:103:21"}]},{"nativeSrc":"11154:341:21","nodeType":"YulBlock","src":"11154:341:21","statements":[{"nativeSrc":"11193:46:21","nodeType":"YulVariableDeclaration","src":"11193:46:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11224:9:21","nodeType":"YulIdentifier","src":"11224:9:21"},{"kind":"number","nativeSrc":"11235:2:21","nodeType":"YulLiteral","src":"11235:2:21","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"11220:3:21","nodeType":"YulIdentifier","src":"11220:3:21"},"nativeSrc":"11220:18:21","nodeType":"YulFunctionCall","src":"11220:18:21"}],"functionName":{"name":"calldataload","nativeSrc":"11207:12:21","nodeType":"YulIdentifier","src":"11207:12:21"},"nativeSrc":"11207:32:21","nodeType":"YulFunctionCall","src":"11207:32:21"},"variables":[{"name":"offset","nativeSrc":"11197:6:21","nodeType":"YulTypedName","src":"11197:6:21","type":""}]},{"body":{"nativeSrc":"11286:83:21","nodeType":"YulBlock","src":"11286:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"11288:77:21","nodeType":"YulIdentifier","src":"11288:77:21"},"nativeSrc":"11288:79:21","nodeType":"YulFunctionCall","src":"11288:79:21"},"nativeSrc":"11288:79:21","nodeType":"YulExpressionStatement","src":"11288:79:21"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"11258:6:21","nodeType":"YulIdentifier","src":"11258:6:21"},{"kind":"number","nativeSrc":"11266:18:21","nodeType":"YulLiteral","src":"11266:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11255:2:21","nodeType":"YulIdentifier","src":"11255:2:21"},"nativeSrc":"11255:30:21","nodeType":"YulFunctionCall","src":"11255:30:21"},"nativeSrc":"11252:117:21","nodeType":"YulIf","src":"11252:117:21"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"11394:5:21","nodeType":"YulIdentifier","src":"11394:5:21"},{"kind":"number","nativeSrc":"11401:4:21","nodeType":"YulLiteral","src":"11401:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"11390:3:21","nodeType":"YulIdentifier","src":"11390:3:21"},"nativeSrc":"11390:16:21","nodeType":"YulFunctionCall","src":"11390:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11459:9:21","nodeType":"YulIdentifier","src":"11459:9:21"},{"name":"offset","nativeSrc":"11470:6:21","nodeType":"YulIdentifier","src":"11470:6:21"}],"functionName":{"name":"add","nativeSrc":"11455:3:21","nodeType":"YulIdentifier","src":"11455:3:21"},"nativeSrc":"11455:22:21","nodeType":"YulFunctionCall","src":"11455:22:21"},{"name":"end","nativeSrc":"11479:3:21","nodeType":"YulIdentifier","src":"11479:3:21"}],"functionName":{"name":"abi_decode_t_struct$_Redirect_$1008_memory_ptr","nativeSrc":"11408:46:21","nodeType":"YulIdentifier","src":"11408:46:21"},"nativeSrc":"11408:75:21","nodeType":"YulFunctionCall","src":"11408:75:21"}],"functionName":{"name":"mstore","nativeSrc":"11383:6:21","nodeType":"YulIdentifier","src":"11383:6:21"},"nativeSrc":"11383:101:21","nodeType":"YulFunctionCall","src":"11383:101:21"},"nativeSrc":"11383:101:21","nodeType":"YulExpressionStatement","src":"11383:101:21"}]}]},"name":"abi_decode_t_struct$_HeaderInfo_$1022_memory_ptr","nativeSrc":"10196:1306:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"10254:9:21","nodeType":"YulTypedName","src":"10254:9:21","type":""},{"name":"end","nativeSrc":"10265:3:21","nodeType":"YulTypedName","src":"10265:3:21","type":""}],"returnVariables":[{"name":"value","nativeSrc":"10273:5:21","nodeType":"YulTypedName","src":"10273:5:21","type":""}],"src":"10196:1306:21"},{"body":{"nativeSrc":"11602:451:21","nodeType":"YulBlock","src":"11602:451:21","statements":[{"body":{"nativeSrc":"11648:83:21","nodeType":"YulBlock","src":"11648:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"11650:77:21","nodeType":"YulIdentifier","src":"11650:77:21"},"nativeSrc":"11650:79:21","nodeType":"YulFunctionCall","src":"11650:79:21"},"nativeSrc":"11650:79:21","nodeType":"YulExpressionStatement","src":"11650:79:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"11623:7:21","nodeType":"YulIdentifier","src":"11623:7:21"},{"name":"headStart","nativeSrc":"11632:9:21","nodeType":"YulIdentifier","src":"11632:9:21"}],"functionName":{"name":"sub","nativeSrc":"11619:3:21","nodeType":"YulIdentifier","src":"11619:3:21"},"nativeSrc":"11619:23:21","nodeType":"YulFunctionCall","src":"11619:23:21"},{"kind":"number","nativeSrc":"11644:2:21","nodeType":"YulLiteral","src":"11644:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"11615:3:21","nodeType":"YulIdentifier","src":"11615:3:21"},"nativeSrc":"11615:32:21","nodeType":"YulFunctionCall","src":"11615:32:21"},"nativeSrc":"11612:119:21","nodeType":"YulIf","src":"11612:119:21"},{"nativeSrc":"11741:305:21","nodeType":"YulBlock","src":"11741:305:21","statements":[{"nativeSrc":"11756:45:21","nodeType":"YulVariableDeclaration","src":"11756:45:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"11787:9:21","nodeType":"YulIdentifier","src":"11787:9:21"},{"kind":"number","nativeSrc":"11798:1:21","nodeType":"YulLiteral","src":"11798:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"11783:3:21","nodeType":"YulIdentifier","src":"11783:3:21"},"nativeSrc":"11783:17:21","nodeType":"YulFunctionCall","src":"11783:17:21"}],"functionName":{"name":"calldataload","nativeSrc":"11770:12:21","nodeType":"YulIdentifier","src":"11770:12:21"},"nativeSrc":"11770:31:21","nodeType":"YulFunctionCall","src":"11770:31:21"},"variables":[{"name":"offset","nativeSrc":"11760:6:21","nodeType":"YulTypedName","src":"11760:6:21","type":""}]},{"body":{"nativeSrc":"11848:83:21","nodeType":"YulBlock","src":"11848:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"11850:77:21","nodeType":"YulIdentifier","src":"11850:77:21"},"nativeSrc":"11850:79:21","nodeType":"YulFunctionCall","src":"11850:79:21"},"nativeSrc":"11850:79:21","nodeType":"YulExpressionStatement","src":"11850:79:21"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"11820:6:21","nodeType":"YulIdentifier","src":"11820:6:21"},{"kind":"number","nativeSrc":"11828:18:21","nodeType":"YulLiteral","src":"11828:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"11817:2:21","nodeType":"YulIdentifier","src":"11817:2:21"},"nativeSrc":"11817:30:21","nodeType":"YulFunctionCall","src":"11817:30:21"},"nativeSrc":"11814:117:21","nodeType":"YulIf","src":"11814:117:21"},{"nativeSrc":"11945:91:21","nodeType":"YulAssignment","src":"11945:91:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12008:9:21","nodeType":"YulIdentifier","src":"12008:9:21"},{"name":"offset","nativeSrc":"12019:6:21","nodeType":"YulIdentifier","src":"12019:6:21"}],"functionName":{"name":"add","nativeSrc":"12004:3:21","nodeType":"YulIdentifier","src":"12004:3:21"},"nativeSrc":"12004:22:21","nodeType":"YulFunctionCall","src":"12004:22:21"},{"name":"dataEnd","nativeSrc":"12028:7:21","nodeType":"YulIdentifier","src":"12028:7:21"}],"functionName":{"name":"abi_decode_t_struct$_HeaderInfo_$1022_memory_ptr","nativeSrc":"11955:48:21","nodeType":"YulIdentifier","src":"11955:48:21"},"nativeSrc":"11955:81:21","nodeType":"YulFunctionCall","src":"11955:81:21"},"variableNames":[{"name":"value0","nativeSrc":"11945:6:21","nodeType":"YulIdentifier","src":"11945:6:21"}]}]}]},"name":"abi_decode_tuple_t_struct$_HeaderInfo_$1022_memory_ptr","nativeSrc":"11508:545:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"11572:9:21","nodeType":"YulTypedName","src":"11572:9:21","type":""},{"name":"dataEnd","nativeSrc":"11583:7:21","nodeType":"YulTypedName","src":"11583:7:21","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"11595:6:21","nodeType":"YulTypedName","src":"11595:6:21","type":""}],"src":"11508:545:21"},{"body":{"nativeSrc":"12104:32:21","nodeType":"YulBlock","src":"12104:32:21","statements":[{"nativeSrc":"12114:16:21","nodeType":"YulAssignment","src":"12114:16:21","value":{"name":"value","nativeSrc":"12125:5:21","nodeType":"YulIdentifier","src":"12125:5:21"},"variableNames":[{"name":"cleaned","nativeSrc":"12114:7:21","nodeType":"YulIdentifier","src":"12114:7:21"}]}]},"name":"cleanup_t_uint256","nativeSrc":"12059:77:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12086:5:21","nodeType":"YulTypedName","src":"12086:5:21","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"12096:7:21","nodeType":"YulTypedName","src":"12096:7:21","type":""}],"src":"12059:77:21"},{"body":{"nativeSrc":"12185:79:21","nodeType":"YulBlock","src":"12185:79:21","statements":[{"body":{"nativeSrc":"12242:16:21","nodeType":"YulBlock","src":"12242:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"12251:1:21","nodeType":"YulLiteral","src":"12251:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"12254:1:21","nodeType":"YulLiteral","src":"12254:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"12244:6:21","nodeType":"YulIdentifier","src":"12244:6:21"},"nativeSrc":"12244:12:21","nodeType":"YulFunctionCall","src":"12244:12:21"},"nativeSrc":"12244:12:21","nodeType":"YulExpressionStatement","src":"12244:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12208:5:21","nodeType":"YulIdentifier","src":"12208:5:21"},{"arguments":[{"name":"value","nativeSrc":"12233:5:21","nodeType":"YulIdentifier","src":"12233:5:21"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"12215:17:21","nodeType":"YulIdentifier","src":"12215:17:21"},"nativeSrc":"12215:24:21","nodeType":"YulFunctionCall","src":"12215:24:21"}],"functionName":{"name":"eq","nativeSrc":"12205:2:21","nodeType":"YulIdentifier","src":"12205:2:21"},"nativeSrc":"12205:35:21","nodeType":"YulFunctionCall","src":"12205:35:21"}],"functionName":{"name":"iszero","nativeSrc":"12198:6:21","nodeType":"YulIdentifier","src":"12198:6:21"},"nativeSrc":"12198:43:21","nodeType":"YulFunctionCall","src":"12198:43:21"},"nativeSrc":"12195:63:21","nodeType":"YulIf","src":"12195:63:21"}]},"name":"validator_revert_t_uint256","nativeSrc":"12142:122:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"12178:5:21","nodeType":"YulTypedName","src":"12178:5:21","type":""}],"src":"12142:122:21"},{"body":{"nativeSrc":"12322:87:21","nodeType":"YulBlock","src":"12322:87:21","statements":[{"nativeSrc":"12332:29:21","nodeType":"YulAssignment","src":"12332:29:21","value":{"arguments":[{"name":"offset","nativeSrc":"12354:6:21","nodeType":"YulIdentifier","src":"12354:6:21"}],"functionName":{"name":"calldataload","nativeSrc":"12341:12:21","nodeType":"YulIdentifier","src":"12341:12:21"},"nativeSrc":"12341:20:21","nodeType":"YulFunctionCall","src":"12341:20:21"},"variableNames":[{"name":"value","nativeSrc":"12332:5:21","nodeType":"YulIdentifier","src":"12332:5:21"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"12397:5:21","nodeType":"YulIdentifier","src":"12397:5:21"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"12370:26:21","nodeType":"YulIdentifier","src":"12370:26:21"},"nativeSrc":"12370:33:21","nodeType":"YulFunctionCall","src":"12370:33:21"},"nativeSrc":"12370:33:21","nodeType":"YulExpressionStatement","src":"12370:33:21"}]},"name":"abi_decode_t_uint256","nativeSrc":"12270:139:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"12300:6:21","nodeType":"YulTypedName","src":"12300:6:21","type":""},{"name":"end","nativeSrc":"12308:3:21","nodeType":"YulTypedName","src":"12308:3:21","type":""}],"returnVariables":[{"name":"value","nativeSrc":"12316:5:21","nodeType":"YulTypedName","src":"12316:5:21","type":""}],"src":"12270:139:21"},{"body":{"nativeSrc":"12525:843:21","nodeType":"YulBlock","src":"12525:843:21","statements":[{"body":{"nativeSrc":"12569:83:21","nodeType":"YulBlock","src":"12569:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"12571:77:21","nodeType":"YulIdentifier","src":"12571:77:21"},"nativeSrc":"12571:79:21","nodeType":"YulFunctionCall","src":"12571:79:21"},"nativeSrc":"12571:79:21","nodeType":"YulExpressionStatement","src":"12571:79:21"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"12546:3:21","nodeType":"YulIdentifier","src":"12546:3:21"},{"name":"headStart","nativeSrc":"12551:9:21","nodeType":"YulIdentifier","src":"12551:9:21"}],"functionName":{"name":"sub","nativeSrc":"12542:3:21","nodeType":"YulIdentifier","src":"12542:3:21"},"nativeSrc":"12542:19:21","nodeType":"YulFunctionCall","src":"12542:19:21"},{"kind":"number","nativeSrc":"12563:4:21","nodeType":"YulLiteral","src":"12563:4:21","type":"","value":"0x60"}],"functionName":{"name":"slt","nativeSrc":"12538:3:21","nodeType":"YulIdentifier","src":"12538:3:21"},"nativeSrc":"12538:30:21","nodeType":"YulFunctionCall","src":"12538:30:21"},"nativeSrc":"12535:117:21","nodeType":"YulIf","src":"12535:117:21"},{"nativeSrc":"12661:30:21","nodeType":"YulAssignment","src":"12661:30:21","value":{"arguments":[{"kind":"number","nativeSrc":"12686:4:21","nodeType":"YulLiteral","src":"12686:4:21","type":"","value":"0x60"}],"functionName":{"name":"allocate_memory","nativeSrc":"12670:15:21","nodeType":"YulIdentifier","src":"12670:15:21"},"nativeSrc":"12670:21:21","nodeType":"YulFunctionCall","src":"12670:21:21"},"variableNames":[{"name":"value","nativeSrc":"12661:5:21","nodeType":"YulIdentifier","src":"12661:5:21"}]},{"nativeSrc":"12701:320:21","nodeType":"YulBlock","src":"12701:320:21","statements":[{"nativeSrc":"12736:45:21","nodeType":"YulVariableDeclaration","src":"12736:45:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12767:9:21","nodeType":"YulIdentifier","src":"12767:9:21"},{"kind":"number","nativeSrc":"12778:1:21","nodeType":"YulLiteral","src":"12778:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"12763:3:21","nodeType":"YulIdentifier","src":"12763:3:21"},"nativeSrc":"12763:17:21","nodeType":"YulFunctionCall","src":"12763:17:21"}],"functionName":{"name":"calldataload","nativeSrc":"12750:12:21","nodeType":"YulIdentifier","src":"12750:12:21"},"nativeSrc":"12750:31:21","nodeType":"YulFunctionCall","src":"12750:31:21"},"variables":[{"name":"offset","nativeSrc":"12740:6:21","nodeType":"YulTypedName","src":"12740:6:21","type":""}]},{"body":{"nativeSrc":"12828:83:21","nodeType":"YulBlock","src":"12828:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"12830:77:21","nodeType":"YulIdentifier","src":"12830:77:21"},"nativeSrc":"12830:79:21","nodeType":"YulFunctionCall","src":"12830:79:21"},"nativeSrc":"12830:79:21","nodeType":"YulExpressionStatement","src":"12830:79:21"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"12800:6:21","nodeType":"YulIdentifier","src":"12800:6:21"},{"kind":"number","nativeSrc":"12808:18:21","nodeType":"YulLiteral","src":"12808:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"12797:2:21","nodeType":"YulIdentifier","src":"12797:2:21"},"nativeSrc":"12797:30:21","nodeType":"YulFunctionCall","src":"12797:30:21"},"nativeSrc":"12794:117:21","nodeType":"YulIf","src":"12794:117:21"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"12936:5:21","nodeType":"YulIdentifier","src":"12936:5:21"},{"kind":"number","nativeSrc":"12943:4:21","nodeType":"YulLiteral","src":"12943:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"12932:3:21","nodeType":"YulIdentifier","src":"12932:3:21"},"nativeSrc":"12932:16:21","nodeType":"YulFunctionCall","src":"12932:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"12985:9:21","nodeType":"YulIdentifier","src":"12985:9:21"},{"name":"offset","nativeSrc":"12996:6:21","nodeType":"YulIdentifier","src":"12996:6:21"}],"functionName":{"name":"add","nativeSrc":"12981:3:21","nodeType":"YulIdentifier","src":"12981:3:21"},"nativeSrc":"12981:22:21","nodeType":"YulFunctionCall","src":"12981:22:21"},{"name":"end","nativeSrc":"13005:3:21","nodeType":"YulIdentifier","src":"13005:3:21"}],"functionName":{"name":"abi_decode_t_string_memory_ptr","nativeSrc":"12950:30:21","nodeType":"YulIdentifier","src":"12950:30:21"},"nativeSrc":"12950:59:21","nodeType":"YulFunctionCall","src":"12950:59:21"}],"functionName":{"name":"mstore","nativeSrc":"12925:6:21","nodeType":"YulIdentifier","src":"12925:6:21"},"nativeSrc":"12925:85:21","nodeType":"YulFunctionCall","src":"12925:85:21"},"nativeSrc":"12925:85:21","nodeType":"YulExpressionStatement","src":"12925:85:21"}]},{"nativeSrc":"13031:162:21","nodeType":"YulBlock","src":"13031:162:21","statements":[{"nativeSrc":"13077:16:21","nodeType":"YulVariableDeclaration","src":"13077:16:21","value":{"kind":"number","nativeSrc":"13091:2:21","nodeType":"YulLiteral","src":"13091:2:21","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"13081:6:21","nodeType":"YulTypedName","src":"13081:6:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13118:5:21","nodeType":"YulIdentifier","src":"13118:5:21"},{"kind":"number","nativeSrc":"13125:4:21","nodeType":"YulLiteral","src":"13125:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"13114:3:21","nodeType":"YulIdentifier","src":"13114:3:21"},"nativeSrc":"13114:16:21","nodeType":"YulFunctionCall","src":"13114:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13157:9:21","nodeType":"YulIdentifier","src":"13157:9:21"},{"name":"offset","nativeSrc":"13168:6:21","nodeType":"YulIdentifier","src":"13168:6:21"}],"functionName":{"name":"add","nativeSrc":"13153:3:21","nodeType":"YulIdentifier","src":"13153:3:21"},"nativeSrc":"13153:22:21","nodeType":"YulFunctionCall","src":"13153:22:21"},{"name":"end","nativeSrc":"13177:3:21","nodeType":"YulIdentifier","src":"13177:3:21"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"13132:20:21","nodeType":"YulIdentifier","src":"13132:20:21"},"nativeSrc":"13132:49:21","nodeType":"YulFunctionCall","src":"13132:49:21"}],"functionName":{"name":"mstore","nativeSrc":"13107:6:21","nodeType":"YulIdentifier","src":"13107:6:21"},"nativeSrc":"13107:75:21","nodeType":"YulFunctionCall","src":"13107:75:21"},"nativeSrc":"13107:75:21","nodeType":"YulExpressionStatement","src":"13107:75:21"}]},{"nativeSrc":"13203:158:21","nodeType":"YulBlock","src":"13203:158:21","statements":[{"nativeSrc":"13245:16:21","nodeType":"YulVariableDeclaration","src":"13245:16:21","value":{"kind":"number","nativeSrc":"13259:2:21","nodeType":"YulLiteral","src":"13259:2:21","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"13249:6:21","nodeType":"YulTypedName","src":"13249:6:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13286:5:21","nodeType":"YulIdentifier","src":"13286:5:21"},{"kind":"number","nativeSrc":"13293:4:21","nodeType":"YulLiteral","src":"13293:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"13282:3:21","nodeType":"YulIdentifier","src":"13282:3:21"},"nativeSrc":"13282:16:21","nodeType":"YulFunctionCall","src":"13282:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"13325:9:21","nodeType":"YulIdentifier","src":"13325:9:21"},{"name":"offset","nativeSrc":"13336:6:21","nodeType":"YulIdentifier","src":"13336:6:21"}],"functionName":{"name":"add","nativeSrc":"13321:3:21","nodeType":"YulIdentifier","src":"13321:3:21"},"nativeSrc":"13321:22:21","nodeType":"YulFunctionCall","src":"13321:22:21"},{"name":"end","nativeSrc":"13345:3:21","nodeType":"YulIdentifier","src":"13345:3:21"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"13300:20:21","nodeType":"YulIdentifier","src":"13300:20:21"},"nativeSrc":"13300:49:21","nodeType":"YulFunctionCall","src":"13300:49:21"}],"functionName":{"name":"mstore","nativeSrc":"13275:6:21","nodeType":"YulIdentifier","src":"13275:6:21"},"nativeSrc":"13275:75:21","nodeType":"YulFunctionCall","src":"13275:75:21"},"nativeSrc":"13275:75:21","nodeType":"YulExpressionStatement","src":"13275:75:21"}]}]},"name":"abi_decode_t_struct$_HEADRequest_$1142_memory_ptr","nativeSrc":"12441:927:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"12500:9:21","nodeType":"YulTypedName","src":"12500:9:21","type":""},{"name":"end","nativeSrc":"12511:3:21","nodeType":"YulTypedName","src":"12511:3:21","type":""}],"returnVariables":[{"name":"value","nativeSrc":"12519:5:21","nodeType":"YulTypedName","src":"12519:5:21","type":""}],"src":"12441:927:21"},{"body":{"nativeSrc":"13418:32:21","nodeType":"YulBlock","src":"13418:32:21","statements":[{"nativeSrc":"13428:16:21","nodeType":"YulAssignment","src":"13428:16:21","value":{"name":"value","nativeSrc":"13439:5:21","nodeType":"YulIdentifier","src":"13439:5:21"},"variableNames":[{"name":"cleaned","nativeSrc":"13428:7:21","nodeType":"YulIdentifier","src":"13428:7:21"}]}]},"name":"cleanup_t_int256","nativeSrc":"13374:76:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13400:5:21","nodeType":"YulTypedName","src":"13400:5:21","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"13410:7:21","nodeType":"YulTypedName","src":"13410:7:21","type":""}],"src":"13374:76:21"},{"body":{"nativeSrc":"13498:78:21","nodeType":"YulBlock","src":"13498:78:21","statements":[{"body":{"nativeSrc":"13554:16:21","nodeType":"YulBlock","src":"13554:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"13563:1:21","nodeType":"YulLiteral","src":"13563:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"13566:1:21","nodeType":"YulLiteral","src":"13566:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"13556:6:21","nodeType":"YulIdentifier","src":"13556:6:21"},"nativeSrc":"13556:12:21","nodeType":"YulFunctionCall","src":"13556:12:21"},"nativeSrc":"13556:12:21","nodeType":"YulExpressionStatement","src":"13556:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"13521:5:21","nodeType":"YulIdentifier","src":"13521:5:21"},{"arguments":[{"name":"value","nativeSrc":"13545:5:21","nodeType":"YulIdentifier","src":"13545:5:21"}],"functionName":{"name":"cleanup_t_int256","nativeSrc":"13528:16:21","nodeType":"YulIdentifier","src":"13528:16:21"},"nativeSrc":"13528:23:21","nodeType":"YulFunctionCall","src":"13528:23:21"}],"functionName":{"name":"eq","nativeSrc":"13518:2:21","nodeType":"YulIdentifier","src":"13518:2:21"},"nativeSrc":"13518:34:21","nodeType":"YulFunctionCall","src":"13518:34:21"}],"functionName":{"name":"iszero","nativeSrc":"13511:6:21","nodeType":"YulIdentifier","src":"13511:6:21"},"nativeSrc":"13511:42:21","nodeType":"YulFunctionCall","src":"13511:42:21"},"nativeSrc":"13508:62:21","nodeType":"YulIf","src":"13508:62:21"}]},"name":"validator_revert_t_int256","nativeSrc":"13456:120:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"13491:5:21","nodeType":"YulTypedName","src":"13491:5:21","type":""}],"src":"13456:120:21"},{"body":{"nativeSrc":"13633:86:21","nodeType":"YulBlock","src":"13633:86:21","statements":[{"nativeSrc":"13643:29:21","nodeType":"YulAssignment","src":"13643:29:21","value":{"arguments":[{"name":"offset","nativeSrc":"13665:6:21","nodeType":"YulIdentifier","src":"13665:6:21"}],"functionName":{"name":"calldataload","nativeSrc":"13652:12:21","nodeType":"YulIdentifier","src":"13652:12:21"},"nativeSrc":"13652:20:21","nodeType":"YulFunctionCall","src":"13652:20:21"},"variableNames":[{"name":"value","nativeSrc":"13643:5:21","nodeType":"YulIdentifier","src":"13643:5:21"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"13707:5:21","nodeType":"YulIdentifier","src":"13707:5:21"}],"functionName":{"name":"validator_revert_t_int256","nativeSrc":"13681:25:21","nodeType":"YulIdentifier","src":"13681:25:21"},"nativeSrc":"13681:32:21","nodeType":"YulFunctionCall","src":"13681:32:21"},"nativeSrc":"13681:32:21","nodeType":"YulExpressionStatement","src":"13681:32:21"}]},"name":"abi_decode_t_int256","nativeSrc":"13582:137:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"13611:6:21","nodeType":"YulTypedName","src":"13611:6:21","type":""},{"name":"end","nativeSrc":"13619:3:21","nodeType":"YulTypedName","src":"13619:3:21","type":""}],"returnVariables":[{"name":"value","nativeSrc":"13627:5:21","nodeType":"YulTypedName","src":"13627:5:21","type":""}],"src":"13582:137:21"},{"body":{"nativeSrc":"13823:492:21","nodeType":"YulBlock","src":"13823:492:21","statements":[{"body":{"nativeSrc":"13867:83:21","nodeType":"YulBlock","src":"13867:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"13869:77:21","nodeType":"YulIdentifier","src":"13869:77:21"},"nativeSrc":"13869:79:21","nodeType":"YulFunctionCall","src":"13869:79:21"},"nativeSrc":"13869:79:21","nodeType":"YulExpressionStatement","src":"13869:79:21"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"13844:3:21","nodeType":"YulIdentifier","src":"13844:3:21"},{"name":"headStart","nativeSrc":"13849:9:21","nodeType":"YulIdentifier","src":"13849:9:21"}],"functionName":{"name":"sub","nativeSrc":"13840:3:21","nodeType":"YulIdentifier","src":"13840:3:21"},"nativeSrc":"13840:19:21","nodeType":"YulFunctionCall","src":"13840:19:21"},{"kind":"number","nativeSrc":"13861:4:21","nodeType":"YulLiteral","src":"13861:4:21","type":"","value":"0x40"}],"functionName":{"name":"slt","nativeSrc":"13836:3:21","nodeType":"YulIdentifier","src":"13836:3:21"},"nativeSrc":"13836:30:21","nodeType":"YulFunctionCall","src":"13836:30:21"},"nativeSrc":"13833:117:21","nodeType":"YulIf","src":"13833:117:21"},{"nativeSrc":"13959:30:21","nodeType":"YulAssignment","src":"13959:30:21","value":{"arguments":[{"kind":"number","nativeSrc":"13984:4:21","nodeType":"YulLiteral","src":"13984:4:21","type":"","value":"0x40"}],"functionName":{"name":"allocate_memory","nativeSrc":"13968:15:21","nodeType":"YulIdentifier","src":"13968:15:21"},"nativeSrc":"13968:21:21","nodeType":"YulFunctionCall","src":"13968:21:21"},"variableNames":[{"name":"value","nativeSrc":"13959:5:21","nodeType":"YulIdentifier","src":"13959:5:21"}]},{"nativeSrc":"13999:150:21","nodeType":"YulBlock","src":"13999:150:21","statements":[{"nativeSrc":"14035:15:21","nodeType":"YulVariableDeclaration","src":"14035:15:21","value":{"kind":"number","nativeSrc":"14049:1:21","nodeType":"YulLiteral","src":"14049:1:21","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"14039:6:21","nodeType":"YulTypedName","src":"14039:6:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"14075:5:21","nodeType":"YulIdentifier","src":"14075:5:21"},{"kind":"number","nativeSrc":"14082:4:21","nodeType":"YulLiteral","src":"14082:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"14071:3:21","nodeType":"YulIdentifier","src":"14071:3:21"},"nativeSrc":"14071:16:21","nodeType":"YulFunctionCall","src":"14071:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14113:9:21","nodeType":"YulIdentifier","src":"14113:9:21"},{"name":"offset","nativeSrc":"14124:6:21","nodeType":"YulIdentifier","src":"14124:6:21"}],"functionName":{"name":"add","nativeSrc":"14109:3:21","nodeType":"YulIdentifier","src":"14109:3:21"},"nativeSrc":"14109:22:21","nodeType":"YulFunctionCall","src":"14109:22:21"},{"name":"end","nativeSrc":"14133:3:21","nodeType":"YulIdentifier","src":"14133:3:21"}],"functionName":{"name":"abi_decode_t_int256","nativeSrc":"14089:19:21","nodeType":"YulIdentifier","src":"14089:19:21"},"nativeSrc":"14089:48:21","nodeType":"YulFunctionCall","src":"14089:48:21"}],"functionName":{"name":"mstore","nativeSrc":"14064:6:21","nodeType":"YulIdentifier","src":"14064:6:21"},"nativeSrc":"14064:74:21","nodeType":"YulFunctionCall","src":"14064:74:21"},"nativeSrc":"14064:74:21","nodeType":"YulExpressionStatement","src":"14064:74:21"}]},{"nativeSrc":"14159:149:21","nodeType":"YulBlock","src":"14159:149:21","statements":[{"nativeSrc":"14193:16:21","nodeType":"YulVariableDeclaration","src":"14193:16:21","value":{"kind":"number","nativeSrc":"14207:2:21","nodeType":"YulLiteral","src":"14207:2:21","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"14197:6:21","nodeType":"YulTypedName","src":"14197:6:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"14234:5:21","nodeType":"YulIdentifier","src":"14234:5:21"},{"kind":"number","nativeSrc":"14241:4:21","nodeType":"YulLiteral","src":"14241:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"14230:3:21","nodeType":"YulIdentifier","src":"14230:3:21"},"nativeSrc":"14230:16:21","nodeType":"YulFunctionCall","src":"14230:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14272:9:21","nodeType":"YulIdentifier","src":"14272:9:21"},{"name":"offset","nativeSrc":"14283:6:21","nodeType":"YulIdentifier","src":"14283:6:21"}],"functionName":{"name":"add","nativeSrc":"14268:3:21","nodeType":"YulIdentifier","src":"14268:3:21"},"nativeSrc":"14268:22:21","nodeType":"YulFunctionCall","src":"14268:22:21"},{"name":"end","nativeSrc":"14292:3:21","nodeType":"YulIdentifier","src":"14292:3:21"}],"functionName":{"name":"abi_decode_t_int256","nativeSrc":"14248:19:21","nodeType":"YulIdentifier","src":"14248:19:21"},"nativeSrc":"14248:48:21","nodeType":"YulFunctionCall","src":"14248:48:21"}],"functionName":{"name":"mstore","nativeSrc":"14223:6:21","nodeType":"YulIdentifier","src":"14223:6:21"},"nativeSrc":"14223:74:21","nodeType":"YulFunctionCall","src":"14223:74:21"},"nativeSrc":"14223:74:21","nodeType":"YulExpressionStatement","src":"14223:74:21"}]}]},"name":"abi_decode_t_struct$_Range_$1241_memory_ptr","nativeSrc":"13745:570:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"13798:9:21","nodeType":"YulTypedName","src":"13798:9:21","type":""},{"name":"end","nativeSrc":"13809:3:21","nodeType":"YulTypedName","src":"13809:3:21","type":""}],"returnVariables":[{"name":"value","nativeSrc":"13817:5:21","nodeType":"YulTypedName","src":"13817:5:21","type":""}],"src":"13745:570:21"},{"body":{"nativeSrc":"14435:713:21","nodeType":"YulBlock","src":"14435:713:21","statements":[{"body":{"nativeSrc":"14479:83:21","nodeType":"YulBlock","src":"14479:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"14481:77:21","nodeType":"YulIdentifier","src":"14481:77:21"},"nativeSrc":"14481:79:21","nodeType":"YulFunctionCall","src":"14481:79:21"},"nativeSrc":"14481:79:21","nodeType":"YulExpressionStatement","src":"14481:79:21"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"14456:3:21","nodeType":"YulIdentifier","src":"14456:3:21"},{"name":"headStart","nativeSrc":"14461:9:21","nodeType":"YulIdentifier","src":"14461:9:21"}],"functionName":{"name":"sub","nativeSrc":"14452:3:21","nodeType":"YulIdentifier","src":"14452:3:21"},"nativeSrc":"14452:19:21","nodeType":"YulFunctionCall","src":"14452:19:21"},{"kind":"number","nativeSrc":"14473:4:21","nodeType":"YulLiteral","src":"14473:4:21","type":"","value":"0x60"}],"functionName":{"name":"slt","nativeSrc":"14448:3:21","nodeType":"YulIdentifier","src":"14448:3:21"},"nativeSrc":"14448:30:21","nodeType":"YulFunctionCall","src":"14448:30:21"},"nativeSrc":"14445:117:21","nodeType":"YulIf","src":"14445:117:21"},{"nativeSrc":"14571:30:21","nodeType":"YulAssignment","src":"14571:30:21","value":{"arguments":[{"kind":"number","nativeSrc":"14596:4:21","nodeType":"YulLiteral","src":"14596:4:21","type":"","value":"0x40"}],"functionName":{"name":"allocate_memory","nativeSrc":"14580:15:21","nodeType":"YulIdentifier","src":"14580:15:21"},"nativeSrc":"14580:21:21","nodeType":"YulFunctionCall","src":"14580:21:21"},"variableNames":[{"name":"value","nativeSrc":"14571:5:21","nodeType":"YulIdentifier","src":"14571:5:21"}]},{"nativeSrc":"14611:339:21","nodeType":"YulBlock","src":"14611:339:21","statements":[{"nativeSrc":"14646:45:21","nodeType":"YulVariableDeclaration","src":"14646:45:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14677:9:21","nodeType":"YulIdentifier","src":"14677:9:21"},{"kind":"number","nativeSrc":"14688:1:21","nodeType":"YulLiteral","src":"14688:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"14673:3:21","nodeType":"YulIdentifier","src":"14673:3:21"},"nativeSrc":"14673:17:21","nodeType":"YulFunctionCall","src":"14673:17:21"}],"functionName":{"name":"calldataload","nativeSrc":"14660:12:21","nodeType":"YulIdentifier","src":"14660:12:21"},"nativeSrc":"14660:31:21","nodeType":"YulFunctionCall","src":"14660:31:21"},"variables":[{"name":"offset","nativeSrc":"14650:6:21","nodeType":"YulTypedName","src":"14650:6:21","type":""}]},{"body":{"nativeSrc":"14738:83:21","nodeType":"YulBlock","src":"14738:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"14740:77:21","nodeType":"YulIdentifier","src":"14740:77:21"},"nativeSrc":"14740:79:21","nodeType":"YulFunctionCall","src":"14740:79:21"},"nativeSrc":"14740:79:21","nodeType":"YulExpressionStatement","src":"14740:79:21"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"14710:6:21","nodeType":"YulIdentifier","src":"14710:6:21"},{"kind":"number","nativeSrc":"14718:18:21","nodeType":"YulLiteral","src":"14718:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"14707:2:21","nodeType":"YulIdentifier","src":"14707:2:21"},"nativeSrc":"14707:30:21","nodeType":"YulFunctionCall","src":"14707:30:21"},"nativeSrc":"14704:117:21","nodeType":"YulIf","src":"14704:117:21"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"14846:5:21","nodeType":"YulIdentifier","src":"14846:5:21"},{"kind":"number","nativeSrc":"14853:4:21","nodeType":"YulLiteral","src":"14853:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"14842:3:21","nodeType":"YulIdentifier","src":"14842:3:21"},"nativeSrc":"14842:16:21","nodeType":"YulFunctionCall","src":"14842:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"14914:9:21","nodeType":"YulIdentifier","src":"14914:9:21"},{"name":"offset","nativeSrc":"14925:6:21","nodeType":"YulIdentifier","src":"14925:6:21"}],"functionName":{"name":"add","nativeSrc":"14910:3:21","nodeType":"YulIdentifier","src":"14910:3:21"},"nativeSrc":"14910:22:21","nodeType":"YulFunctionCall","src":"14910:22:21"},{"name":"end","nativeSrc":"14934:3:21","nodeType":"YulIdentifier","src":"14934:3:21"}],"functionName":{"name":"abi_decode_t_struct$_HEADRequest_$1142_memory_ptr","nativeSrc":"14860:49:21","nodeType":"YulIdentifier","src":"14860:49:21"},"nativeSrc":"14860:78:21","nodeType":"YulFunctionCall","src":"14860:78:21"}],"functionName":{"name":"mstore","nativeSrc":"14835:6:21","nodeType":"YulIdentifier","src":"14835:6:21"},"nativeSrc":"14835:104:21","nodeType":"YulFunctionCall","src":"14835:104:21"},"nativeSrc":"14835:104:21","nodeType":"YulExpressionStatement","src":"14835:104:21"}]},{"nativeSrc":"14960:181:21","nodeType":"YulBlock","src":"14960:181:21","statements":[{"nativeSrc":"15002:16:21","nodeType":"YulVariableDeclaration","src":"15002:16:21","value":{"kind":"number","nativeSrc":"15016:2:21","nodeType":"YulLiteral","src":"15016:2:21","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"15006:6:21","nodeType":"YulTypedName","src":"15006:6:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"15043:5:21","nodeType":"YulIdentifier","src":"15043:5:21"},{"kind":"number","nativeSrc":"15050:4:21","nodeType":"YulLiteral","src":"15050:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"15039:3:21","nodeType":"YulIdentifier","src":"15039:3:21"},"nativeSrc":"15039:16:21","nodeType":"YulFunctionCall","src":"15039:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15105:9:21","nodeType":"YulIdentifier","src":"15105:9:21"},{"name":"offset","nativeSrc":"15116:6:21","nodeType":"YulIdentifier","src":"15116:6:21"}],"functionName":{"name":"add","nativeSrc":"15101:3:21","nodeType":"YulIdentifier","src":"15101:3:21"},"nativeSrc":"15101:22:21","nodeType":"YulFunctionCall","src":"15101:22:21"},{"name":"end","nativeSrc":"15125:3:21","nodeType":"YulIdentifier","src":"15125:3:21"}],"functionName":{"name":"abi_decode_t_struct$_Range_$1241_memory_ptr","nativeSrc":"15057:43:21","nodeType":"YulIdentifier","src":"15057:43:21"},"nativeSrc":"15057:72:21","nodeType":"YulFunctionCall","src":"15057:72:21"}],"functionName":{"name":"mstore","nativeSrc":"15032:6:21","nodeType":"YulIdentifier","src":"15032:6:21"},"nativeSrc":"15032:98:21","nodeType":"YulFunctionCall","src":"15032:98:21"},"nativeSrc":"15032:98:21","nodeType":"YulExpressionStatement","src":"15032:98:21"}]}]},"name":"abi_decode_t_struct$_LOCATERequest_$1251_memory_ptr","nativeSrc":"14349:799:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"14410:9:21","nodeType":"YulTypedName","src":"14410:9:21","type":""},{"name":"end","nativeSrc":"14421:3:21","nodeType":"YulTypedName","src":"14421:3:21","type":""}],"returnVariables":[{"name":"value","nativeSrc":"14429:5:21","nodeType":"YulTypedName","src":"14429:5:21","type":""}],"src":"14349:799:21"},{"body":{"nativeSrc":"15251:454:21","nodeType":"YulBlock","src":"15251:454:21","statements":[{"body":{"nativeSrc":"15297:83:21","nodeType":"YulBlock","src":"15297:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"15299:77:21","nodeType":"YulIdentifier","src":"15299:77:21"},"nativeSrc":"15299:79:21","nodeType":"YulFunctionCall","src":"15299:79:21"},"nativeSrc":"15299:79:21","nodeType":"YulExpressionStatement","src":"15299:79:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"15272:7:21","nodeType":"YulIdentifier","src":"15272:7:21"},{"name":"headStart","nativeSrc":"15281:9:21","nodeType":"YulIdentifier","src":"15281:9:21"}],"functionName":{"name":"sub","nativeSrc":"15268:3:21","nodeType":"YulIdentifier","src":"15268:3:21"},"nativeSrc":"15268:23:21","nodeType":"YulFunctionCall","src":"15268:23:21"},{"kind":"number","nativeSrc":"15293:2:21","nodeType":"YulLiteral","src":"15293:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"15264:3:21","nodeType":"YulIdentifier","src":"15264:3:21"},"nativeSrc":"15264:32:21","nodeType":"YulFunctionCall","src":"15264:32:21"},"nativeSrc":"15261:119:21","nodeType":"YulIf","src":"15261:119:21"},{"nativeSrc":"15390:308:21","nodeType":"YulBlock","src":"15390:308:21","statements":[{"nativeSrc":"15405:45:21","nodeType":"YulVariableDeclaration","src":"15405:45:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15436:9:21","nodeType":"YulIdentifier","src":"15436:9:21"},{"kind":"number","nativeSrc":"15447:1:21","nodeType":"YulLiteral","src":"15447:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"15432:3:21","nodeType":"YulIdentifier","src":"15432:3:21"},"nativeSrc":"15432:17:21","nodeType":"YulFunctionCall","src":"15432:17:21"}],"functionName":{"name":"calldataload","nativeSrc":"15419:12:21","nodeType":"YulIdentifier","src":"15419:12:21"},"nativeSrc":"15419:31:21","nodeType":"YulFunctionCall","src":"15419:31:21"},"variables":[{"name":"offset","nativeSrc":"15409:6:21","nodeType":"YulTypedName","src":"15409:6:21","type":""}]},{"body":{"nativeSrc":"15497:83:21","nodeType":"YulBlock","src":"15497:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"15499:77:21","nodeType":"YulIdentifier","src":"15499:77:21"},"nativeSrc":"15499:79:21","nodeType":"YulFunctionCall","src":"15499:79:21"},"nativeSrc":"15499:79:21","nodeType":"YulExpressionStatement","src":"15499:79:21"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"15469:6:21","nodeType":"YulIdentifier","src":"15469:6:21"},{"kind":"number","nativeSrc":"15477:18:21","nodeType":"YulLiteral","src":"15477:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"15466:2:21","nodeType":"YulIdentifier","src":"15466:2:21"},"nativeSrc":"15466:30:21","nodeType":"YulFunctionCall","src":"15466:30:21"},"nativeSrc":"15463:117:21","nodeType":"YulIf","src":"15463:117:21"},{"nativeSrc":"15594:94:21","nodeType":"YulAssignment","src":"15594:94:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"15660:9:21","nodeType":"YulIdentifier","src":"15660:9:21"},{"name":"offset","nativeSrc":"15671:6:21","nodeType":"YulIdentifier","src":"15671:6:21"}],"functionName":{"name":"add","nativeSrc":"15656:3:21","nodeType":"YulIdentifier","src":"15656:3:21"},"nativeSrc":"15656:22:21","nodeType":"YulFunctionCall","src":"15656:22:21"},{"name":"dataEnd","nativeSrc":"15680:7:21","nodeType":"YulIdentifier","src":"15680:7:21"}],"functionName":{"name":"abi_decode_t_struct$_LOCATERequest_$1251_memory_ptr","nativeSrc":"15604:51:21","nodeType":"YulIdentifier","src":"15604:51:21"},"nativeSrc":"15604:84:21","nodeType":"YulFunctionCall","src":"15604:84:21"},"variableNames":[{"name":"value0","nativeSrc":"15594:6:21","nodeType":"YulIdentifier","src":"15594:6:21"}]}]}]},"name":"abi_decode_tuple_t_struct$_LOCATERequest_$1251_memory_ptr","nativeSrc":"15154:551:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"15221:9:21","nodeType":"YulTypedName","src":"15221:9:21","type":""},{"name":"dataEnd","nativeSrc":"15232:7:21","nodeType":"YulTypedName","src":"15232:7:21","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"15244:6:21","nodeType":"YulTypedName","src":"15244:6:21","type":""}],"src":"15154:551:21"},{"body":{"nativeSrc":"15764:52:21","nodeType":"YulBlock","src":"15764:52:21","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"15781:3:21","nodeType":"YulIdentifier","src":"15781:3:21"},{"arguments":[{"name":"value","nativeSrc":"15803:5:21","nodeType":"YulIdentifier","src":"15803:5:21"}],"functionName":{"name":"cleanup_t_uint16","nativeSrc":"15786:16:21","nodeType":"YulIdentifier","src":"15786:16:21"},"nativeSrc":"15786:23:21","nodeType":"YulFunctionCall","src":"15786:23:21"}],"functionName":{"name":"mstore","nativeSrc":"15774:6:21","nodeType":"YulIdentifier","src":"15774:6:21"},"nativeSrc":"15774:36:21","nodeType":"YulFunctionCall","src":"15774:36:21"},"nativeSrc":"15774:36:21","nodeType":"YulExpressionStatement","src":"15774:36:21"}]},"name":"abi_encode_t_uint16_to_t_uint16","nativeSrc":"15711:105:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15752:5:21","nodeType":"YulTypedName","src":"15752:5:21","type":""},{"name":"pos","nativeSrc":"15759:3:21","nodeType":"YulTypedName","src":"15759:3:21","type":""}],"src":"15711:105:21"},{"body":{"nativeSrc":"15871:50:21","nodeType":"YulBlock","src":"15871:50:21","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"15888:3:21","nodeType":"YulIdentifier","src":"15888:3:21"},{"arguments":[{"name":"value","nativeSrc":"15908:5:21","nodeType":"YulIdentifier","src":"15908:5:21"}],"functionName":{"name":"cleanup_t_bool","nativeSrc":"15893:14:21","nodeType":"YulIdentifier","src":"15893:14:21"},"nativeSrc":"15893:21:21","nodeType":"YulFunctionCall","src":"15893:21:21"}],"functionName":{"name":"mstore","nativeSrc":"15881:6:21","nodeType":"YulIdentifier","src":"15881:6:21"},"nativeSrc":"15881:34:21","nodeType":"YulFunctionCall","src":"15881:34:21"},"nativeSrc":"15881:34:21","nodeType":"YulExpressionStatement","src":"15881:34:21"}]},"name":"abi_encode_t_bool_to_t_bool","nativeSrc":"15822:99:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"15859:5:21","nodeType":"YulTypedName","src":"15859:5:21","type":""},{"name":"pos","nativeSrc":"15866:3:21","nodeType":"YulTypedName","src":"15866:3:21","type":""}],"src":"15822:99:21"},{"body":{"nativeSrc":"15955:152:21","nodeType":"YulBlock","src":"15955:152:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"15972:1:21","nodeType":"YulLiteral","src":"15972:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"15975:77:21","nodeType":"YulLiteral","src":"15975:77:21","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"15965:6:21","nodeType":"YulIdentifier","src":"15965:6:21"},"nativeSrc":"15965:88:21","nodeType":"YulFunctionCall","src":"15965:88:21"},"nativeSrc":"15965:88:21","nodeType":"YulExpressionStatement","src":"15965:88:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16069:1:21","nodeType":"YulLiteral","src":"16069:1:21","type":"","value":"4"},{"kind":"number","nativeSrc":"16072:4:21","nodeType":"YulLiteral","src":"16072:4:21","type":"","value":"0x21"}],"functionName":{"name":"mstore","nativeSrc":"16062:6:21","nodeType":"YulIdentifier","src":"16062:6:21"},"nativeSrc":"16062:15:21","nodeType":"YulFunctionCall","src":"16062:15:21"},"nativeSrc":"16062:15:21","nodeType":"YulExpressionStatement","src":"16062:15:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"16093:1:21","nodeType":"YulLiteral","src":"16093:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"16096:4:21","nodeType":"YulLiteral","src":"16096:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"16086:6:21","nodeType":"YulIdentifier","src":"16086:6:21"},"nativeSrc":"16086:15:21","nodeType":"YulFunctionCall","src":"16086:15:21"},"nativeSrc":"16086:15:21","nodeType":"YulExpressionStatement","src":"16086:15:21"}]},"name":"panic_error_0x21","nativeSrc":"15927:180:21","nodeType":"YulFunctionDefinition","src":"15927:180:21"},{"body":{"nativeSrc":"16171:62:21","nodeType":"YulBlock","src":"16171:62:21","statements":[{"body":{"nativeSrc":"16205:22:21","nodeType":"YulBlock","src":"16205:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nativeSrc":"16207:16:21","nodeType":"YulIdentifier","src":"16207:16:21"},"nativeSrc":"16207:18:21","nodeType":"YulFunctionCall","src":"16207:18:21"},"nativeSrc":"16207:18:21","nodeType":"YulExpressionStatement","src":"16207:18:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"16194:5:21","nodeType":"YulIdentifier","src":"16194:5:21"},{"kind":"number","nativeSrc":"16201:1:21","nodeType":"YulLiteral","src":"16201:1:21","type":"","value":"7"}],"functionName":{"name":"lt","nativeSrc":"16191:2:21","nodeType":"YulIdentifier","src":"16191:2:21"},"nativeSrc":"16191:12:21","nodeType":"YulFunctionCall","src":"16191:12:21"}],"functionName":{"name":"iszero","nativeSrc":"16184:6:21","nodeType":"YulIdentifier","src":"16184:6:21"},"nativeSrc":"16184:20:21","nodeType":"YulFunctionCall","src":"16184:20:21"},"nativeSrc":"16181:46:21","nodeType":"YulIf","src":"16181:46:21"}]},"name":"validator_assert_t_enum$_CachePreset_$964","nativeSrc":"16113:120:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16164:5:21","nodeType":"YulTypedName","src":"16164:5:21","type":""}],"src":"16113:120:21"},{"body":{"nativeSrc":"16299:81:21","nodeType":"YulBlock","src":"16299:81:21","statements":[{"nativeSrc":"16309:16:21","nodeType":"YulAssignment","src":"16309:16:21","value":{"name":"value","nativeSrc":"16320:5:21","nodeType":"YulIdentifier","src":"16320:5:21"},"variableNames":[{"name":"cleaned","nativeSrc":"16309:7:21","nodeType":"YulIdentifier","src":"16309:7:21"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"16368:5:21","nodeType":"YulIdentifier","src":"16368:5:21"}],"functionName":{"name":"validator_assert_t_enum$_CachePreset_$964","nativeSrc":"16326:41:21","nodeType":"YulIdentifier","src":"16326:41:21"},"nativeSrc":"16326:48:21","nodeType":"YulFunctionCall","src":"16326:48:21"},"nativeSrc":"16326:48:21","nodeType":"YulExpressionStatement","src":"16326:48:21"}]},"name":"cleanup_t_enum$_CachePreset_$964","nativeSrc":"16239:141:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16281:5:21","nodeType":"YulTypedName","src":"16281:5:21","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"16291:7:21","nodeType":"YulTypedName","src":"16291:7:21","type":""}],"src":"16239:141:21"},{"body":{"nativeSrc":"16459:68:21","nodeType":"YulBlock","src":"16459:68:21","statements":[{"nativeSrc":"16469:52:21","nodeType":"YulAssignment","src":"16469:52:21","value":{"arguments":[{"name":"value","nativeSrc":"16515:5:21","nodeType":"YulIdentifier","src":"16515:5:21"}],"functionName":{"name":"cleanup_t_enum$_CachePreset_$964","nativeSrc":"16482:32:21","nodeType":"YulIdentifier","src":"16482:32:21"},"nativeSrc":"16482:39:21","nodeType":"YulFunctionCall","src":"16482:39:21"},"variableNames":[{"name":"converted","nativeSrc":"16469:9:21","nodeType":"YulIdentifier","src":"16469:9:21"}]}]},"name":"convert_t_enum$_CachePreset_$964_to_t_uint8","nativeSrc":"16386:141:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16439:5:21","nodeType":"YulTypedName","src":"16439:5:21","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"16449:9:21","nodeType":"YulTypedName","src":"16449:9:21","type":""}],"src":"16386:141:21"},{"body":{"nativeSrc":"16601:79:21","nodeType":"YulBlock","src":"16601:79:21","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"16618:3:21","nodeType":"YulIdentifier","src":"16618:3:21"},{"arguments":[{"name":"value","nativeSrc":"16667:5:21","nodeType":"YulIdentifier","src":"16667:5:21"}],"functionName":{"name":"convert_t_enum$_CachePreset_$964_to_t_uint8","nativeSrc":"16623:43:21","nodeType":"YulIdentifier","src":"16623:43:21"},"nativeSrc":"16623:50:21","nodeType":"YulFunctionCall","src":"16623:50:21"}],"functionName":{"name":"mstore","nativeSrc":"16611:6:21","nodeType":"YulIdentifier","src":"16611:6:21"},"nativeSrc":"16611:63:21","nodeType":"YulFunctionCall","src":"16611:63:21"},"nativeSrc":"16611:63:21","nodeType":"YulExpressionStatement","src":"16611:63:21"}]},"name":"abi_encode_t_enum$_CachePreset_$964_to_t_uint8","nativeSrc":"16533:147:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16589:5:21","nodeType":"YulTypedName","src":"16589:5:21","type":""},{"name":"pos","nativeSrc":"16596:3:21","nodeType":"YulTypedName","src":"16596:3:21","type":""}],"src":"16533:147:21"},{"body":{"nativeSrc":"16745:40:21","nodeType":"YulBlock","src":"16745:40:21","statements":[{"nativeSrc":"16756:22:21","nodeType":"YulAssignment","src":"16756:22:21","value":{"arguments":[{"name":"value","nativeSrc":"16772:5:21","nodeType":"YulIdentifier","src":"16772:5:21"}],"functionName":{"name":"mload","nativeSrc":"16766:5:21","nodeType":"YulIdentifier","src":"16766:5:21"},"nativeSrc":"16766:12:21","nodeType":"YulFunctionCall","src":"16766:12:21"},"variableNames":[{"name":"length","nativeSrc":"16756:6:21","nodeType":"YulIdentifier","src":"16756:6:21"}]}]},"name":"array_length_t_string_memory_ptr","nativeSrc":"16686:99:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"16728:5:21","nodeType":"YulTypedName","src":"16728:5:21","type":""}],"returnVariables":[{"name":"length","nativeSrc":"16738:6:21","nodeType":"YulTypedName","src":"16738:6:21","type":""}],"src":"16686:99:21"},{"body":{"nativeSrc":"16877:73:21","nodeType":"YulBlock","src":"16877:73:21","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"16894:3:21","nodeType":"YulIdentifier","src":"16894:3:21"},{"name":"length","nativeSrc":"16899:6:21","nodeType":"YulIdentifier","src":"16899:6:21"}],"functionName":{"name":"mstore","nativeSrc":"16887:6:21","nodeType":"YulIdentifier","src":"16887:6:21"},"nativeSrc":"16887:19:21","nodeType":"YulFunctionCall","src":"16887:19:21"},"nativeSrc":"16887:19:21","nodeType":"YulExpressionStatement","src":"16887:19:21"},{"nativeSrc":"16915:29:21","nodeType":"YulAssignment","src":"16915:29:21","value":{"arguments":[{"name":"pos","nativeSrc":"16934:3:21","nodeType":"YulIdentifier","src":"16934:3:21"},{"kind":"number","nativeSrc":"16939:4:21","nodeType":"YulLiteral","src":"16939:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"16930:3:21","nodeType":"YulIdentifier","src":"16930:3:21"},"nativeSrc":"16930:14:21","nodeType":"YulFunctionCall","src":"16930:14:21"},"variableNames":[{"name":"updated_pos","nativeSrc":"16915:11:21","nodeType":"YulIdentifier","src":"16915:11:21"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr","nativeSrc":"16791:159:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"16849:3:21","nodeType":"YulTypedName","src":"16849:3:21","type":""},{"name":"length","nativeSrc":"16854:6:21","nodeType":"YulTypedName","src":"16854:6:21","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"16865:11:21","nodeType":"YulTypedName","src":"16865:11:21","type":""}],"src":"16791:159:21"},{"body":{"nativeSrc":"17018:186:21","nodeType":"YulBlock","src":"17018:186:21","statements":[{"nativeSrc":"17029:10:21","nodeType":"YulVariableDeclaration","src":"17029:10:21","value":{"kind":"number","nativeSrc":"17038:1:21","nodeType":"YulLiteral","src":"17038:1:21","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"17033:1:21","nodeType":"YulTypedName","src":"17033:1:21","type":""}]},{"body":{"nativeSrc":"17098:63:21","nodeType":"YulBlock","src":"17098:63:21","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"17123:3:21","nodeType":"YulIdentifier","src":"17123:3:21"},{"name":"i","nativeSrc":"17128:1:21","nodeType":"YulIdentifier","src":"17128:1:21"}],"functionName":{"name":"add","nativeSrc":"17119:3:21","nodeType":"YulIdentifier","src":"17119:3:21"},"nativeSrc":"17119:11:21","nodeType":"YulFunctionCall","src":"17119:11:21"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"17142:3:21","nodeType":"YulIdentifier","src":"17142:3:21"},{"name":"i","nativeSrc":"17147:1:21","nodeType":"YulIdentifier","src":"17147:1:21"}],"functionName":{"name":"add","nativeSrc":"17138:3:21","nodeType":"YulIdentifier","src":"17138:3:21"},"nativeSrc":"17138:11:21","nodeType":"YulFunctionCall","src":"17138:11:21"}],"functionName":{"name":"mload","nativeSrc":"17132:5:21","nodeType":"YulIdentifier","src":"17132:5:21"},"nativeSrc":"17132:18:21","nodeType":"YulFunctionCall","src":"17132:18:21"}],"functionName":{"name":"mstore","nativeSrc":"17112:6:21","nodeType":"YulIdentifier","src":"17112:6:21"},"nativeSrc":"17112:39:21","nodeType":"YulFunctionCall","src":"17112:39:21"},"nativeSrc":"17112:39:21","nodeType":"YulExpressionStatement","src":"17112:39:21"}]},"condition":{"arguments":[{"name":"i","nativeSrc":"17059:1:21","nodeType":"YulIdentifier","src":"17059:1:21"},{"name":"length","nativeSrc":"17062:6:21","nodeType":"YulIdentifier","src":"17062:6:21"}],"functionName":{"name":"lt","nativeSrc":"17056:2:21","nodeType":"YulIdentifier","src":"17056:2:21"},"nativeSrc":"17056:13:21","nodeType":"YulFunctionCall","src":"17056:13:21"},"nativeSrc":"17048:113:21","nodeType":"YulForLoop","post":{"nativeSrc":"17070:19:21","nodeType":"YulBlock","src":"17070:19:21","statements":[{"nativeSrc":"17072:15:21","nodeType":"YulAssignment","src":"17072:15:21","value":{"arguments":[{"name":"i","nativeSrc":"17081:1:21","nodeType":"YulIdentifier","src":"17081:1:21"},{"kind":"number","nativeSrc":"17084:2:21","nodeType":"YulLiteral","src":"17084:2:21","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"17077:3:21","nodeType":"YulIdentifier","src":"17077:3:21"},"nativeSrc":"17077:10:21","nodeType":"YulFunctionCall","src":"17077:10:21"},"variableNames":[{"name":"i","nativeSrc":"17072:1:21","nodeType":"YulIdentifier","src":"17072:1:21"}]}]},"pre":{"nativeSrc":"17052:3:21","nodeType":"YulBlock","src":"17052:3:21","statements":[]},"src":"17048:113:21"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nativeSrc":"17181:3:21","nodeType":"YulIdentifier","src":"17181:3:21"},{"name":"length","nativeSrc":"17186:6:21","nodeType":"YulIdentifier","src":"17186:6:21"}],"functionName":{"name":"add","nativeSrc":"17177:3:21","nodeType":"YulIdentifier","src":"17177:3:21"},"nativeSrc":"17177:16:21","nodeType":"YulFunctionCall","src":"17177:16:21"},{"kind":"number","nativeSrc":"17195:1:21","nodeType":"YulLiteral","src":"17195:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nativeSrc":"17170:6:21","nodeType":"YulIdentifier","src":"17170:6:21"},"nativeSrc":"17170:27:21","nodeType":"YulFunctionCall","src":"17170:27:21"},"nativeSrc":"17170:27:21","nodeType":"YulExpressionStatement","src":"17170:27:21"}]},"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"16956:248:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"17000:3:21","nodeType":"YulTypedName","src":"17000:3:21","type":""},{"name":"dst","nativeSrc":"17005:3:21","nodeType":"YulTypedName","src":"17005:3:21","type":""},{"name":"length","nativeSrc":"17010:6:21","nodeType":"YulTypedName","src":"17010:6:21","type":""}],"src":"16956:248:21"},{"body":{"nativeSrc":"17292:275:21","nodeType":"YulBlock","src":"17292:275:21","statements":[{"nativeSrc":"17302:53:21","nodeType":"YulVariableDeclaration","src":"17302:53:21","value":{"arguments":[{"name":"value","nativeSrc":"17349:5:21","nodeType":"YulIdentifier","src":"17349:5:21"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"17316:32:21","nodeType":"YulIdentifier","src":"17316:32:21"},"nativeSrc":"17316:39:21","nodeType":"YulFunctionCall","src":"17316:39:21"},"variables":[{"name":"length","nativeSrc":"17306:6:21","nodeType":"YulTypedName","src":"17306:6:21","type":""}]},{"nativeSrc":"17364:68:21","nodeType":"YulAssignment","src":"17364:68:21","value":{"arguments":[{"name":"pos","nativeSrc":"17420:3:21","nodeType":"YulIdentifier","src":"17420:3:21"},{"name":"length","nativeSrc":"17425:6:21","nodeType":"YulIdentifier","src":"17425:6:21"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr","nativeSrc":"17371:48:21","nodeType":"YulIdentifier","src":"17371:48:21"},"nativeSrc":"17371:61:21","nodeType":"YulFunctionCall","src":"17371:61:21"},"variableNames":[{"name":"pos","nativeSrc":"17364:3:21","nodeType":"YulIdentifier","src":"17364:3:21"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17480:5:21","nodeType":"YulIdentifier","src":"17480:5:21"},{"kind":"number","nativeSrc":"17487:4:21","nodeType":"YulLiteral","src":"17487:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"17476:3:21","nodeType":"YulIdentifier","src":"17476:3:21"},"nativeSrc":"17476:16:21","nodeType":"YulFunctionCall","src":"17476:16:21"},{"name":"pos","nativeSrc":"17494:3:21","nodeType":"YulIdentifier","src":"17494:3:21"},{"name":"length","nativeSrc":"17499:6:21","nodeType":"YulIdentifier","src":"17499:6:21"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"17441:34:21","nodeType":"YulIdentifier","src":"17441:34:21"},"nativeSrc":"17441:65:21","nodeType":"YulFunctionCall","src":"17441:65:21"},"nativeSrc":"17441:65:21","nodeType":"YulExpressionStatement","src":"17441:65:21"},{"nativeSrc":"17515:46:21","nodeType":"YulAssignment","src":"17515:46:21","value":{"arguments":[{"name":"pos","nativeSrc":"17526:3:21","nodeType":"YulIdentifier","src":"17526:3:21"},{"arguments":[{"name":"length","nativeSrc":"17553:6:21","nodeType":"YulIdentifier","src":"17553:6:21"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"17531:21:21","nodeType":"YulIdentifier","src":"17531:21:21"},"nativeSrc":"17531:29:21","nodeType":"YulFunctionCall","src":"17531:29:21"}],"functionName":{"name":"add","nativeSrc":"17522:3:21","nodeType":"YulIdentifier","src":"17522:3:21"},"nativeSrc":"17522:39:21","nodeType":"YulFunctionCall","src":"17522:39:21"},"variableNames":[{"name":"end","nativeSrc":"17515:3:21","nodeType":"YulIdentifier","src":"17515:3:21"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr","nativeSrc":"17210:357:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17273:5:21","nodeType":"YulTypedName","src":"17273:5:21","type":""},{"name":"pos","nativeSrc":"17280:3:21","nodeType":"YulTypedName","src":"17280:3:21","type":""}],"returnVariables":[{"name":"end","nativeSrc":"17288:3:21","nodeType":"YulTypedName","src":"17288:3:21","type":""}],"src":"17210:357:21"},{"body":{"nativeSrc":"17745:676:21","nodeType":"YulBlock","src":"17745:676:21","statements":[{"nativeSrc":"17755:26:21","nodeType":"YulVariableDeclaration","src":"17755:26:21","value":{"arguments":[{"name":"pos","nativeSrc":"17771:3:21","nodeType":"YulIdentifier","src":"17771:3:21"},{"kind":"number","nativeSrc":"17776:4:21","nodeType":"YulLiteral","src":"17776:4:21","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"17767:3:21","nodeType":"YulIdentifier","src":"17767:3:21"},"nativeSrc":"17767:14:21","nodeType":"YulFunctionCall","src":"17767:14:21"},"variables":[{"name":"tail","nativeSrc":"17759:4:21","nodeType":"YulTypedName","src":"17759:4:21","type":""}]},{"nativeSrc":"17791:167:21","nodeType":"YulBlock","src":"17791:167:21","statements":[{"nativeSrc":"17835:43:21","nodeType":"YulVariableDeclaration","src":"17835:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"17865:5:21","nodeType":"YulIdentifier","src":"17865:5:21"},{"kind":"number","nativeSrc":"17872:4:21","nodeType":"YulLiteral","src":"17872:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"17861:3:21","nodeType":"YulIdentifier","src":"17861:3:21"},"nativeSrc":"17861:16:21","nodeType":"YulFunctionCall","src":"17861:16:21"}],"functionName":{"name":"mload","nativeSrc":"17855:5:21","nodeType":"YulIdentifier","src":"17855:5:21"},"nativeSrc":"17855:23:21","nodeType":"YulFunctionCall","src":"17855:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"17839:12:21","nodeType":"YulTypedName","src":"17839:12:21","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"17919:12:21","nodeType":"YulIdentifier","src":"17919:12:21"},{"arguments":[{"name":"pos","nativeSrc":"17937:3:21","nodeType":"YulIdentifier","src":"17937:3:21"},{"kind":"number","nativeSrc":"17942:4:21","nodeType":"YulLiteral","src":"17942:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"17933:3:21","nodeType":"YulIdentifier","src":"17933:3:21"},"nativeSrc":"17933:14:21","nodeType":"YulFunctionCall","src":"17933:14:21"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool","nativeSrc":"17891:27:21","nodeType":"YulIdentifier","src":"17891:27:21"},"nativeSrc":"17891:57:21","nodeType":"YulFunctionCall","src":"17891:57:21"},"nativeSrc":"17891:57:21","nodeType":"YulExpressionStatement","src":"17891:57:21"}]},{"nativeSrc":"17968:179:21","nodeType":"YulBlock","src":"17968:179:21","statements":[{"nativeSrc":"18005:43:21","nodeType":"YulVariableDeclaration","src":"18005:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18035:5:21","nodeType":"YulIdentifier","src":"18035:5:21"},{"kind":"number","nativeSrc":"18042:4:21","nodeType":"YulLiteral","src":"18042:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18031:3:21","nodeType":"YulIdentifier","src":"18031:3:21"},"nativeSrc":"18031:16:21","nodeType":"YulFunctionCall","src":"18031:16:21"}],"functionName":{"name":"mload","nativeSrc":"18025:5:21","nodeType":"YulIdentifier","src":"18025:5:21"},"nativeSrc":"18025:23:21","nodeType":"YulFunctionCall","src":"18025:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"18009:12:21","nodeType":"YulTypedName","src":"18009:12:21","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"18108:12:21","nodeType":"YulIdentifier","src":"18108:12:21"},{"arguments":[{"name":"pos","nativeSrc":"18126:3:21","nodeType":"YulIdentifier","src":"18126:3:21"},{"kind":"number","nativeSrc":"18131:4:21","nodeType":"YulLiteral","src":"18131:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18122:3:21","nodeType":"YulIdentifier","src":"18122:3:21"},"nativeSrc":"18122:14:21","nodeType":"YulFunctionCall","src":"18122:14:21"}],"functionName":{"name":"abi_encode_t_enum$_CachePreset_$964_to_t_uint8","nativeSrc":"18061:46:21","nodeType":"YulIdentifier","src":"18061:46:21"},"nativeSrc":"18061:76:21","nodeType":"YulFunctionCall","src":"18061:76:21"},"nativeSrc":"18061:76:21","nodeType":"YulExpressionStatement","src":"18061:76:21"}]},{"nativeSrc":"18157:237:21","nodeType":"YulBlock","src":"18157:237:21","statements":[{"nativeSrc":"18194:43:21","nodeType":"YulVariableDeclaration","src":"18194:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"18224:5:21","nodeType":"YulIdentifier","src":"18224:5:21"},{"kind":"number","nativeSrc":"18231:4:21","nodeType":"YulLiteral","src":"18231:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"18220:3:21","nodeType":"YulIdentifier","src":"18220:3:21"},"nativeSrc":"18220:16:21","nodeType":"YulFunctionCall","src":"18220:16:21"}],"functionName":{"name":"mload","nativeSrc":"18214:5:21","nodeType":"YulIdentifier","src":"18214:5:21"},"nativeSrc":"18214:23:21","nodeType":"YulFunctionCall","src":"18214:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"18198:12:21","nodeType":"YulTypedName","src":"18198:12:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"18262:3:21","nodeType":"YulIdentifier","src":"18262:3:21"},{"kind":"number","nativeSrc":"18267:4:21","nodeType":"YulLiteral","src":"18267:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"18258:3:21","nodeType":"YulIdentifier","src":"18258:3:21"},"nativeSrc":"18258:14:21","nodeType":"YulFunctionCall","src":"18258:14:21"},{"arguments":[{"name":"tail","nativeSrc":"18278:4:21","nodeType":"YulIdentifier","src":"18278:4:21"},{"name":"pos","nativeSrc":"18284:3:21","nodeType":"YulIdentifier","src":"18284:3:21"}],"functionName":{"name":"sub","nativeSrc":"18274:3:21","nodeType":"YulIdentifier","src":"18274:3:21"},"nativeSrc":"18274:14:21","nodeType":"YulFunctionCall","src":"18274:14:21"}],"functionName":{"name":"mstore","nativeSrc":"18251:6:21","nodeType":"YulIdentifier","src":"18251:6:21"},"nativeSrc":"18251:38:21","nodeType":"YulFunctionCall","src":"18251:38:21"},"nativeSrc":"18251:38:21","nodeType":"YulExpressionStatement","src":"18251:38:21"},{"nativeSrc":"18302:81:21","nodeType":"YulAssignment","src":"18302:81:21","value":{"arguments":[{"name":"memberValue0","nativeSrc":"18364:12:21","nodeType":"YulIdentifier","src":"18364:12:21"},{"name":"tail","nativeSrc":"18378:4:21","nodeType":"YulIdentifier","src":"18378:4:21"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr","nativeSrc":"18310:53:21","nodeType":"YulIdentifier","src":"18310:53:21"},"nativeSrc":"18310:73:21","nodeType":"YulFunctionCall","src":"18310:73:21"},"variableNames":[{"name":"tail","nativeSrc":"18302:4:21","nodeType":"YulIdentifier","src":"18302:4:21"}]}]},{"nativeSrc":"18404:11:21","nodeType":"YulAssignment","src":"18404:11:21","value":{"name":"tail","nativeSrc":"18411:4:21","nodeType":"YulIdentifier","src":"18411:4:21"},"variableNames":[{"name":"end","nativeSrc":"18404:3:21","nodeType":"YulIdentifier","src":"18404:3:21"}]}]},"name":"abi_encode_t_struct$_CacheControl_$984_memory_ptr_to_t_struct$_CacheControl_$984_memory_ptr","nativeSrc":"17623:798:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"17724:5:21","nodeType":"YulTypedName","src":"17724:5:21","type":""},{"name":"pos","nativeSrc":"17731:3:21","nodeType":"YulTypedName","src":"17731:3:21","type":""}],"returnVariables":[{"name":"end","nativeSrc":"17740:3:21","nodeType":"YulTypedName","src":"17740:3:21","type":""}],"src":"17623:798:21"},{"body":{"nativeSrc":"18501:40:21","nodeType":"YulBlock","src":"18501:40:21","statements":[{"nativeSrc":"18512:22:21","nodeType":"YulAssignment","src":"18512:22:21","value":{"arguments":[{"name":"value","nativeSrc":"18528:5:21","nodeType":"YulIdentifier","src":"18528:5:21"}],"functionName":{"name":"mload","nativeSrc":"18522:5:21","nodeType":"YulIdentifier","src":"18522:5:21"},"nativeSrc":"18522:12:21","nodeType":"YulFunctionCall","src":"18522:12:21"},"variableNames":[{"name":"length","nativeSrc":"18512:6:21","nodeType":"YulIdentifier","src":"18512:6:21"}]}]},"name":"array_length_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"18427:114:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"18484:5:21","nodeType":"YulTypedName","src":"18484:5:21","type":""}],"returnVariables":[{"name":"length","nativeSrc":"18494:6:21","nodeType":"YulTypedName","src":"18494:6:21","type":""}],"src":"18427:114:21"},{"body":{"nativeSrc":"18648:73:21","nodeType":"YulBlock","src":"18648:73:21","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"18665:3:21","nodeType":"YulIdentifier","src":"18665:3:21"},{"name":"length","nativeSrc":"18670:6:21","nodeType":"YulIdentifier","src":"18670:6:21"}],"functionName":{"name":"mstore","nativeSrc":"18658:6:21","nodeType":"YulIdentifier","src":"18658:6:21"},"nativeSrc":"18658:19:21","nodeType":"YulFunctionCall","src":"18658:19:21"},"nativeSrc":"18658:19:21","nodeType":"YulExpressionStatement","src":"18658:19:21"},{"nativeSrc":"18686:29:21","nodeType":"YulAssignment","src":"18686:29:21","value":{"arguments":[{"name":"pos","nativeSrc":"18705:3:21","nodeType":"YulIdentifier","src":"18705:3:21"},{"kind":"number","nativeSrc":"18710:4:21","nodeType":"YulLiteral","src":"18710:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18701:3:21","nodeType":"YulIdentifier","src":"18701:3:21"},"nativeSrc":"18701:14:21","nodeType":"YulFunctionCall","src":"18701:14:21"},"variableNames":[{"name":"updated_pos","nativeSrc":"18686:11:21","nodeType":"YulIdentifier","src":"18686:11:21"}]}]},"name":"array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"18547:174:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"18620:3:21","nodeType":"YulTypedName","src":"18620:3:21","type":""},{"name":"length","nativeSrc":"18625:6:21","nodeType":"YulTypedName","src":"18625:6:21","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"18636:11:21","nodeType":"YulTypedName","src":"18636:11:21","type":""}],"src":"18547:174:21"},{"body":{"nativeSrc":"18799:60:21","nodeType":"YulBlock","src":"18799:60:21","statements":[{"nativeSrc":"18809:11:21","nodeType":"YulAssignment","src":"18809:11:21","value":{"name":"ptr","nativeSrc":"18817:3:21","nodeType":"YulIdentifier","src":"18817:3:21"},"variableNames":[{"name":"data","nativeSrc":"18809:4:21","nodeType":"YulIdentifier","src":"18809:4:21"}]},{"nativeSrc":"18830:22:21","nodeType":"YulAssignment","src":"18830:22:21","value":{"arguments":[{"name":"ptr","nativeSrc":"18842:3:21","nodeType":"YulIdentifier","src":"18842:3:21"},{"kind":"number","nativeSrc":"18847:4:21","nodeType":"YulLiteral","src":"18847:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"18838:3:21","nodeType":"YulIdentifier","src":"18838:3:21"},"nativeSrc":"18838:14:21","nodeType":"YulFunctionCall","src":"18838:14:21"},"variableNames":[{"name":"data","nativeSrc":"18830:4:21","nodeType":"YulIdentifier","src":"18830:4:21"}]}]},"name":"array_dataslot_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"18727:132:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"18786:3:21","nodeType":"YulTypedName","src":"18786:3:21","type":""}],"returnVariables":[{"name":"data","nativeSrc":"18794:4:21","nodeType":"YulTypedName","src":"18794:4:21","type":""}],"src":"18727:132:21"},{"body":{"nativeSrc":"18920:53:21","nodeType":"YulBlock","src":"18920:53:21","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"18937:3:21","nodeType":"YulIdentifier","src":"18937:3:21"},{"arguments":[{"name":"value","nativeSrc":"18960:5:21","nodeType":"YulIdentifier","src":"18960:5:21"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"18942:17:21","nodeType":"YulIdentifier","src":"18942:17:21"},"nativeSrc":"18942:24:21","nodeType":"YulFunctionCall","src":"18942:24:21"}],"functionName":{"name":"mstore","nativeSrc":"18930:6:21","nodeType":"YulIdentifier","src":"18930:6:21"},"nativeSrc":"18930:37:21","nodeType":"YulFunctionCall","src":"18930:37:21"},"nativeSrc":"18930:37:21","nodeType":"YulExpressionStatement","src":"18930:37:21"}]},"name":"abi_encode_t_bytes32_to_t_bytes32","nativeSrc":"18865:108:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"18908:5:21","nodeType":"YulTypedName","src":"18908:5:21","type":""},{"name":"pos","nativeSrc":"18915:3:21","nodeType":"YulTypedName","src":"18915:3:21","type":""}],"src":"18865:108:21"},{"body":{"nativeSrc":"19059:99:21","nodeType":"YulBlock","src":"19059:99:21","statements":[{"expression":{"arguments":[{"name":"value0","nativeSrc":"19103:6:21","nodeType":"YulIdentifier","src":"19103:6:21"},{"name":"pos","nativeSrc":"19111:3:21","nodeType":"YulIdentifier","src":"19111:3:21"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32","nativeSrc":"19069:33:21","nodeType":"YulIdentifier","src":"19069:33:21"},"nativeSrc":"19069:46:21","nodeType":"YulFunctionCall","src":"19069:46:21"},"nativeSrc":"19069:46:21","nodeType":"YulExpressionStatement","src":"19069:46:21"},{"nativeSrc":"19124:28:21","nodeType":"YulAssignment","src":"19124:28:21","value":{"arguments":[{"name":"pos","nativeSrc":"19142:3:21","nodeType":"YulIdentifier","src":"19142:3:21"},{"kind":"number","nativeSrc":"19147:4:21","nodeType":"YulLiteral","src":"19147:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19138:3:21","nodeType":"YulIdentifier","src":"19138:3:21"},"nativeSrc":"19138:14:21","nodeType":"YulFunctionCall","src":"19138:14:21"},"variableNames":[{"name":"updatedPos","nativeSrc":"19124:10:21","nodeType":"YulIdentifier","src":"19124:10:21"}]}]},"name":"abi_encodeUpdatedPos_t_bytes32_to_t_bytes32","nativeSrc":"18979:179:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value0","nativeSrc":"19032:6:21","nodeType":"YulTypedName","src":"19032:6:21","type":""},{"name":"pos","nativeSrc":"19040:3:21","nodeType":"YulTypedName","src":"19040:3:21","type":""}],"returnVariables":[{"name":"updatedPos","nativeSrc":"19048:10:21","nodeType":"YulTypedName","src":"19048:10:21","type":""}],"src":"18979:179:21"},{"body":{"nativeSrc":"19239:38:21","nodeType":"YulBlock","src":"19239:38:21","statements":[{"nativeSrc":"19249:22:21","nodeType":"YulAssignment","src":"19249:22:21","value":{"arguments":[{"name":"ptr","nativeSrc":"19261:3:21","nodeType":"YulIdentifier","src":"19261:3:21"},{"kind":"number","nativeSrc":"19266:4:21","nodeType":"YulLiteral","src":"19266:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"19257:3:21","nodeType":"YulIdentifier","src":"19257:3:21"},"nativeSrc":"19257:14:21","nodeType":"YulFunctionCall","src":"19257:14:21"},"variableNames":[{"name":"next","nativeSrc":"19249:4:21","nodeType":"YulIdentifier","src":"19249:4:21"}]}]},"name":"array_nextElement_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"19164:113:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"19226:3:21","nodeType":"YulTypedName","src":"19226:3:21","type":""}],"returnVariables":[{"name":"next","nativeSrc":"19234:4:21","nodeType":"YulTypedName","src":"19234:4:21","type":""}],"src":"19164:113:21"},{"body":{"nativeSrc":"19427:598:21","nodeType":"YulBlock","src":"19427:598:21","statements":[{"nativeSrc":"19437:68:21","nodeType":"YulVariableDeclaration","src":"19437:68:21","value":{"arguments":[{"name":"value","nativeSrc":"19499:5:21","nodeType":"YulIdentifier","src":"19499:5:21"}],"functionName":{"name":"array_length_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"19451:47:21","nodeType":"YulIdentifier","src":"19451:47:21"},"nativeSrc":"19451:54:21","nodeType":"YulFunctionCall","src":"19451:54:21"},"variables":[{"name":"length","nativeSrc":"19441:6:21","nodeType":"YulTypedName","src":"19441:6:21","type":""}]},{"nativeSrc":"19514:83:21","nodeType":"YulAssignment","src":"19514:83:21","value":{"arguments":[{"name":"pos","nativeSrc":"19585:3:21","nodeType":"YulIdentifier","src":"19585:3:21"},{"name":"length","nativeSrc":"19590:6:21","nodeType":"YulIdentifier","src":"19590:6:21"}],"functionName":{"name":"array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"19521:63:21","nodeType":"YulIdentifier","src":"19521:63:21"},"nativeSrc":"19521:76:21","nodeType":"YulFunctionCall","src":"19521:76:21"},"variableNames":[{"name":"pos","nativeSrc":"19514:3:21","nodeType":"YulIdentifier","src":"19514:3:21"}]},{"nativeSrc":"19606:71:21","nodeType":"YulVariableDeclaration","src":"19606:71:21","value":{"arguments":[{"name":"value","nativeSrc":"19671:5:21","nodeType":"YulIdentifier","src":"19671:5:21"}],"functionName":{"name":"array_dataslot_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"19621:49:21","nodeType":"YulIdentifier","src":"19621:49:21"},"nativeSrc":"19621:56:21","nodeType":"YulFunctionCall","src":"19621:56:21"},"variables":[{"name":"baseRef","nativeSrc":"19610:7:21","nodeType":"YulTypedName","src":"19610:7:21","type":""}]},{"nativeSrc":"19686:21:21","nodeType":"YulVariableDeclaration","src":"19686:21:21","value":{"name":"baseRef","nativeSrc":"19700:7:21","nodeType":"YulIdentifier","src":"19700:7:21"},"variables":[{"name":"srcPtr","nativeSrc":"19690:6:21","nodeType":"YulTypedName","src":"19690:6:21","type":""}]},{"body":{"nativeSrc":"19776:224:21","nodeType":"YulBlock","src":"19776:224:21","statements":[{"nativeSrc":"19790:34:21","nodeType":"YulVariableDeclaration","src":"19790:34:21","value":{"arguments":[{"name":"srcPtr","nativeSrc":"19817:6:21","nodeType":"YulIdentifier","src":"19817:6:21"}],"functionName":{"name":"mload","nativeSrc":"19811:5:21","nodeType":"YulIdentifier","src":"19811:5:21"},"nativeSrc":"19811:13:21","nodeType":"YulFunctionCall","src":"19811:13:21"},"variables":[{"name":"elementValue0","nativeSrc":"19794:13:21","nodeType":"YulTypedName","src":"19794:13:21","type":""}]},{"nativeSrc":"19837:70:21","nodeType":"YulAssignment","src":"19837:70:21","value":{"arguments":[{"name":"elementValue0","nativeSrc":"19888:13:21","nodeType":"YulIdentifier","src":"19888:13:21"},{"name":"pos","nativeSrc":"19903:3:21","nodeType":"YulIdentifier","src":"19903:3:21"}],"functionName":{"name":"abi_encodeUpdatedPos_t_bytes32_to_t_bytes32","nativeSrc":"19844:43:21","nodeType":"YulIdentifier","src":"19844:43:21"},"nativeSrc":"19844:63:21","nodeType":"YulFunctionCall","src":"19844:63:21"},"variableNames":[{"name":"pos","nativeSrc":"19837:3:21","nodeType":"YulIdentifier","src":"19837:3:21"}]},{"nativeSrc":"19920:70:21","nodeType":"YulAssignment","src":"19920:70:21","value":{"arguments":[{"name":"srcPtr","nativeSrc":"19983:6:21","nodeType":"YulIdentifier","src":"19983:6:21"}],"functionName":{"name":"array_nextElement_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"19930:52:21","nodeType":"YulIdentifier","src":"19930:52:21"},"nativeSrc":"19930:60:21","nodeType":"YulFunctionCall","src":"19930:60:21"},"variableNames":[{"name":"srcPtr","nativeSrc":"19920:6:21","nodeType":"YulIdentifier","src":"19920:6:21"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"19738:1:21","nodeType":"YulIdentifier","src":"19738:1:21"},{"name":"length","nativeSrc":"19741:6:21","nodeType":"YulIdentifier","src":"19741:6:21"}],"functionName":{"name":"lt","nativeSrc":"19735:2:21","nodeType":"YulIdentifier","src":"19735:2:21"},"nativeSrc":"19735:13:21","nodeType":"YulFunctionCall","src":"19735:13:21"},"nativeSrc":"19716:284:21","nodeType":"YulForLoop","post":{"nativeSrc":"19749:18:21","nodeType":"YulBlock","src":"19749:18:21","statements":[{"nativeSrc":"19751:14:21","nodeType":"YulAssignment","src":"19751:14:21","value":{"arguments":[{"name":"i","nativeSrc":"19760:1:21","nodeType":"YulIdentifier","src":"19760:1:21"},{"kind":"number","nativeSrc":"19763:1:21","nodeType":"YulLiteral","src":"19763:1:21","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"19756:3:21","nodeType":"YulIdentifier","src":"19756:3:21"},"nativeSrc":"19756:9:21","nodeType":"YulFunctionCall","src":"19756:9:21"},"variableNames":[{"name":"i","nativeSrc":"19751:1:21","nodeType":"YulIdentifier","src":"19751:1:21"}]}]},"pre":{"nativeSrc":"19720:14:21","nodeType":"YulBlock","src":"19720:14:21","statements":[{"nativeSrc":"19722:10:21","nodeType":"YulVariableDeclaration","src":"19722:10:21","value":{"kind":"number","nativeSrc":"19731:1:21","nodeType":"YulLiteral","src":"19731:1:21","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"19726:1:21","nodeType":"YulTypedName","src":"19726:1:21","type":""}]}]},"src":"19716:284:21"},{"nativeSrc":"20009:10:21","nodeType":"YulAssignment","src":"20009:10:21","value":{"name":"pos","nativeSrc":"20016:3:21","nodeType":"YulIdentifier","src":"20016:3:21"},"variableNames":[{"name":"end","nativeSrc":"20009:3:21","nodeType":"YulIdentifier","src":"20009:3:21"}]}]},"name":"abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"19313:712:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"19406:5:21","nodeType":"YulTypedName","src":"19406:5:21","type":""},{"name":"pos","nativeSrc":"19413:3:21","nodeType":"YulTypedName","src":"19413:3:21","type":""}],"returnVariables":[{"name":"end","nativeSrc":"19422:3:21","nodeType":"YulTypedName","src":"19422:3:21","type":""}],"src":"19313:712:21"},{"body":{"nativeSrc":"20088:62:21","nodeType":"YulBlock","src":"20088:62:21","statements":[{"body":{"nativeSrc":"20122:22:21","nodeType":"YulBlock","src":"20122:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x21","nativeSrc":"20124:16:21","nodeType":"YulIdentifier","src":"20124:16:21"},"nativeSrc":"20124:18:21","nodeType":"YulFunctionCall","src":"20124:18:21"},"nativeSrc":"20124:18:21","nodeType":"YulExpressionStatement","src":"20124:18:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"20111:5:21","nodeType":"YulIdentifier","src":"20111:5:21"},{"kind":"number","nativeSrc":"20118:1:21","nodeType":"YulLiteral","src":"20118:1:21","type":"","value":"6"}],"functionName":{"name":"lt","nativeSrc":"20108:2:21","nodeType":"YulIdentifier","src":"20108:2:21"},"nativeSrc":"20108:12:21","nodeType":"YulFunctionCall","src":"20108:12:21"}],"functionName":{"name":"iszero","nativeSrc":"20101:6:21","nodeType":"YulIdentifier","src":"20101:6:21"},"nativeSrc":"20101:20:21","nodeType":"YulFunctionCall","src":"20101:20:21"},"nativeSrc":"20098:46:21","nodeType":"YulIf","src":"20098:46:21"}]},"name":"validator_assert_t_enum$_CORSPreset_$972","nativeSrc":"20031:119:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"20081:5:21","nodeType":"YulTypedName","src":"20081:5:21","type":""}],"src":"20031:119:21"},{"body":{"nativeSrc":"20215:80:21","nodeType":"YulBlock","src":"20215:80:21","statements":[{"nativeSrc":"20225:16:21","nodeType":"YulAssignment","src":"20225:16:21","value":{"name":"value","nativeSrc":"20236:5:21","nodeType":"YulIdentifier","src":"20236:5:21"},"variableNames":[{"name":"cleaned","nativeSrc":"20225:7:21","nodeType":"YulIdentifier","src":"20225:7:21"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"20283:5:21","nodeType":"YulIdentifier","src":"20283:5:21"}],"functionName":{"name":"validator_assert_t_enum$_CORSPreset_$972","nativeSrc":"20242:40:21","nodeType":"YulIdentifier","src":"20242:40:21"},"nativeSrc":"20242:47:21","nodeType":"YulFunctionCall","src":"20242:47:21"},"nativeSrc":"20242:47:21","nodeType":"YulExpressionStatement","src":"20242:47:21"}]},"name":"cleanup_t_enum$_CORSPreset_$972","nativeSrc":"20156:139:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"20197:5:21","nodeType":"YulTypedName","src":"20197:5:21","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"20207:7:21","nodeType":"YulTypedName","src":"20207:7:21","type":""}],"src":"20156:139:21"},{"body":{"nativeSrc":"20373:67:21","nodeType":"YulBlock","src":"20373:67:21","statements":[{"nativeSrc":"20383:51:21","nodeType":"YulAssignment","src":"20383:51:21","value":{"arguments":[{"name":"value","nativeSrc":"20428:5:21","nodeType":"YulIdentifier","src":"20428:5:21"}],"functionName":{"name":"cleanup_t_enum$_CORSPreset_$972","nativeSrc":"20396:31:21","nodeType":"YulIdentifier","src":"20396:31:21"},"nativeSrc":"20396:38:21","nodeType":"YulFunctionCall","src":"20396:38:21"},"variableNames":[{"name":"converted","nativeSrc":"20383:9:21","nodeType":"YulIdentifier","src":"20383:9:21"}]}]},"name":"convert_t_enum$_CORSPreset_$972_to_t_uint8","nativeSrc":"20301:139:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"20353:5:21","nodeType":"YulTypedName","src":"20353:5:21","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"20363:9:21","nodeType":"YulTypedName","src":"20363:9:21","type":""}],"src":"20301:139:21"},{"body":{"nativeSrc":"20513:78:21","nodeType":"YulBlock","src":"20513:78:21","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"20530:3:21","nodeType":"YulIdentifier","src":"20530:3:21"},{"arguments":[{"name":"value","nativeSrc":"20578:5:21","nodeType":"YulIdentifier","src":"20578:5:21"}],"functionName":{"name":"convert_t_enum$_CORSPreset_$972_to_t_uint8","nativeSrc":"20535:42:21","nodeType":"YulIdentifier","src":"20535:42:21"},"nativeSrc":"20535:49:21","nodeType":"YulFunctionCall","src":"20535:49:21"}],"functionName":{"name":"mstore","nativeSrc":"20523:6:21","nodeType":"YulIdentifier","src":"20523:6:21"},"nativeSrc":"20523:62:21","nodeType":"YulFunctionCall","src":"20523:62:21"},"nativeSrc":"20523:62:21","nodeType":"YulExpressionStatement","src":"20523:62:21"}]},"name":"abi_encode_t_enum$_CORSPreset_$972_to_t_uint8","nativeSrc":"20446:145:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"20501:5:21","nodeType":"YulTypedName","src":"20501:5:21","type":""},{"name":"pos","nativeSrc":"20508:3:21","nodeType":"YulTypedName","src":"20508:3:21","type":""}],"src":"20446:145:21"},{"body":{"nativeSrc":"20763:951:21","nodeType":"YulBlock","src":"20763:951:21","statements":[{"nativeSrc":"20773:26:21","nodeType":"YulVariableDeclaration","src":"20773:26:21","value":{"arguments":[{"name":"pos","nativeSrc":"20789:3:21","nodeType":"YulIdentifier","src":"20789:3:21"},{"kind":"number","nativeSrc":"20794:4:21","nodeType":"YulLiteral","src":"20794:4:21","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"20785:3:21","nodeType":"YulIdentifier","src":"20785:3:21"},"nativeSrc":"20785:14:21","nodeType":"YulFunctionCall","src":"20785:14:21"},"variables":[{"name":"tail","nativeSrc":"20777:4:21","nodeType":"YulTypedName","src":"20777:4:21","type":""}]},{"nativeSrc":"20809:165:21","nodeType":"YulBlock","src":"20809:165:21","statements":[{"nativeSrc":"20847:43:21","nodeType":"YulVariableDeclaration","src":"20847:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"20877:5:21","nodeType":"YulIdentifier","src":"20877:5:21"},{"kind":"number","nativeSrc":"20884:4:21","nodeType":"YulLiteral","src":"20884:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"20873:3:21","nodeType":"YulIdentifier","src":"20873:3:21"},"nativeSrc":"20873:16:21","nodeType":"YulFunctionCall","src":"20873:16:21"}],"functionName":{"name":"mload","nativeSrc":"20867:5:21","nodeType":"YulIdentifier","src":"20867:5:21"},"nativeSrc":"20867:23:21","nodeType":"YulFunctionCall","src":"20867:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"20851:12:21","nodeType":"YulTypedName","src":"20851:12:21","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"20935:12:21","nodeType":"YulIdentifier","src":"20935:12:21"},{"arguments":[{"name":"pos","nativeSrc":"20953:3:21","nodeType":"YulIdentifier","src":"20953:3:21"},{"kind":"number","nativeSrc":"20958:4:21","nodeType":"YulLiteral","src":"20958:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"20949:3:21","nodeType":"YulIdentifier","src":"20949:3:21"},"nativeSrc":"20949:14:21","nodeType":"YulFunctionCall","src":"20949:14:21"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16","nativeSrc":"20903:31:21","nodeType":"YulIdentifier","src":"20903:31:21"},"nativeSrc":"20903:61:21","nodeType":"YulFunctionCall","src":"20903:61:21"},"nativeSrc":"20903:61:21","nodeType":"YulExpressionStatement","src":"20903:61:21"}]},{"nativeSrc":"20984:268:21","nodeType":"YulBlock","src":"20984:268:21","statements":[{"nativeSrc":"21022:43:21","nodeType":"YulVariableDeclaration","src":"21022:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"21052:5:21","nodeType":"YulIdentifier","src":"21052:5:21"},{"kind":"number","nativeSrc":"21059:4:21","nodeType":"YulLiteral","src":"21059:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"21048:3:21","nodeType":"YulIdentifier","src":"21048:3:21"},"nativeSrc":"21048:16:21","nodeType":"YulFunctionCall","src":"21048:16:21"}],"functionName":{"name":"mload","nativeSrc":"21042:5:21","nodeType":"YulIdentifier","src":"21042:5:21"},"nativeSrc":"21042:23:21","nodeType":"YulFunctionCall","src":"21042:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"21026:12:21","nodeType":"YulTypedName","src":"21026:12:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"21090:3:21","nodeType":"YulIdentifier","src":"21090:3:21"},{"kind":"number","nativeSrc":"21095:4:21","nodeType":"YulLiteral","src":"21095:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"21086:3:21","nodeType":"YulIdentifier","src":"21086:3:21"},"nativeSrc":"21086:14:21","nodeType":"YulFunctionCall","src":"21086:14:21"},{"arguments":[{"name":"tail","nativeSrc":"21106:4:21","nodeType":"YulIdentifier","src":"21106:4:21"},{"name":"pos","nativeSrc":"21112:3:21","nodeType":"YulIdentifier","src":"21112:3:21"}],"functionName":{"name":"sub","nativeSrc":"21102:3:21","nodeType":"YulIdentifier","src":"21102:3:21"},"nativeSrc":"21102:14:21","nodeType":"YulFunctionCall","src":"21102:14:21"}],"functionName":{"name":"mstore","nativeSrc":"21079:6:21","nodeType":"YulIdentifier","src":"21079:6:21"},"nativeSrc":"21079:38:21","nodeType":"YulFunctionCall","src":"21079:38:21"},"nativeSrc":"21079:38:21","nodeType":"YulExpressionStatement","src":"21079:38:21"},{"nativeSrc":"21130:111:21","nodeType":"YulAssignment","src":"21130:111:21","value":{"arguments":[{"name":"memberValue0","nativeSrc":"21222:12:21","nodeType":"YulIdentifier","src":"21222:12:21"},{"name":"tail","nativeSrc":"21236:4:21","nodeType":"YulIdentifier","src":"21236:4:21"}],"functionName":{"name":"abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"21138:83:21","nodeType":"YulIdentifier","src":"21138:83:21"},"nativeSrc":"21138:103:21","nodeType":"YulFunctionCall","src":"21138:103:21"},"variableNames":[{"name":"tail","nativeSrc":"21130:4:21","nodeType":"YulIdentifier","src":"21130:4:21"}]}]},{"nativeSrc":"21262:178:21","nodeType":"YulBlock","src":"21262:178:21","statements":[{"nativeSrc":"21299:43:21","nodeType":"YulVariableDeclaration","src":"21299:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"21329:5:21","nodeType":"YulIdentifier","src":"21329:5:21"},{"kind":"number","nativeSrc":"21336:4:21","nodeType":"YulLiteral","src":"21336:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"21325:3:21","nodeType":"YulIdentifier","src":"21325:3:21"},"nativeSrc":"21325:16:21","nodeType":"YulFunctionCall","src":"21325:16:21"}],"functionName":{"name":"mload","nativeSrc":"21319:5:21","nodeType":"YulIdentifier","src":"21319:5:21"},"nativeSrc":"21319:23:21","nodeType":"YulFunctionCall","src":"21319:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"21303:12:21","nodeType":"YulTypedName","src":"21303:12:21","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"21401:12:21","nodeType":"YulIdentifier","src":"21401:12:21"},{"arguments":[{"name":"pos","nativeSrc":"21419:3:21","nodeType":"YulIdentifier","src":"21419:3:21"},{"kind":"number","nativeSrc":"21424:4:21","nodeType":"YulLiteral","src":"21424:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"21415:3:21","nodeType":"YulIdentifier","src":"21415:3:21"},"nativeSrc":"21415:14:21","nodeType":"YulFunctionCall","src":"21415:14:21"}],"functionName":{"name":"abi_encode_t_enum$_CORSPreset_$972_to_t_uint8","nativeSrc":"21355:45:21","nodeType":"YulIdentifier","src":"21355:45:21"},"nativeSrc":"21355:75:21","nodeType":"YulFunctionCall","src":"21355:75:21"},"nativeSrc":"21355:75:21","nodeType":"YulExpressionStatement","src":"21355:75:21"}]},{"nativeSrc":"21450:237:21","nodeType":"YulBlock","src":"21450:237:21","statements":[{"nativeSrc":"21487:43:21","nodeType":"YulVariableDeclaration","src":"21487:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"21517:5:21","nodeType":"YulIdentifier","src":"21517:5:21"},{"kind":"number","nativeSrc":"21524:4:21","nodeType":"YulLiteral","src":"21524:4:21","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"21513:3:21","nodeType":"YulIdentifier","src":"21513:3:21"},"nativeSrc":"21513:16:21","nodeType":"YulFunctionCall","src":"21513:16:21"}],"functionName":{"name":"mload","nativeSrc":"21507:5:21","nodeType":"YulIdentifier","src":"21507:5:21"},"nativeSrc":"21507:23:21","nodeType":"YulFunctionCall","src":"21507:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"21491:12:21","nodeType":"YulTypedName","src":"21491:12:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"21555:3:21","nodeType":"YulIdentifier","src":"21555:3:21"},{"kind":"number","nativeSrc":"21560:4:21","nodeType":"YulLiteral","src":"21560:4:21","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"21551:3:21","nodeType":"YulIdentifier","src":"21551:3:21"},"nativeSrc":"21551:14:21","nodeType":"YulFunctionCall","src":"21551:14:21"},{"arguments":[{"name":"tail","nativeSrc":"21571:4:21","nodeType":"YulIdentifier","src":"21571:4:21"},{"name":"pos","nativeSrc":"21577:3:21","nodeType":"YulIdentifier","src":"21577:3:21"}],"functionName":{"name":"sub","nativeSrc":"21567:3:21","nodeType":"YulIdentifier","src":"21567:3:21"},"nativeSrc":"21567:14:21","nodeType":"YulFunctionCall","src":"21567:14:21"}],"functionName":{"name":"mstore","nativeSrc":"21544:6:21","nodeType":"YulIdentifier","src":"21544:6:21"},"nativeSrc":"21544:38:21","nodeType":"YulFunctionCall","src":"21544:38:21"},"nativeSrc":"21544:38:21","nodeType":"YulExpressionStatement","src":"21544:38:21"},{"nativeSrc":"21595:81:21","nodeType":"YulAssignment","src":"21595:81:21","value":{"arguments":[{"name":"memberValue0","nativeSrc":"21657:12:21","nodeType":"YulIdentifier","src":"21657:12:21"},{"name":"tail","nativeSrc":"21671:4:21","nodeType":"YulIdentifier","src":"21671:4:21"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr","nativeSrc":"21603:53:21","nodeType":"YulIdentifier","src":"21603:53:21"},"nativeSrc":"21603:73:21","nodeType":"YulFunctionCall","src":"21603:73:21"},"variableNames":[{"name":"tail","nativeSrc":"21595:4:21","nodeType":"YulIdentifier","src":"21595:4:21"}]}]},{"nativeSrc":"21697:11:21","nodeType":"YulAssignment","src":"21697:11:21","value":{"name":"tail","nativeSrc":"21704:4:21","nodeType":"YulIdentifier","src":"21704:4:21"},"variableNames":[{"name":"end","nativeSrc":"21697:3:21","nodeType":"YulIdentifier","src":"21697:3:21"}]}]},"name":"abi_encode_t_struct$_CORSPolicy_$1000_memory_ptr_to_t_struct$_CORSPolicy_$1000_memory_ptr","nativeSrc":"20643:1071:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"20742:5:21","nodeType":"YulTypedName","src":"20742:5:21","type":""},{"name":"pos","nativeSrc":"20749:3:21","nodeType":"YulTypedName","src":"20749:3:21","type":""}],"returnVariables":[{"name":"end","nativeSrc":"20758:3:21","nodeType":"YulTypedName","src":"20758:3:21","type":""}],"src":"20643:1071:21"},{"body":{"nativeSrc":"21878:484:21","nodeType":"YulBlock","src":"21878:484:21","statements":[{"nativeSrc":"21888:26:21","nodeType":"YulVariableDeclaration","src":"21888:26:21","value":{"arguments":[{"name":"pos","nativeSrc":"21904:3:21","nodeType":"YulIdentifier","src":"21904:3:21"},{"kind":"number","nativeSrc":"21909:4:21","nodeType":"YulLiteral","src":"21909:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"21900:3:21","nodeType":"YulIdentifier","src":"21900:3:21"},"nativeSrc":"21900:14:21","nodeType":"YulFunctionCall","src":"21900:14:21"},"variables":[{"name":"tail","nativeSrc":"21892:4:21","nodeType":"YulTypedName","src":"21892:4:21","type":""}]},{"nativeSrc":"21924:162:21","nodeType":"YulBlock","src":"21924:162:21","statements":[{"nativeSrc":"21959:43:21","nodeType":"YulVariableDeclaration","src":"21959:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"21989:5:21","nodeType":"YulIdentifier","src":"21989:5:21"},{"kind":"number","nativeSrc":"21996:4:21","nodeType":"YulLiteral","src":"21996:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"21985:3:21","nodeType":"YulIdentifier","src":"21985:3:21"},"nativeSrc":"21985:16:21","nodeType":"YulFunctionCall","src":"21985:16:21"}],"functionName":{"name":"mload","nativeSrc":"21979:5:21","nodeType":"YulIdentifier","src":"21979:5:21"},"nativeSrc":"21979:23:21","nodeType":"YulFunctionCall","src":"21979:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"21963:12:21","nodeType":"YulTypedName","src":"21963:12:21","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"22047:12:21","nodeType":"YulIdentifier","src":"22047:12:21"},{"arguments":[{"name":"pos","nativeSrc":"22065:3:21","nodeType":"YulIdentifier","src":"22065:3:21"},{"kind":"number","nativeSrc":"22070:4:21","nodeType":"YulLiteral","src":"22070:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"22061:3:21","nodeType":"YulIdentifier","src":"22061:3:21"},"nativeSrc":"22061:14:21","nodeType":"YulFunctionCall","src":"22061:14:21"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16","nativeSrc":"22015:31:21","nodeType":"YulIdentifier","src":"22015:31:21"},"nativeSrc":"22015:61:21","nodeType":"YulFunctionCall","src":"22015:61:21"},"nativeSrc":"22015:61:21","nodeType":"YulExpressionStatement","src":"22015:61:21"}]},{"nativeSrc":"22096:239:21","nodeType":"YulBlock","src":"22096:239:21","statements":[{"nativeSrc":"22135:43:21","nodeType":"YulVariableDeclaration","src":"22135:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"22165:5:21","nodeType":"YulIdentifier","src":"22165:5:21"},{"kind":"number","nativeSrc":"22172:4:21","nodeType":"YulLiteral","src":"22172:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22161:3:21","nodeType":"YulIdentifier","src":"22161:3:21"},"nativeSrc":"22161:16:21","nodeType":"YulFunctionCall","src":"22161:16:21"}],"functionName":{"name":"mload","nativeSrc":"22155:5:21","nodeType":"YulIdentifier","src":"22155:5:21"},"nativeSrc":"22155:23:21","nodeType":"YulFunctionCall","src":"22155:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"22139:12:21","nodeType":"YulTypedName","src":"22139:12:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"22203:3:21","nodeType":"YulIdentifier","src":"22203:3:21"},{"kind":"number","nativeSrc":"22208:4:21","nodeType":"YulLiteral","src":"22208:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22199:3:21","nodeType":"YulIdentifier","src":"22199:3:21"},"nativeSrc":"22199:14:21","nodeType":"YulFunctionCall","src":"22199:14:21"},{"arguments":[{"name":"tail","nativeSrc":"22219:4:21","nodeType":"YulIdentifier","src":"22219:4:21"},{"name":"pos","nativeSrc":"22225:3:21","nodeType":"YulIdentifier","src":"22225:3:21"}],"functionName":{"name":"sub","nativeSrc":"22215:3:21","nodeType":"YulIdentifier","src":"22215:3:21"},"nativeSrc":"22215:14:21","nodeType":"YulFunctionCall","src":"22215:14:21"}],"functionName":{"name":"mstore","nativeSrc":"22192:6:21","nodeType":"YulIdentifier","src":"22192:6:21"},"nativeSrc":"22192:38:21","nodeType":"YulFunctionCall","src":"22192:38:21"},"nativeSrc":"22192:38:21","nodeType":"YulExpressionStatement","src":"22192:38:21"},{"nativeSrc":"22243:81:21","nodeType":"YulAssignment","src":"22243:81:21","value":{"arguments":[{"name":"memberValue0","nativeSrc":"22305:12:21","nodeType":"YulIdentifier","src":"22305:12:21"},{"name":"tail","nativeSrc":"22319:4:21","nodeType":"YulIdentifier","src":"22319:4:21"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr","nativeSrc":"22251:53:21","nodeType":"YulIdentifier","src":"22251:53:21"},"nativeSrc":"22251:73:21","nodeType":"YulFunctionCall","src":"22251:73:21"},"variableNames":[{"name":"tail","nativeSrc":"22243:4:21","nodeType":"YulIdentifier","src":"22243:4:21"}]}]},{"nativeSrc":"22345:11:21","nodeType":"YulAssignment","src":"22345:11:21","value":{"name":"tail","nativeSrc":"22352:4:21","nodeType":"YulIdentifier","src":"22352:4:21"},"variableNames":[{"name":"end","nativeSrc":"22345:3:21","nodeType":"YulIdentifier","src":"22345:3:21"}]}]},"name":"abi_encode_t_struct$_Redirect_$1008_memory_ptr_to_t_struct$_Redirect_$1008_memory_ptr","nativeSrc":"21762:600:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"21857:5:21","nodeType":"YulTypedName","src":"21857:5:21","type":""},{"name":"pos","nativeSrc":"21864:3:21","nodeType":"YulTypedName","src":"21864:3:21","type":""}],"returnVariables":[{"name":"end","nativeSrc":"21873:3:21","nodeType":"YulTypedName","src":"21873:3:21","type":""}],"src":"21762:600:21"},{"body":{"nativeSrc":"22534:909:21","nodeType":"YulBlock","src":"22534:909:21","statements":[{"nativeSrc":"22544:26:21","nodeType":"YulVariableDeclaration","src":"22544:26:21","value":{"arguments":[{"name":"pos","nativeSrc":"22560:3:21","nodeType":"YulIdentifier","src":"22560:3:21"},{"kind":"number","nativeSrc":"22565:4:21","nodeType":"YulLiteral","src":"22565:4:21","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"22556:3:21","nodeType":"YulIdentifier","src":"22556:3:21"},"nativeSrc":"22556:14:21","nodeType":"YulFunctionCall","src":"22556:14:21"},"variables":[{"name":"tail","nativeSrc":"22548:4:21","nodeType":"YulTypedName","src":"22548:4:21","type":""}]},{"nativeSrc":"22580:274:21","nodeType":"YulBlock","src":"22580:274:21","statements":[{"nativeSrc":"22616:43:21","nodeType":"YulVariableDeclaration","src":"22616:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"22646:5:21","nodeType":"YulIdentifier","src":"22646:5:21"},{"kind":"number","nativeSrc":"22653:4:21","nodeType":"YulLiteral","src":"22653:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"22642:3:21","nodeType":"YulIdentifier","src":"22642:3:21"},"nativeSrc":"22642:16:21","nodeType":"YulFunctionCall","src":"22642:16:21"}],"functionName":{"name":"mload","nativeSrc":"22636:5:21","nodeType":"YulIdentifier","src":"22636:5:21"},"nativeSrc":"22636:23:21","nodeType":"YulFunctionCall","src":"22636:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"22620:12:21","nodeType":"YulTypedName","src":"22620:12:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"22684:3:21","nodeType":"YulIdentifier","src":"22684:3:21"},{"kind":"number","nativeSrc":"22689:4:21","nodeType":"YulLiteral","src":"22689:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"22680:3:21","nodeType":"YulIdentifier","src":"22680:3:21"},"nativeSrc":"22680:14:21","nodeType":"YulFunctionCall","src":"22680:14:21"},{"arguments":[{"name":"tail","nativeSrc":"22700:4:21","nodeType":"YulIdentifier","src":"22700:4:21"},{"name":"pos","nativeSrc":"22706:3:21","nodeType":"YulIdentifier","src":"22706:3:21"}],"functionName":{"name":"sub","nativeSrc":"22696:3:21","nodeType":"YulIdentifier","src":"22696:3:21"},"nativeSrc":"22696:14:21","nodeType":"YulFunctionCall","src":"22696:14:21"}],"functionName":{"name":"mstore","nativeSrc":"22673:6:21","nodeType":"YulIdentifier","src":"22673:6:21"},"nativeSrc":"22673:38:21","nodeType":"YulFunctionCall","src":"22673:38:21"},"nativeSrc":"22673:38:21","nodeType":"YulExpressionStatement","src":"22673:38:21"},{"nativeSrc":"22724:119:21","nodeType":"YulAssignment","src":"22724:119:21","value":{"arguments":[{"name":"memberValue0","nativeSrc":"22824:12:21","nodeType":"YulIdentifier","src":"22824:12:21"},{"name":"tail","nativeSrc":"22838:4:21","nodeType":"YulIdentifier","src":"22838:4:21"}],"functionName":{"name":"abi_encode_t_struct$_CacheControl_$984_memory_ptr_to_t_struct$_CacheControl_$984_memory_ptr","nativeSrc":"22732:91:21","nodeType":"YulIdentifier","src":"22732:91:21"},"nativeSrc":"22732:111:21","nodeType":"YulFunctionCall","src":"22732:111:21"},"variableNames":[{"name":"tail","nativeSrc":"22724:4:21","nodeType":"YulIdentifier","src":"22724:4:21"}]}]},{"nativeSrc":"22864:271:21","nodeType":"YulBlock","src":"22864:271:21","statements":[{"nativeSrc":"22899:43:21","nodeType":"YulVariableDeclaration","src":"22899:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"22929:5:21","nodeType":"YulIdentifier","src":"22929:5:21"},{"kind":"number","nativeSrc":"22936:4:21","nodeType":"YulLiteral","src":"22936:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22925:3:21","nodeType":"YulIdentifier","src":"22925:3:21"},"nativeSrc":"22925:16:21","nodeType":"YulFunctionCall","src":"22925:16:21"}],"functionName":{"name":"mload","nativeSrc":"22919:5:21","nodeType":"YulIdentifier","src":"22919:5:21"},"nativeSrc":"22919:23:21","nodeType":"YulFunctionCall","src":"22919:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"22903:12:21","nodeType":"YulTypedName","src":"22903:12:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"22967:3:21","nodeType":"YulIdentifier","src":"22967:3:21"},{"kind":"number","nativeSrc":"22972:4:21","nodeType":"YulLiteral","src":"22972:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"22963:3:21","nodeType":"YulIdentifier","src":"22963:3:21"},"nativeSrc":"22963:14:21","nodeType":"YulFunctionCall","src":"22963:14:21"},{"arguments":[{"name":"tail","nativeSrc":"22983:4:21","nodeType":"YulIdentifier","src":"22983:4:21"},{"name":"pos","nativeSrc":"22989:3:21","nodeType":"YulIdentifier","src":"22989:3:21"}],"functionName":{"name":"sub","nativeSrc":"22979:3:21","nodeType":"YulIdentifier","src":"22979:3:21"},"nativeSrc":"22979:14:21","nodeType":"YulFunctionCall","src":"22979:14:21"}],"functionName":{"name":"mstore","nativeSrc":"22956:6:21","nodeType":"YulIdentifier","src":"22956:6:21"},"nativeSrc":"22956:38:21","nodeType":"YulFunctionCall","src":"22956:38:21"},"nativeSrc":"22956:38:21","nodeType":"YulExpressionStatement","src":"22956:38:21"},{"nativeSrc":"23007:117:21","nodeType":"YulAssignment","src":"23007:117:21","value":{"arguments":[{"name":"memberValue0","nativeSrc":"23105:12:21","nodeType":"YulIdentifier","src":"23105:12:21"},{"name":"tail","nativeSrc":"23119:4:21","nodeType":"YulIdentifier","src":"23119:4:21"}],"functionName":{"name":"abi_encode_t_struct$_CORSPolicy_$1000_memory_ptr_to_t_struct$_CORSPolicy_$1000_memory_ptr","nativeSrc":"23015:89:21","nodeType":"YulIdentifier","src":"23015:89:21"},"nativeSrc":"23015:109:21","nodeType":"YulFunctionCall","src":"23015:109:21"},"variableNames":[{"name":"tail","nativeSrc":"23007:4:21","nodeType":"YulIdentifier","src":"23007:4:21"}]}]},{"nativeSrc":"23145:271:21","nodeType":"YulBlock","src":"23145:271:21","statements":[{"nativeSrc":"23184:43:21","nodeType":"YulVariableDeclaration","src":"23184:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"23214:5:21","nodeType":"YulIdentifier","src":"23214:5:21"},{"kind":"number","nativeSrc":"23221:4:21","nodeType":"YulLiteral","src":"23221:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"23210:3:21","nodeType":"YulIdentifier","src":"23210:3:21"},"nativeSrc":"23210:16:21","nodeType":"YulFunctionCall","src":"23210:16:21"}],"functionName":{"name":"mload","nativeSrc":"23204:5:21","nodeType":"YulIdentifier","src":"23204:5:21"},"nativeSrc":"23204:23:21","nodeType":"YulFunctionCall","src":"23204:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"23188:12:21","nodeType":"YulTypedName","src":"23188:12:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"23252:3:21","nodeType":"YulIdentifier","src":"23252:3:21"},{"kind":"number","nativeSrc":"23257:4:21","nodeType":"YulLiteral","src":"23257:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"23248:3:21","nodeType":"YulIdentifier","src":"23248:3:21"},"nativeSrc":"23248:14:21","nodeType":"YulFunctionCall","src":"23248:14:21"},{"arguments":[{"name":"tail","nativeSrc":"23268:4:21","nodeType":"YulIdentifier","src":"23268:4:21"},{"name":"pos","nativeSrc":"23274:3:21","nodeType":"YulIdentifier","src":"23274:3:21"}],"functionName":{"name":"sub","nativeSrc":"23264:3:21","nodeType":"YulIdentifier","src":"23264:3:21"},"nativeSrc":"23264:14:21","nodeType":"YulFunctionCall","src":"23264:14:21"}],"functionName":{"name":"mstore","nativeSrc":"23241:6:21","nodeType":"YulIdentifier","src":"23241:6:21"},"nativeSrc":"23241:38:21","nodeType":"YulFunctionCall","src":"23241:38:21"},"nativeSrc":"23241:38:21","nodeType":"YulExpressionStatement","src":"23241:38:21"},{"nativeSrc":"23292:113:21","nodeType":"YulAssignment","src":"23292:113:21","value":{"arguments":[{"name":"memberValue0","nativeSrc":"23386:12:21","nodeType":"YulIdentifier","src":"23386:12:21"},{"name":"tail","nativeSrc":"23400:4:21","nodeType":"YulIdentifier","src":"23400:4:21"}],"functionName":{"name":"abi_encode_t_struct$_Redirect_$1008_memory_ptr_to_t_struct$_Redirect_$1008_memory_ptr","nativeSrc":"23300:85:21","nodeType":"YulIdentifier","src":"23300:85:21"},"nativeSrc":"23300:105:21","nodeType":"YulFunctionCall","src":"23300:105:21"},"variableNames":[{"name":"tail","nativeSrc":"23292:4:21","nodeType":"YulIdentifier","src":"23292:4:21"}]}]},{"nativeSrc":"23426:11:21","nodeType":"YulAssignment","src":"23426:11:21","value":{"name":"tail","nativeSrc":"23433:4:21","nodeType":"YulIdentifier","src":"23433:4:21"},"variableNames":[{"name":"end","nativeSrc":"23426:3:21","nodeType":"YulIdentifier","src":"23426:3:21"}]}]},"name":"abi_encode_t_struct$_HeaderInfo_$1022_memory_ptr_to_t_struct$_HeaderInfo_$1022_memory_ptr","nativeSrc":"22414:1029:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"22513:5:21","nodeType":"YulTypedName","src":"22513:5:21","type":""},{"name":"pos","nativeSrc":"22520:3:21","nodeType":"YulTypedName","src":"22520:3:21","type":""}],"returnVariables":[{"name":"end","nativeSrc":"22529:3:21","nodeType":"YulTypedName","src":"22529:3:21","type":""}],"src":"22414:1029:21"},{"body":{"nativeSrc":"23493:105:21","nodeType":"YulBlock","src":"23493:105:21","statements":[{"nativeSrc":"23503:89:21","nodeType":"YulAssignment","src":"23503:89:21","value":{"arguments":[{"name":"value","nativeSrc":"23518:5:21","nodeType":"YulIdentifier","src":"23518:5:21"},{"kind":"number","nativeSrc":"23525:66:21","nodeType":"YulLiteral","src":"23525:66:21","type":"","value":"0xffff000000000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"and","nativeSrc":"23514:3:21","nodeType":"YulIdentifier","src":"23514:3:21"},"nativeSrc":"23514:78:21","nodeType":"YulFunctionCall","src":"23514:78:21"},"variableNames":[{"name":"cleaned","nativeSrc":"23503:7:21","nodeType":"YulIdentifier","src":"23503:7:21"}]}]},"name":"cleanup_t_bytes2","nativeSrc":"23449:149:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"23475:5:21","nodeType":"YulTypedName","src":"23475:5:21","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"23485:7:21","nodeType":"YulTypedName","src":"23485:7:21","type":""}],"src":"23449:149:21"},{"body":{"nativeSrc":"23657:52:21","nodeType":"YulBlock","src":"23657:52:21","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"23674:3:21","nodeType":"YulIdentifier","src":"23674:3:21"},{"arguments":[{"name":"value","nativeSrc":"23696:5:21","nodeType":"YulIdentifier","src":"23696:5:21"}],"functionName":{"name":"cleanup_t_bytes2","nativeSrc":"23679:16:21","nodeType":"YulIdentifier","src":"23679:16:21"},"nativeSrc":"23679:23:21","nodeType":"YulFunctionCall","src":"23679:23:21"}],"functionName":{"name":"mstore","nativeSrc":"23667:6:21","nodeType":"YulIdentifier","src":"23667:6:21"},"nativeSrc":"23667:36:21","nodeType":"YulFunctionCall","src":"23667:36:21"},"nativeSrc":"23667:36:21","nodeType":"YulExpressionStatement","src":"23667:36:21"}]},"name":"abi_encode_t_bytes2_to_t_bytes2","nativeSrc":"23604:105:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"23645:5:21","nodeType":"YulTypedName","src":"23645:5:21","type":""},{"name":"pos","nativeSrc":"23652:3:21","nodeType":"YulTypedName","src":"23652:3:21","type":""}],"src":"23604:105:21"},{"body":{"nativeSrc":"23905:746:21","nodeType":"YulBlock","src":"23905:746:21","statements":[{"nativeSrc":"23915:26:21","nodeType":"YulVariableDeclaration","src":"23915:26:21","value":{"arguments":[{"name":"pos","nativeSrc":"23931:3:21","nodeType":"YulIdentifier","src":"23931:3:21"},{"kind":"number","nativeSrc":"23936:4:21","nodeType":"YulLiteral","src":"23936:4:21","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"23927:3:21","nodeType":"YulIdentifier","src":"23927:3:21"},"nativeSrc":"23927:14:21","nodeType":"YulFunctionCall","src":"23927:14:21"},"variables":[{"name":"tail","nativeSrc":"23919:4:21","nodeType":"YulTypedName","src":"23919:4:21","type":""}]},{"nativeSrc":"23951:166:21","nodeType":"YulBlock","src":"23951:166:21","statements":[{"nativeSrc":"23990:43:21","nodeType":"YulVariableDeclaration","src":"23990:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"24020:5:21","nodeType":"YulIdentifier","src":"24020:5:21"},{"kind":"number","nativeSrc":"24027:4:21","nodeType":"YulLiteral","src":"24027:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"24016:3:21","nodeType":"YulIdentifier","src":"24016:3:21"},"nativeSrc":"24016:16:21","nodeType":"YulFunctionCall","src":"24016:16:21"}],"functionName":{"name":"mload","nativeSrc":"24010:5:21","nodeType":"YulIdentifier","src":"24010:5:21"},"nativeSrc":"24010:23:21","nodeType":"YulFunctionCall","src":"24010:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"23994:12:21","nodeType":"YulTypedName","src":"23994:12:21","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"24078:12:21","nodeType":"YulIdentifier","src":"24078:12:21"},{"arguments":[{"name":"pos","nativeSrc":"24096:3:21","nodeType":"YulIdentifier","src":"24096:3:21"},{"kind":"number","nativeSrc":"24101:4:21","nodeType":"YulLiteral","src":"24101:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"24092:3:21","nodeType":"YulIdentifier","src":"24092:3:21"},"nativeSrc":"24092:14:21","nodeType":"YulFunctionCall","src":"24092:14:21"}],"functionName":{"name":"abi_encode_t_bytes2_to_t_bytes2","nativeSrc":"24046:31:21","nodeType":"YulIdentifier","src":"24046:31:21"},"nativeSrc":"24046:61:21","nodeType":"YulFunctionCall","src":"24046:61:21"},"nativeSrc":"24046:61:21","nodeType":"YulExpressionStatement","src":"24046:61:21"}]},{"nativeSrc":"24127:165:21","nodeType":"YulBlock","src":"24127:165:21","statements":[{"nativeSrc":"24165:43:21","nodeType":"YulVariableDeclaration","src":"24165:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"24195:5:21","nodeType":"YulIdentifier","src":"24195:5:21"},{"kind":"number","nativeSrc":"24202:4:21","nodeType":"YulLiteral","src":"24202:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"24191:3:21","nodeType":"YulIdentifier","src":"24191:3:21"},"nativeSrc":"24191:16:21","nodeType":"YulFunctionCall","src":"24191:16:21"}],"functionName":{"name":"mload","nativeSrc":"24185:5:21","nodeType":"YulIdentifier","src":"24185:5:21"},"nativeSrc":"24185:23:21","nodeType":"YulFunctionCall","src":"24185:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"24169:12:21","nodeType":"YulTypedName","src":"24169:12:21","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"24253:12:21","nodeType":"YulIdentifier","src":"24253:12:21"},{"arguments":[{"name":"pos","nativeSrc":"24271:3:21","nodeType":"YulIdentifier","src":"24271:3:21"},{"kind":"number","nativeSrc":"24276:4:21","nodeType":"YulLiteral","src":"24276:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"24267:3:21","nodeType":"YulIdentifier","src":"24267:3:21"},"nativeSrc":"24267:14:21","nodeType":"YulFunctionCall","src":"24267:14:21"}],"functionName":{"name":"abi_encode_t_bytes2_to_t_bytes2","nativeSrc":"24221:31:21","nodeType":"YulIdentifier","src":"24221:31:21"},"nativeSrc":"24221:61:21","nodeType":"YulFunctionCall","src":"24221:61:21"},"nativeSrc":"24221:61:21","nodeType":"YulExpressionStatement","src":"24221:61:21"}]},{"nativeSrc":"24302:166:21","nodeType":"YulBlock","src":"24302:166:21","statements":[{"nativeSrc":"24341:43:21","nodeType":"YulVariableDeclaration","src":"24341:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"24371:5:21","nodeType":"YulIdentifier","src":"24371:5:21"},{"kind":"number","nativeSrc":"24378:4:21","nodeType":"YulLiteral","src":"24378:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"24367:3:21","nodeType":"YulIdentifier","src":"24367:3:21"},"nativeSrc":"24367:16:21","nodeType":"YulFunctionCall","src":"24367:16:21"}],"functionName":{"name":"mload","nativeSrc":"24361:5:21","nodeType":"YulIdentifier","src":"24361:5:21"},"nativeSrc":"24361:23:21","nodeType":"YulFunctionCall","src":"24361:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"24345:12:21","nodeType":"YulTypedName","src":"24345:12:21","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"24429:12:21","nodeType":"YulIdentifier","src":"24429:12:21"},{"arguments":[{"name":"pos","nativeSrc":"24447:3:21","nodeType":"YulIdentifier","src":"24447:3:21"},{"kind":"number","nativeSrc":"24452:4:21","nodeType":"YulLiteral","src":"24452:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"24443:3:21","nodeType":"YulIdentifier","src":"24443:3:21"},"nativeSrc":"24443:14:21","nodeType":"YulFunctionCall","src":"24443:14:21"}],"functionName":{"name":"abi_encode_t_bytes2_to_t_bytes2","nativeSrc":"24397:31:21","nodeType":"YulIdentifier","src":"24397:31:21"},"nativeSrc":"24397:61:21","nodeType":"YulFunctionCall","src":"24397:61:21"},"nativeSrc":"24397:61:21","nodeType":"YulExpressionStatement","src":"24397:61:21"}]},{"nativeSrc":"24478:166:21","nodeType":"YulBlock","src":"24478:166:21","statements":[{"nativeSrc":"24517:43:21","nodeType":"YulVariableDeclaration","src":"24517:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"24547:5:21","nodeType":"YulIdentifier","src":"24547:5:21"},{"kind":"number","nativeSrc":"24554:4:21","nodeType":"YulLiteral","src":"24554:4:21","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"24543:3:21","nodeType":"YulIdentifier","src":"24543:3:21"},"nativeSrc":"24543:16:21","nodeType":"YulFunctionCall","src":"24543:16:21"}],"functionName":{"name":"mload","nativeSrc":"24537:5:21","nodeType":"YulIdentifier","src":"24537:5:21"},"nativeSrc":"24537:23:21","nodeType":"YulFunctionCall","src":"24537:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"24521:12:21","nodeType":"YulTypedName","src":"24521:12:21","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"24605:12:21","nodeType":"YulIdentifier","src":"24605:12:21"},{"arguments":[{"name":"pos","nativeSrc":"24623:3:21","nodeType":"YulIdentifier","src":"24623:3:21"},{"kind":"number","nativeSrc":"24628:4:21","nodeType":"YulLiteral","src":"24628:4:21","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"24619:3:21","nodeType":"YulIdentifier","src":"24619:3:21"},"nativeSrc":"24619:14:21","nodeType":"YulFunctionCall","src":"24619:14:21"}],"functionName":{"name":"abi_encode_t_bytes2_to_t_bytes2","nativeSrc":"24573:31:21","nodeType":"YulIdentifier","src":"24573:31:21"},"nativeSrc":"24573:61:21","nodeType":"YulFunctionCall","src":"24573:61:21"},"nativeSrc":"24573:61:21","nodeType":"YulExpressionStatement","src":"24573:61:21"}]}]},"name":"abi_encode_t_struct$_ResourceProperties_$1035_memory_ptr_to_t_struct$_ResourceProperties_$1035_memory_ptr","nativeSrc":"23777:874:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"23892:5:21","nodeType":"YulTypedName","src":"23892:5:21","type":""},{"name":"pos","nativeSrc":"23899:3:21","nodeType":"YulTypedName","src":"23899:3:21","type":""}],"src":"23777:874:21"},{"body":{"nativeSrc":"24712:53:21","nodeType":"YulBlock","src":"24712:53:21","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"24729:3:21","nodeType":"YulIdentifier","src":"24729:3:21"},{"arguments":[{"name":"value","nativeSrc":"24752:5:21","nodeType":"YulIdentifier","src":"24752:5:21"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"24734:17:21","nodeType":"YulIdentifier","src":"24734:17:21"},"nativeSrc":"24734:24:21","nodeType":"YulFunctionCall","src":"24734:24:21"}],"functionName":{"name":"mstore","nativeSrc":"24722:6:21","nodeType":"YulIdentifier","src":"24722:6:21"},"nativeSrc":"24722:37:21","nodeType":"YulFunctionCall","src":"24722:37:21"},"nativeSrc":"24722:37:21","nodeType":"YulExpressionStatement","src":"24722:37:21"}]},"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"24657:108:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"24700:5:21","nodeType":"YulTypedName","src":"24700:5:21","type":""},{"name":"pos","nativeSrc":"24707:3:21","nodeType":"YulTypedName","src":"24707:3:21","type":""}],"src":"24657:108:21"},{"body":{"nativeSrc":"24953:1006:21","nodeType":"YulBlock","src":"24953:1006:21","statements":[{"nativeSrc":"24963:28:21","nodeType":"YulVariableDeclaration","src":"24963:28:21","value":{"arguments":[{"name":"pos","nativeSrc":"24979:3:21","nodeType":"YulIdentifier","src":"24979:3:21"},{"kind":"number","nativeSrc":"24984:6:21","nodeType":"YulLiteral","src":"24984:6:21","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"24975:3:21","nodeType":"YulIdentifier","src":"24975:3:21"},"nativeSrc":"24975:16:21","nodeType":"YulFunctionCall","src":"24975:16:21"},"variables":[{"name":"tail","nativeSrc":"24967:4:21","nodeType":"YulTypedName","src":"24967:4:21","type":""}]},{"nativeSrc":"25001:242:21","nodeType":"YulBlock","src":"25001:242:21","statements":[{"nativeSrc":"25042:43:21","nodeType":"YulVariableDeclaration","src":"25042:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"25072:5:21","nodeType":"YulIdentifier","src":"25072:5:21"},{"kind":"number","nativeSrc":"25079:4:21","nodeType":"YulLiteral","src":"25079:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"25068:3:21","nodeType":"YulIdentifier","src":"25068:3:21"},"nativeSrc":"25068:16:21","nodeType":"YulFunctionCall","src":"25068:16:21"}],"functionName":{"name":"mload","nativeSrc":"25062:5:21","nodeType":"YulIdentifier","src":"25062:5:21"},"nativeSrc":"25062:23:21","nodeType":"YulFunctionCall","src":"25062:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"25046:12:21","nodeType":"YulTypedName","src":"25046:12:21","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"25204:12:21","nodeType":"YulIdentifier","src":"25204:12:21"},{"arguments":[{"name":"pos","nativeSrc":"25222:3:21","nodeType":"YulIdentifier","src":"25222:3:21"},{"kind":"number","nativeSrc":"25227:4:21","nodeType":"YulLiteral","src":"25227:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"25218:3:21","nodeType":"YulIdentifier","src":"25218:3:21"},"nativeSrc":"25218:14:21","nodeType":"YulFunctionCall","src":"25218:14:21"}],"functionName":{"name":"abi_encode_t_struct$_ResourceProperties_$1035_memory_ptr_to_t_struct$_ResourceProperties_$1035_memory_ptr","nativeSrc":"25098:105:21","nodeType":"YulIdentifier","src":"25098:105:21"},"nativeSrc":"25098:135:21","nodeType":"YulFunctionCall","src":"25098:135:21"},"nativeSrc":"25098:135:21","nodeType":"YulExpressionStatement","src":"25098:135:21"}]},{"nativeSrc":"25253:164:21","nodeType":"YulBlock","src":"25253:164:21","statements":[{"nativeSrc":"25288:43:21","nodeType":"YulVariableDeclaration","src":"25288:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"25318:5:21","nodeType":"YulIdentifier","src":"25318:5:21"},{"kind":"number","nativeSrc":"25325:4:21","nodeType":"YulLiteral","src":"25325:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"25314:3:21","nodeType":"YulIdentifier","src":"25314:3:21"},"nativeSrc":"25314:16:21","nodeType":"YulFunctionCall","src":"25314:16:21"}],"functionName":{"name":"mload","nativeSrc":"25308:5:21","nodeType":"YulIdentifier","src":"25308:5:21"},"nativeSrc":"25308:23:21","nodeType":"YulFunctionCall","src":"25308:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"25292:12:21","nodeType":"YulTypedName","src":"25292:12:21","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"25378:12:21","nodeType":"YulIdentifier","src":"25378:12:21"},{"arguments":[{"name":"pos","nativeSrc":"25396:3:21","nodeType":"YulIdentifier","src":"25396:3:21"},{"kind":"number","nativeSrc":"25401:4:21","nodeType":"YulLiteral","src":"25401:4:21","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"25392:3:21","nodeType":"YulIdentifier","src":"25392:3:21"},"nativeSrc":"25392:14:21","nodeType":"YulFunctionCall","src":"25392:14:21"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"25344:33:21","nodeType":"YulIdentifier","src":"25344:33:21"},"nativeSrc":"25344:63:21","nodeType":"YulFunctionCall","src":"25344:63:21"},"nativeSrc":"25344:63:21","nodeType":"YulExpressionStatement","src":"25344:63:21"}]},{"nativeSrc":"25427:167:21","nodeType":"YulBlock","src":"25427:167:21","statements":[{"nativeSrc":"25465:43:21","nodeType":"YulVariableDeclaration","src":"25465:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"25495:5:21","nodeType":"YulIdentifier","src":"25495:5:21"},{"kind":"number","nativeSrc":"25502:4:21","nodeType":"YulLiteral","src":"25502:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"25491:3:21","nodeType":"YulIdentifier","src":"25491:3:21"},"nativeSrc":"25491:16:21","nodeType":"YulFunctionCall","src":"25491:16:21"}],"functionName":{"name":"mload","nativeSrc":"25485:5:21","nodeType":"YulIdentifier","src":"25485:5:21"},"nativeSrc":"25485:23:21","nodeType":"YulFunctionCall","src":"25485:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"25469:12:21","nodeType":"YulTypedName","src":"25469:12:21","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"25555:12:21","nodeType":"YulIdentifier","src":"25555:12:21"},{"arguments":[{"name":"pos","nativeSrc":"25573:3:21","nodeType":"YulIdentifier","src":"25573:3:21"},{"kind":"number","nativeSrc":"25578:4:21","nodeType":"YulLiteral","src":"25578:4:21","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"25569:3:21","nodeType":"YulIdentifier","src":"25569:3:21"},"nativeSrc":"25569:14:21","nodeType":"YulFunctionCall","src":"25569:14:21"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"25521:33:21","nodeType":"YulIdentifier","src":"25521:33:21"},"nativeSrc":"25521:63:21","nodeType":"YulFunctionCall","src":"25521:63:21"},"nativeSrc":"25521:63:21","nodeType":"YulExpressionStatement","src":"25521:63:21"}]},{"nativeSrc":"25604:172:21","nodeType":"YulBlock","src":"25604:172:21","statements":[{"nativeSrc":"25647:43:21","nodeType":"YulVariableDeclaration","src":"25647:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"25677:5:21","nodeType":"YulIdentifier","src":"25677:5:21"},{"kind":"number","nativeSrc":"25684:4:21","nodeType":"YulLiteral","src":"25684:4:21","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"25673:3:21","nodeType":"YulIdentifier","src":"25673:3:21"},"nativeSrc":"25673:16:21","nodeType":"YulFunctionCall","src":"25673:16:21"}],"functionName":{"name":"mload","nativeSrc":"25667:5:21","nodeType":"YulIdentifier","src":"25667:5:21"},"nativeSrc":"25667:23:21","nodeType":"YulFunctionCall","src":"25667:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"25651:12:21","nodeType":"YulTypedName","src":"25651:12:21","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"25737:12:21","nodeType":"YulIdentifier","src":"25737:12:21"},{"arguments":[{"name":"pos","nativeSrc":"25755:3:21","nodeType":"YulIdentifier","src":"25755:3:21"},{"kind":"number","nativeSrc":"25760:4:21","nodeType":"YulLiteral","src":"25760:4:21","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"25751:3:21","nodeType":"YulIdentifier","src":"25751:3:21"},"nativeSrc":"25751:14:21","nodeType":"YulFunctionCall","src":"25751:14:21"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"25703:33:21","nodeType":"YulIdentifier","src":"25703:33:21"},"nativeSrc":"25703:63:21","nodeType":"YulFunctionCall","src":"25703:63:21"},"nativeSrc":"25703:63:21","nodeType":"YulExpressionStatement","src":"25703:63:21"}]},{"nativeSrc":"25786:166:21","nodeType":"YulBlock","src":"25786:166:21","statements":[{"nativeSrc":"25823:43:21","nodeType":"YulVariableDeclaration","src":"25823:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"25853:5:21","nodeType":"YulIdentifier","src":"25853:5:21"},{"kind":"number","nativeSrc":"25860:4:21","nodeType":"YulLiteral","src":"25860:4:21","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"25849:3:21","nodeType":"YulIdentifier","src":"25849:3:21"},"nativeSrc":"25849:16:21","nodeType":"YulFunctionCall","src":"25849:16:21"}],"functionName":{"name":"mload","nativeSrc":"25843:5:21","nodeType":"YulIdentifier","src":"25843:5:21"},"nativeSrc":"25843:23:21","nodeType":"YulFunctionCall","src":"25843:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"25827:12:21","nodeType":"YulTypedName","src":"25827:12:21","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"25913:12:21","nodeType":"YulIdentifier","src":"25913:12:21"},{"arguments":[{"name":"pos","nativeSrc":"25931:3:21","nodeType":"YulIdentifier","src":"25931:3:21"},{"kind":"number","nativeSrc":"25936:4:21","nodeType":"YulLiteral","src":"25936:4:21","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"25927:3:21","nodeType":"YulIdentifier","src":"25927:3:21"},"nativeSrc":"25927:14:21","nodeType":"YulFunctionCall","src":"25927:14:21"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32","nativeSrc":"25879:33:21","nodeType":"YulIdentifier","src":"25879:33:21"},"nativeSrc":"25879:63:21","nodeType":"YulFunctionCall","src":"25879:63:21"},"nativeSrc":"25879:63:21","nodeType":"YulExpressionStatement","src":"25879:63:21"}]}]},"name":"abi_encode_t_struct$_ResourceMetadata_$1053_memory_ptr_to_t_struct$_ResourceMetadata_$1053_memory_ptr","nativeSrc":"24829:1130:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"24940:5:21","nodeType":"YulTypedName","src":"24940:5:21","type":""},{"name":"pos","nativeSrc":"24947:3:21","nodeType":"YulTypedName","src":"24947:3:21","type":""}],"src":"24829:1130:21"},{"body":{"nativeSrc":"26139:948:21","nodeType":"YulBlock","src":"26139:948:21","statements":[{"nativeSrc":"26149:28:21","nodeType":"YulVariableDeclaration","src":"26149:28:21","value":{"arguments":[{"name":"pos","nativeSrc":"26165:3:21","nodeType":"YulIdentifier","src":"26165:3:21"},{"kind":"number","nativeSrc":"26170:6:21","nodeType":"YulLiteral","src":"26170:6:21","type":"","value":"0x0160"}],"functionName":{"name":"add","nativeSrc":"26161:3:21","nodeType":"YulIdentifier","src":"26161:3:21"},"nativeSrc":"26161:16:21","nodeType":"YulFunctionCall","src":"26161:16:21"},"variables":[{"name":"tail","nativeSrc":"26153:4:21","nodeType":"YulTypedName","src":"26153:4:21","type":""}]},{"nativeSrc":"26187:164:21","nodeType":"YulBlock","src":"26187:164:21","statements":[{"nativeSrc":"26224:43:21","nodeType":"YulVariableDeclaration","src":"26224:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"26254:5:21","nodeType":"YulIdentifier","src":"26254:5:21"},{"kind":"number","nativeSrc":"26261:4:21","nodeType":"YulLiteral","src":"26261:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"26250:3:21","nodeType":"YulIdentifier","src":"26250:3:21"},"nativeSrc":"26250:16:21","nodeType":"YulFunctionCall","src":"26250:16:21"}],"functionName":{"name":"mload","nativeSrc":"26244:5:21","nodeType":"YulIdentifier","src":"26244:5:21"},"nativeSrc":"26244:23:21","nodeType":"YulFunctionCall","src":"26244:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"26228:12:21","nodeType":"YulTypedName","src":"26228:12:21","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"26312:12:21","nodeType":"YulIdentifier","src":"26312:12:21"},{"arguments":[{"name":"pos","nativeSrc":"26330:3:21","nodeType":"YulIdentifier","src":"26330:3:21"},{"kind":"number","nativeSrc":"26335:4:21","nodeType":"YulLiteral","src":"26335:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"26326:3:21","nodeType":"YulIdentifier","src":"26326:3:21"},"nativeSrc":"26326:14:21","nodeType":"YulFunctionCall","src":"26326:14:21"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16","nativeSrc":"26280:31:21","nodeType":"YulIdentifier","src":"26280:31:21"},"nativeSrc":"26280:61:21","nodeType":"YulFunctionCall","src":"26280:61:21"},"nativeSrc":"26280:61:21","nodeType":"YulExpressionStatement","src":"26280:61:21"}]},{"nativeSrc":"26361:277:21","nodeType":"YulBlock","src":"26361:277:21","statements":[{"nativeSrc":"26402:43:21","nodeType":"YulVariableDeclaration","src":"26402:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"26432:5:21","nodeType":"YulIdentifier","src":"26432:5:21"},{"kind":"number","nativeSrc":"26439:4:21","nodeType":"YulLiteral","src":"26439:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26428:3:21","nodeType":"YulIdentifier","src":"26428:3:21"},"nativeSrc":"26428:16:21","nodeType":"YulFunctionCall","src":"26428:16:21"}],"functionName":{"name":"mload","nativeSrc":"26422:5:21","nodeType":"YulIdentifier","src":"26422:5:21"},"nativeSrc":"26422:23:21","nodeType":"YulFunctionCall","src":"26422:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"26406:12:21","nodeType":"YulTypedName","src":"26406:12:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"26470:3:21","nodeType":"YulIdentifier","src":"26470:3:21"},{"kind":"number","nativeSrc":"26475:4:21","nodeType":"YulLiteral","src":"26475:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"26466:3:21","nodeType":"YulIdentifier","src":"26466:3:21"},"nativeSrc":"26466:14:21","nodeType":"YulFunctionCall","src":"26466:14:21"},{"arguments":[{"name":"tail","nativeSrc":"26486:4:21","nodeType":"YulIdentifier","src":"26486:4:21"},{"name":"pos","nativeSrc":"26492:3:21","nodeType":"YulIdentifier","src":"26492:3:21"}],"functionName":{"name":"sub","nativeSrc":"26482:3:21","nodeType":"YulIdentifier","src":"26482:3:21"},"nativeSrc":"26482:14:21","nodeType":"YulFunctionCall","src":"26482:14:21"}],"functionName":{"name":"mstore","nativeSrc":"26459:6:21","nodeType":"YulIdentifier","src":"26459:6:21"},"nativeSrc":"26459:38:21","nodeType":"YulFunctionCall","src":"26459:38:21"},"nativeSrc":"26459:38:21","nodeType":"YulExpressionStatement","src":"26459:38:21"},{"nativeSrc":"26510:117:21","nodeType":"YulAssignment","src":"26510:117:21","value":{"arguments":[{"name":"memberValue0","nativeSrc":"26608:12:21","nodeType":"YulIdentifier","src":"26608:12:21"},{"name":"tail","nativeSrc":"26622:4:21","nodeType":"YulIdentifier","src":"26622:4:21"}],"functionName":{"name":"abi_encode_t_struct$_HeaderInfo_$1022_memory_ptr_to_t_struct$_HeaderInfo_$1022_memory_ptr","nativeSrc":"26518:89:21","nodeType":"YulIdentifier","src":"26518:89:21"},"nativeSrc":"26518:109:21","nodeType":"YulFunctionCall","src":"26518:109:21"},"variableNames":[{"name":"tail","nativeSrc":"26510:4:21","nodeType":"YulIdentifier","src":"26510:4:21"}]}]},{"nativeSrc":"26648:236:21","nodeType":"YulBlock","src":"26648:236:21","statements":[{"nativeSrc":"26687:43:21","nodeType":"YulVariableDeclaration","src":"26687:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"26717:5:21","nodeType":"YulIdentifier","src":"26717:5:21"},{"kind":"number","nativeSrc":"26724:4:21","nodeType":"YulLiteral","src":"26724:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"26713:3:21","nodeType":"YulIdentifier","src":"26713:3:21"},"nativeSrc":"26713:16:21","nodeType":"YulFunctionCall","src":"26713:16:21"}],"functionName":{"name":"mload","nativeSrc":"26707:5:21","nodeType":"YulIdentifier","src":"26707:5:21"},"nativeSrc":"26707:23:21","nodeType":"YulFunctionCall","src":"26707:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"26691:12:21","nodeType":"YulTypedName","src":"26691:12:21","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"26845:12:21","nodeType":"YulIdentifier","src":"26845:12:21"},{"arguments":[{"name":"pos","nativeSrc":"26863:3:21","nodeType":"YulIdentifier","src":"26863:3:21"},{"kind":"number","nativeSrc":"26868:4:21","nodeType":"YulLiteral","src":"26868:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"26859:3:21","nodeType":"YulIdentifier","src":"26859:3:21"},"nativeSrc":"26859:14:21","nodeType":"YulFunctionCall","src":"26859:14:21"}],"functionName":{"name":"abi_encode_t_struct$_ResourceMetadata_$1053_memory_ptr_to_t_struct$_ResourceMetadata_$1053_memory_ptr","nativeSrc":"26743:101:21","nodeType":"YulIdentifier","src":"26743:101:21"},"nativeSrc":"26743:131:21","nodeType":"YulFunctionCall","src":"26743:131:21"},"nativeSrc":"26743:131:21","nodeType":"YulExpressionStatement","src":"26743:131:21"}]},{"nativeSrc":"26894:166:21","nodeType":"YulBlock","src":"26894:166:21","statements":[{"nativeSrc":"26929:43:21","nodeType":"YulVariableDeclaration","src":"26929:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"26959:5:21","nodeType":"YulIdentifier","src":"26959:5:21"},{"kind":"number","nativeSrc":"26966:4:21","nodeType":"YulLiteral","src":"26966:4:21","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"26955:3:21","nodeType":"YulIdentifier","src":"26955:3:21"},"nativeSrc":"26955:16:21","nodeType":"YulFunctionCall","src":"26955:16:21"}],"functionName":{"name":"mload","nativeSrc":"26949:5:21","nodeType":"YulIdentifier","src":"26949:5:21"},"nativeSrc":"26949:23:21","nodeType":"YulFunctionCall","src":"26949:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"26933:12:21","nodeType":"YulTypedName","src":"26933:12:21","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"27019:12:21","nodeType":"YulIdentifier","src":"27019:12:21"},{"arguments":[{"name":"pos","nativeSrc":"27037:3:21","nodeType":"YulIdentifier","src":"27037:3:21"},{"kind":"number","nativeSrc":"27042:6:21","nodeType":"YulLiteral","src":"27042:6:21","type":"","value":"0x0140"}],"functionName":{"name":"add","nativeSrc":"27033:3:21","nodeType":"YulIdentifier","src":"27033:3:21"},"nativeSrc":"27033:16:21","nodeType":"YulFunctionCall","src":"27033:16:21"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32","nativeSrc":"26985:33:21","nodeType":"YulIdentifier","src":"26985:33:21"},"nativeSrc":"26985:65:21","nodeType":"YulFunctionCall","src":"26985:65:21"},"nativeSrc":"26985:65:21","nodeType":"YulExpressionStatement","src":"26985:65:21"}]},{"nativeSrc":"27070:11:21","nodeType":"YulAssignment","src":"27070:11:21","value":{"name":"tail","nativeSrc":"27077:4:21","nodeType":"YulIdentifier","src":"27077:4:21"},"variableNames":[{"name":"end","nativeSrc":"27070:3:21","nodeType":"YulIdentifier","src":"27070:3:21"}]}]},"name":"abi_encode_t_struct$_HEADResponse_$1158_memory_ptr_to_t_struct$_HEADResponse_$1158_memory_ptr","nativeSrc":"26015:1072:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"26118:5:21","nodeType":"YulTypedName","src":"26118:5:21","type":""},{"name":"pos","nativeSrc":"26125:3:21","nodeType":"YulTypedName","src":"26125:3:21","type":""}],"returnVariables":[{"name":"end","nativeSrc":"26134:3:21","nodeType":"YulTypedName","src":"26134:3:21","type":""}],"src":"26015:1072:21"},{"body":{"nativeSrc":"27281:525:21","nodeType":"YulBlock","src":"27281:525:21","statements":[{"nativeSrc":"27291:26:21","nodeType":"YulVariableDeclaration","src":"27291:26:21","value":{"arguments":[{"name":"pos","nativeSrc":"27307:3:21","nodeType":"YulIdentifier","src":"27307:3:21"},{"kind":"number","nativeSrc":"27312:4:21","nodeType":"YulLiteral","src":"27312:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"27303:3:21","nodeType":"YulIdentifier","src":"27303:3:21"},"nativeSrc":"27303:14:21","nodeType":"YulFunctionCall","src":"27303:14:21"},"variables":[{"name":"tail","nativeSrc":"27295:4:21","nodeType":"YulTypedName","src":"27295:4:21","type":""}]},{"nativeSrc":"27327:271:21","nodeType":"YulBlock","src":"27327:271:21","statements":[{"nativeSrc":"27368:43:21","nodeType":"YulVariableDeclaration","src":"27368:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"27398:5:21","nodeType":"YulIdentifier","src":"27398:5:21"},{"kind":"number","nativeSrc":"27405:4:21","nodeType":"YulLiteral","src":"27405:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"27394:3:21","nodeType":"YulIdentifier","src":"27394:3:21"},"nativeSrc":"27394:16:21","nodeType":"YulFunctionCall","src":"27394:16:21"}],"functionName":{"name":"mload","nativeSrc":"27388:5:21","nodeType":"YulIdentifier","src":"27388:5:21"},"nativeSrc":"27388:23:21","nodeType":"YulFunctionCall","src":"27388:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"27372:12:21","nodeType":"YulTypedName","src":"27372:12:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"27436:3:21","nodeType":"YulIdentifier","src":"27436:3:21"},{"kind":"number","nativeSrc":"27441:4:21","nodeType":"YulLiteral","src":"27441:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"27432:3:21","nodeType":"YulIdentifier","src":"27432:3:21"},"nativeSrc":"27432:14:21","nodeType":"YulFunctionCall","src":"27432:14:21"},{"arguments":[{"name":"tail","nativeSrc":"27452:4:21","nodeType":"YulIdentifier","src":"27452:4:21"},{"name":"pos","nativeSrc":"27458:3:21","nodeType":"YulIdentifier","src":"27458:3:21"}],"functionName":{"name":"sub","nativeSrc":"27448:3:21","nodeType":"YulIdentifier","src":"27448:3:21"},"nativeSrc":"27448:14:21","nodeType":"YulFunctionCall","src":"27448:14:21"}],"functionName":{"name":"mstore","nativeSrc":"27425:6:21","nodeType":"YulIdentifier","src":"27425:6:21"},"nativeSrc":"27425:38:21","nodeType":"YulFunctionCall","src":"27425:38:21"},"nativeSrc":"27425:38:21","nodeType":"YulExpressionStatement","src":"27425:38:21"},{"nativeSrc":"27476:111:21","nodeType":"YulAssignment","src":"27476:111:21","value":{"arguments":[{"name":"memberValue0","nativeSrc":"27568:12:21","nodeType":"YulIdentifier","src":"27568:12:21"},{"name":"tail","nativeSrc":"27582:4:21","nodeType":"YulIdentifier","src":"27582:4:21"}],"functionName":{"name":"abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"27484:83:21","nodeType":"YulIdentifier","src":"27484:83:21"},"nativeSrc":"27484:103:21","nodeType":"YulFunctionCall","src":"27484:103:21"},"variableNames":[{"name":"tail","nativeSrc":"27476:4:21","nodeType":"YulIdentifier","src":"27476:4:21"}]}]},{"nativeSrc":"27608:171:21","nodeType":"YulBlock","src":"27608:171:21","statements":[{"nativeSrc":"27650:43:21","nodeType":"YulVariableDeclaration","src":"27650:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"27680:5:21","nodeType":"YulIdentifier","src":"27680:5:21"},{"kind":"number","nativeSrc":"27687:4:21","nodeType":"YulLiteral","src":"27687:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"27676:3:21","nodeType":"YulIdentifier","src":"27676:3:21"},"nativeSrc":"27676:16:21","nodeType":"YulFunctionCall","src":"27676:16:21"}],"functionName":{"name":"mload","nativeSrc":"27670:5:21","nodeType":"YulIdentifier","src":"27670:5:21"},"nativeSrc":"27670:23:21","nodeType":"YulFunctionCall","src":"27670:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"27654:12:21","nodeType":"YulTypedName","src":"27654:12:21","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"27740:12:21","nodeType":"YulIdentifier","src":"27740:12:21"},{"arguments":[{"name":"pos","nativeSrc":"27758:3:21","nodeType":"YulIdentifier","src":"27758:3:21"},{"kind":"number","nativeSrc":"27763:4:21","nodeType":"YulLiteral","src":"27763:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"27754:3:21","nodeType":"YulIdentifier","src":"27754:3:21"},"nativeSrc":"27754:14:21","nodeType":"YulFunctionCall","src":"27754:14:21"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"27706:33:21","nodeType":"YulIdentifier","src":"27706:33:21"},"nativeSrc":"27706:63:21","nodeType":"YulFunctionCall","src":"27706:63:21"},"nativeSrc":"27706:63:21","nodeType":"YulExpressionStatement","src":"27706:63:21"}]},{"nativeSrc":"27789:11:21","nodeType":"YulAssignment","src":"27789:11:21","value":{"name":"tail","nativeSrc":"27796:4:21","nodeType":"YulIdentifier","src":"27796:4:21"},"variableNames":[{"name":"end","nativeSrc":"27789:3:21","nodeType":"YulIdentifier","src":"27789:3:21"}]}]},"name":"abi_encode_t_struct$_ResourceResponse_$885_memory_ptr_to_t_struct$_ResourceResponse_$885_memory_ptr","nativeSrc":"27151:655:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"27260:5:21","nodeType":"YulTypedName","src":"27260:5:21","type":""},{"name":"pos","nativeSrc":"27267:3:21","nodeType":"YulTypedName","src":"27267:3:21","type":""}],"returnVariables":[{"name":"end","nativeSrc":"27276:3:21","nodeType":"YulTypedName","src":"27276:3:21","type":""}],"src":"27151:655:21"},{"body":{"nativeSrc":"28004:643:21","nodeType":"YulBlock","src":"28004:643:21","statements":[{"nativeSrc":"28014:26:21","nodeType":"YulVariableDeclaration","src":"28014:26:21","value":{"arguments":[{"name":"pos","nativeSrc":"28030:3:21","nodeType":"YulIdentifier","src":"28030:3:21"},{"kind":"number","nativeSrc":"28035:4:21","nodeType":"YulLiteral","src":"28035:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"28026:3:21","nodeType":"YulIdentifier","src":"28026:3:21"},"nativeSrc":"28026:14:21","nodeType":"YulFunctionCall","src":"28026:14:21"},"variables":[{"name":"tail","nativeSrc":"28018:4:21","nodeType":"YulTypedName","src":"28018:4:21","type":""}]},{"nativeSrc":"28050:275:21","nodeType":"YulBlock","src":"28050:275:21","statements":[{"nativeSrc":"28085:43:21","nodeType":"YulVariableDeclaration","src":"28085:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"28115:5:21","nodeType":"YulIdentifier","src":"28115:5:21"},{"kind":"number","nativeSrc":"28122:4:21","nodeType":"YulLiteral","src":"28122:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"28111:3:21","nodeType":"YulIdentifier","src":"28111:3:21"},"nativeSrc":"28111:16:21","nodeType":"YulFunctionCall","src":"28111:16:21"}],"functionName":{"name":"mload","nativeSrc":"28105:5:21","nodeType":"YulIdentifier","src":"28105:5:21"},"nativeSrc":"28105:23:21","nodeType":"YulFunctionCall","src":"28105:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"28089:12:21","nodeType":"YulTypedName","src":"28089:12:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"28153:3:21","nodeType":"YulIdentifier","src":"28153:3:21"},{"kind":"number","nativeSrc":"28158:4:21","nodeType":"YulLiteral","src":"28158:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"28149:3:21","nodeType":"YulIdentifier","src":"28149:3:21"},"nativeSrc":"28149:14:21","nodeType":"YulFunctionCall","src":"28149:14:21"},{"arguments":[{"name":"tail","nativeSrc":"28169:4:21","nodeType":"YulIdentifier","src":"28169:4:21"},{"name":"pos","nativeSrc":"28175:3:21","nodeType":"YulIdentifier","src":"28175:3:21"}],"functionName":{"name":"sub","nativeSrc":"28165:3:21","nodeType":"YulIdentifier","src":"28165:3:21"},"nativeSrc":"28165:14:21","nodeType":"YulFunctionCall","src":"28165:14:21"}],"functionName":{"name":"mstore","nativeSrc":"28142:6:21","nodeType":"YulIdentifier","src":"28142:6:21"},"nativeSrc":"28142:38:21","nodeType":"YulFunctionCall","src":"28142:38:21"},"nativeSrc":"28142:38:21","nodeType":"YulExpressionStatement","src":"28142:38:21"},{"nativeSrc":"28193:121:21","nodeType":"YulAssignment","src":"28193:121:21","value":{"arguments":[{"name":"memberValue0","nativeSrc":"28295:12:21","nodeType":"YulIdentifier","src":"28295:12:21"},{"name":"tail","nativeSrc":"28309:4:21","nodeType":"YulIdentifier","src":"28309:4:21"}],"functionName":{"name":"abi_encode_t_struct$_HEADResponse_$1158_memory_ptr_to_t_struct$_HEADResponse_$1158_memory_ptr","nativeSrc":"28201:93:21","nodeType":"YulIdentifier","src":"28201:93:21"},"nativeSrc":"28201:113:21","nodeType":"YulFunctionCall","src":"28201:113:21"},"variableNames":[{"name":"tail","nativeSrc":"28193:4:21","nodeType":"YulIdentifier","src":"28193:4:21"}]}]},{"nativeSrc":"28335:285:21","nodeType":"YulBlock","src":"28335:285:21","statements":[{"nativeSrc":"28374:43:21","nodeType":"YulVariableDeclaration","src":"28374:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"28404:5:21","nodeType":"YulIdentifier","src":"28404:5:21"},{"kind":"number","nativeSrc":"28411:4:21","nodeType":"YulLiteral","src":"28411:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"28400:3:21","nodeType":"YulIdentifier","src":"28400:3:21"},"nativeSrc":"28400:16:21","nodeType":"YulFunctionCall","src":"28400:16:21"}],"functionName":{"name":"mload","nativeSrc":"28394:5:21","nodeType":"YulIdentifier","src":"28394:5:21"},"nativeSrc":"28394:23:21","nodeType":"YulFunctionCall","src":"28394:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"28378:12:21","nodeType":"YulTypedName","src":"28378:12:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"28442:3:21","nodeType":"YulIdentifier","src":"28442:3:21"},{"kind":"number","nativeSrc":"28447:4:21","nodeType":"YulLiteral","src":"28447:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"28438:3:21","nodeType":"YulIdentifier","src":"28438:3:21"},"nativeSrc":"28438:14:21","nodeType":"YulFunctionCall","src":"28438:14:21"},{"arguments":[{"name":"tail","nativeSrc":"28458:4:21","nodeType":"YulIdentifier","src":"28458:4:21"},{"name":"pos","nativeSrc":"28464:3:21","nodeType":"YulIdentifier","src":"28464:3:21"}],"functionName":{"name":"sub","nativeSrc":"28454:3:21","nodeType":"YulIdentifier","src":"28454:3:21"},"nativeSrc":"28454:14:21","nodeType":"YulFunctionCall","src":"28454:14:21"}],"functionName":{"name":"mstore","nativeSrc":"28431:6:21","nodeType":"YulIdentifier","src":"28431:6:21"},"nativeSrc":"28431:38:21","nodeType":"YulFunctionCall","src":"28431:38:21"},"nativeSrc":"28431:38:21","nodeType":"YulExpressionStatement","src":"28431:38:21"},{"nativeSrc":"28482:127:21","nodeType":"YulAssignment","src":"28482:127:21","value":{"arguments":[{"name":"memberValue0","nativeSrc":"28590:12:21","nodeType":"YulIdentifier","src":"28590:12:21"},{"name":"tail","nativeSrc":"28604:4:21","nodeType":"YulIdentifier","src":"28604:4:21"}],"functionName":{"name":"abi_encode_t_struct$_ResourceResponse_$885_memory_ptr_to_t_struct$_ResourceResponse_$885_memory_ptr","nativeSrc":"28490:99:21","nodeType":"YulIdentifier","src":"28490:99:21"},"nativeSrc":"28490:119:21","nodeType":"YulFunctionCall","src":"28490:119:21"},"variableNames":[{"name":"tail","nativeSrc":"28482:4:21","nodeType":"YulIdentifier","src":"28482:4:21"}]}]},{"nativeSrc":"28630:11:21","nodeType":"YulAssignment","src":"28630:11:21","value":{"name":"tail","nativeSrc":"28637:4:21","nodeType":"YulIdentifier","src":"28637:4:21"},"variableNames":[{"name":"end","nativeSrc":"28630:3:21","nodeType":"YulIdentifier","src":"28630:3:21"}]}]},"name":"abi_encode_t_struct$_LOCATEResponse_$1168_memory_ptr_to_t_struct$_LOCATEResponse_$1168_memory_ptr_fromStack","nativeSrc":"27866:781:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"27983:5:21","nodeType":"YulTypedName","src":"27983:5:21","type":""},{"name":"pos","nativeSrc":"27990:3:21","nodeType":"YulTypedName","src":"27990:3:21","type":""}],"returnVariables":[{"name":"end","nativeSrc":"27999:3:21","nodeType":"YulTypedName","src":"27999:3:21","type":""}],"src":"27866:781:21"},{"body":{"nativeSrc":"28815:239:21","nodeType":"YulBlock","src":"28815:239:21","statements":[{"nativeSrc":"28825:26:21","nodeType":"YulAssignment","src":"28825:26:21","value":{"arguments":[{"name":"headStart","nativeSrc":"28837:9:21","nodeType":"YulIdentifier","src":"28837:9:21"},{"kind":"number","nativeSrc":"28848:2:21","nodeType":"YulLiteral","src":"28848:2:21","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"28833:3:21","nodeType":"YulIdentifier","src":"28833:3:21"},"nativeSrc":"28833:18:21","nodeType":"YulFunctionCall","src":"28833:18:21"},"variableNames":[{"name":"tail","nativeSrc":"28825:4:21","nodeType":"YulIdentifier","src":"28825:4:21"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"28872:9:21","nodeType":"YulIdentifier","src":"28872:9:21"},{"kind":"number","nativeSrc":"28883:1:21","nodeType":"YulLiteral","src":"28883:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"28868:3:21","nodeType":"YulIdentifier","src":"28868:3:21"},"nativeSrc":"28868:17:21","nodeType":"YulFunctionCall","src":"28868:17:21"},{"arguments":[{"name":"tail","nativeSrc":"28891:4:21","nodeType":"YulIdentifier","src":"28891:4:21"},{"name":"headStart","nativeSrc":"28897:9:21","nodeType":"YulIdentifier","src":"28897:9:21"}],"functionName":{"name":"sub","nativeSrc":"28887:3:21","nodeType":"YulIdentifier","src":"28887:3:21"},"nativeSrc":"28887:20:21","nodeType":"YulFunctionCall","src":"28887:20:21"}],"functionName":{"name":"mstore","nativeSrc":"28861:6:21","nodeType":"YulIdentifier","src":"28861:6:21"},"nativeSrc":"28861:47:21","nodeType":"YulFunctionCall","src":"28861:47:21"},"nativeSrc":"28861:47:21","nodeType":"YulExpressionStatement","src":"28861:47:21"},{"nativeSrc":"28917:130:21","nodeType":"YulAssignment","src":"28917:130:21","value":{"arguments":[{"name":"value0","nativeSrc":"29033:6:21","nodeType":"YulIdentifier","src":"29033:6:21"},{"name":"tail","nativeSrc":"29042:4:21","nodeType":"YulIdentifier","src":"29042:4:21"}],"functionName":{"name":"abi_encode_t_struct$_LOCATEResponse_$1168_memory_ptr_to_t_struct$_LOCATEResponse_$1168_memory_ptr_fromStack","nativeSrc":"28925:107:21","nodeType":"YulIdentifier","src":"28925:107:21"},"nativeSrc":"28925:122:21","nodeType":"YulFunctionCall","src":"28925:122:21"},"variableNames":[{"name":"tail","nativeSrc":"28917:4:21","nodeType":"YulIdentifier","src":"28917:4:21"}]}]},"name":"abi_encode_tuple_t_struct$_LOCATEResponse_$1168_memory_ptr__to_t_struct$_LOCATEResponse_$1168_memory_ptr__fromStack_reversed","nativeSrc":"28653:401:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"28787:9:21","nodeType":"YulTypedName","src":"28787:9:21","type":""},{"name":"value0","nativeSrc":"28799:6:21","nodeType":"YulTypedName","src":"28799:6:21","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"28810:4:21","nodeType":"YulTypedName","src":"28810:4:21","type":""}],"src":"28653:401:21"},{"body":{"nativeSrc":"29126:263:21","nodeType":"YulBlock","src":"29126:263:21","statements":[{"body":{"nativeSrc":"29172:83:21","nodeType":"YulBlock","src":"29172:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"29174:77:21","nodeType":"YulIdentifier","src":"29174:77:21"},"nativeSrc":"29174:79:21","nodeType":"YulFunctionCall","src":"29174:79:21"},"nativeSrc":"29174:79:21","nodeType":"YulExpressionStatement","src":"29174:79:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"29147:7:21","nodeType":"YulIdentifier","src":"29147:7:21"},{"name":"headStart","nativeSrc":"29156:9:21","nodeType":"YulIdentifier","src":"29156:9:21"}],"functionName":{"name":"sub","nativeSrc":"29143:3:21","nodeType":"YulIdentifier","src":"29143:3:21"},"nativeSrc":"29143:23:21","nodeType":"YulFunctionCall","src":"29143:23:21"},{"kind":"number","nativeSrc":"29168:2:21","nodeType":"YulLiteral","src":"29168:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"29139:3:21","nodeType":"YulIdentifier","src":"29139:3:21"},"nativeSrc":"29139:32:21","nodeType":"YulFunctionCall","src":"29139:32:21"},"nativeSrc":"29136:119:21","nodeType":"YulIf","src":"29136:119:21"},{"nativeSrc":"29265:117:21","nodeType":"YulBlock","src":"29265:117:21","statements":[{"nativeSrc":"29280:15:21","nodeType":"YulVariableDeclaration","src":"29280:15:21","value":{"kind":"number","nativeSrc":"29294:1:21","nodeType":"YulLiteral","src":"29294:1:21","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"29284:6:21","nodeType":"YulTypedName","src":"29284:6:21","type":""}]},{"nativeSrc":"29309:63:21","nodeType":"YulAssignment","src":"29309:63:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"29344:9:21","nodeType":"YulIdentifier","src":"29344:9:21"},{"name":"offset","nativeSrc":"29355:6:21","nodeType":"YulIdentifier","src":"29355:6:21"}],"functionName":{"name":"add","nativeSrc":"29340:3:21","nodeType":"YulIdentifier","src":"29340:3:21"},"nativeSrc":"29340:22:21","nodeType":"YulFunctionCall","src":"29340:22:21"},{"name":"dataEnd","nativeSrc":"29364:7:21","nodeType":"YulIdentifier","src":"29364:7:21"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"29319:20:21","nodeType":"YulIdentifier","src":"29319:20:21"},"nativeSrc":"29319:53:21","nodeType":"YulFunctionCall","src":"29319:53:21"},"variableNames":[{"name":"value0","nativeSrc":"29309:6:21","nodeType":"YulIdentifier","src":"29309:6:21"}]}]}]},"name":"abi_decode_tuple_t_bytes32","nativeSrc":"29060:329:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29096:9:21","nodeType":"YulTypedName","src":"29096:9:21","type":""},{"name":"dataEnd","nativeSrc":"29107:7:21","nodeType":"YulTypedName","src":"29107:7:21","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"29119:6:21","nodeType":"YulTypedName","src":"29119:6:21","type":""}],"src":"29060:329:21"},{"body":{"nativeSrc":"29460:53:21","nodeType":"YulBlock","src":"29460:53:21","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"29477:3:21","nodeType":"YulIdentifier","src":"29477:3:21"},{"arguments":[{"name":"value","nativeSrc":"29500:5:21","nodeType":"YulIdentifier","src":"29500:5:21"}],"functionName":{"name":"cleanup_t_bytes32","nativeSrc":"29482:17:21","nodeType":"YulIdentifier","src":"29482:17:21"},"nativeSrc":"29482:24:21","nodeType":"YulFunctionCall","src":"29482:24:21"}],"functionName":{"name":"mstore","nativeSrc":"29470:6:21","nodeType":"YulIdentifier","src":"29470:6:21"},"nativeSrc":"29470:37:21","nodeType":"YulFunctionCall","src":"29470:37:21"},"nativeSrc":"29470:37:21","nodeType":"YulExpressionStatement","src":"29470:37:21"}]},"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"29395:118:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"29448:5:21","nodeType":"YulTypedName","src":"29448:5:21","type":""},{"name":"pos","nativeSrc":"29455:3:21","nodeType":"YulTypedName","src":"29455:3:21","type":""}],"src":"29395:118:21"},{"body":{"nativeSrc":"29617:124:21","nodeType":"YulBlock","src":"29617:124:21","statements":[{"nativeSrc":"29627:26:21","nodeType":"YulAssignment","src":"29627:26:21","value":{"arguments":[{"name":"headStart","nativeSrc":"29639:9:21","nodeType":"YulIdentifier","src":"29639:9:21"},{"kind":"number","nativeSrc":"29650:2:21","nodeType":"YulLiteral","src":"29650:2:21","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"29635:3:21","nodeType":"YulIdentifier","src":"29635:3:21"},"nativeSrc":"29635:18:21","nodeType":"YulFunctionCall","src":"29635:18:21"},"variableNames":[{"name":"tail","nativeSrc":"29627:4:21","nodeType":"YulIdentifier","src":"29627:4:21"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"29707:6:21","nodeType":"YulIdentifier","src":"29707:6:21"},{"arguments":[{"name":"headStart","nativeSrc":"29720:9:21","nodeType":"YulIdentifier","src":"29720:9:21"},{"kind":"number","nativeSrc":"29731:1:21","nodeType":"YulLiteral","src":"29731:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"29716:3:21","nodeType":"YulIdentifier","src":"29716:3:21"},"nativeSrc":"29716:17:21","nodeType":"YulFunctionCall","src":"29716:17:21"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"29663:43:21","nodeType":"YulIdentifier","src":"29663:43:21"},"nativeSrc":"29663:71:21","nodeType":"YulFunctionCall","src":"29663:71:21"},"nativeSrc":"29663:71:21","nodeType":"YulExpressionStatement","src":"29663:71:21"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nativeSrc":"29519:222:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29589:9:21","nodeType":"YulTypedName","src":"29589:9:21","type":""},{"name":"value0","nativeSrc":"29601:6:21","nodeType":"YulTypedName","src":"29601:6:21","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"29612:4:21","nodeType":"YulTypedName","src":"29612:4:21","type":""}],"src":"29519:222:21"},{"body":{"nativeSrc":"29842:452:21","nodeType":"YulBlock","src":"29842:452:21","statements":[{"body":{"nativeSrc":"29888:83:21","nodeType":"YulBlock","src":"29888:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"29890:77:21","nodeType":"YulIdentifier","src":"29890:77:21"},"nativeSrc":"29890:79:21","nodeType":"YulFunctionCall","src":"29890:79:21"},"nativeSrc":"29890:79:21","nodeType":"YulExpressionStatement","src":"29890:79:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"29863:7:21","nodeType":"YulIdentifier","src":"29863:7:21"},{"name":"headStart","nativeSrc":"29872:9:21","nodeType":"YulIdentifier","src":"29872:9:21"}],"functionName":{"name":"sub","nativeSrc":"29859:3:21","nodeType":"YulIdentifier","src":"29859:3:21"},"nativeSrc":"29859:23:21","nodeType":"YulFunctionCall","src":"29859:23:21"},{"kind":"number","nativeSrc":"29884:2:21","nodeType":"YulLiteral","src":"29884:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"29855:3:21","nodeType":"YulIdentifier","src":"29855:3:21"},"nativeSrc":"29855:32:21","nodeType":"YulFunctionCall","src":"29855:32:21"},"nativeSrc":"29852:119:21","nodeType":"YulIf","src":"29852:119:21"},{"nativeSrc":"29981:306:21","nodeType":"YulBlock","src":"29981:306:21","statements":[{"nativeSrc":"29996:45:21","nodeType":"YulVariableDeclaration","src":"29996:45:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30027:9:21","nodeType":"YulIdentifier","src":"30027:9:21"},{"kind":"number","nativeSrc":"30038:1:21","nodeType":"YulLiteral","src":"30038:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"30023:3:21","nodeType":"YulIdentifier","src":"30023:3:21"},"nativeSrc":"30023:17:21","nodeType":"YulFunctionCall","src":"30023:17:21"}],"functionName":{"name":"calldataload","nativeSrc":"30010:12:21","nodeType":"YulIdentifier","src":"30010:12:21"},"nativeSrc":"30010:31:21","nodeType":"YulFunctionCall","src":"30010:31:21"},"variables":[{"name":"offset","nativeSrc":"30000:6:21","nodeType":"YulTypedName","src":"30000:6:21","type":""}]},{"body":{"nativeSrc":"30088:83:21","nodeType":"YulBlock","src":"30088:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"30090:77:21","nodeType":"YulIdentifier","src":"30090:77:21"},"nativeSrc":"30090:79:21","nodeType":"YulFunctionCall","src":"30090:79:21"},"nativeSrc":"30090:79:21","nodeType":"YulExpressionStatement","src":"30090:79:21"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"30060:6:21","nodeType":"YulIdentifier","src":"30060:6:21"},{"kind":"number","nativeSrc":"30068:18:21","nodeType":"YulLiteral","src":"30068:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"30057:2:21","nodeType":"YulIdentifier","src":"30057:2:21"},"nativeSrc":"30057:30:21","nodeType":"YulFunctionCall","src":"30057:30:21"},"nativeSrc":"30054:117:21","nodeType":"YulIf","src":"30054:117:21"},{"nativeSrc":"30185:92:21","nodeType":"YulAssignment","src":"30185:92:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"30249:9:21","nodeType":"YulIdentifier","src":"30249:9:21"},{"name":"offset","nativeSrc":"30260:6:21","nodeType":"YulIdentifier","src":"30260:6:21"}],"functionName":{"name":"add","nativeSrc":"30245:3:21","nodeType":"YulIdentifier","src":"30245:3:21"},"nativeSrc":"30245:22:21","nodeType":"YulFunctionCall","src":"30245:22:21"},{"name":"dataEnd","nativeSrc":"30269:7:21","nodeType":"YulIdentifier","src":"30269:7:21"}],"functionName":{"name":"abi_decode_t_struct$_HEADRequest_$1142_memory_ptr","nativeSrc":"30195:49:21","nodeType":"YulIdentifier","src":"30195:49:21"},"nativeSrc":"30195:82:21","nodeType":"YulFunctionCall","src":"30195:82:21"},"variableNames":[{"name":"value0","nativeSrc":"30185:6:21","nodeType":"YulIdentifier","src":"30185:6:21"}]}]}]},"name":"abi_decode_tuple_t_struct$_HEADRequest_$1142_memory_ptr","nativeSrc":"29747:547:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"29812:9:21","nodeType":"YulTypedName","src":"29812:9:21","type":""},{"name":"dataEnd","nativeSrc":"29823:7:21","nodeType":"YulTypedName","src":"29823:7:21","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"29835:6:21","nodeType":"YulTypedName","src":"29835:6:21","type":""}],"src":"29747:547:21"},{"body":{"nativeSrc":"30484:948:21","nodeType":"YulBlock","src":"30484:948:21","statements":[{"nativeSrc":"30494:28:21","nodeType":"YulVariableDeclaration","src":"30494:28:21","value":{"arguments":[{"name":"pos","nativeSrc":"30510:3:21","nodeType":"YulIdentifier","src":"30510:3:21"},{"kind":"number","nativeSrc":"30515:6:21","nodeType":"YulLiteral","src":"30515:6:21","type":"","value":"0x0160"}],"functionName":{"name":"add","nativeSrc":"30506:3:21","nodeType":"YulIdentifier","src":"30506:3:21"},"nativeSrc":"30506:16:21","nodeType":"YulFunctionCall","src":"30506:16:21"},"variables":[{"name":"tail","nativeSrc":"30498:4:21","nodeType":"YulTypedName","src":"30498:4:21","type":""}]},{"nativeSrc":"30532:164:21","nodeType":"YulBlock","src":"30532:164:21","statements":[{"nativeSrc":"30569:43:21","nodeType":"YulVariableDeclaration","src":"30569:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"30599:5:21","nodeType":"YulIdentifier","src":"30599:5:21"},{"kind":"number","nativeSrc":"30606:4:21","nodeType":"YulLiteral","src":"30606:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"30595:3:21","nodeType":"YulIdentifier","src":"30595:3:21"},"nativeSrc":"30595:16:21","nodeType":"YulFunctionCall","src":"30595:16:21"}],"functionName":{"name":"mload","nativeSrc":"30589:5:21","nodeType":"YulIdentifier","src":"30589:5:21"},"nativeSrc":"30589:23:21","nodeType":"YulFunctionCall","src":"30589:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"30573:12:21","nodeType":"YulTypedName","src":"30573:12:21","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"30657:12:21","nodeType":"YulIdentifier","src":"30657:12:21"},{"arguments":[{"name":"pos","nativeSrc":"30675:3:21","nodeType":"YulIdentifier","src":"30675:3:21"},{"kind":"number","nativeSrc":"30680:4:21","nodeType":"YulLiteral","src":"30680:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"30671:3:21","nodeType":"YulIdentifier","src":"30671:3:21"},"nativeSrc":"30671:14:21","nodeType":"YulFunctionCall","src":"30671:14:21"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16","nativeSrc":"30625:31:21","nodeType":"YulIdentifier","src":"30625:31:21"},"nativeSrc":"30625:61:21","nodeType":"YulFunctionCall","src":"30625:61:21"},"nativeSrc":"30625:61:21","nodeType":"YulExpressionStatement","src":"30625:61:21"}]},{"nativeSrc":"30706:277:21","nodeType":"YulBlock","src":"30706:277:21","statements":[{"nativeSrc":"30747:43:21","nodeType":"YulVariableDeclaration","src":"30747:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"30777:5:21","nodeType":"YulIdentifier","src":"30777:5:21"},{"kind":"number","nativeSrc":"30784:4:21","nodeType":"YulLiteral","src":"30784:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"30773:3:21","nodeType":"YulIdentifier","src":"30773:3:21"},"nativeSrc":"30773:16:21","nodeType":"YulFunctionCall","src":"30773:16:21"}],"functionName":{"name":"mload","nativeSrc":"30767:5:21","nodeType":"YulIdentifier","src":"30767:5:21"},"nativeSrc":"30767:23:21","nodeType":"YulFunctionCall","src":"30767:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"30751:12:21","nodeType":"YulTypedName","src":"30751:12:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"30815:3:21","nodeType":"YulIdentifier","src":"30815:3:21"},{"kind":"number","nativeSrc":"30820:4:21","nodeType":"YulLiteral","src":"30820:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"30811:3:21","nodeType":"YulIdentifier","src":"30811:3:21"},"nativeSrc":"30811:14:21","nodeType":"YulFunctionCall","src":"30811:14:21"},{"arguments":[{"name":"tail","nativeSrc":"30831:4:21","nodeType":"YulIdentifier","src":"30831:4:21"},{"name":"pos","nativeSrc":"30837:3:21","nodeType":"YulIdentifier","src":"30837:3:21"}],"functionName":{"name":"sub","nativeSrc":"30827:3:21","nodeType":"YulIdentifier","src":"30827:3:21"},"nativeSrc":"30827:14:21","nodeType":"YulFunctionCall","src":"30827:14:21"}],"functionName":{"name":"mstore","nativeSrc":"30804:6:21","nodeType":"YulIdentifier","src":"30804:6:21"},"nativeSrc":"30804:38:21","nodeType":"YulFunctionCall","src":"30804:38:21"},"nativeSrc":"30804:38:21","nodeType":"YulExpressionStatement","src":"30804:38:21"},{"nativeSrc":"30855:117:21","nodeType":"YulAssignment","src":"30855:117:21","value":{"arguments":[{"name":"memberValue0","nativeSrc":"30953:12:21","nodeType":"YulIdentifier","src":"30953:12:21"},{"name":"tail","nativeSrc":"30967:4:21","nodeType":"YulIdentifier","src":"30967:4:21"}],"functionName":{"name":"abi_encode_t_struct$_HeaderInfo_$1022_memory_ptr_to_t_struct$_HeaderInfo_$1022_memory_ptr","nativeSrc":"30863:89:21","nodeType":"YulIdentifier","src":"30863:89:21"},"nativeSrc":"30863:109:21","nodeType":"YulFunctionCall","src":"30863:109:21"},"variableNames":[{"name":"tail","nativeSrc":"30855:4:21","nodeType":"YulIdentifier","src":"30855:4:21"}]}]},{"nativeSrc":"30993:236:21","nodeType":"YulBlock","src":"30993:236:21","statements":[{"nativeSrc":"31032:43:21","nodeType":"YulVariableDeclaration","src":"31032:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"31062:5:21","nodeType":"YulIdentifier","src":"31062:5:21"},{"kind":"number","nativeSrc":"31069:4:21","nodeType":"YulLiteral","src":"31069:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"31058:3:21","nodeType":"YulIdentifier","src":"31058:3:21"},"nativeSrc":"31058:16:21","nodeType":"YulFunctionCall","src":"31058:16:21"}],"functionName":{"name":"mload","nativeSrc":"31052:5:21","nodeType":"YulIdentifier","src":"31052:5:21"},"nativeSrc":"31052:23:21","nodeType":"YulFunctionCall","src":"31052:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"31036:12:21","nodeType":"YulTypedName","src":"31036:12:21","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"31190:12:21","nodeType":"YulIdentifier","src":"31190:12:21"},{"arguments":[{"name":"pos","nativeSrc":"31208:3:21","nodeType":"YulIdentifier","src":"31208:3:21"},{"kind":"number","nativeSrc":"31213:4:21","nodeType":"YulLiteral","src":"31213:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"31204:3:21","nodeType":"YulIdentifier","src":"31204:3:21"},"nativeSrc":"31204:14:21","nodeType":"YulFunctionCall","src":"31204:14:21"}],"functionName":{"name":"abi_encode_t_struct$_ResourceMetadata_$1053_memory_ptr_to_t_struct$_ResourceMetadata_$1053_memory_ptr","nativeSrc":"31088:101:21","nodeType":"YulIdentifier","src":"31088:101:21"},"nativeSrc":"31088:131:21","nodeType":"YulFunctionCall","src":"31088:131:21"},"nativeSrc":"31088:131:21","nodeType":"YulExpressionStatement","src":"31088:131:21"}]},{"nativeSrc":"31239:166:21","nodeType":"YulBlock","src":"31239:166:21","statements":[{"nativeSrc":"31274:43:21","nodeType":"YulVariableDeclaration","src":"31274:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"31304:5:21","nodeType":"YulIdentifier","src":"31304:5:21"},{"kind":"number","nativeSrc":"31311:4:21","nodeType":"YulLiteral","src":"31311:4:21","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"31300:3:21","nodeType":"YulIdentifier","src":"31300:3:21"},"nativeSrc":"31300:16:21","nodeType":"YulFunctionCall","src":"31300:16:21"}],"functionName":{"name":"mload","nativeSrc":"31294:5:21","nodeType":"YulIdentifier","src":"31294:5:21"},"nativeSrc":"31294:23:21","nodeType":"YulFunctionCall","src":"31294:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"31278:12:21","nodeType":"YulTypedName","src":"31278:12:21","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"31364:12:21","nodeType":"YulIdentifier","src":"31364:12:21"},{"arguments":[{"name":"pos","nativeSrc":"31382:3:21","nodeType":"YulIdentifier","src":"31382:3:21"},{"kind":"number","nativeSrc":"31387:6:21","nodeType":"YulLiteral","src":"31387:6:21","type":"","value":"0x0140"}],"functionName":{"name":"add","nativeSrc":"31378:3:21","nodeType":"YulIdentifier","src":"31378:3:21"},"nativeSrc":"31378:16:21","nodeType":"YulFunctionCall","src":"31378:16:21"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32","nativeSrc":"31330:33:21","nodeType":"YulIdentifier","src":"31330:33:21"},"nativeSrc":"31330:65:21","nodeType":"YulFunctionCall","src":"31330:65:21"},"nativeSrc":"31330:65:21","nodeType":"YulExpressionStatement","src":"31330:65:21"}]},{"nativeSrc":"31415:11:21","nodeType":"YulAssignment","src":"31415:11:21","value":{"name":"tail","nativeSrc":"31422:4:21","nodeType":"YulIdentifier","src":"31422:4:21"},"variableNames":[{"name":"end","nativeSrc":"31415:3:21","nodeType":"YulIdentifier","src":"31415:3:21"}]}]},"name":"abi_encode_t_struct$_HEADResponse_$1158_memory_ptr_to_t_struct$_HEADResponse_$1158_memory_ptr_fromStack","nativeSrc":"30350:1082:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"30463:5:21","nodeType":"YulTypedName","src":"30463:5:21","type":""},{"name":"pos","nativeSrc":"30470:3:21","nodeType":"YulTypedName","src":"30470:3:21","type":""}],"returnVariables":[{"name":"end","nativeSrc":"30479:3:21","nodeType":"YulTypedName","src":"30479:3:21","type":""}],"src":"30350:1082:21"},{"body":{"nativeSrc":"31596:235:21","nodeType":"YulBlock","src":"31596:235:21","statements":[{"nativeSrc":"31606:26:21","nodeType":"YulAssignment","src":"31606:26:21","value":{"arguments":[{"name":"headStart","nativeSrc":"31618:9:21","nodeType":"YulIdentifier","src":"31618:9:21"},{"kind":"number","nativeSrc":"31629:2:21","nodeType":"YulLiteral","src":"31629:2:21","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"31614:3:21","nodeType":"YulIdentifier","src":"31614:3:21"},"nativeSrc":"31614:18:21","nodeType":"YulFunctionCall","src":"31614:18:21"},"variableNames":[{"name":"tail","nativeSrc":"31606:4:21","nodeType":"YulIdentifier","src":"31606:4:21"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"31653:9:21","nodeType":"YulIdentifier","src":"31653:9:21"},{"kind":"number","nativeSrc":"31664:1:21","nodeType":"YulLiteral","src":"31664:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"31649:3:21","nodeType":"YulIdentifier","src":"31649:3:21"},"nativeSrc":"31649:17:21","nodeType":"YulFunctionCall","src":"31649:17:21"},{"arguments":[{"name":"tail","nativeSrc":"31672:4:21","nodeType":"YulIdentifier","src":"31672:4:21"},{"name":"headStart","nativeSrc":"31678:9:21","nodeType":"YulIdentifier","src":"31678:9:21"}],"functionName":{"name":"sub","nativeSrc":"31668:3:21","nodeType":"YulIdentifier","src":"31668:3:21"},"nativeSrc":"31668:20:21","nodeType":"YulFunctionCall","src":"31668:20:21"}],"functionName":{"name":"mstore","nativeSrc":"31642:6:21","nodeType":"YulIdentifier","src":"31642:6:21"},"nativeSrc":"31642:47:21","nodeType":"YulFunctionCall","src":"31642:47:21"},"nativeSrc":"31642:47:21","nodeType":"YulExpressionStatement","src":"31642:47:21"},{"nativeSrc":"31698:126:21","nodeType":"YulAssignment","src":"31698:126:21","value":{"arguments":[{"name":"value0","nativeSrc":"31810:6:21","nodeType":"YulIdentifier","src":"31810:6:21"},{"name":"tail","nativeSrc":"31819:4:21","nodeType":"YulIdentifier","src":"31819:4:21"}],"functionName":{"name":"abi_encode_t_struct$_HEADResponse_$1158_memory_ptr_to_t_struct$_HEADResponse_$1158_memory_ptr_fromStack","nativeSrc":"31706:103:21","nodeType":"YulIdentifier","src":"31706:103:21"},"nativeSrc":"31706:118:21","nodeType":"YulFunctionCall","src":"31706:118:21"},"variableNames":[{"name":"tail","nativeSrc":"31698:4:21","nodeType":"YulIdentifier","src":"31698:4:21"}]}]},"name":"abi_encode_tuple_t_struct$_HEADResponse_$1158_memory_ptr__to_t_struct$_HEADResponse_$1158_memory_ptr__fromStack_reversed","nativeSrc":"31438:393:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"31568:9:21","nodeType":"YulTypedName","src":"31568:9:21","type":""},{"name":"value0","nativeSrc":"31580:6:21","nodeType":"YulTypedName","src":"31580:6:21","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"31591:4:21","nodeType":"YulTypedName","src":"31591:4:21","type":""}],"src":"31438:393:21"},{"body":{"nativeSrc":"31882:81:21","nodeType":"YulBlock","src":"31882:81:21","statements":[{"nativeSrc":"31892:65:21","nodeType":"YulAssignment","src":"31892:65:21","value":{"arguments":[{"name":"value","nativeSrc":"31907:5:21","nodeType":"YulIdentifier","src":"31907:5:21"},{"kind":"number","nativeSrc":"31914:42:21","nodeType":"YulLiteral","src":"31914:42:21","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nativeSrc":"31903:3:21","nodeType":"YulIdentifier","src":"31903:3:21"},"nativeSrc":"31903:54:21","nodeType":"YulFunctionCall","src":"31903:54:21"},"variableNames":[{"name":"cleaned","nativeSrc":"31892:7:21","nodeType":"YulIdentifier","src":"31892:7:21"}]}]},"name":"cleanup_t_uint160","nativeSrc":"31837:126:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"31864:5:21","nodeType":"YulTypedName","src":"31864:5:21","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"31874:7:21","nodeType":"YulTypedName","src":"31874:7:21","type":""}],"src":"31837:126:21"},{"body":{"nativeSrc":"32014:51:21","nodeType":"YulBlock","src":"32014:51:21","statements":[{"nativeSrc":"32024:35:21","nodeType":"YulAssignment","src":"32024:35:21","value":{"arguments":[{"name":"value","nativeSrc":"32053:5:21","nodeType":"YulIdentifier","src":"32053:5:21"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"32035:17:21","nodeType":"YulIdentifier","src":"32035:17:21"},"nativeSrc":"32035:24:21","nodeType":"YulFunctionCall","src":"32035:24:21"},"variableNames":[{"name":"cleaned","nativeSrc":"32024:7:21","nodeType":"YulIdentifier","src":"32024:7:21"}]}]},"name":"cleanup_t_address","nativeSrc":"31969:96:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"31996:5:21","nodeType":"YulTypedName","src":"31996:5:21","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"32006:7:21","nodeType":"YulTypedName","src":"32006:7:21","type":""}],"src":"31969:96:21"},{"body":{"nativeSrc":"32114:79:21","nodeType":"YulBlock","src":"32114:79:21","statements":[{"body":{"nativeSrc":"32171:16:21","nodeType":"YulBlock","src":"32171:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"32180:1:21","nodeType":"YulLiteral","src":"32180:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"32183:1:21","nodeType":"YulLiteral","src":"32183:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"32173:6:21","nodeType":"YulIdentifier","src":"32173:6:21"},"nativeSrc":"32173:12:21","nodeType":"YulFunctionCall","src":"32173:12:21"},"nativeSrc":"32173:12:21","nodeType":"YulExpressionStatement","src":"32173:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"32137:5:21","nodeType":"YulIdentifier","src":"32137:5:21"},{"arguments":[{"name":"value","nativeSrc":"32162:5:21","nodeType":"YulIdentifier","src":"32162:5:21"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"32144:17:21","nodeType":"YulIdentifier","src":"32144:17:21"},"nativeSrc":"32144:24:21","nodeType":"YulFunctionCall","src":"32144:24:21"}],"functionName":{"name":"eq","nativeSrc":"32134:2:21","nodeType":"YulIdentifier","src":"32134:2:21"},"nativeSrc":"32134:35:21","nodeType":"YulFunctionCall","src":"32134:35:21"}],"functionName":{"name":"iszero","nativeSrc":"32127:6:21","nodeType":"YulIdentifier","src":"32127:6:21"},"nativeSrc":"32127:43:21","nodeType":"YulFunctionCall","src":"32127:43:21"},"nativeSrc":"32124:63:21","nodeType":"YulIf","src":"32124:63:21"}]},"name":"validator_revert_t_address","nativeSrc":"32071:122:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"32107:5:21","nodeType":"YulTypedName","src":"32107:5:21","type":""}],"src":"32071:122:21"},{"body":{"nativeSrc":"32251:87:21","nodeType":"YulBlock","src":"32251:87:21","statements":[{"nativeSrc":"32261:29:21","nodeType":"YulAssignment","src":"32261:29:21","value":{"arguments":[{"name":"offset","nativeSrc":"32283:6:21","nodeType":"YulIdentifier","src":"32283:6:21"}],"functionName":{"name":"calldataload","nativeSrc":"32270:12:21","nodeType":"YulIdentifier","src":"32270:12:21"},"nativeSrc":"32270:20:21","nodeType":"YulFunctionCall","src":"32270:20:21"},"variableNames":[{"name":"value","nativeSrc":"32261:5:21","nodeType":"YulIdentifier","src":"32261:5:21"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"32326:5:21","nodeType":"YulIdentifier","src":"32326:5:21"}],"functionName":{"name":"validator_revert_t_address","nativeSrc":"32299:26:21","nodeType":"YulIdentifier","src":"32299:26:21"},"nativeSrc":"32299:33:21","nodeType":"YulFunctionCall","src":"32299:33:21"},"nativeSrc":"32299:33:21","nodeType":"YulExpressionStatement","src":"32299:33:21"}]},"name":"abi_decode_t_address","nativeSrc":"32199:139:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"32229:6:21","nodeType":"YulTypedName","src":"32229:6:21","type":""},{"name":"end","nativeSrc":"32237:3:21","nodeType":"YulTypedName","src":"32237:3:21","type":""}],"returnVariables":[{"name":"value","nativeSrc":"32245:5:21","nodeType":"YulTypedName","src":"32245:5:21","type":""}],"src":"32199:139:21"},{"body":{"nativeSrc":"32427:391:21","nodeType":"YulBlock","src":"32427:391:21","statements":[{"body":{"nativeSrc":"32473:83:21","nodeType":"YulBlock","src":"32473:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"32475:77:21","nodeType":"YulIdentifier","src":"32475:77:21"},"nativeSrc":"32475:79:21","nodeType":"YulFunctionCall","src":"32475:79:21"},"nativeSrc":"32475:79:21","nodeType":"YulExpressionStatement","src":"32475:79:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"32448:7:21","nodeType":"YulIdentifier","src":"32448:7:21"},{"name":"headStart","nativeSrc":"32457:9:21","nodeType":"YulIdentifier","src":"32457:9:21"}],"functionName":{"name":"sub","nativeSrc":"32444:3:21","nodeType":"YulIdentifier","src":"32444:3:21"},"nativeSrc":"32444:23:21","nodeType":"YulFunctionCall","src":"32444:23:21"},{"kind":"number","nativeSrc":"32469:2:21","nodeType":"YulLiteral","src":"32469:2:21","type":"","value":"64"}],"functionName":{"name":"slt","nativeSrc":"32440:3:21","nodeType":"YulIdentifier","src":"32440:3:21"},"nativeSrc":"32440:32:21","nodeType":"YulFunctionCall","src":"32440:32:21"},"nativeSrc":"32437:119:21","nodeType":"YulIf","src":"32437:119:21"},{"nativeSrc":"32566:117:21","nodeType":"YulBlock","src":"32566:117:21","statements":[{"nativeSrc":"32581:15:21","nodeType":"YulVariableDeclaration","src":"32581:15:21","value":{"kind":"number","nativeSrc":"32595:1:21","nodeType":"YulLiteral","src":"32595:1:21","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"32585:6:21","nodeType":"YulTypedName","src":"32585:6:21","type":""}]},{"nativeSrc":"32610:63:21","nodeType":"YulAssignment","src":"32610:63:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32645:9:21","nodeType":"YulIdentifier","src":"32645:9:21"},{"name":"offset","nativeSrc":"32656:6:21","nodeType":"YulIdentifier","src":"32656:6:21"}],"functionName":{"name":"add","nativeSrc":"32641:3:21","nodeType":"YulIdentifier","src":"32641:3:21"},"nativeSrc":"32641:22:21","nodeType":"YulFunctionCall","src":"32641:22:21"},{"name":"dataEnd","nativeSrc":"32665:7:21","nodeType":"YulIdentifier","src":"32665:7:21"}],"functionName":{"name":"abi_decode_t_bytes32","nativeSrc":"32620:20:21","nodeType":"YulIdentifier","src":"32620:20:21"},"nativeSrc":"32620:53:21","nodeType":"YulFunctionCall","src":"32620:53:21"},"variableNames":[{"name":"value0","nativeSrc":"32610:6:21","nodeType":"YulIdentifier","src":"32610:6:21"}]}]},{"nativeSrc":"32693:118:21","nodeType":"YulBlock","src":"32693:118:21","statements":[{"nativeSrc":"32708:16:21","nodeType":"YulVariableDeclaration","src":"32708:16:21","value":{"kind":"number","nativeSrc":"32722:2:21","nodeType":"YulLiteral","src":"32722:2:21","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"32712:6:21","nodeType":"YulTypedName","src":"32712:6:21","type":""}]},{"nativeSrc":"32738:63:21","nodeType":"YulAssignment","src":"32738:63:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"32773:9:21","nodeType":"YulIdentifier","src":"32773:9:21"},{"name":"offset","nativeSrc":"32784:6:21","nodeType":"YulIdentifier","src":"32784:6:21"}],"functionName":{"name":"add","nativeSrc":"32769:3:21","nodeType":"YulIdentifier","src":"32769:3:21"},"nativeSrc":"32769:22:21","nodeType":"YulFunctionCall","src":"32769:22:21"},{"name":"dataEnd","nativeSrc":"32793:7:21","nodeType":"YulIdentifier","src":"32793:7:21"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"32748:20:21","nodeType":"YulIdentifier","src":"32748:20:21"},"nativeSrc":"32748:53:21","nodeType":"YulFunctionCall","src":"32748:53:21"},"variableNames":[{"name":"value1","nativeSrc":"32738:6:21","nodeType":"YulIdentifier","src":"32738:6:21"}]}]}]},"name":"abi_decode_tuple_t_bytes32t_address","nativeSrc":"32344:474:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"32389:9:21","nodeType":"YulTypedName","src":"32389:9:21","type":""},{"name":"dataEnd","nativeSrc":"32400:7:21","nodeType":"YulTypedName","src":"32400:7:21","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"32412:6:21","nodeType":"YulTypedName","src":"32412:6:21","type":""},{"name":"value1","nativeSrc":"32420:6:21","nodeType":"YulTypedName","src":"32420:6:21","type":""}],"src":"32344:474:21"},{"body":{"nativeSrc":"32938:871:21","nodeType":"YulBlock","src":"32938:871:21","statements":[{"body":{"nativeSrc":"32982:83:21","nodeType":"YulBlock","src":"32982:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"32984:77:21","nodeType":"YulIdentifier","src":"32984:77:21"},"nativeSrc":"32984:79:21","nodeType":"YulFunctionCall","src":"32984:79:21"},"nativeSrc":"32984:79:21","nodeType":"YulExpressionStatement","src":"32984:79:21"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"32959:3:21","nodeType":"YulIdentifier","src":"32959:3:21"},{"name":"headStart","nativeSrc":"32964:9:21","nodeType":"YulIdentifier","src":"32964:9:21"}],"functionName":{"name":"sub","nativeSrc":"32955:3:21","nodeType":"YulIdentifier","src":"32955:3:21"},"nativeSrc":"32955:19:21","nodeType":"YulFunctionCall","src":"32955:19:21"},{"kind":"number","nativeSrc":"32976:4:21","nodeType":"YulLiteral","src":"32976:4:21","type":"","value":"0x40"}],"functionName":{"name":"slt","nativeSrc":"32951:3:21","nodeType":"YulIdentifier","src":"32951:3:21"},"nativeSrc":"32951:30:21","nodeType":"YulFunctionCall","src":"32951:30:21"},"nativeSrc":"32948:117:21","nodeType":"YulIf","src":"32948:117:21"},{"nativeSrc":"33074:30:21","nodeType":"YulAssignment","src":"33074:30:21","value":{"arguments":[{"kind":"number","nativeSrc":"33099:4:21","nodeType":"YulLiteral","src":"33099:4:21","type":"","value":"0x40"}],"functionName":{"name":"allocate_memory","nativeSrc":"33083:15:21","nodeType":"YulIdentifier","src":"33083:15:21"},"nativeSrc":"33083:21:21","nodeType":"YulFunctionCall","src":"33083:21:21"},"variableNames":[{"name":"value","nativeSrc":"33074:5:21","nodeType":"YulIdentifier","src":"33074:5:21"}]},{"nativeSrc":"33114:339:21","nodeType":"YulBlock","src":"33114:339:21","statements":[{"nativeSrc":"33149:45:21","nodeType":"YulVariableDeclaration","src":"33149:45:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33180:9:21","nodeType":"YulIdentifier","src":"33180:9:21"},{"kind":"number","nativeSrc":"33191:1:21","nodeType":"YulLiteral","src":"33191:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"33176:3:21","nodeType":"YulIdentifier","src":"33176:3:21"},"nativeSrc":"33176:17:21","nodeType":"YulFunctionCall","src":"33176:17:21"}],"functionName":{"name":"calldataload","nativeSrc":"33163:12:21","nodeType":"YulIdentifier","src":"33163:12:21"},"nativeSrc":"33163:31:21","nodeType":"YulFunctionCall","src":"33163:31:21"},"variables":[{"name":"offset","nativeSrc":"33153:6:21","nodeType":"YulTypedName","src":"33153:6:21","type":""}]},{"body":{"nativeSrc":"33241:83:21","nodeType":"YulBlock","src":"33241:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"33243:77:21","nodeType":"YulIdentifier","src":"33243:77:21"},"nativeSrc":"33243:79:21","nodeType":"YulFunctionCall","src":"33243:79:21"},"nativeSrc":"33243:79:21","nodeType":"YulExpressionStatement","src":"33243:79:21"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"33213:6:21","nodeType":"YulIdentifier","src":"33213:6:21"},{"kind":"number","nativeSrc":"33221:18:21","nodeType":"YulLiteral","src":"33221:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"33210:2:21","nodeType":"YulIdentifier","src":"33210:2:21"},"nativeSrc":"33210:30:21","nodeType":"YulFunctionCall","src":"33210:30:21"},"nativeSrc":"33207:117:21","nodeType":"YulIf","src":"33207:117:21"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"33349:5:21","nodeType":"YulIdentifier","src":"33349:5:21"},{"kind":"number","nativeSrc":"33356:4:21","nodeType":"YulLiteral","src":"33356:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"33345:3:21","nodeType":"YulIdentifier","src":"33345:3:21"},"nativeSrc":"33345:16:21","nodeType":"YulFunctionCall","src":"33345:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33417:9:21","nodeType":"YulIdentifier","src":"33417:9:21"},{"name":"offset","nativeSrc":"33428:6:21","nodeType":"YulIdentifier","src":"33428:6:21"}],"functionName":{"name":"add","nativeSrc":"33413:3:21","nodeType":"YulIdentifier","src":"33413:3:21"},"nativeSrc":"33413:22:21","nodeType":"YulFunctionCall","src":"33413:22:21"},{"name":"end","nativeSrc":"33437:3:21","nodeType":"YulIdentifier","src":"33437:3:21"}],"functionName":{"name":"abi_decode_t_struct$_HEADRequest_$1142_memory_ptr","nativeSrc":"33363:49:21","nodeType":"YulIdentifier","src":"33363:49:21"},"nativeSrc":"33363:78:21","nodeType":"YulFunctionCall","src":"33363:78:21"}],"functionName":{"name":"mstore","nativeSrc":"33338:6:21","nodeType":"YulIdentifier","src":"33338:6:21"},"nativeSrc":"33338:104:21","nodeType":"YulFunctionCall","src":"33338:104:21"},"nativeSrc":"33338:104:21","nodeType":"YulExpressionStatement","src":"33338:104:21"}]},{"nativeSrc":"33463:339:21","nodeType":"YulBlock","src":"33463:339:21","statements":[{"nativeSrc":"33498:46:21","nodeType":"YulVariableDeclaration","src":"33498:46:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33529:9:21","nodeType":"YulIdentifier","src":"33529:9:21"},{"kind":"number","nativeSrc":"33540:2:21","nodeType":"YulLiteral","src":"33540:2:21","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"33525:3:21","nodeType":"YulIdentifier","src":"33525:3:21"},"nativeSrc":"33525:18:21","nodeType":"YulFunctionCall","src":"33525:18:21"}],"functionName":{"name":"calldataload","nativeSrc":"33512:12:21","nodeType":"YulIdentifier","src":"33512:12:21"},"nativeSrc":"33512:32:21","nodeType":"YulFunctionCall","src":"33512:32:21"},"variables":[{"name":"offset","nativeSrc":"33502:6:21","nodeType":"YulTypedName","src":"33502:6:21","type":""}]},{"body":{"nativeSrc":"33591:83:21","nodeType":"YulBlock","src":"33591:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"33593:77:21","nodeType":"YulIdentifier","src":"33593:77:21"},"nativeSrc":"33593:79:21","nodeType":"YulFunctionCall","src":"33593:79:21"},"nativeSrc":"33593:79:21","nodeType":"YulExpressionStatement","src":"33593:79:21"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"33563:6:21","nodeType":"YulIdentifier","src":"33563:6:21"},{"kind":"number","nativeSrc":"33571:18:21","nodeType":"YulLiteral","src":"33571:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"33560:2:21","nodeType":"YulIdentifier","src":"33560:2:21"},"nativeSrc":"33560:30:21","nodeType":"YulFunctionCall","src":"33560:30:21"},"nativeSrc":"33557:117:21","nodeType":"YulIf","src":"33557:117:21"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"33699:5:21","nodeType":"YulIdentifier","src":"33699:5:21"},{"kind":"number","nativeSrc":"33706:4:21","nodeType":"YulLiteral","src":"33706:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"33695:3:21","nodeType":"YulIdentifier","src":"33695:3:21"},"nativeSrc":"33695:16:21","nodeType":"YulFunctionCall","src":"33695:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"33766:9:21","nodeType":"YulIdentifier","src":"33766:9:21"},{"name":"offset","nativeSrc":"33777:6:21","nodeType":"YulIdentifier","src":"33777:6:21"}],"functionName":{"name":"add","nativeSrc":"33762:3:21","nodeType":"YulIdentifier","src":"33762:3:21"},"nativeSrc":"33762:22:21","nodeType":"YulFunctionCall","src":"33762:22:21"},{"name":"end","nativeSrc":"33786:3:21","nodeType":"YulIdentifier","src":"33786:3:21"}],"functionName":{"name":"abi_decode_t_struct$_HeaderInfo_$1022_memory_ptr","nativeSrc":"33713:48:21","nodeType":"YulIdentifier","src":"33713:48:21"},"nativeSrc":"33713:77:21","nodeType":"YulFunctionCall","src":"33713:77:21"}],"functionName":{"name":"mstore","nativeSrc":"33688:6:21","nodeType":"YulIdentifier","src":"33688:6:21"},"nativeSrc":"33688:103:21","nodeType":"YulFunctionCall","src":"33688:103:21"},"nativeSrc":"33688:103:21","nodeType":"YulExpressionStatement","src":"33688:103:21"}]}]},"name":"abi_decode_t_struct$_DEFINERequest_$1204_memory_ptr","nativeSrc":"32852:957:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"32913:9:21","nodeType":"YulTypedName","src":"32913:9:21","type":""},{"name":"end","nativeSrc":"32924:3:21","nodeType":"YulTypedName","src":"32924:3:21","type":""}],"returnVariables":[{"name":"value","nativeSrc":"32932:5:21","nodeType":"YulTypedName","src":"32932:5:21","type":""}],"src":"32852:957:21"},{"body":{"nativeSrc":"33912:454:21","nodeType":"YulBlock","src":"33912:454:21","statements":[{"body":{"nativeSrc":"33958:83:21","nodeType":"YulBlock","src":"33958:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"33960:77:21","nodeType":"YulIdentifier","src":"33960:77:21"},"nativeSrc":"33960:79:21","nodeType":"YulFunctionCall","src":"33960:79:21"},"nativeSrc":"33960:79:21","nodeType":"YulExpressionStatement","src":"33960:79:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"33933:7:21","nodeType":"YulIdentifier","src":"33933:7:21"},{"name":"headStart","nativeSrc":"33942:9:21","nodeType":"YulIdentifier","src":"33942:9:21"}],"functionName":{"name":"sub","nativeSrc":"33929:3:21","nodeType":"YulIdentifier","src":"33929:3:21"},"nativeSrc":"33929:23:21","nodeType":"YulFunctionCall","src":"33929:23:21"},{"kind":"number","nativeSrc":"33954:2:21","nodeType":"YulLiteral","src":"33954:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"33925:3:21","nodeType":"YulIdentifier","src":"33925:3:21"},"nativeSrc":"33925:32:21","nodeType":"YulFunctionCall","src":"33925:32:21"},"nativeSrc":"33922:119:21","nodeType":"YulIf","src":"33922:119:21"},{"nativeSrc":"34051:308:21","nodeType":"YulBlock","src":"34051:308:21","statements":[{"nativeSrc":"34066:45:21","nodeType":"YulVariableDeclaration","src":"34066:45:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34097:9:21","nodeType":"YulIdentifier","src":"34097:9:21"},{"kind":"number","nativeSrc":"34108:1:21","nodeType":"YulLiteral","src":"34108:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"34093:3:21","nodeType":"YulIdentifier","src":"34093:3:21"},"nativeSrc":"34093:17:21","nodeType":"YulFunctionCall","src":"34093:17:21"}],"functionName":{"name":"calldataload","nativeSrc":"34080:12:21","nodeType":"YulIdentifier","src":"34080:12:21"},"nativeSrc":"34080:31:21","nodeType":"YulFunctionCall","src":"34080:31:21"},"variables":[{"name":"offset","nativeSrc":"34070:6:21","nodeType":"YulTypedName","src":"34070:6:21","type":""}]},{"body":{"nativeSrc":"34158:83:21","nodeType":"YulBlock","src":"34158:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"34160:77:21","nodeType":"YulIdentifier","src":"34160:77:21"},"nativeSrc":"34160:79:21","nodeType":"YulFunctionCall","src":"34160:79:21"},"nativeSrc":"34160:79:21","nodeType":"YulExpressionStatement","src":"34160:79:21"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"34130:6:21","nodeType":"YulIdentifier","src":"34130:6:21"},{"kind":"number","nativeSrc":"34138:18:21","nodeType":"YulLiteral","src":"34138:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"34127:2:21","nodeType":"YulIdentifier","src":"34127:2:21"},"nativeSrc":"34127:30:21","nodeType":"YulFunctionCall","src":"34127:30:21"},"nativeSrc":"34124:117:21","nodeType":"YulIf","src":"34124:117:21"},{"nativeSrc":"34255:94:21","nodeType":"YulAssignment","src":"34255:94:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"34321:9:21","nodeType":"YulIdentifier","src":"34321:9:21"},{"name":"offset","nativeSrc":"34332:6:21","nodeType":"YulIdentifier","src":"34332:6:21"}],"functionName":{"name":"add","nativeSrc":"34317:3:21","nodeType":"YulIdentifier","src":"34317:3:21"},"nativeSrc":"34317:22:21","nodeType":"YulFunctionCall","src":"34317:22:21"},{"name":"dataEnd","nativeSrc":"34341:7:21","nodeType":"YulIdentifier","src":"34341:7:21"}],"functionName":{"name":"abi_decode_t_struct$_DEFINERequest_$1204_memory_ptr","nativeSrc":"34265:51:21","nodeType":"YulIdentifier","src":"34265:51:21"},"nativeSrc":"34265:84:21","nodeType":"YulFunctionCall","src":"34265:84:21"},"variableNames":[{"name":"value0","nativeSrc":"34255:6:21","nodeType":"YulIdentifier","src":"34255:6:21"}]}]}]},"name":"abi_decode_tuple_t_struct$_DEFINERequest_$1204_memory_ptr","nativeSrc":"33815:551:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"33882:9:21","nodeType":"YulTypedName","src":"33882:9:21","type":""},{"name":"dataEnd","nativeSrc":"33893:7:21","nodeType":"YulTypedName","src":"33893:7:21","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"33905:6:21","nodeType":"YulTypedName","src":"33905:6:21","type":""}],"src":"33815:551:21"},{"body":{"nativeSrc":"34564:531:21","nodeType":"YulBlock","src":"34564:531:21","statements":[{"nativeSrc":"34574:26:21","nodeType":"YulVariableDeclaration","src":"34574:26:21","value":{"arguments":[{"name":"pos","nativeSrc":"34590:3:21","nodeType":"YulIdentifier","src":"34590:3:21"},{"kind":"number","nativeSrc":"34595:4:21","nodeType":"YulLiteral","src":"34595:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"34586:3:21","nodeType":"YulIdentifier","src":"34586:3:21"},"nativeSrc":"34586:14:21","nodeType":"YulFunctionCall","src":"34586:14:21"},"variables":[{"name":"tail","nativeSrc":"34578:4:21","nodeType":"YulTypedName","src":"34578:4:21","type":""}]},{"nativeSrc":"34610:275:21","nodeType":"YulBlock","src":"34610:275:21","statements":[{"nativeSrc":"34645:43:21","nodeType":"YulVariableDeclaration","src":"34645:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"34675:5:21","nodeType":"YulIdentifier","src":"34675:5:21"},{"kind":"number","nativeSrc":"34682:4:21","nodeType":"YulLiteral","src":"34682:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"34671:3:21","nodeType":"YulIdentifier","src":"34671:3:21"},"nativeSrc":"34671:16:21","nodeType":"YulFunctionCall","src":"34671:16:21"}],"functionName":{"name":"mload","nativeSrc":"34665:5:21","nodeType":"YulIdentifier","src":"34665:5:21"},"nativeSrc":"34665:23:21","nodeType":"YulFunctionCall","src":"34665:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"34649:12:21","nodeType":"YulTypedName","src":"34649:12:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"34713:3:21","nodeType":"YulIdentifier","src":"34713:3:21"},{"kind":"number","nativeSrc":"34718:4:21","nodeType":"YulLiteral","src":"34718:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"34709:3:21","nodeType":"YulIdentifier","src":"34709:3:21"},"nativeSrc":"34709:14:21","nodeType":"YulFunctionCall","src":"34709:14:21"},{"arguments":[{"name":"tail","nativeSrc":"34729:4:21","nodeType":"YulIdentifier","src":"34729:4:21"},{"name":"pos","nativeSrc":"34735:3:21","nodeType":"YulIdentifier","src":"34735:3:21"}],"functionName":{"name":"sub","nativeSrc":"34725:3:21","nodeType":"YulIdentifier","src":"34725:3:21"},"nativeSrc":"34725:14:21","nodeType":"YulFunctionCall","src":"34725:14:21"}],"functionName":{"name":"mstore","nativeSrc":"34702:6:21","nodeType":"YulIdentifier","src":"34702:6:21"},"nativeSrc":"34702:38:21","nodeType":"YulFunctionCall","src":"34702:38:21"},"nativeSrc":"34702:38:21","nodeType":"YulExpressionStatement","src":"34702:38:21"},{"nativeSrc":"34753:121:21","nodeType":"YulAssignment","src":"34753:121:21","value":{"arguments":[{"name":"memberValue0","nativeSrc":"34855:12:21","nodeType":"YulIdentifier","src":"34855:12:21"},{"name":"tail","nativeSrc":"34869:4:21","nodeType":"YulIdentifier","src":"34869:4:21"}],"functionName":{"name":"abi_encode_t_struct$_HEADResponse_$1158_memory_ptr_to_t_struct$_HEADResponse_$1158_memory_ptr","nativeSrc":"34761:93:21","nodeType":"YulIdentifier","src":"34761:93:21"},"nativeSrc":"34761:113:21","nodeType":"YulFunctionCall","src":"34761:113:21"},"variableNames":[{"name":"tail","nativeSrc":"34753:4:21","nodeType":"YulIdentifier","src":"34753:4:21"}]}]},{"nativeSrc":"34895:173:21","nodeType":"YulBlock","src":"34895:173:21","statements":[{"nativeSrc":"34939:43:21","nodeType":"YulVariableDeclaration","src":"34939:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"34969:5:21","nodeType":"YulIdentifier","src":"34969:5:21"},{"kind":"number","nativeSrc":"34976:4:21","nodeType":"YulLiteral","src":"34976:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"34965:3:21","nodeType":"YulIdentifier","src":"34965:3:21"},"nativeSrc":"34965:16:21","nodeType":"YulFunctionCall","src":"34965:16:21"}],"functionName":{"name":"mload","nativeSrc":"34959:5:21","nodeType":"YulIdentifier","src":"34959:5:21"},"nativeSrc":"34959:23:21","nodeType":"YulFunctionCall","src":"34959:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"34943:12:21","nodeType":"YulTypedName","src":"34943:12:21","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"35029:12:21","nodeType":"YulIdentifier","src":"35029:12:21"},{"arguments":[{"name":"pos","nativeSrc":"35047:3:21","nodeType":"YulIdentifier","src":"35047:3:21"},{"kind":"number","nativeSrc":"35052:4:21","nodeType":"YulLiteral","src":"35052:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"35043:3:21","nodeType":"YulIdentifier","src":"35043:3:21"},"nativeSrc":"35043:14:21","nodeType":"YulFunctionCall","src":"35043:14:21"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32","nativeSrc":"34995:33:21","nodeType":"YulIdentifier","src":"34995:33:21"},"nativeSrc":"34995:63:21","nodeType":"YulFunctionCall","src":"34995:63:21"},"nativeSrc":"34995:63:21","nodeType":"YulExpressionStatement","src":"34995:63:21"}]},{"nativeSrc":"35078:11:21","nodeType":"YulAssignment","src":"35078:11:21","value":{"name":"tail","nativeSrc":"35085:4:21","nodeType":"YulIdentifier","src":"35085:4:21"},"variableNames":[{"name":"end","nativeSrc":"35078:3:21","nodeType":"YulIdentifier","src":"35078:3:21"}]}]},"name":"abi_encode_t_struct$_DEFINEResponse_$1213_memory_ptr_to_t_struct$_DEFINEResponse_$1213_memory_ptr_fromStack","nativeSrc":"34426:669:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"34543:5:21","nodeType":"YulTypedName","src":"34543:5:21","type":""},{"name":"pos","nativeSrc":"34550:3:21","nodeType":"YulTypedName","src":"34550:3:21","type":""}],"returnVariables":[{"name":"end","nativeSrc":"34559:3:21","nodeType":"YulTypedName","src":"34559:3:21","type":""}],"src":"34426:669:21"},{"body":{"nativeSrc":"35263:239:21","nodeType":"YulBlock","src":"35263:239:21","statements":[{"nativeSrc":"35273:26:21","nodeType":"YulAssignment","src":"35273:26:21","value":{"arguments":[{"name":"headStart","nativeSrc":"35285:9:21","nodeType":"YulIdentifier","src":"35285:9:21"},{"kind":"number","nativeSrc":"35296:2:21","nodeType":"YulLiteral","src":"35296:2:21","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"35281:3:21","nodeType":"YulIdentifier","src":"35281:3:21"},"nativeSrc":"35281:18:21","nodeType":"YulFunctionCall","src":"35281:18:21"},"variableNames":[{"name":"tail","nativeSrc":"35273:4:21","nodeType":"YulIdentifier","src":"35273:4:21"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"35320:9:21","nodeType":"YulIdentifier","src":"35320:9:21"},{"kind":"number","nativeSrc":"35331:1:21","nodeType":"YulLiteral","src":"35331:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"35316:3:21","nodeType":"YulIdentifier","src":"35316:3:21"},"nativeSrc":"35316:17:21","nodeType":"YulFunctionCall","src":"35316:17:21"},{"arguments":[{"name":"tail","nativeSrc":"35339:4:21","nodeType":"YulIdentifier","src":"35339:4:21"},{"name":"headStart","nativeSrc":"35345:9:21","nodeType":"YulIdentifier","src":"35345:9:21"}],"functionName":{"name":"sub","nativeSrc":"35335:3:21","nodeType":"YulIdentifier","src":"35335:3:21"},"nativeSrc":"35335:20:21","nodeType":"YulFunctionCall","src":"35335:20:21"}],"functionName":{"name":"mstore","nativeSrc":"35309:6:21","nodeType":"YulIdentifier","src":"35309:6:21"},"nativeSrc":"35309:47:21","nodeType":"YulFunctionCall","src":"35309:47:21"},"nativeSrc":"35309:47:21","nodeType":"YulExpressionStatement","src":"35309:47:21"},{"nativeSrc":"35365:130:21","nodeType":"YulAssignment","src":"35365:130:21","value":{"arguments":[{"name":"value0","nativeSrc":"35481:6:21","nodeType":"YulIdentifier","src":"35481:6:21"},{"name":"tail","nativeSrc":"35490:4:21","nodeType":"YulIdentifier","src":"35490:4:21"}],"functionName":{"name":"abi_encode_t_struct$_DEFINEResponse_$1213_memory_ptr_to_t_struct$_DEFINEResponse_$1213_memory_ptr_fromStack","nativeSrc":"35373:107:21","nodeType":"YulIdentifier","src":"35373:107:21"},"nativeSrc":"35373:122:21","nodeType":"YulFunctionCall","src":"35373:122:21"},"variableNames":[{"name":"tail","nativeSrc":"35365:4:21","nodeType":"YulIdentifier","src":"35365:4:21"}]}]},"name":"abi_encode_tuple_t_struct$_DEFINEResponse_$1213_memory_ptr__to_t_struct$_DEFINEResponse_$1213_memory_ptr__fromStack_reversed","nativeSrc":"35101:401:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"35235:9:21","nodeType":"YulTypedName","src":"35235:9:21","type":""},{"name":"value0","nativeSrc":"35247:6:21","nodeType":"YulTypedName","src":"35247:6:21","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"35258:4:21","nodeType":"YulTypedName","src":"35258:4:21","type":""}],"src":"35101:401:21"},{"body":{"nativeSrc":"35550:78:21","nodeType":"YulBlock","src":"35550:78:21","statements":[{"body":{"nativeSrc":"35606:16:21","nodeType":"YulBlock","src":"35606:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"35615:1:21","nodeType":"YulLiteral","src":"35615:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"35618:1:21","nodeType":"YulLiteral","src":"35618:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"35608:6:21","nodeType":"YulIdentifier","src":"35608:6:21"},"nativeSrc":"35608:12:21","nodeType":"YulFunctionCall","src":"35608:12:21"},"nativeSrc":"35608:12:21","nodeType":"YulExpressionStatement","src":"35608:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"35573:5:21","nodeType":"YulIdentifier","src":"35573:5:21"},{"arguments":[{"name":"value","nativeSrc":"35597:5:21","nodeType":"YulIdentifier","src":"35597:5:21"}],"functionName":{"name":"cleanup_t_bytes2","nativeSrc":"35580:16:21","nodeType":"YulIdentifier","src":"35580:16:21"},"nativeSrc":"35580:23:21","nodeType":"YulFunctionCall","src":"35580:23:21"}],"functionName":{"name":"eq","nativeSrc":"35570:2:21","nodeType":"YulIdentifier","src":"35570:2:21"},"nativeSrc":"35570:34:21","nodeType":"YulFunctionCall","src":"35570:34:21"}],"functionName":{"name":"iszero","nativeSrc":"35563:6:21","nodeType":"YulIdentifier","src":"35563:6:21"},"nativeSrc":"35563:42:21","nodeType":"YulFunctionCall","src":"35563:42:21"},"nativeSrc":"35560:62:21","nodeType":"YulIf","src":"35560:62:21"}]},"name":"validator_revert_t_bytes2","nativeSrc":"35508:120:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"35543:5:21","nodeType":"YulTypedName","src":"35543:5:21","type":""}],"src":"35508:120:21"},{"body":{"nativeSrc":"35685:86:21","nodeType":"YulBlock","src":"35685:86:21","statements":[{"nativeSrc":"35695:29:21","nodeType":"YulAssignment","src":"35695:29:21","value":{"arguments":[{"name":"offset","nativeSrc":"35717:6:21","nodeType":"YulIdentifier","src":"35717:6:21"}],"functionName":{"name":"calldataload","nativeSrc":"35704:12:21","nodeType":"YulIdentifier","src":"35704:12:21"},"nativeSrc":"35704:20:21","nodeType":"YulFunctionCall","src":"35704:20:21"},"variableNames":[{"name":"value","nativeSrc":"35695:5:21","nodeType":"YulIdentifier","src":"35695:5:21"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"35759:5:21","nodeType":"YulIdentifier","src":"35759:5:21"}],"functionName":{"name":"validator_revert_t_bytes2","nativeSrc":"35733:25:21","nodeType":"YulIdentifier","src":"35733:25:21"},"nativeSrc":"35733:32:21","nodeType":"YulFunctionCall","src":"35733:32:21"},"nativeSrc":"35733:32:21","nodeType":"YulExpressionStatement","src":"35733:32:21"}]},"name":"abi_decode_t_bytes2","nativeSrc":"35634:137:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"35663:6:21","nodeType":"YulTypedName","src":"35663:6:21","type":""},{"name":"end","nativeSrc":"35671:3:21","nodeType":"YulTypedName","src":"35671:3:21","type":""}],"returnVariables":[{"name":"value","nativeSrc":"35679:5:21","nodeType":"YulTypedName","src":"35679:5:21","type":""}],"src":"35634:137:21"},{"body":{"nativeSrc":"35901:827:21","nodeType":"YulBlock","src":"35901:827:21","statements":[{"body":{"nativeSrc":"35945:83:21","nodeType":"YulBlock","src":"35945:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"35947:77:21","nodeType":"YulIdentifier","src":"35947:77:21"},"nativeSrc":"35947:79:21","nodeType":"YulFunctionCall","src":"35947:79:21"},"nativeSrc":"35947:79:21","nodeType":"YulExpressionStatement","src":"35947:79:21"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"35922:3:21","nodeType":"YulIdentifier","src":"35922:3:21"},{"name":"headStart","nativeSrc":"35927:9:21","nodeType":"YulIdentifier","src":"35927:9:21"}],"functionName":{"name":"sub","nativeSrc":"35918:3:21","nodeType":"YulIdentifier","src":"35918:3:21"},"nativeSrc":"35918:19:21","nodeType":"YulFunctionCall","src":"35918:19:21"},{"kind":"number","nativeSrc":"35939:4:21","nodeType":"YulLiteral","src":"35939:4:21","type":"","value":"0x80"}],"functionName":{"name":"slt","nativeSrc":"35914:3:21","nodeType":"YulIdentifier","src":"35914:3:21"},"nativeSrc":"35914:30:21","nodeType":"YulFunctionCall","src":"35914:30:21"},"nativeSrc":"35911:117:21","nodeType":"YulIf","src":"35911:117:21"},{"nativeSrc":"36037:30:21","nodeType":"YulAssignment","src":"36037:30:21","value":{"arguments":[{"kind":"number","nativeSrc":"36062:4:21","nodeType":"YulLiteral","src":"36062:4:21","type":"","value":"0x80"}],"functionName":{"name":"allocate_memory","nativeSrc":"36046:15:21","nodeType":"YulIdentifier","src":"36046:15:21"},"nativeSrc":"36046:21:21","nodeType":"YulFunctionCall","src":"36046:21:21"},"variableNames":[{"name":"value","nativeSrc":"36037:5:21","nodeType":"YulIdentifier","src":"36037:5:21"}]},{"nativeSrc":"36077:153:21","nodeType":"YulBlock","src":"36077:153:21","statements":[{"nativeSrc":"36116:15:21","nodeType":"YulVariableDeclaration","src":"36116:15:21","value":{"kind":"number","nativeSrc":"36130:1:21","nodeType":"YulLiteral","src":"36130:1:21","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"36120:6:21","nodeType":"YulTypedName","src":"36120:6:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"36156:5:21","nodeType":"YulIdentifier","src":"36156:5:21"},{"kind":"number","nativeSrc":"36163:4:21","nodeType":"YulLiteral","src":"36163:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"36152:3:21","nodeType":"YulIdentifier","src":"36152:3:21"},"nativeSrc":"36152:16:21","nodeType":"YulFunctionCall","src":"36152:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36194:9:21","nodeType":"YulIdentifier","src":"36194:9:21"},{"name":"offset","nativeSrc":"36205:6:21","nodeType":"YulIdentifier","src":"36205:6:21"}],"functionName":{"name":"add","nativeSrc":"36190:3:21","nodeType":"YulIdentifier","src":"36190:3:21"},"nativeSrc":"36190:22:21","nodeType":"YulFunctionCall","src":"36190:22:21"},{"name":"end","nativeSrc":"36214:3:21","nodeType":"YulIdentifier","src":"36214:3:21"}],"functionName":{"name":"abi_decode_t_bytes2","nativeSrc":"36170:19:21","nodeType":"YulIdentifier","src":"36170:19:21"},"nativeSrc":"36170:48:21","nodeType":"YulFunctionCall","src":"36170:48:21"}],"functionName":{"name":"mstore","nativeSrc":"36145:6:21","nodeType":"YulIdentifier","src":"36145:6:21"},"nativeSrc":"36145:74:21","nodeType":"YulFunctionCall","src":"36145:74:21"},"nativeSrc":"36145:74:21","nodeType":"YulExpressionStatement","src":"36145:74:21"}]},{"nativeSrc":"36240:153:21","nodeType":"YulBlock","src":"36240:153:21","statements":[{"nativeSrc":"36278:16:21","nodeType":"YulVariableDeclaration","src":"36278:16:21","value":{"kind":"number","nativeSrc":"36292:2:21","nodeType":"YulLiteral","src":"36292:2:21","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"36282:6:21","nodeType":"YulTypedName","src":"36282:6:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"36319:5:21","nodeType":"YulIdentifier","src":"36319:5:21"},{"kind":"number","nativeSrc":"36326:4:21","nodeType":"YulLiteral","src":"36326:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"36315:3:21","nodeType":"YulIdentifier","src":"36315:3:21"},"nativeSrc":"36315:16:21","nodeType":"YulFunctionCall","src":"36315:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36357:9:21","nodeType":"YulIdentifier","src":"36357:9:21"},{"name":"offset","nativeSrc":"36368:6:21","nodeType":"YulIdentifier","src":"36368:6:21"}],"functionName":{"name":"add","nativeSrc":"36353:3:21","nodeType":"YulIdentifier","src":"36353:3:21"},"nativeSrc":"36353:22:21","nodeType":"YulFunctionCall","src":"36353:22:21"},{"name":"end","nativeSrc":"36377:3:21","nodeType":"YulIdentifier","src":"36377:3:21"}],"functionName":{"name":"abi_decode_t_bytes2","nativeSrc":"36333:19:21","nodeType":"YulIdentifier","src":"36333:19:21"},"nativeSrc":"36333:48:21","nodeType":"YulFunctionCall","src":"36333:48:21"}],"functionName":{"name":"mstore","nativeSrc":"36308:6:21","nodeType":"YulIdentifier","src":"36308:6:21"},"nativeSrc":"36308:74:21","nodeType":"YulFunctionCall","src":"36308:74:21"},"nativeSrc":"36308:74:21","nodeType":"YulExpressionStatement","src":"36308:74:21"}]},{"nativeSrc":"36403:154:21","nodeType":"YulBlock","src":"36403:154:21","statements":[{"nativeSrc":"36442:16:21","nodeType":"YulVariableDeclaration","src":"36442:16:21","value":{"kind":"number","nativeSrc":"36456:2:21","nodeType":"YulLiteral","src":"36456:2:21","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"36446:6:21","nodeType":"YulTypedName","src":"36446:6:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"36483:5:21","nodeType":"YulIdentifier","src":"36483:5:21"},{"kind":"number","nativeSrc":"36490:4:21","nodeType":"YulLiteral","src":"36490:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"36479:3:21","nodeType":"YulIdentifier","src":"36479:3:21"},"nativeSrc":"36479:16:21","nodeType":"YulFunctionCall","src":"36479:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36521:9:21","nodeType":"YulIdentifier","src":"36521:9:21"},{"name":"offset","nativeSrc":"36532:6:21","nodeType":"YulIdentifier","src":"36532:6:21"}],"functionName":{"name":"add","nativeSrc":"36517:3:21","nodeType":"YulIdentifier","src":"36517:3:21"},"nativeSrc":"36517:22:21","nodeType":"YulFunctionCall","src":"36517:22:21"},{"name":"end","nativeSrc":"36541:3:21","nodeType":"YulIdentifier","src":"36541:3:21"}],"functionName":{"name":"abi_decode_t_bytes2","nativeSrc":"36497:19:21","nodeType":"YulIdentifier","src":"36497:19:21"},"nativeSrc":"36497:48:21","nodeType":"YulFunctionCall","src":"36497:48:21"}],"functionName":{"name":"mstore","nativeSrc":"36472:6:21","nodeType":"YulIdentifier","src":"36472:6:21"},"nativeSrc":"36472:74:21","nodeType":"YulFunctionCall","src":"36472:74:21"},"nativeSrc":"36472:74:21","nodeType":"YulExpressionStatement","src":"36472:74:21"}]},{"nativeSrc":"36567:154:21","nodeType":"YulBlock","src":"36567:154:21","statements":[{"nativeSrc":"36606:16:21","nodeType":"YulVariableDeclaration","src":"36606:16:21","value":{"kind":"number","nativeSrc":"36620:2:21","nodeType":"YulLiteral","src":"36620:2:21","type":"","value":"96"},"variables":[{"name":"offset","nativeSrc":"36610:6:21","nodeType":"YulTypedName","src":"36610:6:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"36647:5:21","nodeType":"YulIdentifier","src":"36647:5:21"},{"kind":"number","nativeSrc":"36654:4:21","nodeType":"YulLiteral","src":"36654:4:21","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"36643:3:21","nodeType":"YulIdentifier","src":"36643:3:21"},"nativeSrc":"36643:16:21","nodeType":"YulFunctionCall","src":"36643:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"36685:9:21","nodeType":"YulIdentifier","src":"36685:9:21"},{"name":"offset","nativeSrc":"36696:6:21","nodeType":"YulIdentifier","src":"36696:6:21"}],"functionName":{"name":"add","nativeSrc":"36681:3:21","nodeType":"YulIdentifier","src":"36681:3:21"},"nativeSrc":"36681:22:21","nodeType":"YulFunctionCall","src":"36681:22:21"},{"name":"end","nativeSrc":"36705:3:21","nodeType":"YulIdentifier","src":"36705:3:21"}],"functionName":{"name":"abi_decode_t_bytes2","nativeSrc":"36661:19:21","nodeType":"YulIdentifier","src":"36661:19:21"},"nativeSrc":"36661:48:21","nodeType":"YulFunctionCall","src":"36661:48:21"}],"functionName":{"name":"mstore","nativeSrc":"36636:6:21","nodeType":"YulIdentifier","src":"36636:6:21"},"nativeSrc":"36636:74:21","nodeType":"YulFunctionCall","src":"36636:74:21"},"nativeSrc":"36636:74:21","nodeType":"YulExpressionStatement","src":"36636:74:21"}]}]},"name":"abi_decode_t_struct$_ResourceProperties_$1035_memory_ptr","nativeSrc":"35810:918:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"35876:9:21","nodeType":"YulTypedName","src":"35876:9:21","type":""},{"name":"end","nativeSrc":"35887:3:21","nodeType":"YulTypedName","src":"35887:3:21","type":""}],"returnVariables":[{"name":"value","nativeSrc":"35895:5:21","nodeType":"YulTypedName","src":"35895:5:21","type":""}],"src":"35810:918:21"},{"body":{"nativeSrc":"36850:229:21","nodeType":"YulBlock","src":"36850:229:21","statements":[{"body":{"nativeSrc":"36955:22:21","nodeType":"YulBlock","src":"36955:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"36957:16:21","nodeType":"YulIdentifier","src":"36957:16:21"},"nativeSrc":"36957:18:21","nodeType":"YulFunctionCall","src":"36957:18:21"},"nativeSrc":"36957:18:21","nodeType":"YulExpressionStatement","src":"36957:18:21"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"36927:6:21","nodeType":"YulIdentifier","src":"36927:6:21"},{"kind":"number","nativeSrc":"36935:18:21","nodeType":"YulLiteral","src":"36935:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"36924:2:21","nodeType":"YulIdentifier","src":"36924:2:21"},"nativeSrc":"36924:30:21","nodeType":"YulFunctionCall","src":"36924:30:21"},"nativeSrc":"36921:56:21","nodeType":"YulIf","src":"36921:56:21"},{"nativeSrc":"36987:25:21","nodeType":"YulAssignment","src":"36987:25:21","value":{"arguments":[{"name":"length","nativeSrc":"36999:6:21","nodeType":"YulIdentifier","src":"36999:6:21"},{"kind":"number","nativeSrc":"37007:4:21","nodeType":"YulLiteral","src":"37007:4:21","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"36995:3:21","nodeType":"YulIdentifier","src":"36995:3:21"},"nativeSrc":"36995:17:21","nodeType":"YulFunctionCall","src":"36995:17:21"},"variableNames":[{"name":"size","nativeSrc":"36987:4:21","nodeType":"YulIdentifier","src":"36987:4:21"}]},{"nativeSrc":"37049:23:21","nodeType":"YulAssignment","src":"37049:23:21","value":{"arguments":[{"name":"size","nativeSrc":"37061:4:21","nodeType":"YulIdentifier","src":"37061:4:21"},{"kind":"number","nativeSrc":"37067:4:21","nodeType":"YulLiteral","src":"37067:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"37057:3:21","nodeType":"YulIdentifier","src":"37057:3:21"},"nativeSrc":"37057:15:21","nodeType":"YulFunctionCall","src":"37057:15:21"},"variableNames":[{"name":"size","nativeSrc":"37049:4:21","nodeType":"YulIdentifier","src":"37049:4:21"}]}]},"name":"array_allocation_size_t_array$_t_struct$_DataRegistration_$1064_memory_ptr_$dyn_memory_ptr","nativeSrc":"36734:345:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"36834:6:21","nodeType":"YulTypedName","src":"36834:6:21","type":""}],"returnVariables":[{"name":"size","nativeSrc":"36845:4:21","nodeType":"YulTypedName","src":"36845:4:21","type":""}],"src":"36734:345:21"},{"body":{"nativeSrc":"37151:241:21","nodeType":"YulBlock","src":"37151:241:21","statements":[{"body":{"nativeSrc":"37256:22:21","nodeType":"YulBlock","src":"37256:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"37258:16:21","nodeType":"YulIdentifier","src":"37258:16:21"},"nativeSrc":"37258:18:21","nodeType":"YulFunctionCall","src":"37258:18:21"},"nativeSrc":"37258:18:21","nodeType":"YulExpressionStatement","src":"37258:18:21"}]},"condition":{"arguments":[{"name":"length","nativeSrc":"37228:6:21","nodeType":"YulIdentifier","src":"37228:6:21"},{"kind":"number","nativeSrc":"37236:18:21","nodeType":"YulLiteral","src":"37236:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"37225:2:21","nodeType":"YulIdentifier","src":"37225:2:21"},"nativeSrc":"37225:30:21","nodeType":"YulFunctionCall","src":"37225:30:21"},"nativeSrc":"37222:56:21","nodeType":"YulIf","src":"37222:56:21"},{"nativeSrc":"37288:37:21","nodeType":"YulAssignment","src":"37288:37:21","value":{"arguments":[{"name":"length","nativeSrc":"37318:6:21","nodeType":"YulIdentifier","src":"37318:6:21"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"37296:21:21","nodeType":"YulIdentifier","src":"37296:21:21"},"nativeSrc":"37296:29:21","nodeType":"YulFunctionCall","src":"37296:29:21"},"variableNames":[{"name":"size","nativeSrc":"37288:4:21","nodeType":"YulIdentifier","src":"37288:4:21"}]},{"nativeSrc":"37362:23:21","nodeType":"YulAssignment","src":"37362:23:21","value":{"arguments":[{"name":"size","nativeSrc":"37374:4:21","nodeType":"YulIdentifier","src":"37374:4:21"},{"kind":"number","nativeSrc":"37380:4:21","nodeType":"YulLiteral","src":"37380:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"37370:3:21","nodeType":"YulIdentifier","src":"37370:3:21"},"nativeSrc":"37370:15:21","nodeType":"YulFunctionCall","src":"37370:15:21"},"variableNames":[{"name":"size","nativeSrc":"37362:4:21","nodeType":"YulIdentifier","src":"37362:4:21"}]}]},"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"37085:307:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nativeSrc":"37135:6:21","nodeType":"YulTypedName","src":"37135:6:21","type":""}],"returnVariables":[{"name":"size","nativeSrc":"37146:4:21","nodeType":"YulTypedName","src":"37146:4:21","type":""}],"src":"37085:307:21"},{"body":{"nativeSrc":"37481:340:21","nodeType":"YulBlock","src":"37481:340:21","statements":[{"nativeSrc":"37491:74:21","nodeType":"YulAssignment","src":"37491:74:21","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"37557:6:21","nodeType":"YulIdentifier","src":"37557:6:21"}],"functionName":{"name":"array_allocation_size_t_bytes_memory_ptr","nativeSrc":"37516:40:21","nodeType":"YulIdentifier","src":"37516:40:21"},"nativeSrc":"37516:48:21","nodeType":"YulFunctionCall","src":"37516:48:21"}],"functionName":{"name":"allocate_memory","nativeSrc":"37500:15:21","nodeType":"YulIdentifier","src":"37500:15:21"},"nativeSrc":"37500:65:21","nodeType":"YulFunctionCall","src":"37500:65:21"},"variableNames":[{"name":"array","nativeSrc":"37491:5:21","nodeType":"YulIdentifier","src":"37491:5:21"}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"37581:5:21","nodeType":"YulIdentifier","src":"37581:5:21"},{"name":"length","nativeSrc":"37588:6:21","nodeType":"YulIdentifier","src":"37588:6:21"}],"functionName":{"name":"mstore","nativeSrc":"37574:6:21","nodeType":"YulIdentifier","src":"37574:6:21"},"nativeSrc":"37574:21:21","nodeType":"YulFunctionCall","src":"37574:21:21"},"nativeSrc":"37574:21:21","nodeType":"YulExpressionStatement","src":"37574:21:21"},{"nativeSrc":"37604:27:21","nodeType":"YulVariableDeclaration","src":"37604:27:21","value":{"arguments":[{"name":"array","nativeSrc":"37619:5:21","nodeType":"YulIdentifier","src":"37619:5:21"},{"kind":"number","nativeSrc":"37626:4:21","nodeType":"YulLiteral","src":"37626:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"37615:3:21","nodeType":"YulIdentifier","src":"37615:3:21"},"nativeSrc":"37615:16:21","nodeType":"YulFunctionCall","src":"37615:16:21"},"variables":[{"name":"dst","nativeSrc":"37608:3:21","nodeType":"YulTypedName","src":"37608:3:21","type":""}]},{"body":{"nativeSrc":"37669:83:21","nodeType":"YulBlock","src":"37669:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae","nativeSrc":"37671:77:21","nodeType":"YulIdentifier","src":"37671:77:21"},"nativeSrc":"37671:79:21","nodeType":"YulFunctionCall","src":"37671:79:21"},"nativeSrc":"37671:79:21","nodeType":"YulExpressionStatement","src":"37671:79:21"}]},"condition":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"37650:3:21","nodeType":"YulIdentifier","src":"37650:3:21"},{"name":"length","nativeSrc":"37655:6:21","nodeType":"YulIdentifier","src":"37655:6:21"}],"functionName":{"name":"add","nativeSrc":"37646:3:21","nodeType":"YulIdentifier","src":"37646:3:21"},"nativeSrc":"37646:16:21","nodeType":"YulFunctionCall","src":"37646:16:21"},{"name":"end","nativeSrc":"37664:3:21","nodeType":"YulIdentifier","src":"37664:3:21"}],"functionName":{"name":"gt","nativeSrc":"37643:2:21","nodeType":"YulIdentifier","src":"37643:2:21"},"nativeSrc":"37643:25:21","nodeType":"YulFunctionCall","src":"37643:25:21"},"nativeSrc":"37640:112:21","nodeType":"YulIf","src":"37640:112:21"},{"expression":{"arguments":[{"name":"src","nativeSrc":"37798:3:21","nodeType":"YulIdentifier","src":"37798:3:21"},{"name":"dst","nativeSrc":"37803:3:21","nodeType":"YulIdentifier","src":"37803:3:21"},{"name":"length","nativeSrc":"37808:6:21","nodeType":"YulIdentifier","src":"37808:6:21"}],"functionName":{"name":"copy_calldata_to_memory_with_cleanup","nativeSrc":"37761:36:21","nodeType":"YulIdentifier","src":"37761:36:21"},"nativeSrc":"37761:54:21","nodeType":"YulFunctionCall","src":"37761:54:21"},"nativeSrc":"37761:54:21","nodeType":"YulExpressionStatement","src":"37761:54:21"}]},"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"37398:423:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nativeSrc":"37454:3:21","nodeType":"YulTypedName","src":"37454:3:21","type":""},{"name":"length","nativeSrc":"37459:6:21","nodeType":"YulTypedName","src":"37459:6:21","type":""},{"name":"end","nativeSrc":"37467:3:21","nodeType":"YulTypedName","src":"37467:3:21","type":""}],"returnVariables":[{"name":"array","nativeSrc":"37475:5:21","nodeType":"YulTypedName","src":"37475:5:21","type":""}],"src":"37398:423:21"},{"body":{"nativeSrc":"37901:277:21","nodeType":"YulBlock","src":"37901:277:21","statements":[{"body":{"nativeSrc":"37950:83:21","nodeType":"YulBlock","src":"37950:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"37952:77:21","nodeType":"YulIdentifier","src":"37952:77:21"},"nativeSrc":"37952:79:21","nodeType":"YulFunctionCall","src":"37952:79:21"},"nativeSrc":"37952:79:21","nodeType":"YulExpressionStatement","src":"37952:79:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"37929:6:21","nodeType":"YulIdentifier","src":"37929:6:21"},{"kind":"number","nativeSrc":"37937:4:21","nodeType":"YulLiteral","src":"37937:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"37925:3:21","nodeType":"YulIdentifier","src":"37925:3:21"},"nativeSrc":"37925:17:21","nodeType":"YulFunctionCall","src":"37925:17:21"},{"name":"end","nativeSrc":"37944:3:21","nodeType":"YulIdentifier","src":"37944:3:21"}],"functionName":{"name":"slt","nativeSrc":"37921:3:21","nodeType":"YulIdentifier","src":"37921:3:21"},"nativeSrc":"37921:27:21","nodeType":"YulFunctionCall","src":"37921:27:21"}],"functionName":{"name":"iszero","nativeSrc":"37914:6:21","nodeType":"YulIdentifier","src":"37914:6:21"},"nativeSrc":"37914:35:21","nodeType":"YulFunctionCall","src":"37914:35:21"},"nativeSrc":"37911:122:21","nodeType":"YulIf","src":"37911:122:21"},{"nativeSrc":"38042:34:21","nodeType":"YulVariableDeclaration","src":"38042:34:21","value":{"arguments":[{"name":"offset","nativeSrc":"38069:6:21","nodeType":"YulIdentifier","src":"38069:6:21"}],"functionName":{"name":"calldataload","nativeSrc":"38056:12:21","nodeType":"YulIdentifier","src":"38056:12:21"},"nativeSrc":"38056:20:21","nodeType":"YulFunctionCall","src":"38056:20:21"},"variables":[{"name":"length","nativeSrc":"38046:6:21","nodeType":"YulTypedName","src":"38046:6:21","type":""}]},{"nativeSrc":"38085:87:21","nodeType":"YulAssignment","src":"38085:87:21","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"38145:6:21","nodeType":"YulIdentifier","src":"38145:6:21"},{"kind":"number","nativeSrc":"38153:4:21","nodeType":"YulLiteral","src":"38153:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"38141:3:21","nodeType":"YulIdentifier","src":"38141:3:21"},"nativeSrc":"38141:17:21","nodeType":"YulFunctionCall","src":"38141:17:21"},{"name":"length","nativeSrc":"38160:6:21","nodeType":"YulIdentifier","src":"38160:6:21"},{"name":"end","nativeSrc":"38168:3:21","nodeType":"YulIdentifier","src":"38168:3:21"}],"functionName":{"name":"abi_decode_available_length_t_bytes_memory_ptr","nativeSrc":"38094:46:21","nodeType":"YulIdentifier","src":"38094:46:21"},"nativeSrc":"38094:78:21","nodeType":"YulFunctionCall","src":"38094:78:21"},"variableNames":[{"name":"array","nativeSrc":"38085:5:21","nodeType":"YulIdentifier","src":"38085:5:21"}]}]},"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"37840:338:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"37879:6:21","nodeType":"YulTypedName","src":"37879:6:21","type":""},{"name":"end","nativeSrc":"37887:3:21","nodeType":"YulTypedName","src":"37887:3:21","type":""}],"returnVariables":[{"name":"array","nativeSrc":"37895:5:21","nodeType":"YulTypedName","src":"37895:5:21","type":""}],"src":"37840:338:21"},{"body":{"nativeSrc":"38304:835:21","nodeType":"YulBlock","src":"38304:835:21","statements":[{"body":{"nativeSrc":"38348:83:21","nodeType":"YulBlock","src":"38348:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"38350:77:21","nodeType":"YulIdentifier","src":"38350:77:21"},"nativeSrc":"38350:79:21","nodeType":"YulFunctionCall","src":"38350:79:21"},"nativeSrc":"38350:79:21","nodeType":"YulExpressionStatement","src":"38350:79:21"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"38325:3:21","nodeType":"YulIdentifier","src":"38325:3:21"},{"name":"headStart","nativeSrc":"38330:9:21","nodeType":"YulIdentifier","src":"38330:9:21"}],"functionName":{"name":"sub","nativeSrc":"38321:3:21","nodeType":"YulIdentifier","src":"38321:3:21"},"nativeSrc":"38321:19:21","nodeType":"YulFunctionCall","src":"38321:19:21"},{"kind":"number","nativeSrc":"38342:4:21","nodeType":"YulLiteral","src":"38342:4:21","type":"","value":"0x60"}],"functionName":{"name":"slt","nativeSrc":"38317:3:21","nodeType":"YulIdentifier","src":"38317:3:21"},"nativeSrc":"38317:30:21","nodeType":"YulFunctionCall","src":"38317:30:21"},"nativeSrc":"38314:117:21","nodeType":"YulIf","src":"38314:117:21"},{"nativeSrc":"38440:30:21","nodeType":"YulAssignment","src":"38440:30:21","value":{"arguments":[{"kind":"number","nativeSrc":"38465:4:21","nodeType":"YulLiteral","src":"38465:4:21","type":"","value":"0x60"}],"functionName":{"name":"allocate_memory","nativeSrc":"38449:15:21","nodeType":"YulIdentifier","src":"38449:15:21"},"nativeSrc":"38449:21:21","nodeType":"YulFunctionCall","src":"38449:21:21"},"variableNames":[{"name":"value","nativeSrc":"38440:5:21","nodeType":"YulIdentifier","src":"38440:5:21"}]},{"nativeSrc":"38480:319:21","nodeType":"YulBlock","src":"38480:319:21","statements":[{"nativeSrc":"38515:45:21","nodeType":"YulVariableDeclaration","src":"38515:45:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38546:9:21","nodeType":"YulIdentifier","src":"38546:9:21"},{"kind":"number","nativeSrc":"38557:1:21","nodeType":"YulLiteral","src":"38557:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"38542:3:21","nodeType":"YulIdentifier","src":"38542:3:21"},"nativeSrc":"38542:17:21","nodeType":"YulFunctionCall","src":"38542:17:21"}],"functionName":{"name":"calldataload","nativeSrc":"38529:12:21","nodeType":"YulIdentifier","src":"38529:12:21"},"nativeSrc":"38529:31:21","nodeType":"YulFunctionCall","src":"38529:31:21"},"variables":[{"name":"offset","nativeSrc":"38519:6:21","nodeType":"YulTypedName","src":"38519:6:21","type":""}]},{"body":{"nativeSrc":"38607:83:21","nodeType":"YulBlock","src":"38607:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"38609:77:21","nodeType":"YulIdentifier","src":"38609:77:21"},"nativeSrc":"38609:79:21","nodeType":"YulFunctionCall","src":"38609:79:21"},"nativeSrc":"38609:79:21","nodeType":"YulExpressionStatement","src":"38609:79:21"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"38579:6:21","nodeType":"YulIdentifier","src":"38579:6:21"},{"kind":"number","nativeSrc":"38587:18:21","nodeType":"YulLiteral","src":"38587:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"38576:2:21","nodeType":"YulIdentifier","src":"38576:2:21"},"nativeSrc":"38576:30:21","nodeType":"YulFunctionCall","src":"38576:30:21"},"nativeSrc":"38573:117:21","nodeType":"YulIf","src":"38573:117:21"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"38715:5:21","nodeType":"YulIdentifier","src":"38715:5:21"},{"kind":"number","nativeSrc":"38722:4:21","nodeType":"YulLiteral","src":"38722:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"38711:3:21","nodeType":"YulIdentifier","src":"38711:3:21"},"nativeSrc":"38711:16:21","nodeType":"YulFunctionCall","src":"38711:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38763:9:21","nodeType":"YulIdentifier","src":"38763:9:21"},{"name":"offset","nativeSrc":"38774:6:21","nodeType":"YulIdentifier","src":"38774:6:21"}],"functionName":{"name":"add","nativeSrc":"38759:3:21","nodeType":"YulIdentifier","src":"38759:3:21"},"nativeSrc":"38759:22:21","nodeType":"YulFunctionCall","src":"38759:22:21"},{"name":"end","nativeSrc":"38783:3:21","nodeType":"YulIdentifier","src":"38783:3:21"}],"functionName":{"name":"abi_decode_t_bytes_memory_ptr","nativeSrc":"38729:29:21","nodeType":"YulIdentifier","src":"38729:29:21"},"nativeSrc":"38729:58:21","nodeType":"YulFunctionCall","src":"38729:58:21"}],"functionName":{"name":"mstore","nativeSrc":"38704:6:21","nodeType":"YulIdentifier","src":"38704:6:21"},"nativeSrc":"38704:84:21","nodeType":"YulFunctionCall","src":"38704:84:21"},"nativeSrc":"38704:84:21","nodeType":"YulExpressionStatement","src":"38704:84:21"}]},{"nativeSrc":"38809:157:21","nodeType":"YulBlock","src":"38809:157:21","statements":[{"nativeSrc":"38850:16:21","nodeType":"YulVariableDeclaration","src":"38850:16:21","value":{"kind":"number","nativeSrc":"38864:2:21","nodeType":"YulLiteral","src":"38864:2:21","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"38854:6:21","nodeType":"YulTypedName","src":"38854:6:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"38891:5:21","nodeType":"YulIdentifier","src":"38891:5:21"},{"kind":"number","nativeSrc":"38898:4:21","nodeType":"YulLiteral","src":"38898:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"38887:3:21","nodeType":"YulIdentifier","src":"38887:3:21"},"nativeSrc":"38887:16:21","nodeType":"YulFunctionCall","src":"38887:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"38930:9:21","nodeType":"YulIdentifier","src":"38930:9:21"},{"name":"offset","nativeSrc":"38941:6:21","nodeType":"YulIdentifier","src":"38941:6:21"}],"functionName":{"name":"add","nativeSrc":"38926:3:21","nodeType":"YulIdentifier","src":"38926:3:21"},"nativeSrc":"38926:22:21","nodeType":"YulFunctionCall","src":"38926:22:21"},{"name":"end","nativeSrc":"38950:3:21","nodeType":"YulIdentifier","src":"38950:3:21"}],"functionName":{"name":"abi_decode_t_uint256","nativeSrc":"38905:20:21","nodeType":"YulIdentifier","src":"38905:20:21"},"nativeSrc":"38905:49:21","nodeType":"YulFunctionCall","src":"38905:49:21"}],"functionName":{"name":"mstore","nativeSrc":"38880:6:21","nodeType":"YulIdentifier","src":"38880:6:21"},"nativeSrc":"38880:75:21","nodeType":"YulFunctionCall","src":"38880:75:21"},"nativeSrc":"38880:75:21","nodeType":"YulExpressionStatement","src":"38880:75:21"}]},{"nativeSrc":"38976:156:21","nodeType":"YulBlock","src":"38976:156:21","statements":[{"nativeSrc":"39016:16:21","nodeType":"YulVariableDeclaration","src":"39016:16:21","value":{"kind":"number","nativeSrc":"39030:2:21","nodeType":"YulLiteral","src":"39030:2:21","type":"","value":"64"},"variables":[{"name":"offset","nativeSrc":"39020:6:21","nodeType":"YulTypedName","src":"39020:6:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"39057:5:21","nodeType":"YulIdentifier","src":"39057:5:21"},{"kind":"number","nativeSrc":"39064:4:21","nodeType":"YulLiteral","src":"39064:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"39053:3:21","nodeType":"YulIdentifier","src":"39053:3:21"},"nativeSrc":"39053:16:21","nodeType":"YulFunctionCall","src":"39053:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"39096:9:21","nodeType":"YulIdentifier","src":"39096:9:21"},{"name":"offset","nativeSrc":"39107:6:21","nodeType":"YulIdentifier","src":"39107:6:21"}],"functionName":{"name":"add","nativeSrc":"39092:3:21","nodeType":"YulIdentifier","src":"39092:3:21"},"nativeSrc":"39092:22:21","nodeType":"YulFunctionCall","src":"39092:22:21"},{"name":"end","nativeSrc":"39116:3:21","nodeType":"YulIdentifier","src":"39116:3:21"}],"functionName":{"name":"abi_decode_t_address","nativeSrc":"39071:20:21","nodeType":"YulIdentifier","src":"39071:20:21"},"nativeSrc":"39071:49:21","nodeType":"YulFunctionCall","src":"39071:49:21"}],"functionName":{"name":"mstore","nativeSrc":"39046:6:21","nodeType":"YulIdentifier","src":"39046:6:21"},"nativeSrc":"39046:75:21","nodeType":"YulFunctionCall","src":"39046:75:21"},"nativeSrc":"39046:75:21","nodeType":"YulExpressionStatement","src":"39046:75:21"}]}]},"name":"abi_decode_t_struct$_DataRegistration_$1064_memory_ptr","nativeSrc":"38215:924:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"38279:9:21","nodeType":"YulTypedName","src":"38279:9:21","type":""},{"name":"end","nativeSrc":"38290:3:21","nodeType":"YulTypedName","src":"38290:3:21","type":""}],"returnVariables":[{"name":"value","nativeSrc":"38298:5:21","nodeType":"YulTypedName","src":"38298:5:21","type":""}],"src":"38215:924:21"},{"body":{"nativeSrc":"39314:881:21","nodeType":"YulBlock","src":"39314:881:21","statements":[{"nativeSrc":"39324:124:21","nodeType":"YulAssignment","src":"39324:124:21","value":{"arguments":[{"arguments":[{"name":"length","nativeSrc":"39440:6:21","nodeType":"YulIdentifier","src":"39440:6:21"}],"functionName":{"name":"array_allocation_size_t_array$_t_struct$_DataRegistration_$1064_memory_ptr_$dyn_memory_ptr","nativeSrc":"39349:90:21","nodeType":"YulIdentifier","src":"39349:90:21"},"nativeSrc":"39349:98:21","nodeType":"YulFunctionCall","src":"39349:98:21"}],"functionName":{"name":"allocate_memory","nativeSrc":"39333:15:21","nodeType":"YulIdentifier","src":"39333:15:21"},"nativeSrc":"39333:115:21","nodeType":"YulFunctionCall","src":"39333:115:21"},"variableNames":[{"name":"array","nativeSrc":"39324:5:21","nodeType":"YulIdentifier","src":"39324:5:21"}]},{"nativeSrc":"39457:16:21","nodeType":"YulVariableDeclaration","src":"39457:16:21","value":{"name":"array","nativeSrc":"39468:5:21","nodeType":"YulIdentifier","src":"39468:5:21"},"variables":[{"name":"dst","nativeSrc":"39461:3:21","nodeType":"YulTypedName","src":"39461:3:21","type":""}]},{"expression":{"arguments":[{"name":"array","nativeSrc":"39490:5:21","nodeType":"YulIdentifier","src":"39490:5:21"},{"name":"length","nativeSrc":"39497:6:21","nodeType":"YulIdentifier","src":"39497:6:21"}],"functionName":{"name":"mstore","nativeSrc":"39483:6:21","nodeType":"YulIdentifier","src":"39483:6:21"},"nativeSrc":"39483:21:21","nodeType":"YulFunctionCall","src":"39483:21:21"},"nativeSrc":"39483:21:21","nodeType":"YulExpressionStatement","src":"39483:21:21"},{"nativeSrc":"39513:23:21","nodeType":"YulAssignment","src":"39513:23:21","value":{"arguments":[{"name":"array","nativeSrc":"39524:5:21","nodeType":"YulIdentifier","src":"39524:5:21"},{"kind":"number","nativeSrc":"39531:4:21","nodeType":"YulLiteral","src":"39531:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"39520:3:21","nodeType":"YulIdentifier","src":"39520:3:21"},"nativeSrc":"39520:16:21","nodeType":"YulFunctionCall","src":"39520:16:21"},"variableNames":[{"name":"dst","nativeSrc":"39513:3:21","nodeType":"YulIdentifier","src":"39513:3:21"}]},{"nativeSrc":"39546:44:21","nodeType":"YulVariableDeclaration","src":"39546:44:21","value":{"arguments":[{"name":"offset","nativeSrc":"39564:6:21","nodeType":"YulIdentifier","src":"39564:6:21"},{"arguments":[{"name":"length","nativeSrc":"39576:6:21","nodeType":"YulIdentifier","src":"39576:6:21"},{"kind":"number","nativeSrc":"39584:4:21","nodeType":"YulLiteral","src":"39584:4:21","type":"","value":"0x20"}],"functionName":{"name":"mul","nativeSrc":"39572:3:21","nodeType":"YulIdentifier","src":"39572:3:21"},"nativeSrc":"39572:17:21","nodeType":"YulFunctionCall","src":"39572:17:21"}],"functionName":{"name":"add","nativeSrc":"39560:3:21","nodeType":"YulIdentifier","src":"39560:3:21"},"nativeSrc":"39560:30:21","nodeType":"YulFunctionCall","src":"39560:30:21"},"variables":[{"name":"srcEnd","nativeSrc":"39550:6:21","nodeType":"YulTypedName","src":"39550:6:21","type":""}]},{"body":{"nativeSrc":"39618:103:21","nodeType":"YulBlock","src":"39618:103:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef","nativeSrc":"39632:77:21","nodeType":"YulIdentifier","src":"39632:77:21"},"nativeSrc":"39632:79:21","nodeType":"YulFunctionCall","src":"39632:79:21"},"nativeSrc":"39632:79:21","nodeType":"YulExpressionStatement","src":"39632:79:21"}]},"condition":{"arguments":[{"name":"srcEnd","nativeSrc":"39605:6:21","nodeType":"YulIdentifier","src":"39605:6:21"},{"name":"end","nativeSrc":"39613:3:21","nodeType":"YulIdentifier","src":"39613:3:21"}],"functionName":{"name":"gt","nativeSrc":"39602:2:21","nodeType":"YulIdentifier","src":"39602:2:21"},"nativeSrc":"39602:15:21","nodeType":"YulFunctionCall","src":"39602:15:21"},"nativeSrc":"39599:122:21","nodeType":"YulIf","src":"39599:122:21"},{"body":{"nativeSrc":"39806:383:21","nodeType":"YulBlock","src":"39806:383:21","statements":[{"nativeSrc":"39821:36:21","nodeType":"YulVariableDeclaration","src":"39821:36:21","value":{"arguments":[{"name":"src","nativeSrc":"39853:3:21","nodeType":"YulIdentifier","src":"39853:3:21"}],"functionName":{"name":"calldataload","nativeSrc":"39840:12:21","nodeType":"YulIdentifier","src":"39840:12:21"},"nativeSrc":"39840:17:21","nodeType":"YulFunctionCall","src":"39840:17:21"},"variables":[{"name":"innerOffset","nativeSrc":"39825:11:21","nodeType":"YulTypedName","src":"39825:11:21","type":""}]},{"body":{"nativeSrc":"39909:83:21","nodeType":"YulBlock","src":"39909:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"39911:77:21","nodeType":"YulIdentifier","src":"39911:77:21"},"nativeSrc":"39911:79:21","nodeType":"YulFunctionCall","src":"39911:79:21"},"nativeSrc":"39911:79:21","nodeType":"YulExpressionStatement","src":"39911:79:21"}]},"condition":{"arguments":[{"name":"innerOffset","nativeSrc":"39876:11:21","nodeType":"YulIdentifier","src":"39876:11:21"},{"kind":"number","nativeSrc":"39889:18:21","nodeType":"YulLiteral","src":"39889:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"39873:2:21","nodeType":"YulIdentifier","src":"39873:2:21"},"nativeSrc":"39873:35:21","nodeType":"YulFunctionCall","src":"39873:35:21"},"nativeSrc":"39870:122:21","nodeType":"YulIf","src":"39870:122:21"},{"nativeSrc":"40005:42:21","nodeType":"YulVariableDeclaration","src":"40005:42:21","value":{"arguments":[{"name":"offset","nativeSrc":"40027:6:21","nodeType":"YulIdentifier","src":"40027:6:21"},{"name":"innerOffset","nativeSrc":"40035:11:21","nodeType":"YulIdentifier","src":"40035:11:21"}],"functionName":{"name":"add","nativeSrc":"40023:3:21","nodeType":"YulIdentifier","src":"40023:3:21"},"nativeSrc":"40023:24:21","nodeType":"YulFunctionCall","src":"40023:24:21"},"variables":[{"name":"elementPos","nativeSrc":"40009:10:21","nodeType":"YulTypedName","src":"40009:10:21","type":""}]},{"expression":{"arguments":[{"name":"dst","nativeSrc":"40068:3:21","nodeType":"YulIdentifier","src":"40068:3:21"},{"arguments":[{"name":"elementPos","nativeSrc":"40128:10:21","nodeType":"YulIdentifier","src":"40128:10:21"},{"name":"end","nativeSrc":"40140:3:21","nodeType":"YulIdentifier","src":"40140:3:21"}],"functionName":{"name":"abi_decode_t_struct$_DataRegistration_$1064_memory_ptr","nativeSrc":"40073:54:21","nodeType":"YulIdentifier","src":"40073:54:21"},"nativeSrc":"40073:71:21","nodeType":"YulFunctionCall","src":"40073:71:21"}],"functionName":{"name":"mstore","nativeSrc":"40061:6:21","nodeType":"YulIdentifier","src":"40061:6:21"},"nativeSrc":"40061:84:21","nodeType":"YulFunctionCall","src":"40061:84:21"},"nativeSrc":"40061:84:21","nodeType":"YulExpressionStatement","src":"40061:84:21"},{"nativeSrc":"40158:21:21","nodeType":"YulAssignment","src":"40158:21:21","value":{"arguments":[{"name":"dst","nativeSrc":"40169:3:21","nodeType":"YulIdentifier","src":"40169:3:21"},{"kind":"number","nativeSrc":"40174:4:21","nodeType":"YulLiteral","src":"40174:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"40165:3:21","nodeType":"YulIdentifier","src":"40165:3:21"},"nativeSrc":"40165:14:21","nodeType":"YulFunctionCall","src":"40165:14:21"},"variableNames":[{"name":"dst","nativeSrc":"40158:3:21","nodeType":"YulIdentifier","src":"40158:3:21"}]}]},"condition":{"arguments":[{"name":"src","nativeSrc":"39759:3:21","nodeType":"YulIdentifier","src":"39759:3:21"},{"name":"srcEnd","nativeSrc":"39764:6:21","nodeType":"YulIdentifier","src":"39764:6:21"}],"functionName":{"name":"lt","nativeSrc":"39756:2:21","nodeType":"YulIdentifier","src":"39756:2:21"},"nativeSrc":"39756:15:21","nodeType":"YulFunctionCall","src":"39756:15:21"},"nativeSrc":"39730:459:21","nodeType":"YulForLoop","post":{"nativeSrc":"39772:25:21","nodeType":"YulBlock","src":"39772:25:21","statements":[{"nativeSrc":"39774:21:21","nodeType":"YulAssignment","src":"39774:21:21","value":{"arguments":[{"name":"src","nativeSrc":"39785:3:21","nodeType":"YulIdentifier","src":"39785:3:21"},{"kind":"number","nativeSrc":"39790:4:21","nodeType":"YulLiteral","src":"39790:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"39781:3:21","nodeType":"YulIdentifier","src":"39781:3:21"},"nativeSrc":"39781:14:21","nodeType":"YulFunctionCall","src":"39781:14:21"},"variableNames":[{"name":"src","nativeSrc":"39774:3:21","nodeType":"YulIdentifier","src":"39774:3:21"}]}]},"pre":{"nativeSrc":"39734:21:21","nodeType":"YulBlock","src":"39734:21:21","statements":[{"nativeSrc":"39736:17:21","nodeType":"YulVariableDeclaration","src":"39736:17:21","value":{"name":"offset","nativeSrc":"39747:6:21","nodeType":"YulIdentifier","src":"39747:6:21"},"variables":[{"name":"src","nativeSrc":"39740:3:21","nodeType":"YulTypedName","src":"39740:3:21","type":""}]}]},"src":"39730:459:21"}]},"name":"abi_decode_available_length_t_array$_t_struct$_DataRegistration_$1064_memory_ptr_$dyn_memory_ptr","nativeSrc":"39178:1017:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"39284:6:21","nodeType":"YulTypedName","src":"39284:6:21","type":""},{"name":"length","nativeSrc":"39292:6:21","nodeType":"YulTypedName","src":"39292:6:21","type":""},{"name":"end","nativeSrc":"39300:3:21","nodeType":"YulTypedName","src":"39300:3:21","type":""}],"returnVariables":[{"name":"array","nativeSrc":"39308:5:21","nodeType":"YulTypedName","src":"39308:5:21","type":""}],"src":"39178:1017:21"},{"body":{"nativeSrc":"40345:327:21","nodeType":"YulBlock","src":"40345:327:21","statements":[{"body":{"nativeSrc":"40394:83:21","nodeType":"YulBlock","src":"40394:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d","nativeSrc":"40396:77:21","nodeType":"YulIdentifier","src":"40396:77:21"},"nativeSrc":"40396:79:21","nodeType":"YulFunctionCall","src":"40396:79:21"},"nativeSrc":"40396:79:21","nodeType":"YulExpressionStatement","src":"40396:79:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"40373:6:21","nodeType":"YulIdentifier","src":"40373:6:21"},{"kind":"number","nativeSrc":"40381:4:21","nodeType":"YulLiteral","src":"40381:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nativeSrc":"40369:3:21","nodeType":"YulIdentifier","src":"40369:3:21"},"nativeSrc":"40369:17:21","nodeType":"YulFunctionCall","src":"40369:17:21"},{"name":"end","nativeSrc":"40388:3:21","nodeType":"YulIdentifier","src":"40388:3:21"}],"functionName":{"name":"slt","nativeSrc":"40365:3:21","nodeType":"YulIdentifier","src":"40365:3:21"},"nativeSrc":"40365:27:21","nodeType":"YulFunctionCall","src":"40365:27:21"}],"functionName":{"name":"iszero","nativeSrc":"40358:6:21","nodeType":"YulIdentifier","src":"40358:6:21"},"nativeSrc":"40358:35:21","nodeType":"YulFunctionCall","src":"40358:35:21"},"nativeSrc":"40355:122:21","nodeType":"YulIf","src":"40355:122:21"},{"nativeSrc":"40486:34:21","nodeType":"YulVariableDeclaration","src":"40486:34:21","value":{"arguments":[{"name":"offset","nativeSrc":"40513:6:21","nodeType":"YulIdentifier","src":"40513:6:21"}],"functionName":{"name":"calldataload","nativeSrc":"40500:12:21","nodeType":"YulIdentifier","src":"40500:12:21"},"nativeSrc":"40500:20:21","nodeType":"YulFunctionCall","src":"40500:20:21"},"variables":[{"name":"length","nativeSrc":"40490:6:21","nodeType":"YulTypedName","src":"40490:6:21","type":""}]},{"nativeSrc":"40529:137:21","nodeType":"YulAssignment","src":"40529:137:21","value":{"arguments":[{"arguments":[{"name":"offset","nativeSrc":"40639:6:21","nodeType":"YulIdentifier","src":"40639:6:21"},{"kind":"number","nativeSrc":"40647:4:21","nodeType":"YulLiteral","src":"40647:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"40635:3:21","nodeType":"YulIdentifier","src":"40635:3:21"},"nativeSrc":"40635:17:21","nodeType":"YulFunctionCall","src":"40635:17:21"},{"name":"length","nativeSrc":"40654:6:21","nodeType":"YulIdentifier","src":"40654:6:21"},{"name":"end","nativeSrc":"40662:3:21","nodeType":"YulIdentifier","src":"40662:3:21"}],"functionName":{"name":"abi_decode_available_length_t_array$_t_struct$_DataRegistration_$1064_memory_ptr_$dyn_memory_ptr","nativeSrc":"40538:96:21","nodeType":"YulIdentifier","src":"40538:96:21"},"nativeSrc":"40538:128:21","nodeType":"YulFunctionCall","src":"40538:128:21"},"variableNames":[{"name":"array","nativeSrc":"40529:5:21","nodeType":"YulIdentifier","src":"40529:5:21"}]}]},"name":"abi_decode_t_array$_t_struct$_DataRegistration_$1064_memory_ptr_$dyn_memory_ptr","nativeSrc":"40234:438:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"40323:6:21","nodeType":"YulTypedName","src":"40323:6:21","type":""},{"name":"end","nativeSrc":"40331:3:21","nodeType":"YulTypedName","src":"40331:3:21","type":""}],"returnVariables":[{"name":"array","nativeSrc":"40339:5:21","nodeType":"YulTypedName","src":"40339:5:21","type":""}],"src":"40234:438:21"},{"body":{"nativeSrc":"40786:1106:21","nodeType":"YulBlock","src":"40786:1106:21","statements":[{"body":{"nativeSrc":"40830:83:21","nodeType":"YulBlock","src":"40830:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"40832:77:21","nodeType":"YulIdentifier","src":"40832:77:21"},"nativeSrc":"40832:79:21","nodeType":"YulFunctionCall","src":"40832:79:21"},"nativeSrc":"40832:79:21","nodeType":"YulExpressionStatement","src":"40832:79:21"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"40807:3:21","nodeType":"YulIdentifier","src":"40807:3:21"},{"name":"headStart","nativeSrc":"40812:9:21","nodeType":"YulIdentifier","src":"40812:9:21"}],"functionName":{"name":"sub","nativeSrc":"40803:3:21","nodeType":"YulIdentifier","src":"40803:3:21"},"nativeSrc":"40803:19:21","nodeType":"YulFunctionCall","src":"40803:19:21"},{"kind":"number","nativeSrc":"40824:4:21","nodeType":"YulLiteral","src":"40824:4:21","type":"","value":"0xc0"}],"functionName":{"name":"slt","nativeSrc":"40799:3:21","nodeType":"YulIdentifier","src":"40799:3:21"},"nativeSrc":"40799:30:21","nodeType":"YulFunctionCall","src":"40799:30:21"},"nativeSrc":"40796:117:21","nodeType":"YulIf","src":"40796:117:21"},{"nativeSrc":"40922:30:21","nodeType":"YulAssignment","src":"40922:30:21","value":{"arguments":[{"kind":"number","nativeSrc":"40947:4:21","nodeType":"YulLiteral","src":"40947:4:21","type":"","value":"0x60"}],"functionName":{"name":"allocate_memory","nativeSrc":"40931:15:21","nodeType":"YulIdentifier","src":"40931:15:21"},"nativeSrc":"40931:21:21","nodeType":"YulFunctionCall","src":"40931:21:21"},"variableNames":[{"name":"value","nativeSrc":"40922:5:21","nodeType":"YulIdentifier","src":"40922:5:21"}]},{"nativeSrc":"40962:339:21","nodeType":"YulBlock","src":"40962:339:21","statements":[{"nativeSrc":"40997:45:21","nodeType":"YulVariableDeclaration","src":"40997:45:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41028:9:21","nodeType":"YulIdentifier","src":"41028:9:21"},{"kind":"number","nativeSrc":"41039:1:21","nodeType":"YulLiteral","src":"41039:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"41024:3:21","nodeType":"YulIdentifier","src":"41024:3:21"},"nativeSrc":"41024:17:21","nodeType":"YulFunctionCall","src":"41024:17:21"}],"functionName":{"name":"calldataload","nativeSrc":"41011:12:21","nodeType":"YulIdentifier","src":"41011:12:21"},"nativeSrc":"41011:31:21","nodeType":"YulFunctionCall","src":"41011:31:21"},"variables":[{"name":"offset","nativeSrc":"41001:6:21","nodeType":"YulTypedName","src":"41001:6:21","type":""}]},{"body":{"nativeSrc":"41089:83:21","nodeType":"YulBlock","src":"41089:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"41091:77:21","nodeType":"YulIdentifier","src":"41091:77:21"},"nativeSrc":"41091:79:21","nodeType":"YulFunctionCall","src":"41091:79:21"},"nativeSrc":"41091:79:21","nodeType":"YulExpressionStatement","src":"41091:79:21"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"41061:6:21","nodeType":"YulIdentifier","src":"41061:6:21"},{"kind":"number","nativeSrc":"41069:18:21","nodeType":"YulLiteral","src":"41069:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"41058:2:21","nodeType":"YulIdentifier","src":"41058:2:21"},"nativeSrc":"41058:30:21","nodeType":"YulFunctionCall","src":"41058:30:21"},"nativeSrc":"41055:117:21","nodeType":"YulIf","src":"41055:117:21"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"41197:5:21","nodeType":"YulIdentifier","src":"41197:5:21"},{"kind":"number","nativeSrc":"41204:4:21","nodeType":"YulLiteral","src":"41204:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"41193:3:21","nodeType":"YulIdentifier","src":"41193:3:21"},"nativeSrc":"41193:16:21","nodeType":"YulFunctionCall","src":"41193:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41265:9:21","nodeType":"YulIdentifier","src":"41265:9:21"},{"name":"offset","nativeSrc":"41276:6:21","nodeType":"YulIdentifier","src":"41276:6:21"}],"functionName":{"name":"add","nativeSrc":"41261:3:21","nodeType":"YulIdentifier","src":"41261:3:21"},"nativeSrc":"41261:22:21","nodeType":"YulFunctionCall","src":"41261:22:21"},{"name":"end","nativeSrc":"41285:3:21","nodeType":"YulIdentifier","src":"41285:3:21"}],"functionName":{"name":"abi_decode_t_struct$_HEADRequest_$1142_memory_ptr","nativeSrc":"41211:49:21","nodeType":"YulIdentifier","src":"41211:49:21"},"nativeSrc":"41211:78:21","nodeType":"YulFunctionCall","src":"41211:78:21"}],"functionName":{"name":"mstore","nativeSrc":"41186:6:21","nodeType":"YulIdentifier","src":"41186:6:21"},"nativeSrc":"41186:104:21","nodeType":"YulFunctionCall","src":"41186:104:21"},"nativeSrc":"41186:104:21","nodeType":"YulExpressionStatement","src":"41186:104:21"}]},{"nativeSrc":"41311:193:21","nodeType":"YulBlock","src":"41311:193:21","statements":[{"nativeSrc":"41352:16:21","nodeType":"YulVariableDeclaration","src":"41352:16:21","value":{"kind":"number","nativeSrc":"41366:2:21","nodeType":"YulLiteral","src":"41366:2:21","type":"","value":"32"},"variables":[{"name":"offset","nativeSrc":"41356:6:21","nodeType":"YulTypedName","src":"41356:6:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"41393:5:21","nodeType":"YulIdentifier","src":"41393:5:21"},{"kind":"number","nativeSrc":"41400:4:21","nodeType":"YulLiteral","src":"41400:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"41389:3:21","nodeType":"YulIdentifier","src":"41389:3:21"},"nativeSrc":"41389:16:21","nodeType":"YulFunctionCall","src":"41389:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41468:9:21","nodeType":"YulIdentifier","src":"41468:9:21"},{"name":"offset","nativeSrc":"41479:6:21","nodeType":"YulIdentifier","src":"41479:6:21"}],"functionName":{"name":"add","nativeSrc":"41464:3:21","nodeType":"YulIdentifier","src":"41464:3:21"},"nativeSrc":"41464:22:21","nodeType":"YulFunctionCall","src":"41464:22:21"},{"name":"end","nativeSrc":"41488:3:21","nodeType":"YulIdentifier","src":"41488:3:21"}],"functionName":{"name":"abi_decode_t_struct$_ResourceProperties_$1035_memory_ptr","nativeSrc":"41407:56:21","nodeType":"YulIdentifier","src":"41407:56:21"},"nativeSrc":"41407:85:21","nodeType":"YulFunctionCall","src":"41407:85:21"}],"functionName":{"name":"mstore","nativeSrc":"41382:6:21","nodeType":"YulIdentifier","src":"41382:6:21"},"nativeSrc":"41382:111:21","nodeType":"YulFunctionCall","src":"41382:111:21"},"nativeSrc":"41382:111:21","nodeType":"YulExpressionStatement","src":"41382:111:21"}]},{"nativeSrc":"41514:371:21","nodeType":"YulBlock","src":"41514:371:21","statements":[{"nativeSrc":"41549:47:21","nodeType":"YulVariableDeclaration","src":"41549:47:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41580:9:21","nodeType":"YulIdentifier","src":"41580:9:21"},{"kind":"number","nativeSrc":"41591:3:21","nodeType":"YulLiteral","src":"41591:3:21","type":"","value":"160"}],"functionName":{"name":"add","nativeSrc":"41576:3:21","nodeType":"YulIdentifier","src":"41576:3:21"},"nativeSrc":"41576:19:21","nodeType":"YulFunctionCall","src":"41576:19:21"}],"functionName":{"name":"calldataload","nativeSrc":"41563:12:21","nodeType":"YulIdentifier","src":"41563:12:21"},"nativeSrc":"41563:33:21","nodeType":"YulFunctionCall","src":"41563:33:21"},"variables":[{"name":"offset","nativeSrc":"41553:6:21","nodeType":"YulTypedName","src":"41553:6:21","type":""}]},{"body":{"nativeSrc":"41643:83:21","nodeType":"YulBlock","src":"41643:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"41645:77:21","nodeType":"YulIdentifier","src":"41645:77:21"},"nativeSrc":"41645:79:21","nodeType":"YulFunctionCall","src":"41645:79:21"},"nativeSrc":"41645:79:21","nodeType":"YulExpressionStatement","src":"41645:79:21"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"41615:6:21","nodeType":"YulIdentifier","src":"41615:6:21"},{"kind":"number","nativeSrc":"41623:18:21","nodeType":"YulLiteral","src":"41623:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"41612:2:21","nodeType":"YulIdentifier","src":"41612:2:21"},"nativeSrc":"41612:30:21","nodeType":"YulFunctionCall","src":"41612:30:21"},"nativeSrc":"41609:117:21","nodeType":"YulIf","src":"41609:117:21"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"41751:5:21","nodeType":"YulIdentifier","src":"41751:5:21"},{"kind":"number","nativeSrc":"41758:4:21","nodeType":"YulLiteral","src":"41758:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"41747:3:21","nodeType":"YulIdentifier","src":"41747:3:21"},"nativeSrc":"41747:16:21","nodeType":"YulFunctionCall","src":"41747:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"41849:9:21","nodeType":"YulIdentifier","src":"41849:9:21"},{"name":"offset","nativeSrc":"41860:6:21","nodeType":"YulIdentifier","src":"41860:6:21"}],"functionName":{"name":"add","nativeSrc":"41845:3:21","nodeType":"YulIdentifier","src":"41845:3:21"},"nativeSrc":"41845:22:21","nodeType":"YulFunctionCall","src":"41845:22:21"},{"name":"end","nativeSrc":"41869:3:21","nodeType":"YulIdentifier","src":"41869:3:21"}],"functionName":{"name":"abi_decode_t_array$_t_struct$_DataRegistration_$1064_memory_ptr_$dyn_memory_ptr","nativeSrc":"41765:79:21","nodeType":"YulIdentifier","src":"41765:79:21"},"nativeSrc":"41765:108:21","nodeType":"YulFunctionCall","src":"41765:108:21"}],"functionName":{"name":"mstore","nativeSrc":"41740:6:21","nodeType":"YulIdentifier","src":"41740:6:21"},"nativeSrc":"41740:134:21","nodeType":"YulFunctionCall","src":"41740:134:21"},"nativeSrc":"41740:134:21","nodeType":"YulExpressionStatement","src":"41740:134:21"}]}]},"name":"abi_decode_t_struct$_PUTRequest_$1183_memory_ptr","nativeSrc":"40703:1189:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"40761:9:21","nodeType":"YulTypedName","src":"40761:9:21","type":""},{"name":"end","nativeSrc":"40772:3:21","nodeType":"YulTypedName","src":"40772:3:21","type":""}],"returnVariables":[{"name":"value","nativeSrc":"40780:5:21","nodeType":"YulTypedName","src":"40780:5:21","type":""}],"src":"40703:1189:21"},{"body":{"nativeSrc":"41992:451:21","nodeType":"YulBlock","src":"41992:451:21","statements":[{"body":{"nativeSrc":"42038:83:21","nodeType":"YulBlock","src":"42038:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"42040:77:21","nodeType":"YulIdentifier","src":"42040:77:21"},"nativeSrc":"42040:79:21","nodeType":"YulFunctionCall","src":"42040:79:21"},"nativeSrc":"42040:79:21","nodeType":"YulExpressionStatement","src":"42040:79:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"42013:7:21","nodeType":"YulIdentifier","src":"42013:7:21"},{"name":"headStart","nativeSrc":"42022:9:21","nodeType":"YulIdentifier","src":"42022:9:21"}],"functionName":{"name":"sub","nativeSrc":"42009:3:21","nodeType":"YulIdentifier","src":"42009:3:21"},"nativeSrc":"42009:23:21","nodeType":"YulFunctionCall","src":"42009:23:21"},{"kind":"number","nativeSrc":"42034:2:21","nodeType":"YulLiteral","src":"42034:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"42005:3:21","nodeType":"YulIdentifier","src":"42005:3:21"},"nativeSrc":"42005:32:21","nodeType":"YulFunctionCall","src":"42005:32:21"},"nativeSrc":"42002:119:21","nodeType":"YulIf","src":"42002:119:21"},{"nativeSrc":"42131:305:21","nodeType":"YulBlock","src":"42131:305:21","statements":[{"nativeSrc":"42146:45:21","nodeType":"YulVariableDeclaration","src":"42146:45:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"42177:9:21","nodeType":"YulIdentifier","src":"42177:9:21"},{"kind":"number","nativeSrc":"42188:1:21","nodeType":"YulLiteral","src":"42188:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"42173:3:21","nodeType":"YulIdentifier","src":"42173:3:21"},"nativeSrc":"42173:17:21","nodeType":"YulFunctionCall","src":"42173:17:21"}],"functionName":{"name":"calldataload","nativeSrc":"42160:12:21","nodeType":"YulIdentifier","src":"42160:12:21"},"nativeSrc":"42160:31:21","nodeType":"YulFunctionCall","src":"42160:31:21"},"variables":[{"name":"offset","nativeSrc":"42150:6:21","nodeType":"YulTypedName","src":"42150:6:21","type":""}]},{"body":{"nativeSrc":"42238:83:21","nodeType":"YulBlock","src":"42238:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"42240:77:21","nodeType":"YulIdentifier","src":"42240:77:21"},"nativeSrc":"42240:79:21","nodeType":"YulFunctionCall","src":"42240:79:21"},"nativeSrc":"42240:79:21","nodeType":"YulExpressionStatement","src":"42240:79:21"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"42210:6:21","nodeType":"YulIdentifier","src":"42210:6:21"},{"kind":"number","nativeSrc":"42218:18:21","nodeType":"YulLiteral","src":"42218:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"42207:2:21","nodeType":"YulIdentifier","src":"42207:2:21"},"nativeSrc":"42207:30:21","nodeType":"YulFunctionCall","src":"42207:30:21"},"nativeSrc":"42204:117:21","nodeType":"YulIf","src":"42204:117:21"},{"nativeSrc":"42335:91:21","nodeType":"YulAssignment","src":"42335:91:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"42398:9:21","nodeType":"YulIdentifier","src":"42398:9:21"},{"name":"offset","nativeSrc":"42409:6:21","nodeType":"YulIdentifier","src":"42409:6:21"}],"functionName":{"name":"add","nativeSrc":"42394:3:21","nodeType":"YulIdentifier","src":"42394:3:21"},"nativeSrc":"42394:22:21","nodeType":"YulFunctionCall","src":"42394:22:21"},{"name":"dataEnd","nativeSrc":"42418:7:21","nodeType":"YulIdentifier","src":"42418:7:21"}],"functionName":{"name":"abi_decode_t_struct$_PUTRequest_$1183_memory_ptr","nativeSrc":"42345:48:21","nodeType":"YulIdentifier","src":"42345:48:21"},"nativeSrc":"42345:81:21","nodeType":"YulFunctionCall","src":"42345:81:21"},"variableNames":[{"name":"value0","nativeSrc":"42335:6:21","nodeType":"YulIdentifier","src":"42335:6:21"}]}]}]},"name":"abi_decode_tuple_t_struct$_PUTRequest_$1183_memory_ptr","nativeSrc":"41898:545:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"41962:9:21","nodeType":"YulTypedName","src":"41962:9:21","type":""},{"name":"dataEnd","nativeSrc":"41973:7:21","nodeType":"YulTypedName","src":"41973:7:21","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"41985:6:21","nodeType":"YulTypedName","src":"41985:6:21","type":""}],"src":"41898:545:21"},{"body":{"nativeSrc":"42481:28:21","nodeType":"YulBlock","src":"42481:28:21","statements":[{"nativeSrc":"42491:12:21","nodeType":"YulAssignment","src":"42491:12:21","value":{"name":"value","nativeSrc":"42498:5:21","nodeType":"YulIdentifier","src":"42498:5:21"},"variableNames":[{"name":"ret","nativeSrc":"42491:3:21","nodeType":"YulIdentifier","src":"42491:3:21"}]}]},"name":"identity","nativeSrc":"42449:60:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"42467:5:21","nodeType":"YulTypedName","src":"42467:5:21","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"42477:3:21","nodeType":"YulTypedName","src":"42477:3:21","type":""}],"src":"42449:60:21"},{"body":{"nativeSrc":"42575:82:21","nodeType":"YulBlock","src":"42575:82:21","statements":[{"nativeSrc":"42585:66:21","nodeType":"YulAssignment","src":"42585:66:21","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"42643:5:21","nodeType":"YulIdentifier","src":"42643:5:21"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"42625:17:21","nodeType":"YulIdentifier","src":"42625:17:21"},"nativeSrc":"42625:24:21","nodeType":"YulFunctionCall","src":"42625:24:21"}],"functionName":{"name":"identity","nativeSrc":"42616:8:21","nodeType":"YulIdentifier","src":"42616:8:21"},"nativeSrc":"42616:34:21","nodeType":"YulFunctionCall","src":"42616:34:21"}],"functionName":{"name":"cleanup_t_uint160","nativeSrc":"42598:17:21","nodeType":"YulIdentifier","src":"42598:17:21"},"nativeSrc":"42598:53:21","nodeType":"YulFunctionCall","src":"42598:53:21"},"variableNames":[{"name":"converted","nativeSrc":"42585:9:21","nodeType":"YulIdentifier","src":"42585:9:21"}]}]},"name":"convert_t_uint160_to_t_uint160","nativeSrc":"42515:142:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"42555:5:21","nodeType":"YulTypedName","src":"42555:5:21","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"42565:9:21","nodeType":"YulTypedName","src":"42565:9:21","type":""}],"src":"42515:142:21"},{"body":{"nativeSrc":"42723:66:21","nodeType":"YulBlock","src":"42723:66:21","statements":[{"nativeSrc":"42733:50:21","nodeType":"YulAssignment","src":"42733:50:21","value":{"arguments":[{"name":"value","nativeSrc":"42777:5:21","nodeType":"YulIdentifier","src":"42777:5:21"}],"functionName":{"name":"convert_t_uint160_to_t_uint160","nativeSrc":"42746:30:21","nodeType":"YulIdentifier","src":"42746:30:21"},"nativeSrc":"42746:37:21","nodeType":"YulFunctionCall","src":"42746:37:21"},"variableNames":[{"name":"converted","nativeSrc":"42733:9:21","nodeType":"YulIdentifier","src":"42733:9:21"}]}]},"name":"convert_t_uint160_to_t_address","nativeSrc":"42663:126:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"42703:5:21","nodeType":"YulTypedName","src":"42703:5:21","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"42713:9:21","nodeType":"YulTypedName","src":"42713:9:21","type":""}],"src":"42663:126:21"},{"body":{"nativeSrc":"42881:66:21","nodeType":"YulBlock","src":"42881:66:21","statements":[{"nativeSrc":"42891:50:21","nodeType":"YulAssignment","src":"42891:50:21","value":{"arguments":[{"name":"value","nativeSrc":"42935:5:21","nodeType":"YulIdentifier","src":"42935:5:21"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"42904:30:21","nodeType":"YulIdentifier","src":"42904:30:21"},"nativeSrc":"42904:37:21","nodeType":"YulFunctionCall","src":"42904:37:21"},"variableNames":[{"name":"converted","nativeSrc":"42891:9:21","nodeType":"YulIdentifier","src":"42891:9:21"}]}]},"name":"convert_t_contract$_IDataPointRegistry_$534_to_t_address","nativeSrc":"42795:152:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"42861:5:21","nodeType":"YulTypedName","src":"42861:5:21","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"42871:9:21","nodeType":"YulTypedName","src":"42871:9:21","type":""}],"src":"42795:152:21"},{"body":{"nativeSrc":"43044:92:21","nodeType":"YulBlock","src":"43044:92:21","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"43061:3:21","nodeType":"YulIdentifier","src":"43061:3:21"},{"arguments":[{"name":"value","nativeSrc":"43123:5:21","nodeType":"YulIdentifier","src":"43123:5:21"}],"functionName":{"name":"convert_t_contract$_IDataPointRegistry_$534_to_t_address","nativeSrc":"43066:56:21","nodeType":"YulIdentifier","src":"43066:56:21"},"nativeSrc":"43066:63:21","nodeType":"YulFunctionCall","src":"43066:63:21"}],"functionName":{"name":"mstore","nativeSrc":"43054:6:21","nodeType":"YulIdentifier","src":"43054:6:21"},"nativeSrc":"43054:76:21","nodeType":"YulFunctionCall","src":"43054:76:21"},"nativeSrc":"43054:76:21","nodeType":"YulExpressionStatement","src":"43054:76:21"}]},"name":"abi_encode_t_contract$_IDataPointRegistry_$534_to_t_address_fromStack","nativeSrc":"42953:183:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"43032:5:21","nodeType":"YulTypedName","src":"43032:5:21","type":""},{"name":"pos","nativeSrc":"43039:3:21","nodeType":"YulTypedName","src":"43039:3:21","type":""}],"src":"42953:183:21"},{"body":{"nativeSrc":"43266:150:21","nodeType":"YulBlock","src":"43266:150:21","statements":[{"nativeSrc":"43276:26:21","nodeType":"YulAssignment","src":"43276:26:21","value":{"arguments":[{"name":"headStart","nativeSrc":"43288:9:21","nodeType":"YulIdentifier","src":"43288:9:21"},{"kind":"number","nativeSrc":"43299:2:21","nodeType":"YulLiteral","src":"43299:2:21","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"43284:3:21","nodeType":"YulIdentifier","src":"43284:3:21"},"nativeSrc":"43284:18:21","nodeType":"YulFunctionCall","src":"43284:18:21"},"variableNames":[{"name":"tail","nativeSrc":"43276:4:21","nodeType":"YulIdentifier","src":"43276:4:21"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"43382:6:21","nodeType":"YulIdentifier","src":"43382:6:21"},{"arguments":[{"name":"headStart","nativeSrc":"43395:9:21","nodeType":"YulIdentifier","src":"43395:9:21"},{"kind":"number","nativeSrc":"43406:1:21","nodeType":"YulLiteral","src":"43406:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"43391:3:21","nodeType":"YulIdentifier","src":"43391:3:21"},"nativeSrc":"43391:17:21","nodeType":"YulFunctionCall","src":"43391:17:21"}],"functionName":{"name":"abi_encode_t_contract$_IDataPointRegistry_$534_to_t_address_fromStack","nativeSrc":"43312:69:21","nodeType":"YulIdentifier","src":"43312:69:21"},"nativeSrc":"43312:97:21","nodeType":"YulFunctionCall","src":"43312:97:21"},"nativeSrc":"43312:97:21","nodeType":"YulExpressionStatement","src":"43312:97:21"}]},"name":"abi_encode_tuple_t_contract$_IDataPointRegistry_$534__to_t_address__fromStack_reversed","nativeSrc":"43142:274:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"43238:9:21","nodeType":"YulTypedName","src":"43238:9:21","type":""},{"name":"value0","nativeSrc":"43250:6:21","nodeType":"YulTypedName","src":"43250:6:21","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"43261:4:21","nodeType":"YulTypedName","src":"43261:4:21","type":""}],"src":"43142:274:21"},{"body":{"nativeSrc":"43534:902:21","nodeType":"YulBlock","src":"43534:902:21","statements":[{"body":{"nativeSrc":"43578:83:21","nodeType":"YulBlock","src":"43578:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f","nativeSrc":"43580:77:21","nodeType":"YulIdentifier","src":"43580:77:21"},"nativeSrc":"43580:79:21","nodeType":"YulFunctionCall","src":"43580:79:21"},"nativeSrc":"43580:79:21","nodeType":"YulExpressionStatement","src":"43580:79:21"}]},"condition":{"arguments":[{"arguments":[{"name":"end","nativeSrc":"43555:3:21","nodeType":"YulIdentifier","src":"43555:3:21"},{"name":"headStart","nativeSrc":"43560:9:21","nodeType":"YulIdentifier","src":"43560:9:21"}],"functionName":{"name":"sub","nativeSrc":"43551:3:21","nodeType":"YulIdentifier","src":"43551:3:21"},"nativeSrc":"43551:19:21","nodeType":"YulFunctionCall","src":"43551:19:21"},{"kind":"number","nativeSrc":"43572:4:21","nodeType":"YulLiteral","src":"43572:4:21","type":"","value":"0x40"}],"functionName":{"name":"slt","nativeSrc":"43547:3:21","nodeType":"YulIdentifier","src":"43547:3:21"},"nativeSrc":"43547:30:21","nodeType":"YulFunctionCall","src":"43547:30:21"},"nativeSrc":"43544:117:21","nodeType":"YulIf","src":"43544:117:21"},{"nativeSrc":"43670:30:21","nodeType":"YulAssignment","src":"43670:30:21","value":{"arguments":[{"kind":"number","nativeSrc":"43695:4:21","nodeType":"YulLiteral","src":"43695:4:21","type":"","value":"0x40"}],"functionName":{"name":"allocate_memory","nativeSrc":"43679:15:21","nodeType":"YulIdentifier","src":"43679:15:21"},"nativeSrc":"43679:21:21","nodeType":"YulFunctionCall","src":"43679:21:21"},"variableNames":[{"name":"value","nativeSrc":"43670:5:21","nodeType":"YulIdentifier","src":"43670:5:21"}]},{"nativeSrc":"43710:339:21","nodeType":"YulBlock","src":"43710:339:21","statements":[{"nativeSrc":"43745:45:21","nodeType":"YulVariableDeclaration","src":"43745:45:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"43776:9:21","nodeType":"YulIdentifier","src":"43776:9:21"},{"kind":"number","nativeSrc":"43787:1:21","nodeType":"YulLiteral","src":"43787:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"43772:3:21","nodeType":"YulIdentifier","src":"43772:3:21"},"nativeSrc":"43772:17:21","nodeType":"YulFunctionCall","src":"43772:17:21"}],"functionName":{"name":"calldataload","nativeSrc":"43759:12:21","nodeType":"YulIdentifier","src":"43759:12:21"},"nativeSrc":"43759:31:21","nodeType":"YulFunctionCall","src":"43759:31:21"},"variables":[{"name":"offset","nativeSrc":"43749:6:21","nodeType":"YulTypedName","src":"43749:6:21","type":""}]},{"body":{"nativeSrc":"43837:83:21","nodeType":"YulBlock","src":"43837:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"43839:77:21","nodeType":"YulIdentifier","src":"43839:77:21"},"nativeSrc":"43839:79:21","nodeType":"YulFunctionCall","src":"43839:79:21"},"nativeSrc":"43839:79:21","nodeType":"YulExpressionStatement","src":"43839:79:21"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"43809:6:21","nodeType":"YulIdentifier","src":"43809:6:21"},{"kind":"number","nativeSrc":"43817:18:21","nodeType":"YulLiteral","src":"43817:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"43806:2:21","nodeType":"YulIdentifier","src":"43806:2:21"},"nativeSrc":"43806:30:21","nodeType":"YulFunctionCall","src":"43806:30:21"},"nativeSrc":"43803:117:21","nodeType":"YulIf","src":"43803:117:21"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"43945:5:21","nodeType":"YulIdentifier","src":"43945:5:21"},{"kind":"number","nativeSrc":"43952:4:21","nodeType":"YulLiteral","src":"43952:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"43941:3:21","nodeType":"YulIdentifier","src":"43941:3:21"},"nativeSrc":"43941:16:21","nodeType":"YulFunctionCall","src":"43941:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"44013:9:21","nodeType":"YulIdentifier","src":"44013:9:21"},{"name":"offset","nativeSrc":"44024:6:21","nodeType":"YulIdentifier","src":"44024:6:21"}],"functionName":{"name":"add","nativeSrc":"44009:3:21","nodeType":"YulIdentifier","src":"44009:3:21"},"nativeSrc":"44009:22:21","nodeType":"YulFunctionCall","src":"44009:22:21"},{"name":"end","nativeSrc":"44033:3:21","nodeType":"YulIdentifier","src":"44033:3:21"}],"functionName":{"name":"abi_decode_t_struct$_HEADRequest_$1142_memory_ptr","nativeSrc":"43959:49:21","nodeType":"YulIdentifier","src":"43959:49:21"},"nativeSrc":"43959:78:21","nodeType":"YulFunctionCall","src":"43959:78:21"}],"functionName":{"name":"mstore","nativeSrc":"43934:6:21","nodeType":"YulIdentifier","src":"43934:6:21"},"nativeSrc":"43934:104:21","nodeType":"YulFunctionCall","src":"43934:104:21"},"nativeSrc":"43934:104:21","nodeType":"YulExpressionStatement","src":"43934:104:21"}]},{"nativeSrc":"44059:370:21","nodeType":"YulBlock","src":"44059:370:21","statements":[{"nativeSrc":"44094:46:21","nodeType":"YulVariableDeclaration","src":"44094:46:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"44125:9:21","nodeType":"YulIdentifier","src":"44125:9:21"},{"kind":"number","nativeSrc":"44136:2:21","nodeType":"YulLiteral","src":"44136:2:21","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"44121:3:21","nodeType":"YulIdentifier","src":"44121:3:21"},"nativeSrc":"44121:18:21","nodeType":"YulFunctionCall","src":"44121:18:21"}],"functionName":{"name":"calldataload","nativeSrc":"44108:12:21","nodeType":"YulIdentifier","src":"44108:12:21"},"nativeSrc":"44108:32:21","nodeType":"YulFunctionCall","src":"44108:32:21"},"variables":[{"name":"offset","nativeSrc":"44098:6:21","nodeType":"YulTypedName","src":"44098:6:21","type":""}]},{"body":{"nativeSrc":"44187:83:21","nodeType":"YulBlock","src":"44187:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421","nativeSrc":"44189:77:21","nodeType":"YulIdentifier","src":"44189:77:21"},"nativeSrc":"44189:79:21","nodeType":"YulFunctionCall","src":"44189:79:21"},"nativeSrc":"44189:79:21","nodeType":"YulExpressionStatement","src":"44189:79:21"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"44159:6:21","nodeType":"YulIdentifier","src":"44159:6:21"},{"kind":"number","nativeSrc":"44167:18:21","nodeType":"YulLiteral","src":"44167:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"44156:2:21","nodeType":"YulIdentifier","src":"44156:2:21"},"nativeSrc":"44156:30:21","nodeType":"YulFunctionCall","src":"44156:30:21"},"nativeSrc":"44153:117:21","nodeType":"YulIf","src":"44153:117:21"},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"44295:5:21","nodeType":"YulIdentifier","src":"44295:5:21"},{"kind":"number","nativeSrc":"44302:4:21","nodeType":"YulLiteral","src":"44302:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"44291:3:21","nodeType":"YulIdentifier","src":"44291:3:21"},"nativeSrc":"44291:16:21","nodeType":"YulFunctionCall","src":"44291:16:21"},{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"44393:9:21","nodeType":"YulIdentifier","src":"44393:9:21"},{"name":"offset","nativeSrc":"44404:6:21","nodeType":"YulIdentifier","src":"44404:6:21"}],"functionName":{"name":"add","nativeSrc":"44389:3:21","nodeType":"YulIdentifier","src":"44389:3:21"},"nativeSrc":"44389:22:21","nodeType":"YulFunctionCall","src":"44389:22:21"},{"name":"end","nativeSrc":"44413:3:21","nodeType":"YulIdentifier","src":"44413:3:21"}],"functionName":{"name":"abi_decode_t_array$_t_struct$_DataRegistration_$1064_memory_ptr_$dyn_memory_ptr","nativeSrc":"44309:79:21","nodeType":"YulIdentifier","src":"44309:79:21"},"nativeSrc":"44309:108:21","nodeType":"YulFunctionCall","src":"44309:108:21"}],"functionName":{"name":"mstore","nativeSrc":"44284:6:21","nodeType":"YulIdentifier","src":"44284:6:21"},"nativeSrc":"44284:134:21","nodeType":"YulFunctionCall","src":"44284:134:21"},"nativeSrc":"44284:134:21","nodeType":"YulExpressionStatement","src":"44284:134:21"}]}]},"name":"abi_decode_t_struct$_PATCHRequest_$1194_memory_ptr","nativeSrc":"43449:987:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"43509:9:21","nodeType":"YulTypedName","src":"43509:9:21","type":""},{"name":"end","nativeSrc":"43520:3:21","nodeType":"YulTypedName","src":"43520:3:21","type":""}],"returnVariables":[{"name":"value","nativeSrc":"43528:5:21","nodeType":"YulTypedName","src":"43528:5:21","type":""}],"src":"43449:987:21"},{"body":{"nativeSrc":"44538:453:21","nodeType":"YulBlock","src":"44538:453:21","statements":[{"body":{"nativeSrc":"44584:83:21","nodeType":"YulBlock","src":"44584:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"44586:77:21","nodeType":"YulIdentifier","src":"44586:77:21"},"nativeSrc":"44586:79:21","nodeType":"YulFunctionCall","src":"44586:79:21"},"nativeSrc":"44586:79:21","nodeType":"YulExpressionStatement","src":"44586:79:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"44559:7:21","nodeType":"YulIdentifier","src":"44559:7:21"},{"name":"headStart","nativeSrc":"44568:9:21","nodeType":"YulIdentifier","src":"44568:9:21"}],"functionName":{"name":"sub","nativeSrc":"44555:3:21","nodeType":"YulIdentifier","src":"44555:3:21"},"nativeSrc":"44555:23:21","nodeType":"YulFunctionCall","src":"44555:23:21"},{"kind":"number","nativeSrc":"44580:2:21","nodeType":"YulLiteral","src":"44580:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"44551:3:21","nodeType":"YulIdentifier","src":"44551:3:21"},"nativeSrc":"44551:32:21","nodeType":"YulFunctionCall","src":"44551:32:21"},"nativeSrc":"44548:119:21","nodeType":"YulIf","src":"44548:119:21"},{"nativeSrc":"44677:307:21","nodeType":"YulBlock","src":"44677:307:21","statements":[{"nativeSrc":"44692:45:21","nodeType":"YulVariableDeclaration","src":"44692:45:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"44723:9:21","nodeType":"YulIdentifier","src":"44723:9:21"},{"kind":"number","nativeSrc":"44734:1:21","nodeType":"YulLiteral","src":"44734:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"44719:3:21","nodeType":"YulIdentifier","src":"44719:3:21"},"nativeSrc":"44719:17:21","nodeType":"YulFunctionCall","src":"44719:17:21"}],"functionName":{"name":"calldataload","nativeSrc":"44706:12:21","nodeType":"YulIdentifier","src":"44706:12:21"},"nativeSrc":"44706:31:21","nodeType":"YulFunctionCall","src":"44706:31:21"},"variables":[{"name":"offset","nativeSrc":"44696:6:21","nodeType":"YulTypedName","src":"44696:6:21","type":""}]},{"body":{"nativeSrc":"44784:83:21","nodeType":"YulBlock","src":"44784:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"44786:77:21","nodeType":"YulIdentifier","src":"44786:77:21"},"nativeSrc":"44786:79:21","nodeType":"YulFunctionCall","src":"44786:79:21"},"nativeSrc":"44786:79:21","nodeType":"YulExpressionStatement","src":"44786:79:21"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"44756:6:21","nodeType":"YulIdentifier","src":"44756:6:21"},{"kind":"number","nativeSrc":"44764:18:21","nodeType":"YulLiteral","src":"44764:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"44753:2:21","nodeType":"YulIdentifier","src":"44753:2:21"},"nativeSrc":"44753:30:21","nodeType":"YulFunctionCall","src":"44753:30:21"},"nativeSrc":"44750:117:21","nodeType":"YulIf","src":"44750:117:21"},{"nativeSrc":"44881:93:21","nodeType":"YulAssignment","src":"44881:93:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"44946:9:21","nodeType":"YulIdentifier","src":"44946:9:21"},{"name":"offset","nativeSrc":"44957:6:21","nodeType":"YulIdentifier","src":"44957:6:21"}],"functionName":{"name":"add","nativeSrc":"44942:3:21","nodeType":"YulIdentifier","src":"44942:3:21"},"nativeSrc":"44942:22:21","nodeType":"YulFunctionCall","src":"44942:22:21"},{"name":"dataEnd","nativeSrc":"44966:7:21","nodeType":"YulIdentifier","src":"44966:7:21"}],"functionName":{"name":"abi_decode_t_struct$_PATCHRequest_$1194_memory_ptr","nativeSrc":"44891:50:21","nodeType":"YulIdentifier","src":"44891:50:21"},"nativeSrc":"44891:83:21","nodeType":"YulFunctionCall","src":"44891:83:21"},"variableNames":[{"name":"value0","nativeSrc":"44881:6:21","nodeType":"YulIdentifier","src":"44881:6:21"}]}]}]},"name":"abi_decode_tuple_t_struct$_PATCHRequest_$1194_memory_ptr","nativeSrc":"44442:549:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"44508:9:21","nodeType":"YulTypedName","src":"44508:9:21","type":""},{"name":"dataEnd","nativeSrc":"44519:7:21","nodeType":"YulTypedName","src":"44519:7:21","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"44531:6:21","nodeType":"YulTypedName","src":"44531:6:21","type":""}],"src":"44442:549:21"},{"body":{"nativeSrc":"45082:66:21","nodeType":"YulBlock","src":"45082:66:21","statements":[{"nativeSrc":"45092:50:21","nodeType":"YulAssignment","src":"45092:50:21","value":{"arguments":[{"name":"value","nativeSrc":"45136:5:21","nodeType":"YulIdentifier","src":"45136:5:21"}],"functionName":{"name":"convert_t_uint160_to_t_address","nativeSrc":"45105:30:21","nodeType":"YulIdentifier","src":"45105:30:21"},"nativeSrc":"45105:37:21","nodeType":"YulFunctionCall","src":"45105:37:21"},"variableNames":[{"name":"converted","nativeSrc":"45092:9:21","nodeType":"YulIdentifier","src":"45092:9:21"}]}]},"name":"convert_t_contract$_IDataPointStorage_$573_to_t_address","nativeSrc":"44997:151:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"45062:5:21","nodeType":"YulTypedName","src":"45062:5:21","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"45072:9:21","nodeType":"YulTypedName","src":"45072:9:21","type":""}],"src":"44997:151:21"},{"body":{"nativeSrc":"45244:91:21","nodeType":"YulBlock","src":"45244:91:21","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"45261:3:21","nodeType":"YulIdentifier","src":"45261:3:21"},{"arguments":[{"name":"value","nativeSrc":"45322:5:21","nodeType":"YulIdentifier","src":"45322:5:21"}],"functionName":{"name":"convert_t_contract$_IDataPointStorage_$573_to_t_address","nativeSrc":"45266:55:21","nodeType":"YulIdentifier","src":"45266:55:21"},"nativeSrc":"45266:62:21","nodeType":"YulFunctionCall","src":"45266:62:21"}],"functionName":{"name":"mstore","nativeSrc":"45254:6:21","nodeType":"YulIdentifier","src":"45254:6:21"},"nativeSrc":"45254:75:21","nodeType":"YulFunctionCall","src":"45254:75:21"},"nativeSrc":"45254:75:21","nodeType":"YulExpressionStatement","src":"45254:75:21"}]},"name":"abi_encode_t_contract$_IDataPointStorage_$573_to_t_address_fromStack","nativeSrc":"45154:181:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"45232:5:21","nodeType":"YulTypedName","src":"45232:5:21","type":""},{"name":"pos","nativeSrc":"45239:3:21","nodeType":"YulTypedName","src":"45239:3:21","type":""}],"src":"45154:181:21"},{"body":{"nativeSrc":"45464:149:21","nodeType":"YulBlock","src":"45464:149:21","statements":[{"nativeSrc":"45474:26:21","nodeType":"YulAssignment","src":"45474:26:21","value":{"arguments":[{"name":"headStart","nativeSrc":"45486:9:21","nodeType":"YulIdentifier","src":"45486:9:21"},{"kind":"number","nativeSrc":"45497:2:21","nodeType":"YulLiteral","src":"45497:2:21","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"45482:3:21","nodeType":"YulIdentifier","src":"45482:3:21"},"nativeSrc":"45482:18:21","nodeType":"YulFunctionCall","src":"45482:18:21"},"variableNames":[{"name":"tail","nativeSrc":"45474:4:21","nodeType":"YulIdentifier","src":"45474:4:21"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"45579:6:21","nodeType":"YulIdentifier","src":"45579:6:21"},{"arguments":[{"name":"headStart","nativeSrc":"45592:9:21","nodeType":"YulIdentifier","src":"45592:9:21"},{"kind":"number","nativeSrc":"45603:1:21","nodeType":"YulLiteral","src":"45603:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"45588:3:21","nodeType":"YulIdentifier","src":"45588:3:21"},"nativeSrc":"45588:17:21","nodeType":"YulFunctionCall","src":"45588:17:21"}],"functionName":{"name":"abi_encode_t_contract$_IDataPointStorage_$573_to_t_address_fromStack","nativeSrc":"45510:68:21","nodeType":"YulIdentifier","src":"45510:68:21"},"nativeSrc":"45510:96:21","nodeType":"YulFunctionCall","src":"45510:96:21"},"nativeSrc":"45510:96:21","nodeType":"YulExpressionStatement","src":"45510:96:21"}]},"name":"abi_encode_tuple_t_contract$_IDataPointStorage_$573__to_t_address__fromStack_reversed","nativeSrc":"45341:272:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"45436:9:21","nodeType":"YulTypedName","src":"45436:9:21","type":""},{"name":"value0","nativeSrc":"45448:6:21","nodeType":"YulTypedName","src":"45448:6:21","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"45459:4:21","nodeType":"YulTypedName","src":"45459:4:21","type":""}],"src":"45341:272:21"},{"body":{"nativeSrc":"45695:433:21","nodeType":"YulBlock","src":"45695:433:21","statements":[{"body":{"nativeSrc":"45741:83:21","nodeType":"YulBlock","src":"45741:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"45743:77:21","nodeType":"YulIdentifier","src":"45743:77:21"},"nativeSrc":"45743:79:21","nodeType":"YulFunctionCall","src":"45743:79:21"},"nativeSrc":"45743:79:21","nodeType":"YulExpressionStatement","src":"45743:79:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"45716:7:21","nodeType":"YulIdentifier","src":"45716:7:21"},{"name":"headStart","nativeSrc":"45725:9:21","nodeType":"YulIdentifier","src":"45725:9:21"}],"functionName":{"name":"sub","nativeSrc":"45712:3:21","nodeType":"YulIdentifier","src":"45712:3:21"},"nativeSrc":"45712:23:21","nodeType":"YulFunctionCall","src":"45712:23:21"},{"kind":"number","nativeSrc":"45737:2:21","nodeType":"YulLiteral","src":"45737:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"45708:3:21","nodeType":"YulIdentifier","src":"45708:3:21"},"nativeSrc":"45708:32:21","nodeType":"YulFunctionCall","src":"45708:32:21"},"nativeSrc":"45705:119:21","nodeType":"YulIf","src":"45705:119:21"},{"nativeSrc":"45834:287:21","nodeType":"YulBlock","src":"45834:287:21","statements":[{"nativeSrc":"45849:45:21","nodeType":"YulVariableDeclaration","src":"45849:45:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"45880:9:21","nodeType":"YulIdentifier","src":"45880:9:21"},{"kind":"number","nativeSrc":"45891:1:21","nodeType":"YulLiteral","src":"45891:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"45876:3:21","nodeType":"YulIdentifier","src":"45876:3:21"},"nativeSrc":"45876:17:21","nodeType":"YulFunctionCall","src":"45876:17:21"}],"functionName":{"name":"calldataload","nativeSrc":"45863:12:21","nodeType":"YulIdentifier","src":"45863:12:21"},"nativeSrc":"45863:31:21","nodeType":"YulFunctionCall","src":"45863:31:21"},"variables":[{"name":"offset","nativeSrc":"45853:6:21","nodeType":"YulTypedName","src":"45853:6:21","type":""}]},{"body":{"nativeSrc":"45941:83:21","nodeType":"YulBlock","src":"45941:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db","nativeSrc":"45943:77:21","nodeType":"YulIdentifier","src":"45943:77:21"},"nativeSrc":"45943:79:21","nodeType":"YulFunctionCall","src":"45943:79:21"},"nativeSrc":"45943:79:21","nodeType":"YulExpressionStatement","src":"45943:79:21"}]},"condition":{"arguments":[{"name":"offset","nativeSrc":"45913:6:21","nodeType":"YulIdentifier","src":"45913:6:21"},{"kind":"number","nativeSrc":"45921:18:21","nodeType":"YulLiteral","src":"45921:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"45910:2:21","nodeType":"YulIdentifier","src":"45910:2:21"},"nativeSrc":"45910:30:21","nodeType":"YulFunctionCall","src":"45910:30:21"},"nativeSrc":"45907:117:21","nodeType":"YulIf","src":"45907:117:21"},{"nativeSrc":"46038:73:21","nodeType":"YulAssignment","src":"46038:73:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"46083:9:21","nodeType":"YulIdentifier","src":"46083:9:21"},{"name":"offset","nativeSrc":"46094:6:21","nodeType":"YulIdentifier","src":"46094:6:21"}],"functionName":{"name":"add","nativeSrc":"46079:3:21","nodeType":"YulIdentifier","src":"46079:3:21"},"nativeSrc":"46079:22:21","nodeType":"YulFunctionCall","src":"46079:22:21"},{"name":"dataEnd","nativeSrc":"46103:7:21","nodeType":"YulIdentifier","src":"46103:7:21"}],"functionName":{"name":"abi_decode_t_string_memory_ptr","nativeSrc":"46048:30:21","nodeType":"YulIdentifier","src":"46048:30:21"},"nativeSrc":"46048:63:21","nodeType":"YulFunctionCall","src":"46048:63:21"},"variableNames":[{"name":"value0","nativeSrc":"46038:6:21","nodeType":"YulIdentifier","src":"46038:6:21"}]}]}]},"name":"abi_decode_tuple_t_string_memory_ptr","nativeSrc":"45619:509:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"45665:9:21","nodeType":"YulTypedName","src":"45665:9:21","type":""},{"name":"dataEnd","nativeSrc":"45676:7:21","nodeType":"YulTypedName","src":"45676:7:21","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"45688:6:21","nodeType":"YulTypedName","src":"45688:6:21","type":""}],"src":"45619:509:21"},{"body":{"nativeSrc":"46322:390:21","nodeType":"YulBlock","src":"46322:390:21","statements":[{"nativeSrc":"46332:26:21","nodeType":"YulVariableDeclaration","src":"46332:26:21","value":{"arguments":[{"name":"pos","nativeSrc":"46348:3:21","nodeType":"YulIdentifier","src":"46348:3:21"},{"kind":"number","nativeSrc":"46353:4:21","nodeType":"YulLiteral","src":"46353:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"46344:3:21","nodeType":"YulIdentifier","src":"46344:3:21"},"nativeSrc":"46344:14:21","nodeType":"YulFunctionCall","src":"46344:14:21"},"variables":[{"name":"tail","nativeSrc":"46336:4:21","nodeType":"YulTypedName","src":"46336:4:21","type":""}]},{"nativeSrc":"46368:164:21","nodeType":"YulBlock","src":"46368:164:21","statements":[{"nativeSrc":"46405:43:21","nodeType":"YulVariableDeclaration","src":"46405:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"46435:5:21","nodeType":"YulIdentifier","src":"46435:5:21"},{"kind":"number","nativeSrc":"46442:4:21","nodeType":"YulLiteral","src":"46442:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"46431:3:21","nodeType":"YulIdentifier","src":"46431:3:21"},"nativeSrc":"46431:16:21","nodeType":"YulFunctionCall","src":"46431:16:21"}],"functionName":{"name":"mload","nativeSrc":"46425:5:21","nodeType":"YulIdentifier","src":"46425:5:21"},"nativeSrc":"46425:23:21","nodeType":"YulFunctionCall","src":"46425:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"46409:12:21","nodeType":"YulTypedName","src":"46409:12:21","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"46493:12:21","nodeType":"YulIdentifier","src":"46493:12:21"},{"arguments":[{"name":"pos","nativeSrc":"46511:3:21","nodeType":"YulIdentifier","src":"46511:3:21"},{"kind":"number","nativeSrc":"46516:4:21","nodeType":"YulLiteral","src":"46516:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"46507:3:21","nodeType":"YulIdentifier","src":"46507:3:21"},"nativeSrc":"46507:14:21","nodeType":"YulFunctionCall","src":"46507:14:21"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16","nativeSrc":"46461:31:21","nodeType":"YulIdentifier","src":"46461:31:21"},"nativeSrc":"46461:61:21","nodeType":"YulFunctionCall","src":"46461:61:21"},"nativeSrc":"46461:61:21","nodeType":"YulExpressionStatement","src":"46461:61:21"}]},{"nativeSrc":"46542:163:21","nodeType":"YulBlock","src":"46542:163:21","statements":[{"nativeSrc":"46578:43:21","nodeType":"YulVariableDeclaration","src":"46578:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"46608:5:21","nodeType":"YulIdentifier","src":"46608:5:21"},{"kind":"number","nativeSrc":"46615:4:21","nodeType":"YulLiteral","src":"46615:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"46604:3:21","nodeType":"YulIdentifier","src":"46604:3:21"},"nativeSrc":"46604:16:21","nodeType":"YulFunctionCall","src":"46604:16:21"}],"functionName":{"name":"mload","nativeSrc":"46598:5:21","nodeType":"YulIdentifier","src":"46598:5:21"},"nativeSrc":"46598:23:21","nodeType":"YulFunctionCall","src":"46598:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"46582:12:21","nodeType":"YulTypedName","src":"46582:12:21","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"46666:12:21","nodeType":"YulIdentifier","src":"46666:12:21"},{"arguments":[{"name":"pos","nativeSrc":"46684:3:21","nodeType":"YulIdentifier","src":"46684:3:21"},{"kind":"number","nativeSrc":"46689:4:21","nodeType":"YulLiteral","src":"46689:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"46680:3:21","nodeType":"YulIdentifier","src":"46680:3:21"},"nativeSrc":"46680:14:21","nodeType":"YulFunctionCall","src":"46680:14:21"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16","nativeSrc":"46634:31:21","nodeType":"YulIdentifier","src":"46634:31:21"},"nativeSrc":"46634:61:21","nodeType":"YulFunctionCall","src":"46634:61:21"},"nativeSrc":"46634:61:21","nodeType":"YulExpressionStatement","src":"46634:61:21"}]}]},"name":"abi_encode_t_struct$_OPTIONSResponse_$1131_memory_ptr_to_t_struct$_OPTIONSResponse_$1131_memory_ptr_fromStack","nativeSrc":"46190:522:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"46309:5:21","nodeType":"YulTypedName","src":"46309:5:21","type":""},{"name":"pos","nativeSrc":"46316:3:21","nodeType":"YulTypedName","src":"46316:3:21","type":""}],"src":"46190:522:21"},{"body":{"nativeSrc":"46882:190:21","nodeType":"YulBlock","src":"46882:190:21","statements":[{"nativeSrc":"46892:26:21","nodeType":"YulAssignment","src":"46892:26:21","value":{"arguments":[{"name":"headStart","nativeSrc":"46904:9:21","nodeType":"YulIdentifier","src":"46904:9:21"},{"kind":"number","nativeSrc":"46915:2:21","nodeType":"YulLiteral","src":"46915:2:21","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"46900:3:21","nodeType":"YulIdentifier","src":"46900:3:21"},"nativeSrc":"46900:18:21","nodeType":"YulFunctionCall","src":"46900:18:21"},"variableNames":[{"name":"tail","nativeSrc":"46892:4:21","nodeType":"YulIdentifier","src":"46892:4:21"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"47038:6:21","nodeType":"YulIdentifier","src":"47038:6:21"},{"arguments":[{"name":"headStart","nativeSrc":"47051:9:21","nodeType":"YulIdentifier","src":"47051:9:21"},{"kind":"number","nativeSrc":"47062:1:21","nodeType":"YulLiteral","src":"47062:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"47047:3:21","nodeType":"YulIdentifier","src":"47047:3:21"},"nativeSrc":"47047:17:21","nodeType":"YulFunctionCall","src":"47047:17:21"}],"functionName":{"name":"abi_encode_t_struct$_OPTIONSResponse_$1131_memory_ptr_to_t_struct$_OPTIONSResponse_$1131_memory_ptr_fromStack","nativeSrc":"46928:109:21","nodeType":"YulIdentifier","src":"46928:109:21"},"nativeSrc":"46928:137:21","nodeType":"YulFunctionCall","src":"46928:137:21"},"nativeSrc":"46928:137:21","nodeType":"YulExpressionStatement","src":"46928:137:21"}]},"name":"abi_encode_tuple_t_struct$_OPTIONSResponse_$1131_memory_ptr__to_t_struct$_OPTIONSResponse_$1131_memory_ptr__fromStack_reversed","nativeSrc":"46718:354:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"46854:9:21","nodeType":"YulTypedName","src":"46854:9:21","type":""},{"name":"value0","nativeSrc":"46866:6:21","nodeType":"YulTypedName","src":"46866:6:21","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"46877:4:21","nodeType":"YulTypedName","src":"46877:4:21","type":""}],"src":"46718:354:21"},{"body":{"nativeSrc":"47204:206:21","nodeType":"YulBlock","src":"47204:206:21","statements":[{"nativeSrc":"47214:26:21","nodeType":"YulAssignment","src":"47214:26:21","value":{"arguments":[{"name":"headStart","nativeSrc":"47226:9:21","nodeType":"YulIdentifier","src":"47226:9:21"},{"kind":"number","nativeSrc":"47237:2:21","nodeType":"YulLiteral","src":"47237:2:21","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"47222:3:21","nodeType":"YulIdentifier","src":"47222:3:21"},"nativeSrc":"47222:18:21","nodeType":"YulFunctionCall","src":"47222:18:21"},"variableNames":[{"name":"tail","nativeSrc":"47214:4:21","nodeType":"YulIdentifier","src":"47214:4:21"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"47294:6:21","nodeType":"YulIdentifier","src":"47294:6:21"},{"arguments":[{"name":"headStart","nativeSrc":"47307:9:21","nodeType":"YulIdentifier","src":"47307:9:21"},{"kind":"number","nativeSrc":"47318:1:21","nodeType":"YulLiteral","src":"47318:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"47303:3:21","nodeType":"YulIdentifier","src":"47303:3:21"},"nativeSrc":"47303:17:21","nodeType":"YulFunctionCall","src":"47303:17:21"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"47250:43:21","nodeType":"YulIdentifier","src":"47250:43:21"},"nativeSrc":"47250:71:21","nodeType":"YulFunctionCall","src":"47250:71:21"},"nativeSrc":"47250:71:21","nodeType":"YulExpressionStatement","src":"47250:71:21"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"47375:6:21","nodeType":"YulIdentifier","src":"47375:6:21"},{"arguments":[{"name":"headStart","nativeSrc":"47388:9:21","nodeType":"YulIdentifier","src":"47388:9:21"},{"kind":"number","nativeSrc":"47399:2:21","nodeType":"YulLiteral","src":"47399:2:21","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"47384:3:21","nodeType":"YulIdentifier","src":"47384:3:21"},"nativeSrc":"47384:18:21","nodeType":"YulFunctionCall","src":"47384:18:21"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"47331:43:21","nodeType":"YulIdentifier","src":"47331:43:21"},"nativeSrc":"47331:72:21","nodeType":"YulFunctionCall","src":"47331:72:21"},"nativeSrc":"47331:72:21","nodeType":"YulExpressionStatement","src":"47331:72:21"}]},"name":"abi_encode_tuple_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32__fromStack_reversed","nativeSrc":"47078:332:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"47168:9:21","nodeType":"YulTypedName","src":"47168:9:21","type":""},{"name":"value1","nativeSrc":"47180:6:21","nodeType":"YulTypedName","src":"47180:6:21","type":""},{"name":"value0","nativeSrc":"47188:6:21","nodeType":"YulTypedName","src":"47188:6:21","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"47199:4:21","nodeType":"YulTypedName","src":"47199:4:21","type":""}],"src":"47078:332:21"},{"body":{"nativeSrc":"47486:51:21","nodeType":"YulBlock","src":"47486:51:21","statements":[{"nativeSrc":"47496:35:21","nodeType":"YulAssignment","src":"47496:35:21","value":{"arguments":[{"name":"value","nativeSrc":"47525:5:21","nodeType":"YulIdentifier","src":"47525:5:21"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"47507:17:21","nodeType":"YulIdentifier","src":"47507:17:21"},"nativeSrc":"47507:24:21","nodeType":"YulFunctionCall","src":"47507:24:21"},"variableNames":[{"name":"cleaned","nativeSrc":"47496:7:21","nodeType":"YulIdentifier","src":"47496:7:21"}]}]},"name":"cleanup_t_contract$_IDataPointStorage_$573","nativeSrc":"47416:121:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"47468:5:21","nodeType":"YulTypedName","src":"47468:5:21","type":""}],"returnVariables":[{"name":"cleaned","nativeSrc":"47478:7:21","nodeType":"YulTypedName","src":"47478:7:21","type":""}],"src":"47416:121:21"},{"body":{"nativeSrc":"47611:104:21","nodeType":"YulBlock","src":"47611:104:21","statements":[{"body":{"nativeSrc":"47693:16:21","nodeType":"YulBlock","src":"47693:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"47702:1:21","nodeType":"YulLiteral","src":"47702:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"47705:1:21","nodeType":"YulLiteral","src":"47705:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nativeSrc":"47695:6:21","nodeType":"YulIdentifier","src":"47695:6:21"},"nativeSrc":"47695:12:21","nodeType":"YulFunctionCall","src":"47695:12:21"},"nativeSrc":"47695:12:21","nodeType":"YulExpressionStatement","src":"47695:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"47634:5:21","nodeType":"YulIdentifier","src":"47634:5:21"},{"arguments":[{"name":"value","nativeSrc":"47684:5:21","nodeType":"YulIdentifier","src":"47684:5:21"}],"functionName":{"name":"cleanup_t_contract$_IDataPointStorage_$573","nativeSrc":"47641:42:21","nodeType":"YulIdentifier","src":"47641:42:21"},"nativeSrc":"47641:49:21","nodeType":"YulFunctionCall","src":"47641:49:21"}],"functionName":{"name":"eq","nativeSrc":"47631:2:21","nodeType":"YulIdentifier","src":"47631:2:21"},"nativeSrc":"47631:60:21","nodeType":"YulFunctionCall","src":"47631:60:21"}],"functionName":{"name":"iszero","nativeSrc":"47624:6:21","nodeType":"YulIdentifier","src":"47624:6:21"},"nativeSrc":"47624:68:21","nodeType":"YulFunctionCall","src":"47624:68:21"},"nativeSrc":"47621:88:21","nodeType":"YulIf","src":"47621:88:21"}]},"name":"validator_revert_t_contract$_IDataPointStorage_$573","nativeSrc":"47543:172:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"47604:5:21","nodeType":"YulTypedName","src":"47604:5:21","type":""}],"src":"47543:172:21"},{"body":{"nativeSrc":"47809:105:21","nodeType":"YulBlock","src":"47809:105:21","statements":[{"nativeSrc":"47819:22:21","nodeType":"YulAssignment","src":"47819:22:21","value":{"arguments":[{"name":"offset","nativeSrc":"47834:6:21","nodeType":"YulIdentifier","src":"47834:6:21"}],"functionName":{"name":"mload","nativeSrc":"47828:5:21","nodeType":"YulIdentifier","src":"47828:5:21"},"nativeSrc":"47828:13:21","nodeType":"YulFunctionCall","src":"47828:13:21"},"variableNames":[{"name":"value","nativeSrc":"47819:5:21","nodeType":"YulIdentifier","src":"47819:5:21"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"47902:5:21","nodeType":"YulIdentifier","src":"47902:5:21"}],"functionName":{"name":"validator_revert_t_contract$_IDataPointStorage_$573","nativeSrc":"47850:51:21","nodeType":"YulIdentifier","src":"47850:51:21"},"nativeSrc":"47850:58:21","nodeType":"YulFunctionCall","src":"47850:58:21"},"nativeSrc":"47850:58:21","nodeType":"YulExpressionStatement","src":"47850:58:21"}]},"name":"abi_decode_t_contract$_IDataPointStorage_$573_fromMemory","nativeSrc":"47721:193:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"47787:6:21","nodeType":"YulTypedName","src":"47787:6:21","type":""},{"name":"end","nativeSrc":"47795:3:21","nodeType":"YulTypedName","src":"47795:3:21","type":""}],"returnVariables":[{"name":"value","nativeSrc":"47803:5:21","nodeType":"YulTypedName","src":"47803:5:21","type":""}],"src":"47721:193:21"},{"body":{"nativeSrc":"48022:299:21","nodeType":"YulBlock","src":"48022:299:21","statements":[{"body":{"nativeSrc":"48068:83:21","nodeType":"YulBlock","src":"48068:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"48070:77:21","nodeType":"YulIdentifier","src":"48070:77:21"},"nativeSrc":"48070:79:21","nodeType":"YulFunctionCall","src":"48070:79:21"},"nativeSrc":"48070:79:21","nodeType":"YulExpressionStatement","src":"48070:79:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"48043:7:21","nodeType":"YulIdentifier","src":"48043:7:21"},{"name":"headStart","nativeSrc":"48052:9:21","nodeType":"YulIdentifier","src":"48052:9:21"}],"functionName":{"name":"sub","nativeSrc":"48039:3:21","nodeType":"YulIdentifier","src":"48039:3:21"},"nativeSrc":"48039:23:21","nodeType":"YulFunctionCall","src":"48039:23:21"},{"kind":"number","nativeSrc":"48064:2:21","nodeType":"YulLiteral","src":"48064:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"48035:3:21","nodeType":"YulIdentifier","src":"48035:3:21"},"nativeSrc":"48035:32:21","nodeType":"YulFunctionCall","src":"48035:32:21"},"nativeSrc":"48032:119:21","nodeType":"YulIf","src":"48032:119:21"},{"nativeSrc":"48161:153:21","nodeType":"YulBlock","src":"48161:153:21","statements":[{"nativeSrc":"48176:15:21","nodeType":"YulVariableDeclaration","src":"48176:15:21","value":{"kind":"number","nativeSrc":"48190:1:21","nodeType":"YulLiteral","src":"48190:1:21","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"48180:6:21","nodeType":"YulTypedName","src":"48180:6:21","type":""}]},{"nativeSrc":"48205:99:21","nodeType":"YulAssignment","src":"48205:99:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"48276:9:21","nodeType":"YulIdentifier","src":"48276:9:21"},{"name":"offset","nativeSrc":"48287:6:21","nodeType":"YulIdentifier","src":"48287:6:21"}],"functionName":{"name":"add","nativeSrc":"48272:3:21","nodeType":"YulIdentifier","src":"48272:3:21"},"nativeSrc":"48272:22:21","nodeType":"YulFunctionCall","src":"48272:22:21"},{"name":"dataEnd","nativeSrc":"48296:7:21","nodeType":"YulIdentifier","src":"48296:7:21"}],"functionName":{"name":"abi_decode_t_contract$_IDataPointStorage_$573_fromMemory","nativeSrc":"48215:56:21","nodeType":"YulIdentifier","src":"48215:56:21"},"nativeSrc":"48215:89:21","nodeType":"YulFunctionCall","src":"48215:89:21"},"variableNames":[{"name":"value0","nativeSrc":"48205:6:21","nodeType":"YulIdentifier","src":"48205:6:21"}]}]}]},"name":"abi_decode_tuple_t_contract$_IDataPointStorage_$573_fromMemory","nativeSrc":"47920:401:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"47992:9:21","nodeType":"YulTypedName","src":"47992:9:21","type":""},{"name":"dataEnd","nativeSrc":"48003:7:21","nodeType":"YulTypedName","src":"48003:7:21","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"48015:6:21","nodeType":"YulTypedName","src":"48015:6:21","type":""}],"src":"47920:401:21"},{"body":{"nativeSrc":"48423:73:21","nodeType":"YulBlock","src":"48423:73:21","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"48440:3:21","nodeType":"YulIdentifier","src":"48440:3:21"},{"name":"length","nativeSrc":"48445:6:21","nodeType":"YulIdentifier","src":"48445:6:21"}],"functionName":{"name":"mstore","nativeSrc":"48433:6:21","nodeType":"YulIdentifier","src":"48433:6:21"},"nativeSrc":"48433:19:21","nodeType":"YulFunctionCall","src":"48433:19:21"},"nativeSrc":"48433:19:21","nodeType":"YulExpressionStatement","src":"48433:19:21"},{"nativeSrc":"48461:29:21","nodeType":"YulAssignment","src":"48461:29:21","value":{"arguments":[{"name":"pos","nativeSrc":"48480:3:21","nodeType":"YulIdentifier","src":"48480:3:21"},{"kind":"number","nativeSrc":"48485:4:21","nodeType":"YulLiteral","src":"48485:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"48476:3:21","nodeType":"YulIdentifier","src":"48476:3:21"},"nativeSrc":"48476:14:21","nodeType":"YulFunctionCall","src":"48476:14:21"},"variableNames":[{"name":"updated_pos","nativeSrc":"48461:11:21","nodeType":"YulIdentifier","src":"48461:11:21"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"48327:169:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"48395:3:21","nodeType":"YulTypedName","src":"48395:3:21","type":""},{"name":"length","nativeSrc":"48400:6:21","nodeType":"YulTypedName","src":"48400:6:21","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"48411:11:21","nodeType":"YulTypedName","src":"48411:11:21","type":""}],"src":"48327:169:21"},{"body":{"nativeSrc":"48608:62:21","nodeType":"YulBlock","src":"48608:62:21","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"48630:6:21","nodeType":"YulIdentifier","src":"48630:6:21"},{"kind":"number","nativeSrc":"48638:1:21","nodeType":"YulLiteral","src":"48638:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"48626:3:21","nodeType":"YulIdentifier","src":"48626:3:21"},"nativeSrc":"48626:14:21","nodeType":"YulFunctionCall","src":"48626:14:21"},{"hexValue":"4d6574686f64204e6f7420416c6c6f776564","kind":"string","nativeSrc":"48642:20:21","nodeType":"YulLiteral","src":"48642:20:21","type":"","value":"Method Not Allowed"}],"functionName":{"name":"mstore","nativeSrc":"48619:6:21","nodeType":"YulIdentifier","src":"48619:6:21"},"nativeSrc":"48619:44:21","nodeType":"YulFunctionCall","src":"48619:44:21"},"nativeSrc":"48619:44:21","nodeType":"YulExpressionStatement","src":"48619:44:21"}]},"name":"store_literal_in_memory_7a964d37282303714fb467b98ec1cbe6d2e90dd52c96aeb740b8369104751d6b","nativeSrc":"48502:168:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"48600:6:21","nodeType":"YulTypedName","src":"48600:6:21","type":""}],"src":"48502:168:21"},{"body":{"nativeSrc":"48822:220:21","nodeType":"YulBlock","src":"48822:220:21","statements":[{"nativeSrc":"48832:74:21","nodeType":"YulAssignment","src":"48832:74:21","value":{"arguments":[{"name":"pos","nativeSrc":"48898:3:21","nodeType":"YulIdentifier","src":"48898:3:21"},{"kind":"number","nativeSrc":"48903:2:21","nodeType":"YulLiteral","src":"48903:2:21","type":"","value":"18"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"48839:58:21","nodeType":"YulIdentifier","src":"48839:58:21"},"nativeSrc":"48839:67:21","nodeType":"YulFunctionCall","src":"48839:67:21"},"variableNames":[{"name":"pos","nativeSrc":"48832:3:21","nodeType":"YulIdentifier","src":"48832:3:21"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"49004:3:21","nodeType":"YulIdentifier","src":"49004:3:21"}],"functionName":{"name":"store_literal_in_memory_7a964d37282303714fb467b98ec1cbe6d2e90dd52c96aeb740b8369104751d6b","nativeSrc":"48915:88:21","nodeType":"YulIdentifier","src":"48915:88:21"},"nativeSrc":"48915:93:21","nodeType":"YulFunctionCall","src":"48915:93:21"},"nativeSrc":"48915:93:21","nodeType":"YulExpressionStatement","src":"48915:93:21"},{"nativeSrc":"49017:19:21","nodeType":"YulAssignment","src":"49017:19:21","value":{"arguments":[{"name":"pos","nativeSrc":"49028:3:21","nodeType":"YulIdentifier","src":"49028:3:21"},{"kind":"number","nativeSrc":"49033:2:21","nodeType":"YulLiteral","src":"49033:2:21","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"49024:3:21","nodeType":"YulIdentifier","src":"49024:3:21"},"nativeSrc":"49024:12:21","nodeType":"YulFunctionCall","src":"49024:12:21"},"variableNames":[{"name":"end","nativeSrc":"49017:3:21","nodeType":"YulIdentifier","src":"49017:3:21"}]}]},"name":"abi_encode_t_stringliteral_7a964d37282303714fb467b98ec1cbe6d2e90dd52c96aeb740b8369104751d6b_to_t_string_memory_ptr_fromStack","nativeSrc":"48676:366:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"48810:3:21","nodeType":"YulTypedName","src":"48810:3:21","type":""}],"returnVariables":[{"name":"end","nativeSrc":"48818:3:21","nodeType":"YulTypedName","src":"48818:3:21","type":""}],"src":"48676:366:21"},{"body":{"nativeSrc":"49111:52:21","nodeType":"YulBlock","src":"49111:52:21","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"49128:3:21","nodeType":"YulIdentifier","src":"49128:3:21"},{"arguments":[{"name":"value","nativeSrc":"49150:5:21","nodeType":"YulIdentifier","src":"49150:5:21"}],"functionName":{"name":"cleanup_t_uint16","nativeSrc":"49133:16:21","nodeType":"YulIdentifier","src":"49133:16:21"},"nativeSrc":"49133:23:21","nodeType":"YulFunctionCall","src":"49133:23:21"}],"functionName":{"name":"mstore","nativeSrc":"49121:6:21","nodeType":"YulIdentifier","src":"49121:6:21"},"nativeSrc":"49121:36:21","nodeType":"YulFunctionCall","src":"49121:36:21"},"nativeSrc":"49121:36:21","nodeType":"YulExpressionStatement","src":"49121:36:21"}]},"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"49048:115:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"49099:5:21","nodeType":"YulTypedName","src":"49099:5:21","type":""},{"name":"pos","nativeSrc":"49106:3:21","nodeType":"YulTypedName","src":"49106:3:21","type":""}],"src":"49048:115:21"},{"body":{"nativeSrc":"49388:404:21","nodeType":"YulBlock","src":"49388:404:21","statements":[{"nativeSrc":"49398:26:21","nodeType":"YulAssignment","src":"49398:26:21","value":{"arguments":[{"name":"headStart","nativeSrc":"49410:9:21","nodeType":"YulIdentifier","src":"49410:9:21"},{"kind":"number","nativeSrc":"49421:2:21","nodeType":"YulLiteral","src":"49421:2:21","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"49406:3:21","nodeType":"YulIdentifier","src":"49406:3:21"},"nativeSrc":"49406:18:21","nodeType":"YulFunctionCall","src":"49406:18:21"},"variableNames":[{"name":"tail","nativeSrc":"49398:4:21","nodeType":"YulIdentifier","src":"49398:4:21"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"49445:9:21","nodeType":"YulIdentifier","src":"49445:9:21"},{"kind":"number","nativeSrc":"49456:1:21","nodeType":"YulLiteral","src":"49456:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"49441:3:21","nodeType":"YulIdentifier","src":"49441:3:21"},"nativeSrc":"49441:17:21","nodeType":"YulFunctionCall","src":"49441:17:21"},{"arguments":[{"name":"tail","nativeSrc":"49464:4:21","nodeType":"YulIdentifier","src":"49464:4:21"},{"name":"headStart","nativeSrc":"49470:9:21","nodeType":"YulIdentifier","src":"49470:9:21"}],"functionName":{"name":"sub","nativeSrc":"49460:3:21","nodeType":"YulIdentifier","src":"49460:3:21"},"nativeSrc":"49460:20:21","nodeType":"YulFunctionCall","src":"49460:20:21"}],"functionName":{"name":"mstore","nativeSrc":"49434:6:21","nodeType":"YulIdentifier","src":"49434:6:21"},"nativeSrc":"49434:47:21","nodeType":"YulFunctionCall","src":"49434:47:21"},"nativeSrc":"49434:47:21","nodeType":"YulExpressionStatement","src":"49434:47:21"},{"nativeSrc":"49490:139:21","nodeType":"YulAssignment","src":"49490:139:21","value":{"arguments":[{"name":"tail","nativeSrc":"49624:4:21","nodeType":"YulIdentifier","src":"49624:4:21"}],"functionName":{"name":"abi_encode_t_stringliteral_7a964d37282303714fb467b98ec1cbe6d2e90dd52c96aeb740b8369104751d6b_to_t_string_memory_ptr_fromStack","nativeSrc":"49498:124:21","nodeType":"YulIdentifier","src":"49498:124:21"},"nativeSrc":"49498:131:21","nodeType":"YulFunctionCall","src":"49498:131:21"},"variableNames":[{"name":"tail","nativeSrc":"49490:4:21","nodeType":"YulIdentifier","src":"49490:4:21"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"49681:6:21","nodeType":"YulIdentifier","src":"49681:6:21"},{"arguments":[{"name":"headStart","nativeSrc":"49694:9:21","nodeType":"YulIdentifier","src":"49694:9:21"},{"kind":"number","nativeSrc":"49705:2:21","nodeType":"YulLiteral","src":"49705:2:21","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"49690:3:21","nodeType":"YulIdentifier","src":"49690:3:21"},"nativeSrc":"49690:18:21","nodeType":"YulFunctionCall","src":"49690:18:21"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"49639:41:21","nodeType":"YulIdentifier","src":"49639:41:21"},"nativeSrc":"49639:70:21","nodeType":"YulFunctionCall","src":"49639:70:21"},"nativeSrc":"49639:70:21","nodeType":"YulExpressionStatement","src":"49639:70:21"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"49757:6:21","nodeType":"YulIdentifier","src":"49757:6:21"},{"arguments":[{"name":"headStart","nativeSrc":"49770:9:21","nodeType":"YulIdentifier","src":"49770:9:21"},{"kind":"number","nativeSrc":"49781:2:21","nodeType":"YulLiteral","src":"49781:2:21","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"49766:3:21","nodeType":"YulIdentifier","src":"49766:3:21"},"nativeSrc":"49766:18:21","nodeType":"YulFunctionCall","src":"49766:18:21"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"49719:37:21","nodeType":"YulIdentifier","src":"49719:37:21"},"nativeSrc":"49719:66:21","nodeType":"YulFunctionCall","src":"49719:66:21"},"nativeSrc":"49719:66:21","nodeType":"YulExpressionStatement","src":"49719:66:21"}]},"name":"abi_encode_tuple_t_stringliteral_7a964d37282303714fb467b98ec1cbe6d2e90dd52c96aeb740b8369104751d6b_t_uint16_t_bool__to_t_string_memory_ptr_t_uint16_t_bool__fromStack_reversed","nativeSrc":"49169:623:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"49352:9:21","nodeType":"YulTypedName","src":"49352:9:21","type":""},{"name":"value1","nativeSrc":"49364:6:21","nodeType":"YulTypedName","src":"49364:6:21","type":""},{"name":"value0","nativeSrc":"49372:6:21","nodeType":"YulTypedName","src":"49372:6:21","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"49383:4:21","nodeType":"YulTypedName","src":"49383:4:21","type":""}],"src":"49169:623:21"},{"body":{"nativeSrc":"49904:62:21","nodeType":"YulBlock","src":"49904:62:21","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"49926:6:21","nodeType":"YulIdentifier","src":"49926:6:21"},{"kind":"number","nativeSrc":"49934:1:21","nodeType":"YulLiteral","src":"49934:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"49922:3:21","nodeType":"YulIdentifier","src":"49922:3:21"},"nativeSrc":"49922:14:21","nodeType":"YulFunctionCall","src":"49922:14:21"},{"hexValue":"5265736f7572636520496d6d757461626c65","kind":"string","nativeSrc":"49938:20:21","nodeType":"YulLiteral","src":"49938:20:21","type":"","value":"Resource Immutable"}],"functionName":{"name":"mstore","nativeSrc":"49915:6:21","nodeType":"YulIdentifier","src":"49915:6:21"},"nativeSrc":"49915:44:21","nodeType":"YulFunctionCall","src":"49915:44:21"},"nativeSrc":"49915:44:21","nodeType":"YulExpressionStatement","src":"49915:44:21"}]},"name":"store_literal_in_memory_ec4917d1aed7ef8cbcf1c44444d2aa8d01b09b6f026baf9654d1305e94617eba","nativeSrc":"49798:168:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"49896:6:21","nodeType":"YulTypedName","src":"49896:6:21","type":""}],"src":"49798:168:21"},{"body":{"nativeSrc":"50118:220:21","nodeType":"YulBlock","src":"50118:220:21","statements":[{"nativeSrc":"50128:74:21","nodeType":"YulAssignment","src":"50128:74:21","value":{"arguments":[{"name":"pos","nativeSrc":"50194:3:21","nodeType":"YulIdentifier","src":"50194:3:21"},{"kind":"number","nativeSrc":"50199:2:21","nodeType":"YulLiteral","src":"50199:2:21","type":"","value":"18"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"50135:58:21","nodeType":"YulIdentifier","src":"50135:58:21"},"nativeSrc":"50135:67:21","nodeType":"YulFunctionCall","src":"50135:67:21"},"variableNames":[{"name":"pos","nativeSrc":"50128:3:21","nodeType":"YulIdentifier","src":"50128:3:21"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"50300:3:21","nodeType":"YulIdentifier","src":"50300:3:21"}],"functionName":{"name":"store_literal_in_memory_ec4917d1aed7ef8cbcf1c44444d2aa8d01b09b6f026baf9654d1305e94617eba","nativeSrc":"50211:88:21","nodeType":"YulIdentifier","src":"50211:88:21"},"nativeSrc":"50211:93:21","nodeType":"YulFunctionCall","src":"50211:93:21"},"nativeSrc":"50211:93:21","nodeType":"YulExpressionStatement","src":"50211:93:21"},{"nativeSrc":"50313:19:21","nodeType":"YulAssignment","src":"50313:19:21","value":{"arguments":[{"name":"pos","nativeSrc":"50324:3:21","nodeType":"YulIdentifier","src":"50324:3:21"},{"kind":"number","nativeSrc":"50329:2:21","nodeType":"YulLiteral","src":"50329:2:21","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"50320:3:21","nodeType":"YulIdentifier","src":"50320:3:21"},"nativeSrc":"50320:12:21","nodeType":"YulFunctionCall","src":"50320:12:21"},"variableNames":[{"name":"end","nativeSrc":"50313:3:21","nodeType":"YulIdentifier","src":"50313:3:21"}]}]},"name":"abi_encode_t_stringliteral_ec4917d1aed7ef8cbcf1c44444d2aa8d01b09b6f026baf9654d1305e94617eba_to_t_string_memory_ptr_fromStack","nativeSrc":"49972:366:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"50106:3:21","nodeType":"YulTypedName","src":"50106:3:21","type":""}],"returnVariables":[{"name":"end","nativeSrc":"50114:3:21","nodeType":"YulTypedName","src":"50114:3:21","type":""}],"src":"49972:366:21"},{"body":{"nativeSrc":"50563:404:21","nodeType":"YulBlock","src":"50563:404:21","statements":[{"nativeSrc":"50573:26:21","nodeType":"YulAssignment","src":"50573:26:21","value":{"arguments":[{"name":"headStart","nativeSrc":"50585:9:21","nodeType":"YulIdentifier","src":"50585:9:21"},{"kind":"number","nativeSrc":"50596:2:21","nodeType":"YulLiteral","src":"50596:2:21","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"50581:3:21","nodeType":"YulIdentifier","src":"50581:3:21"},"nativeSrc":"50581:18:21","nodeType":"YulFunctionCall","src":"50581:18:21"},"variableNames":[{"name":"tail","nativeSrc":"50573:4:21","nodeType":"YulIdentifier","src":"50573:4:21"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"50620:9:21","nodeType":"YulIdentifier","src":"50620:9:21"},{"kind":"number","nativeSrc":"50631:1:21","nodeType":"YulLiteral","src":"50631:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"50616:3:21","nodeType":"YulIdentifier","src":"50616:3:21"},"nativeSrc":"50616:17:21","nodeType":"YulFunctionCall","src":"50616:17:21"},{"arguments":[{"name":"tail","nativeSrc":"50639:4:21","nodeType":"YulIdentifier","src":"50639:4:21"},{"name":"headStart","nativeSrc":"50645:9:21","nodeType":"YulIdentifier","src":"50645:9:21"}],"functionName":{"name":"sub","nativeSrc":"50635:3:21","nodeType":"YulIdentifier","src":"50635:3:21"},"nativeSrc":"50635:20:21","nodeType":"YulFunctionCall","src":"50635:20:21"}],"functionName":{"name":"mstore","nativeSrc":"50609:6:21","nodeType":"YulIdentifier","src":"50609:6:21"},"nativeSrc":"50609:47:21","nodeType":"YulFunctionCall","src":"50609:47:21"},"nativeSrc":"50609:47:21","nodeType":"YulExpressionStatement","src":"50609:47:21"},{"nativeSrc":"50665:139:21","nodeType":"YulAssignment","src":"50665:139:21","value":{"arguments":[{"name":"tail","nativeSrc":"50799:4:21","nodeType":"YulIdentifier","src":"50799:4:21"}],"functionName":{"name":"abi_encode_t_stringliteral_ec4917d1aed7ef8cbcf1c44444d2aa8d01b09b6f026baf9654d1305e94617eba_to_t_string_memory_ptr_fromStack","nativeSrc":"50673:124:21","nodeType":"YulIdentifier","src":"50673:124:21"},"nativeSrc":"50673:131:21","nodeType":"YulFunctionCall","src":"50673:131:21"},"variableNames":[{"name":"tail","nativeSrc":"50665:4:21","nodeType":"YulIdentifier","src":"50665:4:21"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"50856:6:21","nodeType":"YulIdentifier","src":"50856:6:21"},{"arguments":[{"name":"headStart","nativeSrc":"50869:9:21","nodeType":"YulIdentifier","src":"50869:9:21"},{"kind":"number","nativeSrc":"50880:2:21","nodeType":"YulLiteral","src":"50880:2:21","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"50865:3:21","nodeType":"YulIdentifier","src":"50865:3:21"},"nativeSrc":"50865:18:21","nodeType":"YulFunctionCall","src":"50865:18:21"}],"functionName":{"name":"abi_encode_t_uint16_to_t_uint16_fromStack","nativeSrc":"50814:41:21","nodeType":"YulIdentifier","src":"50814:41:21"},"nativeSrc":"50814:70:21","nodeType":"YulFunctionCall","src":"50814:70:21"},"nativeSrc":"50814:70:21","nodeType":"YulExpressionStatement","src":"50814:70:21"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"50932:6:21","nodeType":"YulIdentifier","src":"50932:6:21"},{"arguments":[{"name":"headStart","nativeSrc":"50945:9:21","nodeType":"YulIdentifier","src":"50945:9:21"},{"kind":"number","nativeSrc":"50956:2:21","nodeType":"YulLiteral","src":"50956:2:21","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"50941:3:21","nodeType":"YulIdentifier","src":"50941:3:21"},"nativeSrc":"50941:18:21","nodeType":"YulFunctionCall","src":"50941:18:21"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"50894:37:21","nodeType":"YulIdentifier","src":"50894:37:21"},"nativeSrc":"50894:66:21","nodeType":"YulFunctionCall","src":"50894:66:21"},"nativeSrc":"50894:66:21","nodeType":"YulExpressionStatement","src":"50894:66:21"}]},"name":"abi_encode_tuple_t_stringliteral_ec4917d1aed7ef8cbcf1c44444d2aa8d01b09b6f026baf9654d1305e94617eba_t_uint16_t_bool__to_t_string_memory_ptr_t_uint16_t_bool__fromStack_reversed","nativeSrc":"50344:623:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"50527:9:21","nodeType":"YulTypedName","src":"50527:9:21","type":""},{"name":"value1","nativeSrc":"50539:6:21","nodeType":"YulTypedName","src":"50539:6:21","type":""},{"name":"value0","nativeSrc":"50547:6:21","nodeType":"YulTypedName","src":"50547:6:21","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"50558:4:21","nodeType":"YulTypedName","src":"50558:4:21","type":""}],"src":"50344:623:21"},{"body":{"nativeSrc":"51079:53:21","nodeType":"YulBlock","src":"51079:53:21","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"51101:6:21","nodeType":"YulIdentifier","src":"51101:6:21"},{"kind":"number","nativeSrc":"51109:1:21","nodeType":"YulLiteral","src":"51109:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"51097:3:21","nodeType":"YulIdentifier","src":"51097:3:21"},"nativeSrc":"51097:14:21","nodeType":"YulFunctionCall","src":"51097:14:21"},{"hexValue":"4e6f7420466f756e64","kind":"string","nativeSrc":"51113:11:21","nodeType":"YulLiteral","src":"51113:11:21","type":"","value":"Not Found"}],"functionName":{"name":"mstore","nativeSrc":"51090:6:21","nodeType":"YulIdentifier","src":"51090:6:21"},"nativeSrc":"51090:35:21","nodeType":"YulFunctionCall","src":"51090:35:21"},"nativeSrc":"51090:35:21","nodeType":"YulExpressionStatement","src":"51090:35:21"}]},"name":"store_literal_in_memory_15232cbb030dcf3f4ee56d3191d078b5ac1eaff91b0325c151acfbad69663cad","nativeSrc":"50973:159:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"51071:6:21","nodeType":"YulTypedName","src":"51071:6:21","type":""}],"src":"50973:159:21"},{"body":{"nativeSrc":"51284:219:21","nodeType":"YulBlock","src":"51284:219:21","statements":[{"nativeSrc":"51294:73:21","nodeType":"YulAssignment","src":"51294:73:21","value":{"arguments":[{"name":"pos","nativeSrc":"51360:3:21","nodeType":"YulIdentifier","src":"51360:3:21"},{"kind":"number","nativeSrc":"51365:1:21","nodeType":"YulLiteral","src":"51365:1:21","type":"","value":"9"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"51301:58:21","nodeType":"YulIdentifier","src":"51301:58:21"},"nativeSrc":"51301:66:21","nodeType":"YulFunctionCall","src":"51301:66:21"},"variableNames":[{"name":"pos","nativeSrc":"51294:3:21","nodeType":"YulIdentifier","src":"51294:3:21"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"51465:3:21","nodeType":"YulIdentifier","src":"51465:3:21"}],"functionName":{"name":"store_literal_in_memory_15232cbb030dcf3f4ee56d3191d078b5ac1eaff91b0325c151acfbad69663cad","nativeSrc":"51376:88:21","nodeType":"YulIdentifier","src":"51376:88:21"},"nativeSrc":"51376:93:21","nodeType":"YulFunctionCall","src":"51376:93:21"},"nativeSrc":"51376:93:21","nodeType":"YulExpressionStatement","src":"51376:93:21"},{"nativeSrc":"51478:19:21","nodeType":"YulAssignment","src":"51478:19:21","value":{"arguments":[{"name":"pos","nativeSrc":"51489:3:21","nodeType":"YulIdentifier","src":"51489:3:21"},{"kind":"number","nativeSrc":"51494:2:21","nodeType":"YulLiteral","src":"51494:2:21","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"51485:3:21","nodeType":"YulIdentifier","src":"51485:3:21"},"nativeSrc":"51485:12:21","nodeType":"YulFunctionCall","src":"51485:12:21"},"variableNames":[{"name":"end","nativeSrc":"51478:3:21","nodeType":"YulIdentifier","src":"51478:3:21"}]}]},"name":"abi_encode_t_stringliteral_15232cbb030dcf3f4ee56d3191d078b5ac1eaff91b0325c151acfbad69663cad_to_t_string_memory_ptr_fromStack","nativeSrc":"51138:365:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"51272:3:21","nodeType":"YulTypedName","src":"51272:3:21","type":""}],"returnVariables":[{"name":"end","nativeSrc":"51280:3:21","nodeType":"YulTypedName","src":"51280:3:21","type":""}],"src":"51138:365:21"},{"body":{"nativeSrc":"51702:324:21","nodeType":"YulBlock","src":"51702:324:21","statements":[{"nativeSrc":"51712:26:21","nodeType":"YulAssignment","src":"51712:26:21","value":{"arguments":[{"name":"headStart","nativeSrc":"51724:9:21","nodeType":"YulIdentifier","src":"51724:9:21"},{"kind":"number","nativeSrc":"51735:2:21","nodeType":"YulLiteral","src":"51735:2:21","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"51720:3:21","nodeType":"YulIdentifier","src":"51720:3:21"},"nativeSrc":"51720:18:21","nodeType":"YulFunctionCall","src":"51720:18:21"},"variableNames":[{"name":"tail","nativeSrc":"51712:4:21","nodeType":"YulIdentifier","src":"51712:4:21"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"51759:9:21","nodeType":"YulIdentifier","src":"51759:9:21"},{"kind":"number","nativeSrc":"51770:1:21","nodeType":"YulLiteral","src":"51770:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"51755:3:21","nodeType":"YulIdentifier","src":"51755:3:21"},"nativeSrc":"51755:17:21","nodeType":"YulFunctionCall","src":"51755:17:21"},{"arguments":[{"name":"tail","nativeSrc":"51778:4:21","nodeType":"YulIdentifier","src":"51778:4:21"},{"name":"headStart","nativeSrc":"51784:9:21","nodeType":"YulIdentifier","src":"51784:9:21"}],"functionName":{"name":"sub","nativeSrc":"51774:3:21","nodeType":"YulIdentifier","src":"51774:3:21"},"nativeSrc":"51774:20:21","nodeType":"YulFunctionCall","src":"51774:20:21"}],"functionName":{"name":"mstore","nativeSrc":"51748:6:21","nodeType":"YulIdentifier","src":"51748:6:21"},"nativeSrc":"51748:47:21","nodeType":"YulFunctionCall","src":"51748:47:21"},"nativeSrc":"51748:47:21","nodeType":"YulExpressionStatement","src":"51748:47:21"},{"nativeSrc":"51804:139:21","nodeType":"YulAssignment","src":"51804:139:21","value":{"arguments":[{"name":"tail","nativeSrc":"51938:4:21","nodeType":"YulIdentifier","src":"51938:4:21"}],"functionName":{"name":"abi_encode_t_stringliteral_15232cbb030dcf3f4ee56d3191d078b5ac1eaff91b0325c151acfbad69663cad_to_t_string_memory_ptr_fromStack","nativeSrc":"51812:124:21","nodeType":"YulIdentifier","src":"51812:124:21"},"nativeSrc":"51812:131:21","nodeType":"YulFunctionCall","src":"51812:131:21"},"variableNames":[{"name":"tail","nativeSrc":"51804:4:21","nodeType":"YulIdentifier","src":"51804:4:21"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"51991:6:21","nodeType":"YulIdentifier","src":"51991:6:21"},{"arguments":[{"name":"headStart","nativeSrc":"52004:9:21","nodeType":"YulIdentifier","src":"52004:9:21"},{"kind":"number","nativeSrc":"52015:2:21","nodeType":"YulLiteral","src":"52015:2:21","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"52000:3:21","nodeType":"YulIdentifier","src":"52000:3:21"},"nativeSrc":"52000:18:21","nodeType":"YulFunctionCall","src":"52000:18:21"}],"functionName":{"name":"abi_encode_t_bool_to_t_bool_fromStack","nativeSrc":"51953:37:21","nodeType":"YulIdentifier","src":"51953:37:21"},"nativeSrc":"51953:66:21","nodeType":"YulFunctionCall","src":"51953:66:21"},"nativeSrc":"51953:66:21","nodeType":"YulExpressionStatement","src":"51953:66:21"}]},"name":"abi_encode_tuple_t_stringliteral_15232cbb030dcf3f4ee56d3191d078b5ac1eaff91b0325c151acfbad69663cad_t_bool__to_t_string_memory_ptr_t_bool__fromStack_reversed","nativeSrc":"51509:517:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"51674:9:21","nodeType":"YulTypedName","src":"51674:9:21","type":""},{"name":"value0","nativeSrc":"51686:6:21","nodeType":"YulTypedName","src":"51686:6:21","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"51697:4:21","nodeType":"YulTypedName","src":"51697:4:21","type":""}],"src":"51509:517:21"},{"body":{"nativeSrc":"52138:53:21","nodeType":"YulBlock","src":"52138:53:21","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"52160:6:21","nodeType":"YulIdentifier","src":"52160:6:21"},{"kind":"number","nativeSrc":"52168:1:21","nodeType":"YulLiteral","src":"52168:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"52156:3:21","nodeType":"YulIdentifier","src":"52156:3:21"},"nativeSrc":"52156:14:21","nodeType":"YulFunctionCall","src":"52156:14:21"},{"hexValue":"466f7262696464656e","kind":"string","nativeSrc":"52172:11:21","nodeType":"YulLiteral","src":"52172:11:21","type":"","value":"Forbidden"}],"functionName":{"name":"mstore","nativeSrc":"52149:6:21","nodeType":"YulIdentifier","src":"52149:6:21"},"nativeSrc":"52149:35:21","nodeType":"YulFunctionCall","src":"52149:35:21"},"nativeSrc":"52149:35:21","nodeType":"YulExpressionStatement","src":"52149:35:21"}]},"name":"store_literal_in_memory_479a1d8ebbddc9de30fd1886cb8a7ee233eac86d9b8bd3ece8b03587030879ef","nativeSrc":"52032:159:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"52130:6:21","nodeType":"YulTypedName","src":"52130:6:21","type":""}],"src":"52032:159:21"},{"body":{"nativeSrc":"52343:219:21","nodeType":"YulBlock","src":"52343:219:21","statements":[{"nativeSrc":"52353:73:21","nodeType":"YulAssignment","src":"52353:73:21","value":{"arguments":[{"name":"pos","nativeSrc":"52419:3:21","nodeType":"YulIdentifier","src":"52419:3:21"},{"kind":"number","nativeSrc":"52424:1:21","nodeType":"YulLiteral","src":"52424:1:21","type":"","value":"9"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"52360:58:21","nodeType":"YulIdentifier","src":"52360:58:21"},"nativeSrc":"52360:66:21","nodeType":"YulFunctionCall","src":"52360:66:21"},"variableNames":[{"name":"pos","nativeSrc":"52353:3:21","nodeType":"YulIdentifier","src":"52353:3:21"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"52524:3:21","nodeType":"YulIdentifier","src":"52524:3:21"}],"functionName":{"name":"store_literal_in_memory_479a1d8ebbddc9de30fd1886cb8a7ee233eac86d9b8bd3ece8b03587030879ef","nativeSrc":"52435:88:21","nodeType":"YulIdentifier","src":"52435:88:21"},"nativeSrc":"52435:93:21","nodeType":"YulFunctionCall","src":"52435:93:21"},"nativeSrc":"52435:93:21","nodeType":"YulExpressionStatement","src":"52435:93:21"},{"nativeSrc":"52537:19:21","nodeType":"YulAssignment","src":"52537:19:21","value":{"arguments":[{"name":"pos","nativeSrc":"52548:3:21","nodeType":"YulIdentifier","src":"52548:3:21"},{"kind":"number","nativeSrc":"52553:2:21","nodeType":"YulLiteral","src":"52553:2:21","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"52544:3:21","nodeType":"YulIdentifier","src":"52544:3:21"},"nativeSrc":"52544:12:21","nodeType":"YulFunctionCall","src":"52544:12:21"},"variableNames":[{"name":"end","nativeSrc":"52537:3:21","nodeType":"YulIdentifier","src":"52537:3:21"}]}]},"name":"abi_encode_t_stringliteral_479a1d8ebbddc9de30fd1886cb8a7ee233eac86d9b8bd3ece8b03587030879ef_to_t_string_memory_ptr_fromStack","nativeSrc":"52197:365:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"52331:3:21","nodeType":"YulTypedName","src":"52331:3:21","type":""}],"returnVariables":[{"name":"end","nativeSrc":"52339:3:21","nodeType":"YulTypedName","src":"52339:3:21","type":""}],"src":"52197:365:21"},{"body":{"nativeSrc":"52767:330:21","nodeType":"YulBlock","src":"52767:330:21","statements":[{"nativeSrc":"52777:26:21","nodeType":"YulAssignment","src":"52777:26:21","value":{"arguments":[{"name":"headStart","nativeSrc":"52789:9:21","nodeType":"YulIdentifier","src":"52789:9:21"},{"kind":"number","nativeSrc":"52800:2:21","nodeType":"YulLiteral","src":"52800:2:21","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"52785:3:21","nodeType":"YulIdentifier","src":"52785:3:21"},"nativeSrc":"52785:18:21","nodeType":"YulFunctionCall","src":"52785:18:21"},"variableNames":[{"name":"tail","nativeSrc":"52777:4:21","nodeType":"YulIdentifier","src":"52777:4:21"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"52824:9:21","nodeType":"YulIdentifier","src":"52824:9:21"},{"kind":"number","nativeSrc":"52835:1:21","nodeType":"YulLiteral","src":"52835:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"52820:3:21","nodeType":"YulIdentifier","src":"52820:3:21"},"nativeSrc":"52820:17:21","nodeType":"YulFunctionCall","src":"52820:17:21"},{"arguments":[{"name":"tail","nativeSrc":"52843:4:21","nodeType":"YulIdentifier","src":"52843:4:21"},{"name":"headStart","nativeSrc":"52849:9:21","nodeType":"YulIdentifier","src":"52849:9:21"}],"functionName":{"name":"sub","nativeSrc":"52839:3:21","nodeType":"YulIdentifier","src":"52839:3:21"},"nativeSrc":"52839:20:21","nodeType":"YulFunctionCall","src":"52839:20:21"}],"functionName":{"name":"mstore","nativeSrc":"52813:6:21","nodeType":"YulIdentifier","src":"52813:6:21"},"nativeSrc":"52813:47:21","nodeType":"YulFunctionCall","src":"52813:47:21"},"nativeSrc":"52813:47:21","nodeType":"YulExpressionStatement","src":"52813:47:21"},{"nativeSrc":"52869:139:21","nodeType":"YulAssignment","src":"52869:139:21","value":{"arguments":[{"name":"tail","nativeSrc":"53003:4:21","nodeType":"YulIdentifier","src":"53003:4:21"}],"functionName":{"name":"abi_encode_t_stringliteral_479a1d8ebbddc9de30fd1886cb8a7ee233eac86d9b8bd3ece8b03587030879ef_to_t_string_memory_ptr_fromStack","nativeSrc":"52877:124:21","nodeType":"YulIdentifier","src":"52877:124:21"},"nativeSrc":"52877:131:21","nodeType":"YulFunctionCall","src":"52877:131:21"},"variableNames":[{"name":"tail","nativeSrc":"52869:4:21","nodeType":"YulIdentifier","src":"52869:4:21"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"53062:6:21","nodeType":"YulIdentifier","src":"53062:6:21"},{"arguments":[{"name":"headStart","nativeSrc":"53075:9:21","nodeType":"YulIdentifier","src":"53075:9:21"},{"kind":"number","nativeSrc":"53086:2:21","nodeType":"YulLiteral","src":"53086:2:21","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"53071:3:21","nodeType":"YulIdentifier","src":"53071:3:21"},"nativeSrc":"53071:18:21","nodeType":"YulFunctionCall","src":"53071:18:21"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"53018:43:21","nodeType":"YulIdentifier","src":"53018:43:21"},"nativeSrc":"53018:72:21","nodeType":"YulFunctionCall","src":"53018:72:21"},"nativeSrc":"53018:72:21","nodeType":"YulExpressionStatement","src":"53018:72:21"}]},"name":"abi_encode_tuple_t_stringliteral_479a1d8ebbddc9de30fd1886cb8a7ee233eac86d9b8bd3ece8b03587030879ef_t_bytes32__to_t_string_memory_ptr_t_bytes32__fromStack_reversed","nativeSrc":"52568:529:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"52739:9:21","nodeType":"YulTypedName","src":"52739:9:21","type":""},{"name":"value0","nativeSrc":"52751:6:21","nodeType":"YulTypedName","src":"52751:6:21","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"52762:4:21","nodeType":"YulTypedName","src":"52762:4:21","type":""}],"src":"52568:529:21"},{"body":{"nativeSrc":"53217:34:21","nodeType":"YulBlock","src":"53217:34:21","statements":[{"nativeSrc":"53227:18:21","nodeType":"YulAssignment","src":"53227:18:21","value":{"name":"pos","nativeSrc":"53242:3:21","nodeType":"YulIdentifier","src":"53242:3:21"},"variableNames":[{"name":"updated_pos","nativeSrc":"53227:11:21","nodeType":"YulIdentifier","src":"53227:11:21"}]}]},"name":"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"53103:148:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"53189:3:21","nodeType":"YulTypedName","src":"53189:3:21","type":""},{"name":"length","nativeSrc":"53194:6:21","nodeType":"YulTypedName","src":"53194:6:21","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"53205:11:21","nodeType":"YulTypedName","src":"53205:11:21","type":""}],"src":"53103:148:21"},{"body":{"nativeSrc":"53367:280:21","nodeType":"YulBlock","src":"53367:280:21","statements":[{"nativeSrc":"53377:53:21","nodeType":"YulVariableDeclaration","src":"53377:53:21","value":{"arguments":[{"name":"value","nativeSrc":"53424:5:21","nodeType":"YulIdentifier","src":"53424:5:21"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"53391:32:21","nodeType":"YulIdentifier","src":"53391:32:21"},"nativeSrc":"53391:39:21","nodeType":"YulFunctionCall","src":"53391:39:21"},"variables":[{"name":"length","nativeSrc":"53381:6:21","nodeType":"YulTypedName","src":"53381:6:21","type":""}]},{"nativeSrc":"53439:96:21","nodeType":"YulAssignment","src":"53439:96:21","value":{"arguments":[{"name":"pos","nativeSrc":"53523:3:21","nodeType":"YulIdentifier","src":"53523:3:21"},{"name":"length","nativeSrc":"53528:6:21","nodeType":"YulIdentifier","src":"53528:6:21"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"53446:76:21","nodeType":"YulIdentifier","src":"53446:76:21"},"nativeSrc":"53446:89:21","nodeType":"YulFunctionCall","src":"53446:89:21"},"variableNames":[{"name":"pos","nativeSrc":"53439:3:21","nodeType":"YulIdentifier","src":"53439:3:21"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"53583:5:21","nodeType":"YulIdentifier","src":"53583:5:21"},{"kind":"number","nativeSrc":"53590:4:21","nodeType":"YulLiteral","src":"53590:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"53579:3:21","nodeType":"YulIdentifier","src":"53579:3:21"},"nativeSrc":"53579:16:21","nodeType":"YulFunctionCall","src":"53579:16:21"},{"name":"pos","nativeSrc":"53597:3:21","nodeType":"YulIdentifier","src":"53597:3:21"},{"name":"length","nativeSrc":"53602:6:21","nodeType":"YulIdentifier","src":"53602:6:21"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"53544:34:21","nodeType":"YulIdentifier","src":"53544:34:21"},"nativeSrc":"53544:65:21","nodeType":"YulFunctionCall","src":"53544:65:21"},"nativeSrc":"53544:65:21","nodeType":"YulExpressionStatement","src":"53544:65:21"},{"nativeSrc":"53618:23:21","nodeType":"YulAssignment","src":"53618:23:21","value":{"arguments":[{"name":"pos","nativeSrc":"53629:3:21","nodeType":"YulIdentifier","src":"53629:3:21"},{"name":"length","nativeSrc":"53634:6:21","nodeType":"YulIdentifier","src":"53634:6:21"}],"functionName":{"name":"add","nativeSrc":"53625:3:21","nodeType":"YulIdentifier","src":"53625:3:21"},"nativeSrc":"53625:16:21","nodeType":"YulFunctionCall","src":"53625:16:21"},"variableNames":[{"name":"end","nativeSrc":"53618:3:21","nodeType":"YulIdentifier","src":"53618:3:21"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"53257:390:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"53348:5:21","nodeType":"YulTypedName","src":"53348:5:21","type":""},{"name":"pos","nativeSrc":"53355:3:21","nodeType":"YulTypedName","src":"53355:3:21","type":""}],"returnVariables":[{"name":"end","nativeSrc":"53363:3:21","nodeType":"YulTypedName","src":"53363:3:21","type":""}],"src":"53257:390:21"},{"body":{"nativeSrc":"53789:139:21","nodeType":"YulBlock","src":"53789:139:21","statements":[{"nativeSrc":"53800:102:21","nodeType":"YulAssignment","src":"53800:102:21","value":{"arguments":[{"name":"value0","nativeSrc":"53889:6:21","nodeType":"YulIdentifier","src":"53889:6:21"},{"name":"pos","nativeSrc":"53898:3:21","nodeType":"YulIdentifier","src":"53898:3:21"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack","nativeSrc":"53807:81:21","nodeType":"YulIdentifier","src":"53807:81:21"},"nativeSrc":"53807:95:21","nodeType":"YulFunctionCall","src":"53807:95:21"},"variableNames":[{"name":"pos","nativeSrc":"53800:3:21","nodeType":"YulIdentifier","src":"53800:3:21"}]},{"nativeSrc":"53912:10:21","nodeType":"YulAssignment","src":"53912:10:21","value":{"name":"pos","nativeSrc":"53919:3:21","nodeType":"YulIdentifier","src":"53919:3:21"},"variableNames":[{"name":"end","nativeSrc":"53912:3:21","nodeType":"YulIdentifier","src":"53912:3:21"}]}]},"name":"abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nativeSrc":"53653:275:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"53768:3:21","nodeType":"YulTypedName","src":"53768:3:21","type":""},{"name":"value0","nativeSrc":"53774:6:21","nodeType":"YulTypedName","src":"53774:6:21","type":""}],"returnVariables":[{"name":"end","nativeSrc":"53785:3:21","nodeType":"YulTypedName","src":"53785:3:21","type":""}],"src":"53653:275:21"},{"body":{"nativeSrc":"54026:285:21","nodeType":"YulBlock","src":"54026:285:21","statements":[{"nativeSrc":"54036:53:21","nodeType":"YulVariableDeclaration","src":"54036:53:21","value":{"arguments":[{"name":"value","nativeSrc":"54083:5:21","nodeType":"YulIdentifier","src":"54083:5:21"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"54050:32:21","nodeType":"YulIdentifier","src":"54050:32:21"},"nativeSrc":"54050:39:21","nodeType":"YulFunctionCall","src":"54050:39:21"},"variables":[{"name":"length","nativeSrc":"54040:6:21","nodeType":"YulTypedName","src":"54040:6:21","type":""}]},{"nativeSrc":"54098:78:21","nodeType":"YulAssignment","src":"54098:78:21","value":{"arguments":[{"name":"pos","nativeSrc":"54164:3:21","nodeType":"YulIdentifier","src":"54164:3:21"},{"name":"length","nativeSrc":"54169:6:21","nodeType":"YulIdentifier","src":"54169:6:21"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"54105:58:21","nodeType":"YulIdentifier","src":"54105:58:21"},"nativeSrc":"54105:71:21","nodeType":"YulFunctionCall","src":"54105:71:21"},"variableNames":[{"name":"pos","nativeSrc":"54098:3:21","nodeType":"YulIdentifier","src":"54098:3:21"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"54224:5:21","nodeType":"YulIdentifier","src":"54224:5:21"},{"kind":"number","nativeSrc":"54231:4:21","nodeType":"YulLiteral","src":"54231:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"54220:3:21","nodeType":"YulIdentifier","src":"54220:3:21"},"nativeSrc":"54220:16:21","nodeType":"YulFunctionCall","src":"54220:16:21"},{"name":"pos","nativeSrc":"54238:3:21","nodeType":"YulIdentifier","src":"54238:3:21"},{"name":"length","nativeSrc":"54243:6:21","nodeType":"YulIdentifier","src":"54243:6:21"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"54185:34:21","nodeType":"YulIdentifier","src":"54185:34:21"},"nativeSrc":"54185:65:21","nodeType":"YulFunctionCall","src":"54185:65:21"},"nativeSrc":"54185:65:21","nodeType":"YulExpressionStatement","src":"54185:65:21"},{"nativeSrc":"54259:46:21","nodeType":"YulAssignment","src":"54259:46:21","value":{"arguments":[{"name":"pos","nativeSrc":"54270:3:21","nodeType":"YulIdentifier","src":"54270:3:21"},{"arguments":[{"name":"length","nativeSrc":"54297:6:21","nodeType":"YulIdentifier","src":"54297:6:21"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"54275:21:21","nodeType":"YulIdentifier","src":"54275:21:21"},"nativeSrc":"54275:29:21","nodeType":"YulFunctionCall","src":"54275:29:21"}],"functionName":{"name":"add","nativeSrc":"54266:3:21","nodeType":"YulIdentifier","src":"54266:3:21"},"nativeSrc":"54266:39:21","nodeType":"YulFunctionCall","src":"54266:39:21"},"variableNames":[{"name":"end","nativeSrc":"54259:3:21","nodeType":"YulIdentifier","src":"54259:3:21"}]}]},"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"53934:377:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"54007:5:21","nodeType":"YulTypedName","src":"54007:5:21","type":""},{"name":"pos","nativeSrc":"54014:3:21","nodeType":"YulTypedName","src":"54014:3:21","type":""}],"returnVariables":[{"name":"end","nativeSrc":"54022:3:21","nodeType":"YulTypedName","src":"54022:3:21","type":""}],"src":"53934:377:21"},{"body":{"nativeSrc":"54435:195:21","nodeType":"YulBlock","src":"54435:195:21","statements":[{"nativeSrc":"54445:26:21","nodeType":"YulAssignment","src":"54445:26:21","value":{"arguments":[{"name":"headStart","nativeSrc":"54457:9:21","nodeType":"YulIdentifier","src":"54457:9:21"},{"kind":"number","nativeSrc":"54468:2:21","nodeType":"YulLiteral","src":"54468:2:21","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"54453:3:21","nodeType":"YulIdentifier","src":"54453:3:21"},"nativeSrc":"54453:18:21","nodeType":"YulFunctionCall","src":"54453:18:21"},"variableNames":[{"name":"tail","nativeSrc":"54445:4:21","nodeType":"YulIdentifier","src":"54445:4:21"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"54492:9:21","nodeType":"YulIdentifier","src":"54492:9:21"},{"kind":"number","nativeSrc":"54503:1:21","nodeType":"YulLiteral","src":"54503:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"54488:3:21","nodeType":"YulIdentifier","src":"54488:3:21"},"nativeSrc":"54488:17:21","nodeType":"YulFunctionCall","src":"54488:17:21"},{"arguments":[{"name":"tail","nativeSrc":"54511:4:21","nodeType":"YulIdentifier","src":"54511:4:21"},{"name":"headStart","nativeSrc":"54517:9:21","nodeType":"YulIdentifier","src":"54517:9:21"}],"functionName":{"name":"sub","nativeSrc":"54507:3:21","nodeType":"YulIdentifier","src":"54507:3:21"},"nativeSrc":"54507:20:21","nodeType":"YulFunctionCall","src":"54507:20:21"}],"functionName":{"name":"mstore","nativeSrc":"54481:6:21","nodeType":"YulIdentifier","src":"54481:6:21"},"nativeSrc":"54481:47:21","nodeType":"YulFunctionCall","src":"54481:47:21"},"nativeSrc":"54481:47:21","nodeType":"YulExpressionStatement","src":"54481:47:21"},{"nativeSrc":"54537:86:21","nodeType":"YulAssignment","src":"54537:86:21","value":{"arguments":[{"name":"value0","nativeSrc":"54609:6:21","nodeType":"YulIdentifier","src":"54609:6:21"},{"name":"tail","nativeSrc":"54618:4:21","nodeType":"YulIdentifier","src":"54618:4:21"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"54545:63:21","nodeType":"YulIdentifier","src":"54545:63:21"},"nativeSrc":"54545:78:21","nodeType":"YulFunctionCall","src":"54545:78:21"},"variableNames":[{"name":"tail","nativeSrc":"54537:4:21","nodeType":"YulIdentifier","src":"54537:4:21"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nativeSrc":"54317:313:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"54407:9:21","nodeType":"YulTypedName","src":"54407:9:21","type":""},{"name":"value0","nativeSrc":"54419:6:21","nodeType":"YulTypedName","src":"54419:6:21","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"54430:4:21","nodeType":"YulTypedName","src":"54430:4:21","type":""}],"src":"54317:313:21"},{"body":{"nativeSrc":"54664:152:21","nodeType":"YulBlock","src":"54664:152:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"54681:1:21","nodeType":"YulLiteral","src":"54681:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"54684:77:21","nodeType":"YulLiteral","src":"54684:77:21","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"54674:6:21","nodeType":"YulIdentifier","src":"54674:6:21"},"nativeSrc":"54674:88:21","nodeType":"YulFunctionCall","src":"54674:88:21"},"nativeSrc":"54674:88:21","nodeType":"YulExpressionStatement","src":"54674:88:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"54778:1:21","nodeType":"YulLiteral","src":"54778:1:21","type":"","value":"4"},{"kind":"number","nativeSrc":"54781:4:21","nodeType":"YulLiteral","src":"54781:4:21","type":"","value":"0x11"}],"functionName":{"name":"mstore","nativeSrc":"54771:6:21","nodeType":"YulIdentifier","src":"54771:6:21"},"nativeSrc":"54771:15:21","nodeType":"YulFunctionCall","src":"54771:15:21"},"nativeSrc":"54771:15:21","nodeType":"YulExpressionStatement","src":"54771:15:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"54802:1:21","nodeType":"YulLiteral","src":"54802:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"54805:4:21","nodeType":"YulLiteral","src":"54805:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"54795:6:21","nodeType":"YulIdentifier","src":"54795:6:21"},"nativeSrc":"54795:15:21","nodeType":"YulFunctionCall","src":"54795:15:21"},"nativeSrc":"54795:15:21","nodeType":"YulExpressionStatement","src":"54795:15:21"}]},"name":"panic_error_0x11","nativeSrc":"54636:180:21","nodeType":"YulFunctionDefinition","src":"54636:180:21"},{"body":{"nativeSrc":"54866:328:21","nodeType":"YulBlock","src":"54866:328:21","statements":[{"nativeSrc":"54876:24:21","nodeType":"YulAssignment","src":"54876:24:21","value":{"arguments":[{"name":"x","nativeSrc":"54898:1:21","nodeType":"YulIdentifier","src":"54898:1:21"}],"functionName":{"name":"cleanup_t_int256","nativeSrc":"54881:16:21","nodeType":"YulIdentifier","src":"54881:16:21"},"nativeSrc":"54881:19:21","nodeType":"YulFunctionCall","src":"54881:19:21"},"variableNames":[{"name":"x","nativeSrc":"54876:1:21","nodeType":"YulIdentifier","src":"54876:1:21"}]},{"nativeSrc":"54909:24:21","nodeType":"YulAssignment","src":"54909:24:21","value":{"arguments":[{"name":"y","nativeSrc":"54931:1:21","nodeType":"YulIdentifier","src":"54931:1:21"}],"functionName":{"name":"cleanup_t_int256","nativeSrc":"54914:16:21","nodeType":"YulIdentifier","src":"54914:16:21"},"nativeSrc":"54914:19:21","nodeType":"YulFunctionCall","src":"54914:19:21"},"variableNames":[{"name":"y","nativeSrc":"54909:1:21","nodeType":"YulIdentifier","src":"54909:1:21"}]},{"nativeSrc":"54942:17:21","nodeType":"YulAssignment","src":"54942:17:21","value":{"arguments":[{"name":"x","nativeSrc":"54954:1:21","nodeType":"YulIdentifier","src":"54954:1:21"},{"name":"y","nativeSrc":"54957:1:21","nodeType":"YulIdentifier","src":"54957:1:21"}],"functionName":{"name":"sub","nativeSrc":"54950:3:21","nodeType":"YulIdentifier","src":"54950:3:21"},"nativeSrc":"54950:9:21","nodeType":"YulFunctionCall","src":"54950:9:21"},"variableNames":[{"name":"diff","nativeSrc":"54942:4:21","nodeType":"YulIdentifier","src":"54942:4:21"}]},{"body":{"nativeSrc":"55165:22:21","nodeType":"YulBlock","src":"55165:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"55167:16:21","nodeType":"YulIdentifier","src":"55167:16:21"},"nativeSrc":"55167:18:21","nodeType":"YulFunctionCall","src":"55167:18:21"},"nativeSrc":"55167:18:21","nodeType":"YulExpressionStatement","src":"55167:18:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"y","nativeSrc":"55091:1:21","nodeType":"YulIdentifier","src":"55091:1:21"},{"kind":"number","nativeSrc":"55094:1:21","nodeType":"YulLiteral","src":"55094:1:21","type":"","value":"0"}],"functionName":{"name":"slt","nativeSrc":"55087:3:21","nodeType":"YulIdentifier","src":"55087:3:21"},"nativeSrc":"55087:9:21","nodeType":"YulFunctionCall","src":"55087:9:21"}],"functionName":{"name":"iszero","nativeSrc":"55080:6:21","nodeType":"YulIdentifier","src":"55080:6:21"},"nativeSrc":"55080:17:21","nodeType":"YulFunctionCall","src":"55080:17:21"},{"arguments":[{"name":"diff","nativeSrc":"55103:4:21","nodeType":"YulIdentifier","src":"55103:4:21"},{"name":"x","nativeSrc":"55109:1:21","nodeType":"YulIdentifier","src":"55109:1:21"}],"functionName":{"name":"sgt","nativeSrc":"55099:3:21","nodeType":"YulIdentifier","src":"55099:3:21"},"nativeSrc":"55099:12:21","nodeType":"YulFunctionCall","src":"55099:12:21"}],"functionName":{"name":"and","nativeSrc":"55076:3:21","nodeType":"YulIdentifier","src":"55076:3:21"},"nativeSrc":"55076:36:21","nodeType":"YulFunctionCall","src":"55076:36:21"},{"arguments":[{"arguments":[{"name":"y","nativeSrc":"55134:1:21","nodeType":"YulIdentifier","src":"55134:1:21"},{"kind":"number","nativeSrc":"55137:1:21","nodeType":"YulLiteral","src":"55137:1:21","type":"","value":"0"}],"functionName":{"name":"slt","nativeSrc":"55130:3:21","nodeType":"YulIdentifier","src":"55130:3:21"},"nativeSrc":"55130:9:21","nodeType":"YulFunctionCall","src":"55130:9:21"},{"arguments":[{"name":"diff","nativeSrc":"55145:4:21","nodeType":"YulIdentifier","src":"55145:4:21"},{"name":"x","nativeSrc":"55151:1:21","nodeType":"YulIdentifier","src":"55151:1:21"}],"functionName":{"name":"slt","nativeSrc":"55141:3:21","nodeType":"YulIdentifier","src":"55141:3:21"},"nativeSrc":"55141:12:21","nodeType":"YulFunctionCall","src":"55141:12:21"}],"functionName":{"name":"and","nativeSrc":"55126:3:21","nodeType":"YulIdentifier","src":"55126:3:21"},"nativeSrc":"55126:28:21","nodeType":"YulFunctionCall","src":"55126:28:21"}],"functionName":{"name":"or","nativeSrc":"55060:2:21","nodeType":"YulIdentifier","src":"55060:2:21"},"nativeSrc":"55060:104:21","nodeType":"YulFunctionCall","src":"55060:104:21"},"nativeSrc":"55057:130:21","nodeType":"YulIf","src":"55057:130:21"}]},"name":"checked_sub_t_int256","nativeSrc":"54822:372:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"54852:1:21","nodeType":"YulTypedName","src":"54852:1:21","type":""},{"name":"y","nativeSrc":"54855:1:21","nodeType":"YulTypedName","src":"54855:1:21","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"54861:4:21","nodeType":"YulTypedName","src":"54861:4:21","type":""}],"src":"54822:372:21"},{"body":{"nativeSrc":"55243:332:21","nodeType":"YulBlock","src":"55243:332:21","statements":[{"nativeSrc":"55253:24:21","nodeType":"YulAssignment","src":"55253:24:21","value":{"arguments":[{"name":"x","nativeSrc":"55275:1:21","nodeType":"YulIdentifier","src":"55275:1:21"}],"functionName":{"name":"cleanup_t_int256","nativeSrc":"55258:16:21","nodeType":"YulIdentifier","src":"55258:16:21"},"nativeSrc":"55258:19:21","nodeType":"YulFunctionCall","src":"55258:19:21"},"variableNames":[{"name":"x","nativeSrc":"55253:1:21","nodeType":"YulIdentifier","src":"55253:1:21"}]},{"nativeSrc":"55286:24:21","nodeType":"YulAssignment","src":"55286:24:21","value":{"arguments":[{"name":"y","nativeSrc":"55308:1:21","nodeType":"YulIdentifier","src":"55308:1:21"}],"functionName":{"name":"cleanup_t_int256","nativeSrc":"55291:16:21","nodeType":"YulIdentifier","src":"55291:16:21"},"nativeSrc":"55291:19:21","nodeType":"YulFunctionCall","src":"55291:19:21"},"variableNames":[{"name":"y","nativeSrc":"55286:1:21","nodeType":"YulIdentifier","src":"55286:1:21"}]},{"nativeSrc":"55319:16:21","nodeType":"YulAssignment","src":"55319:16:21","value":{"arguments":[{"name":"x","nativeSrc":"55330:1:21","nodeType":"YulIdentifier","src":"55330:1:21"},{"name":"y","nativeSrc":"55333:1:21","nodeType":"YulIdentifier","src":"55333:1:21"}],"functionName":{"name":"add","nativeSrc":"55326:3:21","nodeType":"YulIdentifier","src":"55326:3:21"},"nativeSrc":"55326:9:21","nodeType":"YulFunctionCall","src":"55326:9:21"},"variableNames":[{"name":"sum","nativeSrc":"55319:3:21","nodeType":"YulIdentifier","src":"55319:3:21"}]},{"body":{"nativeSrc":"55546:22:21","nodeType":"YulBlock","src":"55546:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"55548:16:21","nodeType":"YulIdentifier","src":"55548:16:21"},"nativeSrc":"55548:18:21","nodeType":"YulFunctionCall","src":"55548:18:21"},"nativeSrc":"55548:18:21","nodeType":"YulExpressionStatement","src":"55548:18:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"x","nativeSrc":"55466:1:21","nodeType":"YulIdentifier","src":"55466:1:21"},{"kind":"number","nativeSrc":"55469:1:21","nodeType":"YulLiteral","src":"55469:1:21","type":"","value":"0"}],"functionName":{"name":"slt","nativeSrc":"55462:3:21","nodeType":"YulIdentifier","src":"55462:3:21"},"nativeSrc":"55462:9:21","nodeType":"YulFunctionCall","src":"55462:9:21"}],"functionName":{"name":"iszero","nativeSrc":"55455:6:21","nodeType":"YulIdentifier","src":"55455:6:21"},"nativeSrc":"55455:17:21","nodeType":"YulFunctionCall","src":"55455:17:21"},{"arguments":[{"name":"sum","nativeSrc":"55478:3:21","nodeType":"YulIdentifier","src":"55478:3:21"},{"name":"y","nativeSrc":"55483:1:21","nodeType":"YulIdentifier","src":"55483:1:21"}],"functionName":{"name":"slt","nativeSrc":"55474:3:21","nodeType":"YulIdentifier","src":"55474:3:21"},"nativeSrc":"55474:11:21","nodeType":"YulFunctionCall","src":"55474:11:21"}],"functionName":{"name":"and","nativeSrc":"55451:3:21","nodeType":"YulIdentifier","src":"55451:3:21"},"nativeSrc":"55451:35:21","nodeType":"YulFunctionCall","src":"55451:35:21"},{"arguments":[{"arguments":[{"name":"x","nativeSrc":"55508:1:21","nodeType":"YulIdentifier","src":"55508:1:21"},{"kind":"number","nativeSrc":"55511:1:21","nodeType":"YulLiteral","src":"55511:1:21","type":"","value":"0"}],"functionName":{"name":"slt","nativeSrc":"55504:3:21","nodeType":"YulIdentifier","src":"55504:3:21"},"nativeSrc":"55504:9:21","nodeType":"YulFunctionCall","src":"55504:9:21"},{"arguments":[{"arguments":[{"name":"sum","nativeSrc":"55526:3:21","nodeType":"YulIdentifier","src":"55526:3:21"},{"name":"y","nativeSrc":"55531:1:21","nodeType":"YulIdentifier","src":"55531:1:21"}],"functionName":{"name":"slt","nativeSrc":"55522:3:21","nodeType":"YulIdentifier","src":"55522:3:21"},"nativeSrc":"55522:11:21","nodeType":"YulFunctionCall","src":"55522:11:21"}],"functionName":{"name":"iszero","nativeSrc":"55515:6:21","nodeType":"YulIdentifier","src":"55515:6:21"},"nativeSrc":"55515:19:21","nodeType":"YulFunctionCall","src":"55515:19:21"}],"functionName":{"name":"and","nativeSrc":"55500:3:21","nodeType":"YulIdentifier","src":"55500:3:21"},"nativeSrc":"55500:35:21","nodeType":"YulFunctionCall","src":"55500:35:21"}],"functionName":{"name":"or","nativeSrc":"55435:2:21","nodeType":"YulIdentifier","src":"55435:2:21"},"nativeSrc":"55435:110:21","nodeType":"YulFunctionCall","src":"55435:110:21"},"nativeSrc":"55432:136:21","nodeType":"YulIf","src":"55432:136:21"}]},"name":"checked_add_t_int256","nativeSrc":"55200:375:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"55230:1:21","nodeType":"YulTypedName","src":"55230:1:21","type":""},{"name":"y","nativeSrc":"55233:1:21","nodeType":"YulTypedName","src":"55233:1:21","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"55239:3:21","nodeType":"YulTypedName","src":"55239:3:21","type":""}],"src":"55200:375:21"},{"body":{"nativeSrc":"55625:147:21","nodeType":"YulBlock","src":"55625:147:21","statements":[{"nativeSrc":"55635:25:21","nodeType":"YulAssignment","src":"55635:25:21","value":{"arguments":[{"name":"x","nativeSrc":"55658:1:21","nodeType":"YulIdentifier","src":"55658:1:21"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"55640:17:21","nodeType":"YulIdentifier","src":"55640:17:21"},"nativeSrc":"55640:20:21","nodeType":"YulFunctionCall","src":"55640:20:21"},"variableNames":[{"name":"x","nativeSrc":"55635:1:21","nodeType":"YulIdentifier","src":"55635:1:21"}]},{"nativeSrc":"55669:25:21","nodeType":"YulAssignment","src":"55669:25:21","value":{"arguments":[{"name":"y","nativeSrc":"55692:1:21","nodeType":"YulIdentifier","src":"55692:1:21"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"55674:17:21","nodeType":"YulIdentifier","src":"55674:17:21"},"nativeSrc":"55674:20:21","nodeType":"YulFunctionCall","src":"55674:20:21"},"variableNames":[{"name":"y","nativeSrc":"55669:1:21","nodeType":"YulIdentifier","src":"55669:1:21"}]},{"nativeSrc":"55703:16:21","nodeType":"YulAssignment","src":"55703:16:21","value":{"arguments":[{"name":"x","nativeSrc":"55714:1:21","nodeType":"YulIdentifier","src":"55714:1:21"},{"name":"y","nativeSrc":"55717:1:21","nodeType":"YulIdentifier","src":"55717:1:21"}],"functionName":{"name":"add","nativeSrc":"55710:3:21","nodeType":"YulIdentifier","src":"55710:3:21"},"nativeSrc":"55710:9:21","nodeType":"YulFunctionCall","src":"55710:9:21"},"variableNames":[{"name":"sum","nativeSrc":"55703:3:21","nodeType":"YulIdentifier","src":"55703:3:21"}]},{"body":{"nativeSrc":"55743:22:21","nodeType":"YulBlock","src":"55743:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"55745:16:21","nodeType":"YulIdentifier","src":"55745:16:21"},"nativeSrc":"55745:18:21","nodeType":"YulFunctionCall","src":"55745:18:21"},"nativeSrc":"55745:18:21","nodeType":"YulExpressionStatement","src":"55745:18:21"}]},"condition":{"arguments":[{"name":"x","nativeSrc":"55735:1:21","nodeType":"YulIdentifier","src":"55735:1:21"},{"name":"sum","nativeSrc":"55738:3:21","nodeType":"YulIdentifier","src":"55738:3:21"}],"functionName":{"name":"gt","nativeSrc":"55732:2:21","nodeType":"YulIdentifier","src":"55732:2:21"},"nativeSrc":"55732:10:21","nodeType":"YulFunctionCall","src":"55732:10:21"},"nativeSrc":"55729:36:21","nodeType":"YulIf","src":"55729:36:21"}]},"name":"checked_add_t_uint256","nativeSrc":"55581:191:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"55612:1:21","nodeType":"YulTypedName","src":"55612:1:21","type":""},{"name":"y","nativeSrc":"55615:1:21","nodeType":"YulTypedName","src":"55615:1:21","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"55621:3:21","nodeType":"YulTypedName","src":"55621:3:21","type":""}],"src":"55581:191:21"},{"body":{"nativeSrc":"55806:152:21","nodeType":"YulBlock","src":"55806:152:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"55823:1:21","nodeType":"YulLiteral","src":"55823:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"55826:77:21","nodeType":"YulLiteral","src":"55826:77:21","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"55816:6:21","nodeType":"YulIdentifier","src":"55816:6:21"},"nativeSrc":"55816:88:21","nodeType":"YulFunctionCall","src":"55816:88:21"},"nativeSrc":"55816:88:21","nodeType":"YulExpressionStatement","src":"55816:88:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"55920:1:21","nodeType":"YulLiteral","src":"55920:1:21","type":"","value":"4"},{"kind":"number","nativeSrc":"55923:4:21","nodeType":"YulLiteral","src":"55923:4:21","type":"","value":"0x32"}],"functionName":{"name":"mstore","nativeSrc":"55913:6:21","nodeType":"YulIdentifier","src":"55913:6:21"},"nativeSrc":"55913:15:21","nodeType":"YulFunctionCall","src":"55913:15:21"},"nativeSrc":"55913:15:21","nodeType":"YulExpressionStatement","src":"55913:15:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"55944:1:21","nodeType":"YulLiteral","src":"55944:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"55947:4:21","nodeType":"YulLiteral","src":"55947:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"55937:6:21","nodeType":"YulIdentifier","src":"55937:6:21"},"nativeSrc":"55937:15:21","nodeType":"YulFunctionCall","src":"55937:15:21"},"nativeSrc":"55937:15:21","nodeType":"YulExpressionStatement","src":"55937:15:21"}]},"name":"panic_error_0x32","nativeSrc":"55778:180:21","nodeType":"YulFunctionDefinition","src":"55778:180:21"},{"body":{"nativeSrc":"55992:152:21","nodeType":"YulBlock","src":"55992:152:21","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"56009:1:21","nodeType":"YulLiteral","src":"56009:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"56012:77:21","nodeType":"YulLiteral","src":"56012:77:21","type":"","value":"35408467139433450592217433187231851964531694900788300625387963629091585785856"}],"functionName":{"name":"mstore","nativeSrc":"56002:6:21","nodeType":"YulIdentifier","src":"56002:6:21"},"nativeSrc":"56002:88:21","nodeType":"YulFunctionCall","src":"56002:88:21"},"nativeSrc":"56002:88:21","nodeType":"YulExpressionStatement","src":"56002:88:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"56106:1:21","nodeType":"YulLiteral","src":"56106:1:21","type":"","value":"4"},{"kind":"number","nativeSrc":"56109:4:21","nodeType":"YulLiteral","src":"56109:4:21","type":"","value":"0x22"}],"functionName":{"name":"mstore","nativeSrc":"56099:6:21","nodeType":"YulIdentifier","src":"56099:6:21"},"nativeSrc":"56099:15:21","nodeType":"YulFunctionCall","src":"56099:15:21"},"nativeSrc":"56099:15:21","nodeType":"YulExpressionStatement","src":"56099:15:21"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"56130:1:21","nodeType":"YulLiteral","src":"56130:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"56133:4:21","nodeType":"YulLiteral","src":"56133:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nativeSrc":"56123:6:21","nodeType":"YulIdentifier","src":"56123:6:21"},"nativeSrc":"56123:15:21","nodeType":"YulFunctionCall","src":"56123:15:21"},"nativeSrc":"56123:15:21","nodeType":"YulExpressionStatement","src":"56123:15:21"}]},"name":"panic_error_0x22","nativeSrc":"55964:180:21","nodeType":"YulFunctionDefinition","src":"55964:180:21"},{"body":{"nativeSrc":"56201:269:21","nodeType":"YulBlock","src":"56201:269:21","statements":[{"nativeSrc":"56211:22:21","nodeType":"YulAssignment","src":"56211:22:21","value":{"arguments":[{"name":"data","nativeSrc":"56225:4:21","nodeType":"YulIdentifier","src":"56225:4:21"},{"kind":"number","nativeSrc":"56231:1:21","nodeType":"YulLiteral","src":"56231:1:21","type":"","value":"2"}],"functionName":{"name":"div","nativeSrc":"56221:3:21","nodeType":"YulIdentifier","src":"56221:3:21"},"nativeSrc":"56221:12:21","nodeType":"YulFunctionCall","src":"56221:12:21"},"variableNames":[{"name":"length","nativeSrc":"56211:6:21","nodeType":"YulIdentifier","src":"56211:6:21"}]},{"nativeSrc":"56242:38:21","nodeType":"YulVariableDeclaration","src":"56242:38:21","value":{"arguments":[{"name":"data","nativeSrc":"56272:4:21","nodeType":"YulIdentifier","src":"56272:4:21"},{"kind":"number","nativeSrc":"56278:1:21","nodeType":"YulLiteral","src":"56278:1:21","type":"","value":"1"}],"functionName":{"name":"and","nativeSrc":"56268:3:21","nodeType":"YulIdentifier","src":"56268:3:21"},"nativeSrc":"56268:12:21","nodeType":"YulFunctionCall","src":"56268:12:21"},"variables":[{"name":"outOfPlaceEncoding","nativeSrc":"56246:18:21","nodeType":"YulTypedName","src":"56246:18:21","type":""}]},{"body":{"nativeSrc":"56319:51:21","nodeType":"YulBlock","src":"56319:51:21","statements":[{"nativeSrc":"56333:27:21","nodeType":"YulAssignment","src":"56333:27:21","value":{"arguments":[{"name":"length","nativeSrc":"56347:6:21","nodeType":"YulIdentifier","src":"56347:6:21"},{"kind":"number","nativeSrc":"56355:4:21","nodeType":"YulLiteral","src":"56355:4:21","type":"","value":"0x7f"}],"functionName":{"name":"and","nativeSrc":"56343:3:21","nodeType":"YulIdentifier","src":"56343:3:21"},"nativeSrc":"56343:17:21","nodeType":"YulFunctionCall","src":"56343:17:21"},"variableNames":[{"name":"length","nativeSrc":"56333:6:21","nodeType":"YulIdentifier","src":"56333:6:21"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"56299:18:21","nodeType":"YulIdentifier","src":"56299:18:21"}],"functionName":{"name":"iszero","nativeSrc":"56292:6:21","nodeType":"YulIdentifier","src":"56292:6:21"},"nativeSrc":"56292:26:21","nodeType":"YulFunctionCall","src":"56292:26:21"},"nativeSrc":"56289:81:21","nodeType":"YulIf","src":"56289:81:21"},{"body":{"nativeSrc":"56422:42:21","nodeType":"YulBlock","src":"56422:42:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x22","nativeSrc":"56436:16:21","nodeType":"YulIdentifier","src":"56436:16:21"},"nativeSrc":"56436:18:21","nodeType":"YulFunctionCall","src":"56436:18:21"},"nativeSrc":"56436:18:21","nodeType":"YulExpressionStatement","src":"56436:18:21"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nativeSrc":"56386:18:21","nodeType":"YulIdentifier","src":"56386:18:21"},{"arguments":[{"name":"length","nativeSrc":"56409:6:21","nodeType":"YulIdentifier","src":"56409:6:21"},{"kind":"number","nativeSrc":"56417:2:21","nodeType":"YulLiteral","src":"56417:2:21","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"56406:2:21","nodeType":"YulIdentifier","src":"56406:2:21"},"nativeSrc":"56406:14:21","nodeType":"YulFunctionCall","src":"56406:14:21"}],"functionName":{"name":"eq","nativeSrc":"56383:2:21","nodeType":"YulIdentifier","src":"56383:2:21"},"nativeSrc":"56383:38:21","nodeType":"YulFunctionCall","src":"56383:38:21"},"nativeSrc":"56380:84:21","nodeType":"YulIf","src":"56380:84:21"}]},"name":"extract_byte_array_length","nativeSrc":"56150:320:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"56185:4:21","nodeType":"YulTypedName","src":"56185:4:21","type":""}],"returnVariables":[{"name":"length","nativeSrc":"56194:6:21","nodeType":"YulTypedName","src":"56194:6:21","type":""}],"src":"56150:320:21"},{"body":{"nativeSrc":"56668:1006:21","nodeType":"YulBlock","src":"56668:1006:21","statements":[{"nativeSrc":"56678:28:21","nodeType":"YulVariableDeclaration","src":"56678:28:21","value":{"arguments":[{"name":"pos","nativeSrc":"56694:3:21","nodeType":"YulIdentifier","src":"56694:3:21"},{"kind":"number","nativeSrc":"56699:6:21","nodeType":"YulLiteral","src":"56699:6:21","type":"","value":"0x0100"}],"functionName":{"name":"add","nativeSrc":"56690:3:21","nodeType":"YulIdentifier","src":"56690:3:21"},"nativeSrc":"56690:16:21","nodeType":"YulFunctionCall","src":"56690:16:21"},"variables":[{"name":"tail","nativeSrc":"56682:4:21","nodeType":"YulTypedName","src":"56682:4:21","type":""}]},{"nativeSrc":"56716:242:21","nodeType":"YulBlock","src":"56716:242:21","statements":[{"nativeSrc":"56757:43:21","nodeType":"YulVariableDeclaration","src":"56757:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"56787:5:21","nodeType":"YulIdentifier","src":"56787:5:21"},{"kind":"number","nativeSrc":"56794:4:21","nodeType":"YulLiteral","src":"56794:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"56783:3:21","nodeType":"YulIdentifier","src":"56783:3:21"},"nativeSrc":"56783:16:21","nodeType":"YulFunctionCall","src":"56783:16:21"}],"functionName":{"name":"mload","nativeSrc":"56777:5:21","nodeType":"YulIdentifier","src":"56777:5:21"},"nativeSrc":"56777:23:21","nodeType":"YulFunctionCall","src":"56777:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"56761:12:21","nodeType":"YulTypedName","src":"56761:12:21","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"56919:12:21","nodeType":"YulIdentifier","src":"56919:12:21"},{"arguments":[{"name":"pos","nativeSrc":"56937:3:21","nodeType":"YulIdentifier","src":"56937:3:21"},{"kind":"number","nativeSrc":"56942:4:21","nodeType":"YulLiteral","src":"56942:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"56933:3:21","nodeType":"YulIdentifier","src":"56933:3:21"},"nativeSrc":"56933:14:21","nodeType":"YulFunctionCall","src":"56933:14:21"}],"functionName":{"name":"abi_encode_t_struct$_ResourceProperties_$1035_memory_ptr_to_t_struct$_ResourceProperties_$1035_memory_ptr","nativeSrc":"56813:105:21","nodeType":"YulIdentifier","src":"56813:105:21"},"nativeSrc":"56813:135:21","nodeType":"YulFunctionCall","src":"56813:135:21"},"nativeSrc":"56813:135:21","nodeType":"YulExpressionStatement","src":"56813:135:21"}]},{"nativeSrc":"56968:164:21","nodeType":"YulBlock","src":"56968:164:21","statements":[{"nativeSrc":"57003:43:21","nodeType":"YulVariableDeclaration","src":"57003:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"57033:5:21","nodeType":"YulIdentifier","src":"57033:5:21"},{"kind":"number","nativeSrc":"57040:4:21","nodeType":"YulLiteral","src":"57040:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"57029:3:21","nodeType":"YulIdentifier","src":"57029:3:21"},"nativeSrc":"57029:16:21","nodeType":"YulFunctionCall","src":"57029:16:21"}],"functionName":{"name":"mload","nativeSrc":"57023:5:21","nodeType":"YulIdentifier","src":"57023:5:21"},"nativeSrc":"57023:23:21","nodeType":"YulFunctionCall","src":"57023:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"57007:12:21","nodeType":"YulTypedName","src":"57007:12:21","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"57093:12:21","nodeType":"YulIdentifier","src":"57093:12:21"},{"arguments":[{"name":"pos","nativeSrc":"57111:3:21","nodeType":"YulIdentifier","src":"57111:3:21"},{"kind":"number","nativeSrc":"57116:4:21","nodeType":"YulLiteral","src":"57116:4:21","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"57107:3:21","nodeType":"YulIdentifier","src":"57107:3:21"},"nativeSrc":"57107:14:21","nodeType":"YulFunctionCall","src":"57107:14:21"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"57059:33:21","nodeType":"YulIdentifier","src":"57059:33:21"},"nativeSrc":"57059:63:21","nodeType":"YulFunctionCall","src":"57059:63:21"},"nativeSrc":"57059:63:21","nodeType":"YulExpressionStatement","src":"57059:63:21"}]},{"nativeSrc":"57142:167:21","nodeType":"YulBlock","src":"57142:167:21","statements":[{"nativeSrc":"57180:43:21","nodeType":"YulVariableDeclaration","src":"57180:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"57210:5:21","nodeType":"YulIdentifier","src":"57210:5:21"},{"kind":"number","nativeSrc":"57217:4:21","nodeType":"YulLiteral","src":"57217:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"57206:3:21","nodeType":"YulIdentifier","src":"57206:3:21"},"nativeSrc":"57206:16:21","nodeType":"YulFunctionCall","src":"57206:16:21"}],"functionName":{"name":"mload","nativeSrc":"57200:5:21","nodeType":"YulIdentifier","src":"57200:5:21"},"nativeSrc":"57200:23:21","nodeType":"YulFunctionCall","src":"57200:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"57184:12:21","nodeType":"YulTypedName","src":"57184:12:21","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"57270:12:21","nodeType":"YulIdentifier","src":"57270:12:21"},{"arguments":[{"name":"pos","nativeSrc":"57288:3:21","nodeType":"YulIdentifier","src":"57288:3:21"},{"kind":"number","nativeSrc":"57293:4:21","nodeType":"YulLiteral","src":"57293:4:21","type":"","value":"0xa0"}],"functionName":{"name":"add","nativeSrc":"57284:3:21","nodeType":"YulIdentifier","src":"57284:3:21"},"nativeSrc":"57284:14:21","nodeType":"YulFunctionCall","src":"57284:14:21"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"57236:33:21","nodeType":"YulIdentifier","src":"57236:33:21"},"nativeSrc":"57236:63:21","nodeType":"YulFunctionCall","src":"57236:63:21"},"nativeSrc":"57236:63:21","nodeType":"YulExpressionStatement","src":"57236:63:21"}]},{"nativeSrc":"57319:172:21","nodeType":"YulBlock","src":"57319:172:21","statements":[{"nativeSrc":"57362:43:21","nodeType":"YulVariableDeclaration","src":"57362:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"57392:5:21","nodeType":"YulIdentifier","src":"57392:5:21"},{"kind":"number","nativeSrc":"57399:4:21","nodeType":"YulLiteral","src":"57399:4:21","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"57388:3:21","nodeType":"YulIdentifier","src":"57388:3:21"},"nativeSrc":"57388:16:21","nodeType":"YulFunctionCall","src":"57388:16:21"}],"functionName":{"name":"mload","nativeSrc":"57382:5:21","nodeType":"YulIdentifier","src":"57382:5:21"},"nativeSrc":"57382:23:21","nodeType":"YulFunctionCall","src":"57382:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"57366:12:21","nodeType":"YulTypedName","src":"57366:12:21","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"57452:12:21","nodeType":"YulIdentifier","src":"57452:12:21"},{"arguments":[{"name":"pos","nativeSrc":"57470:3:21","nodeType":"YulIdentifier","src":"57470:3:21"},{"kind":"number","nativeSrc":"57475:4:21","nodeType":"YulLiteral","src":"57475:4:21","type":"","value":"0xc0"}],"functionName":{"name":"add","nativeSrc":"57466:3:21","nodeType":"YulIdentifier","src":"57466:3:21"},"nativeSrc":"57466:14:21","nodeType":"YulFunctionCall","src":"57466:14:21"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256","nativeSrc":"57418:33:21","nodeType":"YulIdentifier","src":"57418:33:21"},"nativeSrc":"57418:63:21","nodeType":"YulFunctionCall","src":"57418:63:21"},"nativeSrc":"57418:63:21","nodeType":"YulExpressionStatement","src":"57418:63:21"}]},{"nativeSrc":"57501:166:21","nodeType":"YulBlock","src":"57501:166:21","statements":[{"nativeSrc":"57538:43:21","nodeType":"YulVariableDeclaration","src":"57538:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"57568:5:21","nodeType":"YulIdentifier","src":"57568:5:21"},{"kind":"number","nativeSrc":"57575:4:21","nodeType":"YulLiteral","src":"57575:4:21","type":"","value":"0x80"}],"functionName":{"name":"add","nativeSrc":"57564:3:21","nodeType":"YulIdentifier","src":"57564:3:21"},"nativeSrc":"57564:16:21","nodeType":"YulFunctionCall","src":"57564:16:21"}],"functionName":{"name":"mload","nativeSrc":"57558:5:21","nodeType":"YulIdentifier","src":"57558:5:21"},"nativeSrc":"57558:23:21","nodeType":"YulFunctionCall","src":"57558:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"57542:12:21","nodeType":"YulTypedName","src":"57542:12:21","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"57628:12:21","nodeType":"YulIdentifier","src":"57628:12:21"},{"arguments":[{"name":"pos","nativeSrc":"57646:3:21","nodeType":"YulIdentifier","src":"57646:3:21"},{"kind":"number","nativeSrc":"57651:4:21","nodeType":"YulLiteral","src":"57651:4:21","type":"","value":"0xe0"}],"functionName":{"name":"add","nativeSrc":"57642:3:21","nodeType":"YulIdentifier","src":"57642:3:21"},"nativeSrc":"57642:14:21","nodeType":"YulFunctionCall","src":"57642:14:21"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32","nativeSrc":"57594:33:21","nodeType":"YulIdentifier","src":"57594:33:21"},"nativeSrc":"57594:63:21","nodeType":"YulFunctionCall","src":"57594:63:21"},"nativeSrc":"57594:63:21","nodeType":"YulExpressionStatement","src":"57594:63:21"}]}]},"name":"abi_encode_t_struct$_ResourceMetadata_$1053_memory_ptr_to_t_struct$_ResourceMetadata_$1053_memory_ptr_fromStack","nativeSrc":"56534:1140:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"56655:5:21","nodeType":"YulTypedName","src":"56655:5:21","type":""},{"name":"pos","nativeSrc":"56662:3:21","nodeType":"YulTypedName","src":"56662:3:21","type":""}],"src":"56534:1140:21"},{"body":{"nativeSrc":"57791:73:21","nodeType":"YulBlock","src":"57791:73:21","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"57808:3:21","nodeType":"YulIdentifier","src":"57808:3:21"},{"name":"length","nativeSrc":"57813:6:21","nodeType":"YulIdentifier","src":"57813:6:21"}],"functionName":{"name":"mstore","nativeSrc":"57801:6:21","nodeType":"YulIdentifier","src":"57801:6:21"},"nativeSrc":"57801:19:21","nodeType":"YulFunctionCall","src":"57801:19:21"},"nativeSrc":"57801:19:21","nodeType":"YulExpressionStatement","src":"57801:19:21"},{"nativeSrc":"57829:29:21","nodeType":"YulAssignment","src":"57829:29:21","value":{"arguments":[{"name":"pos","nativeSrc":"57848:3:21","nodeType":"YulIdentifier","src":"57848:3:21"},{"kind":"number","nativeSrc":"57853:4:21","nodeType":"YulLiteral","src":"57853:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"57844:3:21","nodeType":"YulIdentifier","src":"57844:3:21"},"nativeSrc":"57844:14:21","nodeType":"YulFunctionCall","src":"57844:14:21"},"variableNames":[{"name":"updated_pos","nativeSrc":"57829:11:21","nodeType":"YulIdentifier","src":"57829:11:21"}]}]},"name":"array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr_fromStack","nativeSrc":"57680:184:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"57763:3:21","nodeType":"YulTypedName","src":"57763:3:21","type":""},{"name":"length","nativeSrc":"57768:6:21","nodeType":"YulTypedName","src":"57768:6:21","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"57779:11:21","nodeType":"YulTypedName","src":"57779:11:21","type":""}],"src":"57680:184:21"},{"body":{"nativeSrc":"58024:608:21","nodeType":"YulBlock","src":"58024:608:21","statements":[{"nativeSrc":"58034:68:21","nodeType":"YulVariableDeclaration","src":"58034:68:21","value":{"arguments":[{"name":"value","nativeSrc":"58096:5:21","nodeType":"YulIdentifier","src":"58096:5:21"}],"functionName":{"name":"array_length_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"58048:47:21","nodeType":"YulIdentifier","src":"58048:47:21"},"nativeSrc":"58048:54:21","nodeType":"YulFunctionCall","src":"58048:54:21"},"variables":[{"name":"length","nativeSrc":"58038:6:21","nodeType":"YulTypedName","src":"58038:6:21","type":""}]},{"nativeSrc":"58111:93:21","nodeType":"YulAssignment","src":"58111:93:21","value":{"arguments":[{"name":"pos","nativeSrc":"58192:3:21","nodeType":"YulIdentifier","src":"58192:3:21"},{"name":"length","nativeSrc":"58197:6:21","nodeType":"YulIdentifier","src":"58197:6:21"}],"functionName":{"name":"array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr_fromStack","nativeSrc":"58118:73:21","nodeType":"YulIdentifier","src":"58118:73:21"},"nativeSrc":"58118:86:21","nodeType":"YulFunctionCall","src":"58118:86:21"},"variableNames":[{"name":"pos","nativeSrc":"58111:3:21","nodeType":"YulIdentifier","src":"58111:3:21"}]},{"nativeSrc":"58213:71:21","nodeType":"YulVariableDeclaration","src":"58213:71:21","value":{"arguments":[{"name":"value","nativeSrc":"58278:5:21","nodeType":"YulIdentifier","src":"58278:5:21"}],"functionName":{"name":"array_dataslot_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"58228:49:21","nodeType":"YulIdentifier","src":"58228:49:21"},"nativeSrc":"58228:56:21","nodeType":"YulFunctionCall","src":"58228:56:21"},"variables":[{"name":"baseRef","nativeSrc":"58217:7:21","nodeType":"YulTypedName","src":"58217:7:21","type":""}]},{"nativeSrc":"58293:21:21","nodeType":"YulVariableDeclaration","src":"58293:21:21","value":{"name":"baseRef","nativeSrc":"58307:7:21","nodeType":"YulIdentifier","src":"58307:7:21"},"variables":[{"name":"srcPtr","nativeSrc":"58297:6:21","nodeType":"YulTypedName","src":"58297:6:21","type":""}]},{"body":{"nativeSrc":"58383:224:21","nodeType":"YulBlock","src":"58383:224:21","statements":[{"nativeSrc":"58397:34:21","nodeType":"YulVariableDeclaration","src":"58397:34:21","value":{"arguments":[{"name":"srcPtr","nativeSrc":"58424:6:21","nodeType":"YulIdentifier","src":"58424:6:21"}],"functionName":{"name":"mload","nativeSrc":"58418:5:21","nodeType":"YulIdentifier","src":"58418:5:21"},"nativeSrc":"58418:13:21","nodeType":"YulFunctionCall","src":"58418:13:21"},"variables":[{"name":"elementValue0","nativeSrc":"58401:13:21","nodeType":"YulTypedName","src":"58401:13:21","type":""}]},{"nativeSrc":"58444:70:21","nodeType":"YulAssignment","src":"58444:70:21","value":{"arguments":[{"name":"elementValue0","nativeSrc":"58495:13:21","nodeType":"YulIdentifier","src":"58495:13:21"},{"name":"pos","nativeSrc":"58510:3:21","nodeType":"YulIdentifier","src":"58510:3:21"}],"functionName":{"name":"abi_encodeUpdatedPos_t_bytes32_to_t_bytes32","nativeSrc":"58451:43:21","nodeType":"YulIdentifier","src":"58451:43:21"},"nativeSrc":"58451:63:21","nodeType":"YulFunctionCall","src":"58451:63:21"},"variableNames":[{"name":"pos","nativeSrc":"58444:3:21","nodeType":"YulIdentifier","src":"58444:3:21"}]},{"nativeSrc":"58527:70:21","nodeType":"YulAssignment","src":"58527:70:21","value":{"arguments":[{"name":"srcPtr","nativeSrc":"58590:6:21","nodeType":"YulIdentifier","src":"58590:6:21"}],"functionName":{"name":"array_nextElement_t_array$_t_bytes32_$dyn_memory_ptr","nativeSrc":"58537:52:21","nodeType":"YulIdentifier","src":"58537:52:21"},"nativeSrc":"58537:60:21","nodeType":"YulFunctionCall","src":"58537:60:21"},"variableNames":[{"name":"srcPtr","nativeSrc":"58527:6:21","nodeType":"YulIdentifier","src":"58527:6:21"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"58345:1:21","nodeType":"YulIdentifier","src":"58345:1:21"},{"name":"length","nativeSrc":"58348:6:21","nodeType":"YulIdentifier","src":"58348:6:21"}],"functionName":{"name":"lt","nativeSrc":"58342:2:21","nodeType":"YulIdentifier","src":"58342:2:21"},"nativeSrc":"58342:13:21","nodeType":"YulFunctionCall","src":"58342:13:21"},"nativeSrc":"58323:284:21","nodeType":"YulForLoop","post":{"nativeSrc":"58356:18:21","nodeType":"YulBlock","src":"58356:18:21","statements":[{"nativeSrc":"58358:14:21","nodeType":"YulAssignment","src":"58358:14:21","value":{"arguments":[{"name":"i","nativeSrc":"58367:1:21","nodeType":"YulIdentifier","src":"58367:1:21"},{"kind":"number","nativeSrc":"58370:1:21","nodeType":"YulLiteral","src":"58370:1:21","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"58363:3:21","nodeType":"YulIdentifier","src":"58363:3:21"},"nativeSrc":"58363:9:21","nodeType":"YulFunctionCall","src":"58363:9:21"},"variableNames":[{"name":"i","nativeSrc":"58358:1:21","nodeType":"YulIdentifier","src":"58358:1:21"}]}]},"pre":{"nativeSrc":"58327:14:21","nodeType":"YulBlock","src":"58327:14:21","statements":[{"nativeSrc":"58329:10:21","nodeType":"YulVariableDeclaration","src":"58329:10:21","value":{"kind":"number","nativeSrc":"58338:1:21","nodeType":"YulLiteral","src":"58338:1:21","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"58333:1:21","nodeType":"YulTypedName","src":"58333:1:21","type":""}]}]},"src":"58323:284:21"},{"nativeSrc":"58616:10:21","nodeType":"YulAssignment","src":"58616:10:21","value":{"name":"pos","nativeSrc":"58623:3:21","nodeType":"YulIdentifier","src":"58623:3:21"},"variableNames":[{"name":"end","nativeSrc":"58616:3:21","nodeType":"YulIdentifier","src":"58616:3:21"}]}]},"name":"abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr_fromStack","nativeSrc":"57900:732:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"58003:5:21","nodeType":"YulTypedName","src":"58003:5:21","type":""},{"name":"pos","nativeSrc":"58010:3:21","nodeType":"YulTypedName","src":"58010:3:21","type":""}],"returnVariables":[{"name":"end","nativeSrc":"58019:3:21","nodeType":"YulTypedName","src":"58019:3:21","type":""}],"src":"57900:732:21"},{"body":{"nativeSrc":"58882:377:21","nodeType":"YulBlock","src":"58882:377:21","statements":[{"nativeSrc":"58892:27:21","nodeType":"YulAssignment","src":"58892:27:21","value":{"arguments":[{"name":"headStart","nativeSrc":"58904:9:21","nodeType":"YulIdentifier","src":"58904:9:21"},{"kind":"number","nativeSrc":"58915:3:21","nodeType":"YulLiteral","src":"58915:3:21","type":"","value":"288"}],"functionName":{"name":"add","nativeSrc":"58900:3:21","nodeType":"YulIdentifier","src":"58900:3:21"},"nativeSrc":"58900:19:21","nodeType":"YulFunctionCall","src":"58900:19:21"},"variableNames":[{"name":"tail","nativeSrc":"58892:4:21","nodeType":"YulIdentifier","src":"58892:4:21"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"59041:6:21","nodeType":"YulIdentifier","src":"59041:6:21"},{"arguments":[{"name":"headStart","nativeSrc":"59054:9:21","nodeType":"YulIdentifier","src":"59054:9:21"},{"kind":"number","nativeSrc":"59065:1:21","nodeType":"YulLiteral","src":"59065:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"59050:3:21","nodeType":"YulIdentifier","src":"59050:3:21"},"nativeSrc":"59050:17:21","nodeType":"YulFunctionCall","src":"59050:17:21"}],"functionName":{"name":"abi_encode_t_struct$_ResourceMetadata_$1053_memory_ptr_to_t_struct$_ResourceMetadata_$1053_memory_ptr_fromStack","nativeSrc":"58929:111:21","nodeType":"YulIdentifier","src":"58929:111:21"},"nativeSrc":"58929:139:21","nodeType":"YulFunctionCall","src":"58929:139:21"},"nativeSrc":"58929:139:21","nodeType":"YulExpressionStatement","src":"58929:139:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"59089:9:21","nodeType":"YulIdentifier","src":"59089:9:21"},{"kind":"number","nativeSrc":"59100:3:21","nodeType":"YulLiteral","src":"59100:3:21","type":"","value":"256"}],"functionName":{"name":"add","nativeSrc":"59085:3:21","nodeType":"YulIdentifier","src":"59085:3:21"},"nativeSrc":"59085:19:21","nodeType":"YulFunctionCall","src":"59085:19:21"},{"arguments":[{"name":"tail","nativeSrc":"59110:4:21","nodeType":"YulIdentifier","src":"59110:4:21"},{"name":"headStart","nativeSrc":"59116:9:21","nodeType":"YulIdentifier","src":"59116:9:21"}],"functionName":{"name":"sub","nativeSrc":"59106:3:21","nodeType":"YulIdentifier","src":"59106:3:21"},"nativeSrc":"59106:20:21","nodeType":"YulFunctionCall","src":"59106:20:21"}],"functionName":{"name":"mstore","nativeSrc":"59078:6:21","nodeType":"YulIdentifier","src":"59078:6:21"},"nativeSrc":"59078:49:21","nodeType":"YulFunctionCall","src":"59078:49:21"},"nativeSrc":"59078:49:21","nodeType":"YulExpressionStatement","src":"59078:49:21"},{"nativeSrc":"59136:116:21","nodeType":"YulAssignment","src":"59136:116:21","value":{"arguments":[{"name":"value1","nativeSrc":"59238:6:21","nodeType":"YulIdentifier","src":"59238:6:21"},{"name":"tail","nativeSrc":"59247:4:21","nodeType":"YulIdentifier","src":"59247:4:21"}],"functionName":{"name":"abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr_fromStack","nativeSrc":"59144:93:21","nodeType":"YulIdentifier","src":"59144:93:21"},"nativeSrc":"59144:108:21","nodeType":"YulFunctionCall","src":"59144:108:21"},"variableNames":[{"name":"tail","nativeSrc":"59136:4:21","nodeType":"YulIdentifier","src":"59136:4:21"}]}]},"name":"abi_encode_tuple_t_struct$_ResourceMetadata_$1053_memory_ptr_t_array$_t_bytes32_$dyn_memory_ptr__to_t_struct$_ResourceMetadata_$1053_memory_ptr_t_array$_t_bytes32_$dyn_memory_ptr__fromStack_reversed","nativeSrc":"58638:621:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"58846:9:21","nodeType":"YulTypedName","src":"58846:9:21","type":""},{"name":"value1","nativeSrc":"58858:6:21","nodeType":"YulTypedName","src":"58858:6:21","type":""},{"name":"value0","nativeSrc":"58866:6:21","nodeType":"YulTypedName","src":"58866:6:21","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"58877:4:21","nodeType":"YulTypedName","src":"58877:4:21","type":""}],"src":"58638:621:21"},{"body":{"nativeSrc":"59323:40:21","nodeType":"YulBlock","src":"59323:40:21","statements":[{"nativeSrc":"59334:22:21","nodeType":"YulAssignment","src":"59334:22:21","value":{"arguments":[{"name":"value","nativeSrc":"59350:5:21","nodeType":"YulIdentifier","src":"59350:5:21"}],"functionName":{"name":"mload","nativeSrc":"59344:5:21","nodeType":"YulIdentifier","src":"59344:5:21"},"nativeSrc":"59344:12:21","nodeType":"YulFunctionCall","src":"59344:12:21"},"variableNames":[{"name":"length","nativeSrc":"59334:6:21","nodeType":"YulIdentifier","src":"59334:6:21"}]}]},"name":"array_length_t_bytes_memory_ptr","nativeSrc":"59265:98:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"59306:5:21","nodeType":"YulTypedName","src":"59306:5:21","type":""}],"returnVariables":[{"name":"length","nativeSrc":"59316:6:21","nodeType":"YulTypedName","src":"59316:6:21","type":""}],"src":"59265:98:21"},{"body":{"nativeSrc":"59464:73:21","nodeType":"YulBlock","src":"59464:73:21","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"59481:3:21","nodeType":"YulIdentifier","src":"59481:3:21"},{"name":"length","nativeSrc":"59486:6:21","nodeType":"YulIdentifier","src":"59486:6:21"}],"functionName":{"name":"mstore","nativeSrc":"59474:6:21","nodeType":"YulIdentifier","src":"59474:6:21"},"nativeSrc":"59474:19:21","nodeType":"YulFunctionCall","src":"59474:19:21"},"nativeSrc":"59474:19:21","nodeType":"YulExpressionStatement","src":"59474:19:21"},{"nativeSrc":"59502:29:21","nodeType":"YulAssignment","src":"59502:29:21","value":{"arguments":[{"name":"pos","nativeSrc":"59521:3:21","nodeType":"YulIdentifier","src":"59521:3:21"},{"kind":"number","nativeSrc":"59526:4:21","nodeType":"YulLiteral","src":"59526:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"59517:3:21","nodeType":"YulIdentifier","src":"59517:3:21"},"nativeSrc":"59517:14:21","nodeType":"YulFunctionCall","src":"59517:14:21"},"variableNames":[{"name":"updated_pos","nativeSrc":"59502:11:21","nodeType":"YulIdentifier","src":"59502:11:21"}]}]},"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"59369:168:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"59436:3:21","nodeType":"YulTypedName","src":"59436:3:21","type":""},{"name":"length","nativeSrc":"59441:6:21","nodeType":"YulTypedName","src":"59441:6:21","type":""}],"returnVariables":[{"name":"updated_pos","nativeSrc":"59452:11:21","nodeType":"YulTypedName","src":"59452:11:21","type":""}],"src":"59369:168:21"},{"body":{"nativeSrc":"59633:283:21","nodeType":"YulBlock","src":"59633:283:21","statements":[{"nativeSrc":"59643:52:21","nodeType":"YulVariableDeclaration","src":"59643:52:21","value":{"arguments":[{"name":"value","nativeSrc":"59689:5:21","nodeType":"YulIdentifier","src":"59689:5:21"}],"functionName":{"name":"array_length_t_bytes_memory_ptr","nativeSrc":"59657:31:21","nodeType":"YulIdentifier","src":"59657:31:21"},"nativeSrc":"59657:38:21","nodeType":"YulFunctionCall","src":"59657:38:21"},"variables":[{"name":"length","nativeSrc":"59647:6:21","nodeType":"YulTypedName","src":"59647:6:21","type":""}]},{"nativeSrc":"59704:77:21","nodeType":"YulAssignment","src":"59704:77:21","value":{"arguments":[{"name":"pos","nativeSrc":"59769:3:21","nodeType":"YulIdentifier","src":"59769:3:21"},{"name":"length","nativeSrc":"59774:6:21","nodeType":"YulIdentifier","src":"59774:6:21"}],"functionName":{"name":"array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack","nativeSrc":"59711:57:21","nodeType":"YulIdentifier","src":"59711:57:21"},"nativeSrc":"59711:70:21","nodeType":"YulFunctionCall","src":"59711:70:21"},"variableNames":[{"name":"pos","nativeSrc":"59704:3:21","nodeType":"YulIdentifier","src":"59704:3:21"}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"59829:5:21","nodeType":"YulIdentifier","src":"59829:5:21"},{"kind":"number","nativeSrc":"59836:4:21","nodeType":"YulLiteral","src":"59836:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"59825:3:21","nodeType":"YulIdentifier","src":"59825:3:21"},"nativeSrc":"59825:16:21","nodeType":"YulFunctionCall","src":"59825:16:21"},{"name":"pos","nativeSrc":"59843:3:21","nodeType":"YulIdentifier","src":"59843:3:21"},{"name":"length","nativeSrc":"59848:6:21","nodeType":"YulIdentifier","src":"59848:6:21"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nativeSrc":"59790:34:21","nodeType":"YulIdentifier","src":"59790:34:21"},"nativeSrc":"59790:65:21","nodeType":"YulFunctionCall","src":"59790:65:21"},"nativeSrc":"59790:65:21","nodeType":"YulExpressionStatement","src":"59790:65:21"},{"nativeSrc":"59864:46:21","nodeType":"YulAssignment","src":"59864:46:21","value":{"arguments":[{"name":"pos","nativeSrc":"59875:3:21","nodeType":"YulIdentifier","src":"59875:3:21"},{"arguments":[{"name":"length","nativeSrc":"59902:6:21","nodeType":"YulIdentifier","src":"59902:6:21"}],"functionName":{"name":"round_up_to_mul_of_32","nativeSrc":"59880:21:21","nodeType":"YulIdentifier","src":"59880:21:21"},"nativeSrc":"59880:29:21","nodeType":"YulFunctionCall","src":"59880:29:21"}],"functionName":{"name":"add","nativeSrc":"59871:3:21","nodeType":"YulIdentifier","src":"59871:3:21"},"nativeSrc":"59871:39:21","nodeType":"YulFunctionCall","src":"59871:39:21"},"variableNames":[{"name":"end","nativeSrc":"59864:3:21","nodeType":"YulIdentifier","src":"59864:3:21"}]}]},"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"59543:373:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"59614:5:21","nodeType":"YulTypedName","src":"59614:5:21","type":""},{"name":"pos","nativeSrc":"59621:3:21","nodeType":"YulTypedName","src":"59621:3:21","type":""}],"returnVariables":[{"name":"end","nativeSrc":"59629:3:21","nodeType":"YulTypedName","src":"59629:3:21","type":""}],"src":"59543:373:21"},{"body":{"nativeSrc":"60038:193:21","nodeType":"YulBlock","src":"60038:193:21","statements":[{"nativeSrc":"60048:26:21","nodeType":"YulAssignment","src":"60048:26:21","value":{"arguments":[{"name":"headStart","nativeSrc":"60060:9:21","nodeType":"YulIdentifier","src":"60060:9:21"},{"kind":"number","nativeSrc":"60071:2:21","nodeType":"YulLiteral","src":"60071:2:21","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"60056:3:21","nodeType":"YulIdentifier","src":"60056:3:21"},"nativeSrc":"60056:18:21","nodeType":"YulFunctionCall","src":"60056:18:21"},"variableNames":[{"name":"tail","nativeSrc":"60048:4:21","nodeType":"YulIdentifier","src":"60048:4:21"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"60095:9:21","nodeType":"YulIdentifier","src":"60095:9:21"},{"kind":"number","nativeSrc":"60106:1:21","nodeType":"YulLiteral","src":"60106:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"60091:3:21","nodeType":"YulIdentifier","src":"60091:3:21"},"nativeSrc":"60091:17:21","nodeType":"YulFunctionCall","src":"60091:17:21"},{"arguments":[{"name":"tail","nativeSrc":"60114:4:21","nodeType":"YulIdentifier","src":"60114:4:21"},{"name":"headStart","nativeSrc":"60120:9:21","nodeType":"YulIdentifier","src":"60120:9:21"}],"functionName":{"name":"sub","nativeSrc":"60110:3:21","nodeType":"YulIdentifier","src":"60110:3:21"},"nativeSrc":"60110:20:21","nodeType":"YulFunctionCall","src":"60110:20:21"}],"functionName":{"name":"mstore","nativeSrc":"60084:6:21","nodeType":"YulIdentifier","src":"60084:6:21"},"nativeSrc":"60084:47:21","nodeType":"YulFunctionCall","src":"60084:47:21"},"nativeSrc":"60084:47:21","nodeType":"YulExpressionStatement","src":"60084:47:21"},{"nativeSrc":"60140:84:21","nodeType":"YulAssignment","src":"60140:84:21","value":{"arguments":[{"name":"value0","nativeSrc":"60210:6:21","nodeType":"YulIdentifier","src":"60210:6:21"},{"name":"tail","nativeSrc":"60219:4:21","nodeType":"YulIdentifier","src":"60219:4:21"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"60148:61:21","nodeType":"YulIdentifier","src":"60148:61:21"},"nativeSrc":"60148:76:21","nodeType":"YulFunctionCall","src":"60148:76:21"},"variableNames":[{"name":"tail","nativeSrc":"60140:4:21","nodeType":"YulIdentifier","src":"60140:4:21"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nativeSrc":"59922:309:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"60010:9:21","nodeType":"YulTypedName","src":"60010:9:21","type":""},{"name":"value0","nativeSrc":"60022:6:21","nodeType":"YulTypedName","src":"60022:6:21","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"60033:4:21","nodeType":"YulTypedName","src":"60033:4:21","type":""}],"src":"59922:309:21"},{"body":{"nativeSrc":"60300:80:21","nodeType":"YulBlock","src":"60300:80:21","statements":[{"nativeSrc":"60310:22:21","nodeType":"YulAssignment","src":"60310:22:21","value":{"arguments":[{"name":"offset","nativeSrc":"60325:6:21","nodeType":"YulIdentifier","src":"60325:6:21"}],"functionName":{"name":"mload","nativeSrc":"60319:5:21","nodeType":"YulIdentifier","src":"60319:5:21"},"nativeSrc":"60319:13:21","nodeType":"YulFunctionCall","src":"60319:13:21"},"variableNames":[{"name":"value","nativeSrc":"60310:5:21","nodeType":"YulIdentifier","src":"60310:5:21"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"60368:5:21","nodeType":"YulIdentifier","src":"60368:5:21"}],"functionName":{"name":"validator_revert_t_bytes32","nativeSrc":"60341:26:21","nodeType":"YulIdentifier","src":"60341:26:21"},"nativeSrc":"60341:33:21","nodeType":"YulFunctionCall","src":"60341:33:21"},"nativeSrc":"60341:33:21","nodeType":"YulExpressionStatement","src":"60341:33:21"}]},"name":"abi_decode_t_bytes32_fromMemory","nativeSrc":"60237:143:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"60278:6:21","nodeType":"YulTypedName","src":"60278:6:21","type":""},{"name":"end","nativeSrc":"60286:3:21","nodeType":"YulTypedName","src":"60286:3:21","type":""}],"returnVariables":[{"name":"value","nativeSrc":"60294:5:21","nodeType":"YulTypedName","src":"60294:5:21","type":""}],"src":"60237:143:21"},{"body":{"nativeSrc":"60463:274:21","nodeType":"YulBlock","src":"60463:274:21","statements":[{"body":{"nativeSrc":"60509:83:21","nodeType":"YulBlock","src":"60509:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"60511:77:21","nodeType":"YulIdentifier","src":"60511:77:21"},"nativeSrc":"60511:79:21","nodeType":"YulFunctionCall","src":"60511:79:21"},"nativeSrc":"60511:79:21","nodeType":"YulExpressionStatement","src":"60511:79:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"60484:7:21","nodeType":"YulIdentifier","src":"60484:7:21"},{"name":"headStart","nativeSrc":"60493:9:21","nodeType":"YulIdentifier","src":"60493:9:21"}],"functionName":{"name":"sub","nativeSrc":"60480:3:21","nodeType":"YulIdentifier","src":"60480:3:21"},"nativeSrc":"60480:23:21","nodeType":"YulFunctionCall","src":"60480:23:21"},{"kind":"number","nativeSrc":"60505:2:21","nodeType":"YulLiteral","src":"60505:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"60476:3:21","nodeType":"YulIdentifier","src":"60476:3:21"},"nativeSrc":"60476:32:21","nodeType":"YulFunctionCall","src":"60476:32:21"},"nativeSrc":"60473:119:21","nodeType":"YulIf","src":"60473:119:21"},{"nativeSrc":"60602:128:21","nodeType":"YulBlock","src":"60602:128:21","statements":[{"nativeSrc":"60617:15:21","nodeType":"YulVariableDeclaration","src":"60617:15:21","value":{"kind":"number","nativeSrc":"60631:1:21","nodeType":"YulLiteral","src":"60631:1:21","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"60621:6:21","nodeType":"YulTypedName","src":"60621:6:21","type":""}]},{"nativeSrc":"60646:74:21","nodeType":"YulAssignment","src":"60646:74:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"60692:9:21","nodeType":"YulIdentifier","src":"60692:9:21"},{"name":"offset","nativeSrc":"60703:6:21","nodeType":"YulIdentifier","src":"60703:6:21"}],"functionName":{"name":"add","nativeSrc":"60688:3:21","nodeType":"YulIdentifier","src":"60688:3:21"},"nativeSrc":"60688:22:21","nodeType":"YulFunctionCall","src":"60688:22:21"},{"name":"dataEnd","nativeSrc":"60712:7:21","nodeType":"YulIdentifier","src":"60712:7:21"}],"functionName":{"name":"abi_decode_t_bytes32_fromMemory","nativeSrc":"60656:31:21","nodeType":"YulIdentifier","src":"60656:31:21"},"nativeSrc":"60656:64:21","nodeType":"YulFunctionCall","src":"60656:64:21"},"variableNames":[{"name":"value0","nativeSrc":"60646:6:21","nodeType":"YulIdentifier","src":"60646:6:21"}]}]}]},"name":"abi_decode_tuple_t_bytes32_fromMemory","nativeSrc":"60386:351:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"60433:9:21","nodeType":"YulTypedName","src":"60433:9:21","type":""},{"name":"dataEnd","nativeSrc":"60444:7:21","nodeType":"YulTypedName","src":"60444:7:21","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"60456:6:21","nodeType":"YulTypedName","src":"60456:6:21","type":""}],"src":"60386:351:21"},{"body":{"nativeSrc":"60808:53:21","nodeType":"YulBlock","src":"60808:53:21","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"60825:3:21","nodeType":"YulIdentifier","src":"60825:3:21"},{"arguments":[{"name":"value","nativeSrc":"60848:5:21","nodeType":"YulIdentifier","src":"60848:5:21"}],"functionName":{"name":"cleanup_t_address","nativeSrc":"60830:17:21","nodeType":"YulIdentifier","src":"60830:17:21"},"nativeSrc":"60830:24:21","nodeType":"YulFunctionCall","src":"60830:24:21"}],"functionName":{"name":"mstore","nativeSrc":"60818:6:21","nodeType":"YulIdentifier","src":"60818:6:21"},"nativeSrc":"60818:37:21","nodeType":"YulFunctionCall","src":"60818:37:21"},"nativeSrc":"60818:37:21","nodeType":"YulExpressionStatement","src":"60818:37:21"}]},"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"60743:118:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"60796:5:21","nodeType":"YulTypedName","src":"60796:5:21","type":""},{"name":"pos","nativeSrc":"60803:3:21","nodeType":"YulTypedName","src":"60803:3:21","type":""}],"src":"60743:118:21"},{"body":{"nativeSrc":"60993:206:21","nodeType":"YulBlock","src":"60993:206:21","statements":[{"nativeSrc":"61003:26:21","nodeType":"YulAssignment","src":"61003:26:21","value":{"arguments":[{"name":"headStart","nativeSrc":"61015:9:21","nodeType":"YulIdentifier","src":"61015:9:21"},{"kind":"number","nativeSrc":"61026:2:21","nodeType":"YulLiteral","src":"61026:2:21","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"61011:3:21","nodeType":"YulIdentifier","src":"61011:3:21"},"nativeSrc":"61011:18:21","nodeType":"YulFunctionCall","src":"61011:18:21"},"variableNames":[{"name":"tail","nativeSrc":"61003:4:21","nodeType":"YulIdentifier","src":"61003:4:21"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"61083:6:21","nodeType":"YulIdentifier","src":"61083:6:21"},{"arguments":[{"name":"headStart","nativeSrc":"61096:9:21","nodeType":"YulIdentifier","src":"61096:9:21"},{"kind":"number","nativeSrc":"61107:1:21","nodeType":"YulLiteral","src":"61107:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"61092:3:21","nodeType":"YulIdentifier","src":"61092:3:21"},"nativeSrc":"61092:17:21","nodeType":"YulFunctionCall","src":"61092:17:21"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"61039:43:21","nodeType":"YulIdentifier","src":"61039:43:21"},"nativeSrc":"61039:71:21","nodeType":"YulFunctionCall","src":"61039:71:21"},"nativeSrc":"61039:71:21","nodeType":"YulExpressionStatement","src":"61039:71:21"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"61164:6:21","nodeType":"YulIdentifier","src":"61164:6:21"},{"arguments":[{"name":"headStart","nativeSrc":"61177:9:21","nodeType":"YulIdentifier","src":"61177:9:21"},{"kind":"number","nativeSrc":"61188:2:21","nodeType":"YulLiteral","src":"61188:2:21","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"61173:3:21","nodeType":"YulIdentifier","src":"61173:3:21"},"nativeSrc":"61173:18:21","nodeType":"YulFunctionCall","src":"61173:18:21"}],"functionName":{"name":"abi_encode_t_bytes32_to_t_bytes32_fromStack","nativeSrc":"61120:43:21","nodeType":"YulIdentifier","src":"61120:43:21"},"nativeSrc":"61120:72:21","nodeType":"YulFunctionCall","src":"61120:72:21"},"nativeSrc":"61120:72:21","nodeType":"YulExpressionStatement","src":"61120:72:21"}]},"name":"abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed","nativeSrc":"60867:332:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"60957:9:21","nodeType":"YulTypedName","src":"60957:9:21","type":""},{"name":"value1","nativeSrc":"60969:6:21","nodeType":"YulTypedName","src":"60969:6:21","type":""},{"name":"value0","nativeSrc":"60977:6:21","nodeType":"YulTypedName","src":"60977:6:21","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"60988:4:21","nodeType":"YulTypedName","src":"60988:4:21","type":""}],"src":"60867:332:21"},{"body":{"nativeSrc":"61381:909:21","nodeType":"YulBlock","src":"61381:909:21","statements":[{"nativeSrc":"61391:26:21","nodeType":"YulVariableDeclaration","src":"61391:26:21","value":{"arguments":[{"name":"pos","nativeSrc":"61407:3:21","nodeType":"YulIdentifier","src":"61407:3:21"},{"kind":"number","nativeSrc":"61412:4:21","nodeType":"YulLiteral","src":"61412:4:21","type":"","value":"0x60"}],"functionName":{"name":"add","nativeSrc":"61403:3:21","nodeType":"YulIdentifier","src":"61403:3:21"},"nativeSrc":"61403:14:21","nodeType":"YulFunctionCall","src":"61403:14:21"},"variables":[{"name":"tail","nativeSrc":"61395:4:21","nodeType":"YulTypedName","src":"61395:4:21","type":""}]},{"nativeSrc":"61427:274:21","nodeType":"YulBlock","src":"61427:274:21","statements":[{"nativeSrc":"61463:43:21","nodeType":"YulVariableDeclaration","src":"61463:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"61493:5:21","nodeType":"YulIdentifier","src":"61493:5:21"},{"kind":"number","nativeSrc":"61500:4:21","nodeType":"YulLiteral","src":"61500:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"61489:3:21","nodeType":"YulIdentifier","src":"61489:3:21"},"nativeSrc":"61489:16:21","nodeType":"YulFunctionCall","src":"61489:16:21"}],"functionName":{"name":"mload","nativeSrc":"61483:5:21","nodeType":"YulIdentifier","src":"61483:5:21"},"nativeSrc":"61483:23:21","nodeType":"YulFunctionCall","src":"61483:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"61467:12:21","nodeType":"YulTypedName","src":"61467:12:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"61531:3:21","nodeType":"YulIdentifier","src":"61531:3:21"},{"kind":"number","nativeSrc":"61536:4:21","nodeType":"YulLiteral","src":"61536:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"61527:3:21","nodeType":"YulIdentifier","src":"61527:3:21"},"nativeSrc":"61527:14:21","nodeType":"YulFunctionCall","src":"61527:14:21"},{"arguments":[{"name":"tail","nativeSrc":"61547:4:21","nodeType":"YulIdentifier","src":"61547:4:21"},{"name":"pos","nativeSrc":"61553:3:21","nodeType":"YulIdentifier","src":"61553:3:21"}],"functionName":{"name":"sub","nativeSrc":"61543:3:21","nodeType":"YulIdentifier","src":"61543:3:21"},"nativeSrc":"61543:14:21","nodeType":"YulFunctionCall","src":"61543:14:21"}],"functionName":{"name":"mstore","nativeSrc":"61520:6:21","nodeType":"YulIdentifier","src":"61520:6:21"},"nativeSrc":"61520:38:21","nodeType":"YulFunctionCall","src":"61520:38:21"},"nativeSrc":"61520:38:21","nodeType":"YulExpressionStatement","src":"61520:38:21"},{"nativeSrc":"61571:119:21","nodeType":"YulAssignment","src":"61571:119:21","value":{"arguments":[{"name":"memberValue0","nativeSrc":"61671:12:21","nodeType":"YulIdentifier","src":"61671:12:21"},{"name":"tail","nativeSrc":"61685:4:21","nodeType":"YulIdentifier","src":"61685:4:21"}],"functionName":{"name":"abi_encode_t_struct$_CacheControl_$984_memory_ptr_to_t_struct$_CacheControl_$984_memory_ptr","nativeSrc":"61579:91:21","nodeType":"YulIdentifier","src":"61579:91:21"},"nativeSrc":"61579:111:21","nodeType":"YulFunctionCall","src":"61579:111:21"},"variableNames":[{"name":"tail","nativeSrc":"61571:4:21","nodeType":"YulIdentifier","src":"61571:4:21"}]}]},{"nativeSrc":"61711:271:21","nodeType":"YulBlock","src":"61711:271:21","statements":[{"nativeSrc":"61746:43:21","nodeType":"YulVariableDeclaration","src":"61746:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"61776:5:21","nodeType":"YulIdentifier","src":"61776:5:21"},{"kind":"number","nativeSrc":"61783:4:21","nodeType":"YulLiteral","src":"61783:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"61772:3:21","nodeType":"YulIdentifier","src":"61772:3:21"},"nativeSrc":"61772:16:21","nodeType":"YulFunctionCall","src":"61772:16:21"}],"functionName":{"name":"mload","nativeSrc":"61766:5:21","nodeType":"YulIdentifier","src":"61766:5:21"},"nativeSrc":"61766:23:21","nodeType":"YulFunctionCall","src":"61766:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"61750:12:21","nodeType":"YulTypedName","src":"61750:12:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"61814:3:21","nodeType":"YulIdentifier","src":"61814:3:21"},{"kind":"number","nativeSrc":"61819:4:21","nodeType":"YulLiteral","src":"61819:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"61810:3:21","nodeType":"YulIdentifier","src":"61810:3:21"},"nativeSrc":"61810:14:21","nodeType":"YulFunctionCall","src":"61810:14:21"},{"arguments":[{"name":"tail","nativeSrc":"61830:4:21","nodeType":"YulIdentifier","src":"61830:4:21"},{"name":"pos","nativeSrc":"61836:3:21","nodeType":"YulIdentifier","src":"61836:3:21"}],"functionName":{"name":"sub","nativeSrc":"61826:3:21","nodeType":"YulIdentifier","src":"61826:3:21"},"nativeSrc":"61826:14:21","nodeType":"YulFunctionCall","src":"61826:14:21"}],"functionName":{"name":"mstore","nativeSrc":"61803:6:21","nodeType":"YulIdentifier","src":"61803:6:21"},"nativeSrc":"61803:38:21","nodeType":"YulFunctionCall","src":"61803:38:21"},"nativeSrc":"61803:38:21","nodeType":"YulExpressionStatement","src":"61803:38:21"},{"nativeSrc":"61854:117:21","nodeType":"YulAssignment","src":"61854:117:21","value":{"arguments":[{"name":"memberValue0","nativeSrc":"61952:12:21","nodeType":"YulIdentifier","src":"61952:12:21"},{"name":"tail","nativeSrc":"61966:4:21","nodeType":"YulIdentifier","src":"61966:4:21"}],"functionName":{"name":"abi_encode_t_struct$_CORSPolicy_$1000_memory_ptr_to_t_struct$_CORSPolicy_$1000_memory_ptr","nativeSrc":"61862:89:21","nodeType":"YulIdentifier","src":"61862:89:21"},"nativeSrc":"61862:109:21","nodeType":"YulFunctionCall","src":"61862:109:21"},"variableNames":[{"name":"tail","nativeSrc":"61854:4:21","nodeType":"YulIdentifier","src":"61854:4:21"}]}]},{"nativeSrc":"61992:271:21","nodeType":"YulBlock","src":"61992:271:21","statements":[{"nativeSrc":"62031:43:21","nodeType":"YulVariableDeclaration","src":"62031:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"62061:5:21","nodeType":"YulIdentifier","src":"62061:5:21"},{"kind":"number","nativeSrc":"62068:4:21","nodeType":"YulLiteral","src":"62068:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"62057:3:21","nodeType":"YulIdentifier","src":"62057:3:21"},"nativeSrc":"62057:16:21","nodeType":"YulFunctionCall","src":"62057:16:21"}],"functionName":{"name":"mload","nativeSrc":"62051:5:21","nodeType":"YulIdentifier","src":"62051:5:21"},"nativeSrc":"62051:23:21","nodeType":"YulFunctionCall","src":"62051:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"62035:12:21","nodeType":"YulTypedName","src":"62035:12:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"pos","nativeSrc":"62099:3:21","nodeType":"YulIdentifier","src":"62099:3:21"},{"kind":"number","nativeSrc":"62104:4:21","nodeType":"YulLiteral","src":"62104:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"62095:3:21","nodeType":"YulIdentifier","src":"62095:3:21"},"nativeSrc":"62095:14:21","nodeType":"YulFunctionCall","src":"62095:14:21"},{"arguments":[{"name":"tail","nativeSrc":"62115:4:21","nodeType":"YulIdentifier","src":"62115:4:21"},{"name":"pos","nativeSrc":"62121:3:21","nodeType":"YulIdentifier","src":"62121:3:21"}],"functionName":{"name":"sub","nativeSrc":"62111:3:21","nodeType":"YulIdentifier","src":"62111:3:21"},"nativeSrc":"62111:14:21","nodeType":"YulFunctionCall","src":"62111:14:21"}],"functionName":{"name":"mstore","nativeSrc":"62088:6:21","nodeType":"YulIdentifier","src":"62088:6:21"},"nativeSrc":"62088:38:21","nodeType":"YulFunctionCall","src":"62088:38:21"},"nativeSrc":"62088:38:21","nodeType":"YulExpressionStatement","src":"62088:38:21"},{"nativeSrc":"62139:113:21","nodeType":"YulAssignment","src":"62139:113:21","value":{"arguments":[{"name":"memberValue0","nativeSrc":"62233:12:21","nodeType":"YulIdentifier","src":"62233:12:21"},{"name":"tail","nativeSrc":"62247:4:21","nodeType":"YulIdentifier","src":"62247:4:21"}],"functionName":{"name":"abi_encode_t_struct$_Redirect_$1008_memory_ptr_to_t_struct$_Redirect_$1008_memory_ptr","nativeSrc":"62147:85:21","nodeType":"YulIdentifier","src":"62147:85:21"},"nativeSrc":"62147:105:21","nodeType":"YulFunctionCall","src":"62147:105:21"},"variableNames":[{"name":"tail","nativeSrc":"62139:4:21","nodeType":"YulIdentifier","src":"62139:4:21"}]}]},{"nativeSrc":"62273:11:21","nodeType":"YulAssignment","src":"62273:11:21","value":{"name":"tail","nativeSrc":"62280:4:21","nodeType":"YulIdentifier","src":"62280:4:21"},"variableNames":[{"name":"end","nativeSrc":"62273:3:21","nodeType":"YulIdentifier","src":"62273:3:21"}]}]},"name":"abi_encode_t_struct$_HeaderInfo_$1022_memory_ptr_to_t_struct$_HeaderInfo_$1022_memory_ptr_fromStack","nativeSrc":"61251:1039:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"61360:5:21","nodeType":"YulTypedName","src":"61360:5:21","type":""},{"name":"pos","nativeSrc":"61367:3:21","nodeType":"YulTypedName","src":"61367:3:21","type":""}],"returnVariables":[{"name":"end","nativeSrc":"61376:3:21","nodeType":"YulTypedName","src":"61376:3:21","type":""}],"src":"61251:1039:21"},{"body":{"nativeSrc":"62450:231:21","nodeType":"YulBlock","src":"62450:231:21","statements":[{"nativeSrc":"62460:26:21","nodeType":"YulAssignment","src":"62460:26:21","value":{"arguments":[{"name":"headStart","nativeSrc":"62472:9:21","nodeType":"YulIdentifier","src":"62472:9:21"},{"kind":"number","nativeSrc":"62483:2:21","nodeType":"YulLiteral","src":"62483:2:21","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"62468:3:21","nodeType":"YulIdentifier","src":"62468:3:21"},"nativeSrc":"62468:18:21","nodeType":"YulFunctionCall","src":"62468:18:21"},"variableNames":[{"name":"tail","nativeSrc":"62460:4:21","nodeType":"YulIdentifier","src":"62460:4:21"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"62507:9:21","nodeType":"YulIdentifier","src":"62507:9:21"},{"kind":"number","nativeSrc":"62518:1:21","nodeType":"YulLiteral","src":"62518:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"62503:3:21","nodeType":"YulIdentifier","src":"62503:3:21"},"nativeSrc":"62503:17:21","nodeType":"YulFunctionCall","src":"62503:17:21"},{"arguments":[{"name":"tail","nativeSrc":"62526:4:21","nodeType":"YulIdentifier","src":"62526:4:21"},{"name":"headStart","nativeSrc":"62532:9:21","nodeType":"YulIdentifier","src":"62532:9:21"}],"functionName":{"name":"sub","nativeSrc":"62522:3:21","nodeType":"YulIdentifier","src":"62522:3:21"},"nativeSrc":"62522:20:21","nodeType":"YulFunctionCall","src":"62522:20:21"}],"functionName":{"name":"mstore","nativeSrc":"62496:6:21","nodeType":"YulIdentifier","src":"62496:6:21"},"nativeSrc":"62496:47:21","nodeType":"YulFunctionCall","src":"62496:47:21"},"nativeSrc":"62496:47:21","nodeType":"YulExpressionStatement","src":"62496:47:21"},{"nativeSrc":"62552:122:21","nodeType":"YulAssignment","src":"62552:122:21","value":{"arguments":[{"name":"value0","nativeSrc":"62660:6:21","nodeType":"YulIdentifier","src":"62660:6:21"},{"name":"tail","nativeSrc":"62669:4:21","nodeType":"YulIdentifier","src":"62669:4:21"}],"functionName":{"name":"abi_encode_t_struct$_HeaderInfo_$1022_memory_ptr_to_t_struct$_HeaderInfo_$1022_memory_ptr_fromStack","nativeSrc":"62560:99:21","nodeType":"YulIdentifier","src":"62560:99:21"},"nativeSrc":"62560:114:21","nodeType":"YulFunctionCall","src":"62560:114:21"},"variableNames":[{"name":"tail","nativeSrc":"62552:4:21","nodeType":"YulIdentifier","src":"62552:4:21"}]}]},"name":"abi_encode_tuple_t_struct$_HeaderInfo_$1022_memory_ptr__to_t_struct$_HeaderInfo_$1022_memory_ptr__fromStack_reversed","nativeSrc":"62296:385:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"62422:9:21","nodeType":"YulTypedName","src":"62422:9:21","type":""},{"name":"value0","nativeSrc":"62434:6:21","nodeType":"YulTypedName","src":"62434:6:21","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"62445:4:21","nodeType":"YulTypedName","src":"62445:4:21","type":""}],"src":"62296:385:21"},{"body":{"nativeSrc":"62741:87:21","nodeType":"YulBlock","src":"62741:87:21","statements":[{"nativeSrc":"62751:11:21","nodeType":"YulAssignment","src":"62751:11:21","value":{"name":"ptr","nativeSrc":"62759:3:21","nodeType":"YulIdentifier","src":"62759:3:21"},"variableNames":[{"name":"data","nativeSrc":"62751:4:21","nodeType":"YulIdentifier","src":"62751:4:21"}]},{"expression":{"arguments":[{"kind":"number","nativeSrc":"62779:1:21","nodeType":"YulLiteral","src":"62779:1:21","type":"","value":"0"},{"name":"ptr","nativeSrc":"62782:3:21","nodeType":"YulIdentifier","src":"62782:3:21"}],"functionName":{"name":"mstore","nativeSrc":"62772:6:21","nodeType":"YulIdentifier","src":"62772:6:21"},"nativeSrc":"62772:14:21","nodeType":"YulFunctionCall","src":"62772:14:21"},"nativeSrc":"62772:14:21","nodeType":"YulExpressionStatement","src":"62772:14:21"},{"nativeSrc":"62795:26:21","nodeType":"YulAssignment","src":"62795:26:21","value":{"arguments":[{"kind":"number","nativeSrc":"62813:1:21","nodeType":"YulLiteral","src":"62813:1:21","type":"","value":"0"},{"kind":"number","nativeSrc":"62816:4:21","nodeType":"YulLiteral","src":"62816:4:21","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nativeSrc":"62803:9:21","nodeType":"YulIdentifier","src":"62803:9:21"},"nativeSrc":"62803:18:21","nodeType":"YulFunctionCall","src":"62803:18:21"},"variableNames":[{"name":"data","nativeSrc":"62795:4:21","nodeType":"YulIdentifier","src":"62795:4:21"}]}]},"name":"array_dataslot_t_string_storage","nativeSrc":"62687:141:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nativeSrc":"62728:3:21","nodeType":"YulTypedName","src":"62728:3:21","type":""}],"returnVariables":[{"name":"data","nativeSrc":"62736:4:21","nodeType":"YulTypedName","src":"62736:4:21","type":""}],"src":"62687:141:21"},{"body":{"nativeSrc":"62878:49:21","nodeType":"YulBlock","src":"62878:49:21","statements":[{"nativeSrc":"62888:33:21","nodeType":"YulAssignment","src":"62888:33:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"62906:5:21","nodeType":"YulIdentifier","src":"62906:5:21"},{"kind":"number","nativeSrc":"62913:2:21","nodeType":"YulLiteral","src":"62913:2:21","type":"","value":"31"}],"functionName":{"name":"add","nativeSrc":"62902:3:21","nodeType":"YulIdentifier","src":"62902:3:21"},"nativeSrc":"62902:14:21","nodeType":"YulFunctionCall","src":"62902:14:21"},{"kind":"number","nativeSrc":"62918:2:21","nodeType":"YulLiteral","src":"62918:2:21","type":"","value":"32"}],"functionName":{"name":"div","nativeSrc":"62898:3:21","nodeType":"YulIdentifier","src":"62898:3:21"},"nativeSrc":"62898:23:21","nodeType":"YulFunctionCall","src":"62898:23:21"},"variableNames":[{"name":"result","nativeSrc":"62888:6:21","nodeType":"YulIdentifier","src":"62888:6:21"}]}]},"name":"divide_by_32_ceil","nativeSrc":"62834:93:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"62861:5:21","nodeType":"YulTypedName","src":"62861:5:21","type":""}],"returnVariables":[{"name":"result","nativeSrc":"62871:6:21","nodeType":"YulTypedName","src":"62871:6:21","type":""}],"src":"62834:93:21"},{"body":{"nativeSrc":"62986:54:21","nodeType":"YulBlock","src":"62986:54:21","statements":[{"nativeSrc":"62996:37:21","nodeType":"YulAssignment","src":"62996:37:21","value":{"arguments":[{"name":"bits","nativeSrc":"63021:4:21","nodeType":"YulIdentifier","src":"63021:4:21"},{"name":"value","nativeSrc":"63027:5:21","nodeType":"YulIdentifier","src":"63027:5:21"}],"functionName":{"name":"shl","nativeSrc":"63017:3:21","nodeType":"YulIdentifier","src":"63017:3:21"},"nativeSrc":"63017:16:21","nodeType":"YulFunctionCall","src":"63017:16:21"},"variableNames":[{"name":"newValue","nativeSrc":"62996:8:21","nodeType":"YulIdentifier","src":"62996:8:21"}]}]},"name":"shift_left_dynamic","nativeSrc":"62933:107:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"62961:4:21","nodeType":"YulTypedName","src":"62961:4:21","type":""},{"name":"value","nativeSrc":"62967:5:21","nodeType":"YulTypedName","src":"62967:5:21","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"62977:8:21","nodeType":"YulTypedName","src":"62977:8:21","type":""}],"src":"62933:107:21"},{"body":{"nativeSrc":"63122:317:21","nodeType":"YulBlock","src":"63122:317:21","statements":[{"nativeSrc":"63132:35:21","nodeType":"YulVariableDeclaration","src":"63132:35:21","value":{"arguments":[{"name":"shiftBytes","nativeSrc":"63153:10:21","nodeType":"YulIdentifier","src":"63153:10:21"},{"kind":"number","nativeSrc":"63165:1:21","nodeType":"YulLiteral","src":"63165:1:21","type":"","value":"8"}],"functionName":{"name":"mul","nativeSrc":"63149:3:21","nodeType":"YulIdentifier","src":"63149:3:21"},"nativeSrc":"63149:18:21","nodeType":"YulFunctionCall","src":"63149:18:21"},"variables":[{"name":"shiftBits","nativeSrc":"63136:9:21","nodeType":"YulTypedName","src":"63136:9:21","type":""}]},{"nativeSrc":"63176:109:21","nodeType":"YulVariableDeclaration","src":"63176:109:21","value":{"arguments":[{"name":"shiftBits","nativeSrc":"63207:9:21","nodeType":"YulIdentifier","src":"63207:9:21"},{"kind":"number","nativeSrc":"63218:66:21","nodeType":"YulLiteral","src":"63218:66:21","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"63188:18:21","nodeType":"YulIdentifier","src":"63188:18:21"},"nativeSrc":"63188:97:21","nodeType":"YulFunctionCall","src":"63188:97:21"},"variables":[{"name":"mask","nativeSrc":"63180:4:21","nodeType":"YulTypedName","src":"63180:4:21","type":""}]},{"nativeSrc":"63294:51:21","nodeType":"YulAssignment","src":"63294:51:21","value":{"arguments":[{"name":"shiftBits","nativeSrc":"63325:9:21","nodeType":"YulIdentifier","src":"63325:9:21"},{"name":"toInsert","nativeSrc":"63336:8:21","nodeType":"YulIdentifier","src":"63336:8:21"}],"functionName":{"name":"shift_left_dynamic","nativeSrc":"63306:18:21","nodeType":"YulIdentifier","src":"63306:18:21"},"nativeSrc":"63306:39:21","nodeType":"YulFunctionCall","src":"63306:39:21"},"variableNames":[{"name":"toInsert","nativeSrc":"63294:8:21","nodeType":"YulIdentifier","src":"63294:8:21"}]},{"nativeSrc":"63354:30:21","nodeType":"YulAssignment","src":"63354:30:21","value":{"arguments":[{"name":"value","nativeSrc":"63367:5:21","nodeType":"YulIdentifier","src":"63367:5:21"},{"arguments":[{"name":"mask","nativeSrc":"63378:4:21","nodeType":"YulIdentifier","src":"63378:4:21"}],"functionName":{"name":"not","nativeSrc":"63374:3:21","nodeType":"YulIdentifier","src":"63374:3:21"},"nativeSrc":"63374:9:21","nodeType":"YulFunctionCall","src":"63374:9:21"}],"functionName":{"name":"and","nativeSrc":"63363:3:21","nodeType":"YulIdentifier","src":"63363:3:21"},"nativeSrc":"63363:21:21","nodeType":"YulFunctionCall","src":"63363:21:21"},"variableNames":[{"name":"value","nativeSrc":"63354:5:21","nodeType":"YulIdentifier","src":"63354:5:21"}]},{"nativeSrc":"63393:40:21","nodeType":"YulAssignment","src":"63393:40:21","value":{"arguments":[{"name":"value","nativeSrc":"63406:5:21","nodeType":"YulIdentifier","src":"63406:5:21"},{"arguments":[{"name":"toInsert","nativeSrc":"63417:8:21","nodeType":"YulIdentifier","src":"63417:8:21"},{"name":"mask","nativeSrc":"63427:4:21","nodeType":"YulIdentifier","src":"63427:4:21"}],"functionName":{"name":"and","nativeSrc":"63413:3:21","nodeType":"YulIdentifier","src":"63413:3:21"},"nativeSrc":"63413:19:21","nodeType":"YulFunctionCall","src":"63413:19:21"}],"functionName":{"name":"or","nativeSrc":"63403:2:21","nodeType":"YulIdentifier","src":"63403:2:21"},"nativeSrc":"63403:30:21","nodeType":"YulFunctionCall","src":"63403:30:21"},"variableNames":[{"name":"result","nativeSrc":"63393:6:21","nodeType":"YulIdentifier","src":"63393:6:21"}]}]},"name":"update_byte_slice_dynamic32","nativeSrc":"63046:393:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"63083:5:21","nodeType":"YulTypedName","src":"63083:5:21","type":""},{"name":"shiftBytes","nativeSrc":"63090:10:21","nodeType":"YulTypedName","src":"63090:10:21","type":""},{"name":"toInsert","nativeSrc":"63102:8:21","nodeType":"YulTypedName","src":"63102:8:21","type":""}],"returnVariables":[{"name":"result","nativeSrc":"63115:6:21","nodeType":"YulTypedName","src":"63115:6:21","type":""}],"src":"63046:393:21"},{"body":{"nativeSrc":"63505:82:21","nodeType":"YulBlock","src":"63505:82:21","statements":[{"nativeSrc":"63515:66:21","nodeType":"YulAssignment","src":"63515:66:21","value":{"arguments":[{"arguments":[{"arguments":[{"name":"value","nativeSrc":"63573:5:21","nodeType":"YulIdentifier","src":"63573:5:21"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"63555:17:21","nodeType":"YulIdentifier","src":"63555:17:21"},"nativeSrc":"63555:24:21","nodeType":"YulFunctionCall","src":"63555:24:21"}],"functionName":{"name":"identity","nativeSrc":"63546:8:21","nodeType":"YulIdentifier","src":"63546:8:21"},"nativeSrc":"63546:34:21","nodeType":"YulFunctionCall","src":"63546:34:21"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"63528:17:21","nodeType":"YulIdentifier","src":"63528:17:21"},"nativeSrc":"63528:53:21","nodeType":"YulFunctionCall","src":"63528:53:21"},"variableNames":[{"name":"converted","nativeSrc":"63515:9:21","nodeType":"YulIdentifier","src":"63515:9:21"}]}]},"name":"convert_t_uint256_to_t_uint256","nativeSrc":"63445:142:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"63485:5:21","nodeType":"YulTypedName","src":"63485:5:21","type":""}],"returnVariables":[{"name":"converted","nativeSrc":"63495:9:21","nodeType":"YulTypedName","src":"63495:9:21","type":""}],"src":"63445:142:21"},{"body":{"nativeSrc":"63640:28:21","nodeType":"YulBlock","src":"63640:28:21","statements":[{"nativeSrc":"63650:12:21","nodeType":"YulAssignment","src":"63650:12:21","value":{"name":"value","nativeSrc":"63657:5:21","nodeType":"YulIdentifier","src":"63657:5:21"},"variableNames":[{"name":"ret","nativeSrc":"63650:3:21","nodeType":"YulIdentifier","src":"63650:3:21"}]}]},"name":"prepare_store_t_uint256","nativeSrc":"63593:75:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"63626:5:21","nodeType":"YulTypedName","src":"63626:5:21","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"63636:3:21","nodeType":"YulTypedName","src":"63636:3:21","type":""}],"src":"63593:75:21"},{"body":{"nativeSrc":"63750:193:21","nodeType":"YulBlock","src":"63750:193:21","statements":[{"nativeSrc":"63760:63:21","nodeType":"YulVariableDeclaration","src":"63760:63:21","value":{"arguments":[{"name":"value_0","nativeSrc":"63815:7:21","nodeType":"YulIdentifier","src":"63815:7:21"}],"functionName":{"name":"convert_t_uint256_to_t_uint256","nativeSrc":"63784:30:21","nodeType":"YulIdentifier","src":"63784:30:21"},"nativeSrc":"63784:39:21","nodeType":"YulFunctionCall","src":"63784:39:21"},"variables":[{"name":"convertedValue_0","nativeSrc":"63764:16:21","nodeType":"YulTypedName","src":"63764:16:21","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"63839:4:21","nodeType":"YulIdentifier","src":"63839:4:21"},{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"63879:4:21","nodeType":"YulIdentifier","src":"63879:4:21"}],"functionName":{"name":"sload","nativeSrc":"63873:5:21","nodeType":"YulIdentifier","src":"63873:5:21"},"nativeSrc":"63873:11:21","nodeType":"YulFunctionCall","src":"63873:11:21"},{"name":"offset","nativeSrc":"63886:6:21","nodeType":"YulIdentifier","src":"63886:6:21"},{"arguments":[{"name":"convertedValue_0","nativeSrc":"63918:16:21","nodeType":"YulIdentifier","src":"63918:16:21"}],"functionName":{"name":"prepare_store_t_uint256","nativeSrc":"63894:23:21","nodeType":"YulIdentifier","src":"63894:23:21"},"nativeSrc":"63894:41:21","nodeType":"YulFunctionCall","src":"63894:41:21"}],"functionName":{"name":"update_byte_slice_dynamic32","nativeSrc":"63845:27:21","nodeType":"YulIdentifier","src":"63845:27:21"},"nativeSrc":"63845:91:21","nodeType":"YulFunctionCall","src":"63845:91:21"}],"functionName":{"name":"sstore","nativeSrc":"63832:6:21","nodeType":"YulIdentifier","src":"63832:6:21"},"nativeSrc":"63832:105:21","nodeType":"YulFunctionCall","src":"63832:105:21"},"nativeSrc":"63832:105:21","nodeType":"YulExpressionStatement","src":"63832:105:21"}]},"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"63674:269:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"63727:4:21","nodeType":"YulTypedName","src":"63727:4:21","type":""},{"name":"offset","nativeSrc":"63733:6:21","nodeType":"YulTypedName","src":"63733:6:21","type":""},{"name":"value_0","nativeSrc":"63741:7:21","nodeType":"YulTypedName","src":"63741:7:21","type":""}],"src":"63674:269:21"},{"body":{"nativeSrc":"63998:24:21","nodeType":"YulBlock","src":"63998:24:21","statements":[{"nativeSrc":"64008:8:21","nodeType":"YulAssignment","src":"64008:8:21","value":{"kind":"number","nativeSrc":"64015:1:21","nodeType":"YulLiteral","src":"64015:1:21","type":"","value":"0"},"variableNames":[{"name":"ret","nativeSrc":"64008:3:21","nodeType":"YulIdentifier","src":"64008:3:21"}]}]},"name":"zero_value_for_split_t_uint256","nativeSrc":"63949:73:21","nodeType":"YulFunctionDefinition","returnVariables":[{"name":"ret","nativeSrc":"63994:3:21","nodeType":"YulTypedName","src":"63994:3:21","type":""}],"src":"63949:73:21"},{"body":{"nativeSrc":"64081:136:21","nodeType":"YulBlock","src":"64081:136:21","statements":[{"nativeSrc":"64091:46:21","nodeType":"YulVariableDeclaration","src":"64091:46:21","value":{"arguments":[],"functionName":{"name":"zero_value_for_split_t_uint256","nativeSrc":"64105:30:21","nodeType":"YulIdentifier","src":"64105:30:21"},"nativeSrc":"64105:32:21","nodeType":"YulFunctionCall","src":"64105:32:21"},"variables":[{"name":"zero_0","nativeSrc":"64095:6:21","nodeType":"YulTypedName","src":"64095:6:21","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"64190:4:21","nodeType":"YulIdentifier","src":"64190:4:21"},{"name":"offset","nativeSrc":"64196:6:21","nodeType":"YulIdentifier","src":"64196:6:21"},{"name":"zero_0","nativeSrc":"64204:6:21","nodeType":"YulIdentifier","src":"64204:6:21"}],"functionName":{"name":"update_storage_value_t_uint256_to_t_uint256","nativeSrc":"64146:43:21","nodeType":"YulIdentifier","src":"64146:43:21"},"nativeSrc":"64146:65:21","nodeType":"YulFunctionCall","src":"64146:65:21"},"nativeSrc":"64146:65:21","nodeType":"YulExpressionStatement","src":"64146:65:21"}]},"name":"storage_set_to_zero_t_uint256","nativeSrc":"64028:189:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"64067:4:21","nodeType":"YulTypedName","src":"64067:4:21","type":""},{"name":"offset","nativeSrc":"64073:6:21","nodeType":"YulTypedName","src":"64073:6:21","type":""}],"src":"64028:189:21"},{"body":{"nativeSrc":"64273:136:21","nodeType":"YulBlock","src":"64273:136:21","statements":[{"body":{"nativeSrc":"64340:63:21","nodeType":"YulBlock","src":"64340:63:21","statements":[{"expression":{"arguments":[{"name":"start","nativeSrc":"64384:5:21","nodeType":"YulIdentifier","src":"64384:5:21"},{"kind":"number","nativeSrc":"64391:1:21","nodeType":"YulLiteral","src":"64391:1:21","type":"","value":"0"}],"functionName":{"name":"storage_set_to_zero_t_uint256","nativeSrc":"64354:29:21","nodeType":"YulIdentifier","src":"64354:29:21"},"nativeSrc":"64354:39:21","nodeType":"YulFunctionCall","src":"64354:39:21"},"nativeSrc":"64354:39:21","nodeType":"YulExpressionStatement","src":"64354:39:21"}]},"condition":{"arguments":[{"name":"start","nativeSrc":"64293:5:21","nodeType":"YulIdentifier","src":"64293:5:21"},{"name":"end","nativeSrc":"64300:3:21","nodeType":"YulIdentifier","src":"64300:3:21"}],"functionName":{"name":"lt","nativeSrc":"64290:2:21","nodeType":"YulIdentifier","src":"64290:2:21"},"nativeSrc":"64290:14:21","nodeType":"YulFunctionCall","src":"64290:14:21"},"nativeSrc":"64283:120:21","nodeType":"YulForLoop","post":{"nativeSrc":"64305:26:21","nodeType":"YulBlock","src":"64305:26:21","statements":[{"nativeSrc":"64307:22:21","nodeType":"YulAssignment","src":"64307:22:21","value":{"arguments":[{"name":"start","nativeSrc":"64320:5:21","nodeType":"YulIdentifier","src":"64320:5:21"},{"kind":"number","nativeSrc":"64327:1:21","nodeType":"YulLiteral","src":"64327:1:21","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"64316:3:21","nodeType":"YulIdentifier","src":"64316:3:21"},"nativeSrc":"64316:13:21","nodeType":"YulFunctionCall","src":"64316:13:21"},"variableNames":[{"name":"start","nativeSrc":"64307:5:21","nodeType":"YulIdentifier","src":"64307:5:21"}]}]},"pre":{"nativeSrc":"64287:2:21","nodeType":"YulBlock","src":"64287:2:21","statements":[]},"src":"64283:120:21"}]},"name":"clear_storage_range_t_bytes1","nativeSrc":"64223:186:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nativeSrc":"64261:5:21","nodeType":"YulTypedName","src":"64261:5:21","type":""},{"name":"end","nativeSrc":"64268:3:21","nodeType":"YulTypedName","src":"64268:3:21","type":""}],"src":"64223:186:21"},{"body":{"nativeSrc":"64494:464:21","nodeType":"YulBlock","src":"64494:464:21","statements":[{"body":{"nativeSrc":"64520:431:21","nodeType":"YulBlock","src":"64520:431:21","statements":[{"nativeSrc":"64534:54:21","nodeType":"YulVariableDeclaration","src":"64534:54:21","value":{"arguments":[{"name":"array","nativeSrc":"64582:5:21","nodeType":"YulIdentifier","src":"64582:5:21"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"64550:31:21","nodeType":"YulIdentifier","src":"64550:31:21"},"nativeSrc":"64550:38:21","nodeType":"YulFunctionCall","src":"64550:38:21"},"variables":[{"name":"dataArea","nativeSrc":"64538:8:21","nodeType":"YulTypedName","src":"64538:8:21","type":""}]},{"nativeSrc":"64601:63:21","nodeType":"YulVariableDeclaration","src":"64601:63:21","value":{"arguments":[{"name":"dataArea","nativeSrc":"64624:8:21","nodeType":"YulIdentifier","src":"64624:8:21"},{"arguments":[{"name":"startIndex","nativeSrc":"64652:10:21","nodeType":"YulIdentifier","src":"64652:10:21"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"64634:17:21","nodeType":"YulIdentifier","src":"64634:17:21"},"nativeSrc":"64634:29:21","nodeType":"YulFunctionCall","src":"64634:29:21"}],"functionName":{"name":"add","nativeSrc":"64620:3:21","nodeType":"YulIdentifier","src":"64620:3:21"},"nativeSrc":"64620:44:21","nodeType":"YulFunctionCall","src":"64620:44:21"},"variables":[{"name":"deleteStart","nativeSrc":"64605:11:21","nodeType":"YulTypedName","src":"64605:11:21","type":""}]},{"body":{"nativeSrc":"64821:27:21","nodeType":"YulBlock","src":"64821:27:21","statements":[{"nativeSrc":"64823:23:21","nodeType":"YulAssignment","src":"64823:23:21","value":{"name":"dataArea","nativeSrc":"64838:8:21","nodeType":"YulIdentifier","src":"64838:8:21"},"variableNames":[{"name":"deleteStart","nativeSrc":"64823:11:21","nodeType":"YulIdentifier","src":"64823:11:21"}]}]},"condition":{"arguments":[{"name":"startIndex","nativeSrc":"64805:10:21","nodeType":"YulIdentifier","src":"64805:10:21"},{"kind":"number","nativeSrc":"64817:2:21","nodeType":"YulLiteral","src":"64817:2:21","type":"","value":"32"}],"functionName":{"name":"lt","nativeSrc":"64802:2:21","nodeType":"YulIdentifier","src":"64802:2:21"},"nativeSrc":"64802:18:21","nodeType":"YulFunctionCall","src":"64802:18:21"},"nativeSrc":"64799:49:21","nodeType":"YulIf","src":"64799:49:21"},{"expression":{"arguments":[{"name":"deleteStart","nativeSrc":"64890:11:21","nodeType":"YulIdentifier","src":"64890:11:21"},{"arguments":[{"name":"dataArea","nativeSrc":"64907:8:21","nodeType":"YulIdentifier","src":"64907:8:21"},{"arguments":[{"name":"len","nativeSrc":"64935:3:21","nodeType":"YulIdentifier","src":"64935:3:21"}],"functionName":{"name":"divide_by_32_ceil","nativeSrc":"64917:17:21","nodeType":"YulIdentifier","src":"64917:17:21"},"nativeSrc":"64917:22:21","nodeType":"YulFunctionCall","src":"64917:22:21"}],"functionName":{"name":"add","nativeSrc":"64903:3:21","nodeType":"YulIdentifier","src":"64903:3:21"},"nativeSrc":"64903:37:21","nodeType":"YulFunctionCall","src":"64903:37:21"}],"functionName":{"name":"clear_storage_range_t_bytes1","nativeSrc":"64861:28:21","nodeType":"YulIdentifier","src":"64861:28:21"},"nativeSrc":"64861:80:21","nodeType":"YulFunctionCall","src":"64861:80:21"},"nativeSrc":"64861:80:21","nodeType":"YulExpressionStatement","src":"64861:80:21"}]},"condition":{"arguments":[{"name":"len","nativeSrc":"64511:3:21","nodeType":"YulIdentifier","src":"64511:3:21"},{"kind":"number","nativeSrc":"64516:2:21","nodeType":"YulLiteral","src":"64516:2:21","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"64508:2:21","nodeType":"YulIdentifier","src":"64508:2:21"},"nativeSrc":"64508:11:21","nodeType":"YulFunctionCall","src":"64508:11:21"},"nativeSrc":"64505:446:21","nodeType":"YulIf","src":"64505:446:21"}]},"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"64415:543:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nativeSrc":"64470:5:21","nodeType":"YulTypedName","src":"64470:5:21","type":""},{"name":"len","nativeSrc":"64477:3:21","nodeType":"YulTypedName","src":"64477:3:21","type":""},{"name":"startIndex","nativeSrc":"64482:10:21","nodeType":"YulTypedName","src":"64482:10:21","type":""}],"src":"64415:543:21"},{"body":{"nativeSrc":"65027:54:21","nodeType":"YulBlock","src":"65027:54:21","statements":[{"nativeSrc":"65037:37:21","nodeType":"YulAssignment","src":"65037:37:21","value":{"arguments":[{"name":"bits","nativeSrc":"65062:4:21","nodeType":"YulIdentifier","src":"65062:4:21"},{"name":"value","nativeSrc":"65068:5:21","nodeType":"YulIdentifier","src":"65068:5:21"}],"functionName":{"name":"shr","nativeSrc":"65058:3:21","nodeType":"YulIdentifier","src":"65058:3:21"},"nativeSrc":"65058:16:21","nodeType":"YulFunctionCall","src":"65058:16:21"},"variableNames":[{"name":"newValue","nativeSrc":"65037:8:21","nodeType":"YulIdentifier","src":"65037:8:21"}]}]},"name":"shift_right_unsigned_dynamic","nativeSrc":"64964:117:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"bits","nativeSrc":"65002:4:21","nodeType":"YulTypedName","src":"65002:4:21","type":""},{"name":"value","nativeSrc":"65008:5:21","nodeType":"YulTypedName","src":"65008:5:21","type":""}],"returnVariables":[{"name":"newValue","nativeSrc":"65018:8:21","nodeType":"YulTypedName","src":"65018:8:21","type":""}],"src":"64964:117:21"},{"body":{"nativeSrc":"65138:118:21","nodeType":"YulBlock","src":"65138:118:21","statements":[{"nativeSrc":"65148:68:21","nodeType":"YulVariableDeclaration","src":"65148:68:21","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nativeSrc":"65197:1:21","nodeType":"YulLiteral","src":"65197:1:21","type":"","value":"8"},{"name":"bytes","nativeSrc":"65200:5:21","nodeType":"YulIdentifier","src":"65200:5:21"}],"functionName":{"name":"mul","nativeSrc":"65193:3:21","nodeType":"YulIdentifier","src":"65193:3:21"},"nativeSrc":"65193:13:21","nodeType":"YulFunctionCall","src":"65193:13:21"},{"arguments":[{"kind":"number","nativeSrc":"65212:1:21","nodeType":"YulLiteral","src":"65212:1:21","type":"","value":"0"}],"functionName":{"name":"not","nativeSrc":"65208:3:21","nodeType":"YulIdentifier","src":"65208:3:21"},"nativeSrc":"65208:6:21","nodeType":"YulFunctionCall","src":"65208:6:21"}],"functionName":{"name":"shift_right_unsigned_dynamic","nativeSrc":"65164:28:21","nodeType":"YulIdentifier","src":"65164:28:21"},"nativeSrc":"65164:51:21","nodeType":"YulFunctionCall","src":"65164:51:21"}],"functionName":{"name":"not","nativeSrc":"65160:3:21","nodeType":"YulIdentifier","src":"65160:3:21"},"nativeSrc":"65160:56:21","nodeType":"YulFunctionCall","src":"65160:56:21"},"variables":[{"name":"mask","nativeSrc":"65152:4:21","nodeType":"YulTypedName","src":"65152:4:21","type":""}]},{"nativeSrc":"65225:25:21","nodeType":"YulAssignment","src":"65225:25:21","value":{"arguments":[{"name":"data","nativeSrc":"65239:4:21","nodeType":"YulIdentifier","src":"65239:4:21"},{"name":"mask","nativeSrc":"65245:4:21","nodeType":"YulIdentifier","src":"65245:4:21"}],"functionName":{"name":"and","nativeSrc":"65235:3:21","nodeType":"YulIdentifier","src":"65235:3:21"},"nativeSrc":"65235:15:21","nodeType":"YulFunctionCall","src":"65235:15:21"},"variableNames":[{"name":"result","nativeSrc":"65225:6:21","nodeType":"YulIdentifier","src":"65225:6:21"}]}]},"name":"mask_bytes_dynamic","nativeSrc":"65087:169:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"65115:4:21","nodeType":"YulTypedName","src":"65115:4:21","type":""},{"name":"bytes","nativeSrc":"65121:5:21","nodeType":"YulTypedName","src":"65121:5:21","type":""}],"returnVariables":[{"name":"result","nativeSrc":"65131:6:21","nodeType":"YulTypedName","src":"65131:6:21","type":""}],"src":"65087:169:21"},{"body":{"nativeSrc":"65342:214:21","nodeType":"YulBlock","src":"65342:214:21","statements":[{"nativeSrc":"65475:37:21","nodeType":"YulAssignment","src":"65475:37:21","value":{"arguments":[{"name":"data","nativeSrc":"65502:4:21","nodeType":"YulIdentifier","src":"65502:4:21"},{"name":"len","nativeSrc":"65508:3:21","nodeType":"YulIdentifier","src":"65508:3:21"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"65483:18:21","nodeType":"YulIdentifier","src":"65483:18:21"},"nativeSrc":"65483:29:21","nodeType":"YulFunctionCall","src":"65483:29:21"},"variableNames":[{"name":"data","nativeSrc":"65475:4:21","nodeType":"YulIdentifier","src":"65475:4:21"}]},{"nativeSrc":"65521:29:21","nodeType":"YulAssignment","src":"65521:29:21","value":{"arguments":[{"name":"data","nativeSrc":"65532:4:21","nodeType":"YulIdentifier","src":"65532:4:21"},{"arguments":[{"kind":"number","nativeSrc":"65542:1:21","nodeType":"YulLiteral","src":"65542:1:21","type":"","value":"2"},{"name":"len","nativeSrc":"65545:3:21","nodeType":"YulIdentifier","src":"65545:3:21"}],"functionName":{"name":"mul","nativeSrc":"65538:3:21","nodeType":"YulIdentifier","src":"65538:3:21"},"nativeSrc":"65538:11:21","nodeType":"YulFunctionCall","src":"65538:11:21"}],"functionName":{"name":"or","nativeSrc":"65529:2:21","nodeType":"YulIdentifier","src":"65529:2:21"},"nativeSrc":"65529:21:21","nodeType":"YulFunctionCall","src":"65529:21:21"},"variableNames":[{"name":"used","nativeSrc":"65521:4:21","nodeType":"YulIdentifier","src":"65521:4:21"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"65261:295:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nativeSrc":"65323:4:21","nodeType":"YulTypedName","src":"65323:4:21","type":""},{"name":"len","nativeSrc":"65329:3:21","nodeType":"YulTypedName","src":"65329:3:21","type":""}],"returnVariables":[{"name":"used","nativeSrc":"65337:4:21","nodeType":"YulTypedName","src":"65337:4:21","type":""}],"src":"65261:295:21"},{"body":{"nativeSrc":"65653:1303:21","nodeType":"YulBlock","src":"65653:1303:21","statements":[{"nativeSrc":"65664:51:21","nodeType":"YulVariableDeclaration","src":"65664:51:21","value":{"arguments":[{"name":"src","nativeSrc":"65711:3:21","nodeType":"YulIdentifier","src":"65711:3:21"}],"functionName":{"name":"array_length_t_string_memory_ptr","nativeSrc":"65678:32:21","nodeType":"YulIdentifier","src":"65678:32:21"},"nativeSrc":"65678:37:21","nodeType":"YulFunctionCall","src":"65678:37:21"},"variables":[{"name":"newLen","nativeSrc":"65668:6:21","nodeType":"YulTypedName","src":"65668:6:21","type":""}]},{"body":{"nativeSrc":"65800:22:21","nodeType":"YulBlock","src":"65800:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nativeSrc":"65802:16:21","nodeType":"YulIdentifier","src":"65802:16:21"},"nativeSrc":"65802:18:21","nodeType":"YulFunctionCall","src":"65802:18:21"},"nativeSrc":"65802:18:21","nodeType":"YulExpressionStatement","src":"65802:18:21"}]},"condition":{"arguments":[{"name":"newLen","nativeSrc":"65772:6:21","nodeType":"YulIdentifier","src":"65772:6:21"},{"kind":"number","nativeSrc":"65780:18:21","nodeType":"YulLiteral","src":"65780:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nativeSrc":"65769:2:21","nodeType":"YulIdentifier","src":"65769:2:21"},"nativeSrc":"65769:30:21","nodeType":"YulFunctionCall","src":"65769:30:21"},"nativeSrc":"65766:56:21","nodeType":"YulIf","src":"65766:56:21"},{"nativeSrc":"65832:52:21","nodeType":"YulVariableDeclaration","src":"65832:52:21","value":{"arguments":[{"arguments":[{"name":"slot","nativeSrc":"65878:4:21","nodeType":"YulIdentifier","src":"65878:4:21"}],"functionName":{"name":"sload","nativeSrc":"65872:5:21","nodeType":"YulIdentifier","src":"65872:5:21"},"nativeSrc":"65872:11:21","nodeType":"YulFunctionCall","src":"65872:11:21"}],"functionName":{"name":"extract_byte_array_length","nativeSrc":"65846:25:21","nodeType":"YulIdentifier","src":"65846:25:21"},"nativeSrc":"65846:38:21","nodeType":"YulFunctionCall","src":"65846:38:21"},"variables":[{"name":"oldLen","nativeSrc":"65836:6:21","nodeType":"YulTypedName","src":"65836:6:21","type":""}]},{"expression":{"arguments":[{"name":"slot","nativeSrc":"65977:4:21","nodeType":"YulIdentifier","src":"65977:4:21"},{"name":"oldLen","nativeSrc":"65983:6:21","nodeType":"YulIdentifier","src":"65983:6:21"},{"name":"newLen","nativeSrc":"65991:6:21","nodeType":"YulIdentifier","src":"65991:6:21"}],"functionName":{"name":"clean_up_bytearray_end_slots_t_string_storage","nativeSrc":"65931:45:21","nodeType":"YulIdentifier","src":"65931:45:21"},"nativeSrc":"65931:67:21","nodeType":"YulFunctionCall","src":"65931:67:21"},"nativeSrc":"65931:67:21","nodeType":"YulExpressionStatement","src":"65931:67:21"},{"nativeSrc":"66008:18:21","nodeType":"YulVariableDeclaration","src":"66008:18:21","value":{"kind":"number","nativeSrc":"66025:1:21","nodeType":"YulLiteral","src":"66025:1:21","type":"","value":"0"},"variables":[{"name":"srcOffset","nativeSrc":"66012:9:21","nodeType":"YulTypedName","src":"66012:9:21","type":""}]},{"nativeSrc":"66036:17:21","nodeType":"YulAssignment","src":"66036:17:21","value":{"kind":"number","nativeSrc":"66049:4:21","nodeType":"YulLiteral","src":"66049:4:21","type":"","value":"0x20"},"variableNames":[{"name":"srcOffset","nativeSrc":"66036:9:21","nodeType":"YulIdentifier","src":"66036:9:21"}]},{"cases":[{"body":{"nativeSrc":"66100:611:21","nodeType":"YulBlock","src":"66100:611:21","statements":[{"nativeSrc":"66114:37:21","nodeType":"YulVariableDeclaration","src":"66114:37:21","value":{"arguments":[{"name":"newLen","nativeSrc":"66133:6:21","nodeType":"YulIdentifier","src":"66133:6:21"},{"arguments":[{"kind":"number","nativeSrc":"66145:4:21","nodeType":"YulLiteral","src":"66145:4:21","type":"","value":"0x1f"}],"functionName":{"name":"not","nativeSrc":"66141:3:21","nodeType":"YulIdentifier","src":"66141:3:21"},"nativeSrc":"66141:9:21","nodeType":"YulFunctionCall","src":"66141:9:21"}],"functionName":{"name":"and","nativeSrc":"66129:3:21","nodeType":"YulIdentifier","src":"66129:3:21"},"nativeSrc":"66129:22:21","nodeType":"YulFunctionCall","src":"66129:22:21"},"variables":[{"name":"loopEnd","nativeSrc":"66118:7:21","nodeType":"YulTypedName","src":"66118:7:21","type":""}]},{"nativeSrc":"66165:51:21","nodeType":"YulVariableDeclaration","src":"66165:51:21","value":{"arguments":[{"name":"slot","nativeSrc":"66211:4:21","nodeType":"YulIdentifier","src":"66211:4:21"}],"functionName":{"name":"array_dataslot_t_string_storage","nativeSrc":"66179:31:21","nodeType":"YulIdentifier","src":"66179:31:21"},"nativeSrc":"66179:37:21","nodeType":"YulFunctionCall","src":"66179:37:21"},"variables":[{"name":"dstPtr","nativeSrc":"66169:6:21","nodeType":"YulTypedName","src":"66169:6:21","type":""}]},{"nativeSrc":"66229:10:21","nodeType":"YulVariableDeclaration","src":"66229:10:21","value":{"kind":"number","nativeSrc":"66238:1:21","nodeType":"YulLiteral","src":"66238:1:21","type":"","value":"0"},"variables":[{"name":"i","nativeSrc":"66233:1:21","nodeType":"YulTypedName","src":"66233:1:21","type":""}]},{"body":{"nativeSrc":"66297:163:21","nodeType":"YulBlock","src":"66297:163:21","statements":[{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"66322:6:21","nodeType":"YulIdentifier","src":"66322:6:21"},{"arguments":[{"arguments":[{"name":"src","nativeSrc":"66340:3:21","nodeType":"YulIdentifier","src":"66340:3:21"},{"name":"srcOffset","nativeSrc":"66345:9:21","nodeType":"YulIdentifier","src":"66345:9:21"}],"functionName":{"name":"add","nativeSrc":"66336:3:21","nodeType":"YulIdentifier","src":"66336:3:21"},"nativeSrc":"66336:19:21","nodeType":"YulFunctionCall","src":"66336:19:21"}],"functionName":{"name":"mload","nativeSrc":"66330:5:21","nodeType":"YulIdentifier","src":"66330:5:21"},"nativeSrc":"66330:26:21","nodeType":"YulFunctionCall","src":"66330:26:21"}],"functionName":{"name":"sstore","nativeSrc":"66315:6:21","nodeType":"YulIdentifier","src":"66315:6:21"},"nativeSrc":"66315:42:21","nodeType":"YulFunctionCall","src":"66315:42:21"},"nativeSrc":"66315:42:21","nodeType":"YulExpressionStatement","src":"66315:42:21"},{"nativeSrc":"66374:24:21","nodeType":"YulAssignment","src":"66374:24:21","value":{"arguments":[{"name":"dstPtr","nativeSrc":"66388:6:21","nodeType":"YulIdentifier","src":"66388:6:21"},{"kind":"number","nativeSrc":"66396:1:21","nodeType":"YulLiteral","src":"66396:1:21","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"66384:3:21","nodeType":"YulIdentifier","src":"66384:3:21"},"nativeSrc":"66384:14:21","nodeType":"YulFunctionCall","src":"66384:14:21"},"variableNames":[{"name":"dstPtr","nativeSrc":"66374:6:21","nodeType":"YulIdentifier","src":"66374:6:21"}]},{"nativeSrc":"66415:31:21","nodeType":"YulAssignment","src":"66415:31:21","value":{"arguments":[{"name":"srcOffset","nativeSrc":"66432:9:21","nodeType":"YulIdentifier","src":"66432:9:21"},{"kind":"number","nativeSrc":"66443:2:21","nodeType":"YulLiteral","src":"66443:2:21","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"66428:3:21","nodeType":"YulIdentifier","src":"66428:3:21"},"nativeSrc":"66428:18:21","nodeType":"YulFunctionCall","src":"66428:18:21"},"variableNames":[{"name":"srcOffset","nativeSrc":"66415:9:21","nodeType":"YulIdentifier","src":"66415:9:21"}]}]},"condition":{"arguments":[{"name":"i","nativeSrc":"66263:1:21","nodeType":"YulIdentifier","src":"66263:1:21"},{"name":"loopEnd","nativeSrc":"66266:7:21","nodeType":"YulIdentifier","src":"66266:7:21"}],"functionName":{"name":"lt","nativeSrc":"66260:2:21","nodeType":"YulIdentifier","src":"66260:2:21"},"nativeSrc":"66260:14:21","nodeType":"YulFunctionCall","src":"66260:14:21"},"nativeSrc":"66252:208:21","nodeType":"YulForLoop","post":{"nativeSrc":"66275:21:21","nodeType":"YulBlock","src":"66275:21:21","statements":[{"nativeSrc":"66277:17:21","nodeType":"YulAssignment","src":"66277:17:21","value":{"arguments":[{"name":"i","nativeSrc":"66286:1:21","nodeType":"YulIdentifier","src":"66286:1:21"},{"kind":"number","nativeSrc":"66289:4:21","nodeType":"YulLiteral","src":"66289:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"66282:3:21","nodeType":"YulIdentifier","src":"66282:3:21"},"nativeSrc":"66282:12:21","nodeType":"YulFunctionCall","src":"66282:12:21"},"variableNames":[{"name":"i","nativeSrc":"66277:1:21","nodeType":"YulIdentifier","src":"66277:1:21"}]}]},"pre":{"nativeSrc":"66256:3:21","nodeType":"YulBlock","src":"66256:3:21","statements":[]},"src":"66252:208:21"},{"body":{"nativeSrc":"66496:156:21","nodeType":"YulBlock","src":"66496:156:21","statements":[{"nativeSrc":"66514:43:21","nodeType":"YulVariableDeclaration","src":"66514:43:21","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"66541:3:21","nodeType":"YulIdentifier","src":"66541:3:21"},{"name":"srcOffset","nativeSrc":"66546:9:21","nodeType":"YulIdentifier","src":"66546:9:21"}],"functionName":{"name":"add","nativeSrc":"66537:3:21","nodeType":"YulIdentifier","src":"66537:3:21"},"nativeSrc":"66537:19:21","nodeType":"YulFunctionCall","src":"66537:19:21"}],"functionName":{"name":"mload","nativeSrc":"66531:5:21","nodeType":"YulIdentifier","src":"66531:5:21"},"nativeSrc":"66531:26:21","nodeType":"YulFunctionCall","src":"66531:26:21"},"variables":[{"name":"lastValue","nativeSrc":"66518:9:21","nodeType":"YulTypedName","src":"66518:9:21","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nativeSrc":"66581:6:21","nodeType":"YulIdentifier","src":"66581:6:21"},{"arguments":[{"name":"lastValue","nativeSrc":"66608:9:21","nodeType":"YulIdentifier","src":"66608:9:21"},{"arguments":[{"name":"newLen","nativeSrc":"66623:6:21","nodeType":"YulIdentifier","src":"66623:6:21"},{"kind":"number","nativeSrc":"66631:4:21","nodeType":"YulLiteral","src":"66631:4:21","type":"","value":"0x1f"}],"functionName":{"name":"and","nativeSrc":"66619:3:21","nodeType":"YulIdentifier","src":"66619:3:21"},"nativeSrc":"66619:17:21","nodeType":"YulFunctionCall","src":"66619:17:21"}],"functionName":{"name":"mask_bytes_dynamic","nativeSrc":"66589:18:21","nodeType":"YulIdentifier","src":"66589:18:21"},"nativeSrc":"66589:48:21","nodeType":"YulFunctionCall","src":"66589:48:21"}],"functionName":{"name":"sstore","nativeSrc":"66574:6:21","nodeType":"YulIdentifier","src":"66574:6:21"},"nativeSrc":"66574:64:21","nodeType":"YulFunctionCall","src":"66574:64:21"},"nativeSrc":"66574:64:21","nodeType":"YulExpressionStatement","src":"66574:64:21"}]},"condition":{"arguments":[{"name":"loopEnd","nativeSrc":"66479:7:21","nodeType":"YulIdentifier","src":"66479:7:21"},{"name":"newLen","nativeSrc":"66488:6:21","nodeType":"YulIdentifier","src":"66488:6:21"}],"functionName":{"name":"lt","nativeSrc":"66476:2:21","nodeType":"YulIdentifier","src":"66476:2:21"},"nativeSrc":"66476:19:21","nodeType":"YulFunctionCall","src":"66476:19:21"},"nativeSrc":"66473:179:21","nodeType":"YulIf","src":"66473:179:21"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"66672:4:21","nodeType":"YulIdentifier","src":"66672:4:21"},{"arguments":[{"arguments":[{"name":"newLen","nativeSrc":"66686:6:21","nodeType":"YulIdentifier","src":"66686:6:21"},{"kind":"number","nativeSrc":"66694:1:21","nodeType":"YulLiteral","src":"66694:1:21","type":"","value":"2"}],"functionName":{"name":"mul","nativeSrc":"66682:3:21","nodeType":"YulIdentifier","src":"66682:3:21"},"nativeSrc":"66682:14:21","nodeType":"YulFunctionCall","src":"66682:14:21"},{"kind":"number","nativeSrc":"66698:1:21","nodeType":"YulLiteral","src":"66698:1:21","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"66678:3:21","nodeType":"YulIdentifier","src":"66678:3:21"},"nativeSrc":"66678:22:21","nodeType":"YulFunctionCall","src":"66678:22:21"}],"functionName":{"name":"sstore","nativeSrc":"66665:6:21","nodeType":"YulIdentifier","src":"66665:6:21"},"nativeSrc":"66665:36:21","nodeType":"YulFunctionCall","src":"66665:36:21"},"nativeSrc":"66665:36:21","nodeType":"YulExpressionStatement","src":"66665:36:21"}]},"nativeSrc":"66093:618:21","nodeType":"YulCase","src":"66093:618:21","value":{"kind":"number","nativeSrc":"66098:1:21","nodeType":"YulLiteral","src":"66098:1:21","type":"","value":"1"}},{"body":{"nativeSrc":"66728:222:21","nodeType":"YulBlock","src":"66728:222:21","statements":[{"nativeSrc":"66742:14:21","nodeType":"YulVariableDeclaration","src":"66742:14:21","value":{"kind":"number","nativeSrc":"66755:1:21","nodeType":"YulLiteral","src":"66755:1:21","type":"","value":"0"},"variables":[{"name":"value","nativeSrc":"66746:5:21","nodeType":"YulTypedName","src":"66746:5:21","type":""}]},{"body":{"nativeSrc":"66779:67:21","nodeType":"YulBlock","src":"66779:67:21","statements":[{"nativeSrc":"66797:35:21","nodeType":"YulAssignment","src":"66797:35:21","value":{"arguments":[{"arguments":[{"name":"src","nativeSrc":"66816:3:21","nodeType":"YulIdentifier","src":"66816:3:21"},{"name":"srcOffset","nativeSrc":"66821:9:21","nodeType":"YulIdentifier","src":"66821:9:21"}],"functionName":{"name":"add","nativeSrc":"66812:3:21","nodeType":"YulIdentifier","src":"66812:3:21"},"nativeSrc":"66812:19:21","nodeType":"YulFunctionCall","src":"66812:19:21"}],"functionName":{"name":"mload","nativeSrc":"66806:5:21","nodeType":"YulIdentifier","src":"66806:5:21"},"nativeSrc":"66806:26:21","nodeType":"YulFunctionCall","src":"66806:26:21"},"variableNames":[{"name":"value","nativeSrc":"66797:5:21","nodeType":"YulIdentifier","src":"66797:5:21"}]}]},"condition":{"name":"newLen","nativeSrc":"66772:6:21","nodeType":"YulIdentifier","src":"66772:6:21"},"nativeSrc":"66769:77:21","nodeType":"YulIf","src":"66769:77:21"},{"expression":{"arguments":[{"name":"slot","nativeSrc":"66866:4:21","nodeType":"YulIdentifier","src":"66866:4:21"},{"arguments":[{"name":"value","nativeSrc":"66925:5:21","nodeType":"YulIdentifier","src":"66925:5:21"},{"name":"newLen","nativeSrc":"66932:6:21","nodeType":"YulIdentifier","src":"66932:6:21"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nativeSrc":"66872:52:21","nodeType":"YulIdentifier","src":"66872:52:21"},"nativeSrc":"66872:67:21","nodeType":"YulFunctionCall","src":"66872:67:21"}],"functionName":{"name":"sstore","nativeSrc":"66859:6:21","nodeType":"YulIdentifier","src":"66859:6:21"},"nativeSrc":"66859:81:21","nodeType":"YulFunctionCall","src":"66859:81:21"},"nativeSrc":"66859:81:21","nodeType":"YulExpressionStatement","src":"66859:81:21"}]},"nativeSrc":"66720:230:21","nodeType":"YulCase","src":"66720:230:21","value":"default"}],"expression":{"arguments":[{"name":"newLen","nativeSrc":"66073:6:21","nodeType":"YulIdentifier","src":"66073:6:21"},{"kind":"number","nativeSrc":"66081:2:21","nodeType":"YulLiteral","src":"66081:2:21","type":"","value":"31"}],"functionName":{"name":"gt","nativeSrc":"66070:2:21","nodeType":"YulIdentifier","src":"66070:2:21"},"nativeSrc":"66070:14:21","nodeType":"YulFunctionCall","src":"66070:14:21"},"nativeSrc":"66063:887:21","nodeType":"YulSwitch","src":"66063:887:21"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nativeSrc":"65561:1395:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nativeSrc":"65642:4:21","nodeType":"YulTypedName","src":"65642:4:21","type":""},{"name":"src","nativeSrc":"65648:3:21","nodeType":"YulTypedName","src":"65648:3:21","type":""}],"src":"65561:1395:21"},{"body":{"nativeSrc":"67005:190:21","nodeType":"YulBlock","src":"67005:190:21","statements":[{"nativeSrc":"67015:33:21","nodeType":"YulAssignment","src":"67015:33:21","value":{"arguments":[{"name":"value","nativeSrc":"67042:5:21","nodeType":"YulIdentifier","src":"67042:5:21"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"67024:17:21","nodeType":"YulIdentifier","src":"67024:17:21"},"nativeSrc":"67024:24:21","nodeType":"YulFunctionCall","src":"67024:24:21"},"variableNames":[{"name":"value","nativeSrc":"67015:5:21","nodeType":"YulIdentifier","src":"67015:5:21"}]},{"body":{"nativeSrc":"67138:22:21","nodeType":"YulBlock","src":"67138:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"67140:16:21","nodeType":"YulIdentifier","src":"67140:16:21"},"nativeSrc":"67140:18:21","nodeType":"YulFunctionCall","src":"67140:18:21"},"nativeSrc":"67140:18:21","nodeType":"YulExpressionStatement","src":"67140:18:21"}]},"condition":{"arguments":[{"name":"value","nativeSrc":"67063:5:21","nodeType":"YulIdentifier","src":"67063:5:21"},{"kind":"number","nativeSrc":"67070:66:21","nodeType":"YulLiteral","src":"67070:66:21","type":"","value":"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"eq","nativeSrc":"67060:2:21","nodeType":"YulIdentifier","src":"67060:2:21"},"nativeSrc":"67060:77:21","nodeType":"YulFunctionCall","src":"67060:77:21"},"nativeSrc":"67057:103:21","nodeType":"YulIf","src":"67057:103:21"},{"nativeSrc":"67169:20:21","nodeType":"YulAssignment","src":"67169:20:21","value":{"arguments":[{"name":"value","nativeSrc":"67180:5:21","nodeType":"YulIdentifier","src":"67180:5:21"},{"kind":"number","nativeSrc":"67187:1:21","nodeType":"YulLiteral","src":"67187:1:21","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"67176:3:21","nodeType":"YulIdentifier","src":"67176:3:21"},"nativeSrc":"67176:13:21","nodeType":"YulFunctionCall","src":"67176:13:21"},"variableNames":[{"name":"ret","nativeSrc":"67169:3:21","nodeType":"YulIdentifier","src":"67169:3:21"}]}]},"name":"increment_t_uint256","nativeSrc":"66962:233:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"66991:5:21","nodeType":"YulTypedName","src":"66991:5:21","type":""}],"returnVariables":[{"name":"ret","nativeSrc":"67001:3:21","nodeType":"YulTypedName","src":"67001:3:21","type":""}],"src":"66962:233:21"},{"body":{"nativeSrc":"67307:57:21","nodeType":"YulBlock","src":"67307:57:21","statements":[{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nativeSrc":"67329:6:21","nodeType":"YulIdentifier","src":"67329:6:21"},{"kind":"number","nativeSrc":"67337:1:21","nodeType":"YulLiteral","src":"67337:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"67325:3:21","nodeType":"YulIdentifier","src":"67325:3:21"},"nativeSrc":"67325:14:21","nodeType":"YulFunctionCall","src":"67325:14:21"},{"hexValue":"4f7574206f6620426f756e6473","kind":"string","nativeSrc":"67341:15:21","nodeType":"YulLiteral","src":"67341:15:21","type":"","value":"Out of Bounds"}],"functionName":{"name":"mstore","nativeSrc":"67318:6:21","nodeType":"YulIdentifier","src":"67318:6:21"},"nativeSrc":"67318:39:21","nodeType":"YulFunctionCall","src":"67318:39:21"},"nativeSrc":"67318:39:21","nodeType":"YulExpressionStatement","src":"67318:39:21"}]},"name":"store_literal_in_memory_f6f291dd7b3716f60112b675ea3e6f8513a7a585e9132e9f82751d445f328d0b","nativeSrc":"67201:163:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"memPtr","nativeSrc":"67299:6:21","nodeType":"YulTypedName","src":"67299:6:21","type":""}],"src":"67201:163:21"},{"body":{"nativeSrc":"67516:220:21","nodeType":"YulBlock","src":"67516:220:21","statements":[{"nativeSrc":"67526:74:21","nodeType":"YulAssignment","src":"67526:74:21","value":{"arguments":[{"name":"pos","nativeSrc":"67592:3:21","nodeType":"YulIdentifier","src":"67592:3:21"},{"kind":"number","nativeSrc":"67597:2:21","nodeType":"YulLiteral","src":"67597:2:21","type":"","value":"13"}],"functionName":{"name":"array_storeLengthForEncoding_t_string_memory_ptr_fromStack","nativeSrc":"67533:58:21","nodeType":"YulIdentifier","src":"67533:58:21"},"nativeSrc":"67533:67:21","nodeType":"YulFunctionCall","src":"67533:67:21"},"variableNames":[{"name":"pos","nativeSrc":"67526:3:21","nodeType":"YulIdentifier","src":"67526:3:21"}]},{"expression":{"arguments":[{"name":"pos","nativeSrc":"67698:3:21","nodeType":"YulIdentifier","src":"67698:3:21"}],"functionName":{"name":"store_literal_in_memory_f6f291dd7b3716f60112b675ea3e6f8513a7a585e9132e9f82751d445f328d0b","nativeSrc":"67609:88:21","nodeType":"YulIdentifier","src":"67609:88:21"},"nativeSrc":"67609:93:21","nodeType":"YulFunctionCall","src":"67609:93:21"},"nativeSrc":"67609:93:21","nodeType":"YulExpressionStatement","src":"67609:93:21"},{"nativeSrc":"67711:19:21","nodeType":"YulAssignment","src":"67711:19:21","value":{"arguments":[{"name":"pos","nativeSrc":"67722:3:21","nodeType":"YulIdentifier","src":"67722:3:21"},{"kind":"number","nativeSrc":"67727:2:21","nodeType":"YulLiteral","src":"67727:2:21","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"67718:3:21","nodeType":"YulIdentifier","src":"67718:3:21"},"nativeSrc":"67718:12:21","nodeType":"YulFunctionCall","src":"67718:12:21"},"variableNames":[{"name":"end","nativeSrc":"67711:3:21","nodeType":"YulIdentifier","src":"67711:3:21"}]}]},"name":"abi_encode_t_stringliteral_f6f291dd7b3716f60112b675ea3e6f8513a7a585e9132e9f82751d445f328d0b_to_t_string_memory_ptr_fromStack","nativeSrc":"67370:366:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nativeSrc":"67504:3:21","nodeType":"YulTypedName","src":"67504:3:21","type":""}],"returnVariables":[{"name":"end","nativeSrc":"67512:3:21","nodeType":"YulTypedName","src":"67512:3:21","type":""}],"src":"67370:366:21"},{"body":{"nativeSrc":"67795:52:21","nodeType":"YulBlock","src":"67795:52:21","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"67812:3:21","nodeType":"YulIdentifier","src":"67812:3:21"},{"arguments":[{"name":"value","nativeSrc":"67834:5:21","nodeType":"YulIdentifier","src":"67834:5:21"}],"functionName":{"name":"cleanup_t_int256","nativeSrc":"67817:16:21","nodeType":"YulIdentifier","src":"67817:16:21"},"nativeSrc":"67817:23:21","nodeType":"YulFunctionCall","src":"67817:23:21"}],"functionName":{"name":"mstore","nativeSrc":"67805:6:21","nodeType":"YulIdentifier","src":"67805:6:21"},"nativeSrc":"67805:36:21","nodeType":"YulFunctionCall","src":"67805:36:21"},"nativeSrc":"67805:36:21","nodeType":"YulExpressionStatement","src":"67805:36:21"}]},"name":"abi_encode_t_int256_to_t_int256","nativeSrc":"67742:105:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"67783:5:21","nodeType":"YulTypedName","src":"67783:5:21","type":""},{"name":"pos","nativeSrc":"67790:3:21","nodeType":"YulTypedName","src":"67790:3:21","type":""}],"src":"67742:105:21"},{"body":{"nativeSrc":"68001:387:21","nodeType":"YulBlock","src":"68001:387:21","statements":[{"nativeSrc":"68011:26:21","nodeType":"YulVariableDeclaration","src":"68011:26:21","value":{"arguments":[{"name":"pos","nativeSrc":"68027:3:21","nodeType":"YulIdentifier","src":"68027:3:21"},{"kind":"number","nativeSrc":"68032:4:21","nodeType":"YulLiteral","src":"68032:4:21","type":"","value":"0x40"}],"functionName":{"name":"add","nativeSrc":"68023:3:21","nodeType":"YulIdentifier","src":"68023:3:21"},"nativeSrc":"68023:14:21","nodeType":"YulFunctionCall","src":"68023:14:21"},"variables":[{"name":"tail","nativeSrc":"68015:4:21","nodeType":"YulTypedName","src":"68015:4:21","type":""}]},{"nativeSrc":"68047:163:21","nodeType":"YulBlock","src":"68047:163:21","statements":[{"nativeSrc":"68083:43:21","nodeType":"YulVariableDeclaration","src":"68083:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"68113:5:21","nodeType":"YulIdentifier","src":"68113:5:21"},{"kind":"number","nativeSrc":"68120:4:21","nodeType":"YulLiteral","src":"68120:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"68109:3:21","nodeType":"YulIdentifier","src":"68109:3:21"},"nativeSrc":"68109:16:21","nodeType":"YulFunctionCall","src":"68109:16:21"}],"functionName":{"name":"mload","nativeSrc":"68103:5:21","nodeType":"YulIdentifier","src":"68103:5:21"},"nativeSrc":"68103:23:21","nodeType":"YulFunctionCall","src":"68103:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"68087:12:21","nodeType":"YulTypedName","src":"68087:12:21","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"68171:12:21","nodeType":"YulIdentifier","src":"68171:12:21"},{"arguments":[{"name":"pos","nativeSrc":"68189:3:21","nodeType":"YulIdentifier","src":"68189:3:21"},{"kind":"number","nativeSrc":"68194:4:21","nodeType":"YulLiteral","src":"68194:4:21","type":"","value":"0x00"}],"functionName":{"name":"add","nativeSrc":"68185:3:21","nodeType":"YulIdentifier","src":"68185:3:21"},"nativeSrc":"68185:14:21","nodeType":"YulFunctionCall","src":"68185:14:21"}],"functionName":{"name":"abi_encode_t_int256_to_t_int256","nativeSrc":"68139:31:21","nodeType":"YulIdentifier","src":"68139:31:21"},"nativeSrc":"68139:61:21","nodeType":"YulFunctionCall","src":"68139:61:21"},"nativeSrc":"68139:61:21","nodeType":"YulExpressionStatement","src":"68139:61:21"}]},{"nativeSrc":"68220:161:21","nodeType":"YulBlock","src":"68220:161:21","statements":[{"nativeSrc":"68254:43:21","nodeType":"YulVariableDeclaration","src":"68254:43:21","value":{"arguments":[{"arguments":[{"name":"value","nativeSrc":"68284:5:21","nodeType":"YulIdentifier","src":"68284:5:21"},{"kind":"number","nativeSrc":"68291:4:21","nodeType":"YulLiteral","src":"68291:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"68280:3:21","nodeType":"YulIdentifier","src":"68280:3:21"},"nativeSrc":"68280:16:21","nodeType":"YulFunctionCall","src":"68280:16:21"}],"functionName":{"name":"mload","nativeSrc":"68274:5:21","nodeType":"YulIdentifier","src":"68274:5:21"},"nativeSrc":"68274:23:21","nodeType":"YulFunctionCall","src":"68274:23:21"},"variables":[{"name":"memberValue0","nativeSrc":"68258:12:21","nodeType":"YulTypedName","src":"68258:12:21","type":""}]},{"expression":{"arguments":[{"name":"memberValue0","nativeSrc":"68342:12:21","nodeType":"YulIdentifier","src":"68342:12:21"},{"arguments":[{"name":"pos","nativeSrc":"68360:3:21","nodeType":"YulIdentifier","src":"68360:3:21"},{"kind":"number","nativeSrc":"68365:4:21","nodeType":"YulLiteral","src":"68365:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nativeSrc":"68356:3:21","nodeType":"YulIdentifier","src":"68356:3:21"},"nativeSrc":"68356:14:21","nodeType":"YulFunctionCall","src":"68356:14:21"}],"functionName":{"name":"abi_encode_t_int256_to_t_int256","nativeSrc":"68310:31:21","nodeType":"YulIdentifier","src":"68310:31:21"},"nativeSrc":"68310:61:21","nodeType":"YulFunctionCall","src":"68310:61:21"},"nativeSrc":"68310:61:21","nodeType":"YulExpressionStatement","src":"68310:61:21"}]}]},"name":"abi_encode_t_struct$_Range_$1241_memory_ptr_to_t_struct$_Range_$1241_memory_ptr_fromStack","nativeSrc":"67889:499:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"67988:5:21","nodeType":"YulTypedName","src":"67988:5:21","type":""},{"name":"pos","nativeSrc":"67995:3:21","nodeType":"YulTypedName","src":"67995:3:21","type":""}],"src":"67889:499:21"},{"body":{"nativeSrc":"68457:52:21","nodeType":"YulBlock","src":"68457:52:21","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"68474:3:21","nodeType":"YulIdentifier","src":"68474:3:21"},{"arguments":[{"name":"value","nativeSrc":"68496:5:21","nodeType":"YulIdentifier","src":"68496:5:21"}],"functionName":{"name":"cleanup_t_int256","nativeSrc":"68479:16:21","nodeType":"YulIdentifier","src":"68479:16:21"},"nativeSrc":"68479:23:21","nodeType":"YulFunctionCall","src":"68479:23:21"}],"functionName":{"name":"mstore","nativeSrc":"68467:6:21","nodeType":"YulIdentifier","src":"68467:6:21"},"nativeSrc":"68467:36:21","nodeType":"YulFunctionCall","src":"68467:36:21"},"nativeSrc":"68467:36:21","nodeType":"YulExpressionStatement","src":"68467:36:21"}]},"name":"abi_encode_t_int256_to_t_int256_fromStack","nativeSrc":"68394:115:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"68445:5:21","nodeType":"YulTypedName","src":"68445:5:21","type":""},{"name":"pos","nativeSrc":"68452:3:21","nodeType":"YulTypedName","src":"68452:3:21","type":""}],"src":"68394:115:21"},{"body":{"nativeSrc":"68786:457:21","nodeType":"YulBlock","src":"68786:457:21","statements":[{"nativeSrc":"68796:27:21","nodeType":"YulAssignment","src":"68796:27:21","value":{"arguments":[{"name":"headStart","nativeSrc":"68808:9:21","nodeType":"YulIdentifier","src":"68808:9:21"},{"kind":"number","nativeSrc":"68819:3:21","nodeType":"YulLiteral","src":"68819:3:21","type":"","value":"128"}],"functionName":{"name":"add","nativeSrc":"68804:3:21","nodeType":"YulIdentifier","src":"68804:3:21"},"nativeSrc":"68804:19:21","nodeType":"YulFunctionCall","src":"68804:19:21"},"variableNames":[{"name":"tail","nativeSrc":"68796:4:21","nodeType":"YulIdentifier","src":"68796:4:21"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"68844:9:21","nodeType":"YulIdentifier","src":"68844:9:21"},{"kind":"number","nativeSrc":"68855:1:21","nodeType":"YulLiteral","src":"68855:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"68840:3:21","nodeType":"YulIdentifier","src":"68840:3:21"},"nativeSrc":"68840:17:21","nodeType":"YulFunctionCall","src":"68840:17:21"},{"arguments":[{"name":"tail","nativeSrc":"68863:4:21","nodeType":"YulIdentifier","src":"68863:4:21"},{"name":"headStart","nativeSrc":"68869:9:21","nodeType":"YulIdentifier","src":"68869:9:21"}],"functionName":{"name":"sub","nativeSrc":"68859:3:21","nodeType":"YulIdentifier","src":"68859:3:21"},"nativeSrc":"68859:20:21","nodeType":"YulFunctionCall","src":"68859:20:21"}],"functionName":{"name":"mstore","nativeSrc":"68833:6:21","nodeType":"YulIdentifier","src":"68833:6:21"},"nativeSrc":"68833:47:21","nodeType":"YulFunctionCall","src":"68833:47:21"},"nativeSrc":"68833:47:21","nodeType":"YulExpressionStatement","src":"68833:47:21"},{"nativeSrc":"68889:139:21","nodeType":"YulAssignment","src":"68889:139:21","value":{"arguments":[{"name":"tail","nativeSrc":"69023:4:21","nodeType":"YulIdentifier","src":"69023:4:21"}],"functionName":{"name":"abi_encode_t_stringliteral_f6f291dd7b3716f60112b675ea3e6f8513a7a585e9132e9f82751d445f328d0b_to_t_string_memory_ptr_fromStack","nativeSrc":"68897:124:21","nodeType":"YulIdentifier","src":"68897:124:21"},"nativeSrc":"68897:131:21","nodeType":"YulFunctionCall","src":"68897:131:21"},"variableNames":[{"name":"tail","nativeSrc":"68889:4:21","nodeType":"YulIdentifier","src":"68889:4:21"}]},{"expression":{"arguments":[{"name":"value0","nativeSrc":"69128:6:21","nodeType":"YulIdentifier","src":"69128:6:21"},{"arguments":[{"name":"headStart","nativeSrc":"69141:9:21","nodeType":"YulIdentifier","src":"69141:9:21"},{"kind":"number","nativeSrc":"69152:2:21","nodeType":"YulLiteral","src":"69152:2:21","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"69137:3:21","nodeType":"YulIdentifier","src":"69137:3:21"},"nativeSrc":"69137:18:21","nodeType":"YulFunctionCall","src":"69137:18:21"}],"functionName":{"name":"abi_encode_t_struct$_Range_$1241_memory_ptr_to_t_struct$_Range_$1241_memory_ptr_fromStack","nativeSrc":"69038:89:21","nodeType":"YulIdentifier","src":"69038:89:21"},"nativeSrc":"69038:118:21","nodeType":"YulFunctionCall","src":"69038:118:21"},"nativeSrc":"69038:118:21","nodeType":"YulExpressionStatement","src":"69038:118:21"},{"expression":{"arguments":[{"name":"value1","nativeSrc":"69208:6:21","nodeType":"YulIdentifier","src":"69208:6:21"},{"arguments":[{"name":"headStart","nativeSrc":"69221:9:21","nodeType":"YulIdentifier","src":"69221:9:21"},{"kind":"number","nativeSrc":"69232:2:21","nodeType":"YulLiteral","src":"69232:2:21","type":"","value":"96"}],"functionName":{"name":"add","nativeSrc":"69217:3:21","nodeType":"YulIdentifier","src":"69217:3:21"},"nativeSrc":"69217:18:21","nodeType":"YulFunctionCall","src":"69217:18:21"}],"functionName":{"name":"abi_encode_t_int256_to_t_int256_fromStack","nativeSrc":"69166:41:21","nodeType":"YulIdentifier","src":"69166:41:21"},"nativeSrc":"69166:70:21","nodeType":"YulFunctionCall","src":"69166:70:21"},"nativeSrc":"69166:70:21","nodeType":"YulExpressionStatement","src":"69166:70:21"}]},"name":"abi_encode_tuple_t_stringliteral_f6f291dd7b3716f60112b675ea3e6f8513a7a585e9132e9f82751d445f328d0b_t_struct$_Range_$1241_memory_ptr_t_int256__to_t_string_memory_ptr_t_struct$_Range_$1241_memory_ptr_t_int256__fromStack_reversed","nativeSrc":"68515:728:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"68750:9:21","nodeType":"YulTypedName","src":"68750:9:21","type":""},{"name":"value1","nativeSrc":"68762:6:21","nodeType":"YulTypedName","src":"68762:6:21","type":""},{"name":"value0","nativeSrc":"68770:6:21","nodeType":"YulTypedName","src":"68770:6:21","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"68781:4:21","nodeType":"YulTypedName","src":"68781:4:21","type":""}],"src":"68515:728:21"},{"body":{"nativeSrc":"69312:80:21","nodeType":"YulBlock","src":"69312:80:21","statements":[{"nativeSrc":"69322:22:21","nodeType":"YulAssignment","src":"69322:22:21","value":{"arguments":[{"name":"offset","nativeSrc":"69337:6:21","nodeType":"YulIdentifier","src":"69337:6:21"}],"functionName":{"name":"mload","nativeSrc":"69331:5:21","nodeType":"YulIdentifier","src":"69331:5:21"},"nativeSrc":"69331:13:21","nodeType":"YulFunctionCall","src":"69331:13:21"},"variableNames":[{"name":"value","nativeSrc":"69322:5:21","nodeType":"YulIdentifier","src":"69322:5:21"}]},{"expression":{"arguments":[{"name":"value","nativeSrc":"69380:5:21","nodeType":"YulIdentifier","src":"69380:5:21"}],"functionName":{"name":"validator_revert_t_uint256","nativeSrc":"69353:26:21","nodeType":"YulIdentifier","src":"69353:26:21"},"nativeSrc":"69353:33:21","nodeType":"YulFunctionCall","src":"69353:33:21"},"nativeSrc":"69353:33:21","nodeType":"YulExpressionStatement","src":"69353:33:21"}]},"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"69249:143:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nativeSrc":"69290:6:21","nodeType":"YulTypedName","src":"69290:6:21","type":""},{"name":"end","nativeSrc":"69298:3:21","nodeType":"YulTypedName","src":"69298:3:21","type":""}],"returnVariables":[{"name":"value","nativeSrc":"69306:5:21","nodeType":"YulTypedName","src":"69306:5:21","type":""}],"src":"69249:143:21"},{"body":{"nativeSrc":"69475:274:21","nodeType":"YulBlock","src":"69475:274:21","statements":[{"body":{"nativeSrc":"69521:83:21","nodeType":"YulBlock","src":"69521:83:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b","nativeSrc":"69523:77:21","nodeType":"YulIdentifier","src":"69523:77:21"},"nativeSrc":"69523:79:21","nodeType":"YulFunctionCall","src":"69523:79:21"},"nativeSrc":"69523:79:21","nodeType":"YulExpressionStatement","src":"69523:79:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nativeSrc":"69496:7:21","nodeType":"YulIdentifier","src":"69496:7:21"},{"name":"headStart","nativeSrc":"69505:9:21","nodeType":"YulIdentifier","src":"69505:9:21"}],"functionName":{"name":"sub","nativeSrc":"69492:3:21","nodeType":"YulIdentifier","src":"69492:3:21"},"nativeSrc":"69492:23:21","nodeType":"YulFunctionCall","src":"69492:23:21"},{"kind":"number","nativeSrc":"69517:2:21","nodeType":"YulLiteral","src":"69517:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nativeSrc":"69488:3:21","nodeType":"YulIdentifier","src":"69488:3:21"},"nativeSrc":"69488:32:21","nodeType":"YulFunctionCall","src":"69488:32:21"},"nativeSrc":"69485:119:21","nodeType":"YulIf","src":"69485:119:21"},{"nativeSrc":"69614:128:21","nodeType":"YulBlock","src":"69614:128:21","statements":[{"nativeSrc":"69629:15:21","nodeType":"YulVariableDeclaration","src":"69629:15:21","value":{"kind":"number","nativeSrc":"69643:1:21","nodeType":"YulLiteral","src":"69643:1:21","type":"","value":"0"},"variables":[{"name":"offset","nativeSrc":"69633:6:21","nodeType":"YulTypedName","src":"69633:6:21","type":""}]},{"nativeSrc":"69658:74:21","nodeType":"YulAssignment","src":"69658:74:21","value":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"69704:9:21","nodeType":"YulIdentifier","src":"69704:9:21"},{"name":"offset","nativeSrc":"69715:6:21","nodeType":"YulIdentifier","src":"69715:6:21"}],"functionName":{"name":"add","nativeSrc":"69700:3:21","nodeType":"YulIdentifier","src":"69700:3:21"},"nativeSrc":"69700:22:21","nodeType":"YulFunctionCall","src":"69700:22:21"},{"name":"dataEnd","nativeSrc":"69724:7:21","nodeType":"YulIdentifier","src":"69724:7:21"}],"functionName":{"name":"abi_decode_t_uint256_fromMemory","nativeSrc":"69668:31:21","nodeType":"YulIdentifier","src":"69668:31:21"},"nativeSrc":"69668:64:21","nodeType":"YulFunctionCall","src":"69668:64:21"},"variableNames":[{"name":"value0","nativeSrc":"69658:6:21","nodeType":"YulIdentifier","src":"69658:6:21"}]}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nativeSrc":"69398:351:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"69445:9:21","nodeType":"YulTypedName","src":"69445:9:21","type":""},{"name":"dataEnd","nativeSrc":"69456:7:21","nodeType":"YulTypedName","src":"69456:7:21","type":""}],"returnVariables":[{"name":"value0","nativeSrc":"69468:6:21","nodeType":"YulTypedName","src":"69468:6:21","type":""}],"src":"69398:351:21"},{"body":{"nativeSrc":"69899:275:21","nodeType":"YulBlock","src":"69899:275:21","statements":[{"nativeSrc":"69909:26:21","nodeType":"YulAssignment","src":"69909:26:21","value":{"arguments":[{"name":"headStart","nativeSrc":"69921:9:21","nodeType":"YulIdentifier","src":"69921:9:21"},{"kind":"number","nativeSrc":"69932:2:21","nodeType":"YulLiteral","src":"69932:2:21","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"69917:3:21","nodeType":"YulIdentifier","src":"69917:3:21"},"nativeSrc":"69917:18:21","nodeType":"YulFunctionCall","src":"69917:18:21"},"variableNames":[{"name":"tail","nativeSrc":"69909:4:21","nodeType":"YulIdentifier","src":"69909:4:21"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"69956:9:21","nodeType":"YulIdentifier","src":"69956:9:21"},{"kind":"number","nativeSrc":"69967:1:21","nodeType":"YulLiteral","src":"69967:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"69952:3:21","nodeType":"YulIdentifier","src":"69952:3:21"},"nativeSrc":"69952:17:21","nodeType":"YulFunctionCall","src":"69952:17:21"},{"arguments":[{"name":"tail","nativeSrc":"69975:4:21","nodeType":"YulIdentifier","src":"69975:4:21"},{"name":"headStart","nativeSrc":"69981:9:21","nodeType":"YulIdentifier","src":"69981:9:21"}],"functionName":{"name":"sub","nativeSrc":"69971:3:21","nodeType":"YulIdentifier","src":"69971:3:21"},"nativeSrc":"69971:20:21","nodeType":"YulFunctionCall","src":"69971:20:21"}],"functionName":{"name":"mstore","nativeSrc":"69945:6:21","nodeType":"YulIdentifier","src":"69945:6:21"},"nativeSrc":"69945:47:21","nodeType":"YulFunctionCall","src":"69945:47:21"},"nativeSrc":"69945:47:21","nodeType":"YulExpressionStatement","src":"69945:47:21"},{"nativeSrc":"70001:84:21","nodeType":"YulAssignment","src":"70001:84:21","value":{"arguments":[{"name":"value0","nativeSrc":"70071:6:21","nodeType":"YulIdentifier","src":"70071:6:21"},{"name":"tail","nativeSrc":"70080:4:21","nodeType":"YulIdentifier","src":"70080:4:21"}],"functionName":{"name":"abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack","nativeSrc":"70009:61:21","nodeType":"YulIdentifier","src":"70009:61:21"},"nativeSrc":"70009:76:21","nodeType":"YulFunctionCall","src":"70009:76:21"},"variableNames":[{"name":"tail","nativeSrc":"70001:4:21","nodeType":"YulIdentifier","src":"70001:4:21"}]},{"expression":{"arguments":[{"name":"value1","nativeSrc":"70139:6:21","nodeType":"YulIdentifier","src":"70139:6:21"},{"arguments":[{"name":"headStart","nativeSrc":"70152:9:21","nodeType":"YulIdentifier","src":"70152:9:21"},{"kind":"number","nativeSrc":"70163:2:21","nodeType":"YulLiteral","src":"70163:2:21","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"70148:3:21","nodeType":"YulIdentifier","src":"70148:3:21"},"nativeSrc":"70148:18:21","nodeType":"YulFunctionCall","src":"70148:18:21"}],"functionName":{"name":"abi_encode_t_address_to_t_address_fromStack","nativeSrc":"70095:43:21","nodeType":"YulIdentifier","src":"70095:43:21"},"nativeSrc":"70095:72:21","nodeType":"YulFunctionCall","src":"70095:72:21"},"nativeSrc":"70095:72:21","nodeType":"YulExpressionStatement","src":"70095:72:21"}]},"name":"abi_encode_tuple_t_bytes_memory_ptr_t_address__to_t_bytes_memory_ptr_t_address__fromStack_reversed","nativeSrc":"69755:419:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"69863:9:21","nodeType":"YulTypedName","src":"69863:9:21","type":""},{"name":"value1","nativeSrc":"69875:6:21","nodeType":"YulTypedName","src":"69875:6:21","type":""},{"name":"value0","nativeSrc":"69883:6:21","nodeType":"YulTypedName","src":"69883:6:21","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"69894:4:21","nodeType":"YulTypedName","src":"69894:4:21","type":""}],"src":"69755:419:21"},{"body":{"nativeSrc":"70223:150:21","nodeType":"YulBlock","src":"70223:150:21","statements":[{"nativeSrc":"70233:24:21","nodeType":"YulAssignment","src":"70233:24:21","value":{"arguments":[{"name":"x","nativeSrc":"70255:1:21","nodeType":"YulIdentifier","src":"70255:1:21"}],"functionName":{"name":"cleanup_t_uint16","nativeSrc":"70238:16:21","nodeType":"YulIdentifier","src":"70238:16:21"},"nativeSrc":"70238:19:21","nodeType":"YulFunctionCall","src":"70238:19:21"},"variableNames":[{"name":"x","nativeSrc":"70233:1:21","nodeType":"YulIdentifier","src":"70233:1:21"}]},{"nativeSrc":"70266:24:21","nodeType":"YulAssignment","src":"70266:24:21","value":{"arguments":[{"name":"y","nativeSrc":"70288:1:21","nodeType":"YulIdentifier","src":"70288:1:21"}],"functionName":{"name":"cleanup_t_uint16","nativeSrc":"70271:16:21","nodeType":"YulIdentifier","src":"70271:16:21"},"nativeSrc":"70271:19:21","nodeType":"YulFunctionCall","src":"70271:19:21"},"variableNames":[{"name":"y","nativeSrc":"70266:1:21","nodeType":"YulIdentifier","src":"70266:1:21"}]},{"nativeSrc":"70299:16:21","nodeType":"YulAssignment","src":"70299:16:21","value":{"arguments":[{"name":"x","nativeSrc":"70310:1:21","nodeType":"YulIdentifier","src":"70310:1:21"},{"name":"y","nativeSrc":"70313:1:21","nodeType":"YulIdentifier","src":"70313:1:21"}],"functionName":{"name":"add","nativeSrc":"70306:3:21","nodeType":"YulIdentifier","src":"70306:3:21"},"nativeSrc":"70306:9:21","nodeType":"YulFunctionCall","src":"70306:9:21"},"variableNames":[{"name":"sum","nativeSrc":"70299:3:21","nodeType":"YulIdentifier","src":"70299:3:21"}]},{"body":{"nativeSrc":"70344:22:21","nodeType":"YulBlock","src":"70344:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"70346:16:21","nodeType":"YulIdentifier","src":"70346:16:21"},"nativeSrc":"70346:18:21","nodeType":"YulFunctionCall","src":"70346:18:21"},"nativeSrc":"70346:18:21","nodeType":"YulExpressionStatement","src":"70346:18:21"}]},"condition":{"arguments":[{"name":"sum","nativeSrc":"70331:3:21","nodeType":"YulIdentifier","src":"70331:3:21"},{"kind":"number","nativeSrc":"70336:6:21","nodeType":"YulLiteral","src":"70336:6:21","type":"","value":"0xffff"}],"functionName":{"name":"gt","nativeSrc":"70328:2:21","nodeType":"YulIdentifier","src":"70328:2:21"},"nativeSrc":"70328:15:21","nodeType":"YulFunctionCall","src":"70328:15:21"},"nativeSrc":"70325:41:21","nodeType":"YulIf","src":"70325:41:21"}]},"name":"checked_add_t_uint16","nativeSrc":"70180:193:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"70210:1:21","nodeType":"YulTypedName","src":"70210:1:21","type":""},{"name":"y","nativeSrc":"70213:1:21","nodeType":"YulTypedName","src":"70213:1:21","type":""}],"returnVariables":[{"name":"sum","nativeSrc":"70219:3:21","nodeType":"YulTypedName","src":"70219:3:21","type":""}],"src":"70180:193:21"},{"body":{"nativeSrc":"70424:149:21","nodeType":"YulBlock","src":"70424:149:21","statements":[{"nativeSrc":"70434:25:21","nodeType":"YulAssignment","src":"70434:25:21","value":{"arguments":[{"name":"x","nativeSrc":"70457:1:21","nodeType":"YulIdentifier","src":"70457:1:21"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"70439:17:21","nodeType":"YulIdentifier","src":"70439:17:21"},"nativeSrc":"70439:20:21","nodeType":"YulFunctionCall","src":"70439:20:21"},"variableNames":[{"name":"x","nativeSrc":"70434:1:21","nodeType":"YulIdentifier","src":"70434:1:21"}]},{"nativeSrc":"70468:25:21","nodeType":"YulAssignment","src":"70468:25:21","value":{"arguments":[{"name":"y","nativeSrc":"70491:1:21","nodeType":"YulIdentifier","src":"70491:1:21"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"70473:17:21","nodeType":"YulIdentifier","src":"70473:17:21"},"nativeSrc":"70473:20:21","nodeType":"YulFunctionCall","src":"70473:20:21"},"variableNames":[{"name":"y","nativeSrc":"70468:1:21","nodeType":"YulIdentifier","src":"70468:1:21"}]},{"nativeSrc":"70502:17:21","nodeType":"YulAssignment","src":"70502:17:21","value":{"arguments":[{"name":"x","nativeSrc":"70514:1:21","nodeType":"YulIdentifier","src":"70514:1:21"},{"name":"y","nativeSrc":"70517:1:21","nodeType":"YulIdentifier","src":"70517:1:21"}],"functionName":{"name":"sub","nativeSrc":"70510:3:21","nodeType":"YulIdentifier","src":"70510:3:21"},"nativeSrc":"70510:9:21","nodeType":"YulFunctionCall","src":"70510:9:21"},"variableNames":[{"name":"diff","nativeSrc":"70502:4:21","nodeType":"YulIdentifier","src":"70502:4:21"}]},{"body":{"nativeSrc":"70544:22:21","nodeType":"YulBlock","src":"70544:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nativeSrc":"70546:16:21","nodeType":"YulIdentifier","src":"70546:16:21"},"nativeSrc":"70546:18:21","nodeType":"YulFunctionCall","src":"70546:18:21"},"nativeSrc":"70546:18:21","nodeType":"YulExpressionStatement","src":"70546:18:21"}]},"condition":{"arguments":[{"name":"diff","nativeSrc":"70535:4:21","nodeType":"YulIdentifier","src":"70535:4:21"},{"name":"x","nativeSrc":"70541:1:21","nodeType":"YulIdentifier","src":"70541:1:21"}],"functionName":{"name":"gt","nativeSrc":"70532:2:21","nodeType":"YulIdentifier","src":"70532:2:21"},"nativeSrc":"70532:11:21","nodeType":"YulFunctionCall","src":"70532:11:21"},"nativeSrc":"70529:37:21","nodeType":"YulIf","src":"70529:37:21"}]},"name":"checked_sub_t_uint256","nativeSrc":"70379:194:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nativeSrc":"70410:1:21","nodeType":"YulTypedName","src":"70410:1:21","type":""},{"name":"y","nativeSrc":"70413:1:21","nodeType":"YulTypedName","src":"70413:1:21","type":""}],"returnVariables":[{"name":"diff","nativeSrc":"70419:4:21","nodeType":"YulTypedName","src":"70419:4:21","type":""}],"src":"70379:194:21"},{"body":{"nativeSrc":"70644:53:21","nodeType":"YulBlock","src":"70644:53:21","statements":[{"expression":{"arguments":[{"name":"pos","nativeSrc":"70661:3:21","nodeType":"YulIdentifier","src":"70661:3:21"},{"arguments":[{"name":"value","nativeSrc":"70684:5:21","nodeType":"YulIdentifier","src":"70684:5:21"}],"functionName":{"name":"cleanup_t_uint256","nativeSrc":"70666:17:21","nodeType":"YulIdentifier","src":"70666:17:21"},"nativeSrc":"70666:24:21","nodeType":"YulFunctionCall","src":"70666:24:21"}],"functionName":{"name":"mstore","nativeSrc":"70654:6:21","nodeType":"YulIdentifier","src":"70654:6:21"},"nativeSrc":"70654:37:21","nodeType":"YulFunctionCall","src":"70654:37:21"},"nativeSrc":"70654:37:21","nodeType":"YulExpressionStatement","src":"70654:37:21"}]},"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"70579:118:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nativeSrc":"70632:5:21","nodeType":"YulTypedName","src":"70632:5:21","type":""},{"name":"pos","nativeSrc":"70639:3:21","nodeType":"YulTypedName","src":"70639:3:21","type":""}],"src":"70579:118:21"},{"body":{"nativeSrc":"70849:277:21","nodeType":"YulBlock","src":"70849:277:21","statements":[{"nativeSrc":"70859:26:21","nodeType":"YulAssignment","src":"70859:26:21","value":{"arguments":[{"name":"headStart","nativeSrc":"70871:9:21","nodeType":"YulIdentifier","src":"70871:9:21"},{"kind":"number","nativeSrc":"70882:2:21","nodeType":"YulLiteral","src":"70882:2:21","type":"","value":"64"}],"functionName":{"name":"add","nativeSrc":"70867:3:21","nodeType":"YulIdentifier","src":"70867:3:21"},"nativeSrc":"70867:18:21","nodeType":"YulFunctionCall","src":"70867:18:21"},"variableNames":[{"name":"tail","nativeSrc":"70859:4:21","nodeType":"YulIdentifier","src":"70859:4:21"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nativeSrc":"70906:9:21","nodeType":"YulIdentifier","src":"70906:9:21"},{"kind":"number","nativeSrc":"70917:1:21","nodeType":"YulLiteral","src":"70917:1:21","type":"","value":"0"}],"functionName":{"name":"add","nativeSrc":"70902:3:21","nodeType":"YulIdentifier","src":"70902:3:21"},"nativeSrc":"70902:17:21","nodeType":"YulFunctionCall","src":"70902:17:21"},{"arguments":[{"name":"tail","nativeSrc":"70925:4:21","nodeType":"YulIdentifier","src":"70925:4:21"},{"name":"headStart","nativeSrc":"70931:9:21","nodeType":"YulIdentifier","src":"70931:9:21"}],"functionName":{"name":"sub","nativeSrc":"70921:3:21","nodeType":"YulIdentifier","src":"70921:3:21"},"nativeSrc":"70921:20:21","nodeType":"YulFunctionCall","src":"70921:20:21"}],"functionName":{"name":"mstore","nativeSrc":"70895:6:21","nodeType":"YulIdentifier","src":"70895:6:21"},"nativeSrc":"70895:47:21","nodeType":"YulFunctionCall","src":"70895:47:21"},"nativeSrc":"70895:47:21","nodeType":"YulExpressionStatement","src":"70895:47:21"},{"nativeSrc":"70951:86:21","nodeType":"YulAssignment","src":"70951:86:21","value":{"arguments":[{"name":"value0","nativeSrc":"71023:6:21","nodeType":"YulIdentifier","src":"71023:6:21"},{"name":"tail","nativeSrc":"71032:4:21","nodeType":"YulIdentifier","src":"71032:4:21"}],"functionName":{"name":"abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack","nativeSrc":"70959:63:21","nodeType":"YulIdentifier","src":"70959:63:21"},"nativeSrc":"70959:78:21","nodeType":"YulFunctionCall","src":"70959:78:21"},"variableNames":[{"name":"tail","nativeSrc":"70951:4:21","nodeType":"YulIdentifier","src":"70951:4:21"}]},{"expression":{"arguments":[{"name":"value1","nativeSrc":"71091:6:21","nodeType":"YulIdentifier","src":"71091:6:21"},{"arguments":[{"name":"headStart","nativeSrc":"71104:9:21","nodeType":"YulIdentifier","src":"71104:9:21"},{"kind":"number","nativeSrc":"71115:2:21","nodeType":"YulLiteral","src":"71115:2:21","type":"","value":"32"}],"functionName":{"name":"add","nativeSrc":"71100:3:21","nodeType":"YulIdentifier","src":"71100:3:21"},"nativeSrc":"71100:18:21","nodeType":"YulFunctionCall","src":"71100:18:21"}],"functionName":{"name":"abi_encode_t_uint256_to_t_uint256_fromStack","nativeSrc":"71047:43:21","nodeType":"YulIdentifier","src":"71047:43:21"},"nativeSrc":"71047:72:21","nodeType":"YulFunctionCall","src":"71047:72:21"},"nativeSrc":"71047:72:21","nodeType":"YulExpressionStatement","src":"71047:72:21"}]},"name":"abi_encode_tuple_t_string_memory_ptr_t_uint256__to_t_string_memory_ptr_t_uint256__fromStack_reversed","nativeSrc":"70703:423:21","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nativeSrc":"70813:9:21","nodeType":"YulTypedName","src":"70813:9:21","type":""},{"name":"value1","nativeSrc":"70825:6:21","nodeType":"YulTypedName","src":"70825:6:21","type":""},{"name":"value0","nativeSrc":"70833:6:21","nodeType":"YulTypedName","src":"70833:6:21","type":""}],"returnVariables":[{"name":"tail","nativeSrc":"70844:4:21","nodeType":"YulTypedName","src":"70844:4:21","type":""}],"src":"70703:423:21"}]},"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 revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() {\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 revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() {\n        revert(0, 0)\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 validator_revert_t_enum$_CachePreset_$964(value) {\n        if iszero(lt(value, 7)) { revert(0, 0) }\n    }\n\n    function abi_decode_t_enum$_CachePreset_$964(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_enum$_CachePreset_$964(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 array_allocation_size_t_string_memory_ptr(length) -> size {\n        // Make sure we can allocate memory without overflow\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n        size := round_up_to_mul_of_32(length)\n\n        // add length slot\n        size := add(size, 0x20)\n\n    }\n\n    function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n\n        calldatacopy(dst, src, length)\n        mstore(add(dst, length), 0)\n\n    }\n\n    function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n        mstore(array, length)\n        let dst := add(array, 0x20)\n        if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n        copy_calldata_to_memory_with_cleanup(src, dst, length)\n    }\n\n    // string\n    function abi_decode_t_string_memory_ptr(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        let length := calldataload(offset)\n        array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n    }\n\n    // struct CacheControl\n    function abi_decode_t_struct$_CacheControl_$984_memory_ptr(headStart, end) -> value {\n        if slt(sub(end, headStart), 0x60) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n        value := allocate_memory(0x60)\n\n        {\n            // immutableFlag\n\n            let offset := 0\n\n            mstore(add(value, 0x00), abi_decode_t_bool(add(headStart, offset), end))\n\n        }\n\n        {\n            // preset\n\n            let offset := 32\n\n            mstore(add(value, 0x20), abi_decode_t_enum$_CachePreset_$964(add(headStart, offset), end))\n\n        }\n\n        {\n            // custom\n\n            let offset := calldataload(add(headStart, 64))\n            if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n            mstore(add(value, 0x40), abi_decode_t_string_memory_ptr(add(headStart, offset), end))\n\n        }\n\n    }\n\n    function cleanup_t_uint16(value) -> cleaned {\n        cleaned := and(value, 0xffff)\n    }\n\n    function validator_revert_t_uint16(value) {\n        if iszero(eq(value, cleanup_t_uint16(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint16(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint16(value)\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    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    // 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 validator_revert_t_enum$_CORSPreset_$972(value) {\n        if iszero(lt(value, 6)) { revert(0, 0) }\n    }\n\n    function abi_decode_t_enum$_CORSPreset_$972(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_enum$_CORSPreset_$972(value)\n    }\n\n    // struct CORSPolicy\n    function abi_decode_t_struct$_CORSPolicy_$1000_memory_ptr(headStart, end) -> value {\n        if slt(sub(end, headStart), 0x80) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n        value := allocate_memory(0x80)\n\n        {\n            // methods\n\n            let offset := 0\n\n            mstore(add(value, 0x00), abi_decode_t_uint16(add(headStart, offset), end))\n\n        }\n\n        {\n            // origins\n\n            let offset := calldataload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n            mstore(add(value, 0x20), abi_decode_t_array$_t_bytes32_$dyn_memory_ptr(add(headStart, offset), end))\n\n        }\n\n        {\n            // preset\n\n            let offset := 64\n\n            mstore(add(value, 0x40), abi_decode_t_enum$_CORSPreset_$972(add(headStart, offset), end))\n\n        }\n\n        {\n            // custom\n\n            let offset := calldataload(add(headStart, 96))\n            if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n            mstore(add(value, 0x60), abi_decode_t_string_memory_ptr(add(headStart, offset), end))\n\n        }\n\n    }\n\n    // struct Redirect\n    function abi_decode_t_struct$_Redirect_$1008_memory_ptr(headStart, end) -> value {\n        if slt(sub(end, headStart), 0x40) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n        value := allocate_memory(0x40)\n\n        {\n            // code\n\n            let offset := 0\n\n            mstore(add(value, 0x00), abi_decode_t_uint16(add(headStart, offset), end))\n\n        }\n\n        {\n            // location\n\n            let offset := calldataload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n            mstore(add(value, 0x20), abi_decode_t_string_memory_ptr(add(headStart, offset), end))\n\n        }\n\n    }\n\n    // struct HeaderInfo\n    function abi_decode_t_struct$_HeaderInfo_$1022_memory_ptr(headStart, end) -> value {\n        if slt(sub(end, headStart), 0x60) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n        value := allocate_memory(0x60)\n\n        {\n            // cache\n\n            let offset := calldataload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n            mstore(add(value, 0x00), abi_decode_t_struct$_CacheControl_$984_memory_ptr(add(headStart, offset), end))\n\n        }\n\n        {\n            // cors\n\n            let offset := calldataload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n            mstore(add(value, 0x20), abi_decode_t_struct$_CORSPolicy_$1000_memory_ptr(add(headStart, offset), end))\n\n        }\n\n        {\n            // redirect\n\n            let offset := calldataload(add(headStart, 64))\n            if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n            mstore(add(value, 0x40), abi_decode_t_struct$_Redirect_$1008_memory_ptr(add(headStart, offset), end))\n\n        }\n\n    }\n\n    function abi_decode_tuple_t_struct$_HeaderInfo_$1022_memory_ptr(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := calldataload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value0 := abi_decode_t_struct$_HeaderInfo_$1022_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function cleanup_t_uint256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_uint256(value) {\n        if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_uint256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_uint256(value)\n    }\n\n    // struct HEADRequest\n    function abi_decode_t_struct$_HEADRequest_$1142_memory_ptr(headStart, end) -> value {\n        if slt(sub(end, headStart), 0x60) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n        value := allocate_memory(0x60)\n\n        {\n            // path\n\n            let offset := calldataload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n            mstore(add(value, 0x00), abi_decode_t_string_memory_ptr(add(headStart, offset), end))\n\n        }\n\n        {\n            // ifModifiedSince\n\n            let offset := 32\n\n            mstore(add(value, 0x20), abi_decode_t_uint256(add(headStart, offset), end))\n\n        }\n\n        {\n            // ifNoneMatch\n\n            let offset := 64\n\n            mstore(add(value, 0x40), abi_decode_t_bytes32(add(headStart, offset), end))\n\n        }\n\n    }\n\n    function cleanup_t_int256(value) -> cleaned {\n        cleaned := value\n    }\n\n    function validator_revert_t_int256(value) {\n        if iszero(eq(value, cleanup_t_int256(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_int256(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_int256(value)\n    }\n\n    // struct Range\n    function abi_decode_t_struct$_Range_$1241_memory_ptr(headStart, end) -> value {\n        if slt(sub(end, headStart), 0x40) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n        value := allocate_memory(0x40)\n\n        {\n            // start\n\n            let offset := 0\n\n            mstore(add(value, 0x00), abi_decode_t_int256(add(headStart, offset), end))\n\n        }\n\n        {\n            // end\n\n            let offset := 32\n\n            mstore(add(value, 0x20), abi_decode_t_int256(add(headStart, offset), end))\n\n        }\n\n    }\n\n    // struct LOCATERequest\n    function abi_decode_t_struct$_LOCATERequest_$1251_memory_ptr(headStart, end) -> value {\n        if slt(sub(end, headStart), 0x60) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n        value := allocate_memory(0x40)\n\n        {\n            // head\n\n            let offset := calldataload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n            mstore(add(value, 0x00), abi_decode_t_struct$_HEADRequest_$1142_memory_ptr(add(headStart, offset), end))\n\n        }\n\n        {\n            // rangeChunks\n\n            let offset := 32\n\n            mstore(add(value, 0x20), abi_decode_t_struct$_Range_$1241_memory_ptr(add(headStart, offset), end))\n\n        }\n\n    }\n\n    function abi_decode_tuple_t_struct$_LOCATERequest_$1251_memory_ptr(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := calldataload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value0 := abi_decode_t_struct$_LOCATERequest_$1251_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_uint16_to_t_uint16(value, pos) {\n        mstore(pos, cleanup_t_uint16(value))\n    }\n\n    function abi_encode_t_bool_to_t_bool(value, pos) {\n        mstore(pos, cleanup_t_bool(value))\n    }\n\n    function panic_error_0x21() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x21)\n        revert(0, 0x24)\n    }\n\n    function validator_assert_t_enum$_CachePreset_$964(value) {\n        if iszero(lt(value, 7)) { panic_error_0x21() }\n    }\n\n    function cleanup_t_enum$_CachePreset_$964(value) -> cleaned {\n        cleaned := value validator_assert_t_enum$_CachePreset_$964(value)\n    }\n\n    function convert_t_enum$_CachePreset_$964_to_t_uint8(value) -> converted {\n        converted := cleanup_t_enum$_CachePreset_$964(value)\n    }\n\n    function abi_encode_t_enum$_CachePreset_$964_to_t_uint8(value, pos) {\n        mstore(pos, convert_t_enum$_CachePreset_$964_to_t_uint8(value))\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(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(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr(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    // struct CacheControl -> struct CacheControl\n    function abi_encode_t_struct$_CacheControl_$984_memory_ptr_to_t_struct$_CacheControl_$984_memory_ptr(value, pos)  -> end  {\n        let tail := add(pos, 0x60)\n\n        {\n            // immutableFlag\n\n            let memberValue0 := mload(add(value, 0x00))\n            abi_encode_t_bool_to_t_bool(memberValue0, add(pos, 0x00))\n        }\n\n        {\n            // preset\n\n            let memberValue0 := mload(add(value, 0x20))\n            abi_encode_t_enum$_CachePreset_$964_to_t_uint8(memberValue0, add(pos, 0x20))\n        }\n\n        {\n            // custom\n\n            let memberValue0 := mload(add(value, 0x40))\n\n            mstore(add(pos, 0x40), sub(tail, pos))\n            tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(memberValue0, tail)\n\n        }\n\n        end := tail\n    }\n\n    function array_length_t_array$_t_bytes32_$dyn_memory_ptr(value) -> length {\n\n        length := mload(value)\n\n    }\n\n    function array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function array_dataslot_t_array$_t_bytes32_$dyn_memory_ptr(ptr) -> data {\n        data := ptr\n\n        data := add(ptr, 0x20)\n\n    }\n\n    function abi_encode_t_bytes32_to_t_bytes32(value, pos) {\n        mstore(pos, cleanup_t_bytes32(value))\n    }\n\n    function abi_encodeUpdatedPos_t_bytes32_to_t_bytes32(value0, pos) -> updatedPos {\n        abi_encode_t_bytes32_to_t_bytes32(value0, pos)\n        updatedPos := add(pos, 0x20)\n    }\n\n    function array_nextElement_t_array$_t_bytes32_$dyn_memory_ptr(ptr) -> next {\n        next := add(ptr, 0x20)\n    }\n\n    // bytes32[] -> bytes32[]\n    function abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr(value, pos)  -> end  {\n        let length := array_length_t_array$_t_bytes32_$dyn_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr(pos, length)\n        let baseRef := array_dataslot_t_array$_t_bytes32_$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_bytes32_to_t_bytes32(elementValue0, pos)\n            srcPtr := array_nextElement_t_array$_t_bytes32_$dyn_memory_ptr(srcPtr)\n        }\n        end := pos\n    }\n\n    function validator_assert_t_enum$_CORSPreset_$972(value) {\n        if iszero(lt(value, 6)) { panic_error_0x21() }\n    }\n\n    function cleanup_t_enum$_CORSPreset_$972(value) -> cleaned {\n        cleaned := value validator_assert_t_enum$_CORSPreset_$972(value)\n    }\n\n    function convert_t_enum$_CORSPreset_$972_to_t_uint8(value) -> converted {\n        converted := cleanup_t_enum$_CORSPreset_$972(value)\n    }\n\n    function abi_encode_t_enum$_CORSPreset_$972_to_t_uint8(value, pos) {\n        mstore(pos, convert_t_enum$_CORSPreset_$972_to_t_uint8(value))\n    }\n\n    // struct CORSPolicy -> struct CORSPolicy\n    function abi_encode_t_struct$_CORSPolicy_$1000_memory_ptr_to_t_struct$_CORSPolicy_$1000_memory_ptr(value, pos)  -> end  {\n        let tail := add(pos, 0x80)\n\n        {\n            // methods\n\n            let memberValue0 := mload(add(value, 0x00))\n            abi_encode_t_uint16_to_t_uint16(memberValue0, add(pos, 0x00))\n        }\n\n        {\n            // origins\n\n            let memberValue0 := mload(add(value, 0x20))\n\n            mstore(add(pos, 0x20), sub(tail, pos))\n            tail := abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr(memberValue0, tail)\n\n        }\n\n        {\n            // preset\n\n            let memberValue0 := mload(add(value, 0x40))\n            abi_encode_t_enum$_CORSPreset_$972_to_t_uint8(memberValue0, add(pos, 0x40))\n        }\n\n        {\n            // custom\n\n            let memberValue0 := mload(add(value, 0x60))\n\n            mstore(add(pos, 0x60), sub(tail, pos))\n            tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(memberValue0, tail)\n\n        }\n\n        end := tail\n    }\n\n    // struct Redirect -> struct Redirect\n    function abi_encode_t_struct$_Redirect_$1008_memory_ptr_to_t_struct$_Redirect_$1008_memory_ptr(value, pos)  -> end  {\n        let tail := add(pos, 0x40)\n\n        {\n            // code\n\n            let memberValue0 := mload(add(value, 0x00))\n            abi_encode_t_uint16_to_t_uint16(memberValue0, add(pos, 0x00))\n        }\n\n        {\n            // location\n\n            let memberValue0 := mload(add(value, 0x20))\n\n            mstore(add(pos, 0x20), sub(tail, pos))\n            tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr(memberValue0, tail)\n\n        }\n\n        end := tail\n    }\n\n    // struct HeaderInfo -> struct HeaderInfo\n    function abi_encode_t_struct$_HeaderInfo_$1022_memory_ptr_to_t_struct$_HeaderInfo_$1022_memory_ptr(value, pos)  -> end  {\n        let tail := add(pos, 0x60)\n\n        {\n            // cache\n\n            let memberValue0 := mload(add(value, 0x00))\n\n            mstore(add(pos, 0x00), sub(tail, pos))\n            tail := abi_encode_t_struct$_CacheControl_$984_memory_ptr_to_t_struct$_CacheControl_$984_memory_ptr(memberValue0, tail)\n\n        }\n\n        {\n            // cors\n\n            let memberValue0 := mload(add(value, 0x20))\n\n            mstore(add(pos, 0x20), sub(tail, pos))\n            tail := abi_encode_t_struct$_CORSPolicy_$1000_memory_ptr_to_t_struct$_CORSPolicy_$1000_memory_ptr(memberValue0, tail)\n\n        }\n\n        {\n            // redirect\n\n            let memberValue0 := mload(add(value, 0x40))\n\n            mstore(add(pos, 0x40), sub(tail, pos))\n            tail := abi_encode_t_struct$_Redirect_$1008_memory_ptr_to_t_struct$_Redirect_$1008_memory_ptr(memberValue0, tail)\n\n        }\n\n        end := tail\n    }\n\n    function cleanup_t_bytes2(value) -> cleaned {\n        cleaned := and(value, 0xffff000000000000000000000000000000000000000000000000000000000000)\n    }\n\n    function abi_encode_t_bytes2_to_t_bytes2(value, pos) {\n        mstore(pos, cleanup_t_bytes2(value))\n    }\n\n    // struct ResourceProperties -> struct ResourceProperties\n    function abi_encode_t_struct$_ResourceProperties_$1035_memory_ptr_to_t_struct$_ResourceProperties_$1035_memory_ptr(value, pos)  {\n        let tail := add(pos, 0x80)\n\n        {\n            // mimeType\n\n            let memberValue0 := mload(add(value, 0x00))\n            abi_encode_t_bytes2_to_t_bytes2(memberValue0, add(pos, 0x00))\n        }\n\n        {\n            // charset\n\n            let memberValue0 := mload(add(value, 0x20))\n            abi_encode_t_bytes2_to_t_bytes2(memberValue0, add(pos, 0x20))\n        }\n\n        {\n            // encoding\n\n            let memberValue0 := mload(add(value, 0x40))\n            abi_encode_t_bytes2_to_t_bytes2(memberValue0, add(pos, 0x40))\n        }\n\n        {\n            // language\n\n            let memberValue0 := mload(add(value, 0x60))\n            abi_encode_t_bytes2_to_t_bytes2(memberValue0, add(pos, 0x60))\n        }\n\n    }\n\n    function abi_encode_t_uint256_to_t_uint256(value, pos) {\n        mstore(pos, cleanup_t_uint256(value))\n    }\n\n    // struct ResourceMetadata -> struct ResourceMetadata\n    function abi_encode_t_struct$_ResourceMetadata_$1053_memory_ptr_to_t_struct$_ResourceMetadata_$1053_memory_ptr(value, pos)  {\n        let tail := add(pos, 0x0100)\n\n        {\n            // properties\n\n            let memberValue0 := mload(add(value, 0x00))\n            abi_encode_t_struct$_ResourceProperties_$1035_memory_ptr_to_t_struct$_ResourceProperties_$1035_memory_ptr(memberValue0, add(pos, 0x00))\n        }\n\n        {\n            // size\n\n            let memberValue0 := mload(add(value, 0x20))\n            abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x80))\n        }\n\n        {\n            // version\n\n            let memberValue0 := mload(add(value, 0x40))\n            abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0xa0))\n        }\n\n        {\n            // lastModified\n\n            let memberValue0 := mload(add(value, 0x60))\n            abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0xc0))\n        }\n\n        {\n            // header\n\n            let memberValue0 := mload(add(value, 0x80))\n            abi_encode_t_bytes32_to_t_bytes32(memberValue0, add(pos, 0xe0))\n        }\n\n    }\n\n    // struct HEADResponse -> struct HEADResponse\n    function abi_encode_t_struct$_HEADResponse_$1158_memory_ptr_to_t_struct$_HEADResponse_$1158_memory_ptr(value, pos)  -> end  {\n        let tail := add(pos, 0x0160)\n\n        {\n            // status\n\n            let memberValue0 := mload(add(value, 0x00))\n            abi_encode_t_uint16_to_t_uint16(memberValue0, add(pos, 0x00))\n        }\n\n        {\n            // headerInfo\n\n            let memberValue0 := mload(add(value, 0x20))\n\n            mstore(add(pos, 0x20), sub(tail, pos))\n            tail := abi_encode_t_struct$_HeaderInfo_$1022_memory_ptr_to_t_struct$_HeaderInfo_$1022_memory_ptr(memberValue0, tail)\n\n        }\n\n        {\n            // metadata\n\n            let memberValue0 := mload(add(value, 0x40))\n            abi_encode_t_struct$_ResourceMetadata_$1053_memory_ptr_to_t_struct$_ResourceMetadata_$1053_memory_ptr(memberValue0, add(pos, 0x40))\n        }\n\n        {\n            // etag\n\n            let memberValue0 := mload(add(value, 0x60))\n            abi_encode_t_bytes32_to_t_bytes32(memberValue0, add(pos, 0x0140))\n        }\n\n        end := tail\n    }\n\n    // struct ResourceResponse -> struct ResourceResponse\n    function abi_encode_t_struct$_ResourceResponse_$885_memory_ptr_to_t_struct$_ResourceResponse_$885_memory_ptr(value, pos)  -> end  {\n        let tail := add(pos, 0x40)\n\n        {\n            // dataPoints\n\n            let memberValue0 := mload(add(value, 0x00))\n\n            mstore(add(pos, 0x00), sub(tail, pos))\n            tail := abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr(memberValue0, tail)\n\n        }\n\n        {\n            // totalChunks\n\n            let memberValue0 := mload(add(value, 0x20))\n            abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x20))\n        }\n\n        end := tail\n    }\n\n    // struct LOCATEResponse -> struct LOCATEResponse\n    function abi_encode_t_struct$_LOCATEResponse_$1168_memory_ptr_to_t_struct$_LOCATEResponse_$1168_memory_ptr_fromStack(value, pos)  -> end  {\n        let tail := add(pos, 0x40)\n\n        {\n            // head\n\n            let memberValue0 := mload(add(value, 0x00))\n\n            mstore(add(pos, 0x00), sub(tail, pos))\n            tail := abi_encode_t_struct$_HEADResponse_$1158_memory_ptr_to_t_struct$_HEADResponse_$1158_memory_ptr(memberValue0, tail)\n\n        }\n\n        {\n            // resource\n\n            let memberValue0 := mload(add(value, 0x20))\n\n            mstore(add(pos, 0x20), sub(tail, pos))\n            tail := abi_encode_t_struct$_ResourceResponse_$885_memory_ptr_to_t_struct$_ResourceResponse_$885_memory_ptr(memberValue0, tail)\n\n        }\n\n        end := tail\n    }\n\n    function abi_encode_tuple_t_struct$_LOCATEResponse_$1168_memory_ptr__to_t_struct$_LOCATEResponse_$1168_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_struct$_LOCATEResponse_$1168_memory_ptr_to_t_struct$_LOCATEResponse_$1168_memory_ptr_fromStack(value0,  tail)\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_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_tuple_t_struct$_HEADRequest_$1142_memory_ptr(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := calldataload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value0 := abi_decode_t_struct$_HEADRequest_$1142_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    // struct HEADResponse -> struct HEADResponse\n    function abi_encode_t_struct$_HEADResponse_$1158_memory_ptr_to_t_struct$_HEADResponse_$1158_memory_ptr_fromStack(value, pos)  -> end  {\n        let tail := add(pos, 0x0160)\n\n        {\n            // status\n\n            let memberValue0 := mload(add(value, 0x00))\n            abi_encode_t_uint16_to_t_uint16(memberValue0, add(pos, 0x00))\n        }\n\n        {\n            // headerInfo\n\n            let memberValue0 := mload(add(value, 0x20))\n\n            mstore(add(pos, 0x20), sub(tail, pos))\n            tail := abi_encode_t_struct$_HeaderInfo_$1022_memory_ptr_to_t_struct$_HeaderInfo_$1022_memory_ptr(memberValue0, tail)\n\n        }\n\n        {\n            // metadata\n\n            let memberValue0 := mload(add(value, 0x40))\n            abi_encode_t_struct$_ResourceMetadata_$1053_memory_ptr_to_t_struct$_ResourceMetadata_$1053_memory_ptr(memberValue0, add(pos, 0x40))\n        }\n\n        {\n            // etag\n\n            let memberValue0 := mload(add(value, 0x60))\n            abi_encode_t_bytes32_to_t_bytes32(memberValue0, add(pos, 0x0140))\n        }\n\n        end := tail\n    }\n\n    function abi_encode_tuple_t_struct$_HEADResponse_$1158_memory_ptr__to_t_struct$_HEADResponse_$1158_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_struct$_HEADResponse_$1158_memory_ptr_to_t_struct$_HEADResponse_$1158_memory_ptr_fromStack(value0,  tail)\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    // struct DEFINERequest\n    function abi_decode_t_struct$_DEFINERequest_$1204_memory_ptr(headStart, end) -> value {\n        if slt(sub(end, headStart), 0x40) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n        value := allocate_memory(0x40)\n\n        {\n            // head\n\n            let offset := calldataload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n            mstore(add(value, 0x00), abi_decode_t_struct$_HEADRequest_$1142_memory_ptr(add(headStart, offset), end))\n\n        }\n\n        {\n            // data\n\n            let offset := calldataload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n            mstore(add(value, 0x20), abi_decode_t_struct$_HeaderInfo_$1022_memory_ptr(add(headStart, offset), end))\n\n        }\n\n    }\n\n    function abi_decode_tuple_t_struct$_DEFINERequest_$1204_memory_ptr(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := calldataload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value0 := abi_decode_t_struct$_DEFINERequest_$1204_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    // struct DEFINEResponse -> struct DEFINEResponse\n    function abi_encode_t_struct$_DEFINEResponse_$1213_memory_ptr_to_t_struct$_DEFINEResponse_$1213_memory_ptr_fromStack(value, pos)  -> end  {\n        let tail := add(pos, 0x40)\n\n        {\n            // head\n\n            let memberValue0 := mload(add(value, 0x00))\n\n            mstore(add(pos, 0x00), sub(tail, pos))\n            tail := abi_encode_t_struct$_HEADResponse_$1158_memory_ptr_to_t_struct$_HEADResponse_$1158_memory_ptr(memberValue0, tail)\n\n        }\n\n        {\n            // headerAddress\n\n            let memberValue0 := mload(add(value, 0x20))\n            abi_encode_t_bytes32_to_t_bytes32(memberValue0, add(pos, 0x20))\n        }\n\n        end := tail\n    }\n\n    function abi_encode_tuple_t_struct$_DEFINEResponse_$1213_memory_ptr__to_t_struct$_DEFINEResponse_$1213_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_struct$_DEFINEResponse_$1213_memory_ptr_to_t_struct$_DEFINEResponse_$1213_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n    function validator_revert_t_bytes2(value) {\n        if iszero(eq(value, cleanup_t_bytes2(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_bytes2(offset, end) -> value {\n        value := calldataload(offset)\n        validator_revert_t_bytes2(value)\n    }\n\n    // struct ResourceProperties\n    function abi_decode_t_struct$_ResourceProperties_$1035_memory_ptr(headStart, end) -> value {\n        if slt(sub(end, headStart), 0x80) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n        value := allocate_memory(0x80)\n\n        {\n            // mimeType\n\n            let offset := 0\n\n            mstore(add(value, 0x00), abi_decode_t_bytes2(add(headStart, offset), end))\n\n        }\n\n        {\n            // charset\n\n            let offset := 32\n\n            mstore(add(value, 0x20), abi_decode_t_bytes2(add(headStart, offset), end))\n\n        }\n\n        {\n            // encoding\n\n            let offset := 64\n\n            mstore(add(value, 0x40), abi_decode_t_bytes2(add(headStart, offset), end))\n\n        }\n\n        {\n            // language\n\n            let offset := 96\n\n            mstore(add(value, 0x60), abi_decode_t_bytes2(add(headStart, offset), end))\n\n        }\n\n    }\n\n    function array_allocation_size_t_array$_t_struct$_DataRegistration_$1064_memory_ptr_$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 array_allocation_size_t_bytes_memory_ptr(length) -> size {\n        // Make sure we can allocate memory without overflow\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n        size := round_up_to_mul_of_32(length)\n\n        // add length slot\n        size := add(size, 0x20)\n\n    }\n\n    function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n        mstore(array, length)\n        let dst := add(array, 0x20)\n        if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n        copy_calldata_to_memory_with_cleanup(src, dst, length)\n    }\n\n    // bytes\n    function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n        if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n        let length := calldataload(offset)\n        array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n    }\n\n    // struct DataRegistration\n    function abi_decode_t_struct$_DataRegistration_$1064_memory_ptr(headStart, end) -> value {\n        if slt(sub(end, headStart), 0x60) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n        value := allocate_memory(0x60)\n\n        {\n            // data\n\n            let offset := calldataload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n            mstore(add(value, 0x00), abi_decode_t_bytes_memory_ptr(add(headStart, offset), end))\n\n        }\n\n        {\n            // chunkIndex\n\n            let offset := 32\n\n            mstore(add(value, 0x20), abi_decode_t_uint256(add(headStart, offset), end))\n\n        }\n\n        {\n            // publisher\n\n            let offset := 64\n\n            mstore(add(value, 0x40), abi_decode_t_address(add(headStart, offset), end))\n\n        }\n\n    }\n\n    // struct DataRegistration[]\n    function abi_decode_available_length_t_array$_t_struct$_DataRegistration_$1064_memory_ptr_$dyn_memory_ptr(offset, length, end) -> array {\n        array := allocate_memory(array_allocation_size_t_array$_t_struct$_DataRegistration_$1064_memory_ptr_$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 innerOffset := calldataload(src)\n            if gt(innerOffset, 0xffffffffffffffff) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n            let elementPos := add(offset, innerOffset)\n\n            mstore(dst, abi_decode_t_struct$_DataRegistration_$1064_memory_ptr(elementPos, end))\n            dst := add(dst, 0x20)\n        }\n    }\n\n    // struct DataRegistration[]\n    function abi_decode_t_array$_t_struct$_DataRegistration_$1064_memory_ptr_$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_struct$_DataRegistration_$1064_memory_ptr_$dyn_memory_ptr(add(offset, 0x20), length, end)\n    }\n\n    // struct PUTRequest\n    function abi_decode_t_struct$_PUTRequest_$1183_memory_ptr(headStart, end) -> value {\n        if slt(sub(end, headStart), 0xc0) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n        value := allocate_memory(0x60)\n\n        {\n            // head\n\n            let offset := calldataload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n            mstore(add(value, 0x00), abi_decode_t_struct$_HEADRequest_$1142_memory_ptr(add(headStart, offset), end))\n\n        }\n\n        {\n            // properties\n\n            let offset := 32\n\n            mstore(add(value, 0x20), abi_decode_t_struct$_ResourceProperties_$1035_memory_ptr(add(headStart, offset), end))\n\n        }\n\n        {\n            // data\n\n            let offset := calldataload(add(headStart, 160))\n            if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n            mstore(add(value, 0x40), abi_decode_t_array$_t_struct$_DataRegistration_$1064_memory_ptr_$dyn_memory_ptr(add(headStart, offset), end))\n\n        }\n\n    }\n\n    function abi_decode_tuple_t_struct$_PUTRequest_$1183_memory_ptr(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := calldataload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value0 := abi_decode_t_struct$_PUTRequest_$1183_memory_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$_IDataPointRegistry_$534_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IDataPointRegistry_$534_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IDataPointRegistry_$534_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_IDataPointRegistry_$534__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_IDataPointRegistry_$534_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    // struct PATCHRequest\n    function abi_decode_t_struct$_PATCHRequest_$1194_memory_ptr(headStart, end) -> value {\n        if slt(sub(end, headStart), 0x40) { revert_error_3538a459e4a0eb828f1aed5ebe5dc96fe59620a31d9b33e41259bb820cae769f() }\n        value := allocate_memory(0x40)\n\n        {\n            // head\n\n            let offset := calldataload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n            mstore(add(value, 0x00), abi_decode_t_struct$_HEADRequest_$1142_memory_ptr(add(headStart, offset), end))\n\n        }\n\n        {\n            // data\n\n            let offset := calldataload(add(headStart, 32))\n            if gt(offset, 0xffffffffffffffff) { revert_error_5e8f644817bc4960744f35c15999b6eff64ae702f94b1c46297cfd4e1aec2421() }\n\n            mstore(add(value, 0x20), abi_decode_t_array$_t_struct$_DataRegistration_$1064_memory_ptr_$dyn_memory_ptr(add(headStart, offset), end))\n\n        }\n\n    }\n\n    function abi_decode_tuple_t_struct$_PATCHRequest_$1194_memory_ptr(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := calldataload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value0 := abi_decode_t_struct$_PATCHRequest_$1194_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function convert_t_contract$_IDataPointStorage_$573_to_t_address(value) -> converted {\n        converted := convert_t_uint160_to_t_address(value)\n    }\n\n    function abi_encode_t_contract$_IDataPointStorage_$573_to_t_address_fromStack(value, pos) {\n        mstore(pos, convert_t_contract$_IDataPointStorage_$573_to_t_address(value))\n    }\n\n    function abi_encode_tuple_t_contract$_IDataPointStorage_$573__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 32)\n\n        abi_encode_t_contract$_IDataPointStorage_$573_to_t_address_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0 {\n        if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n        {\n\n            let offset := calldataload(add(headStart, 0))\n            if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n            value0 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    // struct OPTIONSResponse -> struct OPTIONSResponse\n    function abi_encode_t_struct$_OPTIONSResponse_$1131_memory_ptr_to_t_struct$_OPTIONSResponse_$1131_memory_ptr_fromStack(value, pos)  {\n        let tail := add(pos, 0x40)\n\n        {\n            // status\n\n            let memberValue0 := mload(add(value, 0x00))\n            abi_encode_t_uint16_to_t_uint16(memberValue0, add(pos, 0x00))\n        }\n\n        {\n            // allow\n\n            let memberValue0 := mload(add(value, 0x20))\n            abi_encode_t_uint16_to_t_uint16(memberValue0, add(pos, 0x20))\n        }\n\n    }\n\n    function abi_encode_tuple_t_struct$_OPTIONSResponse_$1131_memory_ptr__to_t_struct$_OPTIONSResponse_$1131_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_struct$_OPTIONSResponse_$1131_memory_ptr_to_t_struct$_OPTIONSResponse_$1131_memory_ptr_fromStack(value0,  add(headStart, 0))\n\n    }\n\n    function abi_encode_tuple_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        abi_encode_t_bytes32_to_t_bytes32_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_contract$_IDataPointStorage_$573(value) -> cleaned {\n        cleaned := cleanup_t_address(value)\n    }\n\n    function validator_revert_t_contract$_IDataPointStorage_$573(value) {\n        if iszero(eq(value, cleanup_t_contract$_IDataPointStorage_$573(value))) { revert(0, 0) }\n    }\n\n    function abi_decode_t_contract$_IDataPointStorage_$573_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_contract$_IDataPointStorage_$573(value)\n    }\n\n    function abi_decode_tuple_t_contract$_IDataPointStorage_$573_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_contract$_IDataPointStorage_$573_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    function store_literal_in_memory_7a964d37282303714fb467b98ec1cbe6d2e90dd52c96aeb740b8369104751d6b(memPtr) {\n\n        mstore(add(memPtr, 0), \"Method Not Allowed\")\n\n    }\n\n    function abi_encode_t_stringliteral_7a964d37282303714fb467b98ec1cbe6d2e90dd52c96aeb740b8369104751d6b_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 18)\n        store_literal_in_memory_7a964d37282303714fb467b98ec1cbe6d2e90dd52c96aeb740b8369104751d6b(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_t_uint16_to_t_uint16_fromStack(value, pos) {\n        mstore(pos, cleanup_t_uint16(value))\n    }\n\n    function abi_encode_tuple_t_stringliteral_7a964d37282303714fb467b98ec1cbe6d2e90dd52c96aeb740b8369104751d6b_t_uint16_t_bool__to_t_string_memory_ptr_t_uint16_t_bool__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_7a964d37282303714fb467b98ec1cbe6d2e90dd52c96aeb740b8369104751d6b_to_t_string_memory_ptr_fromStack( tail)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 32))\n\n        abi_encode_t_bool_to_t_bool_fromStack(value1,  add(headStart, 64))\n\n    }\n\n    function store_literal_in_memory_ec4917d1aed7ef8cbcf1c44444d2aa8d01b09b6f026baf9654d1305e94617eba(memPtr) {\n\n        mstore(add(memPtr, 0), \"Resource Immutable\")\n\n    }\n\n    function abi_encode_t_stringliteral_ec4917d1aed7ef8cbcf1c44444d2aa8d01b09b6f026baf9654d1305e94617eba_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 18)\n        store_literal_in_memory_ec4917d1aed7ef8cbcf1c44444d2aa8d01b09b6f026baf9654d1305e94617eba(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_ec4917d1aed7ef8cbcf1c44444d2aa8d01b09b6f026baf9654d1305e94617eba_t_uint16_t_bool__to_t_string_memory_ptr_t_uint16_t_bool__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 96)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_ec4917d1aed7ef8cbcf1c44444d2aa8d01b09b6f026baf9654d1305e94617eba_to_t_string_memory_ptr_fromStack( tail)\n\n        abi_encode_t_uint16_to_t_uint16_fromStack(value0,  add(headStart, 32))\n\n        abi_encode_t_bool_to_t_bool_fromStack(value1,  add(headStart, 64))\n\n    }\n\n    function store_literal_in_memory_15232cbb030dcf3f4ee56d3191d078b5ac1eaff91b0325c151acfbad69663cad(memPtr) {\n\n        mstore(add(memPtr, 0), \"Not Found\")\n\n    }\n\n    function abi_encode_t_stringliteral_15232cbb030dcf3f4ee56d3191d078b5ac1eaff91b0325c151acfbad69663cad_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 9)\n        store_literal_in_memory_15232cbb030dcf3f4ee56d3191d078b5ac1eaff91b0325c151acfbad69663cad(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_15232cbb030dcf3f4ee56d3191d078b5ac1eaff91b0325c151acfbad69663cad_t_bool__to_t_string_memory_ptr_t_bool__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 64)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_15232cbb030dcf3f4ee56d3191d078b5ac1eaff91b0325c151acfbad69663cad_to_t_string_memory_ptr_fromStack( tail)\n\n        abi_encode_t_bool_to_t_bool_fromStack(value0,  add(headStart, 32))\n\n    }\n\n    function store_literal_in_memory_479a1d8ebbddc9de30fd1886cb8a7ee233eac86d9b8bd3ece8b03587030879ef(memPtr) {\n\n        mstore(add(memPtr, 0), \"Forbidden\")\n\n    }\n\n    function abi_encode_t_stringliteral_479a1d8ebbddc9de30fd1886cb8a7ee233eac86d9b8bd3ece8b03587030879ef_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 9)\n        store_literal_in_memory_479a1d8ebbddc9de30fd1886cb8a7ee233eac86d9b8bd3ece8b03587030879ef(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_tuple_t_stringliteral_479a1d8ebbddc9de30fd1886cb8a7ee233eac86d9b8bd3ece8b03587030879ef_t_bytes32__to_t_string_memory_ptr_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n        tail := add(headStart, 64)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_479a1d8ebbddc9de30fd1886cb8a7ee233eac86d9b8bd3ece8b03587030879ef_to_t_string_memory_ptr_fromStack( tail)\n\n        abi_encode_t_bytes32_to_t_bytes32_fromStack(value0,  add(headStart, 32))\n\n    }\n\n    function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n        updated_pos := pos\n    }\n\n    function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n        let length := array_length_t_string_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n        copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n        end := add(pos, length)\n    }\n\n    function abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n        pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0,  pos)\n\n        end := pos\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 panic_error_0x11() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n\n    function checked_sub_t_int256(x, y) -> diff {\n        x := cleanup_t_int256(x)\n        y := cleanup_t_int256(y)\n        diff := sub(x, y)\n\n        // underflow, if y >= 0 and diff > x\n        // overflow, if y < 0 and diff < x\n        if or(\n            and(iszero(slt(y, 0)), sgt(diff, x)),\n            and(slt(y, 0), slt(diff, x))\n        ) { panic_error_0x11() }\n\n    }\n\n    function checked_add_t_int256(x, y) -> sum {\n        x := cleanup_t_int256(x)\n        y := cleanup_t_int256(y)\n        sum := add(x, y)\n\n        // overflow, if x >= 0 and sum < y\n        // underflow, if x < 0 and sum >= y\n        if or(\n            and(iszero(slt(x, 0)), slt(sum, y)),\n            and(slt(x, 0), iszero(slt(sum, y)))\n        ) { panic_error_0x11() }\n\n    }\n\n    function checked_add_t_uint256(x, y) -> sum {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        sum := add(x, y)\n\n        if gt(x, sum) { panic_error_0x11() }\n\n    }\n\n    function panic_error_0x32() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n\n    function panic_error_0x22() {\n        mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n        mstore(4, 0x22)\n        revert(0, 0x24)\n    }\n\n    function extract_byte_array_length(data) -> length {\n        length := div(data, 2)\n        let outOfPlaceEncoding := and(data, 1)\n        if iszero(outOfPlaceEncoding) {\n            length := and(length, 0x7f)\n        }\n\n        if eq(outOfPlaceEncoding, lt(length, 32)) {\n            panic_error_0x22()\n        }\n    }\n\n    // struct ResourceMetadata -> struct ResourceMetadata\n    function abi_encode_t_struct$_ResourceMetadata_$1053_memory_ptr_to_t_struct$_ResourceMetadata_$1053_memory_ptr_fromStack(value, pos)  {\n        let tail := add(pos, 0x0100)\n\n        {\n            // properties\n\n            let memberValue0 := mload(add(value, 0x00))\n            abi_encode_t_struct$_ResourceProperties_$1035_memory_ptr_to_t_struct$_ResourceProperties_$1035_memory_ptr(memberValue0, add(pos, 0x00))\n        }\n\n        {\n            // size\n\n            let memberValue0 := mload(add(value, 0x20))\n            abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0x80))\n        }\n\n        {\n            // version\n\n            let memberValue0 := mload(add(value, 0x40))\n            abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0xa0))\n        }\n\n        {\n            // lastModified\n\n            let memberValue0 := mload(add(value, 0x60))\n            abi_encode_t_uint256_to_t_uint256(memberValue0, add(pos, 0xc0))\n        }\n\n        {\n            // header\n\n            let memberValue0 := mload(add(value, 0x80))\n            abi_encode_t_bytes32_to_t_bytes32(memberValue0, add(pos, 0xe0))\n        }\n\n    }\n\n    function array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n        mstore(pos, length)\n        updated_pos := add(pos, 0x20)\n    }\n\n    // bytes32[] -> bytes32[]\n    function abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr_fromStack(value, pos)  -> end  {\n        let length := array_length_t_array$_t_bytes32_$dyn_memory_ptr(value)\n        pos := array_storeLengthForEncoding_t_array$_t_bytes32_$dyn_memory_ptr_fromStack(pos, length)\n        let baseRef := array_dataslot_t_array$_t_bytes32_$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_bytes32_to_t_bytes32(elementValue0, pos)\n            srcPtr := array_nextElement_t_array$_t_bytes32_$dyn_memory_ptr(srcPtr)\n        }\n        end := pos\n    }\n\n    function abi_encode_tuple_t_struct$_ResourceMetadata_$1053_memory_ptr_t_array$_t_bytes32_$dyn_memory_ptr__to_t_struct$_ResourceMetadata_$1053_memory_ptr_t_array$_t_bytes32_$dyn_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 288)\n\n        abi_encode_t_struct$_ResourceMetadata_$1053_memory_ptr_to_t_struct$_ResourceMetadata_$1053_memory_ptr_fromStack(value0,  add(headStart, 0))\n\n        mstore(add(headStart, 256), sub(tail, headStart))\n        tail := abi_encode_t_array$_t_bytes32_$dyn_memory_ptr_to_t_array$_t_bytes32_$dyn_memory_ptr_fromStack(value1,  tail)\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_bytes_memory_ptr__to_t_bytes_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_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n    function abi_decode_t_bytes32_fromMemory(offset, end) -> value {\n        value := mload(offset)\n        validator_revert_t_bytes32(value)\n    }\n\n    function abi_decode_tuple_t_bytes32_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_bytes32_fromMemory(add(headStart, offset), dataEnd)\n        }\n\n    }\n\n    function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n        mstore(pos, cleanup_t_address(value))\n    }\n\n    function abi_encode_tuple_t_address_t_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    // struct HeaderInfo -> struct HeaderInfo\n    function abi_encode_t_struct$_HeaderInfo_$1022_memory_ptr_to_t_struct$_HeaderInfo_$1022_memory_ptr_fromStack(value, pos)  -> end  {\n        let tail := add(pos, 0x60)\n\n        {\n            // cache\n\n            let memberValue0 := mload(add(value, 0x00))\n\n            mstore(add(pos, 0x00), sub(tail, pos))\n            tail := abi_encode_t_struct$_CacheControl_$984_memory_ptr_to_t_struct$_CacheControl_$984_memory_ptr(memberValue0, tail)\n\n        }\n\n        {\n            // cors\n\n            let memberValue0 := mload(add(value, 0x20))\n\n            mstore(add(pos, 0x20), sub(tail, pos))\n            tail := abi_encode_t_struct$_CORSPolicy_$1000_memory_ptr_to_t_struct$_CORSPolicy_$1000_memory_ptr(memberValue0, tail)\n\n        }\n\n        {\n            // redirect\n\n            let memberValue0 := mload(add(value, 0x40))\n\n            mstore(add(pos, 0x40), sub(tail, pos))\n            tail := abi_encode_t_struct$_Redirect_$1008_memory_ptr_to_t_struct$_Redirect_$1008_memory_ptr(memberValue0, tail)\n\n        }\n\n        end := tail\n    }\n\n    function abi_encode_tuple_t_struct$_HeaderInfo_$1022_memory_ptr__to_t_struct$_HeaderInfo_$1022_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_struct$_HeaderInfo_$1022_memory_ptr_to_t_struct$_HeaderInfo_$1022_memory_ptr_fromStack(value0,  tail)\n\n    }\n\n    function array_dataslot_t_string_storage(ptr) -> data {\n        data := ptr\n\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n\n    }\n\n    function divide_by_32_ceil(value) -> result {\n        result := div(add(value, 31), 32)\n    }\n\n    function shift_left_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shl(bits, value)\n\n    }\n\n    function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n        let shiftBits := mul(shiftBytes, 8)\n        let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n        toInsert := shift_left_dynamic(shiftBits, toInsert)\n        value := and(value, not(mask))\n        result := or(value, and(toInsert, mask))\n    }\n\n    function convert_t_uint256_to_t_uint256(value) -> converted {\n        converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n    }\n\n    function prepare_store_t_uint256(value) -> ret {\n        ret := value\n    }\n\n    function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n        let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n        sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n    }\n\n    function zero_value_for_split_t_uint256() -> ret {\n        ret := 0\n    }\n\n    function storage_set_to_zero_t_uint256(slot, offset) {\n        let zero_0 := zero_value_for_split_t_uint256()\n        update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n    }\n\n    function clear_storage_range_t_bytes1(start, end) {\n        for {} lt(start, end) { start := add(start, 1) }\n        {\n            storage_set_to_zero_t_uint256(start, 0)\n        }\n    }\n\n    function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n        if gt(len, 31) {\n            let dataArea := array_dataslot_t_string_storage(array)\n            let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n            // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n            if lt(startIndex, 32) { deleteStart := dataArea }\n            clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n        }\n\n    }\n\n    function shift_right_unsigned_dynamic(bits, value) -> newValue {\n        newValue :=\n\n        shr(bits, value)\n\n    }\n\n    function mask_bytes_dynamic(data, bytes) -> result {\n        let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n        result := and(data, mask)\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n        // we want to save only elements that are part of the array after resizing\n        // others should be set to zero\n        data := mask_bytes_dynamic(data, len)\n        used := or(data, mul(2, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n        let newLen := array_length_t_string_memory_ptr(src)\n        // Make sure array length is sane\n        if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n        let oldLen := extract_byte_array_length(sload(slot))\n\n        // potentially truncate data\n        clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n        let srcOffset := 0\n\n        srcOffset := 0x20\n\n        switch gt(newLen, 31)\n        case 1 {\n            let loopEnd := and(newLen, not(0x1f))\n\n            let dstPtr := array_dataslot_t_string_storage(slot)\n            let i := 0\n            for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n                sstore(dstPtr, mload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 32)\n            }\n            if lt(loopEnd, newLen) {\n                let lastValue := mload(add(src, srcOffset))\n                sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n            }\n            sstore(slot, add(mul(newLen, 2), 1))\n        }\n        default {\n            let value := 0\n            if newLen {\n                value := mload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n        }\n    }\n\n    function 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 store_literal_in_memory_f6f291dd7b3716f60112b675ea3e6f8513a7a585e9132e9f82751d445f328d0b(memPtr) {\n\n        mstore(add(memPtr, 0), \"Out of Bounds\")\n\n    }\n\n    function abi_encode_t_stringliteral_f6f291dd7b3716f60112b675ea3e6f8513a7a585e9132e9f82751d445f328d0b_to_t_string_memory_ptr_fromStack(pos) -> end {\n        pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 13)\n        store_literal_in_memory_f6f291dd7b3716f60112b675ea3e6f8513a7a585e9132e9f82751d445f328d0b(pos)\n        end := add(pos, 32)\n    }\n\n    function abi_encode_t_int256_to_t_int256(value, pos) {\n        mstore(pos, cleanup_t_int256(value))\n    }\n\n    // struct Range -> struct Range\n    function abi_encode_t_struct$_Range_$1241_memory_ptr_to_t_struct$_Range_$1241_memory_ptr_fromStack(value, pos)  {\n        let tail := add(pos, 0x40)\n\n        {\n            // start\n\n            let memberValue0 := mload(add(value, 0x00))\n            abi_encode_t_int256_to_t_int256(memberValue0, add(pos, 0x00))\n        }\n\n        {\n            // end\n\n            let memberValue0 := mload(add(value, 0x20))\n            abi_encode_t_int256_to_t_int256(memberValue0, add(pos, 0x20))\n        }\n\n    }\n\n    function abi_encode_t_int256_to_t_int256_fromStack(value, pos) {\n        mstore(pos, cleanup_t_int256(value))\n    }\n\n    function abi_encode_tuple_t_stringliteral_f6f291dd7b3716f60112b675ea3e6f8513a7a585e9132e9f82751d445f328d0b_t_struct$_Range_$1241_memory_ptr_t_int256__to_t_string_memory_ptr_t_struct$_Range_$1241_memory_ptr_t_int256__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 128)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_stringliteral_f6f291dd7b3716f60112b675ea3e6f8513a7a585e9132e9f82751d445f328d0b_to_t_string_memory_ptr_fromStack( tail)\n\n        abi_encode_t_struct$_Range_$1241_memory_ptr_to_t_struct$_Range_$1241_memory_ptr_fromStack(value0,  add(headStart, 32))\n\n        abi_encode_t_int256_to_t_int256_fromStack(value1,  add(headStart, 96))\n\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_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 abi_encode_tuple_t_bytes_memory_ptr_t_address__to_t_bytes_memory_ptr_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value0,  tail)\n\n        abi_encode_t_address_to_t_address_fromStack(value1,  add(headStart, 32))\n\n    }\n\n    function checked_add_t_uint16(x, y) -> sum {\n        x := cleanup_t_uint16(x)\n        y := cleanup_t_uint16(y)\n        sum := add(x, y)\n\n        if gt(sum, 0xffff) { panic_error_0x11() }\n\n    }\n\n    function checked_sub_t_uint256(x, y) -> diff {\n        x := cleanup_t_uint256(x)\n        y := cleanup_t_uint256(y)\n        diff := sub(x, y)\n\n        if gt(diff, x) { panic_error_0x11() }\n\n    }\n\n    function 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_string_memory_ptr_t_uint256__to_t_string_memory_ptr_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n        tail := add(headStart, 64)\n\n        mstore(add(headStart, 0), sub(tail, headStart))\n        tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0,  tail)\n\n        abi_encode_t_uint256_to_t_uint256_fromStack(value1,  add(headStart, 32))\n\n    }\n\n}\n","id":21,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061011f5760003560e01c806391d14854116100a0578063ca63628c11610064578063ca63628c14610410578063d547741f1461044d578063dd0fec4c14610476578063ef4e06ec146104a6578063fd05b634146104d15761011f565b806391d1485414610324578063a217fddf14610361578063b0184e011461038c578063b2455654146103bc578063c2640ed1146103e55761011f565b80632f2ff15d116100e75780632f2ff15d1461024157806332729d5e1461026a578063336875a11461029357806336568abe146102be57806342a4cf7d146102e75761011f565b806301ffc9a71461012457806304f457fa146101615780630f9004b81461018a578063248a9ca3146101c757806328699f1714610204575b600080fd5b34801561013057600080fd5b5061014b60048036038101906101469190613398565b61050e565b60405161015891906133e0565b60405180910390f35b34801561016d57600080fd5b506101886004803603810190610183919061394d565b610588565b005b34801561019657600080fd5b506101b160048036038101906101ac9190613b3e565b6105a2565b6040516101be91906140e4565b60405180910390f35b3480156101d357600080fd5b506101ee60048036038101906101e99190614106565b6105bc565b6040516101fb9190614142565b60405180910390f35b34801561021057600080fd5b5061022b6004803603810190610226919061415d565b6105db565b604051610238919061420b565b60405180910390f35b34801561024d57600080fd5b506102686004803603810190610263919061428b565b6105f5565b005b34801561027657600080fd5b50610291600480360381019061028c9190614106565b610617565b005b34801561029f57600080fd5b506102a8610672565b6040516102b59190614142565b60405180910390f35b3480156102ca57600080fd5b506102e560048036038101906102e0919061428b565b61067c565b005b3480156102f357600080fd5b5061030e60048036038101906103099190614353565b6106f7565b60405161031b91906143d9565b60405180910390f35b34801561033057600080fd5b5061034b6004803603810190610346919061428b565b610841565b60405161035891906133e0565b60405180910390f35b34801561036d57600080fd5b506103766108cd565b6040516103839190614142565b60405180910390f35b6103a660048036038101906103a1919061473d565b6108d4565b6040516103b391906140e4565b60405180910390f35b3480156103c857600080fd5b506103e360048036038101906103de9190614106565b610a71565b005b3480156103f157600080fd5b506103fa610ba4565b60405161040791906147e5565b60405180910390f35b34801561041c57600080fd5b506104376004803603810190610432919061415d565b610bce565b604051610444919061420b565b60405180910390f35b34801561045957600080fd5b50610474600480360381019061046f919061428b565b610cd8565b005b610490600480360381019061048b9190614888565b610cfa565b60405161049d91906140e4565b60405180910390f35b3480156104b257600080fd5b506104bb610dee565b6040516104c891906148f2565b60405180910390f35b3480156104dd57600080fd5b506104f860048036038101906104f3919061490d565b610e86565b6040516105059190614985565b60405180910390f35b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610581575061058082610ea0565b5b9050919050565b6000801b61059581610f0a565b61059e82610f1e565b5050565b6105aa61301f565b6105b5826001610f2e565b9050919050565b6000806000838152602001908152602001600020600101549050919050565b6105e3613045565b6105ee826000610fba565b9050919050565b6105fe826105bc565b61060781610f0a565b6106118383611100565b50505050565b6000801b61062481610f0a565b60006001549050826001819055507f80f9b6a37a676933a62100891a89f9c5ebd8d425dbc6d36160234076dd227abf816001546040516106659291906149a0565b60405180910390a1505050565b6000600154905090565b6106846111f1565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146106e8576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106f282826111f9565b505050565b6106ff613080565b600082600001516000015190506107178160086112eb565b5060006107278460200151611564565b9050610768826040518060a00160405280610741866115b7565b6000015181526020016000815260200160008152602001600081526020018481525061178f565b6000610773836115b7565b90506000610797846040518060400160405280600081526020016000815250611931565b6000015190506040518060400160405280604051806080016040528060c861ffff1681526020016107c788611a82565b81526020018581526020016107dc8686611dd6565b81525081526020018481525094503373ffffffffffffffffffffffffffffffffffffffff167f55c67887bc565be1497d05f1493b6b0b1a9f5240476ebf2ada689d5c296493fa8660405161083091906143d9565b60405180910390a250505050919050565b60006108506000801b83611e09565b1561085e57600190506108c7565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60001b83036108ba576108b27f22435ed027edf5f902dc0093fbc24cdb50c05b5fd5f311b78c67c1cbaff60e1383611e09565b1590506108c7565b6108c48383611e09565b90505b92915050565b6000801b81565b6108dc61301f565b600082600001516000015190506108f48160036112eb565b5060008360400151905060006101f49050600061091084611e73565b9050600061091d856115b7565b60800151905081156109335761093285611e8b565b5b600087604001515111156109655761094b8585611f1f565b50816109585760c961095b565b60c85b60ff16925061096a565b60cc92505b6109a1856040518060a001604052808a6020015181526020016000815260200160008152602001600081526020018481525061178f565b60006109ac866115b7565b905060006109b986611fd0565b905060405180608001604052808661ffff1681526020016109d989611a82565b81526020018381526020016109ee8484611dd6565b81525088600001819052506040518060400160405280828152602001875181525088602001819052503373ffffffffffffffffffffffffffffffffffffffff167f46def6174d80782227f3ccfbaca1edbec0d3b3185a673ec4e577ee84d6cc514689604051610a5d91906140e4565b60405180910390a250505050505050919050565b600154610a7d81610f0a565b81600154811480610a9057506000801b81145b15610ad257806040517f125a2bb7000000000000000000000000000000000000000000000000000000008152600401610ac99190614142565b60405180910390fd5b827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60001b811480610b2357507f22435ed027edf5f902dc0093fbc24cdb50c05b5fd5f311b78c67c1cbaff60e1381145b15610b6557806040517f125a2bb7000000000000000000000000000000000000000000000000000000008152600401610b5c9190614142565b60405180910390fd5b610b7184600154612100565b837f17a96dcfa97ca23bb8a7066cd78d58de2dc54b954a551ba0113958bfe2e13c2a60405160405180910390a250505050565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610bd6613045565b600082600001519050610bea8160056112eb565b50610bf481611e8b565b6000610bff826115b7565b9050604051806080016040528060cc61ffff168152602001610c2084611a82565b8152602001828152602001610c7e83600067ffffffffffffffff811115610c4a57610c49613411565b5b604051908082528060200260200182016040528015610c785781602001602082028036833780820191505090505b50611dd6565b81525092503373ffffffffffffffffffffffffffffffffffffffff167f2bf365ff6e8001ea62dc0ac216f36ce036f1289e9bb002d9122024e5b23319c784604051610cc9919061420b565b60405180910390a25050919050565b610ce1826105bc565b610cea81610f0a565b610cf483836111f9565b50505050565b610d0261301f565b60008260000151600001519050610d1a8160046112eb565b506000836020015190506000610d308383611f1f565b9050610d4185600001516004610fba565b8460000181905250610d5c8151610d578561215b565b612186565b84600001516000019061ffff16908161ffff16815250506040518060400160405280828152602001610d8d8561215b565b81525084602001819052503373ffffffffffffffffffffffffffffffffffffffff167f520fec3c44f5956316e49db6b3cf126095e5356d2f5f12b0bb4dea8a13392bbc85604051610dde91906140e4565b60405180910390a2505050919050565b6000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ef4e06ec6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e819190614a07565b905090565b610e8e6130a3565b610e998260066112eb565b9050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610f1b81610f166111f1565b6121b3565b50565b610f2b6000801b82612204565b50565b610f3661301f565b600083600001516000015190506000610f53856000015185610fba565b90506000610f65838760200151611931565b90508084602001819052506101f4826000015161ffff1603610fa857610f948160000151518260200151612186565b826000019061ffff16908161ffff16815250505b81846000018190525050505092915050565b610fc2613045565b600083600001519050610fd581846112eb565b506000610fe1826115b7565b90506000610fee83611a82565b9050600061101f83611016866040518060400160405280600081526020016000815250611931565b60000151611dd6565b905060006101f49050876040015182148061105257508760200151846060015111158015611051575060008460600151115b5b156110615761013090506110ce565b600083604001516000015161ffff16146110855782604001516000015190506110cd565b6000600881111561109957611098613ba5565b5b8760088111156110ac576110ab613ba5565b5b036110cc5760006110bc8661215b565b90506110c88182612186565b9150505b5b5b60405180608001604052808261ffff168152602001848152602001858152602001838152509550505050505092915050565b600061110c8383610841565b6111e657600160008085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506111836111f1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506111eb565b600090505b92915050565b600033905090565b60006112058383610841565b156112e057600080600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061127d6111f1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a4600190506112e5565b600090505b92915050565b6112f36130a3565b82826112ff8282612477565b6113625761130c82611a82565b602001516000015161131d83611a82565b60000151600001516040517f1695ed8d000000000000000000000000000000000000000000000000000000008152600401611359929190614aa0565b60405180910390fd5b61136b826124d1565b156113c05761137982611a82565b602001516000015160016040517f1695ed8d0000000000000000000000000000000000000000000000000000000081526004016113b7929190614b28565b60405180910390fd5b600360088111156113d4576113d3613ba5565b5b8160088111156113e7576113e6613ba5565b5b1480611416575060088081111561140157611400613ba5565b5b81600881111561141457611413613ba5565b5b145b806114455750600660088111156114305761142f613ba5565b5b81600881111561144357611442613ba5565b5b145b158015611458575061145682611e73565b155b156114aa5761146682611a82565b60000151600001516040517f658435f30000000000000000000000000000000000000000000000000000000081526004016114a19190614bb0565b60405180910390fd5b6114b5828233612503565b6114ff576114c38282612526565b6040517f84e9e2790000000000000000000000000000000000000000000000000000000081526004016114f69190614c2a565b60405180910390fd5b6006600881111561151357611512613ba5565b5b84600881111561152657611525613ba5565b5b0361155c57604051806040016040528060cc61ffff16815260200161154a87611a82565b602001516000015161ffff1681525092505b505092915050565b600061156f82612588565b905061157b8183612204565b7f516a84c6e4979ef4f74784ed61e83aa5cbe2779d10935d7d9564b2a098d4a5df816040516115aa9190614142565b60405180910390a1919050565b6115bf6130c5565b6011826040516115cf9190614c94565b90815260200160405180910390206040518060a0016040529081600082016040518060800160405290816000820160009054906101000a900460f01b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020016000820160029054906101000a900460f01b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020016000820160049054906101000a900460f01b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020016000820160069054906101000a900460f01b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152505081526020016001820154815260200160028201548152602001600382015481526020016004820154815250509050919050565b611798826125b8565b6011826040516117a89190614c94565b9081526020016040518091039020600101548160200181815250506011826040516117d39190614c94565b9081526020016040518091039020600201548160400181815250506011826040516117fe9190614c94565b9081526020016040518091039020600301548160600181815250508060118360405161182a9190614c94565b908152602001604051809103902060008201518160000160008201518160000160006101000a81548161ffff021916908360f01c021790555060208201518160000160026101000a81548161ffff021916908360f01c021790555060408201518160000160046101000a81548161ffff021916908360f01c021790555060608201518160000160066101000a81548161ffff021916908360f01c02179055505050602082015181600101556040820151816002015560608201518160030155608082015181600401559050507f1c306e70c05992619e2128ad1ef88df75f36c9476282e59f51401b2abaa42e4e826040516119259190614ce4565b60405180910390a15050565b6119396130fd565b60006119448461215b565b9050600061195284836126aa565b9050600060018260000151836020015161196c9190614d35565b6119769190614d78565b90506000620186a0821161198a578161198f565b620186a05b905060008167ffffffffffffffff8111156119ad576119ac613411565b5b6040519080825280602002602001820160405280156119db5781602001602082028036833780820191505090505b50905060005b82811015611a5f576012896040516119f99190614c94565b9081526020016040518091039020818660000151611a179190614dbc565b81548110611a2857611a27614df0565b5b9060005260206000200154828281518110611a4657611a45614df0565b5b60200260200101818152505080806001019150506119e1565b506040518060400160405280828152602001868152509550505050505092915050565b611a8a613117565b60106000611a97846115b7565b608001518152602001908152602001600020604051806060016040529081600082016040518060600160405290816000820160009054906101000a900460ff161515151581526020016000820160019054906101000a900460ff166006811115611b0457611b03613ba5565b5b6006811115611b1657611b15613ba5565b5b8152602001600182018054611b2a90614e4e565b80601f0160208091040260200160405190810160405280929190818152602001828054611b5690614e4e565b8015611ba35780601f10611b7857610100808354040283529160200191611ba3565b820191906000526020600020905b815481529060010190602001808311611b8657829003601f168201915b5050505050815250508152602001600282016040518060800160405290816000820160009054906101000a900461ffff1661ffff1661ffff16815260200160018201805480602002602001604051908101604052809291908181526020018280548015611c2f57602002820191906000526020600020905b815481526020019060010190808311611c1b575b505050505081526020016002820160009054906101000a900460ff166005811115611c5d57611c5c613ba5565b5b6005811115611c6f57611c6e613ba5565b5b8152602001600382018054611c8390614e4e565b80601f0160208091040260200160405190810160405280929190818152602001828054611caf90614e4e565b8015611cfc5780601f10611cd157610100808354040283529160200191611cfc565b820191906000526020600020905b815481529060010190602001808311611cdf57829003601f168201915b5050505050815250508152602001600682016040518060400160405290816000820160009054906101000a900461ffff1661ffff1661ffff168152602001600182018054611d4990614e4e565b80601f0160208091040260200160405190810160405280929190818152602001828054611d7590614e4e565b8015611dc25780601f10611d9757610100808354040283529160200191611dc2565b820191906000526020600020905b815481529060010190602001808311611da557829003601f168201915b505050505081525050815250509050919050565b60008282604051602001611deb929190614f57565b60405160208183030381529060405280519060200120905092915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600080611e7f836115b7565b60600151119050919050565b601281604051611e9b9190614c94565b90815260200160405180910390206000611eb5919061314a565b6000601182604051611ec79190614c94565b908152602001604051809103902060010181905550611ee581612837565b7f055b00e14f3647ce9af043f85e942a4b8169374d43992a7044ad50a8a7e1845a81604051611f149190614ce4565b60405180910390a150565b6060815167ffffffffffffffff811115611f3c57611f3b613411565b5b604051908082528060200260200182016040528015611f6a5781602001602082028036833780820191505090505b50905060005b8251811015611fc957611f9d84848381518110611f9057611f8f614df0565b5b6020026020010151612a4e565b828281518110611fb057611faf614df0565b5b6020026020010181815250508080600101915050611f70565b5092915050565b60606000825190508067ffffffffffffffff811115611ff257611ff1613411565b5b6040519080825280602002602001820160405280156120205781602001602082028036833780820191505090505b50915060005b818110156120f957612036610dee565b73ffffffffffffffffffffffffffffffffffffffff1663e8a4c04e85838151811061206457612063614df0565b5b6020026020010151600001516040518263ffffffff1660e01b815260040161208c9190614fde565b602060405180830381865afa1580156120a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120cd9190615015565b8382815181106120e0576120df614df0565b5b6020026020010181815250508080600101915050612026565b5050919050565b600061210b836105bc565b905081600080858152602001908152602001600020600101819055508181847fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a4505050565b600060128260405161216d9190614c94565b9081526020016040518091039020805490509050919050565b60008082036121985760cc90506121ad565b8282036121a85760c890506121ad565b60ce90505b92915050565b6121bd8282610841565b6122005780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016121f7929190615051565b60405180910390fd5b5050565b6000816040015160000151905060008161ffff161415801561223b575061012c8161ffff16108061223a57506101368161ffff16115b5b1561227d57816040517f3afff42b00000000000000000000000000000000000000000000000000000000815260040161227491906150d8565b60405180910390fd5b6000826020015160200151519050612293612c68565b61ffff168160ff16146122dd57826040517f3afff42b0000000000000000000000000000000000000000000000000000000081526004016122d491906150d8565b60405180910390fd5b826010600086815260200190815260200160002060008201518160000160008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff0219169083600681111561234557612344613ba5565b5b0217905550604082015181600101908161235f919061529c565b50505060208201518160020160008201518160000160006101000a81548161ffff021916908361ffff16021790555060208201518160010190805190602001906123aa92919061316b565b5060408201518160020160006101000a81548160ff021916908360058111156123d6576123d5613ba5565b5b021790555060608201518160030190816123f0919061529c565b50505060408201518160060160008201518160000160006101000a81548161ffff021916908361ffff1602179055506020820151816001019081612434919061529c565b5050509050507fc4c76143cbd497adc2b5bc159d932dcfa8483928a0d22661d1404ef1c68984a1846040516124699190614142565b60405180910390a150505050565b60006124866000801b33610841565b1561249457600190506124cb565b60008260088111156124a9576124a8613ba5565b5b60ff166001901b6124b985611a82565b60200151600001511661ffff16141590505b92915050565b60006124dc82611a82565b600001516000015180156124fc575060006124f6836115b7565b60400151115b9050919050565b6000806125108585612526565b905061251c8184610841565b9150509392505050565b60008061253284611a82565b602001516020015190506000815103612551576000801b915050612582565b8083600881111561256557612564613ba5565b5b8151811061257657612575614df0565b5b60200260200101519150505b92915050565b60008160405160200161259b91906150d8565b604051602081830303815290604052805190602001209050919050565b426011826040516125c99190614c94565b90815260200160405180910390206003018190555060006012826040516125f09190614c94565b9081526020016040518091039020805490501115612644576011816040516126189190614c94565b9081526020016040518091039020600201600081548092919061263a9061536e565b91905055506126a7565b60006011826040516126569190614c94565b90815260200160405180910390206002015411156126a65760118160405161267e9190614c94565b908152602001604051809103902060020160008154809291906126a09061536e565b91905055505b5b50565b6126b26131b8565b60008290507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84600001511480156126ee575060008460200151145b15612712576000846000018181525050600084602001818152505083915050612831565b6000846020015114801561272a575060008460000151145b1561274e5760018161273c9190614d35565b84602001818152505083915050612831565b60008460000151121561278157836000015160018261276d9190614d35565b6127779190614d78565b8460000181815250505b6000846020015112156127b45783602001516001826127a09190614d35565b6127aa9190614d78565b8460200181815250505b600184602001516127c59190614d78565b846000015113806127da575060008460000151125b806127e85750808460200151135b1561282c5783816040517f6de8558200000000000000000000000000000000000000000000000000000000815260040161282392919061544f565b60405180910390fd5b839150505b92915050565b6129ed81600a6040518060a0016040529081600082016040518060800160405290816000820160009054906101000a900460f01b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020016000820160029054906101000a900460f01b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020016000820160049054906101000a900460f01b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020016000820160069054906101000a900460f01b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681525050815260200160018201548152602001600282015481526020016003820154815260200160048201548152505061178f565b60006011826040516129ff9190614c94565b9081526020016040518091039020600301819055507f510fb78f495511d68f630cfabc06d8a58d5aeb7bc63f3538b9cd46923aa23e5d81604051612a439190614ce4565b60405180910390a150565b6000612a58610dee565b73ffffffffffffffffffffffffffffffffffffffff1663e8a4c04e83600001516040518263ffffffff1660e01b8152600401612a949190614fde565b602060405180830381865afa158015612ab1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ad59190615015565b9050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f6e20077600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fd45d702846040518263ffffffff1660e01b8152600401612b709190614142565b602060405180830381865afa158015612b8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bb191906154a0565b846000015185604001516040518463ffffffff1660e01b8152600401612bd89291906154cd565b60206040518083038185885af1158015612bf6573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612c1b9190615015565b507f688cfefb012ebddc451bd5077139509d5fbfdfc92c33cba16d7e76f16c2f5da883604051612c4b9190614ce4565b60405180910390a1612c6283828460200151612c8e565b92915050565b60006001600880811115612c7f57612c7e613ba5565b5b612c8991906154fd565b905090565b6000612c998461215b565b905080821115612cf75760405180604001604052806000815260200182815250826040517f6de85582000000000000000000000000000000000000000000000000000000008152600401612cee92919061544f565b60405180910390fd5b808203612e0057601284604051612d0e9190614c94565b9081526020016040518091039020839080600181540180825580915050600190039060005260206000200160009091909190915055612d4b610dee565b73ffffffffffffffffffffffffffffffffffffffff16632be681f5846040518263ffffffff1660e01b8152600401612d839190614142565b602060405180830381865afa158015612da0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dc491906154a0565b601185604051612dd49190614c94565b90815260200160405180910390206001016000828254612df49190614dbc565b92505081905550612fd7565b612e08610dee565b73ffffffffffffffffffffffffffffffffffffffff16632be681f5601286604051612e339190614c94565b90815260200160405180910390208481548110612e5357612e52614df0565b5b90600052602060002001546040518263ffffffff1660e01b8152600401612e7a9190614142565b602060405180830381865afa158015612e97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ebb91906154a0565b612ec3610dee565b73ffffffffffffffffffffffffffffffffffffffff16632be681f5856040518263ffffffff1660e01b8152600401612efb9190614142565b602060405180830381865afa158015612f18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f3c91906154a0565b601186604051612f4c9190614c94565b908152602001604051809103902060010154612f689190614dbc565b612f729190615533565b601185604051612f829190614c94565b90815260200160405180910390206001018190555082601285604051612fa89190614c94565b90815260200160405180910390208381548110612fc857612fc7614df0565b5b90600052602060002001819055505b612fe0846125b8565b7fd9104dbb62c9778e68f07361617c0e7c290633d8fc9d4335dd0710803633b93b8483604051613011929190615576565b60405180910390a150505050565b6040518060400160405280613032613045565b815260200161303f6130fd565b81525090565b6040518060800160405280600061ffff168152602001613063613117565b81526020016130706130c5565b8152602001600080191681525090565b6040518060400160405280613093613045565b8152602001600080191681525090565b6040518060400160405280600061ffff168152602001600061ffff1681525090565b6040518060a001604052806130d86131d2565b8152602001600081526020016000815260200160008152602001600080191681525090565b604051806040016040528060608152602001600081525090565b604051806060016040528061312a61327e565b81526020016131376132b3565b81526020016131446132f1565b81525090565b5080546000825590600052602060002090810190613168919061330f565b50565b8280548282559060005260206000209081019282156131a7579160200282015b828111156131a657825182559160200191906001019061318b565b5b5090506131b4919061330f565b5090565b604051806040016040528060008152602001600081525090565b604051806080016040528060007dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200160007dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200160007dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200160007dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681525090565b6040518060600160405280600015158152602001600060068111156132a6576132a5613ba5565b5b8152602001606081525090565b6040518060800160405280600061ffff16815260200160608152602001600060058111156132e4576132e3613ba5565b5b8152602001606081525090565b6040518060400160405280600061ffff168152602001606081525090565b5b80821115613328576000816000905550600101613310565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61337581613340565b811461338057600080fd5b50565b6000813590506133928161336c565b92915050565b6000602082840312156133ae576133ad613336565b5b60006133bc84828501613383565b91505092915050565b60008115159050919050565b6133da816133c5565b82525050565b60006020820190506133f560008301846133d1565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61344982613400565b810181811067ffffffffffffffff8211171561346857613467613411565b5b80604052505050565b600061347b61332c565b90506134878282613440565b919050565b600080fd5b61349a816133c5565b81146134a557600080fd5b50565b6000813590506134b781613491565b92915050565b600781106134ca57600080fd5b50565b6000813590506134dc816134bd565b92915050565b600080fd5b600080fd5b600067ffffffffffffffff82111561350757613506613411565b5b61351082613400565b9050602081019050919050565b82818337600083830152505050565b600061353f61353a846134ec565b613471565b90508281526020810184848401111561355b5761355a6134e7565b5b61356684828561351d565b509392505050565b600082601f830112613583576135826134e2565b5b813561359384826020860161352c565b91505092915050565b6000606082840312156135b2576135b16133fb565b5b6135bc6060613471565b905060006135cc848285016134a8565b60008301525060206135e0848285016134cd565b602083015250604082013567ffffffffffffffff8111156136045761360361348c565b5b6136108482850161356e565b60408301525092915050565b600061ffff82169050919050565b6136338161361c565b811461363e57600080fd5b50565b6000813590506136508161362a565b92915050565b600067ffffffffffffffff82111561367157613670613411565b5b602082029050602081019050919050565b600080fd5b6000819050919050565b61369a81613687565b81146136a557600080fd5b50565b6000813590506136b781613691565b92915050565b60006136d06136cb84613656565b613471565b905080838252602082019050602084028301858111156136f3576136f2613682565b5b835b8181101561371c578061370888826136a8565b8452602084019350506020810190506136f5565b5050509392505050565b600082601f83011261373b5761373a6134e2565b5b813561374b8482602086016136bd565b91505092915050565b6006811061376157600080fd5b50565b60008135905061377381613754565b92915050565b60006080828403121561378f5761378e6133fb565b5b6137996080613471565b905060006137a984828501613641565b600083015250602082013567ffffffffffffffff8111156137cd576137cc61348c565b5b6137d984828501613726565b60208301525060406137ed84828501613764565b604083015250606082013567ffffffffffffffff8111156138115761381061348c565b5b61381d8482850161356e565b60608301525092915050565b60006040828403121561383f5761383e6133fb565b5b6138496040613471565b9050600061385984828501613641565b600083015250602082013567ffffffffffffffff81111561387d5761387c61348c565b5b6138898482850161356e565b60208301525092915050565b6000606082840312156138ab576138aa6133fb565b5b6138b56060613471565b9050600082013567ffffffffffffffff8111156138d5576138d461348c565b5b6138e18482850161359c565b600083015250602082013567ffffffffffffffff8111156139055761390461348c565b5b61391184828501613779565b602083015250604082013567ffffffffffffffff8111156139355761393461348c565b5b61394184828501613829565b60408301525092915050565b60006020828403121561396357613962613336565b5b600082013567ffffffffffffffff8111156139815761398061333b565b5b61398d84828501613895565b91505092915050565b6000819050919050565b6139a981613996565b81146139b457600080fd5b50565b6000813590506139c6816139a0565b92915050565b6000606082840312156139e2576139e16133fb565b5b6139ec6060613471565b9050600082013567ffffffffffffffff811115613a0c57613a0b61348c565b5b613a188482850161356e565b6000830152506020613a2c848285016139b7565b6020830152506040613a40848285016136a8565b60408301525092915050565b6000819050919050565b613a5f81613a4c565b8114613a6a57600080fd5b50565b600081359050613a7c81613a56565b92915050565b600060408284031215613a9857613a976133fb565b5b613aa26040613471565b90506000613ab284828501613a6d565b6000830152506020613ac684828501613a6d565b60208301525092915050565b600060608284031215613ae857613ae76133fb565b5b613af26040613471565b9050600082013567ffffffffffffffff811115613b1257613b1161348c565b5b613b1e848285016139cc565b6000830152506020613b3284828501613a82565b60208301525092915050565b600060208284031215613b5457613b53613336565b5b600082013567ffffffffffffffff811115613b7257613b7161333b565b5b613b7e84828501613ad2565b91505092915050565b613b908161361c565b82525050565b613b9f816133c5565b82525050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60078110613be557613be4613ba5565b5b50565b6000819050613bf682613bd4565b919050565b6000613c0682613be8565b9050919050565b613c1681613bfb565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613c56578082015181840152602081019050613c3b565b60008484015250505050565b6000613c6d82613c1c565b613c778185613c27565b9350613c87818560208601613c38565b613c9081613400565b840191505092915050565b6000606083016000830151613cb36000860182613b96565b506020830151613cc66020860182613c0d565b5060408301518482036040860152613cde8282613c62565b9150508091505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613d2081613687565b82525050565b6000613d328383613d17565b60208301905092915050565b6000602082019050919050565b6000613d5682613ceb565b613d608185613cf6565b9350613d6b83613d07565b8060005b83811015613d9c578151613d838882613d26565b9750613d8e83613d3e565b925050600181019050613d6f565b5085935050505092915050565b60068110613dba57613db9613ba5565b5b50565b6000819050613dcb82613da9565b919050565b6000613ddb82613dbd565b9050919050565b613deb81613dd0565b82525050565b6000608083016000830151613e096000860182613b87565b5060208301518482036020860152613e218282613d4b565b9150506040830151613e366040860182613de2565b5060608301518482036060860152613e4e8282613c62565b9150508091505092915050565b6000604083016000830151613e736000860182613b87565b5060208301518482036020860152613e8b8282613c62565b9150508091505092915050565b60006060830160008301518482036000860152613eb58282613c9b565b91505060208301518482036020860152613ecf8282613df1565b91505060408301518482036040860152613ee98282613e5b565b9150508091505092915050565b60007fffff00000000000000000000000000000000000000000000000000000000000082169050919050565b613f2b81613ef6565b82525050565b608082016000820151613f476000850182613f22565b506020820151613f5a6020850182613f22565b506040820151613f6d6040850182613f22565b506060820151613f806060850182613f22565b50505050565b613f8f81613996565b82525050565b61010082016000820151613fac6000850182613f31565b506020820151613fbf6080850182613f86565b506040820151613fd260a0850182613f86565b506060820151613fe560c0850182613f86565b506080820151613ff860e0850182613d17565b50505050565b6000610160830160008301516140176000860182613b87565b506020830151848203602086015261402f8282613e98565b91505060408301516140446040860182613f95565b506060830151614058610140860182613d17565b508091505092915050565b600060408301600083015184820360008601526140808282613d4b565b91505060208301516140956020860182613f86565b508091505092915050565b600060408301600083015184820360008601526140bd8282613ffe565b915050602083015184820360208601526140d78282614063565b9150508091505092915050565b600060208201905081810360008301526140fe81846140a0565b905092915050565b60006020828403121561411c5761411b613336565b5b600061412a848285016136a8565b91505092915050565b61413c81613687565b82525050565b60006020820190506141576000830184614133565b92915050565b60006020828403121561417357614172613336565b5b600082013567ffffffffffffffff8111156141915761419061333b565b5b61419d848285016139cc565b91505092915050565b6000610160830160008301516141bf6000860182613b87565b50602083015184820360208601526141d78282613e98565b91505060408301516141ec6040860182613f95565b506060830151614200610140860182613d17565b508091505092915050565b6000602082019050818103600083015261422581846141a6565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006142588261422d565b9050919050565b6142688161424d565b811461427357600080fd5b50565b6000813590506142858161425f565b92915050565b600080604083850312156142a2576142a1613336565b5b60006142b0858286016136a8565b92505060206142c185828601614276565b9150509250929050565b6000604082840312156142e1576142e06133fb565b5b6142eb6040613471565b9050600082013567ffffffffffffffff81111561430b5761430a61348c565b5b614317848285016139cc565b600083015250602082013567ffffffffffffffff81111561433b5761433a61348c565b5b61434784828501613895565b60208301525092915050565b60006020828403121561436957614368613336565b5b600082013567ffffffffffffffff8111156143875761438661333b565b5b614393848285016142cb565b91505092915050565b600060408301600083015184820360008601526143b98282613ffe565b91505060208301516143ce6020860182613d17565b508091505092915050565b600060208201905081810360008301526143f3818461439c565b905092915050565b61440481613ef6565b811461440f57600080fd5b50565b600081359050614421816143fb565b92915050565b60006080828403121561443d5761443c6133fb565b5b6144476080613471565b9050600061445784828501614412565b600083015250602061446b84828501614412565b602083015250604061447f84828501614412565b604083015250606061449384828501614412565b60608301525092915050565b600067ffffffffffffffff8211156144ba576144b9613411565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156144e6576144e5613411565b5b6144ef82613400565b9050602081019050919050565b600061450f61450a846144cb565b613471565b90508281526020810184848401111561452b5761452a6134e7565b5b61453684828561351d565b509392505050565b600082601f830112614553576145526134e2565b5b81356145638482602086016144fc565b91505092915050565b600060608284031215614582576145816133fb565b5b61458c6060613471565b9050600082013567ffffffffffffffff8111156145ac576145ab61348c565b5b6145b88482850161453e565b60008301525060206145cc848285016139b7565b60208301525060406145e084828501614276565b60408301525092915050565b60006145ff6145fa8461449f565b613471565b9050808382526020820190506020840283018581111561462257614621613682565b5b835b8181101561466957803567ffffffffffffffff811115614647576146466134e2565b5b808601614654898261456c565b85526020850194505050602081019050614624565b5050509392505050565b600082601f830112614688576146876134e2565b5b81356146988482602086016145ec565b91505092915050565b600060c082840312156146b7576146b66133fb565b5b6146c16060613471565b9050600082013567ffffffffffffffff8111156146e1576146e061348c565b5b6146ed848285016139cc565b600083015250602061470184828501614427565b60208301525060a082013567ffffffffffffffff8111156147255761472461348c565b5b61473184828501614673565b60408301525092915050565b60006020828403121561475357614752613336565b5b600082013567ffffffffffffffff8111156147715761477061333b565b5b61477d848285016146a1565b91505092915050565b6000819050919050565b60006147ab6147a66147a18461422d565b614786565b61422d565b9050919050565b60006147bd82614790565b9050919050565b60006147cf826147b2565b9050919050565b6147df816147c4565b82525050565b60006020820190506147fa60008301846147d6565b92915050565b600060408284031215614816576148156133fb565b5b6148206040613471565b9050600082013567ffffffffffffffff8111156148405761483f61348c565b5b61484c848285016139cc565b600083015250602082013567ffffffffffffffff8111156148705761486f61348c565b5b61487c84828501614673565b60208301525092915050565b60006020828403121561489e5761489d613336565b5b600082013567ffffffffffffffff8111156148bc576148bb61333b565b5b6148c884828501614800565b91505092915050565b60006148dc826147b2565b9050919050565b6148ec816148d1565b82525050565b600060208201905061490760008301846148e3565b92915050565b60006020828403121561492357614922613336565b5b600082013567ffffffffffffffff8111156149415761494061333b565b5b61494d8482850161356e565b91505092915050565b60408201600082015161496c6000850182613b87565b50602082015161497f6020850182613b87565b50505050565b600060408201905061499a6000830184614956565b92915050565b60006040820190506149b56000830185614133565b6149c26020830184614133565b9392505050565b60006149d48261424d565b9050919050565b6149e4816149c9565b81146149ef57600080fd5b50565b600081519050614a01816149db565b92915050565b600060208284031215614a1d57614a1c613336565b5b6000614a2b848285016149f2565b91505092915050565b600082825260208201905092915050565b7f4d6574686f64204e6f7420416c6c6f7765640000000000000000000000000000600082015250565b6000614a7b601283614a34565b9150614a8682614a45565b602082019050919050565b614a9a8161361c565b82525050565b60006060820190508181036000830152614ab981614a6e565b9050614ac86020830185614a91565b614ad560408301846133d1565b9392505050565b7f5265736f7572636520496d6d757461626c650000000000000000000000000000600082015250565b6000614b12601283614a34565b9150614b1d82614adc565b602082019050919050565b60006060820190508181036000830152614b4181614b05565b9050614b506020830185614a91565b614b5d60408301846133d1565b9392505050565b7f4e6f7420466f756e640000000000000000000000000000000000000000000000600082015250565b6000614b9a600983614a34565b9150614ba582614b64565b602082019050919050565b60006040820190508181036000830152614bc981614b8d565b9050614bd860208301846133d1565b92915050565b7f466f7262696464656e0000000000000000000000000000000000000000000000600082015250565b6000614c14600983614a34565b9150614c1f82614bde565b602082019050919050565b60006040820190508181036000830152614c4381614c07565b9050614c526020830184614133565b92915050565b600081905092915050565b6000614c6e82613c1c565b614c788185614c58565b9350614c88818560208601613c38565b80840191505092915050565b6000614ca08284614c63565b915081905092915050565b6000614cb682613c1c565b614cc08185614a34565b9350614cd0818560208601613c38565b614cd981613400565b840191505092915050565b60006020820190508181036000830152614cfe8184614cab565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000614d4082613a4c565b9150614d4b83613a4c565b9250828203905081811260008412168282136000851215161715614d7257614d71614d06565b5b92915050565b6000614d8382613a4c565b9150614d8e83613a4c565b925082820190508281121560008312168382126000841215161715614db657614db5614d06565b5b92915050565b6000614dc782613996565b9150614dd283613996565b9250828201905080821115614dea57614de9614d06565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680614e6657607f821691505b602082108103614e7957614e78614e1f565b5b50919050565b61010082016000820151614e966000850182613f31565b506020820151614ea96080850182613f86565b506040820151614ebc60a0850182613f86565b506060820151614ecf60c0850182613f86565b506080820151614ee260e0850182613d17565b50505050565b600082825260208201905092915050565b6000614f0482613ceb565b614f0e8185614ee8565b9350614f1983613d07565b8060005b83811015614f4a578151614f318882613d26565b9750614f3c83613d3e565b925050600181019050614f1d565b5085935050505092915050565b600061012082019050614f6d6000830185614e7f565b818103610100830152614f808184614ef9565b90509392505050565b600081519050919050565b600082825260208201905092915050565b6000614fb082614f89565b614fba8185614f94565b9350614fca818560208601613c38565b614fd381613400565b840191505092915050565b60006020820190508181036000830152614ff88184614fa5565b905092915050565b60008151905061500f81613691565b92915050565b60006020828403121561502b5761502a613336565b5b600061503984828501615000565b91505092915050565b61504b8161424d565b82525050565b60006040820190506150666000830185615042565b6150736020830184614133565b9392505050565b600060608301600083015184820360008601526150978282613c9b565b915050602083015184820360208601526150b18282613df1565b915050604083015184820360408601526150cb8282613e5b565b9150508091505092915050565b600060208201905081810360008301526150f2818461507a565b905092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261515c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261511f565b615166868361511f565b95508019841693508086168417925050509392505050565b600061519961519461518f84613996565b614786565b613996565b9050919050565b6000819050919050565b6151b38361517e565b6151c76151bf826151a0565b84845461512c565b825550505050565b600090565b6151dc6151cf565b6151e78184846151aa565b505050565b5b8181101561520b576152006000826151d4565b6001810190506151ed565b5050565b601f82111561525057615221816150fa565b61522a8461510f565b81016020851015615239578190505b61524d6152458561510f565b8301826151ec565b50505b505050565b600082821c905092915050565b600061527360001984600802615255565b1980831691505092915050565b600061528c8383615262565b9150826002028217905092915050565b6152a582613c1c565b67ffffffffffffffff8111156152be576152bd613411565b5b6152c88254614e4e565b6152d382828561520f565b600060209050601f83116001811461530657600084156152f4578287015190505b6152fe8582615280565b865550615366565b601f198416615314866150fa565b60005b8281101561533c57848901518255600182019150602085019450602081019050615317565b868310156153595784890151615355601f891682615262565b8355505b6001600288020188555050505b505050505050565b600061537982613996565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036153ab576153aa614d06565b5b600182019050919050565b7f4f7574206f6620426f756e647300000000000000000000000000000000000000600082015250565b60006153ec600d83614a34565b91506153f7826153b6565b602082019050919050565b61540b81613a4c565b82525050565b6040820160008201516154276000850182615402565b50602082015161543a6020850182615402565b50505050565b61544981613a4c565b82525050565b60006080820190508181036000830152615468816153df565b90506154776020830185615411565b6154846060830184615440565b9392505050565b60008151905061549a816139a0565b92915050565b6000602082840312156154b6576154b5613336565b5b60006154c48482850161548b565b91505092915050565b600060408201905081810360008301526154e78185614fa5565b90506154f66020830184615042565b9392505050565b60006155088261361c565b91506155138361361c565b9250828201905061ffff81111561552d5761552c614d06565b5b92915050565b600061553e82613996565b915061554983613996565b925082820390508181111561556157615560614d06565b5b92915050565b61557081613996565b82525050565b600060408201905081810360008301526155908185614cab565b905061559f6020830184615567565b939250505056fea26469706673582212208d0f2aff1c7c6bb6bb8c4fa1e7c0c2ac06d17b31ea19035c75273072c27845b364736f6c634300081c0033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x11F JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x91D14854 GT PUSH2 0xA0 JUMPI DUP1 PUSH4 0xCA63628C GT PUSH2 0x64 JUMPI DUP1 PUSH4 0xCA63628C EQ PUSH2 0x410 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x44D JUMPI DUP1 PUSH4 0xDD0FEC4C EQ PUSH2 0x476 JUMPI DUP1 PUSH4 0xEF4E06EC EQ PUSH2 0x4A6 JUMPI DUP1 PUSH4 0xFD05B634 EQ PUSH2 0x4D1 JUMPI PUSH2 0x11F JUMP JUMPDEST DUP1 PUSH4 0x91D14854 EQ PUSH2 0x324 JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x361 JUMPI DUP1 PUSH4 0xB0184E01 EQ PUSH2 0x38C JUMPI DUP1 PUSH4 0xB2455654 EQ PUSH2 0x3BC JUMPI DUP1 PUSH4 0xC2640ED1 EQ PUSH2 0x3E5 JUMPI PUSH2 0x11F JUMP JUMPDEST DUP1 PUSH4 0x2F2FF15D GT PUSH2 0xE7 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x241 JUMPI DUP1 PUSH4 0x32729D5E EQ PUSH2 0x26A JUMPI DUP1 PUSH4 0x336875A1 EQ PUSH2 0x293 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x2BE JUMPI DUP1 PUSH4 0x42A4CF7D EQ PUSH2 0x2E7 JUMPI PUSH2 0x11F JUMP JUMPDEST DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x124 JUMPI DUP1 PUSH4 0x4F457FA EQ PUSH2 0x161 JUMPI DUP1 PUSH4 0xF9004B8 EQ PUSH2 0x18A JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x1C7 JUMPI DUP1 PUSH4 0x28699F17 EQ PUSH2 0x204 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x130 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x14B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x146 SWAP2 SWAP1 PUSH2 0x3398 JUMP JUMPDEST PUSH2 0x50E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x158 SWAP2 SWAP1 PUSH2 0x33E0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x16D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x188 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x183 SWAP2 SWAP1 PUSH2 0x394D JUMP JUMPDEST PUSH2 0x588 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x196 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1B1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1AC SWAP2 SWAP1 PUSH2 0x3B3E JUMP JUMPDEST PUSH2 0x5A2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1BE SWAP2 SWAP1 PUSH2 0x40E4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x1D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1EE PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E9 SWAP2 SWAP1 PUSH2 0x4106 JUMP JUMPDEST PUSH2 0x5BC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1FB SWAP2 SWAP1 PUSH2 0x4142 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x210 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x22B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x226 SWAP2 SWAP1 PUSH2 0x415D JUMP JUMPDEST PUSH2 0x5DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x238 SWAP2 SWAP1 PUSH2 0x420B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x24D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x268 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x263 SWAP2 SWAP1 PUSH2 0x428B JUMP JUMPDEST PUSH2 0x5F5 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x276 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x291 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x28C SWAP2 SWAP1 PUSH2 0x4106 JUMP JUMPDEST PUSH2 0x617 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x29F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2A8 PUSH2 0x672 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2B5 SWAP2 SWAP1 PUSH2 0x4142 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x2E5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2E0 SWAP2 SWAP1 PUSH2 0x428B JUMP JUMPDEST PUSH2 0x67C JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x2F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x30E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x309 SWAP2 SWAP1 PUSH2 0x4353 JUMP JUMPDEST PUSH2 0x6F7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x31B SWAP2 SWAP1 PUSH2 0x43D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x330 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x34B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x346 SWAP2 SWAP1 PUSH2 0x428B JUMP JUMPDEST PUSH2 0x841 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x358 SWAP2 SWAP1 PUSH2 0x33E0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x36D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x376 PUSH2 0x8CD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x383 SWAP2 SWAP1 PUSH2 0x4142 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3A6 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3A1 SWAP2 SWAP1 PUSH2 0x473D JUMP JUMPDEST PUSH2 0x8D4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3B3 SWAP2 SWAP1 PUSH2 0x40E4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3C8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3E3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3DE SWAP2 SWAP1 PUSH2 0x4106 JUMP JUMPDEST PUSH2 0xA71 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x3F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x3FA PUSH2 0xBA4 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x407 SWAP2 SWAP1 PUSH2 0x47E5 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x41C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x437 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x432 SWAP2 SWAP1 PUSH2 0x415D JUMP JUMPDEST PUSH2 0xBCE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x444 SWAP2 SWAP1 PUSH2 0x420B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x459 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x474 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x46F SWAP2 SWAP1 PUSH2 0x428B JUMP JUMPDEST PUSH2 0xCD8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x490 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x48B SWAP2 SWAP1 PUSH2 0x4888 JUMP JUMPDEST PUSH2 0xCFA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x49D SWAP2 SWAP1 PUSH2 0x40E4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4BB PUSH2 0xDEE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x4C8 SWAP2 SWAP1 PUSH2 0x48F2 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x4DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x4F8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x4F3 SWAP2 SWAP1 PUSH2 0x490D JUMP JUMPDEST PUSH2 0xE86 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x505 SWAP2 SWAP1 PUSH2 0x4985 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x581 JUMPI POP PUSH2 0x580 DUP3 PUSH2 0xEA0 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x595 DUP2 PUSH2 0xF0A JUMP JUMPDEST PUSH2 0x59E DUP3 PUSH2 0xF1E JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x5AA PUSH2 0x301F JUMP JUMPDEST PUSH2 0x5B5 DUP3 PUSH1 0x1 PUSH2 0xF2E JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 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 0x5E3 PUSH2 0x3045 JUMP JUMPDEST PUSH2 0x5EE DUP3 PUSH1 0x0 PUSH2 0xFBA JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x5FE DUP3 PUSH2 0x5BC JUMP JUMPDEST PUSH2 0x607 DUP2 PUSH2 0xF0A JUMP JUMPDEST PUSH2 0x611 DUP4 DUP4 PUSH2 0x1100 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL PUSH2 0x624 DUP2 PUSH2 0xF0A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SLOAD SWAP1 POP DUP3 PUSH1 0x1 DUP2 SWAP1 SSTORE POP PUSH32 0x80F9B6A37A676933A62100891A89F9C5EBD8D425DBC6D36160234076DD227ABF DUP2 PUSH1 0x1 SLOAD PUSH1 0x40 MLOAD PUSH2 0x665 SWAP3 SWAP2 SWAP1 PUSH2 0x49A0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x684 PUSH2 0x11F1 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x6E8 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6697B23200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6F2 DUP3 DUP3 PUSH2 0x11F9 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH2 0x6FF PUSH2 0x3080 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD MLOAD PUSH1 0x0 ADD MLOAD SWAP1 POP PUSH2 0x717 DUP2 PUSH1 0x8 PUSH2 0x12EB JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x727 DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x1564 JUMP JUMPDEST SWAP1 POP PUSH2 0x768 DUP3 PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x741 DUP7 PUSH2 0x15B7 JUMP JUMPDEST PUSH1 0x0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE POP PUSH2 0x178F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x773 DUP4 PUSH2 0x15B7 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x797 DUP5 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1931 JUMP JUMPDEST PUSH1 0x0 ADD MLOAD SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xC8 PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x7C7 DUP9 PUSH2 0x1A82 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x7DC DUP7 DUP7 PUSH2 0x1DD6 JUMP JUMPDEST DUP2 MSTORE POP DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE POP SWAP5 POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x55C67887BC565BE1497D05F1493B6B0B1A9F5240476EBF2ADA689D5C296493FA DUP7 PUSH1 0x40 MLOAD PUSH2 0x830 SWAP2 SWAP1 PUSH2 0x43D9 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x850 PUSH1 0x0 DUP1 SHL DUP4 PUSH2 0x1E09 JUMP JUMPDEST ISZERO PUSH2 0x85E JUMPI PUSH1 0x1 SWAP1 POP PUSH2 0x8C7 JUMP JUMPDEST PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x0 SHL DUP4 SUB PUSH2 0x8BA JUMPI PUSH2 0x8B2 PUSH32 0x22435ED027EDF5F902DC0093FBC24CDB50C05B5FD5F311B78C67C1CBAFF60E13 DUP4 PUSH2 0x1E09 JUMP JUMPDEST ISZERO SWAP1 POP PUSH2 0x8C7 JUMP JUMPDEST PUSH2 0x8C4 DUP4 DUP4 PUSH2 0x1E09 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST PUSH2 0x8DC PUSH2 0x301F JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD MLOAD PUSH1 0x0 ADD MLOAD SWAP1 POP PUSH2 0x8F4 DUP2 PUSH1 0x3 PUSH2 0x12EB JUMP JUMPDEST POP PUSH1 0x0 DUP4 PUSH1 0x40 ADD MLOAD SWAP1 POP PUSH1 0x0 PUSH2 0x1F4 SWAP1 POP PUSH1 0x0 PUSH2 0x910 DUP5 PUSH2 0x1E73 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x91D DUP6 PUSH2 0x15B7 JUMP JUMPDEST PUSH1 0x80 ADD MLOAD SWAP1 POP DUP2 ISZERO PUSH2 0x933 JUMPI PUSH2 0x932 DUP6 PUSH2 0x1E8B JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP8 PUSH1 0x40 ADD MLOAD MLOAD GT ISZERO PUSH2 0x965 JUMPI PUSH2 0x94B DUP6 DUP6 PUSH2 0x1F1F JUMP JUMPDEST POP DUP2 PUSH2 0x958 JUMPI PUSH1 0xC9 PUSH2 0x95B JUMP JUMPDEST PUSH1 0xC8 JUMPDEST PUSH1 0xFF AND SWAP3 POP PUSH2 0x96A JUMP JUMPDEST PUSH1 0xCC SWAP3 POP JUMPDEST PUSH2 0x9A1 DUP6 PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 DUP11 PUSH1 0x20 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE POP PUSH2 0x178F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9AC DUP7 PUSH2 0x15B7 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x9B9 DUP7 PUSH2 0x1FD0 JUMP JUMPDEST SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP7 PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x9D9 DUP10 PUSH2 0x1A82 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x9EE DUP5 DUP5 PUSH2 0x1DD6 JUMP JUMPDEST DUP2 MSTORE POP DUP9 PUSH1 0x0 ADD DUP2 SWAP1 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD DUP8 MLOAD DUP2 MSTORE POP DUP9 PUSH1 0x20 ADD DUP2 SWAP1 MSTORE POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x46DEF6174D80782227F3CCFBACA1EDBEC0D3B3185A673EC4E577EE84D6CC5146 DUP10 PUSH1 0x40 MLOAD PUSH2 0xA5D SWAP2 SWAP1 PUSH2 0x40E4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 SLOAD PUSH2 0xA7D DUP2 PUSH2 0xF0A JUMP JUMPDEST DUP2 PUSH1 0x1 SLOAD DUP2 EQ DUP1 PUSH2 0xA90 JUMPI POP PUSH1 0x0 DUP1 SHL DUP2 EQ JUMPDEST ISZERO PUSH2 0xAD2 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x125A2BB700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xAC9 SWAP2 SWAP1 PUSH2 0x4142 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF PUSH1 0x0 SHL DUP2 EQ DUP1 PUSH2 0xB23 JUMPI POP PUSH32 0x22435ED027EDF5F902DC0093FBC24CDB50C05B5FD5F311B78C67C1CBAFF60E13 DUP2 EQ JUMPDEST ISZERO PUSH2 0xB65 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0x125A2BB700000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB5C SWAP2 SWAP1 PUSH2 0x4142 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB71 DUP5 PUSH1 0x1 SLOAD PUSH2 0x2100 JUMP JUMPDEST DUP4 PUSH32 0x17A96DCFA97CA23BB8A7066CD78D58DE2DC54B954A551BA0113958BFE2E13C2A PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xF PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xBD6 PUSH2 0x3045 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD MLOAD SWAP1 POP PUSH2 0xBEA DUP2 PUSH1 0x5 PUSH2 0x12EB JUMP JUMPDEST POP PUSH2 0xBF4 DUP2 PUSH2 0x1E8B JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBFF DUP3 PUSH2 0x15B7 JUMP JUMPDEST SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xCC PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC20 DUP5 PUSH2 0x1A82 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC7E DUP4 PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xC4A JUMPI PUSH2 0xC49 PUSH2 0x3411 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 0xC78 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP PUSH2 0x1DD6 JUMP JUMPDEST DUP2 MSTORE POP SWAP3 POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x2BF365FF6E8001EA62DC0AC216F36CE036F1289E9BB002D9122024E5B23319C7 DUP5 PUSH1 0x40 MLOAD PUSH2 0xCC9 SWAP2 SWAP1 PUSH2 0x420B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCE1 DUP3 PUSH2 0x5BC JUMP JUMPDEST PUSH2 0xCEA DUP2 PUSH2 0xF0A JUMP JUMPDEST PUSH2 0xCF4 DUP4 DUP4 PUSH2 0x11F9 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0xD02 PUSH2 0x301F JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x0 ADD MLOAD PUSH1 0x0 ADD MLOAD SWAP1 POP PUSH2 0xD1A DUP2 PUSH1 0x4 PUSH2 0x12EB JUMP JUMPDEST POP PUSH1 0x0 DUP4 PUSH1 0x20 ADD MLOAD SWAP1 POP PUSH1 0x0 PUSH2 0xD30 DUP4 DUP4 PUSH2 0x1F1F JUMP JUMPDEST SWAP1 POP PUSH2 0xD41 DUP6 PUSH1 0x0 ADD MLOAD PUSH1 0x4 PUSH2 0xFBA JUMP JUMPDEST DUP5 PUSH1 0x0 ADD DUP2 SWAP1 MSTORE POP PUSH2 0xD5C DUP2 MLOAD PUSH2 0xD57 DUP6 PUSH2 0x215B JUMP JUMPDEST PUSH2 0x2186 JUMP JUMPDEST DUP5 PUSH1 0x0 ADD MLOAD PUSH1 0x0 ADD SWAP1 PUSH2 0xFFFF AND SWAP1 DUP2 PUSH2 0xFFFF AND DUP2 MSTORE POP POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xD8D DUP6 PUSH2 0x215B JUMP JUMPDEST DUP2 MSTORE POP DUP5 PUSH1 0x20 ADD DUP2 SWAP1 MSTORE POP CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x520FEC3C44F5956316E49DB6B3CF126095E5356D2F5F12B0BB4DEA8A13392BBC DUP6 PUSH1 0x40 MLOAD PUSH2 0xDDE SWAP2 SWAP1 PUSH2 0x40E4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xF PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xEF4E06EC 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 0xE5D 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 0xE81 SWAP2 SWAP1 PUSH2 0x4A07 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xE8E PUSH2 0x30A3 JUMP JUMPDEST PUSH2 0xE99 DUP3 PUSH1 0x6 PUSH2 0x12EB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xF1B DUP2 PUSH2 0xF16 PUSH2 0x11F1 JUMP JUMPDEST PUSH2 0x21B3 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xF2B PUSH1 0x0 DUP1 SHL DUP3 PUSH2 0x2204 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0xF36 PUSH2 0x301F JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH1 0x0 ADD MLOAD PUSH1 0x0 ADD MLOAD SWAP1 POP PUSH1 0x0 PUSH2 0xF53 DUP6 PUSH1 0x0 ADD MLOAD DUP6 PUSH2 0xFBA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xF65 DUP4 DUP8 PUSH1 0x20 ADD MLOAD PUSH2 0x1931 JUMP JUMPDEST SWAP1 POP DUP1 DUP5 PUSH1 0x20 ADD DUP2 SWAP1 MSTORE POP PUSH2 0x1F4 DUP3 PUSH1 0x0 ADD MLOAD PUSH2 0xFFFF AND SUB PUSH2 0xFA8 JUMPI PUSH2 0xF94 DUP2 PUSH1 0x0 ADD MLOAD MLOAD DUP3 PUSH1 0x20 ADD MLOAD PUSH2 0x2186 JUMP JUMPDEST DUP3 PUSH1 0x0 ADD SWAP1 PUSH2 0xFFFF AND SWAP1 DUP2 PUSH2 0xFFFF AND DUP2 MSTORE POP POP JUMPDEST DUP2 DUP5 PUSH1 0x0 ADD DUP2 SWAP1 MSTORE POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0xFC2 PUSH2 0x3045 JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH1 0x0 ADD MLOAD SWAP1 POP PUSH2 0xFD5 DUP2 DUP5 PUSH2 0x12EB JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0xFE1 DUP3 PUSH2 0x15B7 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xFEE DUP4 PUSH2 0x1A82 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x101F DUP4 PUSH2 0x1016 DUP7 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1931 JUMP JUMPDEST PUSH1 0x0 ADD MLOAD PUSH2 0x1DD6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1F4 SWAP1 POP DUP8 PUSH1 0x40 ADD MLOAD DUP3 EQ DUP1 PUSH2 0x1052 JUMPI POP DUP8 PUSH1 0x20 ADD MLOAD DUP5 PUSH1 0x60 ADD MLOAD GT ISZERO DUP1 ISZERO PUSH2 0x1051 JUMPI POP PUSH1 0x0 DUP5 PUSH1 0x60 ADD MLOAD GT JUMPDEST JUMPDEST ISZERO PUSH2 0x1061 JUMPI PUSH2 0x130 SWAP1 POP PUSH2 0x10CE JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH1 0x40 ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH2 0xFFFF AND EQ PUSH2 0x1085 JUMPI DUP3 PUSH1 0x40 ADD MLOAD PUSH1 0x0 ADD MLOAD SWAP1 POP PUSH2 0x10CD JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP2 GT ISZERO PUSH2 0x1099 JUMPI PUSH2 0x1098 PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST DUP8 PUSH1 0x8 DUP2 GT ISZERO PUSH2 0x10AC JUMPI PUSH2 0x10AB PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST SUB PUSH2 0x10CC JUMPI PUSH1 0x0 PUSH2 0x10BC DUP7 PUSH2 0x215B JUMP JUMPDEST SWAP1 POP PUSH2 0x10C8 DUP2 DUP3 PUSH2 0x2186 JUMP JUMPDEST SWAP2 POP POP JUMPDEST JUMPDEST JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP3 PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE POP SWAP6 POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x110C DUP4 DUP4 PUSH2 0x841 JUMP JUMPDEST PUSH2 0x11E6 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 0x1183 PUSH2 0x11F1 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 0x11EB JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1205 DUP4 DUP4 PUSH2 0x841 JUMP JUMPDEST ISZERO PUSH2 0x12E0 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 0x127D PUSH2 0x11F1 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 0x12E5 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x12F3 PUSH2 0x30A3 JUMP JUMPDEST DUP3 DUP3 PUSH2 0x12FF DUP3 DUP3 PUSH2 0x2477 JUMP JUMPDEST PUSH2 0x1362 JUMPI PUSH2 0x130C DUP3 PUSH2 0x1A82 JUMP JUMPDEST PUSH1 0x20 ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH2 0x131D DUP4 PUSH2 0x1A82 JUMP JUMPDEST PUSH1 0x0 ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x1695ED8D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1359 SWAP3 SWAP2 SWAP1 PUSH2 0x4AA0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x136B DUP3 PUSH2 0x24D1 JUMP JUMPDEST ISZERO PUSH2 0x13C0 JUMPI PUSH2 0x1379 DUP3 PUSH2 0x1A82 JUMP JUMPDEST PUSH1 0x20 ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH1 0x1 PUSH1 0x40 MLOAD PUSH32 0x1695ED8D00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x13B7 SWAP3 SWAP2 SWAP1 PUSH2 0x4B28 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x3 PUSH1 0x8 DUP2 GT ISZERO PUSH2 0x13D4 JUMPI PUSH2 0x13D3 PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST DUP2 PUSH1 0x8 DUP2 GT ISZERO PUSH2 0x13E7 JUMPI PUSH2 0x13E6 PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST EQ DUP1 PUSH2 0x1416 JUMPI POP PUSH1 0x8 DUP1 DUP2 GT ISZERO PUSH2 0x1401 JUMPI PUSH2 0x1400 PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST DUP2 PUSH1 0x8 DUP2 GT ISZERO PUSH2 0x1414 JUMPI PUSH2 0x1413 PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST EQ JUMPDEST DUP1 PUSH2 0x1445 JUMPI POP PUSH1 0x6 PUSH1 0x8 DUP2 GT ISZERO PUSH2 0x1430 JUMPI PUSH2 0x142F PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST DUP2 PUSH1 0x8 DUP2 GT ISZERO PUSH2 0x1443 JUMPI PUSH2 0x1442 PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST EQ JUMPDEST ISZERO DUP1 ISZERO PUSH2 0x1458 JUMPI POP PUSH2 0x1456 DUP3 PUSH2 0x1E73 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x14AA JUMPI PUSH2 0x1466 DUP3 PUSH2 0x1A82 JUMP JUMPDEST PUSH1 0x0 ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH1 0x40 MLOAD PUSH32 0x658435F300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14A1 SWAP2 SWAP1 PUSH2 0x4BB0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x14B5 DUP3 DUP3 CALLER PUSH2 0x2503 JUMP JUMPDEST PUSH2 0x14FF JUMPI PUSH2 0x14C3 DUP3 DUP3 PUSH2 0x2526 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH32 0x84E9E27900000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14F6 SWAP2 SWAP1 PUSH2 0x4C2A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x6 PUSH1 0x8 DUP2 GT ISZERO PUSH2 0x1513 JUMPI PUSH2 0x1512 PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST DUP5 PUSH1 0x8 DUP2 GT ISZERO PUSH2 0x1526 JUMPI PUSH2 0x1525 PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST SUB PUSH2 0x155C JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xCC PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x154A DUP8 PUSH2 0x1A82 JUMP JUMPDEST PUSH1 0x20 ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH2 0xFFFF AND DUP2 MSTORE POP SWAP3 POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x156F DUP3 PUSH2 0x2588 JUMP JUMPDEST SWAP1 POP PUSH2 0x157B DUP2 DUP4 PUSH2 0x2204 JUMP JUMPDEST PUSH32 0x516A84C6E4979EF4F74784ED61E83AA5CBE2779D10935D7D9564B2A098D4A5DF DUP2 PUSH1 0x40 MLOAD PUSH2 0x15AA SWAP2 SWAP1 PUSH2 0x4142 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x15BF PUSH2 0x30C5 JUMP JUMPDEST PUSH1 0x11 DUP3 PUSH1 0x40 MLOAD PUSH2 0x15CF SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xF0 SHL PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xF0 SHL PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x4 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xF0 SHL PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x6 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xF0 SHL PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1798 DUP3 PUSH2 0x25B8 JUMP JUMPDEST PUSH1 0x11 DUP3 PUSH1 0x40 MLOAD PUSH2 0x17A8 SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD DUP2 PUSH1 0x20 ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x11 DUP3 PUSH1 0x40 MLOAD PUSH2 0x17D3 SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD DUP2 PUSH1 0x40 ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x11 DUP3 PUSH1 0x40 MLOAD PUSH2 0x17FE SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x3 ADD SLOAD DUP2 PUSH1 0x60 ADD DUP2 DUP2 MSTORE POP POP DUP1 PUSH1 0x11 DUP4 PUSH1 0x40 MLOAD PUSH2 0x182A SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH2 0xFFFF MUL NOT AND SWAP1 DUP4 PUSH1 0xF0 SHR MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x2 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH2 0xFFFF MUL NOT AND SWAP1 DUP4 PUSH1 0xF0 SHR MUL OR SWAP1 SSTORE POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x4 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH2 0xFFFF MUL NOT AND SWAP1 DUP4 PUSH1 0xF0 SHR MUL OR SWAP1 SSTORE POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x6 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH2 0xFFFF MUL NOT AND SWAP1 DUP4 PUSH1 0xF0 SHR MUL OR SWAP1 SSTORE POP POP POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD SSTORE PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD SSTORE PUSH1 0x80 DUP3 ADD MLOAD DUP2 PUSH1 0x4 ADD SSTORE SWAP1 POP POP PUSH32 0x1C306E70C05992619E2128AD1EF88DF75F36C9476282E59F51401B2ABAA42E4E DUP3 PUSH1 0x40 MLOAD PUSH2 0x1925 SWAP2 SWAP1 PUSH2 0x4CE4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0x1939 PUSH2 0x30FD JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1944 DUP5 PUSH2 0x215B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1952 DUP5 DUP4 PUSH2 0x26AA JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH1 0x1 DUP3 PUSH1 0x0 ADD MLOAD DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0x196C SWAP2 SWAP1 PUSH2 0x4D35 JUMP JUMPDEST PUSH2 0x1976 SWAP2 SWAP1 PUSH2 0x4D78 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH3 0x186A0 DUP3 GT PUSH2 0x198A JUMPI DUP2 PUSH2 0x198F JUMP JUMPDEST PUSH3 0x186A0 JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x19AD JUMPI PUSH2 0x19AC PUSH2 0x3411 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 0x19DB JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1A5F JUMPI PUSH1 0x12 DUP10 PUSH1 0x40 MLOAD PUSH2 0x19F9 SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP2 DUP7 PUSH1 0x0 ADD MLOAD PUSH2 0x1A17 SWAP2 SWAP1 PUSH2 0x4DBC JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x1A28 JUMPI PUSH2 0x1A27 PUSH2 0x4DF0 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1A46 JUMPI PUSH2 0x1A45 PUSH2 0x4DF0 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x19E1 JUMP JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 ADD DUP7 DUP2 MSTORE POP SWAP6 POP POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1A8A PUSH2 0x3117 JUMP JUMPDEST PUSH1 0x10 PUSH1 0x0 PUSH2 0x1A97 DUP5 PUSH2 0x15B7 JUMP JUMPDEST PUSH1 0x80 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND ISZERO ISZERO ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x1 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1B04 JUMPI PUSH2 0x1B03 PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x1B16 JUMPI PUSH2 0x1B15 PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH2 0x1B2A SWAP1 PUSH2 0x4E4E JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1B56 SWAP1 PUSH2 0x4E4E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1BA3 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1B78 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1BA3 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1B86 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x1C2F JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x1C1B JUMPI JUMPDEST POP POP POP POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x1C5D JUMPI PUSH2 0x1C5C PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x1C6F JUMPI PUSH2 0x1C6E PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD DUP1 SLOAD PUSH2 0x1C83 SWAP1 PUSH2 0x4E4E JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1CAF SWAP1 PUSH2 0x4E4E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1CFC JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1CD1 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1CFC JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1CDF JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x6 DUP3 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH2 0xFFFF AND PUSH2 0xFFFF AND PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD DUP1 SLOAD PUSH2 0x1D49 SWAP1 PUSH2 0x4E4E JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1D75 SWAP1 PUSH2 0x4E4E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1DC2 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1D97 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1DC2 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1DA5 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP DUP2 MSTORE POP POP DUP2 MSTORE POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1DEB SWAP3 SWAP2 SWAP1 PUSH2 0x4F57 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 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 DUP1 PUSH2 0x1E7F DUP4 PUSH2 0x15B7 JUMP JUMPDEST PUSH1 0x60 ADD MLOAD GT SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x12 DUP2 PUSH1 0x40 MLOAD PUSH2 0x1E9B SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x0 PUSH2 0x1EB5 SWAP2 SWAP1 PUSH2 0x314A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x11 DUP3 PUSH1 0x40 MLOAD PUSH2 0x1EC7 SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x1 ADD DUP2 SWAP1 SSTORE POP PUSH2 0x1EE5 DUP2 PUSH2 0x2837 JUMP JUMPDEST PUSH32 0x55B00E14F3647CE9AF043F85E942A4B8169374D43992A7044AD50A8A7E1845A DUP2 PUSH1 0x40 MLOAD PUSH2 0x1F14 SWAP2 SWAP1 PUSH2 0x4CE4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1F3C JUMPI PUSH2 0x1F3B PUSH2 0x3411 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 0x1F6A JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x1FC9 JUMPI PUSH2 0x1F9D DUP5 DUP5 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1F90 JUMPI PUSH2 0x1F8F PUSH2 0x4DF0 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH2 0x2A4E JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1FB0 JUMPI PUSH2 0x1FAF PUSH2 0x4DF0 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x1F70 JUMP JUMPDEST POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP3 MLOAD SWAP1 POP DUP1 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1FF2 JUMPI PUSH2 0x1FF1 PUSH2 0x3411 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 0x2020 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP2 POP PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x20F9 JUMPI PUSH2 0x2036 PUSH2 0xDEE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xE8A4C04E DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x2064 JUMPI PUSH2 0x2063 PUSH2 0x4DF0 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH1 0x0 ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x208C SWAP2 SWAP1 PUSH2 0x4FDE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x20A9 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 0x20CD SWAP2 SWAP1 PUSH2 0x5015 JUMP JUMPDEST DUP4 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x20E0 JUMPI PUSH2 0x20DF PUSH2 0x4DF0 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 DUP1 PUSH1 0x1 ADD SWAP2 POP POP PUSH2 0x2026 JUMP JUMPDEST POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x210B DUP4 PUSH2 0x5BC 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 PUSH1 0x12 DUP3 PUSH1 0x40 MLOAD PUSH2 0x216D SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP1 SLOAD SWAP1 POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 SUB PUSH2 0x2198 JUMPI PUSH1 0xCC SWAP1 POP PUSH2 0x21AD JUMP JUMPDEST DUP3 DUP3 SUB PUSH2 0x21A8 JUMPI PUSH1 0xC8 SWAP1 POP PUSH2 0x21AD JUMP JUMPDEST PUSH1 0xCE SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x21BD DUP3 DUP3 PUSH2 0x841 JUMP JUMPDEST PUSH2 0x2200 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH32 0xE2517D3F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x21F7 SWAP3 SWAP2 SWAP1 PUSH2 0x5051 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x40 ADD MLOAD PUSH1 0x0 ADD MLOAD SWAP1 POP PUSH1 0x0 DUP2 PUSH2 0xFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x223B JUMPI POP PUSH2 0x12C DUP2 PUSH2 0xFFFF AND LT DUP1 PUSH2 0x223A JUMPI POP PUSH2 0x136 DUP2 PUSH2 0xFFFF AND GT JUMPDEST JUMPDEST ISZERO PUSH2 0x227D JUMPI DUP2 PUSH1 0x40 MLOAD PUSH32 0x3AFFF42B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2274 SWAP2 SWAP1 PUSH2 0x50D8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0x20 ADD MLOAD MLOAD SWAP1 POP PUSH2 0x2293 PUSH2 0x2C68 JUMP JUMPDEST PUSH2 0xFFFF AND DUP2 PUSH1 0xFF AND EQ PUSH2 0x22DD JUMPI DUP3 PUSH1 0x40 MLOAD PUSH32 0x3AFFF42B00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x22D4 SWAP2 SWAP1 PUSH2 0x50D8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 PUSH1 0x10 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x1 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x2345 JUMPI PUSH2 0x2344 PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP2 PUSH2 0x235F SWAP2 SWAP1 PUSH2 0x529C JUMP JUMPDEST POP POP POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH2 0xFFFF MUL NOT AND SWAP1 DUP4 PUSH2 0xFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 PUSH2 0x23AA SWAP3 SWAP2 SWAP1 PUSH2 0x316B JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x2 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x23D6 JUMPI PUSH2 0x23D5 PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x60 DUP3 ADD MLOAD DUP2 PUSH1 0x3 ADD SWAP1 DUP2 PUSH2 0x23F0 SWAP2 SWAP1 PUSH2 0x529C JUMP JUMPDEST POP POP POP PUSH1 0x40 DUP3 ADD MLOAD DUP2 PUSH1 0x6 ADD PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH2 0xFFFF MUL NOT AND SWAP1 DUP4 PUSH2 0xFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SWAP1 DUP2 PUSH2 0x2434 SWAP2 SWAP1 PUSH2 0x529C JUMP JUMPDEST POP POP POP SWAP1 POP POP PUSH32 0xC4C76143CBD497ADC2B5BC159D932DCFA8483928A0D22661D1404EF1C68984A1 DUP5 PUSH1 0x40 MLOAD PUSH2 0x2469 SWAP2 SWAP1 PUSH2 0x4142 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2486 PUSH1 0x0 DUP1 SHL CALLER PUSH2 0x841 JUMP JUMPDEST ISZERO PUSH2 0x2494 JUMPI PUSH1 0x1 SWAP1 POP PUSH2 0x24CB JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x8 DUP2 GT ISZERO PUSH2 0x24A9 JUMPI PUSH2 0x24A8 PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST PUSH1 0xFF AND PUSH1 0x1 SWAP1 SHL PUSH2 0x24B9 DUP6 PUSH2 0x1A82 JUMP JUMPDEST PUSH1 0x20 ADD MLOAD PUSH1 0x0 ADD MLOAD AND PUSH2 0xFFFF AND EQ ISZERO SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24DC DUP3 PUSH2 0x1A82 JUMP JUMPDEST PUSH1 0x0 ADD MLOAD PUSH1 0x0 ADD MLOAD DUP1 ISZERO PUSH2 0x24FC JUMPI POP PUSH1 0x0 PUSH2 0x24F6 DUP4 PUSH2 0x15B7 JUMP JUMPDEST PUSH1 0x40 ADD MLOAD GT JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2510 DUP6 DUP6 PUSH2 0x2526 JUMP JUMPDEST SWAP1 POP PUSH2 0x251C DUP2 DUP5 PUSH2 0x841 JUMP JUMPDEST SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2532 DUP5 PUSH2 0x1A82 JUMP JUMPDEST PUSH1 0x20 ADD MLOAD PUSH1 0x20 ADD MLOAD SWAP1 POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x2551 JUMPI PUSH1 0x0 DUP1 SHL SWAP2 POP POP PUSH2 0x2582 JUMP JUMPDEST DUP1 DUP4 PUSH1 0x8 DUP2 GT ISZERO PUSH2 0x2565 JUMPI PUSH2 0x2564 PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x2576 JUMPI PUSH2 0x2575 PUSH2 0x4DF0 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x259B SWAP2 SWAP1 PUSH2 0x50D8 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 SWAP2 SWAP1 POP JUMP JUMPDEST TIMESTAMP PUSH1 0x11 DUP3 PUSH1 0x40 MLOAD PUSH2 0x25C9 SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x3 ADD DUP2 SWAP1 SSTORE POP PUSH1 0x0 PUSH1 0x12 DUP3 PUSH1 0x40 MLOAD PUSH2 0x25F0 SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP1 SLOAD SWAP1 POP GT ISZERO PUSH2 0x2644 JUMPI PUSH1 0x11 DUP2 PUSH1 0x40 MLOAD PUSH2 0x2618 SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x2 ADD PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x263A SWAP1 PUSH2 0x536E JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP PUSH2 0x26A7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x11 DUP3 PUSH1 0x40 MLOAD PUSH2 0x2656 SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD GT ISZERO PUSH2 0x26A6 JUMPI PUSH1 0x11 DUP2 PUSH1 0x40 MLOAD PUSH2 0x267E SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x2 ADD PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x26A0 SWAP1 PUSH2 0x536E JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH2 0x26B2 PUSH2 0x31B8 JUMP JUMPDEST PUSH1 0x0 DUP3 SWAP1 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP5 PUSH1 0x0 ADD MLOAD EQ DUP1 ISZERO PUSH2 0x26EE JUMPI POP PUSH1 0x0 DUP5 PUSH1 0x20 ADD MLOAD EQ JUMPDEST ISZERO PUSH2 0x2712 JUMPI PUSH1 0x0 DUP5 PUSH1 0x0 ADD DUP2 DUP2 MSTORE POP POP PUSH1 0x0 DUP5 PUSH1 0x20 ADD DUP2 DUP2 MSTORE POP POP DUP4 SWAP2 POP POP PUSH2 0x2831 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x20 ADD MLOAD EQ DUP1 ISZERO PUSH2 0x272A JUMPI POP PUSH1 0x0 DUP5 PUSH1 0x0 ADD MLOAD EQ JUMPDEST ISZERO PUSH2 0x274E JUMPI PUSH1 0x1 DUP2 PUSH2 0x273C SWAP2 SWAP1 PUSH2 0x4D35 JUMP JUMPDEST DUP5 PUSH1 0x20 ADD DUP2 DUP2 MSTORE POP POP DUP4 SWAP2 POP POP PUSH2 0x2831 JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x0 ADD MLOAD SLT ISZERO PUSH2 0x2781 JUMPI DUP4 PUSH1 0x0 ADD MLOAD PUSH1 0x1 DUP3 PUSH2 0x276D SWAP2 SWAP1 PUSH2 0x4D35 JUMP JUMPDEST PUSH2 0x2777 SWAP2 SWAP1 PUSH2 0x4D78 JUMP JUMPDEST DUP5 PUSH1 0x0 ADD DUP2 DUP2 MSTORE POP POP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x20 ADD MLOAD SLT ISZERO PUSH2 0x27B4 JUMPI DUP4 PUSH1 0x20 ADD MLOAD PUSH1 0x1 DUP3 PUSH2 0x27A0 SWAP2 SWAP1 PUSH2 0x4D35 JUMP JUMPDEST PUSH2 0x27AA SWAP2 SWAP1 PUSH2 0x4D78 JUMP JUMPDEST DUP5 PUSH1 0x20 ADD DUP2 DUP2 MSTORE POP POP JUMPDEST PUSH1 0x1 DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x27C5 SWAP2 SWAP1 PUSH2 0x4D78 JUMP JUMPDEST DUP5 PUSH1 0x0 ADD MLOAD SGT DUP1 PUSH2 0x27DA JUMPI POP PUSH1 0x0 DUP5 PUSH1 0x0 ADD MLOAD SLT JUMPDEST DUP1 PUSH2 0x27E8 JUMPI POP DUP1 DUP5 PUSH1 0x20 ADD MLOAD SGT JUMPDEST ISZERO PUSH2 0x282C JUMPI DUP4 DUP2 PUSH1 0x40 MLOAD PUSH32 0x6DE8558200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2823 SWAP3 SWAP2 SWAP1 PUSH2 0x544F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP4 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x29ED DUP2 PUSH1 0xA PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xF0 SHL PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x2 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xF0 SHL PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x4 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xF0 SHL PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP3 ADD PUSH1 0x6 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xF0 SHL PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE POP POP DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x3 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x4 DUP3 ADD SLOAD DUP2 MSTORE POP POP PUSH2 0x178F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x11 DUP3 PUSH1 0x40 MLOAD PUSH2 0x29FF SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x3 ADD DUP2 SWAP1 SSTORE POP PUSH32 0x510FB78F495511D68F630CFABC06D8A58D5AEB7BC63F3538B9CD46923AA23E5D DUP2 PUSH1 0x40 MLOAD PUSH2 0x2A43 SWAP2 SWAP1 PUSH2 0x4CE4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A58 PUSH2 0xDEE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xE8A4C04E DUP4 PUSH1 0x0 ADD MLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2A94 SWAP2 SWAP1 PUSH2 0x4FDE JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2AB1 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 0x2AD5 SWAP2 SWAP1 PUSH2 0x5015 JUMP JUMPDEST SWAP1 POP PUSH1 0xF PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF6E20077 PUSH1 0xF PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xFD45D702 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2B70 SWAP2 SWAP1 PUSH2 0x4142 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2B8D 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 0x2BB1 SWAP2 SWAP1 PUSH2 0x54A0 JUMP JUMPDEST DUP5 PUSH1 0x0 ADD MLOAD DUP6 PUSH1 0x40 ADD MLOAD PUSH1 0x40 MLOAD DUP5 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2BD8 SWAP3 SWAP2 SWAP1 PUSH2 0x54CD JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x2BF6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP 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 0x2C1B SWAP2 SWAP1 PUSH2 0x5015 JUMP JUMPDEST POP PUSH32 0x688CFEFB012EBDDC451BD5077139509D5FBFDFC92C33CBA16D7E76F16C2F5DA8 DUP4 PUSH1 0x40 MLOAD PUSH2 0x2C4B SWAP2 SWAP1 PUSH2 0x4CE4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH2 0x2C62 DUP4 DUP3 DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x2C8E JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x8 DUP1 DUP2 GT ISZERO PUSH2 0x2C7F JUMPI PUSH2 0x2C7E PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST PUSH2 0x2C89 SWAP2 SWAP1 PUSH2 0x54FD JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C99 DUP5 PUSH2 0x215B JUMP JUMPDEST SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x2CF7 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE POP DUP3 PUSH1 0x40 MLOAD PUSH32 0x6DE8558200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2CEE SWAP3 SWAP2 SWAP1 PUSH2 0x544F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 DUP3 SUB PUSH2 0x2E00 JUMPI PUSH1 0x12 DUP5 PUSH1 0x40 MLOAD PUSH2 0x2D0E SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP4 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP SSTORE PUSH2 0x2D4B PUSH2 0xDEE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x2BE681F5 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2D83 SWAP2 SWAP1 PUSH2 0x4142 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2DA0 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 0x2DC4 SWAP2 SWAP1 PUSH2 0x54A0 JUMP JUMPDEST PUSH1 0x11 DUP6 PUSH1 0x40 MLOAD PUSH2 0x2DD4 SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x1 ADD PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x2DF4 SWAP2 SWAP1 PUSH2 0x4DBC JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP PUSH2 0x2FD7 JUMP JUMPDEST PUSH2 0x2E08 PUSH2 0xDEE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x2BE681F5 PUSH1 0x12 DUP7 PUSH1 0x40 MLOAD PUSH2 0x2E33 SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x2E53 JUMPI PUSH2 0x2E52 PUSH2 0x4DF0 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2E7A SWAP2 SWAP1 PUSH2 0x4142 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2E97 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 0x2EBB SWAP2 SWAP1 PUSH2 0x54A0 JUMP JUMPDEST PUSH2 0x2EC3 PUSH2 0xDEE JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0x2BE681F5 DUP6 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2EFB SWAP2 SWAP1 PUSH2 0x4142 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2F18 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 0x2F3C SWAP2 SWAP1 PUSH2 0x54A0 JUMP JUMPDEST PUSH1 0x11 DUP7 PUSH1 0x40 MLOAD PUSH2 0x2F4C SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD PUSH2 0x2F68 SWAP2 SWAP1 PUSH2 0x4DBC JUMP JUMPDEST PUSH2 0x2F72 SWAP2 SWAP1 PUSH2 0x5533 JUMP JUMPDEST PUSH1 0x11 DUP6 PUSH1 0x40 MLOAD PUSH2 0x2F82 SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 PUSH1 0x1 ADD DUP2 SWAP1 SSTORE POP DUP3 PUSH1 0x12 DUP6 PUSH1 0x40 MLOAD PUSH2 0x2FA8 SWAP2 SWAP1 PUSH2 0x4C94 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 KECCAK256 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x2FC8 JUMPI PUSH2 0x2FC7 PUSH2 0x4DF0 JUMP JUMPDEST JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD DUP2 SWAP1 SSTORE POP JUMPDEST PUSH2 0x2FE0 DUP5 PUSH2 0x25B8 JUMP JUMPDEST PUSH32 0xD9104DBB62C9778E68F07361617C0E7C290633D8FC9D4335DD0710803633B93B DUP5 DUP4 PUSH1 0x40 MLOAD PUSH2 0x3011 SWAP3 SWAP2 SWAP1 PUSH2 0x5576 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x3032 PUSH2 0x3045 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x303F PUSH2 0x30FD JUMP JUMPDEST DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3063 PUSH2 0x3117 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3070 PUSH2 0x30C5 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x3093 PUSH2 0x3045 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH2 0xFFFF AND DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xA0 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x30D8 PUSH2 0x31D2 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP1 NOT AND DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x312A PUSH2 0x327E JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3137 PUSH2 0x32B3 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3144 PUSH2 0x32F1 JUMP JUMPDEST DUP2 MSTORE POP SWAP1 JUMP JUMPDEST POP DUP1 SLOAD PUSH1 0x0 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3168 SWAP2 SWAP1 PUSH2 0x330F JUMP JUMPDEST POP JUMP JUMPDEST DUP3 DUP1 SLOAD DUP3 DUP3 SSTORE SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 DUP2 ADD SWAP3 DUP3 ISZERO PUSH2 0x31A7 JUMPI SWAP2 PUSH1 0x20 MUL DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x31A6 JUMPI DUP3 MLOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x318B JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x31B4 SWAP2 SWAP1 PUSH2 0x330F JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH30 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x6 DUP2 GT ISZERO PUSH2 0x32A6 JUMPI PUSH2 0x32A5 PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x5 DUP2 GT ISZERO PUSH2 0x32E4 JUMPI PUSH2 0x32E3 PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 PUSH2 0xFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x3328 JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x3310 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3375 DUP2 PUSH2 0x3340 JUMP JUMPDEST DUP2 EQ PUSH2 0x3380 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3392 DUP2 PUSH2 0x336C JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x33AE JUMPI PUSH2 0x33AD PUSH2 0x3336 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x33BC DUP5 DUP3 DUP6 ADD PUSH2 0x3383 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x33DA DUP2 PUSH2 0x33C5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x33F5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x33D1 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 0x3449 DUP3 PUSH2 0x3400 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x3468 JUMPI PUSH2 0x3467 PUSH2 0x3411 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x347B PUSH2 0x332C JUMP JUMPDEST SWAP1 POP PUSH2 0x3487 DUP3 DUP3 PUSH2 0x3440 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x349A DUP2 PUSH2 0x33C5 JUMP JUMPDEST DUP2 EQ PUSH2 0x34A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x34B7 DUP2 PUSH2 0x3491 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x7 DUP2 LT PUSH2 0x34CA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x34DC DUP2 PUSH2 0x34BD JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x3507 JUMPI PUSH2 0x3506 PUSH2 0x3411 JUMP JUMPDEST JUMPDEST PUSH2 0x3510 DUP3 PUSH2 0x3400 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 0x353F PUSH2 0x353A DUP5 PUSH2 0x34EC JUMP JUMPDEST PUSH2 0x3471 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x355B JUMPI PUSH2 0x355A PUSH2 0x34E7 JUMP JUMPDEST JUMPDEST PUSH2 0x3566 DUP5 DUP3 DUP6 PUSH2 0x351D JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3583 JUMPI PUSH2 0x3582 PUSH2 0x34E2 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3593 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x352C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x35B2 JUMPI PUSH2 0x35B1 PUSH2 0x33FB JUMP JUMPDEST JUMPDEST PUSH2 0x35BC PUSH1 0x60 PUSH2 0x3471 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x35CC DUP5 DUP3 DUP6 ADD PUSH2 0x34A8 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x35E0 DUP5 DUP3 DUP6 ADD PUSH2 0x34CD JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3604 JUMPI PUSH2 0x3603 PUSH2 0x348C JUMP JUMPDEST JUMPDEST PUSH2 0x3610 DUP5 DUP3 DUP6 ADD PUSH2 0x356E JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3633 DUP2 PUSH2 0x361C JUMP JUMPDEST DUP2 EQ PUSH2 0x363E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3650 DUP2 PUSH2 0x362A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x3671 JUMPI PUSH2 0x3670 PUSH2 0x3411 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 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x369A DUP2 PUSH2 0x3687 JUMP JUMPDEST DUP2 EQ PUSH2 0x36A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x36B7 DUP2 PUSH2 0x3691 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x36D0 PUSH2 0x36CB DUP5 PUSH2 0x3656 JUMP JUMPDEST PUSH2 0x3471 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 0x36F3 JUMPI PUSH2 0x36F2 PUSH2 0x3682 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x371C JUMPI DUP1 PUSH2 0x3708 DUP9 DUP3 PUSH2 0x36A8 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x36F5 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x373B JUMPI PUSH2 0x373A PUSH2 0x34E2 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x374B DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x36BD JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x6 DUP2 LT PUSH2 0x3761 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3773 DUP2 PUSH2 0x3754 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x378F JUMPI PUSH2 0x378E PUSH2 0x33FB JUMP JUMPDEST JUMPDEST PUSH2 0x3799 PUSH1 0x80 PUSH2 0x3471 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x37A9 DUP5 DUP3 DUP6 ADD PUSH2 0x3641 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x37CD JUMPI PUSH2 0x37CC PUSH2 0x348C JUMP JUMPDEST JUMPDEST PUSH2 0x37D9 DUP5 DUP3 DUP6 ADD PUSH2 0x3726 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x37ED DUP5 DUP3 DUP6 ADD PUSH2 0x3764 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3811 JUMPI PUSH2 0x3810 PUSH2 0x348C JUMP JUMPDEST JUMPDEST PUSH2 0x381D DUP5 DUP3 DUP6 ADD PUSH2 0x356E JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x383F JUMPI PUSH2 0x383E PUSH2 0x33FB JUMP JUMPDEST JUMPDEST PUSH2 0x3849 PUSH1 0x40 PUSH2 0x3471 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3859 DUP5 DUP3 DUP6 ADD PUSH2 0x3641 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x387D JUMPI PUSH2 0x387C PUSH2 0x348C JUMP JUMPDEST JUMPDEST PUSH2 0x3889 DUP5 DUP3 DUP6 ADD PUSH2 0x356E JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x38AB JUMPI PUSH2 0x38AA PUSH2 0x33FB JUMP JUMPDEST JUMPDEST PUSH2 0x38B5 PUSH1 0x60 PUSH2 0x3471 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x38D5 JUMPI PUSH2 0x38D4 PUSH2 0x348C JUMP JUMPDEST JUMPDEST PUSH2 0x38E1 DUP5 DUP3 DUP6 ADD PUSH2 0x359C JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3905 JUMPI PUSH2 0x3904 PUSH2 0x348C JUMP JUMPDEST JUMPDEST PUSH2 0x3911 DUP5 DUP3 DUP6 ADD PUSH2 0x3779 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3935 JUMPI PUSH2 0x3934 PUSH2 0x348C JUMP JUMPDEST JUMPDEST PUSH2 0x3941 DUP5 DUP3 DUP6 ADD PUSH2 0x3829 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3963 JUMPI PUSH2 0x3962 PUSH2 0x3336 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3981 JUMPI PUSH2 0x3980 PUSH2 0x333B JUMP JUMPDEST JUMPDEST PUSH2 0x398D DUP5 DUP3 DUP6 ADD PUSH2 0x3895 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x39A9 DUP2 PUSH2 0x3996 JUMP JUMPDEST DUP2 EQ PUSH2 0x39B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x39C6 DUP2 PUSH2 0x39A0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x39E2 JUMPI PUSH2 0x39E1 PUSH2 0x33FB JUMP JUMPDEST JUMPDEST PUSH2 0x39EC PUSH1 0x60 PUSH2 0x3471 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3A0C JUMPI PUSH2 0x3A0B PUSH2 0x348C JUMP JUMPDEST JUMPDEST PUSH2 0x3A18 DUP5 DUP3 DUP6 ADD PUSH2 0x356E JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x3A2C DUP5 DUP3 DUP6 ADD PUSH2 0x39B7 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x3A40 DUP5 DUP3 DUP6 ADD PUSH2 0x36A8 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3A5F DUP2 PUSH2 0x3A4C JUMP JUMPDEST DUP2 EQ PUSH2 0x3A6A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x3A7C DUP2 PUSH2 0x3A56 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3A98 JUMPI PUSH2 0x3A97 PUSH2 0x33FB JUMP JUMPDEST JUMPDEST PUSH2 0x3AA2 PUSH1 0x40 PUSH2 0x3471 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x3AB2 DUP5 DUP3 DUP6 ADD PUSH2 0x3A6D JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x3AC6 DUP5 DUP3 DUP6 ADD PUSH2 0x3A6D JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3AE8 JUMPI PUSH2 0x3AE7 PUSH2 0x33FB JUMP JUMPDEST JUMPDEST PUSH2 0x3AF2 PUSH1 0x40 PUSH2 0x3471 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3B12 JUMPI PUSH2 0x3B11 PUSH2 0x348C JUMP JUMPDEST JUMPDEST PUSH2 0x3B1E DUP5 DUP3 DUP6 ADD PUSH2 0x39CC JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x3B32 DUP5 DUP3 DUP6 ADD PUSH2 0x3A82 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3B54 JUMPI PUSH2 0x3B53 PUSH2 0x3336 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3B72 JUMPI PUSH2 0x3B71 PUSH2 0x333B JUMP JUMPDEST JUMPDEST PUSH2 0x3B7E DUP5 DUP3 DUP6 ADD PUSH2 0x3AD2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x3B90 DUP2 PUSH2 0x361C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x3B9F DUP2 PUSH2 0x33C5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x7 DUP2 LT PUSH2 0x3BE5 JUMPI PUSH2 0x3BE4 PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0x3BF6 DUP3 PUSH2 0x3BD4 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C06 DUP3 PUSH2 0x3BE8 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3C16 DUP2 PUSH2 0x3BFB JUMP JUMPDEST DUP3 MSTORE 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 0x3C56 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x3C3B JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3C6D DUP3 PUSH2 0x3C1C JUMP JUMPDEST PUSH2 0x3C77 DUP2 DUP6 PUSH2 0x3C27 JUMP JUMPDEST SWAP4 POP PUSH2 0x3C87 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3C38 JUMP JUMPDEST PUSH2 0x3C90 DUP2 PUSH2 0x3400 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD PUSH2 0x3CB3 PUSH1 0x0 DUP7 ADD DUP3 PUSH2 0x3B96 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x3CC6 PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x3C0D JUMP JUMPDEST POP PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x3CDE DUP3 DUP3 PUSH2 0x3C62 JUMP JUMPDEST SWAP2 POP POP DUP1 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 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3D20 DUP2 PUSH2 0x3687 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3D32 DUP4 DUP4 PUSH2 0x3D17 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 0x3D56 DUP3 PUSH2 0x3CEB JUMP JUMPDEST PUSH2 0x3D60 DUP2 DUP6 PUSH2 0x3CF6 JUMP JUMPDEST SWAP4 POP PUSH2 0x3D6B DUP4 PUSH2 0x3D07 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x3D9C JUMPI DUP2 MLOAD PUSH2 0x3D83 DUP9 DUP3 PUSH2 0x3D26 JUMP JUMPDEST SWAP8 POP PUSH2 0x3D8E DUP4 PUSH2 0x3D3E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x3D6F JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x6 DUP2 LT PUSH2 0x3DBA JUMPI PUSH2 0x3DB9 PUSH2 0x3BA5 JUMP JUMPDEST JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH2 0x3DCB DUP3 PUSH2 0x3DA9 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3DDB DUP3 PUSH2 0x3DBD JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3DEB DUP2 PUSH2 0x3DD0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD PUSH2 0x3E09 PUSH1 0x0 DUP7 ADD DUP3 PUSH2 0x3B87 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x3E21 DUP3 DUP3 PUSH2 0x3D4B JUMP JUMPDEST SWAP2 POP POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x3E36 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x3DE2 JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x60 DUP7 ADD MSTORE PUSH2 0x3E4E DUP3 DUP3 PUSH2 0x3C62 JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD PUSH2 0x3E73 PUSH1 0x0 DUP7 ADD DUP3 PUSH2 0x3B87 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x3E8B DUP3 DUP3 PUSH2 0x3C62 JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x0 DUP7 ADD MSTORE PUSH2 0x3EB5 DUP3 DUP3 PUSH2 0x3C9B JUMP JUMPDEST SWAP2 POP POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x3ECF DUP3 DUP3 PUSH2 0x3DF1 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x3EE9 DUP3 DUP3 PUSH2 0x3E5B JUMP JUMPDEST SWAP2 POP POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFF000000000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3F2B DUP2 PUSH2 0x3EF6 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x80 DUP3 ADD PUSH1 0x0 DUP3 ADD MLOAD PUSH2 0x3F47 PUSH1 0x0 DUP6 ADD DUP3 PUSH2 0x3F22 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x3F5A PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x3F22 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH2 0x3F6D PUSH1 0x40 DUP6 ADD DUP3 PUSH2 0x3F22 JUMP JUMPDEST POP PUSH1 0x60 DUP3 ADD MLOAD PUSH2 0x3F80 PUSH1 0x60 DUP6 ADD DUP3 PUSH2 0x3F22 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x3F8F DUP2 PUSH2 0x3996 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x100 DUP3 ADD PUSH1 0x0 DUP3 ADD MLOAD PUSH2 0x3FAC PUSH1 0x0 DUP6 ADD DUP3 PUSH2 0x3F31 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x3FBF PUSH1 0x80 DUP6 ADD DUP3 PUSH2 0x3F86 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH2 0x3FD2 PUSH1 0xA0 DUP6 ADD DUP3 PUSH2 0x3F86 JUMP JUMPDEST POP PUSH1 0x60 DUP3 ADD MLOAD PUSH2 0x3FE5 PUSH1 0xC0 DUP6 ADD DUP3 PUSH2 0x3F86 JUMP JUMPDEST POP PUSH1 0x80 DUP3 ADD MLOAD PUSH2 0x3FF8 PUSH1 0xE0 DUP6 ADD DUP3 PUSH2 0x3D17 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x160 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD PUSH2 0x4017 PUSH1 0x0 DUP7 ADD DUP3 PUSH2 0x3B87 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x402F DUP3 DUP3 PUSH2 0x3E98 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x4044 PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x3F95 JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x4058 PUSH2 0x140 DUP7 ADD DUP3 PUSH2 0x3D17 JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x0 DUP7 ADD MSTORE PUSH2 0x4080 DUP3 DUP3 PUSH2 0x3D4B JUMP JUMPDEST SWAP2 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x4095 PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x3F86 JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x0 DUP7 ADD MSTORE PUSH2 0x40BD DUP3 DUP3 PUSH2 0x3FFE JUMP JUMPDEST SWAP2 POP POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x40D7 DUP3 DUP3 PUSH2 0x4063 JUMP JUMPDEST SWAP2 POP POP DUP1 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 0x40FE DUP2 DUP5 PUSH2 0x40A0 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x411C JUMPI PUSH2 0x411B PUSH2 0x3336 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x412A DUP5 DUP3 DUP6 ADD PUSH2 0x36A8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x413C DUP2 PUSH2 0x3687 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x4157 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x4133 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4173 JUMPI PUSH2 0x4172 PUSH2 0x3336 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4191 JUMPI PUSH2 0x4190 PUSH2 0x333B JUMP JUMPDEST JUMPDEST PUSH2 0x419D DUP5 DUP3 DUP6 ADD PUSH2 0x39CC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x160 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD PUSH2 0x41BF PUSH1 0x0 DUP7 ADD DUP3 PUSH2 0x3B87 JUMP JUMPDEST POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x41D7 DUP3 DUP3 PUSH2 0x3E98 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x40 DUP4 ADD MLOAD PUSH2 0x41EC PUSH1 0x40 DUP7 ADD DUP3 PUSH2 0x3F95 JUMP JUMPDEST POP PUSH1 0x60 DUP4 ADD MLOAD PUSH2 0x4200 PUSH2 0x140 DUP7 ADD DUP3 PUSH2 0x3D17 JUMP JUMPDEST POP DUP1 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 0x4225 DUP2 DUP5 PUSH2 0x41A6 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4258 DUP3 PUSH2 0x422D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x4268 DUP2 PUSH2 0x424D JUMP JUMPDEST DUP2 EQ PUSH2 0x4273 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x4285 DUP2 PUSH2 0x425F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x42A2 JUMPI PUSH2 0x42A1 PUSH2 0x3336 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x42B0 DUP6 DUP3 DUP7 ADD PUSH2 0x36A8 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x42C1 DUP6 DUP3 DUP7 ADD PUSH2 0x4276 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x42E1 JUMPI PUSH2 0x42E0 PUSH2 0x33FB JUMP JUMPDEST JUMPDEST PUSH2 0x42EB PUSH1 0x40 PUSH2 0x3471 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x430B JUMPI PUSH2 0x430A PUSH2 0x348C JUMP JUMPDEST JUMPDEST PUSH2 0x4317 DUP5 DUP3 DUP6 ADD PUSH2 0x39CC JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x433B JUMPI PUSH2 0x433A PUSH2 0x348C JUMP JUMPDEST JUMPDEST PUSH2 0x4347 DUP5 DUP3 DUP6 ADD PUSH2 0x3895 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4369 JUMPI PUSH2 0x4368 PUSH2 0x3336 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4387 JUMPI PUSH2 0x4386 PUSH2 0x333B JUMP JUMPDEST JUMPDEST PUSH2 0x4393 DUP5 DUP3 DUP6 ADD PUSH2 0x42CB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x0 DUP7 ADD MSTORE PUSH2 0x43B9 DUP3 DUP3 PUSH2 0x3FFE JUMP JUMPDEST SWAP2 POP POP PUSH1 0x20 DUP4 ADD MLOAD PUSH2 0x43CE PUSH1 0x20 DUP7 ADD DUP3 PUSH2 0x3D17 JUMP JUMPDEST POP DUP1 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 0x43F3 DUP2 DUP5 PUSH2 0x439C JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x4404 DUP2 PUSH2 0x3EF6 JUMP JUMPDEST DUP2 EQ PUSH2 0x440F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x4421 DUP2 PUSH2 0x43FB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x443D JUMPI PUSH2 0x443C PUSH2 0x33FB JUMP JUMPDEST JUMPDEST PUSH2 0x4447 PUSH1 0x80 PUSH2 0x3471 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x4457 DUP5 DUP3 DUP6 ADD PUSH2 0x4412 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x446B DUP5 DUP3 DUP6 ADD PUSH2 0x4412 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x447F DUP5 DUP3 DUP6 ADD PUSH2 0x4412 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 PUSH2 0x4493 DUP5 DUP3 DUP6 ADD PUSH2 0x4412 JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x44BA JUMPI PUSH2 0x44B9 PUSH2 0x3411 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x44E6 JUMPI PUSH2 0x44E5 PUSH2 0x3411 JUMP JUMPDEST JUMPDEST PUSH2 0x44EF DUP3 PUSH2 0x3400 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x450F PUSH2 0x450A DUP5 PUSH2 0x44CB JUMP JUMPDEST PUSH2 0x3471 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x452B JUMPI PUSH2 0x452A PUSH2 0x34E7 JUMP JUMPDEST JUMPDEST PUSH2 0x4536 DUP5 DUP3 DUP6 PUSH2 0x351D JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4553 JUMPI PUSH2 0x4552 PUSH2 0x34E2 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4563 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x44FC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4582 JUMPI PUSH2 0x4581 PUSH2 0x33FB JUMP JUMPDEST JUMPDEST PUSH2 0x458C PUSH1 0x60 PUSH2 0x3471 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x45AC JUMPI PUSH2 0x45AB PUSH2 0x348C JUMP JUMPDEST JUMPDEST PUSH2 0x45B8 DUP5 DUP3 DUP6 ADD PUSH2 0x453E JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x45CC DUP5 DUP3 DUP6 ADD PUSH2 0x39B7 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 PUSH2 0x45E0 DUP5 DUP3 DUP6 ADD PUSH2 0x4276 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x45FF PUSH2 0x45FA DUP5 PUSH2 0x449F JUMP JUMPDEST PUSH2 0x3471 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 0x4622 JUMPI PUSH2 0x4621 PUSH2 0x3682 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x4669 JUMPI DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4647 JUMPI PUSH2 0x4646 PUSH2 0x34E2 JUMP JUMPDEST JUMPDEST DUP1 DUP7 ADD PUSH2 0x4654 DUP10 DUP3 PUSH2 0x456C JUMP JUMPDEST DUP6 MSTORE PUSH1 0x20 DUP6 ADD SWAP5 POP POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x4624 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x4688 JUMPI PUSH2 0x4687 PUSH2 0x34E2 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x4698 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x45EC JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x46B7 JUMPI PUSH2 0x46B6 PUSH2 0x33FB JUMP JUMPDEST JUMPDEST PUSH2 0x46C1 PUSH1 0x60 PUSH2 0x3471 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x46E1 JUMPI PUSH2 0x46E0 PUSH2 0x348C JUMP JUMPDEST JUMPDEST PUSH2 0x46ED DUP5 DUP3 DUP6 ADD PUSH2 0x39CC JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x4701 DUP5 DUP3 DUP6 ADD PUSH2 0x4427 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0xA0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4725 JUMPI PUSH2 0x4724 PUSH2 0x348C JUMP JUMPDEST JUMPDEST PUSH2 0x4731 DUP5 DUP3 DUP6 ADD PUSH2 0x4673 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4753 JUMPI PUSH2 0x4752 PUSH2 0x3336 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4771 JUMPI PUSH2 0x4770 PUSH2 0x333B JUMP JUMPDEST JUMPDEST PUSH2 0x477D DUP5 DUP3 DUP6 ADD PUSH2 0x46A1 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x47AB PUSH2 0x47A6 PUSH2 0x47A1 DUP5 PUSH2 0x422D JUMP JUMPDEST PUSH2 0x4786 JUMP JUMPDEST PUSH2 0x422D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x47BD DUP3 PUSH2 0x4790 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x47CF DUP3 PUSH2 0x47B2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x47DF DUP2 PUSH2 0x47C4 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x47FA PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x47D6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4816 JUMPI PUSH2 0x4815 PUSH2 0x33FB JUMP JUMPDEST JUMPDEST PUSH2 0x4820 PUSH1 0x40 PUSH2 0x3471 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4840 JUMPI PUSH2 0x483F PUSH2 0x348C JUMP JUMPDEST JUMPDEST PUSH2 0x484C DUP5 DUP3 DUP6 ADD PUSH2 0x39CC JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4870 JUMPI PUSH2 0x486F PUSH2 0x348C JUMP JUMPDEST JUMPDEST PUSH2 0x487C DUP5 DUP3 DUP6 ADD PUSH2 0x4673 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x489E JUMPI PUSH2 0x489D PUSH2 0x3336 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x48BC JUMPI PUSH2 0x48BB PUSH2 0x333B JUMP JUMPDEST JUMPDEST PUSH2 0x48C8 DUP5 DUP3 DUP6 ADD PUSH2 0x4800 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x48DC DUP3 PUSH2 0x47B2 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x48EC DUP2 PUSH2 0x48D1 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x4907 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x48E3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4923 JUMPI PUSH2 0x4922 PUSH2 0x3336 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x4941 JUMPI PUSH2 0x4940 PUSH2 0x333B JUMP JUMPDEST JUMPDEST PUSH2 0x494D DUP5 DUP3 DUP6 ADD PUSH2 0x356E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP3 ADD PUSH1 0x0 DUP3 ADD MLOAD PUSH2 0x496C PUSH1 0x0 DUP6 ADD DUP3 PUSH2 0x3B87 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x497F PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x3B87 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x499A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x4956 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x49B5 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x4133 JUMP JUMPDEST PUSH2 0x49C2 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x4133 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x49D4 DUP3 PUSH2 0x424D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x49E4 DUP2 PUSH2 0x49C9 JUMP JUMPDEST DUP2 EQ PUSH2 0x49EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x4A01 DUP2 PUSH2 0x49DB JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4A1D JUMPI PUSH2 0x4A1C PUSH2 0x3336 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x4A2B DUP5 DUP3 DUP6 ADD PUSH2 0x49F2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4D6574686F64204E6F7420416C6C6F7765640000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4A7B PUSH1 0x12 DUP4 PUSH2 0x4A34 JUMP JUMPDEST SWAP2 POP PUSH2 0x4A86 DUP3 PUSH2 0x4A45 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x4A9A DUP2 PUSH2 0x361C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4AB9 DUP2 PUSH2 0x4A6E JUMP JUMPDEST SWAP1 POP PUSH2 0x4AC8 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x4A91 JUMP JUMPDEST PUSH2 0x4AD5 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x33D1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x5265736F7572636520496D6D757461626C650000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4B12 PUSH1 0x12 DUP4 PUSH2 0x4A34 JUMP JUMPDEST SWAP2 POP PUSH2 0x4B1D DUP3 PUSH2 0x4ADC JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4B41 DUP2 PUSH2 0x4B05 JUMP JUMPDEST SWAP1 POP PUSH2 0x4B50 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x4A91 JUMP JUMPDEST PUSH2 0x4B5D PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x33D1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E6F7420466F756E640000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4B9A PUSH1 0x9 DUP4 PUSH2 0x4A34 JUMP JUMPDEST SWAP2 POP PUSH2 0x4BA5 DUP3 PUSH2 0x4B64 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4BC9 DUP2 PUSH2 0x4B8D JUMP JUMPDEST SWAP1 POP PUSH2 0x4BD8 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x33D1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x466F7262696464656E0000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C14 PUSH1 0x9 DUP4 PUSH2 0x4A34 JUMP JUMPDEST SWAP2 POP PUSH2 0x4C1F DUP3 PUSH2 0x4BDE JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x4C43 DUP2 PUSH2 0x4C07 JUMP JUMPDEST SWAP1 POP PUSH2 0x4C52 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x4133 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C6E DUP3 PUSH2 0x3C1C JUMP JUMPDEST PUSH2 0x4C78 DUP2 DUP6 PUSH2 0x4C58 JUMP JUMPDEST SWAP4 POP PUSH2 0x4C88 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3C38 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4CA0 DUP3 DUP5 PUSH2 0x4C63 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4CB6 DUP3 PUSH2 0x3C1C JUMP JUMPDEST PUSH2 0x4CC0 DUP2 DUP6 PUSH2 0x4A34 JUMP JUMPDEST SWAP4 POP PUSH2 0x4CD0 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3C38 JUMP JUMPDEST PUSH2 0x4CD9 DUP2 PUSH2 0x3400 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 0x4CFE DUP2 DUP5 PUSH2 0x4CAB JUMP JUMPDEST SWAP1 POP 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 0x4D40 DUP3 PUSH2 0x3A4C JUMP JUMPDEST SWAP2 POP PUSH2 0x4D4B DUP4 PUSH2 0x3A4C JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 SLT PUSH1 0x0 DUP5 SLT AND DUP3 DUP3 SGT PUSH1 0x0 DUP6 SLT ISZERO AND OR ISZERO PUSH2 0x4D72 JUMPI PUSH2 0x4D71 PUSH2 0x4D06 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4D83 DUP3 PUSH2 0x3A4C JUMP JUMPDEST SWAP2 POP PUSH2 0x4D8E DUP4 PUSH2 0x3A4C JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP3 DUP2 SLT ISZERO PUSH1 0x0 DUP4 SLT AND DUP4 DUP3 SLT PUSH1 0x0 DUP5 SLT ISZERO AND OR ISZERO PUSH2 0x4DB6 JUMPI PUSH2 0x4DB5 PUSH2 0x4D06 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4DC7 DUP3 PUSH2 0x3996 JUMP JUMPDEST SWAP2 POP PUSH2 0x4DD2 DUP4 PUSH2 0x3996 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x4DEA JUMPI PUSH2 0x4DE9 PUSH2 0x4D06 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x4E66 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x4E79 JUMPI PUSH2 0x4E78 PUSH2 0x4E1F JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x100 DUP3 ADD PUSH1 0x0 DUP3 ADD MLOAD PUSH2 0x4E96 PUSH1 0x0 DUP6 ADD DUP3 PUSH2 0x3F31 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x4EA9 PUSH1 0x80 DUP6 ADD DUP3 PUSH2 0x3F86 JUMP JUMPDEST POP PUSH1 0x40 DUP3 ADD MLOAD PUSH2 0x4EBC PUSH1 0xA0 DUP6 ADD DUP3 PUSH2 0x3F86 JUMP JUMPDEST POP PUSH1 0x60 DUP3 ADD MLOAD PUSH2 0x4ECF PUSH1 0xC0 DUP6 ADD DUP3 PUSH2 0x3F86 JUMP JUMPDEST POP PUSH1 0x80 DUP3 ADD MLOAD PUSH2 0x4EE2 PUSH1 0xE0 DUP6 ADD DUP3 PUSH2 0x3D17 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4F04 DUP3 PUSH2 0x3CEB JUMP JUMPDEST PUSH2 0x4F0E DUP2 DUP6 PUSH2 0x4EE8 JUMP JUMPDEST SWAP4 POP PUSH2 0x4F19 DUP4 PUSH2 0x3D07 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4F4A JUMPI DUP2 MLOAD PUSH2 0x4F31 DUP9 DUP3 PUSH2 0x3D26 JUMP JUMPDEST SWAP8 POP PUSH2 0x4F3C DUP4 PUSH2 0x3D3E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x4F1D JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x120 DUP3 ADD SWAP1 POP PUSH2 0x4F6D PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x4E7F JUMP JUMPDEST DUP2 DUP2 SUB PUSH2 0x100 DUP4 ADD MSTORE PUSH2 0x4F80 DUP2 DUP5 PUSH2 0x4EF9 JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 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 PUSH2 0x4FB0 DUP3 PUSH2 0x4F89 JUMP JUMPDEST PUSH2 0x4FBA DUP2 DUP6 PUSH2 0x4F94 JUMP JUMPDEST SWAP4 POP PUSH2 0x4FCA DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x3C38 JUMP JUMPDEST PUSH2 0x4FD3 DUP2 PUSH2 0x3400 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 0x4FF8 DUP2 DUP5 PUSH2 0x4FA5 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x500F DUP2 PUSH2 0x3691 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x502B JUMPI PUSH2 0x502A PUSH2 0x3336 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x5039 DUP5 DUP3 DUP6 ADD PUSH2 0x5000 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x504B DUP2 PUSH2 0x424D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x5066 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x5042 JUMP JUMPDEST PUSH2 0x5073 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x4133 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP4 ADD PUSH1 0x0 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x0 DUP7 ADD MSTORE PUSH2 0x5097 DUP3 DUP3 PUSH2 0x3C9B JUMP JUMPDEST SWAP2 POP POP PUSH1 0x20 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x20 DUP7 ADD MSTORE PUSH2 0x50B1 DUP3 DUP3 PUSH2 0x3DF1 JUMP JUMPDEST SWAP2 POP POP PUSH1 0x40 DUP4 ADD MLOAD DUP5 DUP3 SUB PUSH1 0x40 DUP7 ADD MSTORE PUSH2 0x50CB DUP3 DUP3 PUSH2 0x3E5B JUMP JUMPDEST SWAP2 POP POP DUP1 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 0x50F2 DUP2 DUP5 PUSH2 0x507A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 PUSH1 0x1F DUP4 ADD DIV SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHL SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x8 DUP4 MUL PUSH2 0x515C PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x511F JUMP JUMPDEST PUSH2 0x5166 DUP7 DUP4 PUSH2 0x511F JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5199 PUSH2 0x5194 PUSH2 0x518F DUP5 PUSH2 0x3996 JUMP JUMPDEST PUSH2 0x4786 JUMP JUMPDEST PUSH2 0x3996 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x51B3 DUP4 PUSH2 0x517E JUMP JUMPDEST PUSH2 0x51C7 PUSH2 0x51BF DUP3 PUSH2 0x51A0 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x512C JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x51DC PUSH2 0x51CF JUMP JUMPDEST PUSH2 0x51E7 DUP2 DUP5 DUP5 PUSH2 0x51AA JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x520B JUMPI PUSH2 0x5200 PUSH1 0x0 DUP3 PUSH2 0x51D4 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x51ED JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x5250 JUMPI PUSH2 0x5221 DUP2 PUSH2 0x50FA JUMP JUMPDEST PUSH2 0x522A DUP5 PUSH2 0x510F JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x5239 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x524D PUSH2 0x5245 DUP6 PUSH2 0x510F JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x51EC JUMP JUMPDEST POP POP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 SHR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5273 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x5255 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x528C DUP4 DUP4 PUSH2 0x5262 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x52A5 DUP3 PUSH2 0x3C1C JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x52BE JUMPI PUSH2 0x52BD PUSH2 0x3411 JUMP JUMPDEST JUMPDEST PUSH2 0x52C8 DUP3 SLOAD PUSH2 0x4E4E JUMP JUMPDEST PUSH2 0x52D3 DUP3 DUP3 DUP6 PUSH2 0x520F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x5306 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x52F4 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x52FE DUP6 DUP3 PUSH2 0x5280 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x5366 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x5314 DUP7 PUSH2 0x50FA JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x533C JUMPI DUP5 DUP10 ADD MLOAD DUP3 SSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP6 ADD SWAP5 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x5317 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x5359 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x5355 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x5262 JUMP JUMPDEST DUP4 SSTORE POP JUMPDEST PUSH1 0x1 PUSH1 0x2 DUP9 MUL ADD DUP9 SSTORE POP POP POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5379 DUP3 PUSH2 0x3996 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x53AB JUMPI PUSH2 0x53AA PUSH2 0x4D06 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4F7574206F6620426F756E647300000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x53EC PUSH1 0xD DUP4 PUSH2 0x4A34 JUMP JUMPDEST SWAP2 POP PUSH2 0x53F7 DUP3 PUSH2 0x53B6 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x540B DUP2 PUSH2 0x3A4C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x40 DUP3 ADD PUSH1 0x0 DUP3 ADD MLOAD PUSH2 0x5427 PUSH1 0x0 DUP6 ADD DUP3 PUSH2 0x5402 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x543A PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x5402 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x5449 DUP2 PUSH2 0x3A4C JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x5468 DUP2 PUSH2 0x53DF JUMP JUMPDEST SWAP1 POP PUSH2 0x5477 PUSH1 0x20 DUP4 ADD DUP6 PUSH2 0x5411 JUMP JUMPDEST PUSH2 0x5484 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x5440 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x549A DUP2 PUSH2 0x39A0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x54B6 JUMPI PUSH2 0x54B5 PUSH2 0x3336 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x54C4 DUP5 DUP3 DUP6 ADD PUSH2 0x548B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x54E7 DUP2 DUP6 PUSH2 0x4FA5 JUMP JUMPDEST SWAP1 POP PUSH2 0x54F6 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x5042 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5508 DUP3 PUSH2 0x361C JUMP JUMPDEST SWAP2 POP PUSH2 0x5513 DUP4 PUSH2 0x361C JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP PUSH2 0xFFFF DUP2 GT ISZERO PUSH2 0x552D JUMPI PUSH2 0x552C PUSH2 0x4D06 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x553E DUP3 PUSH2 0x3996 JUMP JUMPDEST SWAP2 POP PUSH2 0x5549 DUP4 PUSH2 0x3996 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 SUB SWAP1 POP DUP2 DUP2 GT ISZERO PUSH2 0x5561 JUMPI PUSH2 0x5560 PUSH2 0x4D06 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x5570 DUP2 PUSH2 0x3996 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x5590 DUP2 DUP6 PUSH2 0x4CAB JUMP JUMPDEST SWAP1 POP PUSH2 0x559F PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x5567 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP14 0xF 0x2A SELFDESTRUCT SHR PUSH29 0x6BB6BB8C4FA1E7C0C2AC06D17B31EA19035C75273072C27845B364736F PUSH13 0x634300081C0033000000000000 ","sourceMap":"98:363:16:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2541:202:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;306:150:16;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10569:174:14;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3786:120:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9106:152:14;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4202:136:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5065:248:13;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5321:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5304:245:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11052:1206:14;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2520:444:13;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2196:49:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13483:1775:14;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4604:223:13;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2558:94:15;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12523:650:14;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4618:138:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15571:789:14;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2245:99:15;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7019:174:14;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2541:202:0;2626:4;2664:32;2649:47;;;:11;:47;;;;:87;;;;2700:36;2724:11;2700:23;:36::i;:::-;2649:87;2642:94;;2541:202;;;:::o;306:150:16:-;2241:4:0;384:18:16;;2473:16:0;2484:4;2473:10;:16::i;:::-;415:33:16::1;433:14;415:17;:33::i;:::-;306:150:::0;;:::o;10569:174:14:-;10654:33;;:::i;:::-;10707:28;10712:10;10724;10707:4;:28::i;:::-;10700:35;;10569:174;;;:::o;3786:120:0:-;3851:7;3877:6;:12;3884:4;3877:12;;;;;;;;;;;:22;;;3870:29;;3786:120;;;:::o;9106:152:14:-;9175:24;;:::i;:::-;9219:31;9225:11;9238;9219:5;:31::i;:::-;9212:38;;9106:152;;;:::o;4202:136:0:-;4276:18;4289:4;4276:12;:18::i;:::-;2473:16;2484:4;2473:10;:16::i;:::-;4306:25:::1;4317:4;4323:7;4306:10;:25::i;:::-;;4202:136:::0;;;:::o;5065:248:13:-;2241:4:0;5131:18:13;;2473:16:0;2484:4;2473:10;:16::i;:::-;5162:20:13::1;5185:15;;5162:38;;5229:13;5211:15;:31;;;;5258:47;5275:12;5289:15;;5258:47;;;;;;;:::i;:::-;;;;;;;;5151:162;5065:248:::0;;:::o;5321:101::-;5372:7;5399:15;;5392:22;;5321:101;:::o;5304:245:0:-;5419:12;:10;:12::i;:::-;5397:34;;:18;:34;;;5393:102;;5454:30;;;;;;;;;;;;;;5393:102;5505:37;5517:4;5523:18;5505:11;:37::i;:::-;;5304:245;;:::o;11052:1206:14:-;11138:36;;:::i;:::-;11187:19;11209:13;:18;;;:23;;;11187:45;;11243:30;11252:5;11259:13;11243:8;:30::i;:::-;;11305:22;11330:33;11344:13;:18;;;11330:13;:33::i;:::-;11305:58;;11374:332;11390:5;11397:308;;;;;;;;11441:20;11455:5;11441:13;:20::i;:::-;:31;;;11397:308;;;;11516:1;11397:308;;;;11569:1;11397:308;;;;11627:1;11397:308;;;;11679:14;11397:308;;;11374:15;:332::i;:::-;11719:33;11755:20;11769:5;11755:13;:20::i;:::-;11719:56;;11786:28;11817:33;11831:5;11838:11;;;;;;;;11844:1;11838:11;;;;11847:1;11838:11;;;11817:13;:33::i;:::-;:44;;;11786:75;;11891:300;;;;;;;;11927:208;;;;;;;;11967:3;11927:208;;;;;;12039:18;12051:5;12039:11;:18::i;:::-;11927:208;;;;11999:9;11927:208;;;;12082:37;12096:9;12107:11;12082:13;:37::i;:::-;11927:208;;;11891:300;;;;12165:14;11891:300;;;11874:317;;12223:10;12209:41;;;12235:14;12209:41;;;;;;:::i;:::-;;;;;;;;11176:1082;;;;11052:1206;;;:::o;2520:444:13:-;2606:4;2717:42;2241:4:0;2731:18:13;;2751:7;2717:13;:42::i;:::-;2713:86;;;2783:4;2776:11;;;;2713:86;1594:17;1578:35;;2815:4;:19;2811:98;;2859:38;1663:27;2889:7;2859:13;:38::i;:::-;2858:39;2851:46;;;;2811:98;2928:28;2942:4;2948:7;2928:13;:28::i;:::-;2921:35;;2520:444;;;;;:::o;2196:49:0:-;2241:4;2196:49;;;:::o;13483:1775:14:-;13568:33;;:::i;:::-;13614:19;13636:10;:15;;;:20;;;13614:42;;13667:27;13676:5;13683:10;13667:8;:27::i;:::-;;13720:31;13754:10;:15;;;13720:49;;13780:14;13797:3;13780:20;;13836;13859:22;13875:5;13859:15;:22::i;:::-;13836:45;;13892:22;13917:20;13931:5;13917:13;:20::i;:::-;:27;;;13892:52;;13959:15;13955:43;;;13976:22;13992:5;13976:15;:22::i;:::-;13955:43;14070:1;14045:10;:15;;;:22;:26;14041:245;;;14088:29;14104:5;14111;14088:15;:29::i;:::-;;14142:15;:27;;14166:3;14142:27;;;14160:3;14142:27;14132:37;;;;14041:245;;;14257:3;14247:13;;14041:245;14296:380;14326:5;14347:318;;;;;;;;14395:10;:21;;;14347:318;;;;14441:1;14347:318;;;;14498:1;14347:318;;;;14560:1;14347:318;;;;14616:14;14347:318;;;14296:15;:380::i;:::-;14689:33;14725:20;14739:5;14725:13;:20::i;:::-;14689:56;;14756:28;14787:21;14802:5;14787:14;:21::i;:::-;14756:52;;14840:216;;;;;;;;14876:7;14840:216;;;;;;14968:18;14980:5;14968:11;:18::i;:::-;14840:216;;;;14908:9;14840:216;;;;15007:37;15021:9;15032:11;15007:13;:37::i;:::-;14840:216;;;14821:11;:16;;:235;;;;15090:107;;;;;;;;15134:11;15090:107;;;;15173:5;:12;15090:107;;;15067:11;:20;;:130;;;;15226:10;15215:35;;;15238:11;15215:35;;;;;;:::i;:::-;;;;;;;;13603:1655;;;;;;;13483:1775;;;:::o;4604:223:13:-;4671:15;;2473:16:0;2484:4;2473:10;:16::i;:::-;4701:5:13::1;4009:15;;4001:4;:23;:67;;;;2241:4:0;4050:18:13::0;::::1;4042:4;:26;4001:67;3984:147;;;4114:4;4102:17;;;;;;;;;;;:::i;:::-;;;;;;;;3984:147;4722:5:::2;1594:17;1578:35;;4223:4;:19;:59;;;;1663:27;4260:4;:22;4223:59;4206:139;;;4328:4;4316:17;;;;;;;;;;;:::i;:::-;;;;;;;;4206:139;4740:37:::3;4754:5;4761:15;;4740:13;:37::i;:::-;4813:5;4793:26;;;;;;;;;;4141:1:::2;2499::0::1;4604:223:13::0;;:::o;2558:94:15:-;2602:18;2640:4;;;;;;;;;;;2633:11;;2558:94;:::o;12523:650:14:-;12607:34;;:::i;:::-;12654:19;12676:13;:18;;;12654:40;;12705:30;12714:5;12721:13;12705:8;:30::i;:::-;;12765:22;12781:5;12765:15;:22::i;:::-;12798:33;12834:20;12848:5;12834:13;:20::i;:::-;12798:56;;12884:222;;;;;;;;12920:3;12884:222;;;;;;12984:18;12996:5;12984:11;:18::i;:::-;12884:222;;;;12948:9;12884:222;;;;13023:42;13037:9;13062:1;13048:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13023:13;:42::i;:::-;12884:222;;;12867:239;;13138:10;13124:41;;;13150:14;13124:41;;;;;;:::i;:::-;;;;;;;;12643:530;;12523:650;;;:::o;4618:138:0:-;4693:18;4706:4;4693:12;:18::i;:::-;2473:16;2484:4;2473:10;:16::i;:::-;4723:26:::1;4735:4;4741:7;4723:11;:26::i;:::-;;4618:138:::0;;;:::o;15571:789:14:-;15662:35;;:::i;:::-;15710:19;15732:12;:17;;;:22;;;15710:44;;15765:29;15774:5;15781:12;15765:8;:29::i;:::-;;15805:31;15839:12;:17;;;15805:51;;15869:28;15900:67;15930:5;15951;15900:15;:67::i;:::-;15869:98;;16001:38;16007:12;:17;;;16026:12;16001:5;:38::i;:::-;15980:13;:18;;:59;;;;16078:60;16091:11;:18;16111:26;16131:5;16111:19;:26::i;:::-;16078:12;:60::i;:::-;16050:13;:18;;;:25;;:88;;;;;;;;;;;16174:121;;;;;;;;16218:11;16174:121;;;;16257:26;16277:5;16257:19;:26::i;:::-;16174:121;;;16149:13;:22;;:146;;;;16326:10;16313:39;;;16338:13;16313:39;;;;;;:::i;:::-;;;;;;;;15699:661;;;15571:789;;;:::o;2245:99:15:-;2289:17;2326:4;;;;;;;;;;;:8;;;:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2319:17;;2245:99;:::o;7019:174:14:-;7096:38;;:::i;:::-;7154:31;7163:5;7170:14;7154:8;:31::i;:::-;7147:38;;7019:174;;;:::o;730:146:3:-;806:4;844:25;829:40;;;:11;:40;;;;822:47;;730:146;;;:::o;3175:103:0:-;3241:30;3252:4;3258:12;:10;:12::i;:::-;3241:10;:30::i;:::-;3175:103;:::o;7391:551:15:-;7900:34;7922:1;7914:10;;7926:7;7900:13;:34::i;:::-;7391:551;:::o;9503:854:14:-;9614:33;;:::i;:::-;9660:19;9682:10;:15;;;:20;;;9660:42;;9713:25;9741:31;9747:10;:15;;;9764:7;9741:5;:31::i;:::-;9713:59;;9996:33;10032:44;10046:5;10053:10;:22;;;10032:13;:44::i;:::-;9996:80;;10110:9;10087:11;:20;;:32;;;;10152:3;10136:5;:12;;;:19;;;10132:181;;10187:114;10218:9;:20;;;:27;10265:9;:21;;;10187:12;:114::i;:::-;10172:5;:12;;:129;;;;;;;;;;;10132:181;10344:5;10325:11;:16;;:24;;;;9649:708;;;9503:854;;;;:::o;7480:1348::-;7591:32;;:::i;:::-;7636:19;7658:11;:16;;;7636:38;;7685:24;7694:5;7701:7;7685:8;:24::i;:::-;;7739:33;7775:20;7789:5;7775:13;:20::i;:::-;7739:56;;7806:29;7838:18;7850:5;7838:11;:18::i;:::-;7806:50;;7867:13;7883:70;7897:9;7908:33;7922:5;7929:11;;;;;;;;7935:1;7929:11;;;;7938:1;7929:11;;;7908:13;:33::i;:::-;:44;;;7883:13;:70::i;:::-;7867:86;;7964:14;7981:3;7964:20;;8047:11;:23;;;8038:5;:32;:148;;;;8114:11;:27;;;8088:9;:22;;;:53;;:97;;;;;8184:1;8159:9;:22;;;:26;8088:97;8038:148;8020:620;;;8223:3;8213:13;;8020:620;;;8293:1;8264:11;:20;;;:25;;;:30;;;8260:380;;8321:11;:20;;;:25;;;8311:35;;8260:380;;;8379:11;8368:22;;;;;;;;:::i;:::-;;:7;:22;;;;;;;;:::i;:::-;;;8364:276;;8407:21;8431:26;8451:5;8431:19;:26::i;:::-;8407:50;;8482:42;8495:13;8510;8482:12;:42::i;:::-;8472:52;;8392:248;8364:276;8260:380;8020:620;8667:153;;;;;;;;8703:7;8667:153;;;;;;8771:11;8667:153;;;;8735:9;8667:153;;;;8803:5;8667:153;;;8652:168;;7625:1203;;;;;7480:1348;;;;:::o;6155:316:0:-;6232:4;6253:22;6261:4;6267:7;6253;:22::i;:::-;6248:217;;6323:4;6291:6;:12;6298:4;6291:12;;;;;;;;;;;:20;;:29;6312:7;6291:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;6373:12;:10;:12::i;:::-;6346:40;;6364:7;6346:40;;6358:4;6346:40;;;;;;;;;;6407:4;6400:11;;;;6248:217;6449:5;6442:12;;6155:316;;;;;:::o;656:96:2:-;709:7;735:10;728:17;;656:96;:::o;6708:317:0:-;6786:4;6806:22;6814:4;6820:7;6806;:22::i;:::-;6802:217;;;6876:5;6844:6;:12;6851:4;6844:12;;;;;;;;;;;:20;;:29;6865:7;6844:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;6927:12;:10;:12::i;:::-;6900:40;;6918:7;6900:40;;6912:4;6900:40;;;;;;;;;;6961:4;6954:11;;;;6802:217;7003:5;6996:12;;6708:317;;;;;:::o;6348:411:14:-;6496:38;;:::i;:::-;6471:5;6478:7;4753:30;4768:5;4775:7;4753:14;:30::i;:::-;4748:170;;4834:18;4846:5;4834:11;:18::i;:::-;:23;;;:31;;;4867:18;4879:5;4867:11;:18::i;:::-;:24;;;:38;;;4807:99;;;;;;;;;;;;:::i;:::-;;;;;;;;4748:170;4934:19;4947:5;4934:12;:19::i;:::-;4930:124;;;5004:18;5016:5;5004:11;:18::i;:::-;:23;;;:31;;;5037:4;4977:65;;;;;;;;;;;;:::i;:::-;;;;;;;;4930:124;5097:10;5086:21;;;;;;;;:::i;:::-;;:7;:21;;;;;;;;:::i;:::-;;;:63;;;;5136:13;5125:24;;;;;;;;:::i;:::-;;:7;:24;;;;;;;;:::i;:::-;;;5086:63;:106;;;;5178:14;5167:25;;;;;;;;:::i;:::-;;:7;:25;;;;;;;;:::i;:::-;;;5086:106;5070:133;:160;;;;;5208:22;5224:5;5208:15;:22::i;:::-;5207:23;5070:160;5066:406;;;5421:18;5433:5;5421:11;:18::i;:::-;:24;;;:38;;;5403:57;;;;;;;;;;;:::i;:::-;;;;;;;;5066:406;5487:41;5501:5;5508:7;5517:10;5487:13;:41::i;:::-;5482:135;;5570:34;5589:5;5596:7;5570:18;:34::i;:::-;5552:53;;;;;;;;;;;:::i;:::-;;;;;;;;5482:135;6562:14:::1;6551:25;;;;;;;;:::i;:::-;;:7;:25;;;;;;;;:::i;:::-;;::::0;6547:195:::1;;6611:119;;;;;;;;6654:3;6611:119;;;;;;6683:18;6695:5;6683:11;:18::i;:::-;:23;;;:31;;;6611:119;;;;::::0;6593:137:::1;;6547:195;6348:411:::0;;;;;;:::o;3631:267:15:-;3723:21;3773:25;3790:7;3773:16;:25::i;:::-;3757:41;;3809:37;3823:13;3838:7;3809:13;:37::i;:::-;3862:28;3876:13;3862:28;;;;;;:::i;:::-;;;;;;;;3631:267;;;:::o;8803:172::-;8894:33;;:::i;:::-;8952:8;8961:5;8952:15;;;;;;:::i;:::-;;;;;;;;;;;;;8940:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8803:172;;;:::o;10442:767::-;10618:27;10639:5;10618:20;:27::i;:::-;10714:8;10723:5;10714:15;;;;;;:::i;:::-;;;;;;;;;;;;;:20;;;10697:9;:14;;:37;;;;;10765:8;10774:5;10765:15;;;;;;:::i;:::-;;;;;;;;;;;;;:23;;;10745:9;:17;;:43;;;;;10824:8;10833:5;10824:15;;;;;;:::i;:::-;;;;;;;;;;;;;:28;;;10799:9;:22;;:53;;;;;11154:9;11136:8;11145:5;11136:15;;;;;;:::i;:::-;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11179:22;11195:5;11179:22;;;;;;:::i;:::-;;;;;;;;10442:767;;:::o;13537:915::-;13658:23;;:::i;:::-;13761:20;13784:26;13804:5;13784:19;:26::i;:::-;13761:49;;13821:29;13853:37;13869:6;13877:12;13853:15;:37::i;:::-;13821:69;;13901:23;13983:1;13958:16;:22;;;13935:16;:20;;;:45;;;;:::i;:::-;:49;;;;:::i;:::-;13901:84;;13996:21;1968:6:12;14020:15:15;:38;:79;;14084:15;14020:79;;;1968:6:12;14020:79:15;13996:103;;14110:28;14155:13;14141:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14110:59;;14185:9;14180:140;14204:13;14200:1;:17;14180:140;;;14256:8;14265:5;14256:15;;;;;;:::i;:::-;;;;;;;;;;;;;14306:1;14280:16;:22;;;14272:35;;;;:::i;:::-;14256:52;;;;;;;;:::i;:::-;;;;;;;;;;14239:11;14251:1;14239:14;;;;;;;;:::i;:::-;;;;;;;:69;;;;;14219:3;;;;;;;14180:140;;;;14337:107;;;;;;;;14381:11;14337:107;;;;14420:12;14337:107;;;14330:114;;;;;;;13537:915;;;;:::o;4127:169::-;4216:17;;:::i;:::-;4253:6;:35;4260:20;4274:5;4260:13;:20::i;:::-;:27;;;4253:35;;;;;;;;;;;4246:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4127:169;;;:::o;16128:188:12:-;16244:7;16288:9;16299:11;16277:34;;;;;;;;;:::i;:::-;;;;;;;;;;;;;16267:45;;;;;;16260:52;;16128:188;;;;:::o;2830:136:0:-;2907:4;2930:6;:12;2937:4;2930:12;;;;;;;;;;;:20;;:29;2951:7;2930:29;;;;;;;;;;;;;;;;;;;;;;;;;2923:36;;2830:136;;;;:::o;4130:146:14:-;4207:4;4267:1;4231:20;4245:5;4231:13;:20::i;:::-;:33;;;:37;4224:44;;4130:146;;;:::o;16045:226:15:-;16142:8;16151:5;16142:15;;;;;;:::i;:::-;;;;;;;;;;;;;;16135:22;;;;:::i;:::-;16191:1;16168:8;16177:5;16168:15;;;;;;:::i;:::-;;;;;;;;;;;;;:20;;:24;;;;16203:22;16219:5;16203:15;:22::i;:::-;16241;16257:5;16241:22;;;;;;:::i;:::-;;;;;;;;16045:226;:::o;16613:418::-;16755:36;16840:17;:24;16826:39;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16804:61;;16881:6;16876:148;16897:17;:24;16893:1;:28;16876:148;;;16968:44;16984:5;16991:17;17009:1;16991:20;;;;;;;;:::i;:::-;;;;;;;;16968:15;:44::i;:::-;16943:19;16963:1;16943:22;;;;;;;;:::i;:::-;;;;;;;:69;;;;;16923:3;;;;;;;16876:148;;;;16613:418;;;;:::o;5650:371:14:-;5754:28;5795:19;5817:5;:12;5795:34;;5868:11;5854:26;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5840:40;;5896:9;5891:123;5915:11;5911:1;:15;5891:123;;;5965:5;:3;:5::i;:::-;:22;;;5988:5;5994:1;5988:8;;;;;;;;:::i;:::-;;;;;;;;:13;;;5965:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5948:11;5960:1;5948:14;;;;;;;;:::i;:::-;;;;;;;:54;;;;;5928:3;;;;;;;5891:123;;;;5784:237;5650:371;;;:::o;5674:247:0:-;5757:25;5785:18;5798:4;5785:12;:18::i;:::-;5757:46;;5838:9;5813:6;:12;5820:4;5813:12;;;;;;;;;;;:22;;:34;;;;5904:9;5885:17;5879:4;5862:52;;;;;;;;;;5747:174;5674:247;;:::o;12223:138:15:-;12304:7;12331:8;12340:5;12331:15;;;;;;:::i;:::-;;;;;;;;;;;;;:22;;;;12324:29;;12223:138;;;:::o;19689:239:12:-;19770:6;19806:1;19789:13;:18;19785:53;;19827:3;19820:10;;;;19785:53;19865:12;19848:13;:29;19844:64;;19897:3;19890:10;;;;19844:64;19921:3;19914:10;;19689:239;;;;;:::o;3408:197:0:-;3496:22;3504:4;3510:7;3496;:22::i;:::-;3491:108;;3574:7;3583:4;3541:47;;;;;;;;;;;;:::i;:::-;;;;;;;;3491:108;3408:197;;:::o;4304:2406:15:-;5950:20;5973:7;:16;;;:21;;;5950:44;;6025:1;6009:13;:17;;;;:65;;;;;6047:3;6031:13;:19;;;:42;;;;6070:3;6054:13;:19;;;6031:42;6009:65;6005:127;;;6112:7;6098:22;;;;;;;;;;;:::i;:::-;;;;;;;;6005:127;6220:14;6243:7;:12;;;:20;;;:27;6220:51;;6298:13;:11;:13::i;:::-;6286:25;;:8;:25;;;6282:333;;6595:7;6581:22;;;;;;;;;;;:::i;:::-;;;;;;;;6282:333;6650:7;6625:6;:22;6632:14;6625:22;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;6673:29;6687:14;6673:29;;;;;;:::i;:::-;;;;;;;;4395:2315;;4304:2406;;:::o;2204:406:14:-;2322:4;2430:39;2241:4:0;2438:18:14;;2458:10;2430:7;:39::i;:::-;2426:83;;;2493:4;2486:11;;;;2426:83;2601:1;2588:7;2582:14;;;;;;;;:::i;:::-;;2577:19;;:1;:19;;2536:18;2548:5;2536:11;:18::i;:::-;:23;;;:31;;;:61;:66;;;;2529:73;;2204:406;;;;;:::o;4284:180::-;4358:4;4382:18;4394:5;4382:11;:18::i;:::-;:24;;;:38;;;:74;;;;;4455:1;4424:20;4438:5;4424:13;:20::i;:::-;:28;;;:32;4382:74;4375:81;;4284:180;;;:::o;3610:282::-;3755:4;3772:23;3798:34;3817:5;3824:7;3798:18;:34::i;:::-;3772:60;;3850:34;3858:15;3875:8;3850:7;:34::i;:::-;3843:41;;;3610:282;;;;;:::o;2870:388::-;2992:7;3012:25;3040:18;3052:5;3040:11;:18::i;:::-;:23;;;:31;;;3012:59;;3105:1;3086:8;:15;:20;3082:125;;2241:4:0;3130:18:14;;3123:25;;;;;3082:125;3224:8;3241:7;3233:16;;;;;;;;:::i;:::-;;3224:26;;;;;;;;:::i;:::-;;;;;;;;3217:33;;;2870:388;;;;;:::o;11859:124:12:-;11926:7;11970;11959:19;;;;;;;;:::i;:::-;;;;;;;;;;;;;11949:30;;;;;;11942:37;;11859:124;;;:::o;9179:1029:15:-;9323:15;9292:8;9301:5;9292:15;;;;;;:::i;:::-;;;;;;;;;;;;;:28;;:46;;;;9378:1;9353:8;9362:5;9353:15;;;;;;:::i;:::-;;;;;;;;;;;;;:22;;;;:26;9349:852;;;9396:8;9405:5;9396:15;;;;;;:::i;:::-;;;;;;;;;;;;;:23;;;:25;;;;;;;;;:::i;:::-;;;;;;9349:852;;;9484:1;9458:8;9467:5;9458:15;;;;;;:::i;:::-;;;;;;;;;;;;;:23;;;:27;9454:736;;;10149:8;10158:5;10149:15;;;;;;:::i;:::-;;;;;;;;;;;;;:23;;;:25;;;;;;;;;:::i;:::-;;;;;;9454:736;9349:852;9179:1029;:::o;18435:1249:12:-;18529:12;;:::i;:::-;18550:14;18574:11;18550:36;;18690:2;18675:5;:11;;;:17;:35;;;;;18709:1;18696:5;:9;;;:14;18675:35;18671:122;;;18737:1;18723:5;:11;;:15;;;;;18761:1;18749:5;:9;;:13;;;;;18780:5;18773:12;;;;;18671:122;18892:1;18879:5;:9;;;:14;:34;;;;;18912:1;18897:5;:11;;;:16;18879:34;18875:105;;;18948:1;18938:7;:11;;;;:::i;:::-;18926:5;:9;;:23;;;;;18967:5;18960:12;;;;;18875:105;19006:1;18992:5;:11;;;:15;18988:152;;;19121:5;:11;;;19117:1;19107:7;:11;;;;:::i;:::-;:25;;;;:::i;:::-;19093:5;:11;;:39;;;;;18988:152;19235:1;19223:5;:9;;;:13;19219:144;;;19346:5;:9;;;19342:1;19332:7;:11;;;;:::i;:::-;:23;;;;:::i;:::-;19320:5;:9;;:35;;;;;19219:144;19470:1;19458:5;:9;;;:13;;;;:::i;:::-;19444:5;:11;;;:27;:46;;;;19489:1;19475:5;:11;;;:15;19444:46;:69;;;;19506:7;19494:5;:9;;;:19;19444:69;19440:220;;;19637:5;19644:7;19615:37;;;;;;;;;;;;:::i;:::-;;;;;;;;19440:220;19675:5;19668:12;;;18435:1249;;;;;:::o;11451:722:15:-;12048:36;12064:5;12071:12;12048:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:15;:36::i;:::-;12126:1;12095:8;12104:5;12095:15;;;;;;:::i;:::-;;;;;;;;;;;;;:28;;:32;;;;12143:22;12159:5;12143:22;;;;;;:::i;:::-;;;;;;;;11451:722;:::o;12729:555::-;12869:25;12929:5;:3;:5::i;:::-;:22;;;12952:17;:22;;;12929:46;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12909:66;;12988:4;;;;;;;;;;;:22;;;13018:4;;;;;;;;;;;:24;;;13043:17;13018:43;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13077:17;:22;;;13114:17;:27;;;12988:164;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13170:22;13186:5;13170:22;;;;;;:::i;:::-;;;;;;;;13205:71;13221:5;13228:17;13247;:28;;;13205:15;:71::i;:::-;12729:555;;;;:::o;18074:91:12:-;18111:6;18160:1;18140:16;18133:24;;;;;;;;:::i;:::-;;:28;;;;:::i;:::-;18126:35;;18074:91;:::o;14795:1065:15:-;14951:23;14977:26;14997:5;14977:19;:26::i;:::-;14951:52;;15032:15;15018:11;:29;15014:748;;;15093:33;;;;;;;;15099:1;15093:33;;;;15109:15;15093:33;;;15135:11;15071:77;;;;;;;;;;;;:::i;:::-;;;;;;;;15014:748;15185:15;15170:11;:30;15166:596;;15249:8;15258:5;15249:15;;;;;;:::i;:::-;;;;;;;;;;;;;15270:17;15249:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15327:5;:3;:5::i;:::-;:19;;;15347:17;15327:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15303:8;15312:5;15303:15;;;;;;:::i;:::-;;;;;;;;;;;;;:20;;;:62;;;;;;;:::i;:::-;;;;;;;;15166:596;;;15638:5;:3;:5::i;:::-;:19;;;15658:8;15667:5;15658:15;;;;;;:::i;:::-;;;;;;;;;;;;;15674:11;15658:28;;;;;;;;:::i;:::-;;;;;;;;;;15638:49;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15580:5;:3;:5::i;:::-;:19;;;15600:17;15580:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15539:8;15548:5;15539:15;;;;;;:::i;:::-;;;;;;;;;;;;;:20;;;:79;;;;:::i;:::-;:148;;;;:::i;:::-;15498:8;15507:5;15498:15;;;;;;:::i;:::-;;;;;;;;;;;;;:20;;:189;;;;15733:17;15702:8;15711:5;15702:15;;;;;;:::i;:::-;;;;;;;;;;;;;15718:11;15702:28;;;;;;;;:::i;:::-;;;;;;;;;:48;;;;15166:596;15774:27;15795:5;15774:20;:27::i;:::-;15817:35;15833:5;15840:11;15817:35;;;;;;;:::i;:::-;;;;;;;;14940:920;14795:1065;;;:::o;-1:-1:-1:-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:75:21:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:149;370:7;410:66;403:5;399:78;388:89;;334:149;;;:::o;489:120::-;561:23;578:5;561:23;:::i;:::-;554:5;551:34;541:62;;599:1;596;589:12;541:62;489:120;:::o;615:137::-;660:5;698:6;685:20;676:29;;714:32;740:5;714:32;:::i;:::-;615:137;;;;:::o;758:327::-;816:6;865:2;853:9;844:7;840:23;836:32;833:119;;;871:79;;:::i;:::-;833:119;991:1;1016:52;1060:7;1051:6;1040:9;1036:22;1016:52;:::i;:::-;1006:62;;962:116;758:327;;;;:::o;1091:90::-;1125:7;1168:5;1161:13;1154:21;1143:32;;1091:90;;;:::o;1187:109::-;1268:21;1283:5;1268:21;:::i;:::-;1263:3;1256:34;1187:109;;:::o;1302:210::-;1389:4;1427:2;1416:9;1412:18;1404:26;;1440:65;1502:1;1491:9;1487:17;1478:6;1440:65;:::i;:::-;1302:210;;;;:::o;1518:117::-;1627:1;1624;1617:12;1641:102;1682:6;1733:2;1729:7;1724:2;1717:5;1713:14;1709:28;1699:38;;1641:102;;;:::o;1749:180::-;1797:77;1794:1;1787:88;1894:4;1891:1;1884:15;1918:4;1915:1;1908:15;1935:281;2018:27;2040:4;2018:27;:::i;:::-;2010:6;2006:40;2148:6;2136:10;2133:22;2112:18;2100:10;2097:34;2094:62;2091:88;;;2159:18;;:::i;:::-;2091:88;2199:10;2195:2;2188:22;1978:238;1935:281;;:::o;2222:129::-;2256:6;2283:20;;:::i;:::-;2273:30;;2312:33;2340:4;2332:6;2312:33;:::i;:::-;2222:129;;;:::o;2357:117::-;2466:1;2463;2456:12;2480:116;2550:21;2565:5;2550:21;:::i;:::-;2543:5;2540:32;2530:60;;2586:1;2583;2576:12;2530:60;2480:116;:::o;2602:133::-;2645:5;2683:6;2670:20;2661:29;;2699:30;2723:5;2699:30;:::i;:::-;2602:133;;;;:::o;2741:114::-;2829:1;2822:5;2819:12;2809:40;;2845:1;2842;2835:12;2809:40;2741:114;:::o;2861:169::-;2922:5;2960:6;2947:20;2938:29;;2976:48;3018:5;2976:48;:::i;:::-;2861:169;;;;:::o;3036:117::-;3145:1;3142;3135:12;3159:117;3268:1;3265;3258:12;3282:308;3344:4;3434:18;3426:6;3423:30;3420:56;;;3456:18;;:::i;:::-;3420:56;3494:29;3516:6;3494:29;:::i;:::-;3486:37;;3578:4;3572;3568:15;3560:23;;3282:308;;;:::o;3596:148::-;3694:6;3689:3;3684;3671:30;3735:1;3726:6;3721:3;3717:16;3710:27;3596:148;;;:::o;3750:425::-;3828:5;3853:66;3869:49;3911:6;3869:49;:::i;:::-;3853:66;:::i;:::-;3844:75;;3942:6;3935:5;3928:21;3980:4;3973:5;3969:16;4018:3;4009:6;4004:3;4000:16;3997:25;3994:112;;;4025:79;;:::i;:::-;3994:112;4115:54;4162:6;4157:3;4152;4115:54;:::i;:::-;3834:341;3750:425;;;;;:::o;4195:340::-;4251:5;4300:3;4293:4;4285:6;4281:17;4277:27;4267:122;;4308:79;;:::i;:::-;4267:122;4425:6;4412:20;4450:79;4525:3;4517:6;4510:4;4502:6;4498:17;4450:79;:::i;:::-;4441:88;;4257:278;4195:340;;;;:::o;4568:934::-;4646:5;4690:4;4678:9;4673:3;4669:19;4665:30;4662:117;;;4698:79;;:::i;:::-;4662:117;4797:21;4813:4;4797:21;:::i;:::-;4788:30;;4886:1;4926:46;4968:3;4959:6;4948:9;4944:22;4926:46;:::i;:::-;4919:4;4912:5;4908:16;4901:72;4828:156;5045:2;5086:64;5146:3;5137:6;5126:9;5122:22;5086:64;:::i;:::-;5079:4;5072:5;5068:16;5061:90;4994:168;5251:2;5240:9;5236:18;5223:32;5282:18;5274:6;5271:30;5268:117;;;5304:79;;:::i;:::-;5268:117;5424:59;5479:3;5470:6;5459:9;5455:22;5424:59;:::i;:::-;5417:4;5410:5;5406:16;5399:85;5172:323;4568:934;;;;:::o;5508:89::-;5544:7;5584:6;5577:5;5573:18;5562:29;;5508:89;;;:::o;5603:120::-;5675:23;5692:5;5675:23;:::i;:::-;5668:5;5665:34;5655:62;;5713:1;5710;5703:12;5655:62;5603:120;:::o;5729:137::-;5774:5;5812:6;5799:20;5790:29;;5828:32;5854:5;5828:32;:::i;:::-;5729:137;;;;:::o;5872:311::-;5949:4;6039:18;6031:6;6028:30;6025:56;;;6061:18;;:::i;:::-;6025:56;6111:4;6103:6;6099:17;6091:25;;6171:4;6165;6161:15;6153:23;;5872:311;;;:::o;6189:117::-;6298:1;6295;6288:12;6312:77;6349:7;6378:5;6367:16;;6312:77;;;:::o;6395:122::-;6468:24;6486:5;6468:24;:::i;:::-;6461:5;6458:35;6448:63;;6507:1;6504;6497:12;6448:63;6395:122;:::o;6523:139::-;6569:5;6607:6;6594:20;6585:29;;6623:33;6650:5;6623:33;:::i;:::-;6523:139;;;;:::o;6685:710::-;6781:5;6806:81;6822:64;6879:6;6822:64;:::i;:::-;6806:81;:::i;:::-;6797:90;;6907:5;6936:6;6929:5;6922:21;6970:4;6963:5;6959:16;6952:23;;7023:4;7015:6;7011:17;7003:6;6999:30;7052:3;7044:6;7041:15;7038:122;;;7071:79;;:::i;:::-;7038:122;7186:6;7169:220;7203:6;7198:3;7195:15;7169:220;;;7278:3;7307:37;7340:3;7328:10;7307:37;:::i;:::-;7302:3;7295:50;7374:4;7369:3;7365:14;7358:21;;7245:144;7229:4;7224:3;7220:14;7213:21;;7169:220;;;7173:21;6787:608;;6685:710;;;;;:::o;7418:370::-;7489:5;7538:3;7531:4;7523:6;7519:17;7515:27;7505:122;;7546:79;;:::i;:::-;7505:122;7663:6;7650:20;7688:94;7778:3;7770:6;7763:4;7755:6;7751:17;7688:94;:::i;:::-;7679:103;;7495:293;7418:370;;;;:::o;7794:113::-;7881:1;7874:5;7871:12;7861:40;;7897:1;7894;7887:12;7861:40;7794:113;:::o;7913:167::-;7973:5;8011:6;7998:20;7989:29;;8027:47;8068:5;8027:47;:::i;:::-;7913:167;;;;:::o;8111:1277::-;8188:5;8232:4;8220:9;8215:3;8211:19;8207:30;8204:117;;;8240:79;;:::i;:::-;8204:117;8339:21;8355:4;8339:21;:::i;:::-;8330:30;;8422:1;8462:48;8506:3;8497:6;8486:9;8482:22;8462:48;:::i;:::-;8455:4;8448:5;8444:16;8437:74;8370:152;8612:2;8601:9;8597:18;8584:32;8643:18;8635:6;8632:30;8629:117;;;8665:79;;:::i;:::-;8629:117;8785:74;8855:3;8846:6;8835:9;8831:22;8785:74;:::i;:::-;8778:4;8771:5;8767:16;8760:100;8532:339;8932:2;8973:63;9032:3;9023:6;9012:9;9008:22;8973:63;:::i;:::-;8966:4;8959:5;8955:16;8948:89;8881:167;9137:2;9126:9;9122:18;9109:32;9168:18;9160:6;9157:30;9154:117;;;9190:79;;:::i;:::-;9154:117;9310:59;9365:3;9356:6;9345:9;9341:22;9310:59;:::i;:::-;9303:4;9296:5;9292:16;9285:85;9058:323;8111:1277;;;;:::o;9417:748::-;9492:5;9536:4;9524:9;9519:3;9515:19;9511:30;9508:117;;;9544:79;;:::i;:::-;9508:117;9643:21;9659:4;9643:21;:::i;:::-;9634:30;;9723:1;9763:48;9807:3;9798:6;9787:9;9783:22;9763:48;:::i;:::-;9756:4;9749:5;9745:16;9738:74;9674:149;9914:2;9903:9;9899:18;9886:32;9945:18;9937:6;9934:30;9931:117;;;9967:79;;:::i;:::-;9931:117;10087:59;10142:3;10133:6;10122:9;10118:22;10087:59;:::i;:::-;10080:4;10073:5;10069:16;10062:85;9833:325;9417:748;;;;:::o;10196:1306::-;10273:5;10317:4;10305:9;10300:3;10296:19;10292:30;10289:117;;;10325:79;;:::i;:::-;10289:117;10424:21;10440:4;10424:21;:::i;:::-;10415:30;;10533:1;10522:9;10518:17;10505:31;10563:18;10555:6;10552:30;10549:117;;;10585:79;;:::i;:::-;10549:117;10705:78;10779:3;10770:6;10759:9;10755:22;10705:78;:::i;:::-;10698:4;10691:5;10687:16;10680:104;10455:340;10882:2;10871:9;10867:18;10854:32;10913:18;10905:6;10902:30;10899:117;;;10935:79;;:::i;:::-;10899:117;11055:77;11128:3;11119:6;11108:9;11104:22;11055:77;:::i;:::-;11048:4;11041:5;11037:16;11030:103;10805:339;11235:2;11224:9;11220:18;11207:32;11266:18;11258:6;11255:30;11252:117;;;11288:79;;:::i;:::-;11252:117;11408:75;11479:3;11470:6;11459:9;11455:22;11408:75;:::i;:::-;11401:4;11394:5;11390:16;11383:101;11154:341;10196:1306;;;;:::o;11508:545::-;11595:6;11644:2;11632:9;11623:7;11619:23;11615:32;11612:119;;;11650:79;;:::i;:::-;11612:119;11798:1;11787:9;11783:17;11770:31;11828:18;11820:6;11817:30;11814:117;;;11850:79;;:::i;:::-;11814:117;11955:81;12028:7;12019:6;12008:9;12004:22;11955:81;:::i;:::-;11945:91;;11741:305;11508:545;;;;:::o;12059:77::-;12096:7;12125:5;12114:16;;12059:77;;;:::o;12142:122::-;12215:24;12233:5;12215:24;:::i;:::-;12208:5;12205:35;12195:63;;12254:1;12251;12244:12;12195:63;12142:122;:::o;12270:139::-;12316:5;12354:6;12341:20;12332:29;;12370:33;12397:5;12370:33;:::i;:::-;12270:139;;;;:::o;12441:927::-;12519:5;12563:4;12551:9;12546:3;12542:19;12538:30;12535:117;;;12571:79;;:::i;:::-;12535:117;12670:21;12686:4;12670:21;:::i;:::-;12661:30;;12778:1;12767:9;12763:17;12750:31;12808:18;12800:6;12797:30;12794:117;;;12830:79;;:::i;:::-;12794:117;12950:59;13005:3;12996:6;12985:9;12981:22;12950:59;:::i;:::-;12943:4;12936:5;12932:16;12925:85;12701:320;13091:2;13132:49;13177:3;13168:6;13157:9;13153:22;13132:49;:::i;:::-;13125:4;13118:5;13114:16;13107:75;13031:162;13259:2;13300:49;13345:3;13336:6;13325:9;13321:22;13300:49;:::i;:::-;13293:4;13286:5;13282:16;13275:75;13203:158;12441:927;;;;:::o;13374:76::-;13410:7;13439:5;13428:16;;13374:76;;;:::o;13456:120::-;13528:23;13545:5;13528:23;:::i;:::-;13521:5;13518:34;13508:62;;13566:1;13563;13556:12;13508:62;13456:120;:::o;13582:137::-;13627:5;13665:6;13652:20;13643:29;;13681:32;13707:5;13681:32;:::i;:::-;13582:137;;;;:::o;13745:570::-;13817:5;13861:4;13849:9;13844:3;13840:19;13836:30;13833:117;;;13869:79;;:::i;:::-;13833:117;13968:21;13984:4;13968:21;:::i;:::-;13959:30;;14049:1;14089:48;14133:3;14124:6;14113:9;14109:22;14089:48;:::i;:::-;14082:4;14075:5;14071:16;14064:74;13999:150;14207:2;14248:48;14292:3;14283:6;14272:9;14268:22;14248:48;:::i;:::-;14241:4;14234:5;14230:16;14223:74;14159:149;13745:570;;;;:::o;14349:799::-;14429:5;14473:4;14461:9;14456:3;14452:19;14448:30;14445:117;;;14481:79;;:::i;:::-;14445:117;14580:21;14596:4;14580:21;:::i;:::-;14571:30;;14688:1;14677:9;14673:17;14660:31;14718:18;14710:6;14707:30;14704:117;;;14740:79;;:::i;:::-;14704:117;14860:78;14934:3;14925:6;14914:9;14910:22;14860:78;:::i;:::-;14853:4;14846:5;14842:16;14835:104;14611:339;15016:2;15057:72;15125:3;15116:6;15105:9;15101:22;15057:72;:::i;:::-;15050:4;15043:5;15039:16;15032:98;14960:181;14349:799;;;;:::o;15154:551::-;15244:6;15293:2;15281:9;15272:7;15268:23;15264:32;15261:119;;;15299:79;;:::i;:::-;15261:119;15447:1;15436:9;15432:17;15419:31;15477:18;15469:6;15466:30;15463:117;;;15499:79;;:::i;:::-;15463:117;15604:84;15680:7;15671:6;15660:9;15656:22;15604:84;:::i;:::-;15594:94;;15390:308;15154:551;;;;:::o;15711:105::-;15786:23;15803:5;15786:23;:::i;:::-;15781:3;15774:36;15711:105;;:::o;15822:99::-;15893:21;15908:5;15893:21;:::i;:::-;15888:3;15881:34;15822:99;;:::o;15927:180::-;15975:77;15972:1;15965:88;16072:4;16069:1;16062:15;16096:4;16093:1;16086:15;16113:120;16201:1;16194:5;16191:12;16181:46;;16207:18;;:::i;:::-;16181:46;16113:120;:::o;16239:141::-;16291:7;16320:5;16309:16;;16326:48;16368:5;16326:48;:::i;:::-;16239:141;;;:::o;16386:::-;16449:9;16482:39;16515:5;16482:39;:::i;:::-;16469:52;;16386:141;;;:::o;16533:147::-;16623:50;16667:5;16623:50;:::i;:::-;16618:3;16611:63;16533:147;;:::o;16686:99::-;16738:6;16772:5;16766:12;16756:22;;16686:99;;;:::o;16791:159::-;16865:11;16899:6;16894:3;16887:19;16939:4;16934:3;16930:14;16915:29;;16791:159;;;;:::o;16956:248::-;17038:1;17048:113;17062:6;17059:1;17056:13;17048:113;;;17147:1;17142:3;17138:11;17132:18;17128:1;17123:3;17119:11;17112:39;17084:2;17081:1;17077:10;17072:15;;17048:113;;;17195:1;17186:6;17181:3;17177:16;17170:27;17018:186;16956:248;;;:::o;17210:357::-;17288:3;17316:39;17349:5;17316:39;:::i;:::-;17371:61;17425:6;17420:3;17371:61;:::i;:::-;17364:68;;17441:65;17499:6;17494:3;17487:4;17480:5;17476:16;17441:65;:::i;:::-;17531:29;17553:6;17531:29;:::i;:::-;17526:3;17522:39;17515:46;;17292:275;17210:357;;;;:::o;17623:798::-;17740:3;17776:4;17771:3;17767:14;17872:4;17865:5;17861:16;17855:23;17891:57;17942:4;17937:3;17933:14;17919:12;17891:57;:::i;:::-;17791:167;18042:4;18035:5;18031:16;18025:23;18061:76;18131:4;18126:3;18122:14;18108:12;18061:76;:::i;:::-;17968:179;18231:4;18224:5;18220:16;18214:23;18284:3;18278:4;18274:14;18267:4;18262:3;18258:14;18251:38;18310:73;18378:4;18364:12;18310:73;:::i;:::-;18302:81;;18157:237;18411:4;18404:11;;17745:676;17623:798;;;;:::o;18427:114::-;18494:6;18528:5;18522:12;18512:22;;18427:114;;;:::o;18547:174::-;18636:11;18670:6;18665:3;18658:19;18710:4;18705:3;18701:14;18686:29;;18547:174;;;;:::o;18727:132::-;18794:4;18817:3;18809:11;;18847:4;18842:3;18838:14;18830:22;;18727:132;;;:::o;18865:108::-;18942:24;18960:5;18942:24;:::i;:::-;18937:3;18930:37;18865:108;;:::o;18979:179::-;19048:10;19069:46;19111:3;19103:6;19069:46;:::i;:::-;19147:4;19142:3;19138:14;19124:28;;18979:179;;;;:::o;19164:113::-;19234:4;19266;19261:3;19257:14;19249:22;;19164:113;;;:::o;19313:712::-;19422:3;19451:54;19499:5;19451:54;:::i;:::-;19521:76;19590:6;19585:3;19521:76;:::i;:::-;19514:83;;19621:56;19671:5;19621:56;:::i;:::-;19700:7;19731:1;19716:284;19741:6;19738:1;19735:13;19716:284;;;19817:6;19811:13;19844:63;19903:3;19888:13;19844:63;:::i;:::-;19837:70;;19930:60;19983:6;19930:60;:::i;:::-;19920:70;;19776:224;19763:1;19760;19756:9;19751:14;;19716:284;;;19720:14;20016:3;20009:10;;19427:598;;;19313:712;;;;:::o;20031:119::-;20118:1;20111:5;20108:12;20098:46;;20124:18;;:::i;:::-;20098:46;20031:119;:::o;20156:139::-;20207:7;20236:5;20225:16;;20242:47;20283:5;20242:47;:::i;:::-;20156:139;;;:::o;20301:::-;20363:9;20396:38;20428:5;20396:38;:::i;:::-;20383:51;;20301:139;;;:::o;20446:145::-;20535:49;20578:5;20535:49;:::i;:::-;20530:3;20523:62;20446:145;;:::o;20643:1071::-;20758:3;20794:4;20789:3;20785:14;20884:4;20877:5;20873:16;20867:23;20903:61;20958:4;20953:3;20949:14;20935:12;20903:61;:::i;:::-;20809:165;21059:4;21052:5;21048:16;21042:23;21112:3;21106:4;21102:14;21095:4;21090:3;21086:14;21079:38;21138:103;21236:4;21222:12;21138:103;:::i;:::-;21130:111;;20984:268;21336:4;21329:5;21325:16;21319:23;21355:75;21424:4;21419:3;21415:14;21401:12;21355:75;:::i;:::-;21262:178;21524:4;21517:5;21513:16;21507:23;21577:3;21571:4;21567:14;21560:4;21555:3;21551:14;21544:38;21603:73;21671:4;21657:12;21603:73;:::i;:::-;21595:81;;21450:237;21704:4;21697:11;;20763:951;20643:1071;;;;:::o;21762:600::-;21873:3;21909:4;21904:3;21900:14;21996:4;21989:5;21985:16;21979:23;22015:61;22070:4;22065:3;22061:14;22047:12;22015:61;:::i;:::-;21924:162;22172:4;22165:5;22161:16;22155:23;22225:3;22219:4;22215:14;22208:4;22203:3;22199:14;22192:38;22251:73;22319:4;22305:12;22251:73;:::i;:::-;22243:81;;22096:239;22352:4;22345:11;;21878:484;21762:600;;;;:::o;22414:1029::-;22529:3;22565:4;22560:3;22556:14;22653:4;22646:5;22642:16;22636:23;22706:3;22700:4;22696:14;22689:4;22684:3;22680:14;22673:38;22732:111;22838:4;22824:12;22732:111;:::i;:::-;22724:119;;22580:274;22936:4;22929:5;22925:16;22919:23;22989:3;22983:4;22979:14;22972:4;22967:3;22963:14;22956:38;23015:109;23119:4;23105:12;23015:109;:::i;:::-;23007:117;;22864:271;23221:4;23214:5;23210:16;23204:23;23274:3;23268:4;23264:14;23257:4;23252:3;23248:14;23241:38;23300:105;23400:4;23386:12;23300:105;:::i;:::-;23292:113;;23145:271;23433:4;23426:11;;22534:909;22414:1029;;;;:::o;23449:149::-;23485:7;23525:66;23518:5;23514:78;23503:89;;23449:149;;;:::o;23604:105::-;23679:23;23696:5;23679:23;:::i;:::-;23674:3;23667:36;23604:105;;:::o;23777:874::-;23936:4;23931:3;23927:14;24027:4;24020:5;24016:16;24010:23;24046:61;24101:4;24096:3;24092:14;24078:12;24046:61;:::i;:::-;23951:166;24202:4;24195:5;24191:16;24185:23;24221:61;24276:4;24271:3;24267:14;24253:12;24221:61;:::i;:::-;24127:165;24378:4;24371:5;24367:16;24361:23;24397:61;24452:4;24447:3;24443:14;24429:12;24397:61;:::i;:::-;24302:166;24554:4;24547:5;24543:16;24537:23;24573:61;24628:4;24623:3;24619:14;24605:12;24573:61;:::i;:::-;24478:166;23905:746;23777:874;;:::o;24657:108::-;24734:24;24752:5;24734:24;:::i;:::-;24729:3;24722:37;24657:108;;:::o;24829:1130::-;24984:6;24979:3;24975:16;25079:4;25072:5;25068:16;25062:23;25098:135;25227:4;25222:3;25218:14;25204:12;25098:135;:::i;:::-;25001:242;25325:4;25318:5;25314:16;25308:23;25344:63;25401:4;25396:3;25392:14;25378:12;25344:63;:::i;:::-;25253:164;25502:4;25495:5;25491:16;25485:23;25521:63;25578:4;25573:3;25569:14;25555:12;25521:63;:::i;:::-;25427:167;25684:4;25677:5;25673:16;25667:23;25703:63;25760:4;25755:3;25751:14;25737:12;25703:63;:::i;:::-;25604:172;25860:4;25853:5;25849:16;25843:23;25879:63;25936:4;25931:3;25927:14;25913:12;25879:63;:::i;:::-;25786:166;24953:1006;24829:1130;;:::o;26015:1072::-;26134:3;26170:6;26165:3;26161:16;26261:4;26254:5;26250:16;26244:23;26280:61;26335:4;26330:3;26326:14;26312:12;26280:61;:::i;:::-;26187:164;26439:4;26432:5;26428:16;26422:23;26492:3;26486:4;26482:14;26475:4;26470:3;26466:14;26459:38;26518:109;26622:4;26608:12;26518:109;:::i;:::-;26510:117;;26361:277;26724:4;26717:5;26713:16;26707:23;26743:131;26868:4;26863:3;26859:14;26845:12;26743:131;:::i;:::-;26648:236;26966:4;26959:5;26955:16;26949:23;26985:65;27042:6;27037:3;27033:16;27019:12;26985:65;:::i;:::-;26894:166;27077:4;27070:11;;26139:948;26015:1072;;;;:::o;27151:655::-;27276:3;27312:4;27307:3;27303:14;27405:4;27398:5;27394:16;27388:23;27458:3;27452:4;27448:14;27441:4;27436:3;27432:14;27425:38;27484:103;27582:4;27568:12;27484:103;:::i;:::-;27476:111;;27327:271;27687:4;27680:5;27676:16;27670:23;27706:63;27763:4;27758:3;27754:14;27740:12;27706:63;:::i;:::-;27608:171;27796:4;27789:11;;27281:525;27151:655;;;;:::o;27866:781::-;27999:3;28035:4;28030:3;28026:14;28122:4;28115:5;28111:16;28105:23;28175:3;28169:4;28165:14;28158:4;28153:3;28149:14;28142:38;28201:113;28309:4;28295:12;28201:113;:::i;:::-;28193:121;;28050:275;28411:4;28404:5;28400:16;28394:23;28464:3;28458:4;28454:14;28447:4;28442:3;28438:14;28431:38;28490:119;28604:4;28590:12;28490:119;:::i;:::-;28482:127;;28335:285;28637:4;28630:11;;28004:643;27866:781;;;;:::o;28653:401::-;28810:4;28848:2;28837:9;28833:18;28825:26;;28897:9;28891:4;28887:20;28883:1;28872:9;28868:17;28861:47;28925:122;29042:4;29033:6;28925:122;:::i;:::-;28917:130;;28653:401;;;;:::o;29060:329::-;29119:6;29168:2;29156:9;29147:7;29143:23;29139:32;29136:119;;;29174:79;;:::i;:::-;29136:119;29294:1;29319:53;29364:7;29355:6;29344:9;29340:22;29319:53;:::i;:::-;29309:63;;29265:117;29060:329;;;;:::o;29395:118::-;29482:24;29500:5;29482:24;:::i;:::-;29477:3;29470:37;29395:118;;:::o;29519:222::-;29612:4;29650:2;29639:9;29635:18;29627:26;;29663:71;29731:1;29720:9;29716:17;29707:6;29663:71;:::i;:::-;29519:222;;;;:::o;29747:547::-;29835:6;29884:2;29872:9;29863:7;29859:23;29855:32;29852:119;;;29890:79;;:::i;:::-;29852:119;30038:1;30027:9;30023:17;30010:31;30068:18;30060:6;30057:30;30054:117;;;30090:79;;:::i;:::-;30054:117;30195:82;30269:7;30260:6;30249:9;30245:22;30195:82;:::i;:::-;30185:92;;29981:306;29747:547;;;;:::o;30350:1082::-;30479:3;30515:6;30510:3;30506:16;30606:4;30599:5;30595:16;30589:23;30625:61;30680:4;30675:3;30671:14;30657:12;30625:61;:::i;:::-;30532:164;30784:4;30777:5;30773:16;30767:23;30837:3;30831:4;30827:14;30820:4;30815:3;30811:14;30804:38;30863:109;30967:4;30953:12;30863:109;:::i;:::-;30855:117;;30706:277;31069:4;31062:5;31058:16;31052:23;31088:131;31213:4;31208:3;31204:14;31190:12;31088:131;:::i;:::-;30993:236;31311:4;31304:5;31300:16;31294:23;31330:65;31387:6;31382:3;31378:16;31364:12;31330:65;:::i;:::-;31239:166;31422:4;31415:11;;30484:948;30350:1082;;;;:::o;31438:393::-;31591:4;31629:2;31618:9;31614:18;31606:26;;31678:9;31672:4;31668:20;31664:1;31653:9;31649:17;31642:47;31706:118;31819:4;31810:6;31706:118;:::i;:::-;31698:126;;31438:393;;;;:::o;31837:126::-;31874:7;31914:42;31907:5;31903:54;31892:65;;31837:126;;;:::o;31969:96::-;32006:7;32035:24;32053:5;32035:24;:::i;:::-;32024:35;;31969:96;;;:::o;32071:122::-;32144:24;32162:5;32144:24;:::i;:::-;32137:5;32134:35;32124:63;;32183:1;32180;32173:12;32124:63;32071:122;:::o;32199:139::-;32245:5;32283:6;32270:20;32261:29;;32299:33;32326:5;32299:33;:::i;:::-;32199:139;;;;:::o;32344:474::-;32412:6;32420;32469:2;32457:9;32448:7;32444:23;32440:32;32437:119;;;32475:79;;:::i;:::-;32437:119;32595:1;32620:53;32665:7;32656:6;32645:9;32641:22;32620:53;:::i;:::-;32610:63;;32566:117;32722:2;32748:53;32793:7;32784:6;32773:9;32769:22;32748:53;:::i;:::-;32738:63;;32693:118;32344:474;;;;;:::o;32852:957::-;32932:5;32976:4;32964:9;32959:3;32955:19;32951:30;32948:117;;;32984:79;;:::i;:::-;32948:117;33083:21;33099:4;33083:21;:::i;:::-;33074:30;;33191:1;33180:9;33176:17;33163:31;33221:18;33213:6;33210:30;33207:117;;;33243:79;;:::i;:::-;33207:117;33363:78;33437:3;33428:6;33417:9;33413:22;33363:78;:::i;:::-;33356:4;33349:5;33345:16;33338:104;33114:339;33540:2;33529:9;33525:18;33512:32;33571:18;33563:6;33560:30;33557:117;;;33593:79;;:::i;:::-;33557:117;33713:77;33786:3;33777:6;33766:9;33762:22;33713:77;:::i;:::-;33706:4;33699:5;33695:16;33688:103;33463:339;32852:957;;;;:::o;33815:551::-;33905:6;33954:2;33942:9;33933:7;33929:23;33925:32;33922:119;;;33960:79;;:::i;:::-;33922:119;34108:1;34097:9;34093:17;34080:31;34138:18;34130:6;34127:30;34124:117;;;34160:79;;:::i;:::-;34124:117;34265:84;34341:7;34332:6;34321:9;34317:22;34265:84;:::i;:::-;34255:94;;34051:308;33815:551;;;;:::o;34426:669::-;34559:3;34595:4;34590:3;34586:14;34682:4;34675:5;34671:16;34665:23;34735:3;34729:4;34725:14;34718:4;34713:3;34709:14;34702:38;34761:113;34869:4;34855:12;34761:113;:::i;:::-;34753:121;;34610:275;34976:4;34969:5;34965:16;34959:23;34995:63;35052:4;35047:3;35043:14;35029:12;34995:63;:::i;:::-;34895:173;35085:4;35078:11;;34564:531;34426:669;;;;:::o;35101:401::-;35258:4;35296:2;35285:9;35281:18;35273:26;;35345:9;35339:4;35335:20;35331:1;35320:9;35316:17;35309:47;35373:122;35490:4;35481:6;35373:122;:::i;:::-;35365:130;;35101:401;;;;:::o;35508:120::-;35580:23;35597:5;35580:23;:::i;:::-;35573:5;35570:34;35560:62;;35618:1;35615;35608:12;35560:62;35508:120;:::o;35634:137::-;35679:5;35717:6;35704:20;35695:29;;35733:32;35759:5;35733:32;:::i;:::-;35634:137;;;;:::o;35810:918::-;35895:5;35939:4;35927:9;35922:3;35918:19;35914:30;35911:117;;;35947:79;;:::i;:::-;35911:117;36046:21;36062:4;36046:21;:::i;:::-;36037:30;;36130:1;36170:48;36214:3;36205:6;36194:9;36190:22;36170:48;:::i;:::-;36163:4;36156:5;36152:16;36145:74;36077:153;36292:2;36333:48;36377:3;36368:6;36357:9;36353:22;36333:48;:::i;:::-;36326:4;36319:5;36315:16;36308:74;36240:153;36456:2;36497:48;36541:3;36532:6;36521:9;36517:22;36497:48;:::i;:::-;36490:4;36483:5;36479:16;36472:74;36403:154;36620:2;36661:48;36705:3;36696:6;36685:9;36681:22;36661:48;:::i;:::-;36654:4;36647:5;36643:16;36636:74;36567:154;35810:918;;;;:::o;36734:345::-;36845:4;36935:18;36927:6;36924:30;36921:56;;;36957:18;;:::i;:::-;36921:56;37007:4;36999:6;36995:17;36987:25;;37067:4;37061;37057:15;37049:23;;36734:345;;;:::o;37085:307::-;37146:4;37236:18;37228:6;37225:30;37222:56;;;37258:18;;:::i;:::-;37222:56;37296:29;37318:6;37296:29;:::i;:::-;37288:37;;37380:4;37374;37370:15;37362:23;;37085:307;;;:::o;37398:423::-;37475:5;37500:65;37516:48;37557:6;37516:48;:::i;:::-;37500:65;:::i;:::-;37491:74;;37588:6;37581:5;37574:21;37626:4;37619:5;37615:16;37664:3;37655:6;37650:3;37646:16;37643:25;37640:112;;;37671:79;;:::i;:::-;37640:112;37761:54;37808:6;37803:3;37798;37761:54;:::i;:::-;37481:340;37398:423;;;;;:::o;37840:338::-;37895:5;37944:3;37937:4;37929:6;37925:17;37921:27;37911:122;;37952:79;;:::i;:::-;37911:122;38069:6;38056:20;38094:78;38168:3;38160:6;38153:4;38145:6;38141:17;38094:78;:::i;:::-;38085:87;;37901:277;37840:338;;;;:::o;38215:924::-;38298:5;38342:4;38330:9;38325:3;38321:19;38317:30;38314:117;;;38350:79;;:::i;:::-;38314:117;38449:21;38465:4;38449:21;:::i;:::-;38440:30;;38557:1;38546:9;38542:17;38529:31;38587:18;38579:6;38576:30;38573:117;;;38609:79;;:::i;:::-;38573:117;38729:58;38783:3;38774:6;38763:9;38759:22;38729:58;:::i;:::-;38722:4;38715:5;38711:16;38704:84;38480:319;38864:2;38905:49;38950:3;38941:6;38930:9;38926:22;38905:49;:::i;:::-;38898:4;38891:5;38887:16;38880:75;38809:157;39030:2;39071:49;39116:3;39107:6;39096:9;39092:22;39071:49;:::i;:::-;39064:4;39057:5;39053:16;39046:75;38976:156;38215:924;;;;:::o;39178:1017::-;39308:5;39333:115;39349:98;39440:6;39349:98;:::i;:::-;39333:115;:::i;:::-;39324:124;;39468:5;39497:6;39490:5;39483:21;39531:4;39524:5;39520:16;39513:23;;39584:4;39576:6;39572:17;39564:6;39560:30;39613:3;39605:6;39602:15;39599:122;;;39632:79;;:::i;:::-;39599:122;39747:6;39730:459;39764:6;39759:3;39756:15;39730:459;;;39853:3;39840:17;39889:18;39876:11;39873:35;39870:122;;;39911:79;;:::i;:::-;39870:122;40035:11;40027:6;40023:24;40073:71;40140:3;40128:10;40073:71;:::i;:::-;40068:3;40061:84;40174:4;40169:3;40165:14;40158:21;;39806:383;;39790:4;39785:3;39781:14;39774:21;;39730:459;;;39734:21;39314:881;;39178:1017;;;;;:::o;40234:438::-;40339:5;40388:3;40381:4;40373:6;40369:17;40365:27;40355:122;;40396:79;;:::i;:::-;40355:122;40513:6;40500:20;40538:128;40662:3;40654:6;40647:4;40639:6;40635:17;40538:128;:::i;:::-;40529:137;;40345:327;40234:438;;;;:::o;40703:1189::-;40780:5;40824:4;40812:9;40807:3;40803:19;40799:30;40796:117;;;40832:79;;:::i;:::-;40796:117;40931:21;40947:4;40931:21;:::i;:::-;40922:30;;41039:1;41028:9;41024:17;41011:31;41069:18;41061:6;41058:30;41055:117;;;41091:79;;:::i;:::-;41055:117;41211:78;41285:3;41276:6;41265:9;41261:22;41211:78;:::i;:::-;41204:4;41197:5;41193:16;41186:104;40962:339;41366:2;41407:85;41488:3;41479:6;41468:9;41464:22;41407:85;:::i;:::-;41400:4;41393:5;41389:16;41382:111;41311:193;41591:3;41580:9;41576:19;41563:33;41623:18;41615:6;41612:30;41609:117;;;41645:79;;:::i;:::-;41609:117;41765:108;41869:3;41860:6;41849:9;41845:22;41765:108;:::i;:::-;41758:4;41751:5;41747:16;41740:134;41514:371;40703:1189;;;;:::o;41898:545::-;41985:6;42034:2;42022:9;42013:7;42009:23;42005:32;42002:119;;;42040:79;;:::i;:::-;42002:119;42188:1;42177:9;42173:17;42160:31;42218:18;42210:6;42207:30;42204:117;;;42240:79;;:::i;:::-;42204:117;42345:81;42418:7;42409:6;42398:9;42394:22;42345:81;:::i;:::-;42335:91;;42131:305;41898:545;;;;:::o;42449:60::-;42477:3;42498:5;42491:12;;42449:60;;;:::o;42515:142::-;42565:9;42598:53;42616:34;42625:24;42643:5;42625:24;:::i;:::-;42616:34;:::i;:::-;42598:53;:::i;:::-;42585:66;;42515:142;;;:::o;42663:126::-;42713:9;42746:37;42777:5;42746:37;:::i;:::-;42733:50;;42663:126;;;:::o;42795:152::-;42871:9;42904:37;42935:5;42904:37;:::i;:::-;42891:50;;42795:152;;;:::o;42953:183::-;43066:63;43123:5;43066:63;:::i;:::-;43061:3;43054:76;42953:183;;:::o;43142:274::-;43261:4;43299:2;43288:9;43284:18;43276:26;;43312:97;43406:1;43395:9;43391:17;43382:6;43312:97;:::i;:::-;43142:274;;;;:::o;43449:987::-;43528:5;43572:4;43560:9;43555:3;43551:19;43547:30;43544:117;;;43580:79;;:::i;:::-;43544:117;43679:21;43695:4;43679:21;:::i;:::-;43670:30;;43787:1;43776:9;43772:17;43759:31;43817:18;43809:6;43806:30;43803:117;;;43839:79;;:::i;:::-;43803:117;43959:78;44033:3;44024:6;44013:9;44009:22;43959:78;:::i;:::-;43952:4;43945:5;43941:16;43934:104;43710:339;44136:2;44125:9;44121:18;44108:32;44167:18;44159:6;44156:30;44153:117;;;44189:79;;:::i;:::-;44153:117;44309:108;44413:3;44404:6;44393:9;44389:22;44309:108;:::i;:::-;44302:4;44295:5;44291:16;44284:134;44059:370;43449:987;;;;:::o;44442:549::-;44531:6;44580:2;44568:9;44559:7;44555:23;44551:32;44548:119;;;44586:79;;:::i;:::-;44548:119;44734:1;44723:9;44719:17;44706:31;44764:18;44756:6;44753:30;44750:117;;;44786:79;;:::i;:::-;44750:117;44891:83;44966:7;44957:6;44946:9;44942:22;44891:83;:::i;:::-;44881:93;;44677:307;44442:549;;;;:::o;44997:151::-;45072:9;45105:37;45136:5;45105:37;:::i;:::-;45092:50;;44997:151;;;:::o;45154:181::-;45266:62;45322:5;45266:62;:::i;:::-;45261:3;45254:75;45154:181;;:::o;45341:272::-;45459:4;45497:2;45486:9;45482:18;45474:26;;45510:96;45603:1;45592:9;45588:17;45579:6;45510:96;:::i;:::-;45341:272;;;;:::o;45619:509::-;45688:6;45737:2;45725:9;45716:7;45712:23;45708:32;45705:119;;;45743:79;;:::i;:::-;45705:119;45891:1;45880:9;45876:17;45863:31;45921:18;45913:6;45910:30;45907:117;;;45943:79;;:::i;:::-;45907:117;46048:63;46103:7;46094:6;46083:9;46079:22;46048:63;:::i;:::-;46038:73;;45834:287;45619:509;;;;:::o;46190:522::-;46353:4;46348:3;46344:14;46442:4;46435:5;46431:16;46425:23;46461:61;46516:4;46511:3;46507:14;46493:12;46461:61;:::i;:::-;46368:164;46615:4;46608:5;46604:16;46598:23;46634:61;46689:4;46684:3;46680:14;46666:12;46634:61;:::i;:::-;46542:163;46322:390;46190:522;;:::o;46718:354::-;46877:4;46915:2;46904:9;46900:18;46892:26;;46928:137;47062:1;47051:9;47047:17;47038:6;46928:137;:::i;:::-;46718:354;;;;:::o;47078:332::-;47199:4;47237:2;47226:9;47222:18;47214:26;;47250:71;47318:1;47307:9;47303:17;47294:6;47250:71;:::i;:::-;47331:72;47399:2;47388:9;47384:18;47375:6;47331:72;:::i;:::-;47078:332;;;;;:::o;47416:121::-;47478:7;47507:24;47525:5;47507:24;:::i;:::-;47496:35;;47416:121;;;:::o;47543:172::-;47641:49;47684:5;47641:49;:::i;:::-;47634:5;47631:60;47621:88;;47705:1;47702;47695:12;47621:88;47543:172;:::o;47721:193::-;47803:5;47834:6;47828:13;47819:22;;47850:58;47902:5;47850:58;:::i;:::-;47721:193;;;;:::o;47920:401::-;48015:6;48064:2;48052:9;48043:7;48039:23;48035:32;48032:119;;;48070:79;;:::i;:::-;48032:119;48190:1;48215:89;48296:7;48287:6;48276:9;48272:22;48215:89;:::i;:::-;48205:99;;48161:153;47920:401;;;;:::o;48327:169::-;48411:11;48445:6;48440:3;48433:19;48485:4;48480:3;48476:14;48461:29;;48327:169;;;;:::o;48502:168::-;48642:20;48638:1;48630:6;48626:14;48619:44;48502:168;:::o;48676:366::-;48818:3;48839:67;48903:2;48898:3;48839:67;:::i;:::-;48832:74;;48915:93;49004:3;48915:93;:::i;:::-;49033:2;49028:3;49024:12;49017:19;;48676:366;;;:::o;49048:115::-;49133:23;49150:5;49133:23;:::i;:::-;49128:3;49121:36;49048:115;;:::o;49169:623::-;49383:4;49421:2;49410:9;49406:18;49398:26;;49470:9;49464:4;49460:20;49456:1;49445:9;49441:17;49434:47;49498:131;49624:4;49498:131;:::i;:::-;49490:139;;49639:70;49705:2;49694:9;49690:18;49681:6;49639:70;:::i;:::-;49719:66;49781:2;49770:9;49766:18;49757:6;49719:66;:::i;:::-;49169:623;;;;;:::o;49798:168::-;49938:20;49934:1;49926:6;49922:14;49915:44;49798:168;:::o;49972:366::-;50114:3;50135:67;50199:2;50194:3;50135:67;:::i;:::-;50128:74;;50211:93;50300:3;50211:93;:::i;:::-;50329:2;50324:3;50320:12;50313:19;;49972:366;;;:::o;50344:623::-;50558:4;50596:2;50585:9;50581:18;50573:26;;50645:9;50639:4;50635:20;50631:1;50620:9;50616:17;50609:47;50673:131;50799:4;50673:131;:::i;:::-;50665:139;;50814:70;50880:2;50869:9;50865:18;50856:6;50814:70;:::i;:::-;50894:66;50956:2;50945:9;50941:18;50932:6;50894:66;:::i;:::-;50344:623;;;;;:::o;50973:159::-;51113:11;51109:1;51101:6;51097:14;51090:35;50973:159;:::o;51138:365::-;51280:3;51301:66;51365:1;51360:3;51301:66;:::i;:::-;51294:73;;51376:93;51465:3;51376:93;:::i;:::-;51494:2;51489:3;51485:12;51478:19;;51138:365;;;:::o;51509:517::-;51697:4;51735:2;51724:9;51720:18;51712:26;;51784:9;51778:4;51774:20;51770:1;51759:9;51755:17;51748:47;51812:131;51938:4;51812:131;:::i;:::-;51804:139;;51953:66;52015:2;52004:9;52000:18;51991:6;51953:66;:::i;:::-;51509:517;;;;:::o;52032:159::-;52172:11;52168:1;52160:6;52156:14;52149:35;52032:159;:::o;52197:365::-;52339:3;52360:66;52424:1;52419:3;52360:66;:::i;:::-;52353:73;;52435:93;52524:3;52435:93;:::i;:::-;52553:2;52548:3;52544:12;52537:19;;52197:365;;;:::o;52568:529::-;52762:4;52800:2;52789:9;52785:18;52777:26;;52849:9;52843:4;52839:20;52835:1;52824:9;52820:17;52813:47;52877:131;53003:4;52877:131;:::i;:::-;52869:139;;53018:72;53086:2;53075:9;53071:18;53062:6;53018:72;:::i;:::-;52568:529;;;;:::o;53103:148::-;53205:11;53242:3;53227:18;;53103:148;;;;:::o;53257:390::-;53363:3;53391:39;53424:5;53391:39;:::i;:::-;53446:89;53528:6;53523:3;53446:89;:::i;:::-;53439:96;;53544:65;53602:6;53597:3;53590:4;53583:5;53579:16;53544:65;:::i;:::-;53634:6;53629:3;53625:16;53618:23;;53367:280;53257:390;;;;:::o;53653:275::-;53785:3;53807:95;53898:3;53889:6;53807:95;:::i;:::-;53800:102;;53919:3;53912:10;;53653:275;;;;:::o;53934:377::-;54022:3;54050:39;54083:5;54050:39;:::i;:::-;54105:71;54169:6;54164:3;54105:71;:::i;:::-;54098:78;;54185:65;54243:6;54238:3;54231:4;54224:5;54220:16;54185:65;:::i;:::-;54275:29;54297:6;54275:29;:::i;:::-;54270:3;54266:39;54259:46;;54026:285;53934:377;;;;:::o;54317:313::-;54430:4;54468:2;54457:9;54453:18;54445:26;;54517:9;54511:4;54507:20;54503:1;54492:9;54488:17;54481:47;54545:78;54618:4;54609:6;54545:78;:::i;:::-;54537:86;;54317:313;;;;:::o;54636:180::-;54684:77;54681:1;54674:88;54781:4;54778:1;54771:15;54805:4;54802:1;54795:15;54822:372;54861:4;54881:19;54898:1;54881:19;:::i;:::-;54876:24;;54914:19;54931:1;54914:19;:::i;:::-;54909:24;;54957:1;54954;54950:9;54942:17;;55151:1;55145:4;55141:12;55137:1;55134;55130:9;55126:28;55109:1;55103:4;55099:12;55094:1;55091;55087:9;55080:17;55076:36;55060:104;55057:130;;;55167:18;;:::i;:::-;55057:130;54822:372;;;;:::o;55200:375::-;55239:3;55258:19;55275:1;55258:19;:::i;:::-;55253:24;;55291:19;55308:1;55291:19;:::i;:::-;55286:24;;55333:1;55330;55326:9;55319:16;;55531:1;55526:3;55522:11;55515:19;55511:1;55508;55504:9;55500:35;55483:1;55478:3;55474:11;55469:1;55466;55462:9;55455:17;55451:35;55435:110;55432:136;;;55548:18;;:::i;:::-;55432:136;55200:375;;;;:::o;55581:191::-;55621:3;55640:20;55658:1;55640:20;:::i;:::-;55635:25;;55674:20;55692:1;55674:20;:::i;:::-;55669:25;;55717:1;55714;55710:9;55703:16;;55738:3;55735:1;55732:10;55729:36;;;55745:18;;:::i;:::-;55729:36;55581:191;;;;:::o;55778:180::-;55826:77;55823:1;55816:88;55923:4;55920:1;55913:15;55947:4;55944:1;55937:15;55964:180;56012:77;56009:1;56002:88;56109:4;56106:1;56099:15;56133:4;56130:1;56123:15;56150:320;56194:6;56231:1;56225:4;56221:12;56211:22;;56278:1;56272:4;56268:12;56299:18;56289:81;;56355:4;56347:6;56343:17;56333:27;;56289:81;56417:2;56409:6;56406:14;56386:18;56383:38;56380:84;;56436:18;;:::i;:::-;56380:84;56201:269;56150:320;;;:::o;56534:1140::-;56699:6;56694:3;56690:16;56794:4;56787:5;56783:16;56777:23;56813:135;56942:4;56937:3;56933:14;56919:12;56813:135;:::i;:::-;56716:242;57040:4;57033:5;57029:16;57023:23;57059:63;57116:4;57111:3;57107:14;57093:12;57059:63;:::i;:::-;56968:164;57217:4;57210:5;57206:16;57200:23;57236:63;57293:4;57288:3;57284:14;57270:12;57236:63;:::i;:::-;57142:167;57399:4;57392:5;57388:16;57382:23;57418:63;57475:4;57470:3;57466:14;57452:12;57418:63;:::i;:::-;57319:172;57575:4;57568:5;57564:16;57558:23;57594:63;57651:4;57646:3;57642:14;57628:12;57594:63;:::i;:::-;57501:166;56668:1006;56534:1140;;:::o;57680:184::-;57779:11;57813:6;57808:3;57801:19;57853:4;57848:3;57844:14;57829:29;;57680:184;;;;:::o;57900:732::-;58019:3;58048:54;58096:5;58048:54;:::i;:::-;58118:86;58197:6;58192:3;58118:86;:::i;:::-;58111:93;;58228:56;58278:5;58228:56;:::i;:::-;58307:7;58338:1;58323:284;58348:6;58345:1;58342:13;58323:284;;;58424:6;58418:13;58451:63;58510:3;58495:13;58451:63;:::i;:::-;58444:70;;58537:60;58590:6;58537:60;:::i;:::-;58527:70;;58383:224;58370:1;58367;58363:9;58358:14;;58323:284;;;58327:14;58623:3;58616:10;;58024:608;;;57900:732;;;;:::o;58638:621::-;58877:4;58915:3;58904:9;58900:19;58892:27;;58929:139;59065:1;59054:9;59050:17;59041:6;58929:139;:::i;:::-;59116:9;59110:4;59106:20;59100:3;59089:9;59085:19;59078:49;59144:108;59247:4;59238:6;59144:108;:::i;:::-;59136:116;;58638:621;;;;;:::o;59265:98::-;59316:6;59350:5;59344:12;59334:22;;59265:98;;;:::o;59369:168::-;59452:11;59486:6;59481:3;59474:19;59526:4;59521:3;59517:14;59502:29;;59369:168;;;;:::o;59543:373::-;59629:3;59657:38;59689:5;59657:38;:::i;:::-;59711:70;59774:6;59769:3;59711:70;:::i;:::-;59704:77;;59790:65;59848:6;59843:3;59836:4;59829:5;59825:16;59790:65;:::i;:::-;59880:29;59902:6;59880:29;:::i;:::-;59875:3;59871:39;59864:46;;59633:283;59543:373;;;;:::o;59922:309::-;60033:4;60071:2;60060:9;60056:18;60048:26;;60120:9;60114:4;60110:20;60106:1;60095:9;60091:17;60084:47;60148:76;60219:4;60210:6;60148:76;:::i;:::-;60140:84;;59922:309;;;;:::o;60237:143::-;60294:5;60325:6;60319:13;60310:22;;60341:33;60368:5;60341:33;:::i;:::-;60237:143;;;;:::o;60386:351::-;60456:6;60505:2;60493:9;60484:7;60480:23;60476:32;60473:119;;;60511:79;;:::i;:::-;60473:119;60631:1;60656:64;60712:7;60703:6;60692:9;60688:22;60656:64;:::i;:::-;60646:74;;60602:128;60386:351;;;;:::o;60743:118::-;60830:24;60848:5;60830:24;:::i;:::-;60825:3;60818:37;60743:118;;:::o;60867:332::-;60988:4;61026:2;61015:9;61011:18;61003:26;;61039:71;61107:1;61096:9;61092:17;61083:6;61039:71;:::i;:::-;61120:72;61188:2;61177:9;61173:18;61164:6;61120:72;:::i;:::-;60867:332;;;;;:::o;61251:1039::-;61376:3;61412:4;61407:3;61403:14;61500:4;61493:5;61489:16;61483:23;61553:3;61547:4;61543:14;61536:4;61531:3;61527:14;61520:38;61579:111;61685:4;61671:12;61579:111;:::i;:::-;61571:119;;61427:274;61783:4;61776:5;61772:16;61766:23;61836:3;61830:4;61826:14;61819:4;61814:3;61810:14;61803:38;61862:109;61966:4;61952:12;61862:109;:::i;:::-;61854:117;;61711:271;62068:4;62061:5;62057:16;62051:23;62121:3;62115:4;62111:14;62104:4;62099:3;62095:14;62088:38;62147:105;62247:4;62233:12;62147:105;:::i;:::-;62139:113;;61992:271;62280:4;62273:11;;61381:909;61251:1039;;;;:::o;62296:385::-;62445:4;62483:2;62472:9;62468:18;62460:26;;62532:9;62526:4;62522:20;62518:1;62507:9;62503:17;62496:47;62560:114;62669:4;62660:6;62560:114;:::i;:::-;62552:122;;62296:385;;;;:::o;62687:141::-;62736:4;62759:3;62751:11;;62782:3;62779:1;62772:14;62816:4;62813:1;62803:18;62795:26;;62687:141;;;:::o;62834:93::-;62871:6;62918:2;62913;62906:5;62902:14;62898:23;62888:33;;62834:93;;;:::o;62933:107::-;62977:8;63027:5;63021:4;63017:16;62996:37;;62933:107;;;;:::o;63046:393::-;63115:6;63165:1;63153:10;63149:18;63188:97;63218:66;63207:9;63188:97;:::i;:::-;63306:39;63336:8;63325:9;63306:39;:::i;:::-;63294:51;;63378:4;63374:9;63367:5;63363:21;63354:30;;63427:4;63417:8;63413:19;63406:5;63403:30;63393:40;;63122:317;;63046:393;;;;;:::o;63445:142::-;63495:9;63528:53;63546:34;63555:24;63573:5;63555:24;:::i;:::-;63546:34;:::i;:::-;63528:53;:::i;:::-;63515:66;;63445:142;;;:::o;63593:75::-;63636:3;63657:5;63650:12;;63593:75;;;:::o;63674:269::-;63784:39;63815:7;63784:39;:::i;:::-;63845:91;63894:41;63918:16;63894:41;:::i;:::-;63886:6;63879:4;63873:11;63845:91;:::i;:::-;63839:4;63832:105;63750:193;63674:269;;;:::o;63949:73::-;63994:3;63949:73;:::o;64028:189::-;64105:32;;:::i;:::-;64146:65;64204:6;64196;64190:4;64146:65;:::i;:::-;64081:136;64028:189;;:::o;64223:186::-;64283:120;64300:3;64293:5;64290:14;64283:120;;;64354:39;64391:1;64384:5;64354:39;:::i;:::-;64327:1;64320:5;64316:13;64307:22;;64283:120;;;64223:186;;:::o;64415:543::-;64516:2;64511:3;64508:11;64505:446;;;64550:38;64582:5;64550:38;:::i;:::-;64634:29;64652:10;64634:29;:::i;:::-;64624:8;64620:44;64817:2;64805:10;64802:18;64799:49;;;64838:8;64823:23;;64799:49;64861:80;64917:22;64935:3;64917:22;:::i;:::-;64907:8;64903:37;64890:11;64861:80;:::i;:::-;64520:431;;64505:446;64415:543;;;:::o;64964:117::-;65018:8;65068:5;65062:4;65058:16;65037:37;;64964:117;;;;:::o;65087:169::-;65131:6;65164:51;65212:1;65208:6;65200:5;65197:1;65193:13;65164:51;:::i;:::-;65160:56;65245:4;65239;65235:15;65225:25;;65138:118;65087:169;;;;:::o;65261:295::-;65337:4;65483:29;65508:3;65502:4;65483:29;:::i;:::-;65475:37;;65545:3;65542:1;65538:11;65532:4;65529:21;65521:29;;65261:295;;;;:::o;65561:1395::-;65678:37;65711:3;65678:37;:::i;:::-;65780:18;65772:6;65769:30;65766:56;;;65802:18;;:::i;:::-;65766:56;65846:38;65878:4;65872:11;65846:38;:::i;:::-;65931:67;65991:6;65983;65977:4;65931:67;:::i;:::-;66025:1;66049:4;66036:17;;66081:2;66073:6;66070:14;66098:1;66093:618;;;;66755:1;66772:6;66769:77;;;66821:9;66816:3;66812:19;66806:26;66797:35;;66769:77;66872:67;66932:6;66925:5;66872:67;:::i;:::-;66866:4;66859:81;66728:222;66063:887;;66093:618;66145:4;66141:9;66133:6;66129:22;66179:37;66211:4;66179:37;:::i;:::-;66238:1;66252:208;66266:7;66263:1;66260:14;66252:208;;;66345:9;66340:3;66336:19;66330:26;66322:6;66315:42;66396:1;66388:6;66384:14;66374:24;;66443:2;66432:9;66428:18;66415:31;;66289:4;66286:1;66282:12;66277:17;;66252:208;;;66488:6;66479:7;66476:19;66473:179;;;66546:9;66541:3;66537:19;66531:26;66589:48;66631:4;66623:6;66619:17;66608:9;66589:48;:::i;:::-;66581:6;66574:64;66496:156;66473:179;66698:1;66694;66686:6;66682:14;66678:22;66672:4;66665:36;66100:611;;;66063:887;;65653:1303;;;65561:1395;;:::o;66962:233::-;67001:3;67024:24;67042:5;67024:24;:::i;:::-;67015:33;;67070:66;67063:5;67060:77;67057:103;;67140:18;;:::i;:::-;67057:103;67187:1;67180:5;67176:13;67169:20;;66962:233;;;:::o;67201:163::-;67341:15;67337:1;67329:6;67325:14;67318:39;67201:163;:::o;67370:366::-;67512:3;67533:67;67597:2;67592:3;67533:67;:::i;:::-;67526:74;;67609:93;67698:3;67609:93;:::i;:::-;67727:2;67722:3;67718:12;67711:19;;67370:366;;;:::o;67742:105::-;67817:23;67834:5;67817:23;:::i;:::-;67812:3;67805:36;67742:105;;:::o;67889:499::-;68032:4;68027:3;68023:14;68120:4;68113:5;68109:16;68103:23;68139:61;68194:4;68189:3;68185:14;68171:12;68139:61;:::i;:::-;68047:163;68291:4;68284:5;68280:16;68274:23;68310:61;68365:4;68360:3;68356:14;68342:12;68310:61;:::i;:::-;68220:161;68001:387;67889:499;;:::o;68394:115::-;68479:23;68496:5;68479:23;:::i;:::-;68474:3;68467:36;68394:115;;:::o;68515:728::-;68781:4;68819:3;68808:9;68804:19;68796:27;;68869:9;68863:4;68859:20;68855:1;68844:9;68840:17;68833:47;68897:131;69023:4;68897:131;:::i;:::-;68889:139;;69038:118;69152:2;69141:9;69137:18;69128:6;69038:118;:::i;:::-;69166:70;69232:2;69221:9;69217:18;69208:6;69166:70;:::i;:::-;68515:728;;;;;:::o;69249:143::-;69306:5;69337:6;69331:13;69322:22;;69353:33;69380:5;69353:33;:::i;:::-;69249:143;;;;:::o;69398:351::-;69468:6;69517:2;69505:9;69496:7;69492:23;69488:32;69485:119;;;69523:79;;:::i;:::-;69485:119;69643:1;69668:64;69724:7;69715:6;69704:9;69700:22;69668:64;:::i;:::-;69658:74;;69614:128;69398:351;;;;:::o;69755:419::-;69894:4;69932:2;69921:9;69917:18;69909:26;;69981:9;69975:4;69971:20;69967:1;69956:9;69952:17;69945:47;70009:76;70080:4;70071:6;70009:76;:::i;:::-;70001:84;;70095:72;70163:2;70152:9;70148:18;70139:6;70095:72;:::i;:::-;69755:419;;;;;:::o;70180:193::-;70219:3;70238:19;70255:1;70238:19;:::i;:::-;70233:24;;70271:19;70288:1;70271:19;:::i;:::-;70266:24;;70313:1;70310;70306:9;70299:16;;70336:6;70331:3;70328:15;70325:41;;;70346:18;;:::i;:::-;70325:41;70180:193;;;;:::o;70379:194::-;70419:4;70439:20;70457:1;70439:20;:::i;:::-;70434:25;;70473:20;70491:1;70473:20;:::i;:::-;70468:25;;70517:1;70514;70510:9;70502:17;;70541:1;70535:4;70532:11;70529:37;;;70546:18;;:::i;:::-;70529:37;70379:194;;;;:::o;70579:118::-;70666:24;70684:5;70666:24;:::i;:::-;70661:3;70654:37;70579:118;;:::o;70703:423::-;70844:4;70882:2;70871:9;70867:18;70859:26;;70931:9;70925:4;70921:20;70917:1;70906:9;70902:17;70895:47;70959:78;71032:4;71023:6;70959:78;:::i;:::-;70951:86;;71047:72;71115:2;71104:9;71100:18;71091:6;71047:72;:::i;:::-;70703:423;;;;;:::o"},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","DEFINE(((string,uint256,bytes32),((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string))))":"42a4cf7d","DELETE((string,uint256,bytes32))":"ca63628c","DPR()":"c2640ed1","DPS()":"ef4e06ec","GET(((string,uint256,bytes32),(int256,int256)))":"0f9004b8","HEAD((string,uint256,bytes32))":"28699f17","OPTIONS(string)":"fd05b634","PATCH(((string,uint256,bytes32),(bytes,uint256,address)[]))":"dd0fec4c","PUT(((string,uint256,bytes32),(bytes2,bytes2,bytes2,bytes2),(bytes,uint256,address)[]))":"b0184e01","changeSiteAdmin(bytes32)":"32729d5e","createResourceRole(bytes32)":"b2455654","getRoleAdmin(bytes32)":"248a9ca3","getSiteAdminRole()":"336875a1","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setDefaultHeader(((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)))":"04f457fa","supportsInterface(bytes4)":"01ffc9a7"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_dpr\",\"type\":\"address\"},{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"_defaultHeader\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"header\",\"type\":\"tuple\"}],\"name\":\"InvalidHeader\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"InvalidRole\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"_403\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"isImmutable\",\"type\":\"bool\"}],\"name\":\"_404\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"uint16\",\"name\":\"methodsAllowed\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"isImmutable\",\"type\":\"bool\"}],\"name\":\"_405\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"int256\",\"name\":\"start\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"end\",\"type\":\"int256\"}],\"internalType\":\"struct Range\",\"name\":\"range\",\"type\":\"tuple\"},{\"internalType\":\"int256\",\"name\":\"outOfBounds\",\"type\":\"int256\"}],\"name\":\"_416\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"components\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"status\",\"type\":\"uint16\"},{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"headerInfo\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes2\",\"name\":\"mimeType\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"charset\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"encoding\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"language\",\"type\":\"bytes2\"}],\"internalType\":\"struct ResourceProperties\",\"name\":\"properties\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastModified\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"header\",\"type\":\"bytes32\"}],\"internalType\":\"struct ResourceMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"etag\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADResponse\",\"name\":\"head\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"headerAddress\",\"type\":\"bytes32\"}],\"indexed\":false,\"internalType\":\"struct DEFINEResponse\",\"name\":\"response\",\"type\":\"tuple\"}],\"name\":\"DEFINESuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"status\",\"type\":\"uint16\"},{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"headerInfo\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes2\",\"name\":\"mimeType\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"charset\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"encoding\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"language\",\"type\":\"bytes2\"}],\"internalType\":\"struct ResourceProperties\",\"name\":\"properties\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastModified\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"header\",\"type\":\"bytes32\"}],\"internalType\":\"struct ResourceMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"etag\",\"type\":\"bytes32\"}],\"indexed\":false,\"internalType\":\"struct HEADResponse\",\"name\":\"response\",\"type\":\"tuple\"}],\"name\":\"DELETESuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"headerAddress\",\"type\":\"bytes32\"}],\"name\":\"HeaderCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"headerAddress\",\"type\":\"bytes32\"}],\"name\":\"HeaderUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"MetadataDeleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"MetadataUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"components\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"status\",\"type\":\"uint16\"},{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"headerInfo\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes2\",\"name\":\"mimeType\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"charset\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"encoding\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"language\",\"type\":\"bytes2\"}],\"internalType\":\"struct ResourceProperties\",\"name\":\"properties\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastModified\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"header\",\"type\":\"bytes32\"}],\"internalType\":\"struct ResourceMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"etag\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADResponse\",\"name\":\"head\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"dataPoints\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"totalChunks\",\"type\":\"uint256\"}],\"internalType\":\"struct ResourceResponse\",\"name\":\"resource\",\"type\":\"tuple\"}],\"indexed\":false,\"internalType\":\"struct LOCATEResponse\",\"name\":\"response\",\"type\":\"tuple\"}],\"name\":\"PATCHSuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"components\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"status\",\"type\":\"uint16\"},{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"headerInfo\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes2\",\"name\":\"mimeType\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"charset\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"encoding\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"language\",\"type\":\"bytes2\"}],\"internalType\":\"struct ResourceProperties\",\"name\":\"properties\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastModified\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"header\",\"type\":\"bytes32\"}],\"internalType\":\"struct ResourceMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"etag\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADResponse\",\"name\":\"head\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"dataPoints\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"totalChunks\",\"type\":\"uint256\"}],\"internalType\":\"struct ResourceResponse\",\"name\":\"resource\",\"type\":\"tuple\"}],\"indexed\":false,\"internalType\":\"struct LOCATEResponse\",\"name\":\"response\",\"type\":\"tuple\"}],\"name\":\"PUTSuccess\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"ResourceCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"}],\"name\":\"ResourceDeleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"ResourceRoleCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"chunkIndex\",\"type\":\"uint256\"}],\"name\":\"ResourceUpdated\",\"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\":\"bytes32\",\"name\":\"oldSiteAdmin\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"newSiteAdmin\",\"type\":\"bytes32\"}],\"name\":\"SiteAdminChanged\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"ifModifiedSince\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"ifNoneMatch\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADRequest\",\"name\":\"head\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"data\",\"type\":\"tuple\"}],\"internalType\":\"struct DEFINERequest\",\"name\":\"defineRequest\",\"type\":\"tuple\"}],\"name\":\"DEFINE\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"status\",\"type\":\"uint16\"},{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"headerInfo\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes2\",\"name\":\"mimeType\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"charset\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"encoding\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"language\",\"type\":\"bytes2\"}],\"internalType\":\"struct ResourceProperties\",\"name\":\"properties\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastModified\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"header\",\"type\":\"bytes32\"}],\"internalType\":\"struct ResourceMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"etag\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADResponse\",\"name\":\"head\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"headerAddress\",\"type\":\"bytes32\"}],\"internalType\":\"struct DEFINEResponse\",\"name\":\"defineResponse\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"ifModifiedSince\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"ifNoneMatch\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADRequest\",\"name\":\"deleteRequest\",\"type\":\"tuple\"}],\"name\":\"DELETE\",\"outputs\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"status\",\"type\":\"uint16\"},{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"headerInfo\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes2\",\"name\":\"mimeType\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"charset\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"encoding\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"language\",\"type\":\"bytes2\"}],\"internalType\":\"struct ResourceProperties\",\"name\":\"properties\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastModified\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"header\",\"type\":\"bytes32\"}],\"internalType\":\"struct ResourceMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"etag\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADResponse\",\"name\":\"deleteResponse\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DPR\",\"outputs\":[{\"internalType\":\"contract IDataPointRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DPS\",\"outputs\":[{\"internalType\":\"contract IDataPointStorage\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"ifModifiedSince\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"ifNoneMatch\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADRequest\",\"name\":\"head\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int256\",\"name\":\"start\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"end\",\"type\":\"int256\"}],\"internalType\":\"struct Range\",\"name\":\"rangeChunks\",\"type\":\"tuple\"}],\"internalType\":\"struct LOCATERequest\",\"name\":\"getRequest\",\"type\":\"tuple\"}],\"name\":\"GET\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"status\",\"type\":\"uint16\"},{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"headerInfo\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes2\",\"name\":\"mimeType\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"charset\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"encoding\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"language\",\"type\":\"bytes2\"}],\"internalType\":\"struct ResourceProperties\",\"name\":\"properties\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastModified\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"header\",\"type\":\"bytes32\"}],\"internalType\":\"struct ResourceMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"etag\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADResponse\",\"name\":\"head\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"dataPoints\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"totalChunks\",\"type\":\"uint256\"}],\"internalType\":\"struct ResourceResponse\",\"name\":\"resource\",\"type\":\"tuple\"}],\"internalType\":\"struct LOCATEResponse\",\"name\":\"getResponse\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"ifModifiedSince\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"ifNoneMatch\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADRequest\",\"name\":\"headRequest\",\"type\":\"tuple\"}],\"name\":\"HEAD\",\"outputs\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"status\",\"type\":\"uint16\"},{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"headerInfo\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes2\",\"name\":\"mimeType\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"charset\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"encoding\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"language\",\"type\":\"bytes2\"}],\"internalType\":\"struct ResourceProperties\",\"name\":\"properties\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastModified\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"header\",\"type\":\"bytes32\"}],\"internalType\":\"struct ResourceMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"etag\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADResponse\",\"name\":\"head\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_path\",\"type\":\"string\"}],\"name\":\"OPTIONS\",\"outputs\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"status\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"allow\",\"type\":\"uint16\"}],\"internalType\":\"struct OPTIONSResponse\",\"name\":\"optionsResponse\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"ifModifiedSince\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"ifNoneMatch\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADRequest\",\"name\":\"head\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"chunkIndex\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"}],\"internalType\":\"struct DataRegistration[]\",\"name\":\"data\",\"type\":\"tuple[]\"}],\"internalType\":\"struct PATCHRequest\",\"name\":\"patchRequest\",\"type\":\"tuple\"}],\"name\":\"PATCH\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"status\",\"type\":\"uint16\"},{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"headerInfo\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes2\",\"name\":\"mimeType\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"charset\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"encoding\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"language\",\"type\":\"bytes2\"}],\"internalType\":\"struct ResourceProperties\",\"name\":\"properties\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastModified\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"header\",\"type\":\"bytes32\"}],\"internalType\":\"struct ResourceMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"etag\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADResponse\",\"name\":\"head\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"dataPoints\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"totalChunks\",\"type\":\"uint256\"}],\"internalType\":\"struct ResourceResponse\",\"name\":\"resource\",\"type\":\"tuple\"}],\"internalType\":\"struct LOCATEResponse\",\"name\":\"patchResponse\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"ifModifiedSince\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"ifNoneMatch\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADRequest\",\"name\":\"head\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes2\",\"name\":\"mimeType\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"charset\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"encoding\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"language\",\"type\":\"bytes2\"}],\"internalType\":\"struct ResourceProperties\",\"name\":\"properties\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"chunkIndex\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"}],\"internalType\":\"struct DataRegistration[]\",\"name\":\"data\",\"type\":\"tuple[]\"}],\"internalType\":\"struct PUTRequest\",\"name\":\"putRequest\",\"type\":\"tuple\"}],\"name\":\"PUT\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"status\",\"type\":\"uint16\"},{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"headerInfo\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes2\",\"name\":\"mimeType\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"charset\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"encoding\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"language\",\"type\":\"bytes2\"}],\"internalType\":\"struct ResourceProperties\",\"name\":\"properties\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastModified\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"header\",\"type\":\"bytes32\"}],\"internalType\":\"struct ResourceMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"etag\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADResponse\",\"name\":\"head\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"dataPoints\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"totalChunks\",\"type\":\"uint256\"}],\"internalType\":\"struct ResourceResponse\",\"name\":\"resource\",\"type\":\"tuple\"}],\"internalType\":\"struct LOCATEResponse\",\"name\":\"putResponse\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_newSiteAdmin\",\"type\":\"bytes32\"}],\"name\":\"changeSiteAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"}],\"name\":\"createResourceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSiteAdminRole\",\"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\":[{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"_defaultHeader\",\"type\":\"tuple\"}],\"name\":\"setDefaultHeader\",\"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\":{\"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.\"}],\"InvalidHeader(((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)))\":[{\"params\":{\"header\":\"The header that was invalid\"}}],\"InvalidRole(bytes32)\":[{\"params\":{\"role\":\"The role identifier that caused the error\"}}],\"_403(string,bytes32)\":[{\"params\":{\"reason\":\"Reason for the error\",\"role\":\"Required role for the action\"}}],\"_404(string,bool)\":[{\"params\":{\"isImmutable\":\"Whether the resource is immutable\",\"reason\":\"Reason for the error\"}}],\"_405(string,uint16,bool)\":[{\"params\":{\"isImmutable\":\"Whether the resource is immutable\",\"methodsAllowed\":\"Bitmask of allowed methods\",\"reason\":\"Reason for the error\"}}],\"_416(string,(int256,int256),int256)\":[{\"params\":{\"outOfBounds\":\"The index that was out of bounds\",\"range\":\"The range that was out of bounds\"}}]},\"events\":{\"DEFINESuccess(address,((uint16,((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)),((bytes2,bytes2,bytes2,bytes2),uint256,uint256,uint256,bytes32),bytes32),bytes32))\":{\"params\":{\"account\":\"The account or contract that made the request\",\"response\":\"The response data\"}},\"DELETESuccess(address,(uint16,((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)),((bytes2,bytes2,bytes2,bytes2),uint256,uint256,uint256,bytes32),bytes32))\":{\"params\":{\"account\":\"The account or contract that made the request\",\"response\":\"The response data\"}},\"HeaderCreated(bytes32)\":{\"params\":{\"headerAddress\":\"Address of the created header\"}},\"HeaderUpdated(bytes32)\":{\"params\":{\"headerAddress\":\"Address of the updated header\"}},\"MetadataDeleted(string)\":{\"params\":{\"path\":\"Path of the deleted metadata\"}},\"MetadataUpdated(string)\":{\"params\":{\"path\":\"Path of the updated resource\"}},\"PATCHSuccess(address,((uint16,((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)),((bytes2,bytes2,bytes2,bytes2),uint256,uint256,uint256,bytes32),bytes32),(bytes32[],uint256)))\":{\"params\":{\"account\":\"The account or contract that made the request\",\"response\":\"The response data\"}},\"PUTSuccess(address,((uint16,((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)),((bytes2,bytes2,bytes2,bytes2),uint256,uint256,uint256,bytes32),bytes32),(bytes32[],uint256)))\":{\"params\":{\"account\":\"The account or contract that made the request\",\"response\":\"The response data\"}},\"ResourceCreated(string)\":{\"params\":{\"path\":\"Path of the created resource\"}},\"ResourceDeleted(string)\":{\"params\":{\"path\":\"Path of the deleted resource\"}},\"ResourceRoleCreated(bytes32)\":{\"params\":{\"role\":\"The role identifier that was created\"}},\"ResourceUpdated(string,uint256)\":{\"params\":{\"chunkIndex\":\"Index of the updated chunk\",\"path\":\"Path of the updated resource\"}},\"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 to signal 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`)\"},\"SiteAdminChanged(bytes32,bytes32)\":{\"params\":{\"newSiteAdmin\":\"New site admin role identifier\",\"oldSiteAdmin\":\"Previous site admin role identifier\"}}},\"kind\":\"dev\",\"methods\":{\"DEFINE(((string,uint256,bytes32),((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string))))\":{\"details\":\"Only accessible to resource administrators, creates header if needed\",\"params\":{\"defineRequest\":\"Request information with new header data\"},\"returns\":{\"defineResponse\":\"Response containing updated header information\"}},\"DELETE((string,uint256,bytes32))\":{\"details\":\"Only accessible to resource administrators, checks resource mutability\",\"params\":{\"deleteRequest\":\"Request information\"},\"returns\":{\"deleteResponse\":\"Response confirming deletion\"}},\"DPR()\":{\"details\":\"Provides external access to the internal DPR_ reference\",\"returns\":{\"_0\":\"IDataPointRegistry The Data Point Registry contract\"}},\"DPS()\":{\"returns\":{\"_0\":\"IDataPointStorage The Data Point Storage contract\"}},\"GET(((string,uint256,bytes32),(int256,int256)))\":{\"params\":{\"getRequest\":\"Request information\"},\"returns\":{\"getResponse\":\"Response containing resource and storage locations\"}},\"HEAD((string,uint256,bytes32))\":{\"details\":\"External interface for _HEAD with method enforcement\",\"params\":{\"headRequest\":\"Request information including conditional headers\"},\"returns\":{\"head\":\"Response with header and metadata information\"}},\"OPTIONS(string)\":{\"details\":\"External interface for _OPTIONS with method enforcement\",\"params\":{\"_path\":\"Resource path to check\"},\"returns\":{\"optionsResponse\":\"Response with allowed methods info\"}},\"PATCH(((string,uint256,bytes32),(bytes,uint256,address)[]))\":{\"details\":\"Only accessible to resource administrators, checks resource mutability\",\"params\":{\"patchRequest\":\"Request information including update data\"},\"returns\":{\"patchResponse\":\"Response containing updated resource information\"}},\"PUT(((string,uint256,bytes32),(bytes2,bytes2,bytes2,bytes2),(bytes,uint256,address)[]))\":{\"details\":\"Only accessible to resource administrators, transfers any excess payment back\",\"params\":{\"putRequest\":\"Request information including content data\"},\"returns\":{\"putResponse\":\"Response containing created resource information\"}},\"changeSiteAdmin(bytes32)\":{\"details\":\"Allows wiping all current site admin permissions by changing the role hash\",\"params\":{\"_newSiteAdmin\":\"The new role identifier to use for site administrators\"}},\"createResourceRole(bytes32)\":{\"details\":\"Sets the SITE_ADMIN_ROLE as the admin of the new role, preventing creation of privileged roles\",\"params\":{\"_role\":\"The new role identifier to create\"}},\"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\":\"Overrides the standard AccessControl implementation to grant DEFAULT_ADMIN_ROLE holders access to all roles\",\"params\":{\"account\":\"The address to check for the role\",\"role\":\"The role identifier to check\"},\"returns\":{\"_0\":\"bool True if the account has the role or is a DEFAULT_ADMIN_ROLE holder\"}},\"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\":\"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\":{\"errors\":{\"InvalidHeader(((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)))\":[{\"notice\":\"Error thrown when an invalid header is used\"}],\"InvalidRole(bytes32)\":[{\"notice\":\"Error thrown when an invalid role is used\"}],\"_403(string,bytes32)\":[{\"notice\":\"Error thrown when an account lacks permission for a role\"}],\"_404(string,bool)\":[{\"notice\":\"Error thrown when a resource does not exist\"}],\"_405(string,uint16,bool)\":[{\"notice\":\"Error thrown when a method is not allowed for a resource\"}],\"_416(string,(int256,int256),int256)\":[{\"notice\":\"Error thrown when a range is out of bounds\"}]},\"events\":{\"DEFINESuccess(address,((uint16,((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)),((bytes2,bytes2,bytes2,bytes2),uint256,uint256,uint256,bytes32),bytes32),bytes32))\":{\"notice\":\"Emitted when a DEFINE request is successful\"},\"DELETESuccess(address,(uint16,((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)),((bytes2,bytes2,bytes2,bytes2),uint256,uint256,uint256,bytes32),bytes32))\":{\"notice\":\"Emitted when a DELETE request is successful\"},\"HeaderCreated(bytes32)\":{\"notice\":\"Emitted when a header is created\"},\"HeaderUpdated(bytes32)\":{\"notice\":\"Emitted when a header is updated\"},\"MetadataDeleted(string)\":{\"notice\":\"Emitted when resource metadata is deleted\"},\"MetadataUpdated(string)\":{\"notice\":\"Emitted when resource metadata is updated\"},\"PATCHSuccess(address,((uint16,((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)),((bytes2,bytes2,bytes2,bytes2),uint256,uint256,uint256,bytes32),bytes32),(bytes32[],uint256)))\":{\"notice\":\"Emitted when a PATCH request is successful\"},\"PUTSuccess(address,((uint16,((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)),((bytes2,bytes2,bytes2,bytes2),uint256,uint256,uint256,bytes32),bytes32),(bytes32[],uint256)))\":{\"notice\":\"Emitted when a PUT request is successful\"},\"ResourceCreated(string)\":{\"notice\":\"Emitted when a new resource is created\"},\"ResourceDeleted(string)\":{\"notice\":\"Emitted when a resource is deleted\"},\"ResourceRoleCreated(bytes32)\":{\"notice\":\"Emitted when a new resource role is created\"},\"ResourceUpdated(string,uint256)\":{\"notice\":\"Emitted when a resource is updated\"},\"SiteAdminChanged(bytes32,bytes32)\":{\"notice\":\"Emitted when the site admin role identifier is changed\"}},\"kind\":\"user\",\"methods\":{\"DEFINE(((string,uint256,bytes32),((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string))))\":{\"notice\":\"Handles DEFINE requests to update resource headers\"},\"DELETE((string,uint256,bytes32))\":{\"notice\":\"Handles DELETE requests to remove resources\"},\"DPR()\":{\"notice\":\"Returns the Data Point Registry contract instance\"},\"GET(((string,uint256,bytes32),(int256,int256)))\":{\"notice\":\"Handles GET requests to retrieve resource content locations\"},\"HEAD((string,uint256,bytes32))\":{\"notice\":\"Handles WTTP HEAD requests for metadata\"},\"OPTIONS(string)\":{\"notice\":\"Handles OPTIONS requests to check available methods\"},\"PATCH(((string,uint256,bytes32),(bytes,uint256,address)[]))\":{\"notice\":\"Handles PATCH requests to update existing resources\"},\"PUT(((string,uint256,bytes32),(bytes2,bytes2,bytes2,bytes2),(bytes,uint256,address)[]))\":{\"notice\":\"Handles PUT requests to create new resources\"},\"changeSiteAdmin(bytes32)\":{\"notice\":\"Changes the SITE_ADMIN_ROLE identifier\"},\"createResourceRole(bytes32)\":{\"notice\":\"Creates a new resource-specific admin role\"},\"hasRole(bytes32,address)\":{\"notice\":\"Check if an account has a specific role\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Web3Site.sol\":\"Web3Site\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x1a6b4f6b7798ab80929d491b89d5427a9b3338c0fd1acd0ba325f69c6f1646af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7bb7f346c12a14dc622bc105ce3c47202fbc89f4b153a28a63bb68193297330c\",\"dweb:/ipfs/QmagwF8P3bUBXwdo159ueEnY9dLSvEWwK24kk2op58egwG\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d\",\"dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x2d9dc2fe26180f74c11c13663647d38e259e45f95eb88f57b61d2160b0109d3e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81233d1f98060113d9922180bb0f14f8335856fe9f339134b09335e9f678c377\",\"dweb:/ipfs/QmWh6R35SarhAn4z2wH8SU456jJSYL2FgucfTFgbHJJN4E\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"@tw3/esp/contracts/interfaces/IDataPointRegistry.sol\":{\"keccak256\":\"0xcd4a8cd032d6bcaf2962365dd42117d66b7b8fef28659c5a9a98eff92b1c4aa9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b69441061a8312b9cdcfd1324b8eda91b01439d93f687c3264187f3d602fb62\",\"dweb:/ipfs/QmSgy2z8z89U3Bpb7kdRa3BC8kyCPHsVrEhqoyo5RMTLhn\"]},\"@tw3/esp/contracts/interfaces/IDataPointStorage.sol\":{\"keccak256\":\"0xa4a14052a76722c3bd32abae7a8c9c69992431f10b1e8badd3cb6fb4df778f3a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc292c6f2b84e11c1517185862351016c6d826b8e43a7fd9d1feb8d5df323f01\",\"dweb:/ipfs/QmTPbMH2To279xMEwMHt2Wkn1112S8AoCEtyeMUeHPY2Yr\"]},\"@tw3/esp/contracts/interfaces/IOwnable.sol\":{\"keccak256\":\"0xccc9116dcc2404b7e137be6463dfa6b38056d5bb37dea682aa6439113b7cdbea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2eba65c8ee67fefab206555002096ca65111cf0a789a99fbcc3c3d4e1aace08\",\"dweb:/ipfs/Qmd2V1zRCTsamkixHcBjtc8YaWzk4uR1cW2AHbyVQRAE5Y\"]},\"@tw3/esp/contracts/types/ESPTypes.sol\":{\"keccak256\":\"0x1785aedd594e69b4d82eac428ed44e687cdfa02c95757e68fa530add9683f4b4\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://c46abca79aa57b5be3ecbe5fb29050efe6688f25de1213624a8fa12397fd351f\",\"dweb:/ipfs/QmbXMaastNWh4jCkb4HHm8e1B2L3L7aBRk3X2aadab6oBk\"]},\"@wttp/core/contracts/types/WTTPTypes.sol\":{\"keccak256\":\"0x582b2ae2c999be00bc0e84250947b68267c0094724c08bd6d469ce6a0c600033\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://ee0796885b414ab9273b1d71a7ad3fd82534eab2c31dca5cb28c1842ad386990\",\"dweb:/ipfs/QmXetxWra7YmuU2DmTaY3UbTPMwSTHKjKGXj9jY3DDurWm\"]},\"contracts/BaseWTTPPermissions.sol\":{\"keccak256\":\"0x37238be953aea95f118eac0da669bed4bd519cf92e8d2caf04bec41a43bbef4c\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://aae7deace578c29704b92e26a3b8f2185d012c232dfe464a0b4ae7e98adaf735\",\"dweb:/ipfs/QmY6W7gKfpJNouH4TjvpJYaL5ehAX3FGfTR32F5KrJXsmt\"]},\"contracts/BaseWTTPSite.sol\":{\"keccak256\":\"0x8e65a1951b101da8b73b2a038363abaa1d5183ca6893146912808d3967d67510\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://49a945f162199f2e6bfe4de480f757cca9273869c1283a1123a419a9ef56b03b\",\"dweb:/ipfs/QmTGQnBv6j72zL6HMuxRSFFQQagr7rXZgUZaqgUx3WwsLa\"]},\"contracts/BaseWTTPStorage.sol\":{\"keccak256\":\"0x91e816da956dd20c2bae9f4938880a44aa288613cbab83dc1ee850be52e9a393\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://a4be291d3d109757b8cf8b73c2ba66168ad431ca95f4d305e36fec0319b89489\",\"dweb:/ipfs/QmbpGYBoEfwmuh5S981xPyWHDn94yqeJ6HYUYWb85pqEQH\"]},\"contracts/Web3Site.sol\":{\"keccak256\":\"0x24da1374ce2145e8244e6f82d26a2547edd1dc0edca2ed96eb7f9cd7540f1b71\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://cd7c41d5e3702c1f8a2f74e7dea333a5a5400c94763d8cefd85f53ad8d8a82a1\",\"dweb:/ipfs/QmbrPYCNgnUoiKPQgrFRK9ytH4eQKLkvnmqFoWEVTwsi75\"]}},\"version\":1}","userdoc":{"errors":{"InvalidHeader(((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)))":[{"notice":"Error thrown when an invalid header is used"}],"InvalidRole(bytes32)":[{"notice":"Error thrown when an invalid role is used"}],"_403(string,bytes32)":[{"notice":"Error thrown when an account lacks permission for a role"}],"_404(string,bool)":[{"notice":"Error thrown when a resource does not exist"}],"_405(string,uint16,bool)":[{"notice":"Error thrown when a method is not allowed for a resource"}],"_416(string,(int256,int256),int256)":[{"notice":"Error thrown when a range is out of bounds"}]},"events":{"DEFINESuccess(address,((uint16,((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)),((bytes2,bytes2,bytes2,bytes2),uint256,uint256,uint256,bytes32),bytes32),bytes32))":{"notice":"Emitted when a DEFINE request is successful"},"DELETESuccess(address,(uint16,((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)),((bytes2,bytes2,bytes2,bytes2),uint256,uint256,uint256,bytes32),bytes32))":{"notice":"Emitted when a DELETE request is successful"},"HeaderCreated(bytes32)":{"notice":"Emitted when a header is created"},"HeaderUpdated(bytes32)":{"notice":"Emitted when a header is updated"},"MetadataDeleted(string)":{"notice":"Emitted when resource metadata is deleted"},"MetadataUpdated(string)":{"notice":"Emitted when resource metadata is updated"},"PATCHSuccess(address,((uint16,((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)),((bytes2,bytes2,bytes2,bytes2),uint256,uint256,uint256,bytes32),bytes32),(bytes32[],uint256)))":{"notice":"Emitted when a PATCH request is successful"},"PUTSuccess(address,((uint16,((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string)),((bytes2,bytes2,bytes2,bytes2),uint256,uint256,uint256,bytes32),bytes32),(bytes32[],uint256)))":{"notice":"Emitted when a PUT request is successful"},"ResourceCreated(string)":{"notice":"Emitted when a new resource is created"},"ResourceDeleted(string)":{"notice":"Emitted when a resource is deleted"},"ResourceRoleCreated(bytes32)":{"notice":"Emitted when a new resource role is created"},"ResourceUpdated(string,uint256)":{"notice":"Emitted when a resource is updated"},"SiteAdminChanged(bytes32,bytes32)":{"notice":"Emitted when the site admin role identifier is changed"}},"kind":"user","methods":{"DEFINE(((string,uint256,bytes32),((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string))))":{"notice":"Handles DEFINE requests to update resource headers"},"DELETE((string,uint256,bytes32))":{"notice":"Handles DELETE requests to remove resources"},"DPR()":{"notice":"Returns the Data Point Registry contract instance"},"GET(((string,uint256,bytes32),(int256,int256)))":{"notice":"Handles GET requests to retrieve resource content locations"},"HEAD((string,uint256,bytes32))":{"notice":"Handles WTTP HEAD requests for metadata"},"OPTIONS(string)":{"notice":"Handles OPTIONS requests to check available methods"},"PATCH(((string,uint256,bytes32),(bytes,uint256,address)[]))":{"notice":"Handles PATCH requests to update existing resources"},"PUT(((string,uint256,bytes32),(bytes2,bytes2,bytes2,bytes2),(bytes,uint256,address)[]))":{"notice":"Handles PUT requests to create new resources"},"changeSiteAdmin(bytes32)":{"notice":"Changes the SITE_ADMIN_ROLE identifier"},"createResourceRole(bytes32)":{"notice":"Creates a new resource-specific admin role"},"hasRole(bytes32,address)":{"notice":"Check if an account has a specific role"}},"version":1}}},"contracts/extensions/ExtendedWTTPSite.sol":{"ExtendedWTTPSite":{"abi":[{"inputs":[],"name":"AccessControlBadConfirmation","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"name":"AccessControlUnauthorizedAccount","type":"error"},{"inputs":[{"internalType":"bytes32[]","name":"_origins","type":"bytes32[]"}],"name":"InvalidOrigins","type":"error"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"InvalidRole","type":"error"},{"inputs":[{"internalType":"string","name":"reason","type":"string"},{"internalType":"string","name":"body","type":"string"}],"name":"_400","type":"error"},{"inputs":[{"internalType":"string","name":"reason","type":"string"},{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"_403","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"string","name":"_path","type":"string"},{"indexed":false,"internalType":"bytes32[]","name":"_origins","type":"bytes32[]"}],"name":"OriginUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"ResourceRoleCreated","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":"bytes32","name":"oldSiteAdmin","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"newSiteAdmin","type":"bytes32"}],"name":"SiteAdminChanged","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint256","name":"ifModifiedSince","type":"uint256"},{"internalType":"bytes32","name":"ifNoneMatch","type":"bytes32"}],"internalType":"struct HEADRequest","name":"head","type":"tuple"},{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"data","type":"tuple"}],"internalType":"struct DEFINERequest","name":"_request","type":"tuple"}],"name":"DEFINE","outputs":[{"components":[{"components":[{"internalType":"uint16","name":"status","type":"uint16"},{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"headerInfo","type":"tuple"},{"components":[{"components":[{"internalType":"bytes2","name":"mimeType","type":"bytes2"},{"internalType":"bytes2","name":"charset","type":"bytes2"},{"internalType":"bytes2","name":"encoding","type":"bytes2"},{"internalType":"bytes2","name":"language","type":"bytes2"}],"internalType":"struct ResourceProperties","name":"properties","type":"tuple"},{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"version","type":"uint256"},{"internalType":"uint256","name":"lastModified","type":"uint256"},{"internalType":"bytes32","name":"header","type":"bytes32"}],"internalType":"struct ResourceMetadata","name":"metadata","type":"tuple"},{"internalType":"bytes32","name":"etag","type":"bytes32"}],"internalType":"struct HEADResponse","name":"head","type":"tuple"},{"internalType":"bytes32","name":"headerAddress","type":"bytes32"}],"internalType":"struct DEFINEResponse","name":"","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint256","name":"ifModifiedSince","type":"uint256"},{"internalType":"bytes32","name":"ifNoneMatch","type":"bytes32"}],"internalType":"struct HEADRequest","name":"_request","type":"tuple"}],"name":"DELETE","outputs":[{"components":[{"internalType":"uint16","name":"status","type":"uint16"},{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"headerInfo","type":"tuple"},{"components":[{"components":[{"internalType":"bytes2","name":"mimeType","type":"bytes2"},{"internalType":"bytes2","name":"charset","type":"bytes2"},{"internalType":"bytes2","name":"encoding","type":"bytes2"},{"internalType":"bytes2","name":"language","type":"bytes2"}],"internalType":"struct ResourceProperties","name":"properties","type":"tuple"},{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"version","type":"uint256"},{"internalType":"uint256","name":"lastModified","type":"uint256"},{"internalType":"bytes32","name":"header","type":"bytes32"}],"internalType":"struct ResourceMetadata","name":"metadata","type":"tuple"},{"internalType":"bytes32","name":"etag","type":"bytes32"}],"internalType":"struct HEADResponse","name":"","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint256","name":"ifModifiedSince","type":"uint256"},{"internalType":"bytes32","name":"ifNoneMatch","type":"bytes32"}],"internalType":"struct HEADRequest","name":"head","type":"tuple"},{"components":[{"internalType":"int256","name":"start","type":"int256"},{"internalType":"int256","name":"end","type":"int256"}],"internalType":"struct Range","name":"rangeChunks","type":"tuple"}],"internalType":"struct LOCATERequest","name":"_request","type":"tuple"}],"name":"GET","outputs":[{"components":[{"components":[{"internalType":"uint16","name":"status","type":"uint16"},{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"headerInfo","type":"tuple"},{"components":[{"components":[{"internalType":"bytes2","name":"mimeType","type":"bytes2"},{"internalType":"bytes2","name":"charset","type":"bytes2"},{"internalType":"bytes2","name":"encoding","type":"bytes2"},{"internalType":"bytes2","name":"language","type":"bytes2"}],"internalType":"struct ResourceProperties","name":"properties","type":"tuple"},{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"version","type":"uint256"},{"internalType":"uint256","name":"lastModified","type":"uint256"},{"internalType":"bytes32","name":"header","type":"bytes32"}],"internalType":"struct ResourceMetadata","name":"metadata","type":"tuple"},{"internalType":"bytes32","name":"etag","type":"bytes32"}],"internalType":"struct HEADResponse","name":"head","type":"tuple"},{"components":[{"internalType":"bytes32[]","name":"dataPoints","type":"bytes32[]"},{"internalType":"uint256","name":"totalChunks","type":"uint256"}],"internalType":"struct ResourceResponse","name":"resource","type":"tuple"}],"internalType":"struct LOCATEResponse","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint256","name":"ifModifiedSince","type":"uint256"},{"internalType":"bytes32","name":"ifNoneMatch","type":"bytes32"}],"internalType":"struct HEADRequest","name":"_request","type":"tuple"}],"name":"HEAD","outputs":[{"components":[{"internalType":"uint16","name":"status","type":"uint16"},{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"headerInfo","type":"tuple"},{"components":[{"components":[{"internalType":"bytes2","name":"mimeType","type":"bytes2"},{"internalType":"bytes2","name":"charset","type":"bytes2"},{"internalType":"bytes2","name":"encoding","type":"bytes2"},{"internalType":"bytes2","name":"language","type":"bytes2"}],"internalType":"struct ResourceProperties","name":"properties","type":"tuple"},{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"version","type":"uint256"},{"internalType":"uint256","name":"lastModified","type":"uint256"},{"internalType":"bytes32","name":"header","type":"bytes32"}],"internalType":"struct ResourceMetadata","name":"metadata","type":"tuple"},{"internalType":"bytes32","name":"etag","type":"bytes32"}],"internalType":"struct HEADResponse","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_path","type":"string"}],"name":"OPTIONS","outputs":[{"components":[{"internalType":"uint16","name":"status","type":"uint16"},{"internalType":"uint16","name":"allow","type":"uint16"}],"internalType":"struct OPTIONSResponse","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint256","name":"ifModifiedSince","type":"uint256"},{"internalType":"bytes32","name":"ifNoneMatch","type":"bytes32"}],"internalType":"struct HEADRequest","name":"head","type":"tuple"},{"components":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"chunkIndex","type":"uint256"},{"internalType":"address","name":"publisher","type":"address"}],"internalType":"struct DataRegistration[]","name":"data","type":"tuple[]"}],"internalType":"struct PATCHRequest","name":"_request","type":"tuple"}],"name":"PATCH","outputs":[{"components":[{"components":[{"internalType":"uint16","name":"status","type":"uint16"},{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"headerInfo","type":"tuple"},{"components":[{"components":[{"internalType":"bytes2","name":"mimeType","type":"bytes2"},{"internalType":"bytes2","name":"charset","type":"bytes2"},{"internalType":"bytes2","name":"encoding","type":"bytes2"},{"internalType":"bytes2","name":"language","type":"bytes2"}],"internalType":"struct ResourceProperties","name":"properties","type":"tuple"},{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"version","type":"uint256"},{"internalType":"uint256","name":"lastModified","type":"uint256"},{"internalType":"bytes32","name":"header","type":"bytes32"}],"internalType":"struct ResourceMetadata","name":"metadata","type":"tuple"},{"internalType":"bytes32","name":"etag","type":"bytes32"}],"internalType":"struct HEADResponse","name":"head","type":"tuple"},{"components":[{"internalType":"bytes32[]","name":"dataPoints","type":"bytes32[]"},{"internalType":"uint256","name":"totalChunks","type":"uint256"}],"internalType":"struct ResourceResponse","name":"resource","type":"tuple"}],"internalType":"struct LOCATEResponse","name":"","type":"tuple"}],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint256","name":"ifModifiedSince","type":"uint256"},{"internalType":"bytes32","name":"ifNoneMatch","type":"bytes32"}],"internalType":"struct HEADRequest","name":"head","type":"tuple"},{"components":[{"internalType":"bytes2","name":"mimeType","type":"bytes2"},{"internalType":"bytes2","name":"charset","type":"bytes2"},{"internalType":"bytes2","name":"encoding","type":"bytes2"},{"internalType":"bytes2","name":"language","type":"bytes2"}],"internalType":"struct ResourceProperties","name":"properties","type":"tuple"},{"components":[{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"chunkIndex","type":"uint256"},{"internalType":"address","name":"publisher","type":"address"}],"internalType":"struct DataRegistration[]","name":"data","type":"tuple[]"}],"internalType":"struct PUTRequest","name":"_request","type":"tuple"}],"name":"PUT","outputs":[{"components":[{"components":[{"internalType":"uint16","name":"status","type":"uint16"},{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"headerInfo","type":"tuple"},{"components":[{"components":[{"internalType":"bytes2","name":"mimeType","type":"bytes2"},{"internalType":"bytes2","name":"charset","type":"bytes2"},{"internalType":"bytes2","name":"encoding","type":"bytes2"},{"internalType":"bytes2","name":"language","type":"bytes2"}],"internalType":"struct ResourceProperties","name":"properties","type":"tuple"},{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"version","type":"uint256"},{"internalType":"uint256","name":"lastModified","type":"uint256"},{"internalType":"bytes32","name":"header","type":"bytes32"}],"internalType":"struct ResourceMetadata","name":"metadata","type":"tuple"},{"internalType":"bytes32","name":"etag","type":"bytes32"}],"internalType":"struct HEADResponse","name":"head","type":"tuple"},{"components":[{"internalType":"bytes32[]","name":"dataPoints","type":"bytes32[]"},{"internalType":"uint256","name":"totalChunks","type":"uint256"}],"internalType":"struct ResourceResponse","name":"resource","type":"tuple"}],"internalType":"struct LOCATEResponse","name":"","type":"tuple"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"allowedOrigins","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_newSiteAdmin","type":"bytes32"}],"name":"changeSiteAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_role","type":"bytes32"}],"name":"createResourceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"defaultOrigins","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":[],"name":"getSiteAdminRole","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":"string","name":"","type":"string"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"resourceOrigins","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"_defaultOrigins","type":"bytes32[]"}],"name":"setDefaultOrigins","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_path","type":"string"},{"internalType":"bytes32[]","name":"_origins","type":"bytes32[]"}],"name":"setResourceOrigins","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"site","outputs":[{"internalType":"contract IBaseWTTPSite","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"devdoc":{"details":"Acts as a proxy to another WTTP site while enforcing strict origin validation","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."}],"InvalidOrigins(bytes32[])":[{"params":{"_origins":"The invalid origins"}}],"InvalidRole(bytes32)":[{"params":{"role":"The role identifier that caused the error"}}],"_400(string,string)":[{"params":{"body":"Body of the error, additional custom context","reason":"Reason for the error"}}],"_403(string,bytes32)":[{"params":{"reason":"Reason for the error","role":"Required role for the action"}}]},"events":{"ResourceRoleCreated(bytes32)":{"params":{"role":"The role identifier that was created"}},"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 to signal 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`)"},"SiteAdminChanged(bytes32,bytes32)":{"params":{"newSiteAdmin":"New site admin role identifier","oldSiteAdmin":"Previous site admin role identifier"}}},"kind":"dev","methods":{"DEFINE(((string,uint256,bytes32),((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string))))":{"params":{"_request":"DEFINE request parameters"},"returns":{"_0":"Response from the underlying site"}},"DELETE((string,uint256,bytes32))":{"params":{"_request":"DELETE request parameters"},"returns":{"_0":"Response from the underlying site"}},"GET(((string,uint256,bytes32),(int256,int256)))":{"params":{"_request":"GET request parameters"},"returns":{"_0":"Response from the underlying site"}},"HEAD((string,uint256,bytes32))":{"params":{"_request":"HEAD request parameters"},"returns":{"_0":"Response from the underlying site"}},"OPTIONS(string)":{"params":{"_path":"Resource path to check"},"returns":{"_0":"Response from the underlying site"}},"PATCH(((string,uint256,bytes32),(bytes,uint256,address)[]))":{"params":{"_request":"PATCH request parameters"},"returns":{"_0":"Response from the underlying site"}},"PUT(((string,uint256,bytes32),(bytes2,bytes2,bytes2,bytes2),(bytes,uint256,address)[]))":{"params":{"_request":"PUT request parameters"},"returns":{"_0":"Response from the underlying site"}},"changeSiteAdmin(bytes32)":{"details":"Allows wiping all current site admin permissions by changing the role hash","params":{"_newSiteAdmin":"The new role identifier to use for site administrators"}},"constructor":{"params":{"_defaultOrigins":"Default origins for this extension","_owner":"Address of the contract owner","_siteAddress":"Address of the WTTP site to proxy to"}},"createResourceRole(bytes32)":{"details":"Sets the SITE_ADMIN_ROLE as the admin of the new role, preventing creation of privileged roles","params":{"_role":"The new role identifier to create"}},"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":"Overrides the standard AccessControl implementation to grant DEFAULT_ADMIN_ROLE holders access to all roles","params":{"account":"The address to check for the role","role":"The role identifier to check"},"returns":{"_0":"bool True if the account has the role or is a DEFAULT_ADMIN_ROLE holder"}},"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":"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."}},"title":"Extended WTTP Site Contract for Origin Testing","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","DEFINE(((string,uint256,bytes32),((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string))))":"42a4cf7d","DELETE((string,uint256,bytes32))":"ca63628c","GET(((string,uint256,bytes32),(int256,int256)))":"0f9004b8","HEAD((string,uint256,bytes32))":"28699f17","OPTIONS(string)":"fd05b634","PATCH(((string,uint256,bytes32),(bytes,uint256,address)[]))":"dd0fec4c","PUT(((string,uint256,bytes32),(bytes2,bytes2,bytes2,bytes2),(bytes,uint256,address)[]))":"b0184e01","allowedOrigins(address)":"a2610d93","changeSiteAdmin(bytes32)":"32729d5e","createResourceRole(bytes32)":"b2455654","defaultOrigins(uint256)":"ff8fe981","getRoleAdmin(bytes32)":"248a9ca3","getSiteAdminRole()":"336875a1","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","renounceRole(bytes32,address)":"36568abe","resourceOrigins(string,uint256)":"a7cc59a1","revokeRole(bytes32,address)":"d547741f","setDefaultOrigins(bytes32[])":"22a50f35","setResourceOrigins(string,bytes32[])":"02c234c5","site()":"e0d370ac","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\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"_origins\",\"type\":\"bytes32[]\"}],\"name\":\"InvalidOrigins\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"InvalidRole\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"body\",\"type\":\"string\"}],\"name\":\"_400\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"_403\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"_path\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"_origins\",\"type\":\"bytes32[]\"}],\"name\":\"OriginUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"ResourceRoleCreated\",\"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\":\"bytes32\",\"name\":\"oldSiteAdmin\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"newSiteAdmin\",\"type\":\"bytes32\"}],\"name\":\"SiteAdminChanged\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"ifModifiedSince\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"ifNoneMatch\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADRequest\",\"name\":\"head\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"data\",\"type\":\"tuple\"}],\"internalType\":\"struct DEFINERequest\",\"name\":\"_request\",\"type\":\"tuple\"}],\"name\":\"DEFINE\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"status\",\"type\":\"uint16\"},{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"headerInfo\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes2\",\"name\":\"mimeType\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"charset\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"encoding\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"language\",\"type\":\"bytes2\"}],\"internalType\":\"struct ResourceProperties\",\"name\":\"properties\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastModified\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"header\",\"type\":\"bytes32\"}],\"internalType\":\"struct ResourceMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"etag\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADResponse\",\"name\":\"head\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"headerAddress\",\"type\":\"bytes32\"}],\"internalType\":\"struct DEFINEResponse\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"ifModifiedSince\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"ifNoneMatch\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADRequest\",\"name\":\"_request\",\"type\":\"tuple\"}],\"name\":\"DELETE\",\"outputs\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"status\",\"type\":\"uint16\"},{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"headerInfo\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes2\",\"name\":\"mimeType\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"charset\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"encoding\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"language\",\"type\":\"bytes2\"}],\"internalType\":\"struct ResourceProperties\",\"name\":\"properties\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastModified\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"header\",\"type\":\"bytes32\"}],\"internalType\":\"struct ResourceMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"etag\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADResponse\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"ifModifiedSince\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"ifNoneMatch\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADRequest\",\"name\":\"head\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int256\",\"name\":\"start\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"end\",\"type\":\"int256\"}],\"internalType\":\"struct Range\",\"name\":\"rangeChunks\",\"type\":\"tuple\"}],\"internalType\":\"struct LOCATERequest\",\"name\":\"_request\",\"type\":\"tuple\"}],\"name\":\"GET\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"status\",\"type\":\"uint16\"},{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"headerInfo\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes2\",\"name\":\"mimeType\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"charset\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"encoding\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"language\",\"type\":\"bytes2\"}],\"internalType\":\"struct ResourceProperties\",\"name\":\"properties\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastModified\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"header\",\"type\":\"bytes32\"}],\"internalType\":\"struct ResourceMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"etag\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADResponse\",\"name\":\"head\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"dataPoints\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"totalChunks\",\"type\":\"uint256\"}],\"internalType\":\"struct ResourceResponse\",\"name\":\"resource\",\"type\":\"tuple\"}],\"internalType\":\"struct LOCATEResponse\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"ifModifiedSince\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"ifNoneMatch\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADRequest\",\"name\":\"_request\",\"type\":\"tuple\"}],\"name\":\"HEAD\",\"outputs\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"status\",\"type\":\"uint16\"},{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"headerInfo\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes2\",\"name\":\"mimeType\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"charset\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"encoding\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"language\",\"type\":\"bytes2\"}],\"internalType\":\"struct ResourceProperties\",\"name\":\"properties\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastModified\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"header\",\"type\":\"bytes32\"}],\"internalType\":\"struct ResourceMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"etag\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADResponse\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_path\",\"type\":\"string\"}],\"name\":\"OPTIONS\",\"outputs\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"status\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"allow\",\"type\":\"uint16\"}],\"internalType\":\"struct OPTIONSResponse\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"ifModifiedSince\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"ifNoneMatch\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADRequest\",\"name\":\"head\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"chunkIndex\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"}],\"internalType\":\"struct DataRegistration[]\",\"name\":\"data\",\"type\":\"tuple[]\"}],\"internalType\":\"struct PATCHRequest\",\"name\":\"_request\",\"type\":\"tuple\"}],\"name\":\"PATCH\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"status\",\"type\":\"uint16\"},{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"headerInfo\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes2\",\"name\":\"mimeType\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"charset\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"encoding\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"language\",\"type\":\"bytes2\"}],\"internalType\":\"struct ResourceProperties\",\"name\":\"properties\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastModified\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"header\",\"type\":\"bytes32\"}],\"internalType\":\"struct ResourceMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"etag\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADResponse\",\"name\":\"head\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"dataPoints\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"totalChunks\",\"type\":\"uint256\"}],\"internalType\":\"struct ResourceResponse\",\"name\":\"resource\",\"type\":\"tuple\"}],\"internalType\":\"struct LOCATEResponse\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"ifModifiedSince\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"ifNoneMatch\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADRequest\",\"name\":\"head\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes2\",\"name\":\"mimeType\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"charset\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"encoding\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"language\",\"type\":\"bytes2\"}],\"internalType\":\"struct ResourceProperties\",\"name\":\"properties\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"chunkIndex\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"}],\"internalType\":\"struct DataRegistration[]\",\"name\":\"data\",\"type\":\"tuple[]\"}],\"internalType\":\"struct PUTRequest\",\"name\":\"_request\",\"type\":\"tuple\"}],\"name\":\"PUT\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"status\",\"type\":\"uint16\"},{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"headerInfo\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes2\",\"name\":\"mimeType\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"charset\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"encoding\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"language\",\"type\":\"bytes2\"}],\"internalType\":\"struct ResourceProperties\",\"name\":\"properties\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastModified\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"header\",\"type\":\"bytes32\"}],\"internalType\":\"struct ResourceMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"etag\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADResponse\",\"name\":\"head\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"dataPoints\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"totalChunks\",\"type\":\"uint256\"}],\"internalType\":\"struct ResourceResponse\",\"name\":\"resource\",\"type\":\"tuple\"}],\"internalType\":\"struct LOCATEResponse\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowedOrigins\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_newSiteAdmin\",\"type\":\"bytes32\"}],\"name\":\"changeSiteAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_role\",\"type\":\"bytes32\"}],\"name\":\"createResourceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"defaultOrigins\",\"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\":[],\"name\":\"getSiteAdminRole\",\"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\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"resourceOrigins\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"_defaultOrigins\",\"type\":\"bytes32[]\"}],\"name\":\"setDefaultOrigins\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_path\",\"type\":\"string\"},{\"internalType\":\"bytes32[]\",\"name\":\"_origins\",\"type\":\"bytes32[]\"}],\"name\":\"setResourceOrigins\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"site\",\"outputs\":[{\"internalType\":\"contract IBaseWTTPSite\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Acts as a proxy to another WTTP site while enforcing strict origin validation\",\"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.\"}],\"InvalidOrigins(bytes32[])\":[{\"params\":{\"_origins\":\"The invalid origins\"}}],\"InvalidRole(bytes32)\":[{\"params\":{\"role\":\"The role identifier that caused the error\"}}],\"_400(string,string)\":[{\"params\":{\"body\":\"Body of the error, additional custom context\",\"reason\":\"Reason for the error\"}}],\"_403(string,bytes32)\":[{\"params\":{\"reason\":\"Reason for the error\",\"role\":\"Required role for the action\"}}]},\"events\":{\"ResourceRoleCreated(bytes32)\":{\"params\":{\"role\":\"The role identifier that was created\"}},\"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 to signal 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`)\"},\"SiteAdminChanged(bytes32,bytes32)\":{\"params\":{\"newSiteAdmin\":\"New site admin role identifier\",\"oldSiteAdmin\":\"Previous site admin role identifier\"}}},\"kind\":\"dev\",\"methods\":{\"DEFINE(((string,uint256,bytes32),((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string))))\":{\"params\":{\"_request\":\"DEFINE request parameters\"},\"returns\":{\"_0\":\"Response from the underlying site\"}},\"DELETE((string,uint256,bytes32))\":{\"params\":{\"_request\":\"DELETE request parameters\"},\"returns\":{\"_0\":\"Response from the underlying site\"}},\"GET(((string,uint256,bytes32),(int256,int256)))\":{\"params\":{\"_request\":\"GET request parameters\"},\"returns\":{\"_0\":\"Response from the underlying site\"}},\"HEAD((string,uint256,bytes32))\":{\"params\":{\"_request\":\"HEAD request parameters\"},\"returns\":{\"_0\":\"Response from the underlying site\"}},\"OPTIONS(string)\":{\"params\":{\"_path\":\"Resource path to check\"},\"returns\":{\"_0\":\"Response from the underlying site\"}},\"PATCH(((string,uint256,bytes32),(bytes,uint256,address)[]))\":{\"params\":{\"_request\":\"PATCH request parameters\"},\"returns\":{\"_0\":\"Response from the underlying site\"}},\"PUT(((string,uint256,bytes32),(bytes2,bytes2,bytes2,bytes2),(bytes,uint256,address)[]))\":{\"params\":{\"_request\":\"PUT request parameters\"},\"returns\":{\"_0\":\"Response from the underlying site\"}},\"changeSiteAdmin(bytes32)\":{\"details\":\"Allows wiping all current site admin permissions by changing the role hash\",\"params\":{\"_newSiteAdmin\":\"The new role identifier to use for site administrators\"}},\"constructor\":{\"params\":{\"_defaultOrigins\":\"Default origins for this extension\",\"_owner\":\"Address of the contract owner\",\"_siteAddress\":\"Address of the WTTP site to proxy to\"}},\"createResourceRole(bytes32)\":{\"details\":\"Sets the SITE_ADMIN_ROLE as the admin of the new role, preventing creation of privileged roles\",\"params\":{\"_role\":\"The new role identifier to create\"}},\"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\":\"Overrides the standard AccessControl implementation to grant DEFAULT_ADMIN_ROLE holders access to all roles\",\"params\":{\"account\":\"The address to check for the role\",\"role\":\"The role identifier to check\"},\"returns\":{\"_0\":\"bool True if the account has the role or is a DEFAULT_ADMIN_ROLE holder\"}},\"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\":\"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.\"}},\"title\":\"Extended WTTP Site Contract for Origin Testing\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidOrigins(bytes32[])\":[{\"notice\":\"Error thrown when the default origins array is invalid\"}],\"InvalidRole(bytes32)\":[{\"notice\":\"Error thrown when an invalid role is used\"}],\"_400(string,string)\":[{\"notice\":\"Error thrown when a request is malformed\"}],\"_403(string,bytes32)\":[{\"notice\":\"Error thrown when an account lacks permission for a role\"}]},\"events\":{\"OriginUpdated(string,bytes32[])\":{\"notice\":\"Event emitted when origins are updated for a path\"},\"ResourceRoleCreated(bytes32)\":{\"notice\":\"Emitted when a new resource role is created\"},\"SiteAdminChanged(bytes32,bytes32)\":{\"notice\":\"Emitted when the site admin role identifier is changed\"}},\"kind\":\"user\",\"methods\":{\"DEFINE(((string,uint256,bytes32),((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string))))\":{\"notice\":\"Proxy DEFINE requests with origin validation\"},\"DELETE((string,uint256,bytes32))\":{\"notice\":\"Proxy DELETE requests with origin validation\"},\"GET(((string,uint256,bytes32),(int256,int256)))\":{\"notice\":\"Proxy GET requests with origin validation\"},\"HEAD((string,uint256,bytes32))\":{\"notice\":\"Proxy HEAD requests with origin validation\"},\"OPTIONS(string)\":{\"notice\":\"Proxy OPTIONS requests with origin validation\"},\"PATCH(((string,uint256,bytes32),(bytes,uint256,address)[]))\":{\"notice\":\"Proxy PATCH requests with origin validation\"},\"PUT(((string,uint256,bytes32),(bytes2,bytes2,bytes2,bytes2),(bytes,uint256,address)[]))\":{\"notice\":\"Proxy PUT requests with origin validation\"},\"allowedOrigins(address)\":{\"notice\":\"Mapping to track allowed origins for cross-site requests\"},\"changeSiteAdmin(bytes32)\":{\"notice\":\"Changes the SITE_ADMIN_ROLE identifier\"},\"constructor\":{\"notice\":\"Initializes the extended site with origin validation\"},\"createResourceRole(bytes32)\":{\"notice\":\"Creates a new resource-specific admin role\"},\"hasRole(bytes32,address)\":{\"notice\":\"Check if an account has a specific role\"},\"site()\":{\"notice\":\"Reference to the underlying WTTP site being proxied\"}},\"notice\":\"Extends BaseWTTPStorage with cross-site origin validation capabilities\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/extensions/ExtendedWTTPSite.sol\":\"ExtendedWTTPSite\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x1a6b4f6b7798ab80929d491b89d5427a9b3338c0fd1acd0ba325f69c6f1646af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7bb7f346c12a14dc622bc105ce3c47202fbc89f4b153a28a63bb68193297330c\",\"dweb:/ipfs/QmagwF8P3bUBXwdo159ueEnY9dLSvEWwK24kk2op58egwG\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d\",\"dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x2d9dc2fe26180f74c11c13663647d38e259e45f95eb88f57b61d2160b0109d3e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://81233d1f98060113d9922180bb0f14f8335856fe9f339134b09335e9f678c377\",\"dweb:/ipfs/QmWh6R35SarhAn4z2wH8SU456jJSYL2FgucfTFgbHJJN4E\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"@tw3/esp/contracts/interfaces/IDataPointRegistry.sol\":{\"keccak256\":\"0xcd4a8cd032d6bcaf2962365dd42117d66b7b8fef28659c5a9a98eff92b1c4aa9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b69441061a8312b9cdcfd1324b8eda91b01439d93f687c3264187f3d602fb62\",\"dweb:/ipfs/QmSgy2z8z89U3Bpb7kdRa3BC8kyCPHsVrEhqoyo5RMTLhn\"]},\"@tw3/esp/contracts/interfaces/IDataPointStorage.sol\":{\"keccak256\":\"0xa4a14052a76722c3bd32abae7a8c9c69992431f10b1e8badd3cb6fb4df778f3a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc292c6f2b84e11c1517185862351016c6d826b8e43a7fd9d1feb8d5df323f01\",\"dweb:/ipfs/QmTPbMH2To279xMEwMHt2Wkn1112S8AoCEtyeMUeHPY2Yr\"]},\"@tw3/esp/contracts/interfaces/IOwnable.sol\":{\"keccak256\":\"0xccc9116dcc2404b7e137be6463dfa6b38056d5bb37dea682aa6439113b7cdbea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2eba65c8ee67fefab206555002096ca65111cf0a789a99fbcc3c3d4e1aace08\",\"dweb:/ipfs/Qmd2V1zRCTsamkixHcBjtc8YaWzk4uR1cW2AHbyVQRAE5Y\"]},\"@tw3/esp/contracts/types/ESPTypes.sol\":{\"keccak256\":\"0x1785aedd594e69b4d82eac428ed44e687cdfa02c95757e68fa530add9683f4b4\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://c46abca79aa57b5be3ecbe5fb29050efe6688f25de1213624a8fa12397fd351f\",\"dweb:/ipfs/QmbXMaastNWh4jCkb4HHm8e1B2L3L7aBRk3X2aadab6oBk\"]},\"@wttp/core/contracts/interfaces/IBaseWTTPPermissions.sol\":{\"keccak256\":\"0x11f839a3f8d0ab86afa0cb66ca2b12408ab5429ce53c619529d346673e93732c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e69f2e85b0706dea758aafb27740fbf7b198af17dbddfffd04e67469eb613533\",\"dweb:/ipfs/QmW79s5NNMNebwfesfdCRDZYJq4kp7txL4icYjJU2FeSx8\"]},\"@wttp/core/contracts/interfaces/IBaseWTTPSite.sol\":{\"keccak256\":\"0x30ccdf2a4c4476120bf0ee836b0b6078433f91b27615913c50634986b1932084\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36ce00bece2291d87eed34c9a6861d5a8eaff85db336e05414ae7a303d06ec14\",\"dweb:/ipfs/Qmf3hXwu5mWhpmGWWniwkBkw4WJbnyVjvcT375ayfYbdou\"]},\"@wttp/core/contracts/interfaces/IBaseWTTPStorage.sol\":{\"keccak256\":\"0x7c7709635222697f643e94fc6bb21adb2594ddc466e6d7c6c8f067831a943101\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61b9e392ebd5c64d2f8f46c8057b9ade674650b10757b6d62ec55c8901babf3a\",\"dweb:/ipfs/QmX2CoFm92Z7AXeknvhfWdGaeiSYfp9iWHeSxaFePGD4DW\"]},\"@wttp/core/contracts/types/WTTPTypes.sol\":{\"keccak256\":\"0x582b2ae2c999be00bc0e84250947b68267c0094724c08bd6d469ce6a0c600033\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://ee0796885b414ab9273b1d71a7ad3fd82534eab2c31dca5cb28c1842ad386990\",\"dweb:/ipfs/QmXetxWra7YmuU2DmTaY3UbTPMwSTHKjKGXj9jY3DDurWm\"]},\"contracts/BaseWTTPPermissions.sol\":{\"keccak256\":\"0x37238be953aea95f118eac0da669bed4bd519cf92e8d2caf04bec41a43bbef4c\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://aae7deace578c29704b92e26a3b8f2185d012c232dfe464a0b4ae7e98adaf735\",\"dweb:/ipfs/QmY6W7gKfpJNouH4TjvpJYaL5ehAX3FGfTR32F5KrJXsmt\"]},\"contracts/extensions/ExtendedWTTPSite.sol\":{\"keccak256\":\"0x747ffe260a2d90f464e14a6c7a66297e1ddb578ded2bff5779c89d99e0262e50\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://e9186437b1331d2d990b19940a0464e7703aee7d50342d7f6febd4c70016abe5\",\"dweb:/ipfs/QmUKU4idRykxgxeYHijxFHLaLGAjmFeHKTJnUNHoG7Do2m\"]}},\"version\":1}","userdoc":{"errors":{"InvalidOrigins(bytes32[])":[{"notice":"Error thrown when the default origins array is invalid"}],"InvalidRole(bytes32)":[{"notice":"Error thrown when an invalid role is used"}],"_400(string,string)":[{"notice":"Error thrown when a request is malformed"}],"_403(string,bytes32)":[{"notice":"Error thrown when an account lacks permission for a role"}]},"events":{"OriginUpdated(string,bytes32[])":{"notice":"Event emitted when origins are updated for a path"},"ResourceRoleCreated(bytes32)":{"notice":"Emitted when a new resource role is created"},"SiteAdminChanged(bytes32,bytes32)":{"notice":"Emitted when the site admin role identifier is changed"}},"kind":"user","methods":{"DEFINE(((string,uint256,bytes32),((bool,uint8,string),(uint16,bytes32[],uint8,string),(uint16,string))))":{"notice":"Proxy DEFINE requests with origin validation"},"DELETE((string,uint256,bytes32))":{"notice":"Proxy DELETE requests with origin validation"},"GET(((string,uint256,bytes32),(int256,int256)))":{"notice":"Proxy GET requests with origin validation"},"HEAD((string,uint256,bytes32))":{"notice":"Proxy HEAD requests with origin validation"},"OPTIONS(string)":{"notice":"Proxy OPTIONS requests with origin validation"},"PATCH(((string,uint256,bytes32),(bytes,uint256,address)[]))":{"notice":"Proxy PATCH requests with origin validation"},"PUT(((string,uint256,bytes32),(bytes2,bytes2,bytes2,bytes2),(bytes,uint256,address)[]))":{"notice":"Proxy PUT requests with origin validation"},"allowedOrigins(address)":{"notice":"Mapping to track allowed origins for cross-site requests"},"changeSiteAdmin(bytes32)":{"notice":"Changes the SITE_ADMIN_ROLE identifier"},"constructor":{"notice":"Initializes the extended site with origin validation"},"createResourceRole(bytes32)":{"notice":"Creates a new resource-specific admin role"},"hasRole(bytes32,address)":{"notice":"Check if an account has a specific role"},"site()":{"notice":"Reference to the underlying WTTP site being proxied"}},"notice":"Extends BaseWTTPStorage with cross-site origin validation capabilities","version":1}}},"contracts/extensions/WTTPErrorSite.sol":{"WTTPErrorSite":{"abi":[{"inputs":[],"name":"site","outputs":[{"internalType":"contract IBaseWTTPSite","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"site()":"e0d370ac"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"site\",\"outputs\":[{\"internalType\":\"contract IBaseWTTPSite\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/extensions/WTTPErrorSite.sol\":\"WTTPErrorSite\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d\",\"dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL\"]},\"@tw3/esp/contracts/interfaces/IDataPointRegistry.sol\":{\"keccak256\":\"0xcd4a8cd032d6bcaf2962365dd42117d66b7b8fef28659c5a9a98eff92b1c4aa9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b69441061a8312b9cdcfd1324b8eda91b01439d93f687c3264187f3d602fb62\",\"dweb:/ipfs/QmSgy2z8z89U3Bpb7kdRa3BC8kyCPHsVrEhqoyo5RMTLhn\"]},\"@tw3/esp/contracts/interfaces/IDataPointStorage.sol\":{\"keccak256\":\"0xa4a14052a76722c3bd32abae7a8c9c69992431f10b1e8badd3cb6fb4df778f3a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc292c6f2b84e11c1517185862351016c6d826b8e43a7fd9d1feb8d5df323f01\",\"dweb:/ipfs/QmTPbMH2To279xMEwMHt2Wkn1112S8AoCEtyeMUeHPY2Yr\"]},\"@tw3/esp/contracts/interfaces/IOwnable.sol\":{\"keccak256\":\"0xccc9116dcc2404b7e137be6463dfa6b38056d5bb37dea682aa6439113b7cdbea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2eba65c8ee67fefab206555002096ca65111cf0a789a99fbcc3c3d4e1aace08\",\"dweb:/ipfs/Qmd2V1zRCTsamkixHcBjtc8YaWzk4uR1cW2AHbyVQRAE5Y\"]},\"@tw3/esp/contracts/types/ESPTypes.sol\":{\"keccak256\":\"0x1785aedd594e69b4d82eac428ed44e687cdfa02c95757e68fa530add9683f4b4\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://c46abca79aa57b5be3ecbe5fb29050efe6688f25de1213624a8fa12397fd351f\",\"dweb:/ipfs/QmbXMaastNWh4jCkb4HHm8e1B2L3L7aBRk3X2aadab6oBk\"]},\"@wttp/core/contracts/interfaces/IBaseWTTPPermissions.sol\":{\"keccak256\":\"0x11f839a3f8d0ab86afa0cb66ca2b12408ab5429ce53c619529d346673e93732c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e69f2e85b0706dea758aafb27740fbf7b198af17dbddfffd04e67469eb613533\",\"dweb:/ipfs/QmW79s5NNMNebwfesfdCRDZYJq4kp7txL4icYjJU2FeSx8\"]},\"@wttp/core/contracts/interfaces/IBaseWTTPSite.sol\":{\"keccak256\":\"0x30ccdf2a4c4476120bf0ee836b0b6078433f91b27615913c50634986b1932084\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36ce00bece2291d87eed34c9a6861d5a8eaff85db336e05414ae7a303d06ec14\",\"dweb:/ipfs/Qmf3hXwu5mWhpmGWWniwkBkw4WJbnyVjvcT375ayfYbdou\"]},\"@wttp/core/contracts/interfaces/IBaseWTTPStorage.sol\":{\"keccak256\":\"0x7c7709635222697f643e94fc6bb21adb2594ddc466e6d7c6c8f067831a943101\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://61b9e392ebd5c64d2f8f46c8057b9ade674650b10757b6d62ec55c8901babf3a\",\"dweb:/ipfs/QmX2CoFm92Z7AXeknvhfWdGaeiSYfp9iWHeSxaFePGD4DW\"]},\"@wttp/core/contracts/types/WTTPTypes.sol\":{\"keccak256\":\"0x582b2ae2c999be00bc0e84250947b68267c0094724c08bd6d469ce6a0c600033\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://ee0796885b414ab9273b1d71a7ad3fd82534eab2c31dca5cb28c1842ad386990\",\"dweb:/ipfs/QmXetxWra7YmuU2DmTaY3UbTPMwSTHKjKGXj9jY3DDurWm\"]},\"contracts/extensions/WTTPErrorSite.sol\":{\"keccak256\":\"0x981c8adf23d6a3549a88224444b739db5ab7d664481fa98717fa52fc17cb1bd1\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://4566d454e8f0ea2b3272dd971b59ee2ed913074e4cc58b2fb97eeb2aeda5d607\",\"dweb:/ipfs/QmTgvvpfDHpjtAWSh1HUcGEVFxZCRSUiyxafZpFw5WfMAC\"]}},\"version\":1}","userdoc":{"kind":"user","methods":{},"version":1}}},"contracts/extensions/WTTPForwarder.sol":{"WTTPForwarder":{"abi":[{"inputs":[],"name":"EmptyBaseURL","type":"error"},{"inputs":[{"internalType":"uint16","name":"code","type":"uint16"}],"name":"InvalidRedirect","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"baseURL","type":"string"},{"indexed":false,"internalType":"uint16","name":"redirectCode","type":"uint16"}],"name":"RedirectConfigUpdated","type":"event"},{"inputs":[],"name":"ALLOWED_METHODS","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint256","name":"ifModifiedSince","type":"uint256"},{"internalType":"bytes32","name":"ifNoneMatch","type":"bytes32"}],"internalType":"struct HEADRequest","name":"head","type":"tuple"},{"components":[{"internalType":"int256","name":"start","type":"int256"},{"internalType":"int256","name":"end","type":"int256"}],"internalType":"struct Range","name":"rangeChunks","type":"tuple"}],"internalType":"struct LOCATERequest","name":"getRequest","type":"tuple"}],"name":"GET","outputs":[{"components":[{"components":[{"internalType":"uint16","name":"status","type":"uint16"},{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"headerInfo","type":"tuple"},{"components":[{"components":[{"internalType":"bytes2","name":"mimeType","type":"bytes2"},{"internalType":"bytes2","name":"charset","type":"bytes2"},{"internalType":"bytes2","name":"encoding","type":"bytes2"},{"internalType":"bytes2","name":"language","type":"bytes2"}],"internalType":"struct ResourceProperties","name":"properties","type":"tuple"},{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"version","type":"uint256"},{"internalType":"uint256","name":"lastModified","type":"uint256"},{"internalType":"bytes32","name":"header","type":"bytes32"}],"internalType":"struct ResourceMetadata","name":"metadata","type":"tuple"},{"internalType":"bytes32","name":"etag","type":"bytes32"}],"internalType":"struct HEADResponse","name":"head","type":"tuple"},{"components":[{"internalType":"bytes32[]","name":"dataPoints","type":"bytes32[]"},{"internalType":"uint256","name":"totalChunks","type":"uint256"}],"internalType":"struct ResourceResponse","name":"resource","type":"tuple"}],"internalType":"struct LOCATEResponse","name":"getResponse","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"path","type":"string"},{"internalType":"uint256","name":"ifModifiedSince","type":"uint256"},{"internalType":"bytes32","name":"ifNoneMatch","type":"bytes32"}],"internalType":"struct HEADRequest","name":"headRequest","type":"tuple"}],"name":"HEAD","outputs":[{"components":[{"internalType":"uint16","name":"status","type":"uint16"},{"components":[{"components":[{"internalType":"bool","name":"immutableFlag","type":"bool"},{"internalType":"enum CachePreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CacheControl","name":"cache","type":"tuple"},{"components":[{"internalType":"uint16","name":"methods","type":"uint16"},{"internalType":"bytes32[]","name":"origins","type":"bytes32[]"},{"internalType":"enum CORSPreset","name":"preset","type":"uint8"},{"internalType":"string","name":"custom","type":"string"}],"internalType":"struct CORSPolicy","name":"cors","type":"tuple"},{"components":[{"internalType":"uint16","name":"code","type":"uint16"},{"internalType":"string","name":"location","type":"string"}],"internalType":"struct Redirect","name":"redirect","type":"tuple"}],"internalType":"struct HeaderInfo","name":"headerInfo","type":"tuple"},{"components":[{"components":[{"internalType":"bytes2","name":"mimeType","type":"bytes2"},{"internalType":"bytes2","name":"charset","type":"bytes2"},{"internalType":"bytes2","name":"encoding","type":"bytes2"},{"internalType":"bytes2","name":"language","type":"bytes2"}],"internalType":"struct ResourceProperties","name":"properties","type":"tuple"},{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"version","type":"uint256"},{"internalType":"uint256","name":"lastModified","type":"uint256"},{"internalType":"bytes32","name":"header","type":"bytes32"}],"internalType":"struct ResourceMetadata","name":"metadata","type":"tuple"},{"internalType":"bytes32","name":"etag","type":"bytes32"}],"internalType":"struct HEADResponse","name":"head","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"OPTIONS","outputs":[{"components":[{"internalType":"uint16","name":"status","type":"uint16"},{"internalType":"uint16","name":"allow","type":"uint16"}],"internalType":"struct OPTIONSResponse","name":"optionsResponse","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"baseURL","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"redirectCode","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"}],"devdoc":{"details":"Adding this code to an ERC20 contract for example will allow developers to redirect all WTTP calls to an external WTTP site","errors":{"InvalidRedirect(uint16)":[{"params":{"code":"The invalid redirect code"}}]},"kind":"dev","methods":{"GET(((string,uint256,bytes32),(int256,int256)))":{"params":{"getRequest":"Request information including path"},"returns":{"getResponse":"Response with redirect data"}},"HEAD((string,uint256,bytes32))":{"params":{"headRequest":"Request information including path"},"returns":{"head":"Response with redirect metadata"}},"OPTIONS(string)":{"returns":{"optionsResponse":"Response with redirect status"}},"constructor":{"details":"since the path should include a leading slash, the baseURL should not include a trailing slash","params":{"_baseURL":"Base URL to redirect to","_redirectCode":"HTTP redirect status code (300-310)"}}},"title":"WTTP Forwarder Contract","version":1},"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"ALLOWED_METHODS()":"d5e608ad","GET(((string,uint256,bytes32),(int256,int256)))":"0f9004b8","HEAD((string,uint256,bytes32))":"28699f17","OPTIONS(string)":"fd05b634","baseURL()":"40c84b0e","redirectCode()":"ac2845ef"}},"metadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"EmptyBaseURL\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"}],\"name\":\"InvalidRedirect\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"baseURL\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"redirectCode\",\"type\":\"uint16\"}],\"name\":\"RedirectConfigUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ALLOWED_METHODS\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"ifModifiedSince\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"ifNoneMatch\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADRequest\",\"name\":\"head\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int256\",\"name\":\"start\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"end\",\"type\":\"int256\"}],\"internalType\":\"struct Range\",\"name\":\"rangeChunks\",\"type\":\"tuple\"}],\"internalType\":\"struct LOCATERequest\",\"name\":\"getRequest\",\"type\":\"tuple\"}],\"name\":\"GET\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"status\",\"type\":\"uint16\"},{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"headerInfo\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes2\",\"name\":\"mimeType\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"charset\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"encoding\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"language\",\"type\":\"bytes2\"}],\"internalType\":\"struct ResourceProperties\",\"name\":\"properties\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastModified\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"header\",\"type\":\"bytes32\"}],\"internalType\":\"struct ResourceMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"etag\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADResponse\",\"name\":\"head\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"dataPoints\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"totalChunks\",\"type\":\"uint256\"}],\"internalType\":\"struct ResourceResponse\",\"name\":\"resource\",\"type\":\"tuple\"}],\"internalType\":\"struct LOCATEResponse\",\"name\":\"getResponse\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"path\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"ifModifiedSince\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"ifNoneMatch\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADRequest\",\"name\":\"headRequest\",\"type\":\"tuple\"}],\"name\":\"HEAD\",\"outputs\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"status\",\"type\":\"uint16\"},{\"components\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"immutableFlag\",\"type\":\"bool\"},{\"internalType\":\"enum CachePreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CacheControl\",\"name\":\"cache\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"methods\",\"type\":\"uint16\"},{\"internalType\":\"bytes32[]\",\"name\":\"origins\",\"type\":\"bytes32[]\"},{\"internalType\":\"enum CORSPreset\",\"name\":\"preset\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"custom\",\"type\":\"string\"}],\"internalType\":\"struct CORSPolicy\",\"name\":\"cors\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"code\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"location\",\"type\":\"string\"}],\"internalType\":\"struct Redirect\",\"name\":\"redirect\",\"type\":\"tuple\"}],\"internalType\":\"struct HeaderInfo\",\"name\":\"headerInfo\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"bytes2\",\"name\":\"mimeType\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"charset\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"encoding\",\"type\":\"bytes2\"},{\"internalType\":\"bytes2\",\"name\":\"language\",\"type\":\"bytes2\"}],\"internalType\":\"struct ResourceProperties\",\"name\":\"properties\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"size\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"version\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastModified\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"header\",\"type\":\"bytes32\"}],\"internalType\":\"struct ResourceMetadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"etag\",\"type\":\"bytes32\"}],\"internalType\":\"struct HEADResponse\",\"name\":\"head\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"OPTIONS\",\"outputs\":[{\"components\":[{\"internalType\":\"uint16\",\"name\":\"status\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"allow\",\"type\":\"uint16\"}],\"internalType\":\"struct OPTIONSResponse\",\"name\":\"optionsResponse\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseURL\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"redirectCode\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Adding this code to an ERC20 contract for example will allow developers to redirect all WTTP calls to an external WTTP site\",\"errors\":{\"InvalidRedirect(uint16)\":[{\"params\":{\"code\":\"The invalid redirect code\"}}]},\"kind\":\"dev\",\"methods\":{\"GET(((string,uint256,bytes32),(int256,int256)))\":{\"params\":{\"getRequest\":\"Request information including path\"},\"returns\":{\"getResponse\":\"Response with redirect data\"}},\"HEAD((string,uint256,bytes32))\":{\"params\":{\"headRequest\":\"Request information including path\"},\"returns\":{\"head\":\"Response with redirect metadata\"}},\"OPTIONS(string)\":{\"returns\":{\"optionsResponse\":\"Response with redirect status\"}},\"constructor\":{\"details\":\"since the path should include a leading slash, the baseURL should not include a trailing slash\",\"params\":{\"_baseURL\":\"Base URL to redirect to\",\"_redirectCode\":\"HTTP redirect status code (300-310)\"}}},\"title\":\"WTTP Forwarder Contract\",\"version\":1},\"userdoc\":{\"errors\":{\"EmptyBaseURL()\":[{\"notice\":\"Error thrown when an empty base URL is provided\"}],\"InvalidRedirect(uint16)\":[{\"notice\":\"Error thrown when an invalid redirect code is provided\"}]},\"events\":{\"RedirectConfigUpdated(string,uint16)\":{\"notice\":\"Event emitted when redirect configuration is updated\"}},\"kind\":\"user\",\"methods\":{\"GET(((string,uint256,bytes32),(int256,int256)))\":{\"notice\":\"Handles GET requests with redirect information\"},\"HEAD((string,uint256,bytes32))\":{\"notice\":\"Handles HEAD requests with redirect information\"},\"baseURL()\":{\"notice\":\"Base URL to redirect requests to\"},\"constructor\":{\"notice\":\"Initializes the forwarder with redirect configuration\"},\"redirectCode()\":{\"notice\":\"HTTP redirect status code (300-310)\"}},\"notice\":\"Stores simple redirect rules for a smart contract and builds minimal WTTP responses\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/extensions/WTTPForwarder.sol\":\"WTTPForwarder\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@tw3/esp/contracts/interfaces/IDataPointRegistry.sol\":{\"keccak256\":\"0xcd4a8cd032d6bcaf2962365dd42117d66b7b8fef28659c5a9a98eff92b1c4aa9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b69441061a8312b9cdcfd1324b8eda91b01439d93f687c3264187f3d602fb62\",\"dweb:/ipfs/QmSgy2z8z89U3Bpb7kdRa3BC8kyCPHsVrEhqoyo5RMTLhn\"]},\"@tw3/esp/contracts/interfaces/IDataPointStorage.sol\":{\"keccak256\":\"0xa4a14052a76722c3bd32abae7a8c9c69992431f10b1e8badd3cb6fb4df778f3a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc292c6f2b84e11c1517185862351016c6d826b8e43a7fd9d1feb8d5df323f01\",\"dweb:/ipfs/QmTPbMH2To279xMEwMHt2Wkn1112S8AoCEtyeMUeHPY2Yr\"]},\"@tw3/esp/contracts/interfaces/IOwnable.sol\":{\"keccak256\":\"0xccc9116dcc2404b7e137be6463dfa6b38056d5bb37dea682aa6439113b7cdbea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2eba65c8ee67fefab206555002096ca65111cf0a789a99fbcc3c3d4e1aace08\",\"dweb:/ipfs/Qmd2V1zRCTsamkixHcBjtc8YaWzk4uR1cW2AHbyVQRAE5Y\"]},\"@tw3/esp/contracts/types/ESPTypes.sol\":{\"keccak256\":\"0x1785aedd594e69b4d82eac428ed44e687cdfa02c95757e68fa530add9683f4b4\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://c46abca79aa57b5be3ecbe5fb29050efe6688f25de1213624a8fa12397fd351f\",\"dweb:/ipfs/QmbXMaastNWh4jCkb4HHm8e1B2L3L7aBRk3X2aadab6oBk\"]},\"@wttp/core/contracts/types/WTTPTypes.sol\":{\"keccak256\":\"0x582b2ae2c999be00bc0e84250947b68267c0094724c08bd6d469ce6a0c600033\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://ee0796885b414ab9273b1d71a7ad3fd82534eab2c31dca5cb28c1842ad386990\",\"dweb:/ipfs/QmXetxWra7YmuU2DmTaY3UbTPMwSTHKjKGXj9jY3DDurWm\"]},\"contracts/extensions/WTTPForwarder.sol\":{\"keccak256\":\"0x20683be59b7fd8f0861b600f8794f732b8a8f0a9320ba0e3886f051dede90605\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://5f5e972aeb930278929726ff38a2027544e608f5fd91565ca184c2535907473a\",\"dweb:/ipfs/Qmbq1rHWrFYLd5gCRQJ6apbvykTbya1fUX1w5zTpAUt8a1\"]}},\"version\":1}","userdoc":{"errors":{"EmptyBaseURL()":[{"notice":"Error thrown when an empty base URL is provided"}],"InvalidRedirect(uint16)":[{"notice":"Error thrown when an invalid redirect code is provided"}]},"events":{"RedirectConfigUpdated(string,uint16)":{"notice":"Event emitted when redirect configuration is updated"}},"kind":"user","methods":{"GET(((string,uint256,bytes32),(int256,int256)))":{"notice":"Handles GET requests with redirect information"},"HEAD((string,uint256,bytes32))":{"notice":"Handles HEAD requests with redirect information"},"baseURL()":{"notice":"Base URL to redirect requests to"},"constructor":{"notice":"Initializes the forwarder with redirect configuration"},"redirectCode()":{"notice":"HTTP redirect status code (300-310)"}},"notice":"Stores simple redirect rules for a smart contract and builds minimal WTTP responses","version":1}}}}}}