diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4a0cf9a..0cfcc37 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -36,12 +36,12 @@ jobs: coverageLocations: | ${{github.workspace}}/coverage/lcov.info:lcov - deploy: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - - run: yarn install - - run: - npx hardhat node & - yarn deploy \ No newline at end of file + # deploy: + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v4 + # - uses: actions/setup-node@v4 + # - run: yarn install + # - run: + # npx hardhat node & + # yarn deploy \ No newline at end of file diff --git a/README.md b/README.md index a6c9e9f..58534d2 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,151 @@ -# TogetherCrew Engagement Hardhat Project +# **Engagement Contract** -This project contains the TogetherCrew Engagement contract. It comes with a contract, a test for that contract, and a Hardhat Ignition module that deploys that contract. +## **Overview** +The **Engagement Contract** is a blockchain-based solution for communities to manage reputation and engagement through token issuance and scoring mechanisms. It allows communities to: +- **Issue unique tokens** for their ecosystem. +- **Mint tokens** for individual users based on their activities. +- **Calculate and retrieve reputation scores** for community members using the **OCI (On-Chain Identity) platform**. +- **Manage token metadata** dynamically with customizable URIs. -Try running some of the following tasks: +This project is built with Solidity, Hardhat, and OpenZeppelin libraries, ensuring secure and efficient smart contract development. -```shell -npx hardhat help -npx hardhat test -REPORT_GAS=true npx hardhat test -npx hardhat node -npx hardhat ignition deploy ./ignition/modules/Engagement.ts +## **Contract Addresses** + +| Address | Network | +|-------------------------------------------------------------------------------------------------|--------------------------| +| N/A | Sepolia | +| https://sepolia-optimism.etherscan.io/address/0xd826769f1844cc83a16923d2aef8a479e62da732 | Optimisim Sepolia | + +--- + +## **Features** +- **Token Management**: + - Issue new tokens unique to the community. + - Mint tokens for users with checks to prevent duplicate mints. + - Burn tokens for revocation or updates. +- **Reputation Scoring**: + - Calculate and retrieve scores for users based on token data and identifiers. + - Attest reputation scores to users' wallets for on-chain verification. +- **Dynamic Metadata**: + - Supports customizable token URIs for dynamic metadata management. +- **Admin Controls**: + - Update base URIs. + - Manage token issuance securely with access control. + +--- + +## **Tech Stack** +- **Smart Contracts**: + - **Solidity**: Core language for smart contract development. + - **OpenZeppelin**: Secure and reusable contract components. +- **Development Framework**: + - **Hardhat**: Ethereum development environment. + - **Hardhat Ignition**: Advanced deployment and parameter management. +- **Testing and Analysis**: + - **Chai**: For contract testing. + - **Solidity Coverage**: Analyze code coverage for Solidity tests. +- **Linting and Formatting**: + - **Biome**: Code quality and formatting tools. + +--- + +## **Installation** + +1. **Clone the Repository**: + ```bash + git clone https://github.com/your-username/engagement.git + cd engagement + ``` + +2. **Install Dependencies**: + ```bash + npm install + ``` + +3. **Set Environment Variables**: + Create a `.env` file in the root directory and set the following: + ```plaintext + TOKEN_URI=http://127.0.0.1:8545/ + ``` + +--- + +## **Usage** + +### **Compile Contracts** +Run the following command to compile the contracts: +```bash +npm run compile +``` + +### **Run Tests** +Execute the test suite to ensure everything is working as expected: +```bash +npm run test ``` + +### **Deploy Contracts** +To deploy the contracts on a local Hardhat network: +1. Start a local Hardhat node: + ```bash + npx hardhat node + ``` +2. Deploy the contracts: + ```bash + npm run deploy:localhost + ``` + +### **Check Coverage** +Analyze the test coverage for your contracts: +```bash +npm run coverage +``` + +### **Lint and Format Code** +Lint the project for issues: +```bash +npm run lint +``` +Format the project files: +```bash +npm run format +``` + +--- + +## **Folder Structure** +```plaintext +. +├── contracts/ # Solidity contracts +│ ├── Engagement.sol # Core engagement contract +│ ├── IEngagement.sol # Interface for engagement contract +├── ignition/ +│ └── modules/ # Deployment modules for Hardhat Ignition +│ └── Engagement.ts # Engagement contract deployment module +├── scripts/ # Deployment scripts +│ └── deploy.ts # Hardhat deployment script +├── test/ # Test files for the contracts +├── hardhat.config.ts # Hardhat configuration file +├── package.json # Project metadata and scripts +├── .env # Environment variables +└── README.md # Project documentation +``` + +--- + +## **Contributing** + +Contributions are welcome! Please follow these steps: +1. Fork the repository. +2. Create a new branch (`git checkout -b feature-name`). +3. Commit your changes (`git commit -m "Add feature-name"`). +4. Push to your branch (`git push origin feature-name`). +5. Submit a pull request. + +--- + +## **Acknowledgments** +- **OpenZeppelin**: For providing secure and reusable smart contract components. +- **Hardhat Team**: For building a robust Ethereum development environment. +- **OCI Platform**: For enabling seamless identity and reputation management. +- **TogetherCrew**: For driving innovation in community engagement and blockchain-based solutions. diff --git a/biome.json b/biome.json new file mode 100644 index 0000000..d46ba64 --- /dev/null +++ b/biome.json @@ -0,0 +1,39 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", + "vcs": { + "enabled": false, + "clientKind": "git", + "useIgnoreFile": false + }, + "files": { + "ignoreUnknown": false, + "ignore": [ + "./node_modules", + "./artifacts", + "./coverage", + "./.nyc_output", + "./.vscode" + ] + }, + "formatter": { + "enabled": true, + "indentStyle": "tab" + }, + "organizeImports": { + "enabled": true + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true, + "suspicious": { + "noExplicitAny": "off" + } + } + }, + "javascript": { + "formatter": { + "quoteStyle": "double" + } + } +} diff --git a/contracts/Engagement.sol b/contracts/Engagement.sol index 5b13682..0c1dc04 100644 --- a/contracts/Engagement.sol +++ b/contracts/Engagement.sol @@ -11,13 +11,12 @@ contract Engagement is IEngagement, ERC1155, AccessControl { using ERC165Checker for address; uint private _counter; - bytes32 public constant PROVIDER_ROLE = keccak256("PROVIDER_ROLE"); + string private _tokenURI; - mapping(uint tokenId => string metadata) private _tokenMetadata; - mapping(uint date => string cid) private _scores; - - constructor() ERC1155("") { + constructor(string memory tokenURI_) ERC1155("") { + requireNonEmptyURI(tokenURI_); _grantRole(DEFAULT_ADMIN_ROLE, msg.sender); + _tokenURI = tokenURI_; } function _checkTokenId(uint tokenId) private view { @@ -26,6 +25,12 @@ contract Engagement is IEngagement, ERC1155, AccessControl { } } + function requireNonEmptyURI(string memory newUri) internal pure { + if (bytes(newUri).length == 0) { + revert URIEmpty("URI cannot be empty"); + } + } + modifier validTokenId(uint tokenId) { _checkTokenId(tokenId); _; @@ -38,13 +43,19 @@ contract Engagement is IEngagement, ERC1155, AccessControl { _; } + modifier nonEmptyAccount(string memory account) { + if (bytes(account).length == 0) { + revert EmptyAccountNotAllowed("Account cannot be empty"); + } + _; + } + function counter() external view returns (uint) { return _counter; } - function issue(string memory hash_) external { + function issue() external { uint counterCache = _counter; - _tokenMetadata[counterCache] = hash_; _mint(msg.sender, counterCache, 1, ""); emit Issue(msg.sender, counterCache); _counter = counterCache + 1; @@ -72,33 +83,6 @@ contract Engagement is IEngagement, ERC1155, AccessControl { emit Burn(account, tokenId, 1); } - function getScores( - uint date, - uint id, - string memory account - ) external view override validTokenId(id) returns (string memory) { - return - string( - abi.encodePacked( - "ipfs://", - _scores[date], - "/", - Strings.toString(id), - "/", - account, - ".json" - ) - ); - } - - function updateScores( - uint date, - string memory cid - ) external override onlyRole(PROVIDER_ROLE) { - _scores[date] = cid; - emit UpdateScores(msg.sender, date, cid); - } - function supportsInterface( bytes4 interfaceId ) public view override(AccessControl, ERC1155) returns (bool) { @@ -108,12 +92,19 @@ contract Engagement is IEngagement, ERC1155, AccessControl { return false; } + function updateBaseURI(string memory newURI) external onlyRole(DEFAULT_ADMIN_ROLE) { + requireNonEmptyURI(newURI); + emit BaseURIUpdated(_tokenURI, newURI); + _tokenURI = newURI; + } + function uri( - uint tokenId - ) public view override validTokenId(tokenId) returns (string memory) { + uint tokenId, + string memory account + ) public view validTokenId(tokenId) nonEmptyAccount(account) returns (string memory) { return string( - abi.encodePacked("ipfs://", _tokenMetadata[tokenId], ".json") + abi.encodePacked(_tokenURI,"/api/v1/nft/",Strings.toString(tokenId),"/",account,"/reputation-score") ); } } diff --git a/contracts/IEngagement.sol b/contracts/IEngagement.sol index 0aa4a38..4cb05e2 100644 --- a/contracts/IEngagement.sol +++ b/contracts/IEngagement.sol @@ -5,15 +5,17 @@ interface IEngagement { event Issue(address indexed account, uint indexed tokenId); event Mint(address indexed account, uint indexed tokenId, uint amount); event Burn(address indexed account, uint indexed tokenId, uint amount); - event UpdateScores(address indexed account, uint indexed date, string cid); + event BaseURIUpdated(string oldURI, string newURI); error NotFound(uint tokenId); error MintLimit(address account, uint tokenId); error NotAllowed(address account, uint tokenId); + error URIEmpty(string message); + error EmptyAccountNotAllowed(string message); function counter() external view returns (uint); - function issue(string memory hash) external; + function issue() external; function mint( address account, @@ -24,11 +26,5 @@ interface IEngagement { function burn(address account, uint tokenId, uint amount) external; - function getScores( - uint date, - uint id, - string memory account - ) external view returns (string memory); - - function updateScores(uint date, string memory cid) external; + function updateBaseURI(string memory newURI) external; } diff --git a/hardhat.config.ts b/hardhat.config.ts index 5015193..ff99be7 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -1,28 +1,49 @@ import type { HardhatUserConfig } from "hardhat/config"; import "@nomicfoundation/hardhat-toolbox-viem"; import { vars } from "hardhat/config"; +import {generatePrivateKey} from "viem/accounts" const ALCHEMY_SEPOLIA_ENDPOINT = vars.get("ALCHEMY_SEPOLIA_ENDPOINT", ""); -const PRIVATE_KEYS = vars.has("PRIVATE_KEYS") - ? vars.get("PRIVATE_KEYS").split(", ") - : []; +const PRIVATE_KEY = vars.has("PRIVATE_KEY") + ? vars.get("PRIVATE_KEY") + : generatePrivateKey(); + const ETHERSCAN_API_KEY = vars.get("ETHERSCAN_API_KEY", ""); +const OPTIMISM_ETHERSCAN_API_KEY = vars.has("OPTIMISM_ETHERSCAN_API_KEY") + ? vars.get("OPTIMISM_ETHERSCAN_API_KEY") + : ""; + const config: HardhatUserConfig = { - solidity: "0.8.26", - networks: { - sepolia: { - url: ALCHEMY_SEPOLIA_ENDPOINT, - accounts: PRIVATE_KEYS, - }, - // localhost: { - // url: "http://127.0.0.1:8545/", - // chainId: 31337, - // }, - }, - etherscan: { - apiKey: ETHERSCAN_API_KEY, - }, + solidity: "0.8.26", + networks: { + sepolia: { + url: ALCHEMY_SEPOLIA_ENDPOINT, + accounts: [PRIVATE_KEY], + }, + optimismSepolia: { + chainId: 11155420, + accounts: [PRIVATE_KEY], + url: "https://sepolia.optimism.io", + gasMultiplier: 1.2, + }, + }, + etherscan: { + apiKey: { + sepolia: ETHERSCAN_API_KEY, + optimismSepolia: OPTIMISM_ETHERSCAN_API_KEY, + }, + customChains: [ + { + network: "optimismSepolia", + chainId: 11155420, + urls: { + apiURL: "https://api-sepolia-optimistic.etherscan.io/api", + browserURL: "https://sepolia-optimism.etherscan.io/", + }, + }, + ], + }, }; export default config; diff --git a/ignition/deployments/chain-11155111/artifacts/EngagementModule#Engagement.dbg.json b/ignition/deployments/chain-11155111/artifacts/EngagementModule#Engagement.dbg.json deleted file mode 100644 index 694d7c0..0000000 --- a/ignition/deployments/chain-11155111/artifacts/EngagementModule#Engagement.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../build-info/66954cfa576a2ffbfe079f17baab8cf7.json" -} \ No newline at end of file diff --git a/ignition/deployments/chain-11155111/artifacts/EngagementModule#Engagement.json b/ignition/deployments/chain-11155111/artifacts/EngagementModule#Engagement.json deleted file mode 100644 index 5e0eeb0..0000000 --- a/ignition/deployments/chain-11155111/artifacts/EngagementModule#Engagement.json +++ /dev/null @@ -1,910 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Engagement", - "sourceName": "contracts/Engagement.sol", - "abi": [ - { - "inputs": [], - "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": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "needed", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ERC1155InsufficientBalance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "approver", - "type": "address" - } - ], - "name": "ERC1155InvalidApprover", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "idsLength", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "valuesLength", - "type": "uint256" - } - ], - "name": "ERC1155InvalidArrayLength", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "ERC1155InvalidOperator", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "ERC1155InvalidReceiver", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "ERC1155InvalidSender", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "ERC1155MissingApprovalForAll", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "MintLimit", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "NotAllowed", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "NotFound", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "Burn", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Issue", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "Mint", - "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": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - } - ], - "name": "TransferBatch", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TransferSingle", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "value", - "type": "string" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "URI", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "date", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "string", - "name": "cid", - "type": "string" - } - ], - "name": "UpdateScores", - "type": "event" - }, - { - "inputs": [], - "name": "DEFAULT_ADMIN_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "PROVIDER_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address[]", - "name": "accounts", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - } - ], - "name": "balanceOfBatch", - "outputs": [ - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "counter", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleAdmin", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "date", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "string", - "name": "account", - "type": "string" - } - ], - "name": "getScores", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "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": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "hash_", - "type": "string" - } - ], - "name": "issue", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "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": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeBatchTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "date", - "type": "uint256" - }, - { - "internalType": "string", - "name": "cid", - "type": "string" - } - ], - "name": "updateScores", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "uri", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x608060405260006004553480156200001657600080fd5b506040518060200160405280600081525062000038816200005560201b60201c565b506200004e6000801b336200006a60201b60201c565b5062000542565b80600290816200006691906200045b565b5050565b60006200007e83836200016e60201b60201c565b620001635760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620000ff620001d960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001905062000168565b600090505b92915050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200026357607f821691505b6020821081036200027957620002786200021b565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620002e37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002a4565b620002ef8683620002a4565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200033c62000336620003308462000307565b62000311565b62000307565b9050919050565b6000819050919050565b62000358836200031b565b62000370620003678262000343565b848454620002b1565b825550505050565b600090565b6200038762000378565b620003948184846200034d565b505050565b5b81811015620003bc57620003b06000826200037d565b6001810190506200039a565b5050565b601f8211156200040b57620003d5816200027f565b620003e08462000294565b81016020851015620003f0578190505b62000408620003ff8562000294565b83018262000399565b50505b505050565b600082821c905092915050565b6000620004306000198460080262000410565b1980831691505092915050565b60006200044b83836200041d565b9150826002028217905092915050565b6200046682620001e1565b67ffffffffffffffff811115620004825762000481620001ec565b5b6200048e82546200024a565b6200049b828285620003c0565b600060209050601f831160018114620004d35760008415620004be578287015190505b620004ca85826200043d565b8655506200053a565b601f198416620004e3866200027f565b60005b828110156200050d57848901518255600182019150602085019450602081019050620004e6565b868310156200052d578489015162000529601f8916826200041d565b8355505b6001600288020188555050505b505050505050565b61338280620005526000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c80634e1273f4116100b8578063a22cb4651161007c578063a22cb4651461035d578063c5afac6614610379578063d547741f146103a9578063e985e9c5146103c5578063f242432a146103f5578063f5298aca1461041157610136565b80634e1273f4146102a557806361bc221a146102d5578063731133e9146102f357806391d148541461030f578063a217fddf1461033f57610136565b806324c20a34116100ff57806324c20a34146102175780632eb2c2d6146102355780632f2ff15d1461025157806336568abe1461026d5780633cad9b0d1461028957610136565b8062fdd58e1461013b57806301ffc9a71461016b5780630e89341c1461019b5780631c4ce135146101cb578063248a9ca3146101e7575b600080fd5b61015560048036038101906101509190611eb9565b61042d565b6040516101629190611f08565b60405180910390f35b61018560048036038101906101809190611f7b565b610487565b6040516101929190611fc3565b60405180910390f35b6101b560048036038101906101b09190611fde565b61048e565b6040516101c2919061209b565b60405180910390f35b6101e560048036038101906101e091906121f2565b6104d4565b005b61020160048036038101906101fc9190612284565b610573565b60405161020e91906122c0565b60405180910390f35b61021f610593565b60405161022c91906122c0565b60405180910390f35b61024f600480360381019061024a9190612444565b6105b7565b005b61026b60048036038101906102669190612513565b61065f565b005b61028760048036038101906102829190612513565b610681565b005b6102a3600480360381019061029e9190612553565b6106fc565b005b6102bf60048036038101906102ba919061265f565b61079e565b6040516102cc9190612795565b60405180910390f35b6102dd6108a7565b6040516102ea9190611f08565b60405180910390f35b61030d600480360381019061030891906127b7565b6108b1565b005b61032960048036038101906103249190612513565b610970565b6040516103369190611fc3565b60405180910390f35b6103476109db565b60405161035491906122c0565b60405180910390f35b61037760048036038101906103729190612866565b6109e2565b005b610393600480360381019061038e91906128a6565b6109f8565b6040516103a0919061209b565b60405180910390f35b6103c360048036038101906103be9190612513565b610a4c565b005b6103df60048036038101906103da9190612915565b610a6e565b6040516103ec9190611fc3565b60405180910390f35b61040f600480360381019061040a9190612955565b610b02565b005b61042b600480360381019061042691906129ec565b610baa565b005b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000919050565b60608161049a81610c88565b600560008481526020019081526020016000206040516020016104bd9190612bda565b604051602081830303815290604052915050919050565b7f18d9ff454de989bd126b06bd404b47ede75f9e65543e94e8d212f89d7dcbb87c6104fe81610cd1565b8160066000858152602001908152602001600020908161051e9190612d9e565b50823373ffffffffffffffffffffffffffffffffffffffff167fee5e19404a9c880f5e862aeeedfa8f4b4b427864327c17888eb6a34d549e5a5584604051610566919061209b565b60405180910390a3505050565b600060036000838152602001908152602001600020600101549050919050565b7f18d9ff454de989bd126b06bd404b47ede75f9e65543e94e8d212f89d7dcbb87c81565b60006105c1610ce5565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561060657506106048682610a6e565b155b1561064a5780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610641929190612e7f565b60405180910390fd5b6106578686868686610ced565b505050505050565b61066882610573565b61067181610cd1565b61067b8383610de5565b50505050565b610689610ce5565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146106ed576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106f78282610ed7565b505050565b80600560006004548152602001908152602001600020908161071e9190612d9e565b5061073d33600454600160405180602001604052806000815250610fca565b6004543373ffffffffffffffffffffffffffffffffffffffff167fc65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c1660405160405180910390a36004600081548092919061079690612ed7565b919050555050565b606081518351146107ea57815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016107e1929190612f1f565b60405180910390fd5b6000835167ffffffffffffffff811115610807576108066120c7565b5b6040519080825280602002602001820160405280156108355781602001602082028036833780820191505090505b50905060005b845181101561089c5761087261085a828761106390919063ffffffff16565b61086d838761107790919063ffffffff16565b61042d565b82828151811061088557610884612f48565b5b60200260200101818152505080600101905061083b565b508091505092915050565b6000600454905090565b826108bb81610c88565b60006108c7868661042d565b111561090c5784846040517f788d2556000000000000000000000000000000000000000000000000000000008152600401610903929190612f77565b60405180910390fd5b6109198585600185610fca565b838573ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f60016040516109619190612fdb565b60405180910390a35050505050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b6109f46109ed610ce5565b838361108b565b5050565b606082610a0481610c88565b60066000868152602001908152602001600020610a20856111fb565b84604051602001610a3393929190613073565b6040516020818303038152906040529150509392505050565b610a5582610573565b610a5e81610cd1565b610a688383610ed7565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000610b0c610ce5565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610b515750610b4f8682610a6e565b155b15610b955780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610b8c929190612e7f565b60405180910390fd5b610ba286868686866112c9565b505050505050565b81610bb481610c88565b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610c265783836040517f8626cc03000000000000000000000000000000000000000000000000000000008152600401610c1d929190612f77565b60405180910390fd5b610c32848460016113d4565b828473ffffffffffffffffffffffffffffffffffffffff167f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a6001604051610c7a9190612fdb565b60405180910390a350505050565b6004548110610cce57806040517fc80a970c000000000000000000000000000000000000000000000000000000008152600401610cc59190611f08565b60405180910390fd5b50565b610ce281610cdd610ce5565b61147b565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610d5f5760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610d5691906130d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610dd15760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610dc891906130d0565b60405180910390fd5b610dde85858585856114cc565b5050505050565b6000610df18383610970565b610ecc5760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610e69610ce5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610ed1565b600090505b92915050565b6000610ee38383610970565b15610fbf5760006003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610f5c610ce5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050610fc4565b600090505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361103c5760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161103391906130d0565b60405180910390fd5b600080611049858561157e565b9150915061105b6000878484876114cc565b505050505050565b600060208202602084010151905092915050565b600060208202602084010151905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110fd5760006040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016110f491906130d0565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516111ee9190611fc3565b60405180910390a3505050565b60606000600161120a846115ae565b01905060008167ffffffffffffffff811115611229576112286120c7565b5b6040519080825280601f01601f19166020018201604052801561125b5781602001600182028036833780820191505090505b509050600082602001820190505b6001156112be578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816112b2576112b16130eb565b5b04945060008503611269575b819350505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361133b5760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161133291906130d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036113ad5760006040517f01a835140000000000000000000000000000000000000000000000000000000081526004016113a491906130d0565b60405180910390fd5b6000806113ba858561157e565b915091506113cb87878484876114cc565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114465760006040517f01a8351400000000000000000000000000000000000000000000000000000000815260040161143d91906130d0565b60405180910390fd5b600080611453848461157e565b915091506114748560008484604051806020016040528060008152506114cc565b5050505050565b6114858282610970565b6114c85780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016114bf92919061311a565b60405180910390fd5b5050565b6114d885858585611701565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611577576000611516610ce5565b9050600184510361156657600061153760008661107790919063ffffffff16565b9050600061154f60008661107790919063ffffffff16565b905061155f838989858589611aa9565b5050611575565b611574818787878787611c5d565b5b505b5050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061160c577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611602576116016130eb565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611649576d04ee2d6d415b85acef8100000000838161163f5761163e6130eb565b5b0492506020810190505b662386f26fc10000831061167857662386f26fc10000838161166e5761166d6130eb565b5b0492506010810190505b6305f5e10083106116a1576305f5e1008381611697576116966130eb565b5b0492506008810190505b61271083106116c65761271083816116bc576116bb6130eb565b5b0492506004810190505b606483106116e957606483816116df576116de6130eb565b5b0492506002810190505b600a83106116f8576001810190505b80915050919050565b805182511461174b57815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401611742929190612f1f565b60405180910390fd5b6000611755610ce5565b905060005b8351811015611964576000611778828661107790919063ffffffff16565b9050600061178f838661107790919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146118bc57600080600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561186457888183856040517f03dee4c500000000000000000000000000000000000000000000000000000000815260040161185b9493929190613143565b60405180910390fd5b81810360008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611957578060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461194f9190613188565b925050819055505b505080600101905061175a565b506001835103611a2357600061198460008561107790919063ffffffff16565b9050600061199c60008561107790919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611a14929190612f1f565b60405180910390a45050611aa2565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611a999291906131bc565b60405180910390a45b5050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611c55578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611b0a959493929190613248565b6020604051808303816000875af1925050508015611b4657506040513d601f19601f82011682018060405250810190611b4391906132b7565b60015b611bca573d8060008114611b76576040519150601f19603f3d011682016040523d82523d6000602084013e611b7b565b606091505b506000815103611bc257846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611bb991906130d0565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611c5357846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611c4a91906130d0565b60405180910390fd5b505b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611e09578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611cbe9594939291906132e4565b6020604051808303816000875af1925050508015611cfa57506040513d601f19601f82011682018060405250810190611cf791906132b7565b60015b611d7e573d8060008114611d2a576040519150601f19603f3d011682016040523d82523d6000602084013e611d2f565b606091505b506000815103611d7657846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611d6d91906130d0565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611e0757846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611dfe91906130d0565b60405180910390fd5b505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611e5082611e25565b9050919050565b611e6081611e45565b8114611e6b57600080fd5b50565b600081359050611e7d81611e57565b92915050565b6000819050919050565b611e9681611e83565b8114611ea157600080fd5b50565b600081359050611eb381611e8d565b92915050565b60008060408385031215611ed057611ecf611e1b565b5b6000611ede85828601611e6e565b9250506020611eef85828601611ea4565b9150509250929050565b611f0281611e83565b82525050565b6000602082019050611f1d6000830184611ef9565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611f5881611f23565b8114611f6357600080fd5b50565b600081359050611f7581611f4f565b92915050565b600060208284031215611f9157611f90611e1b565b5b6000611f9f84828501611f66565b91505092915050565b60008115159050919050565b611fbd81611fa8565b82525050565b6000602082019050611fd86000830184611fb4565b92915050565b600060208284031215611ff457611ff3611e1b565b5b600061200284828501611ea4565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561204557808201518184015260208101905061202a565b60008484015250505050565b6000601f19601f8301169050919050565b600061206d8261200b565b6120778185612016565b9350612087818560208601612027565b61209081612051565b840191505092915050565b600060208201905081810360008301526120b58184612062565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6120ff82612051565b810181811067ffffffffffffffff8211171561211e5761211d6120c7565b5b80604052505050565b6000612131611e11565b905061213d82826120f6565b919050565b600067ffffffffffffffff82111561215d5761215c6120c7565b5b61216682612051565b9050602081019050919050565b82818337600083830152505050565b600061219561219084612142565b612127565b9050828152602081018484840111156121b1576121b06120c2565b5b6121bc848285612173565b509392505050565b600082601f8301126121d9576121d86120bd565b5b81356121e9848260208601612182565b91505092915050565b6000806040838503121561220957612208611e1b565b5b600061221785828601611ea4565b925050602083013567ffffffffffffffff81111561223857612237611e20565b5b612244858286016121c4565b9150509250929050565b6000819050919050565b6122618161224e565b811461226c57600080fd5b50565b60008135905061227e81612258565b92915050565b60006020828403121561229a57612299611e1b565b5b60006122a88482850161226f565b91505092915050565b6122ba8161224e565b82525050565b60006020820190506122d560008301846122b1565b92915050565b600067ffffffffffffffff8211156122f6576122f56120c7565b5b602082029050602081019050919050565b600080fd5b600061231f61231a846122db565b612127565b9050808382526020820190506020840283018581111561234257612341612307565b5b835b8181101561236b57806123578882611ea4565b845260208401935050602081019050612344565b5050509392505050565b600082601f83011261238a576123896120bd565b5b813561239a84826020860161230c565b91505092915050565b600067ffffffffffffffff8211156123be576123bd6120c7565b5b6123c782612051565b9050602081019050919050565b60006123e76123e2846123a3565b612127565b905082815260208101848484011115612403576124026120c2565b5b61240e848285612173565b509392505050565b600082601f83011261242b5761242a6120bd565b5b813561243b8482602086016123d4565b91505092915050565b600080600080600060a086880312156124605761245f611e1b565b5b600061246e88828901611e6e565b955050602061247f88828901611e6e565b945050604086013567ffffffffffffffff8111156124a05761249f611e20565b5b6124ac88828901612375565b935050606086013567ffffffffffffffff8111156124cd576124cc611e20565b5b6124d988828901612375565b925050608086013567ffffffffffffffff8111156124fa576124f9611e20565b5b61250688828901612416565b9150509295509295909350565b6000806040838503121561252a57612529611e1b565b5b60006125388582860161226f565b925050602061254985828601611e6e565b9150509250929050565b60006020828403121561256957612568611e1b565b5b600082013567ffffffffffffffff81111561258757612586611e20565b5b612593848285016121c4565b91505092915050565b600067ffffffffffffffff8211156125b7576125b66120c7565b5b602082029050602081019050919050565b60006125db6125d68461259c565b612127565b905080838252602082019050602084028301858111156125fe576125fd612307565b5b835b8181101561262757806126138882611e6e565b845260208401935050602081019050612600565b5050509392505050565b600082601f830112612646576126456120bd565b5b81356126568482602086016125c8565b91505092915050565b6000806040838503121561267657612675611e1b565b5b600083013567ffffffffffffffff81111561269457612693611e20565b5b6126a085828601612631565b925050602083013567ffffffffffffffff8111156126c1576126c0611e20565b5b6126cd85828601612375565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61270c81611e83565b82525050565b600061271e8383612703565b60208301905092915050565b6000602082019050919050565b6000612742826126d7565b61274c81856126e2565b9350612757836126f3565b8060005b8381101561278857815161276f8882612712565b975061277a8361272a565b92505060018101905061275b565b5085935050505092915050565b600060208201905081810360008301526127af8184612737565b905092915050565b600080600080608085870312156127d1576127d0611e1b565b5b60006127df87828801611e6e565b94505060206127f087828801611ea4565b935050604061280187828801611ea4565b925050606085013567ffffffffffffffff81111561282257612821611e20565b5b61282e87828801612416565b91505092959194509250565b61284381611fa8565b811461284e57600080fd5b50565b6000813590506128608161283a565b92915050565b6000806040838503121561287d5761287c611e1b565b5b600061288b85828601611e6e565b925050602061289c85828601612851565b9150509250929050565b6000806000606084860312156128bf576128be611e1b565b5b60006128cd86828701611ea4565b93505060206128de86828701611ea4565b925050604084013567ffffffffffffffff8111156128ff576128fe611e20565b5b61290b868287016121c4565b9150509250925092565b6000806040838503121561292c5761292b611e1b565b5b600061293a85828601611e6e565b925050602061294b85828601611e6e565b9150509250929050565b600080600080600060a0868803121561297157612970611e1b565b5b600061297f88828901611e6e565b955050602061299088828901611e6e565b94505060406129a188828901611ea4565b93505060606129b288828901611ea4565b925050608086013567ffffffffffffffff8111156129d3576129d2611e20565b5b6129df88828901612416565b9150509295509295909350565b600080600060608486031215612a0557612a04611e1b565b5b6000612a1386828701611e6e565b9350506020612a2486828701611ea4565b9250506040612a3586828701611ea4565b9150509250925092565b600081905092915050565b7f697066733a2f2f00000000000000000000000000000000000000000000000000600082015250565b6000612a80600783612a3f565b9150612a8b82612a4a565b600782019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612add57607f821691505b602082108103612af057612aef612a96565b5b50919050565b60008190508160005260206000209050919050565b60008154612b1881612ac5565b612b228186612a3f565b94506001821660008114612b3d5760018114612b5257612b85565b60ff1983168652811515820286019350612b85565b612b5b85612af6565b60005b83811015612b7d57815481890152600182019150602081019050612b5e565b838801955050505b50505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b6000612bc4600583612a3f565b9150612bcf82612b8e565b600582019050919050565b6000612be582612a73565b9150612bf18284612b0b565b9150612bfc82612bb7565b915081905092915050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612c547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612c17565b612c5e8683612c17565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612c9b612c96612c9184611e83565b612c76565b611e83565b9050919050565b6000819050919050565b612cb583612c80565b612cc9612cc182612ca2565b848454612c24565b825550505050565b600090565b612cde612cd1565b612ce9818484612cac565b505050565b5b81811015612d0d57612d02600082612cd6565b600181019050612cef565b5050565b601f821115612d5257612d2381612af6565b612d2c84612c07565b81016020851015612d3b578190505b612d4f612d4785612c07565b830182612cee565b50505b505050565b600082821c905092915050565b6000612d7560001984600802612d57565b1980831691505092915050565b6000612d8e8383612d64565b9150826002028217905092915050565b612da78261200b565b67ffffffffffffffff811115612dc057612dbf6120c7565b5b612dca8254612ac5565b612dd5828285612d11565b600060209050601f831160018114612e085760008415612df6578287015190505b612e008582612d82565b865550612e68565b601f198416612e1686612af6565b60005b82811015612e3e57848901518255600182019150602085019450602081019050612e19565b86831015612e5b5784890151612e57601f891682612d64565b8355505b6001600288020188555050505b505050505050565b612e7981611e45565b82525050565b6000604082019050612e946000830185612e70565b612ea16020830184612e70565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ee282611e83565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f1457612f13612ea8565b5b600182019050919050565b6000604082019050612f346000830185611ef9565b612f416020830184611ef9565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050612f8c6000830185612e70565b612f996020830184611ef9565b9392505050565b6000819050919050565b6000612fc5612fc0612fbb84612fa0565b612c76565b611e83565b9050919050565b612fd581612faa565b82525050565b6000602082019050612ff06000830184612fcc565b92915050565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b600061302c600183612a3f565b915061303782612ff6565b600182019050919050565b600061304d8261200b565b6130578185612a3f565b9350613067818560208601612027565b80840191505092915050565b600061307e82612a73565b915061308a8286612b0b565b91506130958261301f565b91506130a18285613042565b91506130ac8261301f565b91506130b88284613042565b91506130c382612bb7565b9150819050949350505050565b60006020820190506130e56000830184612e70565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600060408201905061312f6000830185612e70565b61313c60208301846122b1565b9392505050565b60006080820190506131586000830187612e70565b6131656020830186611ef9565b6131726040830185611ef9565b61317f6060830184611ef9565b95945050505050565b600061319382611e83565b915061319e83611e83565b92508282019050808211156131b6576131b5612ea8565b5b92915050565b600060408201905081810360008301526131d68185612737565b905081810360208301526131ea8184612737565b90509392505050565b600081519050919050565b600082825260208201905092915050565b600061321a826131f3565b61322481856131fe565b9350613234818560208601612027565b61323d81612051565b840191505092915050565b600060a08201905061325d6000830188612e70565b61326a6020830187612e70565b6132776040830186611ef9565b6132846060830185611ef9565b8181036080830152613296818461320f565b90509695505050505050565b6000815190506132b181611f4f565b92915050565b6000602082840312156132cd576132cc611e1b565b5b60006132db848285016132a2565b91505092915050565b600060a0820190506132f96000830188612e70565b6133066020830187612e70565b81810360408301526133188186612737565b9050818103606083015261332c8185612737565b90508181036080830152613340818461320f565b9050969550505050505056fea2646970667358221220294f8401608e8b44e40d642ddeddde899f8a456400db1a2f81df9ef8d59242d564736f6c63430008180033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101365760003560e01c80634e1273f4116100b8578063a22cb4651161007c578063a22cb4651461035d578063c5afac6614610379578063d547741f146103a9578063e985e9c5146103c5578063f242432a146103f5578063f5298aca1461041157610136565b80634e1273f4146102a557806361bc221a146102d5578063731133e9146102f357806391d148541461030f578063a217fddf1461033f57610136565b806324c20a34116100ff57806324c20a34146102175780632eb2c2d6146102355780632f2ff15d1461025157806336568abe1461026d5780633cad9b0d1461028957610136565b8062fdd58e1461013b57806301ffc9a71461016b5780630e89341c1461019b5780631c4ce135146101cb578063248a9ca3146101e7575b600080fd5b61015560048036038101906101509190611eb9565b61042d565b6040516101629190611f08565b60405180910390f35b61018560048036038101906101809190611f7b565b610487565b6040516101929190611fc3565b60405180910390f35b6101b560048036038101906101b09190611fde565b61048e565b6040516101c2919061209b565b60405180910390f35b6101e560048036038101906101e091906121f2565b6104d4565b005b61020160048036038101906101fc9190612284565b610573565b60405161020e91906122c0565b60405180910390f35b61021f610593565b60405161022c91906122c0565b60405180910390f35b61024f600480360381019061024a9190612444565b6105b7565b005b61026b60048036038101906102669190612513565b61065f565b005b61028760048036038101906102829190612513565b610681565b005b6102a3600480360381019061029e9190612553565b6106fc565b005b6102bf60048036038101906102ba919061265f565b61079e565b6040516102cc9190612795565b60405180910390f35b6102dd6108a7565b6040516102ea9190611f08565b60405180910390f35b61030d600480360381019061030891906127b7565b6108b1565b005b61032960048036038101906103249190612513565b610970565b6040516103369190611fc3565b60405180910390f35b6103476109db565b60405161035491906122c0565b60405180910390f35b61037760048036038101906103729190612866565b6109e2565b005b610393600480360381019061038e91906128a6565b6109f8565b6040516103a0919061209b565b60405180910390f35b6103c360048036038101906103be9190612513565b610a4c565b005b6103df60048036038101906103da9190612915565b610a6e565b6040516103ec9190611fc3565b60405180910390f35b61040f600480360381019061040a9190612955565b610b02565b005b61042b600480360381019061042691906129ec565b610baa565b005b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000919050565b60608161049a81610c88565b600560008481526020019081526020016000206040516020016104bd9190612bda565b604051602081830303815290604052915050919050565b7f18d9ff454de989bd126b06bd404b47ede75f9e65543e94e8d212f89d7dcbb87c6104fe81610cd1565b8160066000858152602001908152602001600020908161051e9190612d9e565b50823373ffffffffffffffffffffffffffffffffffffffff167fee5e19404a9c880f5e862aeeedfa8f4b4b427864327c17888eb6a34d549e5a5584604051610566919061209b565b60405180910390a3505050565b600060036000838152602001908152602001600020600101549050919050565b7f18d9ff454de989bd126b06bd404b47ede75f9e65543e94e8d212f89d7dcbb87c81565b60006105c1610ce5565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561060657506106048682610a6e565b155b1561064a5780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610641929190612e7f565b60405180910390fd5b6106578686868686610ced565b505050505050565b61066882610573565b61067181610cd1565b61067b8383610de5565b50505050565b610689610ce5565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146106ed576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106f78282610ed7565b505050565b80600560006004548152602001908152602001600020908161071e9190612d9e565b5061073d33600454600160405180602001604052806000815250610fca565b6004543373ffffffffffffffffffffffffffffffffffffffff167fc65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c1660405160405180910390a36004600081548092919061079690612ed7565b919050555050565b606081518351146107ea57815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016107e1929190612f1f565b60405180910390fd5b6000835167ffffffffffffffff811115610807576108066120c7565b5b6040519080825280602002602001820160405280156108355781602001602082028036833780820191505090505b50905060005b845181101561089c5761087261085a828761106390919063ffffffff16565b61086d838761107790919063ffffffff16565b61042d565b82828151811061088557610884612f48565b5b60200260200101818152505080600101905061083b565b508091505092915050565b6000600454905090565b826108bb81610c88565b60006108c7868661042d565b111561090c5784846040517f788d2556000000000000000000000000000000000000000000000000000000008152600401610903929190612f77565b60405180910390fd5b6109198585600185610fca565b838573ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f60016040516109619190612fdb565b60405180910390a35050505050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b6109f46109ed610ce5565b838361108b565b5050565b606082610a0481610c88565b60066000868152602001908152602001600020610a20856111fb565b84604051602001610a3393929190613073565b6040516020818303038152906040529150509392505050565b610a5582610573565b610a5e81610cd1565b610a688383610ed7565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000610b0c610ce5565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610b515750610b4f8682610a6e565b155b15610b955780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610b8c929190612e7f565b60405180910390fd5b610ba286868686866112c9565b505050505050565b81610bb481610c88565b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610c265783836040517f8626cc03000000000000000000000000000000000000000000000000000000008152600401610c1d929190612f77565b60405180910390fd5b610c32848460016113d4565b828473ffffffffffffffffffffffffffffffffffffffff167f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a6001604051610c7a9190612fdb565b60405180910390a350505050565b6004548110610cce57806040517fc80a970c000000000000000000000000000000000000000000000000000000008152600401610cc59190611f08565b60405180910390fd5b50565b610ce281610cdd610ce5565b61147b565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610d5f5760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610d5691906130d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610dd15760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610dc891906130d0565b60405180910390fd5b610dde85858585856114cc565b5050505050565b6000610df18383610970565b610ecc5760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610e69610ce5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610ed1565b600090505b92915050565b6000610ee38383610970565b15610fbf5760006003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610f5c610ce5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050610fc4565b600090505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361103c5760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161103391906130d0565b60405180910390fd5b600080611049858561157e565b9150915061105b6000878484876114cc565b505050505050565b600060208202602084010151905092915050565b600060208202602084010151905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110fd5760006040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016110f491906130d0565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516111ee9190611fc3565b60405180910390a3505050565b60606000600161120a846115ae565b01905060008167ffffffffffffffff811115611229576112286120c7565b5b6040519080825280601f01601f19166020018201604052801561125b5781602001600182028036833780820191505090505b509050600082602001820190505b6001156112be578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816112b2576112b16130eb565b5b04945060008503611269575b819350505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361133b5760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161133291906130d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036113ad5760006040517f01a835140000000000000000000000000000000000000000000000000000000081526004016113a491906130d0565b60405180910390fd5b6000806113ba858561157e565b915091506113cb87878484876114cc565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114465760006040517f01a8351400000000000000000000000000000000000000000000000000000000815260040161143d91906130d0565b60405180910390fd5b600080611453848461157e565b915091506114748560008484604051806020016040528060008152506114cc565b5050505050565b6114858282610970565b6114c85780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016114bf92919061311a565b60405180910390fd5b5050565b6114d885858585611701565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611577576000611516610ce5565b9050600184510361156657600061153760008661107790919063ffffffff16565b9050600061154f60008661107790919063ffffffff16565b905061155f838989858589611aa9565b5050611575565b611574818787878787611c5d565b5b505b5050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061160c577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611602576116016130eb565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611649576d04ee2d6d415b85acef8100000000838161163f5761163e6130eb565b5b0492506020810190505b662386f26fc10000831061167857662386f26fc10000838161166e5761166d6130eb565b5b0492506010810190505b6305f5e10083106116a1576305f5e1008381611697576116966130eb565b5b0492506008810190505b61271083106116c65761271083816116bc576116bb6130eb565b5b0492506004810190505b606483106116e957606483816116df576116de6130eb565b5b0492506002810190505b600a83106116f8576001810190505b80915050919050565b805182511461174b57815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401611742929190612f1f565b60405180910390fd5b6000611755610ce5565b905060005b8351811015611964576000611778828661107790919063ffffffff16565b9050600061178f838661107790919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146118bc57600080600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561186457888183856040517f03dee4c500000000000000000000000000000000000000000000000000000000815260040161185b9493929190613143565b60405180910390fd5b81810360008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611957578060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461194f9190613188565b925050819055505b505080600101905061175a565b506001835103611a2357600061198460008561107790919063ffffffff16565b9050600061199c60008561107790919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611a14929190612f1f565b60405180910390a45050611aa2565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611a999291906131bc565b60405180910390a45b5050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611c55578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611b0a959493929190613248565b6020604051808303816000875af1925050508015611b4657506040513d601f19601f82011682018060405250810190611b4391906132b7565b60015b611bca573d8060008114611b76576040519150601f19603f3d011682016040523d82523d6000602084013e611b7b565b606091505b506000815103611bc257846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611bb991906130d0565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611c5357846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611c4a91906130d0565b60405180910390fd5b505b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611e09578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611cbe9594939291906132e4565b6020604051808303816000875af1925050508015611cfa57506040513d601f19601f82011682018060405250810190611cf791906132b7565b60015b611d7e573d8060008114611d2a576040519150601f19603f3d011682016040523d82523d6000602084013e611d2f565b606091505b506000815103611d7657846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611d6d91906130d0565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611e0757846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611dfe91906130d0565b60405180910390fd5b505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611e5082611e25565b9050919050565b611e6081611e45565b8114611e6b57600080fd5b50565b600081359050611e7d81611e57565b92915050565b6000819050919050565b611e9681611e83565b8114611ea157600080fd5b50565b600081359050611eb381611e8d565b92915050565b60008060408385031215611ed057611ecf611e1b565b5b6000611ede85828601611e6e565b9250506020611eef85828601611ea4565b9150509250929050565b611f0281611e83565b82525050565b6000602082019050611f1d6000830184611ef9565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611f5881611f23565b8114611f6357600080fd5b50565b600081359050611f7581611f4f565b92915050565b600060208284031215611f9157611f90611e1b565b5b6000611f9f84828501611f66565b91505092915050565b60008115159050919050565b611fbd81611fa8565b82525050565b6000602082019050611fd86000830184611fb4565b92915050565b600060208284031215611ff457611ff3611e1b565b5b600061200284828501611ea4565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561204557808201518184015260208101905061202a565b60008484015250505050565b6000601f19601f8301169050919050565b600061206d8261200b565b6120778185612016565b9350612087818560208601612027565b61209081612051565b840191505092915050565b600060208201905081810360008301526120b58184612062565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6120ff82612051565b810181811067ffffffffffffffff8211171561211e5761211d6120c7565b5b80604052505050565b6000612131611e11565b905061213d82826120f6565b919050565b600067ffffffffffffffff82111561215d5761215c6120c7565b5b61216682612051565b9050602081019050919050565b82818337600083830152505050565b600061219561219084612142565b612127565b9050828152602081018484840111156121b1576121b06120c2565b5b6121bc848285612173565b509392505050565b600082601f8301126121d9576121d86120bd565b5b81356121e9848260208601612182565b91505092915050565b6000806040838503121561220957612208611e1b565b5b600061221785828601611ea4565b925050602083013567ffffffffffffffff81111561223857612237611e20565b5b612244858286016121c4565b9150509250929050565b6000819050919050565b6122618161224e565b811461226c57600080fd5b50565b60008135905061227e81612258565b92915050565b60006020828403121561229a57612299611e1b565b5b60006122a88482850161226f565b91505092915050565b6122ba8161224e565b82525050565b60006020820190506122d560008301846122b1565b92915050565b600067ffffffffffffffff8211156122f6576122f56120c7565b5b602082029050602081019050919050565b600080fd5b600061231f61231a846122db565b612127565b9050808382526020820190506020840283018581111561234257612341612307565b5b835b8181101561236b57806123578882611ea4565b845260208401935050602081019050612344565b5050509392505050565b600082601f83011261238a576123896120bd565b5b813561239a84826020860161230c565b91505092915050565b600067ffffffffffffffff8211156123be576123bd6120c7565b5b6123c782612051565b9050602081019050919050565b60006123e76123e2846123a3565b612127565b905082815260208101848484011115612403576124026120c2565b5b61240e848285612173565b509392505050565b600082601f83011261242b5761242a6120bd565b5b813561243b8482602086016123d4565b91505092915050565b600080600080600060a086880312156124605761245f611e1b565b5b600061246e88828901611e6e565b955050602061247f88828901611e6e565b945050604086013567ffffffffffffffff8111156124a05761249f611e20565b5b6124ac88828901612375565b935050606086013567ffffffffffffffff8111156124cd576124cc611e20565b5b6124d988828901612375565b925050608086013567ffffffffffffffff8111156124fa576124f9611e20565b5b61250688828901612416565b9150509295509295909350565b6000806040838503121561252a57612529611e1b565b5b60006125388582860161226f565b925050602061254985828601611e6e565b9150509250929050565b60006020828403121561256957612568611e1b565b5b600082013567ffffffffffffffff81111561258757612586611e20565b5b612593848285016121c4565b91505092915050565b600067ffffffffffffffff8211156125b7576125b66120c7565b5b602082029050602081019050919050565b60006125db6125d68461259c565b612127565b905080838252602082019050602084028301858111156125fe576125fd612307565b5b835b8181101561262757806126138882611e6e565b845260208401935050602081019050612600565b5050509392505050565b600082601f830112612646576126456120bd565b5b81356126568482602086016125c8565b91505092915050565b6000806040838503121561267657612675611e1b565b5b600083013567ffffffffffffffff81111561269457612693611e20565b5b6126a085828601612631565b925050602083013567ffffffffffffffff8111156126c1576126c0611e20565b5b6126cd85828601612375565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61270c81611e83565b82525050565b600061271e8383612703565b60208301905092915050565b6000602082019050919050565b6000612742826126d7565b61274c81856126e2565b9350612757836126f3565b8060005b8381101561278857815161276f8882612712565b975061277a8361272a565b92505060018101905061275b565b5085935050505092915050565b600060208201905081810360008301526127af8184612737565b905092915050565b600080600080608085870312156127d1576127d0611e1b565b5b60006127df87828801611e6e565b94505060206127f087828801611ea4565b935050604061280187828801611ea4565b925050606085013567ffffffffffffffff81111561282257612821611e20565b5b61282e87828801612416565b91505092959194509250565b61284381611fa8565b811461284e57600080fd5b50565b6000813590506128608161283a565b92915050565b6000806040838503121561287d5761287c611e1b565b5b600061288b85828601611e6e565b925050602061289c85828601612851565b9150509250929050565b6000806000606084860312156128bf576128be611e1b565b5b60006128cd86828701611ea4565b93505060206128de86828701611ea4565b925050604084013567ffffffffffffffff8111156128ff576128fe611e20565b5b61290b868287016121c4565b9150509250925092565b6000806040838503121561292c5761292b611e1b565b5b600061293a85828601611e6e565b925050602061294b85828601611e6e565b9150509250929050565b600080600080600060a0868803121561297157612970611e1b565b5b600061297f88828901611e6e565b955050602061299088828901611e6e565b94505060406129a188828901611ea4565b93505060606129b288828901611ea4565b925050608086013567ffffffffffffffff8111156129d3576129d2611e20565b5b6129df88828901612416565b9150509295509295909350565b600080600060608486031215612a0557612a04611e1b565b5b6000612a1386828701611e6e565b9350506020612a2486828701611ea4565b9250506040612a3586828701611ea4565b9150509250925092565b600081905092915050565b7f697066733a2f2f00000000000000000000000000000000000000000000000000600082015250565b6000612a80600783612a3f565b9150612a8b82612a4a565b600782019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612add57607f821691505b602082108103612af057612aef612a96565b5b50919050565b60008190508160005260206000209050919050565b60008154612b1881612ac5565b612b228186612a3f565b94506001821660008114612b3d5760018114612b5257612b85565b60ff1983168652811515820286019350612b85565b612b5b85612af6565b60005b83811015612b7d57815481890152600182019150602081019050612b5e565b838801955050505b50505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b6000612bc4600583612a3f565b9150612bcf82612b8e565b600582019050919050565b6000612be582612a73565b9150612bf18284612b0b565b9150612bfc82612bb7565b915081905092915050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612c547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612c17565b612c5e8683612c17565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612c9b612c96612c9184611e83565b612c76565b611e83565b9050919050565b6000819050919050565b612cb583612c80565b612cc9612cc182612ca2565b848454612c24565b825550505050565b600090565b612cde612cd1565b612ce9818484612cac565b505050565b5b81811015612d0d57612d02600082612cd6565b600181019050612cef565b5050565b601f821115612d5257612d2381612af6565b612d2c84612c07565b81016020851015612d3b578190505b612d4f612d4785612c07565b830182612cee565b50505b505050565b600082821c905092915050565b6000612d7560001984600802612d57565b1980831691505092915050565b6000612d8e8383612d64565b9150826002028217905092915050565b612da78261200b565b67ffffffffffffffff811115612dc057612dbf6120c7565b5b612dca8254612ac5565b612dd5828285612d11565b600060209050601f831160018114612e085760008415612df6578287015190505b612e008582612d82565b865550612e68565b601f198416612e1686612af6565b60005b82811015612e3e57848901518255600182019150602085019450602081019050612e19565b86831015612e5b5784890151612e57601f891682612d64565b8355505b6001600288020188555050505b505050505050565b612e7981611e45565b82525050565b6000604082019050612e946000830185612e70565b612ea16020830184612e70565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ee282611e83565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f1457612f13612ea8565b5b600182019050919050565b6000604082019050612f346000830185611ef9565b612f416020830184611ef9565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050612f8c6000830185612e70565b612f996020830184611ef9565b9392505050565b6000819050919050565b6000612fc5612fc0612fbb84612fa0565b612c76565b611e83565b9050919050565b612fd581612faa565b82525050565b6000602082019050612ff06000830184612fcc565b92915050565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b600061302c600183612a3f565b915061303782612ff6565b600182019050919050565b600061304d8261200b565b6130578185612a3f565b9350613067818560208601612027565b80840191505092915050565b600061307e82612a73565b915061308a8286612b0b565b91506130958261301f565b91506130a18285613042565b91506130ac8261301f565b91506130b88284613042565b91506130c382612bb7565b9150819050949350505050565b60006020820190506130e56000830184612e70565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600060408201905061312f6000830185612e70565b61313c60208301846122b1565b9392505050565b60006080820190506131586000830187612e70565b6131656020830186611ef9565b6131726040830185611ef9565b61317f6060830184611ef9565b95945050505050565b600061319382611e83565b915061319e83611e83565b92508282019050808211156131b6576131b5612ea8565b5b92915050565b600060408201905081810360008301526131d68185612737565b905081810360208301526131ea8184612737565b90509392505050565b600081519050919050565b600082825260208201905092915050565b600061321a826131f3565b61322481856131fe565b9350613234818560208601612027565b61323d81612051565b840191505092915050565b600060a08201905061325d6000830188612e70565b61326a6020830187612e70565b6132776040830186611ef9565b6132846060830185611ef9565b8181036080830152613296818461320f565b90509695505050505050565b6000815190506132b181611f4f565b92915050565b6000602082840312156132cd576132cc611e1b565b5b60006132db848285016132a2565b91505092915050565b600060a0820190506132f96000830188612e70565b6133066020830187612e70565b81810360408301526133188186612737565b9050818103606083015261332c8185612737565b90508181036080830152613340818461320f565b9050969550505050505056fea2646970667358221220294f8401608e8b44e40d642ddeddde899f8a456400db1a2f81df9ef8d59242d564736f6c63430008180033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/ignition/deployments/chain-11155111/deployed_addresses.json b/ignition/deployments/chain-11155111/deployed_addresses.json deleted file mode 100644 index a77af37..0000000 --- a/ignition/deployments/chain-11155111/deployed_addresses.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "EngagementModule#Engagement": "0x8Ff1dd3967A87C1Eb46bd60B2BBF9D7eAA987c1B" -} diff --git a/ignition/deployments/chain-11155111/journal.jsonl b/ignition/deployments/chain-11155111/journal.jsonl deleted file mode 100644 index 64c2215..0000000 --- a/ignition/deployments/chain-11155111/journal.jsonl +++ /dev/null @@ -1,7 +0,0 @@ - -{"chainId":11155111,"type":"DEPLOYMENT_INITIALIZE"} -{"artifactId":"EngagementModule#Engagement","constructorArgs":[],"contractName":"Engagement","dependencies":[],"from":"0x0ea1cc42fde0ef6b939118ff4982a67e49b14dd3","futureId":"EngagementModule#Engagement","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"EngagementModule#Engagement","networkInteraction":{"data":"0x608060405260006004553480156200001657600080fd5b506040518060200160405280600081525062000038816200005560201b60201c565b506200004e6000801b336200006a60201b60201c565b5062000542565b80600290816200006691906200045b565b5050565b60006200007e83836200016e60201b60201c565b620001635760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620000ff620001d960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001905062000168565b600090505b92915050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200026357607f821691505b6020821081036200027957620002786200021b565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620002e37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002a4565b620002ef8683620002a4565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200033c62000336620003308462000307565b62000311565b62000307565b9050919050565b6000819050919050565b62000358836200031b565b62000370620003678262000343565b848454620002b1565b825550505050565b600090565b6200038762000378565b620003948184846200034d565b505050565b5b81811015620003bc57620003b06000826200037d565b6001810190506200039a565b5050565b601f8211156200040b57620003d5816200027f565b620003e08462000294565b81016020851015620003f0578190505b62000408620003ff8562000294565b83018262000399565b50505b505050565b600082821c905092915050565b6000620004306000198460080262000410565b1980831691505092915050565b60006200044b83836200041d565b9150826002028217905092915050565b6200046682620001e1565b67ffffffffffffffff811115620004825762000481620001ec565b5b6200048e82546200024a565b6200049b828285620003c0565b600060209050601f831160018114620004d35760008415620004be578287015190505b620004ca85826200043d565b8655506200053a565b601f198416620004e3866200027f565b60005b828110156200050d57848901518255600182019150602085019450602081019050620004e6565b868310156200052d578489015162000529601f8916826200041d565b8355505b6001600288020188555050505b505050505050565b61338280620005526000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c80634e1273f4116100b8578063a22cb4651161007c578063a22cb4651461035d578063c5afac6614610379578063d547741f146103a9578063e985e9c5146103c5578063f242432a146103f5578063f5298aca1461041157610136565b80634e1273f4146102a557806361bc221a146102d5578063731133e9146102f357806391d148541461030f578063a217fddf1461033f57610136565b806324c20a34116100ff57806324c20a34146102175780632eb2c2d6146102355780632f2ff15d1461025157806336568abe1461026d5780633cad9b0d1461028957610136565b8062fdd58e1461013b57806301ffc9a71461016b5780630e89341c1461019b5780631c4ce135146101cb578063248a9ca3146101e7575b600080fd5b61015560048036038101906101509190611eb9565b61042d565b6040516101629190611f08565b60405180910390f35b61018560048036038101906101809190611f7b565b610487565b6040516101929190611fc3565b60405180910390f35b6101b560048036038101906101b09190611fde565b61048e565b6040516101c2919061209b565b60405180910390f35b6101e560048036038101906101e091906121f2565b6104d4565b005b61020160048036038101906101fc9190612284565b610573565b60405161020e91906122c0565b60405180910390f35b61021f610593565b60405161022c91906122c0565b60405180910390f35b61024f600480360381019061024a9190612444565b6105b7565b005b61026b60048036038101906102669190612513565b61065f565b005b61028760048036038101906102829190612513565b610681565b005b6102a3600480360381019061029e9190612553565b6106fc565b005b6102bf60048036038101906102ba919061265f565b61079e565b6040516102cc9190612795565b60405180910390f35b6102dd6108a7565b6040516102ea9190611f08565b60405180910390f35b61030d600480360381019061030891906127b7565b6108b1565b005b61032960048036038101906103249190612513565b610970565b6040516103369190611fc3565b60405180910390f35b6103476109db565b60405161035491906122c0565b60405180910390f35b61037760048036038101906103729190612866565b6109e2565b005b610393600480360381019061038e91906128a6565b6109f8565b6040516103a0919061209b565b60405180910390f35b6103c360048036038101906103be9190612513565b610a4c565b005b6103df60048036038101906103da9190612915565b610a6e565b6040516103ec9190611fc3565b60405180910390f35b61040f600480360381019061040a9190612955565b610b02565b005b61042b600480360381019061042691906129ec565b610baa565b005b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000919050565b60608161049a81610c88565b600560008481526020019081526020016000206040516020016104bd9190612bda565b604051602081830303815290604052915050919050565b7f18d9ff454de989bd126b06bd404b47ede75f9e65543e94e8d212f89d7dcbb87c6104fe81610cd1565b8160066000858152602001908152602001600020908161051e9190612d9e565b50823373ffffffffffffffffffffffffffffffffffffffff167fee5e19404a9c880f5e862aeeedfa8f4b4b427864327c17888eb6a34d549e5a5584604051610566919061209b565b60405180910390a3505050565b600060036000838152602001908152602001600020600101549050919050565b7f18d9ff454de989bd126b06bd404b47ede75f9e65543e94e8d212f89d7dcbb87c81565b60006105c1610ce5565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561060657506106048682610a6e565b155b1561064a5780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610641929190612e7f565b60405180910390fd5b6106578686868686610ced565b505050505050565b61066882610573565b61067181610cd1565b61067b8383610de5565b50505050565b610689610ce5565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146106ed576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106f78282610ed7565b505050565b80600560006004548152602001908152602001600020908161071e9190612d9e565b5061073d33600454600160405180602001604052806000815250610fca565b6004543373ffffffffffffffffffffffffffffffffffffffff167fc65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c1660405160405180910390a36004600081548092919061079690612ed7565b919050555050565b606081518351146107ea57815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016107e1929190612f1f565b60405180910390fd5b6000835167ffffffffffffffff811115610807576108066120c7565b5b6040519080825280602002602001820160405280156108355781602001602082028036833780820191505090505b50905060005b845181101561089c5761087261085a828761106390919063ffffffff16565b61086d838761107790919063ffffffff16565b61042d565b82828151811061088557610884612f48565b5b60200260200101818152505080600101905061083b565b508091505092915050565b6000600454905090565b826108bb81610c88565b60006108c7868661042d565b111561090c5784846040517f788d2556000000000000000000000000000000000000000000000000000000008152600401610903929190612f77565b60405180910390fd5b6109198585600185610fca565b838573ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f60016040516109619190612fdb565b60405180910390a35050505050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b6109f46109ed610ce5565b838361108b565b5050565b606082610a0481610c88565b60066000868152602001908152602001600020610a20856111fb565b84604051602001610a3393929190613073565b6040516020818303038152906040529150509392505050565b610a5582610573565b610a5e81610cd1565b610a688383610ed7565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000610b0c610ce5565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610b515750610b4f8682610a6e565b155b15610b955780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610b8c929190612e7f565b60405180910390fd5b610ba286868686866112c9565b505050505050565b81610bb481610c88565b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610c265783836040517f8626cc03000000000000000000000000000000000000000000000000000000008152600401610c1d929190612f77565b60405180910390fd5b610c32848460016113d4565b828473ffffffffffffffffffffffffffffffffffffffff167f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a6001604051610c7a9190612fdb565b60405180910390a350505050565b6004548110610cce57806040517fc80a970c000000000000000000000000000000000000000000000000000000008152600401610cc59190611f08565b60405180910390fd5b50565b610ce281610cdd610ce5565b61147b565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610d5f5760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610d5691906130d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610dd15760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610dc891906130d0565b60405180910390fd5b610dde85858585856114cc565b5050505050565b6000610df18383610970565b610ecc5760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610e69610ce5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610ed1565b600090505b92915050565b6000610ee38383610970565b15610fbf5760006003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610f5c610ce5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050610fc4565b600090505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361103c5760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161103391906130d0565b60405180910390fd5b600080611049858561157e565b9150915061105b6000878484876114cc565b505050505050565b600060208202602084010151905092915050565b600060208202602084010151905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110fd5760006040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016110f491906130d0565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516111ee9190611fc3565b60405180910390a3505050565b60606000600161120a846115ae565b01905060008167ffffffffffffffff811115611229576112286120c7565b5b6040519080825280601f01601f19166020018201604052801561125b5781602001600182028036833780820191505090505b509050600082602001820190505b6001156112be578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816112b2576112b16130eb565b5b04945060008503611269575b819350505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361133b5760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161133291906130d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036113ad5760006040517f01a835140000000000000000000000000000000000000000000000000000000081526004016113a491906130d0565b60405180910390fd5b6000806113ba858561157e565b915091506113cb87878484876114cc565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114465760006040517f01a8351400000000000000000000000000000000000000000000000000000000815260040161143d91906130d0565b60405180910390fd5b600080611453848461157e565b915091506114748560008484604051806020016040528060008152506114cc565b5050505050565b6114858282610970565b6114c85780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016114bf92919061311a565b60405180910390fd5b5050565b6114d885858585611701565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611577576000611516610ce5565b9050600184510361156657600061153760008661107790919063ffffffff16565b9050600061154f60008661107790919063ffffffff16565b905061155f838989858589611aa9565b5050611575565b611574818787878787611c5d565b5b505b5050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061160c577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611602576116016130eb565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611649576d04ee2d6d415b85acef8100000000838161163f5761163e6130eb565b5b0492506020810190505b662386f26fc10000831061167857662386f26fc10000838161166e5761166d6130eb565b5b0492506010810190505b6305f5e10083106116a1576305f5e1008381611697576116966130eb565b5b0492506008810190505b61271083106116c65761271083816116bc576116bb6130eb565b5b0492506004810190505b606483106116e957606483816116df576116de6130eb565b5b0492506002810190505b600a83106116f8576001810190505b80915050919050565b805182511461174b57815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401611742929190612f1f565b60405180910390fd5b6000611755610ce5565b905060005b8351811015611964576000611778828661107790919063ffffffff16565b9050600061178f838661107790919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146118bc57600080600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561186457888183856040517f03dee4c500000000000000000000000000000000000000000000000000000000815260040161185b9493929190613143565b60405180910390fd5b81810360008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611957578060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461194f9190613188565b925050819055505b505080600101905061175a565b506001835103611a2357600061198460008561107790919063ffffffff16565b9050600061199c60008561107790919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611a14929190612f1f565b60405180910390a45050611aa2565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611a999291906131bc565b60405180910390a45b5050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611c55578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611b0a959493929190613248565b6020604051808303816000875af1925050508015611b4657506040513d601f19601f82011682018060405250810190611b4391906132b7565b60015b611bca573d8060008114611b76576040519150601f19603f3d011682016040523d82523d6000602084013e611b7b565b606091505b506000815103611bc257846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611bb991906130d0565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611c5357846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611c4a91906130d0565b60405180910390fd5b505b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611e09578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611cbe9594939291906132e4565b6020604051808303816000875af1925050508015611cfa57506040513d601f19601f82011682018060405250810190611cf791906132b7565b60015b611d7e573d8060008114611d2a576040519150601f19603f3d011682016040523d82523d6000602084013e611d2f565b606091505b506000815103611d7657846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611d6d91906130d0565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611e0757846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611dfe91906130d0565b60405180910390fd5b505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611e5082611e25565b9050919050565b611e6081611e45565b8114611e6b57600080fd5b50565b600081359050611e7d81611e57565b92915050565b6000819050919050565b611e9681611e83565b8114611ea157600080fd5b50565b600081359050611eb381611e8d565b92915050565b60008060408385031215611ed057611ecf611e1b565b5b6000611ede85828601611e6e565b9250506020611eef85828601611ea4565b9150509250929050565b611f0281611e83565b82525050565b6000602082019050611f1d6000830184611ef9565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611f5881611f23565b8114611f6357600080fd5b50565b600081359050611f7581611f4f565b92915050565b600060208284031215611f9157611f90611e1b565b5b6000611f9f84828501611f66565b91505092915050565b60008115159050919050565b611fbd81611fa8565b82525050565b6000602082019050611fd86000830184611fb4565b92915050565b600060208284031215611ff457611ff3611e1b565b5b600061200284828501611ea4565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561204557808201518184015260208101905061202a565b60008484015250505050565b6000601f19601f8301169050919050565b600061206d8261200b565b6120778185612016565b9350612087818560208601612027565b61209081612051565b840191505092915050565b600060208201905081810360008301526120b58184612062565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6120ff82612051565b810181811067ffffffffffffffff8211171561211e5761211d6120c7565b5b80604052505050565b6000612131611e11565b905061213d82826120f6565b919050565b600067ffffffffffffffff82111561215d5761215c6120c7565b5b61216682612051565b9050602081019050919050565b82818337600083830152505050565b600061219561219084612142565b612127565b9050828152602081018484840111156121b1576121b06120c2565b5b6121bc848285612173565b509392505050565b600082601f8301126121d9576121d86120bd565b5b81356121e9848260208601612182565b91505092915050565b6000806040838503121561220957612208611e1b565b5b600061221785828601611ea4565b925050602083013567ffffffffffffffff81111561223857612237611e20565b5b612244858286016121c4565b9150509250929050565b6000819050919050565b6122618161224e565b811461226c57600080fd5b50565b60008135905061227e81612258565b92915050565b60006020828403121561229a57612299611e1b565b5b60006122a88482850161226f565b91505092915050565b6122ba8161224e565b82525050565b60006020820190506122d560008301846122b1565b92915050565b600067ffffffffffffffff8211156122f6576122f56120c7565b5b602082029050602081019050919050565b600080fd5b600061231f61231a846122db565b612127565b9050808382526020820190506020840283018581111561234257612341612307565b5b835b8181101561236b57806123578882611ea4565b845260208401935050602081019050612344565b5050509392505050565b600082601f83011261238a576123896120bd565b5b813561239a84826020860161230c565b91505092915050565b600067ffffffffffffffff8211156123be576123bd6120c7565b5b6123c782612051565b9050602081019050919050565b60006123e76123e2846123a3565b612127565b905082815260208101848484011115612403576124026120c2565b5b61240e848285612173565b509392505050565b600082601f83011261242b5761242a6120bd565b5b813561243b8482602086016123d4565b91505092915050565b600080600080600060a086880312156124605761245f611e1b565b5b600061246e88828901611e6e565b955050602061247f88828901611e6e565b945050604086013567ffffffffffffffff8111156124a05761249f611e20565b5b6124ac88828901612375565b935050606086013567ffffffffffffffff8111156124cd576124cc611e20565b5b6124d988828901612375565b925050608086013567ffffffffffffffff8111156124fa576124f9611e20565b5b61250688828901612416565b9150509295509295909350565b6000806040838503121561252a57612529611e1b565b5b60006125388582860161226f565b925050602061254985828601611e6e565b9150509250929050565b60006020828403121561256957612568611e1b565b5b600082013567ffffffffffffffff81111561258757612586611e20565b5b612593848285016121c4565b91505092915050565b600067ffffffffffffffff8211156125b7576125b66120c7565b5b602082029050602081019050919050565b60006125db6125d68461259c565b612127565b905080838252602082019050602084028301858111156125fe576125fd612307565b5b835b8181101561262757806126138882611e6e565b845260208401935050602081019050612600565b5050509392505050565b600082601f830112612646576126456120bd565b5b81356126568482602086016125c8565b91505092915050565b6000806040838503121561267657612675611e1b565b5b600083013567ffffffffffffffff81111561269457612693611e20565b5b6126a085828601612631565b925050602083013567ffffffffffffffff8111156126c1576126c0611e20565b5b6126cd85828601612375565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61270c81611e83565b82525050565b600061271e8383612703565b60208301905092915050565b6000602082019050919050565b6000612742826126d7565b61274c81856126e2565b9350612757836126f3565b8060005b8381101561278857815161276f8882612712565b975061277a8361272a565b92505060018101905061275b565b5085935050505092915050565b600060208201905081810360008301526127af8184612737565b905092915050565b600080600080608085870312156127d1576127d0611e1b565b5b60006127df87828801611e6e565b94505060206127f087828801611ea4565b935050604061280187828801611ea4565b925050606085013567ffffffffffffffff81111561282257612821611e20565b5b61282e87828801612416565b91505092959194509250565b61284381611fa8565b811461284e57600080fd5b50565b6000813590506128608161283a565b92915050565b6000806040838503121561287d5761287c611e1b565b5b600061288b85828601611e6e565b925050602061289c85828601612851565b9150509250929050565b6000806000606084860312156128bf576128be611e1b565b5b60006128cd86828701611ea4565b93505060206128de86828701611ea4565b925050604084013567ffffffffffffffff8111156128ff576128fe611e20565b5b61290b868287016121c4565b9150509250925092565b6000806040838503121561292c5761292b611e1b565b5b600061293a85828601611e6e565b925050602061294b85828601611e6e565b9150509250929050565b600080600080600060a0868803121561297157612970611e1b565b5b600061297f88828901611e6e565b955050602061299088828901611e6e565b94505060406129a188828901611ea4565b93505060606129b288828901611ea4565b925050608086013567ffffffffffffffff8111156129d3576129d2611e20565b5b6129df88828901612416565b9150509295509295909350565b600080600060608486031215612a0557612a04611e1b565b5b6000612a1386828701611e6e565b9350506020612a2486828701611ea4565b9250506040612a3586828701611ea4565b9150509250925092565b600081905092915050565b7f697066733a2f2f00000000000000000000000000000000000000000000000000600082015250565b6000612a80600783612a3f565b9150612a8b82612a4a565b600782019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612add57607f821691505b602082108103612af057612aef612a96565b5b50919050565b60008190508160005260206000209050919050565b60008154612b1881612ac5565b612b228186612a3f565b94506001821660008114612b3d5760018114612b5257612b85565b60ff1983168652811515820286019350612b85565b612b5b85612af6565b60005b83811015612b7d57815481890152600182019150602081019050612b5e565b838801955050505b50505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b6000612bc4600583612a3f565b9150612bcf82612b8e565b600582019050919050565b6000612be582612a73565b9150612bf18284612b0b565b9150612bfc82612bb7565b915081905092915050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612c547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612c17565b612c5e8683612c17565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612c9b612c96612c9184611e83565b612c76565b611e83565b9050919050565b6000819050919050565b612cb583612c80565b612cc9612cc182612ca2565b848454612c24565b825550505050565b600090565b612cde612cd1565b612ce9818484612cac565b505050565b5b81811015612d0d57612d02600082612cd6565b600181019050612cef565b5050565b601f821115612d5257612d2381612af6565b612d2c84612c07565b81016020851015612d3b578190505b612d4f612d4785612c07565b830182612cee565b50505b505050565b600082821c905092915050565b6000612d7560001984600802612d57565b1980831691505092915050565b6000612d8e8383612d64565b9150826002028217905092915050565b612da78261200b565b67ffffffffffffffff811115612dc057612dbf6120c7565b5b612dca8254612ac5565b612dd5828285612d11565b600060209050601f831160018114612e085760008415612df6578287015190505b612e008582612d82565b865550612e68565b601f198416612e1686612af6565b60005b82811015612e3e57848901518255600182019150602085019450602081019050612e19565b86831015612e5b5784890151612e57601f891682612d64565b8355505b6001600288020188555050505b505050505050565b612e7981611e45565b82525050565b6000604082019050612e946000830185612e70565b612ea16020830184612e70565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ee282611e83565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f1457612f13612ea8565b5b600182019050919050565b6000604082019050612f346000830185611ef9565b612f416020830184611ef9565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050612f8c6000830185612e70565b612f996020830184611ef9565b9392505050565b6000819050919050565b6000612fc5612fc0612fbb84612fa0565b612c76565b611e83565b9050919050565b612fd581612faa565b82525050565b6000602082019050612ff06000830184612fcc565b92915050565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b600061302c600183612a3f565b915061303782612ff6565b600182019050919050565b600061304d8261200b565b6130578185612a3f565b9350613067818560208601612027565b80840191505092915050565b600061307e82612a73565b915061308a8286612b0b565b91506130958261301f565b91506130a18285613042565b91506130ac8261301f565b91506130b88284613042565b91506130c382612bb7565b9150819050949350505050565b60006020820190506130e56000830184612e70565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600060408201905061312f6000830185612e70565b61313c60208301846122b1565b9392505050565b60006080820190506131586000830187612e70565b6131656020830186611ef9565b6131726040830185611ef9565b61317f6060830184611ef9565b95945050505050565b600061319382611e83565b915061319e83611e83565b92508282019050808211156131b6576131b5612ea8565b5b92915050565b600060408201905081810360008301526131d68185612737565b905081810360208301526131ea8184612737565b90509392505050565b600081519050919050565b600082825260208201905092915050565b600061321a826131f3565b61322481856131fe565b9350613234818560208601612027565b61323d81612051565b840191505092915050565b600060a08201905061325d6000830188612e70565b61326a6020830187612e70565b6132776040830186611ef9565b6132846060830185611ef9565b8181036080830152613296818461320f565b90509695505050505050565b6000815190506132b181611f4f565b92915050565b6000602082840312156132cd576132cc611e1b565b5b60006132db848285016132a2565b91505092915050565b600060a0820190506132f96000830188612e70565b6133066020830187612e70565b81810360408301526133188186612737565b9050818103606083015261332c8185612737565b90508181036080830152613340818461320f565b9050969550505050505056fea2646970667358221220294f8401608e8b44e40d642ddeddde899f8a456400db1a2f81df9ef8d59242d564736f6c63430008180033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} -{"futureId":"EngagementModule#Engagement","networkInteractionId":1,"nonce":10,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"7890896461"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"730315115"}},"hash":"0x1bf3b8a0c507a6769eac60b49c0d66183d70c81709ca8e519091de670b71214a"},"type":"TRANSACTION_SEND"} -{"futureId":"EngagementModule#Engagement","hash":"0x1bf3b8a0c507a6769eac60b49c0d66183d70c81709ca8e519091de670b71214a","networkInteractionId":1,"receipt":{"blockHash":"0x2fb1c2432718a5798ded2ab88ebc453813a3c41741238be7527fd8491639132e","blockNumber":6057770,"contractAddress":"0x8Ff1dd3967A87C1Eb46bd60B2BBF9D7eAA987c1B","logs":[{"address":"0x8Ff1dd3967A87C1Eb46bd60B2BBF9D7eAA987c1B","data":"0x","logIndex":158,"topics":["0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d","0x0000000000000000000000000000000000000000000000000000000000000000","0x0000000000000000000000000ea1cc42fde0ef6b939118ff4982a67e49b14dd3","0x0000000000000000000000000ea1cc42fde0ef6b939118ff4982a67e49b14dd3"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"EngagementModule#Engagement","result":{"address":"0x8Ff1dd3967A87C1Eb46bd60B2BBF9D7eAA987c1B","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} \ No newline at end of file diff --git a/ignition/deployments/chain-11155420/artifacts/EngagementModule#Engagement.dbg.json b/ignition/deployments/chain-11155420/artifacts/EngagementModule#Engagement.dbg.json new file mode 100644 index 0000000..15719ca --- /dev/null +++ b/ignition/deployments/chain-11155420/artifacts/EngagementModule#Engagement.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../build-info/4e58f17c75b86363e11bf0ecd1dbfa6a.json" +} \ No newline at end of file diff --git a/ignition/deployments/chain-11155420/artifacts/EngagementModule#Engagement.json b/ignition/deployments/chain-11155420/artifacts/EngagementModule#Engagement.json new file mode 100644 index 0000000..6fde0be --- /dev/null +++ b/ignition/deployments/chain-11155420/artifacts/EngagementModule#Engagement.json @@ -0,0 +1,903 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Engagement", + "sourceName": "contracts/Engagement.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "tokenURI_", + "type": "string" + } + ], + "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": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC1155InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC1155InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idsLength", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "valuesLength", + "type": "uint256" + } + ], + "name": "ERC1155InvalidArrayLength", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC1155InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC1155InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC1155InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC1155MissingApprovalForAll", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "message", + "type": "string" + } + ], + "name": "EmptyAccountNotAllowed", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "MintLimit", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "NotAllowed", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "NotFound", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "message", + "type": "string" + } + ], + "name": "URIEmpty", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "oldURI", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "newURI", + "type": "string" + } + ], + "name": "BaseURIUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Burn", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Issue", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Mint", + "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": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + } + ], + "name": "TransferBatch", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "TransferSingle", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "value", + "type": "string" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "URI", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "accounts", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + } + ], + "name": "balanceOfBatch", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "counter", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "issue", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "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": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeBatchTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "newURI", + "type": "string" + } + ], + "name": "updateBaseURI", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "uri", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "string", + "name": "account", + "type": "string" + } + ], + "name": "uri", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50604051613edb380380613edb833981810160405281019061003291906103cb565b604051806020016040528060008152506100518161008b60201b60201c565b506100618161009e60201b60201c565b6100746000801b336100e560201b60201c565b5080600590816100849190610635565b5050610784565b806002908161009a9190610635565b5050565b60008151036100e2576040517f1897cf660000000000000000000000000000000000000000000000000000000081526004016100d990610764565b60405180910390fd5b50565b60006100f783836101e360201b60201c565b6101d85760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061017561024e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506101dd565b600090505b92915050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6102bd82610274565b810181811067ffffffffffffffff821117156102dc576102db610285565b5b80604052505050565b60006102ef610256565b90506102fb82826102b4565b919050565b600067ffffffffffffffff82111561031b5761031a610285565b5b61032482610274565b9050602081019050919050565b60005b8381101561034f578082015181840152602081019050610334565b60008484015250505050565b600061036e61036984610300565b6102e5565b90508281526020810184848401111561038a5761038961026f565b5b610395848285610331565b509392505050565b600082601f8301126103b2576103b161026a565b5b81516103c284826020860161035b565b91505092915050565b6000602082840312156103e1576103e0610260565b5b600082015167ffffffffffffffff8111156103ff576103fe610265565b5b61040b8482850161039d565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061046657607f821691505b6020821081036104795761047861041f565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026104e17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826104a4565b6104eb86836104a4565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600061053261052d61052884610503565b61050d565b610503565b9050919050565b6000819050919050565b61054c83610517565b61056061055882610539565b8484546104b1565b825550505050565b600090565b610575610568565b610580818484610543565b505050565b5b818110156105a45761059960008261056d565b600181019050610586565b5050565b601f8211156105e9576105ba8161047f565b6105c384610494565b810160208510156105d2578190505b6105e66105de85610494565b830182610585565b50505b505050565b600082821c905092915050565b600061060c600019846008026105ee565b1980831691505092915050565b600061062583836105fb565b9150826002028217905092915050565b61063e82610414565b67ffffffffffffffff81111561065757610656610285565b5b610661825461044e565b61066c8282856105a8565b600060209050601f83116001811461069f576000841561068d578287015190505b6106978582610619565b8655506106ff565b601f1984166106ad8661047f565b60005b828110156106d5578489015182556001820191506020850194506020810190506106b0565b868310156106f257848901516106ee601f8916826105fb565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f5552492063616e6e6f7420626520656d70747900000000000000000000000000600082015250565b600061074e601383610707565b915061075982610718565b602082019050919050565b6000602082019050818103600083015261077d81610741565b9050919050565b613748806107936000396000f3fe608060405234801561001057600080fd5b506004361061012b5760003560e01c806376b676f1116100ad578063d383f64611610071578063d383f64614610364578063d547741f1461036e578063e985e9c51461038a578063f242432a146103ba578063f5298aca146103d65761012b565b806376b676f1146102ae57806391d14854146102de578063931688cb1461030e578063a217fddf1461032a578063a22cb465146103485761012b565b80632f2ff15d116100f45780632f2ff15d1461020c57806336568abe146102285780634e1273f41461024457806361bc221a14610274578063731133e9146102925761012b565b8062fdd58e1461013057806301ffc9a7146101605780630e89341c14610190578063248a9ca3146101c05780632eb2c2d6146101f0575b600080fd5b61014a600480360381019061014591906121b1565b6103f2565b6040516101579190612200565b60405180910390f35b61017a60048036038101906101759190612273565b61044c565b60405161018791906122bb565b60405180910390f35b6101aa60048036038101906101a591906122d6565b61048c565b6040516101b79190612393565b60405180910390f35b6101da60048036038101906101d591906123eb565b610520565b6040516101e79190612427565b60405180910390f35b61020a6004803603810190610205919061263f565b610540565b005b6102266004803603810190610221919061270e565b6105e8565b005b610242600480360381019061023d919061270e565b61060a565b005b61025e60048036038101906102599190612811565b610685565b60405161026b9190612947565b60405180910390f35b61027c61078e565b6040516102899190612200565b60405180910390f35b6102ac60048036038101906102a79190612969565b610798565b005b6102c860048036038101906102c39190612a8d565b610856565b6040516102d59190612393565b60405180910390f35b6102f860048036038101906102f3919061270e565b6108de565b60405161030591906122bb565b60405180910390f35b61032860048036038101906103239190612ae9565b610949565b005b6103326109ad565b60405161033f9190612427565b60405180910390f35b610362600480360381019061035d9190612b5e565b6109b4565b005b61036c6109ca565b005b6103886004803603810190610383919061270e565b610a47565b005b6103a4600480360381019061039f9190612b9e565b610a69565b6040516103b191906122bb565b60405180910390f35b6103d460048036038101906103cf9190612bde565b610afd565b005b6103f060048036038101906103eb9190612c75565b610ba5565b005b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061046d3073ffffffffffffffffffffffffffffffffffffffff16610c87565b156104825761047b82610cd4565b9050610487565b600090505b919050565b60606002805461049b90612cf7565b80601f01602080910402602001604051908101604052809291908181526020018280546104c790612cf7565b80156105145780601f106104e957610100808354040283529160200191610514565b820191906000526020600020905b8154815290600101906020018083116104f757829003601f168201915b50505050509050919050565b600060036000838152602001908152602001600020600101549050919050565b600061054a610d4e565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561058f575061058d8682610a69565b155b156105d35780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016105ca929190612d37565b60405180910390fd5b6105e08686868686610d56565b505050505050565b6105f182610520565b6105fa81610e4e565b6106048383610e62565b50505050565b610612610d4e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610676576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106808282610f54565b505050565b606081518351146106d157815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016106c8929190612d60565b60405180910390fd5b6000835167ffffffffffffffff8111156106ee576106ed612447565b5b60405190808252806020026020018201604052801561071c5781602001602082028036833780820191505090505b50905060005b845181101561078357610759610741828761104790919063ffffffff16565b610754838761105b90919063ffffffff16565b6103f2565b82828151811061076c5761076b612d89565b5b602002602001018181525050806001019050610722565b508091505092915050565b6000600454905090565b826107a28161106f565b60016107ae86866103f2565b106107f25784846040517f788d25560000000000000000000000000000000000000000000000000000000081526004016107e9929190612db8565b60405180910390fd5b6107ff85856001856110b8565b838573ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f60016040516108479190612e26565b60405180910390a35050505050565b6060826108628161106f565b8260008151036108a7576040517fc29f9db300000000000000000000000000000000000000000000000000000000815260040161089e90612e8d565b60405180910390fd5b60056108b286611151565b856040516020016108c593929190613065565b6040516020818303038152906040529250505092915050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b61095681610e4e565b61095f8261121f565b7f309b29ded109b9e28fb9885757b3e0096eb75c51d23aa4635d68bcd569f6adc160058360405161099192919061313b565b60405180910390a181600590816109a891906132ff565b505050565b6000801b81565b6109c66109bf610d4e565b8383611266565b5050565b600060045490506109ed33826001604051806020016040528060008152506110b8565b803373ffffffffffffffffffffffffffffffffffffffff167fc65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c1660405160405180910390a3600181610a3e9190613400565b60048190555050565b610a5082610520565b610a5981610e4e565b610a638383610f54565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000610b07610d4e565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610b4c5750610b4a8682610a69565b155b15610b905780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610b87929190612d37565b60405180910390fd5b610b9d86868686866113d6565b505050505050565b81610baf8161106f565b83833373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610c235781816040517f8626cc03000000000000000000000000000000000000000000000000000000008152600401610c1a929190612db8565b60405180910390fd5b610c2f868660016114e1565b848673ffffffffffffffffffffffffffffffffffffffff167f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a6001604051610c779190612e26565b60405180910390a3505050505050565b6000610cb3827f01ffc9a700000000000000000000000000000000000000000000000000000000611588565b8015610ccd5750610ccb8263ffffffff60e01b611588565b155b9050919050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610d475750610d4682611627565b5b9050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610dc85760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610dbf9190613434565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610e3a5760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610e319190613434565b60405180910390fd5b610e478585858585611709565b5050505050565b610e5f81610e5a610d4e565b6117bb565b50565b6000610e6e83836108de565b610f495760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610ee6610d4e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610f4e565b600090505b92915050565b6000610f6083836108de565b1561103c5760006003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610fd9610d4e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611041565b600090505b92915050565b600060208202602084010151905092915050565b600060208202602084010151905092915050565b60045481106110b557806040517fc80a970c0000000000000000000000000000000000000000000000000000000081526004016110ac9190612200565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361112a5760006040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016111219190613434565b60405180910390fd5b600080611137858561180c565b91509150611149600087848487611709565b505050505050565b6060600060016111608461183c565b01905060008167ffffffffffffffff81111561117f5761117e612447565b5b6040519080825280601f01601f1916602001820160405280156111b15781602001600182028036833780820191505090505b509050600082602001820190505b600115611214578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816112085761120761344f565b5b049450600085036111bf575b819350505050919050565b6000815103611263576040517f1897cf6600000000000000000000000000000000000000000000000000000000815260040161125a906134ca565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112d85760006040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016112cf9190613434565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516113c991906122bb565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036114485760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161143f9190613434565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036114ba5760006040517f01a835140000000000000000000000000000000000000000000000000000000081526004016114b19190613434565b60405180910390fd5b6000806114c7858561180c565b915091506114d88787848487611709565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115535760006040517f01a8351400000000000000000000000000000000000000000000000000000000815260040161154a9190613434565b60405180910390fd5b600080611560848461180c565b91509150611581856000848460405180602001604052806000815250611709565b5050505050565b6000808260405160240161159c91906134f9565b6040516020818303038152906040526301ffc9a760e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000806000602060008551602087018a617530fa92503d9150600051905082801561160f575060208210155b801561161b5750600081115b94505050505092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806116f257507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061170257506117018261198f565b5b9050919050565b611715858585856119f9565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146117b4576000611753610d4e565b905060018451036117a357600061177460008661105b90919063ffffffff16565b9050600061178c60008661105b90919063ffffffff16565b905061179c838989858589611da1565b50506117b2565b6117b1818787878787611f55565b5b505b5050505050565b6117c582826108de565b6118085780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016117ff929190613514565b60405180910390fd5b5050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061189a577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816118905761188f61344f565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106118d7576d04ee2d6d415b85acef810000000083816118cd576118cc61344f565b5b0492506020810190505b662386f26fc10000831061190657662386f26fc1000083816118fc576118fb61344f565b5b0492506010810190505b6305f5e100831061192f576305f5e10083816119255761192461344f565b5b0492506008810190505b612710831061195457612710838161194a5761194961344f565b5b0492506004810190505b60648310611977576064838161196d5761196c61344f565b5b0492506002810190505b600a8310611986576001810190505b80915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b8051825114611a4357815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401611a3a929190612d60565b60405180910390fd5b6000611a4d610d4e565b905060005b8351811015611c5c576000611a70828661105b90919063ffffffff16565b90506000611a87838661105b90919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611bb457600080600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611b5c57888183856040517f03dee4c5000000000000000000000000000000000000000000000000000000008152600401611b53949392919061353d565b60405180910390fd5b81810360008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611c4f578060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c479190613400565b925050819055505b5050806001019050611a52565b506001835103611d1b576000611c7c60008561105b90919063ffffffff16565b90506000611c9460008561105b90919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611d0c929190612d60565b60405180910390a45050611d9a565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611d91929190613582565b60405180910390a45b5050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611f4d578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611e0295949392919061360e565b6020604051808303816000875af1925050508015611e3e57506040513d601f19601f82011682018060405250810190611e3b919061367d565b60015b611ec2573d8060008114611e6e576040519150601f19603f3d011682016040523d82523d6000602084013e611e73565b606091505b506000815103611eba57846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611eb19190613434565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611f4b57846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611f429190613434565b60405180910390fd5b505b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115612101578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611fb69594939291906136aa565b6020604051808303816000875af1925050508015611ff257506040513d601f19601f82011682018060405250810190611fef919061367d565b60015b612076573d8060008114612022576040519150601f19603f3d011682016040523d82523d6000602084013e612027565b606091505b50600081510361206e57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016120659190613434565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146120ff57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016120f69190613434565b60405180910390fd5b505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121488261211d565b9050919050565b6121588161213d565b811461216357600080fd5b50565b6000813590506121758161214f565b92915050565b6000819050919050565b61218e8161217b565b811461219957600080fd5b50565b6000813590506121ab81612185565b92915050565b600080604083850312156121c8576121c7612113565b5b60006121d685828601612166565b92505060206121e78582860161219c565b9150509250929050565b6121fa8161217b565b82525050565b600060208201905061221560008301846121f1565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6122508161221b565b811461225b57600080fd5b50565b60008135905061226d81612247565b92915050565b60006020828403121561228957612288612113565b5b60006122978482850161225e565b91505092915050565b60008115159050919050565b6122b5816122a0565b82525050565b60006020820190506122d060008301846122ac565b92915050565b6000602082840312156122ec576122eb612113565b5b60006122fa8482850161219c565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561233d578082015181840152602081019050612322565b60008484015250505050565b6000601f19601f8301169050919050565b600061236582612303565b61236f818561230e565b935061237f81856020860161231f565b61238881612349565b840191505092915050565b600060208201905081810360008301526123ad818461235a565b905092915050565b6000819050919050565b6123c8816123b5565b81146123d357600080fd5b50565b6000813590506123e5816123bf565b92915050565b60006020828403121561240157612400612113565b5b600061240f848285016123d6565b91505092915050565b612421816123b5565b82525050565b600060208201905061243c6000830184612418565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61247f82612349565b810181811067ffffffffffffffff8211171561249e5761249d612447565b5b80604052505050565b60006124b1612109565b90506124bd8282612476565b919050565b600067ffffffffffffffff8211156124dd576124dc612447565b5b602082029050602081019050919050565b600080fd5b6000612506612501846124c2565b6124a7565b90508083825260208201905060208402830185811115612529576125286124ee565b5b835b81811015612552578061253e888261219c565b84526020840193505060208101905061252b565b5050509392505050565b600082601f83011261257157612570612442565b5b81356125818482602086016124f3565b91505092915050565b600080fd5b600067ffffffffffffffff8211156125aa576125a9612447565b5b6125b382612349565b9050602081019050919050565b82818337600083830152505050565b60006125e26125dd8461258f565b6124a7565b9050828152602081018484840111156125fe576125fd61258a565b5b6126098482856125c0565b509392505050565b600082601f83011261262657612625612442565b5b81356126368482602086016125cf565b91505092915050565b600080600080600060a0868803121561265b5761265a612113565b5b600061266988828901612166565b955050602061267a88828901612166565b945050604086013567ffffffffffffffff81111561269b5761269a612118565b5b6126a78882890161255c565b935050606086013567ffffffffffffffff8111156126c8576126c7612118565b5b6126d48882890161255c565b925050608086013567ffffffffffffffff8111156126f5576126f4612118565b5b61270188828901612611565b9150509295509295909350565b6000806040838503121561272557612724612113565b5b6000612733858286016123d6565b925050602061274485828601612166565b9150509250929050565b600067ffffffffffffffff82111561276957612768612447565b5b602082029050602081019050919050565b600061278d6127888461274e565b6124a7565b905080838252602082019050602084028301858111156127b0576127af6124ee565b5b835b818110156127d957806127c58882612166565b8452602084019350506020810190506127b2565b5050509392505050565b600082601f8301126127f8576127f7612442565b5b813561280884826020860161277a565b91505092915050565b6000806040838503121561282857612827612113565b5b600083013567ffffffffffffffff81111561284657612845612118565b5b612852858286016127e3565b925050602083013567ffffffffffffffff81111561287357612872612118565b5b61287f8582860161255c565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6128be8161217b565b82525050565b60006128d083836128b5565b60208301905092915050565b6000602082019050919050565b60006128f482612889565b6128fe8185612894565b9350612909836128a5565b8060005b8381101561293a57815161292188826128c4565b975061292c836128dc565b92505060018101905061290d565b5085935050505092915050565b6000602082019050818103600083015261296181846128e9565b905092915050565b6000806000806080858703121561298357612982612113565b5b600061299187828801612166565b94505060206129a28782880161219c565b93505060406129b38782880161219c565b925050606085013567ffffffffffffffff8111156129d4576129d3612118565b5b6129e087828801612611565b91505092959194509250565b600067ffffffffffffffff821115612a0757612a06612447565b5b612a1082612349565b9050602081019050919050565b6000612a30612a2b846129ec565b6124a7565b905082815260208101848484011115612a4c57612a4b61258a565b5b612a578482856125c0565b509392505050565b600082601f830112612a7457612a73612442565b5b8135612a84848260208601612a1d565b91505092915050565b60008060408385031215612aa457612aa3612113565b5b6000612ab28582860161219c565b925050602083013567ffffffffffffffff811115612ad357612ad2612118565b5b612adf85828601612a5f565b9150509250929050565b600060208284031215612aff57612afe612113565b5b600082013567ffffffffffffffff811115612b1d57612b1c612118565b5b612b2984828501612a5f565b91505092915050565b612b3b816122a0565b8114612b4657600080fd5b50565b600081359050612b5881612b32565b92915050565b60008060408385031215612b7557612b74612113565b5b6000612b8385828601612166565b9250506020612b9485828601612b49565b9150509250929050565b60008060408385031215612bb557612bb4612113565b5b6000612bc385828601612166565b9250506020612bd485828601612166565b9150509250929050565b600080600080600060a08688031215612bfa57612bf9612113565b5b6000612c0888828901612166565b9550506020612c1988828901612166565b9450506040612c2a8882890161219c565b9350506060612c3b8882890161219c565b925050608086013567ffffffffffffffff811115612c5c57612c5b612118565b5b612c6888828901612611565b9150509295509295909350565b600080600060608486031215612c8e57612c8d612113565b5b6000612c9c86828701612166565b9350506020612cad8682870161219c565b9250506040612cbe8682870161219c565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612d0f57607f821691505b602082108103612d2257612d21612cc8565b5b50919050565b612d318161213d565b82525050565b6000604082019050612d4c6000830185612d28565b612d596020830184612d28565b9392505050565b6000604082019050612d7560008301856121f1565b612d8260208301846121f1565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050612dcd6000830185612d28565b612dda60208301846121f1565b9392505050565b6000819050919050565b6000819050919050565b6000612e10612e0b612e0684612de1565b612deb565b61217b565b9050919050565b612e2081612df5565b82525050565b6000602082019050612e3b6000830184612e17565b92915050565b7f4163636f756e742063616e6e6f7420626520656d707479000000000000000000600082015250565b6000612e7760178361230e565b9150612e8282612e41565b602082019050919050565b60006020820190508181036000830152612ea681612e6a565b9050919050565b600081905092915050565b60008190508160005260206000209050919050565b60008154612eda81612cf7565b612ee48186612ead565b94506001821660008114612eff5760018114612f1457612f47565b60ff1983168652811515820286019350612f47565b612f1d85612eb8565b60005b83811015612f3f57815481890152600182019150602081019050612f20565b838801955050505b50505092915050565b7f2f6170692f76312f6e66742f0000000000000000000000000000000000000000600082015250565b6000612f86600c83612ead565b9150612f9182612f50565b600c82019050919050565b6000612fa782612303565b612fb18185612ead565b9350612fc181856020860161231f565b80840191505092915050565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b6000613003600183612ead565b915061300e82612fcd565b600182019050919050565b7f2f72657075746174696f6e2d73636f7265000000000000000000000000000000600082015250565b600061304f601183612ead565b915061305a82613019565b601182019050919050565b60006130718286612ecd565b915061307c82612f79565b91506130888285612f9c565b915061309382612ff6565b915061309f8284612f9c565b91506130aa82613042565b9150819050949350505050565b600081546130c481612cf7565b6130ce818661230e565b945060018216600081146130e957600181146130ff57613132565b60ff198316865281151560200286019350613132565b61310885612eb8565b60005b8381101561312a5781548189015260018201915060208101905061310b565b808801955050505b50505092915050565b6000604082019050818103600083015261315581856130b7565b90508181036020830152613169818461235a565b90509392505050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026131bf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613182565b6131c98683613182565b95508019841693508086168417925050509392505050565b60006131fc6131f76131f28461217b565b612deb565b61217b565b9050919050565b6000819050919050565b613216836131e1565b61322a61322282613203565b84845461318f565b825550505050565b600090565b61323f613232565b61324a81848461320d565b505050565b5b8181101561326e57613263600082613237565b600181019050613250565b5050565b601f8211156132b35761328481612eb8565b61328d84613172565b8101602085101561329c578190505b6132b06132a885613172565b83018261324f565b50505b505050565b600082821c905092915050565b60006132d6600019846008026132b8565b1980831691505092915050565b60006132ef83836132c5565b9150826002028217905092915050565b61330882612303565b67ffffffffffffffff81111561332157613320612447565b5b61332b8254612cf7565b613336828285613272565b600060209050601f8311600181146133695760008415613357578287015190505b61336185826132e3565b8655506133c9565b601f19841661337786612eb8565b60005b8281101561339f5784890151825560018201915060208501945060208101905061337a565b868310156133bc57848901516133b8601f8916826132c5565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061340b8261217b565b91506134168361217b565b925082820190508082111561342e5761342d6133d1565b5b92915050565b60006020820190506134496000830184612d28565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f5552492063616e6e6f7420626520656d70747900000000000000000000000000600082015250565b60006134b460138361230e565b91506134bf8261347e565b602082019050919050565b600060208201905081810360008301526134e3816134a7565b9050919050565b6134f38161221b565b82525050565b600060208201905061350e60008301846134ea565b92915050565b60006040820190506135296000830185612d28565b6135366020830184612418565b9392505050565b60006080820190506135526000830187612d28565b61355f60208301866121f1565b61356c60408301856121f1565b61357960608301846121f1565b95945050505050565b6000604082019050818103600083015261359c81856128e9565b905081810360208301526135b081846128e9565b90509392505050565b600081519050919050565b600082825260208201905092915050565b60006135e0826135b9565b6135ea81856135c4565b93506135fa81856020860161231f565b61360381612349565b840191505092915050565b600060a0820190506136236000830188612d28565b6136306020830187612d28565b61363d60408301866121f1565b61364a60608301856121f1565b818103608083015261365c81846135d5565b90509695505050505050565b60008151905061367781612247565b92915050565b60006020828403121561369357613692612113565b5b60006136a184828501613668565b91505092915050565b600060a0820190506136bf6000830188612d28565b6136cc6020830187612d28565b81810360408301526136de81866128e9565b905081810360608301526136f281856128e9565b9050818103608083015261370681846135d5565b9050969550505050505056fea2646970667358221220240e9a7daab5d9eba2793e75f4bbf0e9a74f133868ac14d5e9561767bb722e8264736f6c634300081a0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061012b5760003560e01c806376b676f1116100ad578063d383f64611610071578063d383f64614610364578063d547741f1461036e578063e985e9c51461038a578063f242432a146103ba578063f5298aca146103d65761012b565b806376b676f1146102ae57806391d14854146102de578063931688cb1461030e578063a217fddf1461032a578063a22cb465146103485761012b565b80632f2ff15d116100f45780632f2ff15d1461020c57806336568abe146102285780634e1273f41461024457806361bc221a14610274578063731133e9146102925761012b565b8062fdd58e1461013057806301ffc9a7146101605780630e89341c14610190578063248a9ca3146101c05780632eb2c2d6146101f0575b600080fd5b61014a600480360381019061014591906121b1565b6103f2565b6040516101579190612200565b60405180910390f35b61017a60048036038101906101759190612273565b61044c565b60405161018791906122bb565b60405180910390f35b6101aa60048036038101906101a591906122d6565b61048c565b6040516101b79190612393565b60405180910390f35b6101da60048036038101906101d591906123eb565b610520565b6040516101e79190612427565b60405180910390f35b61020a6004803603810190610205919061263f565b610540565b005b6102266004803603810190610221919061270e565b6105e8565b005b610242600480360381019061023d919061270e565b61060a565b005b61025e60048036038101906102599190612811565b610685565b60405161026b9190612947565b60405180910390f35b61027c61078e565b6040516102899190612200565b60405180910390f35b6102ac60048036038101906102a79190612969565b610798565b005b6102c860048036038101906102c39190612a8d565b610856565b6040516102d59190612393565b60405180910390f35b6102f860048036038101906102f3919061270e565b6108de565b60405161030591906122bb565b60405180910390f35b61032860048036038101906103239190612ae9565b610949565b005b6103326109ad565b60405161033f9190612427565b60405180910390f35b610362600480360381019061035d9190612b5e565b6109b4565b005b61036c6109ca565b005b6103886004803603810190610383919061270e565b610a47565b005b6103a4600480360381019061039f9190612b9e565b610a69565b6040516103b191906122bb565b60405180910390f35b6103d460048036038101906103cf9190612bde565b610afd565b005b6103f060048036038101906103eb9190612c75565b610ba5565b005b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061046d3073ffffffffffffffffffffffffffffffffffffffff16610c87565b156104825761047b82610cd4565b9050610487565b600090505b919050565b60606002805461049b90612cf7565b80601f01602080910402602001604051908101604052809291908181526020018280546104c790612cf7565b80156105145780601f106104e957610100808354040283529160200191610514565b820191906000526020600020905b8154815290600101906020018083116104f757829003601f168201915b50505050509050919050565b600060036000838152602001908152602001600020600101549050919050565b600061054a610d4e565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561058f575061058d8682610a69565b155b156105d35780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016105ca929190612d37565b60405180910390fd5b6105e08686868686610d56565b505050505050565b6105f182610520565b6105fa81610e4e565b6106048383610e62565b50505050565b610612610d4e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610676576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106808282610f54565b505050565b606081518351146106d157815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016106c8929190612d60565b60405180910390fd5b6000835167ffffffffffffffff8111156106ee576106ed612447565b5b60405190808252806020026020018201604052801561071c5781602001602082028036833780820191505090505b50905060005b845181101561078357610759610741828761104790919063ffffffff16565b610754838761105b90919063ffffffff16565b6103f2565b82828151811061076c5761076b612d89565b5b602002602001018181525050806001019050610722565b508091505092915050565b6000600454905090565b826107a28161106f565b60016107ae86866103f2565b106107f25784846040517f788d25560000000000000000000000000000000000000000000000000000000081526004016107e9929190612db8565b60405180910390fd5b6107ff85856001856110b8565b838573ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f60016040516108479190612e26565b60405180910390a35050505050565b6060826108628161106f565b8260008151036108a7576040517fc29f9db300000000000000000000000000000000000000000000000000000000815260040161089e90612e8d565b60405180910390fd5b60056108b286611151565b856040516020016108c593929190613065565b6040516020818303038152906040529250505092915050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b61095681610e4e565b61095f8261121f565b7f309b29ded109b9e28fb9885757b3e0096eb75c51d23aa4635d68bcd569f6adc160058360405161099192919061313b565b60405180910390a181600590816109a891906132ff565b505050565b6000801b81565b6109c66109bf610d4e565b8383611266565b5050565b600060045490506109ed33826001604051806020016040528060008152506110b8565b803373ffffffffffffffffffffffffffffffffffffffff167fc65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c1660405160405180910390a3600181610a3e9190613400565b60048190555050565b610a5082610520565b610a5981610e4e565b610a638383610f54565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000610b07610d4e565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610b4c5750610b4a8682610a69565b155b15610b905780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610b87929190612d37565b60405180910390fd5b610b9d86868686866113d6565b505050505050565b81610baf8161106f565b83833373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610c235781816040517f8626cc03000000000000000000000000000000000000000000000000000000008152600401610c1a929190612db8565b60405180910390fd5b610c2f868660016114e1565b848673ffffffffffffffffffffffffffffffffffffffff167f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a6001604051610c779190612e26565b60405180910390a3505050505050565b6000610cb3827f01ffc9a700000000000000000000000000000000000000000000000000000000611588565b8015610ccd5750610ccb8263ffffffff60e01b611588565b155b9050919050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610d475750610d4682611627565b5b9050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610dc85760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610dbf9190613434565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610e3a5760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610e319190613434565b60405180910390fd5b610e478585858585611709565b5050505050565b610e5f81610e5a610d4e565b6117bb565b50565b6000610e6e83836108de565b610f495760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610ee6610d4e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610f4e565b600090505b92915050565b6000610f6083836108de565b1561103c5760006003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610fd9610d4e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611041565b600090505b92915050565b600060208202602084010151905092915050565b600060208202602084010151905092915050565b60045481106110b557806040517fc80a970c0000000000000000000000000000000000000000000000000000000081526004016110ac9190612200565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361112a5760006040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016111219190613434565b60405180910390fd5b600080611137858561180c565b91509150611149600087848487611709565b505050505050565b6060600060016111608461183c565b01905060008167ffffffffffffffff81111561117f5761117e612447565b5b6040519080825280601f01601f1916602001820160405280156111b15781602001600182028036833780820191505090505b509050600082602001820190505b600115611214578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816112085761120761344f565b5b049450600085036111bf575b819350505050919050565b6000815103611263576040517f1897cf6600000000000000000000000000000000000000000000000000000000815260040161125a906134ca565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112d85760006040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016112cf9190613434565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516113c991906122bb565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036114485760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161143f9190613434565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036114ba5760006040517f01a835140000000000000000000000000000000000000000000000000000000081526004016114b19190613434565b60405180910390fd5b6000806114c7858561180c565b915091506114d88787848487611709565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115535760006040517f01a8351400000000000000000000000000000000000000000000000000000000815260040161154a9190613434565b60405180910390fd5b600080611560848461180c565b91509150611581856000848460405180602001604052806000815250611709565b5050505050565b6000808260405160240161159c91906134f9565b6040516020818303038152906040526301ffc9a760e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000806000602060008551602087018a617530fa92503d9150600051905082801561160f575060208210155b801561161b5750600081115b94505050505092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806116f257507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061170257506117018261198f565b5b9050919050565b611715858585856119f9565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146117b4576000611753610d4e565b905060018451036117a357600061177460008661105b90919063ffffffff16565b9050600061178c60008661105b90919063ffffffff16565b905061179c838989858589611da1565b50506117b2565b6117b1818787878787611f55565b5b505b5050505050565b6117c582826108de565b6118085780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016117ff929190613514565b60405180910390fd5b5050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061189a577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816118905761188f61344f565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106118d7576d04ee2d6d415b85acef810000000083816118cd576118cc61344f565b5b0492506020810190505b662386f26fc10000831061190657662386f26fc1000083816118fc576118fb61344f565b5b0492506010810190505b6305f5e100831061192f576305f5e10083816119255761192461344f565b5b0492506008810190505b612710831061195457612710838161194a5761194961344f565b5b0492506004810190505b60648310611977576064838161196d5761196c61344f565b5b0492506002810190505b600a8310611986576001810190505b80915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b8051825114611a4357815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401611a3a929190612d60565b60405180910390fd5b6000611a4d610d4e565b905060005b8351811015611c5c576000611a70828661105b90919063ffffffff16565b90506000611a87838661105b90919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611bb457600080600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611b5c57888183856040517f03dee4c5000000000000000000000000000000000000000000000000000000008152600401611b53949392919061353d565b60405180910390fd5b81810360008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611c4f578060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c479190613400565b925050819055505b5050806001019050611a52565b506001835103611d1b576000611c7c60008561105b90919063ffffffff16565b90506000611c9460008561105b90919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611d0c929190612d60565b60405180910390a45050611d9a565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611d91929190613582565b60405180910390a45b5050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611f4d578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611e0295949392919061360e565b6020604051808303816000875af1925050508015611e3e57506040513d601f19601f82011682018060405250810190611e3b919061367d565b60015b611ec2573d8060008114611e6e576040519150601f19603f3d011682016040523d82523d6000602084013e611e73565b606091505b506000815103611eba57846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611eb19190613434565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611f4b57846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611f429190613434565b60405180910390fd5b505b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115612101578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611fb69594939291906136aa565b6020604051808303816000875af1925050508015611ff257506040513d601f19601f82011682018060405250810190611fef919061367d565b60015b612076573d8060008114612022576040519150601f19603f3d011682016040523d82523d6000602084013e612027565b606091505b50600081510361206e57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016120659190613434565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146120ff57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016120f69190613434565b60405180910390fd5b505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121488261211d565b9050919050565b6121588161213d565b811461216357600080fd5b50565b6000813590506121758161214f565b92915050565b6000819050919050565b61218e8161217b565b811461219957600080fd5b50565b6000813590506121ab81612185565b92915050565b600080604083850312156121c8576121c7612113565b5b60006121d685828601612166565b92505060206121e78582860161219c565b9150509250929050565b6121fa8161217b565b82525050565b600060208201905061221560008301846121f1565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6122508161221b565b811461225b57600080fd5b50565b60008135905061226d81612247565b92915050565b60006020828403121561228957612288612113565b5b60006122978482850161225e565b91505092915050565b60008115159050919050565b6122b5816122a0565b82525050565b60006020820190506122d060008301846122ac565b92915050565b6000602082840312156122ec576122eb612113565b5b60006122fa8482850161219c565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561233d578082015181840152602081019050612322565b60008484015250505050565b6000601f19601f8301169050919050565b600061236582612303565b61236f818561230e565b935061237f81856020860161231f565b61238881612349565b840191505092915050565b600060208201905081810360008301526123ad818461235a565b905092915050565b6000819050919050565b6123c8816123b5565b81146123d357600080fd5b50565b6000813590506123e5816123bf565b92915050565b60006020828403121561240157612400612113565b5b600061240f848285016123d6565b91505092915050565b612421816123b5565b82525050565b600060208201905061243c6000830184612418565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61247f82612349565b810181811067ffffffffffffffff8211171561249e5761249d612447565b5b80604052505050565b60006124b1612109565b90506124bd8282612476565b919050565b600067ffffffffffffffff8211156124dd576124dc612447565b5b602082029050602081019050919050565b600080fd5b6000612506612501846124c2565b6124a7565b90508083825260208201905060208402830185811115612529576125286124ee565b5b835b81811015612552578061253e888261219c565b84526020840193505060208101905061252b565b5050509392505050565b600082601f83011261257157612570612442565b5b81356125818482602086016124f3565b91505092915050565b600080fd5b600067ffffffffffffffff8211156125aa576125a9612447565b5b6125b382612349565b9050602081019050919050565b82818337600083830152505050565b60006125e26125dd8461258f565b6124a7565b9050828152602081018484840111156125fe576125fd61258a565b5b6126098482856125c0565b509392505050565b600082601f83011261262657612625612442565b5b81356126368482602086016125cf565b91505092915050565b600080600080600060a0868803121561265b5761265a612113565b5b600061266988828901612166565b955050602061267a88828901612166565b945050604086013567ffffffffffffffff81111561269b5761269a612118565b5b6126a78882890161255c565b935050606086013567ffffffffffffffff8111156126c8576126c7612118565b5b6126d48882890161255c565b925050608086013567ffffffffffffffff8111156126f5576126f4612118565b5b61270188828901612611565b9150509295509295909350565b6000806040838503121561272557612724612113565b5b6000612733858286016123d6565b925050602061274485828601612166565b9150509250929050565b600067ffffffffffffffff82111561276957612768612447565b5b602082029050602081019050919050565b600061278d6127888461274e565b6124a7565b905080838252602082019050602084028301858111156127b0576127af6124ee565b5b835b818110156127d957806127c58882612166565b8452602084019350506020810190506127b2565b5050509392505050565b600082601f8301126127f8576127f7612442565b5b813561280884826020860161277a565b91505092915050565b6000806040838503121561282857612827612113565b5b600083013567ffffffffffffffff81111561284657612845612118565b5b612852858286016127e3565b925050602083013567ffffffffffffffff81111561287357612872612118565b5b61287f8582860161255c565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6128be8161217b565b82525050565b60006128d083836128b5565b60208301905092915050565b6000602082019050919050565b60006128f482612889565b6128fe8185612894565b9350612909836128a5565b8060005b8381101561293a57815161292188826128c4565b975061292c836128dc565b92505060018101905061290d565b5085935050505092915050565b6000602082019050818103600083015261296181846128e9565b905092915050565b6000806000806080858703121561298357612982612113565b5b600061299187828801612166565b94505060206129a28782880161219c565b93505060406129b38782880161219c565b925050606085013567ffffffffffffffff8111156129d4576129d3612118565b5b6129e087828801612611565b91505092959194509250565b600067ffffffffffffffff821115612a0757612a06612447565b5b612a1082612349565b9050602081019050919050565b6000612a30612a2b846129ec565b6124a7565b905082815260208101848484011115612a4c57612a4b61258a565b5b612a578482856125c0565b509392505050565b600082601f830112612a7457612a73612442565b5b8135612a84848260208601612a1d565b91505092915050565b60008060408385031215612aa457612aa3612113565b5b6000612ab28582860161219c565b925050602083013567ffffffffffffffff811115612ad357612ad2612118565b5b612adf85828601612a5f565b9150509250929050565b600060208284031215612aff57612afe612113565b5b600082013567ffffffffffffffff811115612b1d57612b1c612118565b5b612b2984828501612a5f565b91505092915050565b612b3b816122a0565b8114612b4657600080fd5b50565b600081359050612b5881612b32565b92915050565b60008060408385031215612b7557612b74612113565b5b6000612b8385828601612166565b9250506020612b9485828601612b49565b9150509250929050565b60008060408385031215612bb557612bb4612113565b5b6000612bc385828601612166565b9250506020612bd485828601612166565b9150509250929050565b600080600080600060a08688031215612bfa57612bf9612113565b5b6000612c0888828901612166565b9550506020612c1988828901612166565b9450506040612c2a8882890161219c565b9350506060612c3b8882890161219c565b925050608086013567ffffffffffffffff811115612c5c57612c5b612118565b5b612c6888828901612611565b9150509295509295909350565b600080600060608486031215612c8e57612c8d612113565b5b6000612c9c86828701612166565b9350506020612cad8682870161219c565b9250506040612cbe8682870161219c565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612d0f57607f821691505b602082108103612d2257612d21612cc8565b5b50919050565b612d318161213d565b82525050565b6000604082019050612d4c6000830185612d28565b612d596020830184612d28565b9392505050565b6000604082019050612d7560008301856121f1565b612d8260208301846121f1565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050612dcd6000830185612d28565b612dda60208301846121f1565b9392505050565b6000819050919050565b6000819050919050565b6000612e10612e0b612e0684612de1565b612deb565b61217b565b9050919050565b612e2081612df5565b82525050565b6000602082019050612e3b6000830184612e17565b92915050565b7f4163636f756e742063616e6e6f7420626520656d707479000000000000000000600082015250565b6000612e7760178361230e565b9150612e8282612e41565b602082019050919050565b60006020820190508181036000830152612ea681612e6a565b9050919050565b600081905092915050565b60008190508160005260206000209050919050565b60008154612eda81612cf7565b612ee48186612ead565b94506001821660008114612eff5760018114612f1457612f47565b60ff1983168652811515820286019350612f47565b612f1d85612eb8565b60005b83811015612f3f57815481890152600182019150602081019050612f20565b838801955050505b50505092915050565b7f2f6170692f76312f6e66742f0000000000000000000000000000000000000000600082015250565b6000612f86600c83612ead565b9150612f9182612f50565b600c82019050919050565b6000612fa782612303565b612fb18185612ead565b9350612fc181856020860161231f565b80840191505092915050565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b6000613003600183612ead565b915061300e82612fcd565b600182019050919050565b7f2f72657075746174696f6e2d73636f7265000000000000000000000000000000600082015250565b600061304f601183612ead565b915061305a82613019565b601182019050919050565b60006130718286612ecd565b915061307c82612f79565b91506130888285612f9c565b915061309382612ff6565b915061309f8284612f9c565b91506130aa82613042565b9150819050949350505050565b600081546130c481612cf7565b6130ce818661230e565b945060018216600081146130e957600181146130ff57613132565b60ff198316865281151560200286019350613132565b61310885612eb8565b60005b8381101561312a5781548189015260018201915060208101905061310b565b808801955050505b50505092915050565b6000604082019050818103600083015261315581856130b7565b90508181036020830152613169818461235a565b90509392505050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026131bf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613182565b6131c98683613182565b95508019841693508086168417925050509392505050565b60006131fc6131f76131f28461217b565b612deb565b61217b565b9050919050565b6000819050919050565b613216836131e1565b61322a61322282613203565b84845461318f565b825550505050565b600090565b61323f613232565b61324a81848461320d565b505050565b5b8181101561326e57613263600082613237565b600181019050613250565b5050565b601f8211156132b35761328481612eb8565b61328d84613172565b8101602085101561329c578190505b6132b06132a885613172565b83018261324f565b50505b505050565b600082821c905092915050565b60006132d6600019846008026132b8565b1980831691505092915050565b60006132ef83836132c5565b9150826002028217905092915050565b61330882612303565b67ffffffffffffffff81111561332157613320612447565b5b61332b8254612cf7565b613336828285613272565b600060209050601f8311600181146133695760008415613357578287015190505b61336185826132e3565b8655506133c9565b601f19841661337786612eb8565b60005b8281101561339f5784890151825560018201915060208501945060208101905061337a565b868310156133bc57848901516133b8601f8916826132c5565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061340b8261217b565b91506134168361217b565b925082820190508082111561342e5761342d6133d1565b5b92915050565b60006020820190506134496000830184612d28565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f5552492063616e6e6f7420626520656d70747900000000000000000000000000600082015250565b60006134b460138361230e565b91506134bf8261347e565b602082019050919050565b600060208201905081810360008301526134e3816134a7565b9050919050565b6134f38161221b565b82525050565b600060208201905061350e60008301846134ea565b92915050565b60006040820190506135296000830185612d28565b6135366020830184612418565b9392505050565b60006080820190506135526000830187612d28565b61355f60208301866121f1565b61356c60408301856121f1565b61357960608301846121f1565b95945050505050565b6000604082019050818103600083015261359c81856128e9565b905081810360208301526135b081846128e9565b90509392505050565b600081519050919050565b600082825260208201905092915050565b60006135e0826135b9565b6135ea81856135c4565b93506135fa81856020860161231f565b61360381612349565b840191505092915050565b600060a0820190506136236000830188612d28565b6136306020830187612d28565b61363d60408301866121f1565b61364a60608301856121f1565b818103608083015261365c81846135d5565b90509695505050505050565b60008151905061367781612247565b92915050565b60006020828403121561369357613692612113565b5b60006136a184828501613668565b91505092915050565b600060a0820190506136bf6000830188612d28565b6136cc6020830187612d28565b81810360408301526136de81866128e9565b905081810360608301526136f281856128e9565b9050818103608083015261370681846135d5565b9050969550505050505056fea2646970667358221220240e9a7daab5d9eba2793e75f4bbf0e9a74f133868ac14d5e9561767bb722e8264736f6c634300081a0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/ignition/deployments/chain-42161/build-info/66954cfa576a2ffbfe079f17baab8cf7.json b/ignition/deployments/chain-11155420/build-info/4e58f17c75b86363e11bf0ecd1dbfa6a.json similarity index 78% rename from ignition/deployments/chain-42161/build-info/66954cfa576a2ffbfe079f17baab8cf7.json rename to ignition/deployments/chain-11155420/build-info/4e58f17c75b86363e11bf0ecd1dbfa6a.json index 4a2eb06..143e82a 100644 --- a/ignition/deployments/chain-42161/build-info/66954cfa576a2ffbfe079f17baab8cf7.json +++ b/ignition/deployments/chain-11155420/build-info/4e58f17c75b86363e11bf0ecd1dbfa6a.json @@ -1,8 +1,8 @@ { - "id": "66954cfa576a2ffbfe079f17baab8cf7", + "id": "4e58f17c75b86363e11bf0ecd1dbfa6a", "_format": "hh-sol-build-info-1", - "solcVersion": "0.8.24", - "solcLongVersion": "0.8.24+commit.e11b9ed9", + "solcVersion": "0.8.26", + "solcLongVersion": "0.8.26+commit.8a97fa7a", "input": { "language": "Solidity", "sources": { @@ -36,6 +36,9 @@ "@openzeppelin/contracts/utils/introspection/ERC165.sol": { "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/ERC165.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"./IERC165.sol\";\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n * for the additional interface id that will be supported. For example:\n *\n * ```solidity\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n * }\n * ```\n */\nabstract contract ERC165 is IERC165 {\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) {\n return interfaceId == type(IERC165).interfaceId;\n }\n}\n" }, + "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/ERC165Checker.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"./IERC165.sol\";\n\n/**\n * @dev Library used to query support of an interface declared via {IERC165}.\n *\n * Note that these functions return the actual result of the query: they do not\n * `revert` if an interface is not supported. It is up to the caller to decide\n * what to do in these cases.\n */\nlibrary ERC165Checker {\n // As per the EIP-165 spec, no interface should ever match 0xffffffff\n bytes4 private constant INTERFACE_ID_INVALID = 0xffffffff;\n\n /**\n * @dev Returns true if `account` supports the {IERC165} interface.\n */\n function supportsERC165(address account) internal view returns (bool) {\n // Any contract that implements ERC165 must explicitly indicate support of\n // InterfaceId_ERC165 and explicitly indicate non-support of InterfaceId_Invalid\n return\n supportsERC165InterfaceUnchecked(account, type(IERC165).interfaceId) &&\n !supportsERC165InterfaceUnchecked(account, INTERFACE_ID_INVALID);\n }\n\n /**\n * @dev Returns true if `account` supports the interface defined by\n * `interfaceId`. Support for {IERC165} itself is queried automatically.\n *\n * See {IERC165-supportsInterface}.\n */\n function supportsInterface(address account, bytes4 interfaceId) internal view returns (bool) {\n // query support of both ERC165 as per the spec and support of _interfaceId\n return supportsERC165(account) && supportsERC165InterfaceUnchecked(account, interfaceId);\n }\n\n /**\n * @dev Returns a boolean array where each value corresponds to the\n * interfaces passed in and whether they're supported or not. This allows\n * you to batch check interfaces for a contract where your expectation\n * is that some interfaces may not be supported.\n *\n * See {IERC165-supportsInterface}.\n */\n function getSupportedInterfaces(\n address account,\n bytes4[] memory interfaceIds\n ) internal view returns (bool[] memory) {\n // an array of booleans corresponding to interfaceIds and whether they're supported or not\n bool[] memory interfaceIdsSupported = new bool[](interfaceIds.length);\n\n // query support of ERC165 itself\n if (supportsERC165(account)) {\n // query support of each interface in interfaceIds\n for (uint256 i = 0; i < interfaceIds.length; i++) {\n interfaceIdsSupported[i] = supportsERC165InterfaceUnchecked(account, interfaceIds[i]);\n }\n }\n\n return interfaceIdsSupported;\n }\n\n /**\n * @dev Returns true if `account` supports all the interfaces defined in\n * `interfaceIds`. Support for {IERC165} itself is queried automatically.\n *\n * Batch-querying can lead to gas savings by skipping repeated checks for\n * {IERC165} support.\n *\n * See {IERC165-supportsInterface}.\n */\n function supportsAllInterfaces(address account, bytes4[] memory interfaceIds) internal view returns (bool) {\n // query support of ERC165 itself\n if (!supportsERC165(account)) {\n return false;\n }\n\n // query support of each interface in interfaceIds\n for (uint256 i = 0; i < interfaceIds.length; i++) {\n if (!supportsERC165InterfaceUnchecked(account, interfaceIds[i])) {\n return false;\n }\n }\n\n // all interfaces supported\n return true;\n }\n\n /**\n * @notice Query if a contract implements an interface, does not check ERC165 support\n * @param account The address of the contract to query for support of an interface\n * @param interfaceId The interface identifier, as specified in ERC-165\n * @return true if the contract at account indicates support of the interface with\n * identifier interfaceId, false otherwise\n * @dev Assumes that account contains a contract that supports ERC165, otherwise\n * the behavior of this method is undefined. This precondition can be checked\n * with {supportsERC165}.\n *\n * Some precompiled contracts will falsely indicate support for a given interface, so caution\n * should be exercised when using this function.\n *\n * Interface identification is specified in ERC-165.\n */\n function supportsERC165InterfaceUnchecked(address account, bytes4 interfaceId) internal view returns (bool) {\n // prepare call\n bytes memory encodedParams = abi.encodeCall(IERC165.supportsInterface, (interfaceId));\n\n // perform static call\n bool success;\n uint256 returnSize;\n uint256 returnValue;\n assembly {\n success := staticcall(30000, account, add(encodedParams, 0x20), mload(encodedParams), 0x00, 0x20)\n returnSize := returndatasize()\n returnValue := mload(0x00)\n }\n\n return success && returnSize >= 0x20 && returnValue > 0;\n }\n}\n" + }, "@openzeppelin/contracts/utils/introspection/IERC165.sol": { "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n" }, @@ -52,13 +55,10 @@ "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Strings.sol)\n\npragma solidity ^0.8.20;\n\nimport {Math} from \"./math/Math.sol\";\nimport {SignedMath} from \"./math/SignedMath.sol\";\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n bytes16 private constant HEX_DIGITS = \"0123456789abcdef\";\n uint8 private constant ADDRESS_LENGTH = 20;\n\n /**\n * @dev The `value` string doesn't fit in the specified `length`.\n */\n error StringsInsufficientHexLength(uint256 value, uint256 length);\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` decimal representation.\n */\n function toString(uint256 value) internal pure returns (string memory) {\n unchecked {\n uint256 length = Math.log10(value) + 1;\n string memory buffer = new string(length);\n uint256 ptr;\n /// @solidity memory-safe-assembly\n assembly {\n ptr := add(buffer, add(32, length))\n }\n while (true) {\n ptr--;\n /// @solidity memory-safe-assembly\n assembly {\n mstore8(ptr, byte(mod(value, 10), HEX_DIGITS))\n }\n value /= 10;\n if (value == 0) break;\n }\n return buffer;\n }\n }\n\n /**\n * @dev Converts a `int256` to its ASCII `string` decimal representation.\n */\n function toStringSigned(int256 value) internal pure returns (string memory) {\n return string.concat(value < 0 ? \"-\" : \"\", toString(SignedMath.abs(value)));\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\n */\n function toHexString(uint256 value) internal pure returns (string memory) {\n unchecked {\n return toHexString(value, Math.log256(value) + 1);\n }\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\n */\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\n uint256 localValue = value;\n bytes memory buffer = new bytes(2 * length + 2);\n buffer[0] = \"0\";\n buffer[1] = \"x\";\n for (uint256 i = 2 * length + 1; i > 1; --i) {\n buffer[i] = HEX_DIGITS[localValue & 0xf];\n localValue >>= 4;\n }\n if (localValue != 0) {\n revert StringsInsufficientHexLength(value, length);\n }\n return string(buffer);\n }\n\n /**\n * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\n * representation.\n */\n function toHexString(address addr) internal pure returns (string memory) {\n return toHexString(uint256(uint160(addr)), ADDRESS_LENGTH);\n }\n\n /**\n * @dev Returns true if the two strings are equal.\n */\n function equal(string memory a, string memory b) internal pure returns (bool) {\n return bytes(a).length == bytes(b).length && keccak256(bytes(a)) == keccak256(bytes(b));\n }\n}\n" }, "contracts/Engagement.sol": { - "content": "// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.24;\n\nimport \"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\";\nimport \"@openzeppelin/contracts/access/AccessControl.sol\";\nimport \"@openzeppelin/contracts/utils/Strings.sol\";\nimport \"./IEngagement.sol\";\n\ncontract Engagement is IEngagement, ERC1155, AccessControl {\n uint private _counter = 0;\n bytes32 public constant PROVIDER_ROLE = keccak256(\"PROVIDER_ROLE\");\n\n mapping(uint => string) private _tokenMetadata;\n mapping(uint => string) private _scores;\n\n constructor() ERC1155(\"\") {\n _grantRole(DEFAULT_ADMIN_ROLE, msg.sender);\n }\n\n function _checkTokenId(uint tokenId) private view {\n if (tokenId >= _counter) {\n revert NotFound(tokenId);\n }\n }\n\n modifier validTokenId(uint tokenId) {\n _checkTokenId(tokenId);\n _;\n }\n\n function counter() external view returns (uint) {\n return _counter;\n }\n\n function issue(string memory hash_) external {\n _tokenMetadata[_counter] = hash_;\n _mint(msg.sender, _counter, 1, \"\");\n emit Issue(msg.sender, _counter);\n _counter++;\n }\n\n function mint(\n address account,\n uint tokenId,\n uint amount,\n bytes memory data\n ) external override validTokenId(tokenId) {\n if (balanceOf(account, tokenId) > 0) {\n revert MintLimit(account, tokenId);\n }\n _mint(account, tokenId, 1, data);\n emit Mint(account, tokenId, 1);\n }\n\n function burn(\n address account,\n uint tokenId,\n uint amount\n ) external override validTokenId(tokenId) {\n if (account != msg.sender) {\n revert NotAllowed(account, tokenId);\n }\n _burn(account, tokenId, 1);\n emit Burn(account, tokenId, 1);\n }\n\n function getScores(\n uint date,\n uint id,\n string memory account\n ) external view override validTokenId(id) returns (string memory) {\n return\n string(\n abi.encodePacked(\n \"ipfs://\",\n _scores[date],\n \"/\",\n Strings.toString(id),\n \"/\",\n account,\n \".json\"\n )\n );\n }\n\n function updateScores(\n uint date,\n string memory cid\n ) external override onlyRole(PROVIDER_ROLE) {\n _scores[date] = cid;\n emit UpdateScores(msg.sender, date, cid);\n }\n\n function supportsInterface(\n bytes4 interfaceId\n ) public view override(AccessControl, ERC1155) returns (bool) {}\n\n function uri(\n uint tokenId\n ) public view override validTokenId(tokenId) returns (string memory) {\n return\n string(\n abi.encodePacked(\"ipfs://\", _tokenMetadata[tokenId], \".json\")\n );\n }\n}\n" + "content": "// SPDX-License-Identifier: UNLICENSED\npragma solidity 0.8.26;\n\nimport \"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\";\nimport \"@openzeppelin/contracts/access/AccessControl.sol\";\nimport \"@openzeppelin/contracts/utils/Strings.sol\";\nimport \"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol\";\nimport \"./IEngagement.sol\";\n\ncontract Engagement is IEngagement, ERC1155, AccessControl {\n using ERC165Checker for address;\n\n uint private _counter;\n string private _tokenURI;\n\n constructor(string memory tokenURI_) ERC1155(\"\") {\n requireNonEmptyURI(tokenURI_);\n _grantRole(DEFAULT_ADMIN_ROLE, msg.sender);\n _tokenURI = tokenURI_;\n }\n\n function _checkTokenId(uint tokenId) private view {\n if (tokenId >= _counter) {\n revert NotFound(tokenId);\n }\n }\n\n function requireNonEmptyURI(string memory newUri) internal pure {\n if (bytes(newUri).length == 0) {\n revert URIEmpty(\"URI cannot be empty\");\n }\n }\n\n modifier validTokenId(uint tokenId) {\n _checkTokenId(tokenId);\n _;\n }\n\n modifier onlyTokenOwner(address account, uint tokenId) {\n if (account != msg.sender) {\n revert NotAllowed(account, tokenId);\n }\n _;\n }\n\n modifier nonEmptyAccount(string memory account) {\n if (bytes(account).length == 0) {\n revert EmptyAccountNotAllowed(\"Account cannot be empty\");\n }\n _;\n }\n\n function counter() external view returns (uint) {\n return _counter;\n }\n\n function issue() external {\n uint counterCache = _counter;\n _mint(msg.sender, counterCache, 1, \"\");\n emit Issue(msg.sender, counterCache);\n _counter = counterCache + 1;\n }\n\n function mint(\n address account,\n uint tokenId,\n uint amount,\n bytes memory data\n ) external override validTokenId(tokenId) {\n if (balanceOf(account, tokenId) >= 1) {\n revert MintLimit(account, tokenId);\n }\n _mint(account, tokenId, 1, data);\n emit Mint(account, tokenId, 1);\n }\n\n function burn(\n address account,\n uint tokenId,\n uint amount\n ) external override validTokenId(tokenId) onlyTokenOwner(account, tokenId) {\n _burn(account, tokenId, 1);\n emit Burn(account, tokenId, 1);\n }\n\n function supportsInterface(\n bytes4 interfaceId\n ) public view override(AccessControl, ERC1155) returns (bool) {\n if (address(this).supportsERC165()) {\n return super.supportsInterface(interfaceId);\n }\n return false;\n }\n\n function updateBaseURI(string memory newURI) external onlyRole(DEFAULT_ADMIN_ROLE) {\n requireNonEmptyURI(newURI);\n emit BaseURIUpdated(_tokenURI, newURI);\n _tokenURI = newURI;\n }\n\n function uri(\n uint tokenId,\n string memory account\n ) public view validTokenId(tokenId) nonEmptyAccount(account) returns (string memory) {\n return\n string(\n abi.encodePacked(_tokenURI,\"/api/v1/nft/\",Strings.toString(tokenId),\"/\",account,\"/reputation-score\")\n );\n }\n}\n" }, "contracts/IEngagement.sol": { - "content": "interface IEngagement {\n event Issue(address indexed account, uint indexed tokenId);\n event Mint(address indexed account, uint indexed tokenId, uint amount);\n event Burn(address indexed account, uint indexed tokenId, uint amount);\n event UpdateScores(address indexed account, uint indexed date, string cid);\n\n error NotFound(uint tokenId);\n error MintLimit(address account, uint tokenId);\n error NotAllowed(address account, uint tokenId);\n\n function counter() external view returns (uint);\n\n function issue(string memory hash) external;\n\n function mint(\n address account,\n uint tokenId,\n uint amount,\n bytes memory data\n ) external;\n\n function burn(address account, uint tokenId, uint amount) external;\n\n function getScores(\n uint date,\n uint id,\n string memory account\n ) external view returns (string memory);\n\n function updateScores(uint date, string memory cid) external;\n}\n" - }, - "contracts/Lock.sol": { - "content": "// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.24;\n\n// Uncomment this line to use console.log\n// import \"hardhat/console.sol\";\n\ncontract Lock {\n uint public unlockTime;\n address payable public owner;\n\n event Withdrawal(uint amount, uint when);\n\n constructor(uint _unlockTime) payable {\n require(\n block.timestamp < _unlockTime,\n \"Unlock time should be in the future\"\n );\n\n unlockTime = _unlockTime;\n owner = payable(msg.sender);\n }\n\n function withdraw() public {\n // Uncomment this line, and the import of \"hardhat/console.sol\", to print a log in your terminal\n // console.log(\"Unlock time is %o and block timestamp is %o\", unlockTime, block.timestamp);\n\n require(block.timestamp >= unlockTime, \"You can't withdraw yet\");\n require(msg.sender == owner, \"You aren't the owner\");\n\n emit Withdrawal(address(this).balance, block.timestamp);\n\n owner.transfer(address(this).balance);\n }\n}\n" + "content": "// SPDX-License-Identifier: UNLICENSED\npragma solidity 0.8.26;\n\ninterface IEngagement {\n event Issue(address indexed account, uint indexed tokenId);\n event Mint(address indexed account, uint indexed tokenId, uint amount);\n event Burn(address indexed account, uint indexed tokenId, uint amount);\n event BaseURIUpdated(string oldURI, string newURI);\n\n error NotFound(uint tokenId);\n error MintLimit(address account, uint tokenId);\n error NotAllowed(address account, uint tokenId);\n error URIEmpty(string message);\n error EmptyAccountNotAllowed(string message);\n\n function counter() external view returns (uint);\n\n function issue() external;\n\n function mint(\n address account,\n uint tokenId,\n uint amount,\n bytes memory data\n ) external;\n\n function burn(address account, uint tokenId, uint amount) external;\n\n function updateBaseURI(string memory newURI) external;\n}\n" } }, "settings": { @@ -85,55 +85,29 @@ }, "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: \" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.\n--> contracts/IEngagement.sol\n\n", - "message": "SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: \" 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/IEngagement.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.24;\"\n--> contracts/IEngagement.sol\n\n", - "message": "Source file does not specify required compiler version! Consider adding \"pragma solidity ^0.8.24;\"", - "severity": "warning", - "sourceLocation": { - "end": -1, - "file": "contracts/IEngagement.sol", - "start": -1 - }, - "type": "Warning" - }, { "component": "general", "errorCode": "5667", - "formattedMessage": "Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/Engagement.sol:45:9:\n |\n45 | uint amount,\n | ^^^^^^^^^^^\n\n", + "formattedMessage": "Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/Engagement.sol:67:9:\n |\n67 | uint amount,\n | ^^^^^^^^^^^\n\n", "message": "Unused function parameter. Remove or comment out the variable name to silence this warning.", "severity": "warning", "sourceLocation": { - "end": 1234, + "end": 1843, "file": "contracts/Engagement.sol", - "start": 1223 + "start": 1832 }, "type": "Warning" }, { "component": "general", "errorCode": "5667", - "formattedMessage": "Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/Engagement.sol:58:9:\n |\n58 | uint amount\n | ^^^^^^^^^^^\n\n", + "formattedMessage": "Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/Engagement.sol:80:9:\n |\n80 | uint amount\n | ^^^^^^^^^^^\n\n", "message": "Unused function parameter. Remove or comment out the variable name to silence this warning.", "severity": "warning", "sourceLocation": { - "end": 1589, + "end": 2199, "file": "contracts/Engagement.sol", - "start": 1578 + "start": 2188 }, "type": "Warning" } @@ -309,7 +283,7 @@ "linearizedBaseContracts": [ 295, 2349, - 2361, + 2556, 378, 1960 ], @@ -1427,8 +1401,8 @@ "referencedDeclaration": 305, "src": "3565:32:0", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$_t_bytes32_$returns$__$", - "typeString": "function (address,bytes32) pure" + "typeIdentifier": "t_function_error_pure$_t_address_$_t_bytes32_$returns$_t_error_$", + "typeString": "function (address,bytes32) pure returns (error)" } }, "id": 109, @@ -1443,8 +1417,8 @@ "src": "3565:47:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 110, @@ -2266,8 +2240,8 @@ "referencedDeclaration": 308, "src": "5478:28:0", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" } }, "id": 179, @@ -2282,8 +2256,8 @@ "src": "5478:30:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 180, @@ -6248,7 +6222,7 @@ 1731 ], "IERC165": [ - 2361 + 2556 ] }, "id": 1567, @@ -6382,7 +6356,7 @@ "name": "IERC165", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2361, + "referencedDeclaration": 2556, "src": "364:7:3", "typeDescriptions": {} }, @@ -6549,7 +6523,7 @@ 1747, 1689, 2349, - 2361, + 2556, 1960 ], "name": "ERC1155", @@ -6924,7 +6898,7 @@ { "baseFunctions": [ 2348, - 2360 + 2555 ], "body": { "id": 606, @@ -7263,7 +7237,7 @@ "1464:7:3" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2361, + "referencedDeclaration": 2556, "src": "1464:7:3" } ], @@ -7821,8 +7795,8 @@ "referencedDeclaration": 514, "src": "2744:25:3", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256) pure" + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256,uint256) pure returns (error)" } }, "id": 658, @@ -7837,8 +7811,8 @@ "src": "2744:54:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 659, @@ -9196,8 +9170,8 @@ "referencedDeclaration": 497, "src": "3829:28:3", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address) pure" + "typeIdentifier": "t_function_error_pure$_t_address_$_t_address_$returns$_t_error_$", + "typeString": "function (address,address) pure returns (error)" } }, "id": 769, @@ -9212,8 +9186,8 @@ "src": "3829:42:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 770, @@ -9786,8 +9760,8 @@ "referencedDeclaration": 497, "src": "4323:28:3", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address) pure" + "typeIdentifier": "t_function_error_pure$_t_address_$_t_address_$returns$_t_error_$", + "typeString": "function (address,address) pure returns (error)" } }, "id": 815, @@ -9802,8 +9776,8 @@ "src": "4323:42:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 816, @@ -10284,8 +10258,8 @@ "referencedDeclaration": 514, "src": "5315:25:3", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256) pure" + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256,uint256) pure returns (error)" } }, "id": 852, @@ -10300,8 +10274,8 @@ "src": "5315:52:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 853, @@ -10918,8 +10892,8 @@ "referencedDeclaration": 480, "src": "5751:26:3", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256,uint256) pure" + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_error_$", + "typeString": "function (address,uint256,uint256,uint256) pure returns (error)" } }, "id": 908, @@ -10934,8 +10908,8 @@ "src": "5751:56:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 909, @@ -13327,8 +13301,8 @@ "referencedDeclaration": 490, "src": "8312:22:3", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" } }, "id": 1082, @@ -13343,8 +13317,8 @@ "src": "8312:34:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 1083, @@ -13533,8 +13507,8 @@ "referencedDeclaration": 485, "src": "8411:20:3", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" } }, "id": 1097, @@ -13549,8 +13523,8 @@ "src": "8411:32:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 1098, @@ -14182,8 +14156,8 @@ "referencedDeclaration": 490, "src": "9247:22:3", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" } }, "id": 1150, @@ -14198,8 +14172,8 @@ "src": "9247:34:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 1151, @@ -14388,8 +14362,8 @@ "referencedDeclaration": 485, "src": "9346:20:3", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" } }, "id": 1165, @@ -14404,8 +14378,8 @@ "src": "9346:32:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 1166, @@ -15017,8 +14991,8 @@ "referencedDeclaration": 490, "src": "10881:22:3", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" } }, "id": 1212, @@ -15033,8 +15007,8 @@ "src": "10881:34:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 1213, @@ -15687,8 +15661,8 @@ "referencedDeclaration": 490, "src": "11683:22:3", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" } }, "id": 1266, @@ -15703,8 +15677,8 @@ "src": "11683:34:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 1267, @@ -16227,8 +16201,8 @@ "referencedDeclaration": 485, "src": "12219:20:3", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" } }, "id": 1303, @@ -16243,8 +16217,8 @@ "src": "12219:32:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 1304, @@ -16874,8 +16848,8 @@ "referencedDeclaration": 485, "src": "12929:20:3", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" } }, "id": 1355, @@ -16890,8 +16864,8 @@ "src": "12929:32:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 1356, @@ -17391,8 +17365,8 @@ "referencedDeclaration": 507, "src": "13420:22:3", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" } }, "id": 1392, @@ -17407,8 +17381,8 @@ "src": "13420:34:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 1393, @@ -17925,8 +17899,8 @@ "referencedDeclaration": 490, "src": "14250:22:3", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" } }, "id": 1452, @@ -17941,8 +17915,8 @@ "src": "14250:26:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 1453, @@ -18200,8 +18174,8 @@ "referencedDeclaration": 490, "src": "14464:22:3", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" } }, "id": 1467, @@ -18216,8 +18190,8 @@ "src": "14464:26:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 1468, @@ -18852,8 +18826,8 @@ "referencedDeclaration": 490, "src": "15479:22:3", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" } }, "id": 1522, @@ -18868,8 +18842,8 @@ "src": "15479:26:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 1523, @@ -19127,8 +19101,8 @@ "referencedDeclaration": 490, "src": "15693:22:3", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" } }, "id": 1537, @@ -19143,8 +19117,8 @@ "src": "15693:26:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 1538, @@ -20164,7 +20138,7 @@ 1689 ], "IERC165": [ - 2361 + 2556 ] }, "id": 1690, @@ -20189,7 +20163,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 1690, - "sourceUnit": 2362, + "sourceUnit": 2557, "src": "136:62:4", "symbolAliases": [ { @@ -20198,7 +20172,7 @@ "name": "IERC165", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2361, + "referencedDeclaration": 2556, "src": "144:7:4", "typeDescriptions": {} }, @@ -20218,7 +20192,7 @@ "358:7:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2361, + "referencedDeclaration": 2556, "src": "358:7:4" }, "id": 1573, @@ -20239,7 +20213,7 @@ "id": 1689, "linearizedBaseContracts": [ 1689, - 2361 + 2556 ], "name": "IERC1155", "nameLocation": "346:8:4", @@ -21631,7 +21605,7 @@ 1731 ], "IERC165": [ - 2361 + 2556 ] }, "id": 1732, @@ -21656,7 +21630,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 1732, - "sourceUnit": 2362, + "sourceUnit": 2557, "src": "144:62:5", "symbolAliases": [ { @@ -21665,7 +21639,7 @@ "name": "IERC165", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2361, + "referencedDeclaration": 2556, "src": "152:7:5", "typeDescriptions": {} }, @@ -21685,7 +21659,7 @@ "357:7:5" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2361, + "referencedDeclaration": 2556, "src": "357:7:5" }, "id": 1696, @@ -21706,7 +21680,7 @@ "id": 1731, "linearizedBaseContracts": [ 1731, - 2361 + 2556 ], "name": "IERC1155Receiver", "nameLocation": "337:16:5", @@ -22223,7 +22197,7 @@ "linearizedBaseContracts": [ 1747, 1689, - 2361 + 2556 ], "name": "IERC1155MetadataURI", "nameLocation": "376:19:6", @@ -22342,7 +22316,7 @@ 1930 ], "Math": [ - 3415 + 3610 ], "StorageSlot": [ 2070 @@ -22395,7 +22369,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 1931, - "sourceUnit": 3416, + "sourceUnit": 3611, "src": "173:37:7", "symbolAliases": [ { @@ -22404,7 +22378,7 @@ "name": "Math", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3415, + "referencedDeclaration": 3610, "src": "181:4:7", "typeDescriptions": {} }, @@ -22746,10 +22720,10 @@ "name": "Math", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3415, + "referencedDeclaration": 3610, "src": "1021:4:7", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Math_$3415_$", + "typeIdentifier": "t_type$_t_contract$_Math_$3610_$", "typeString": "type(library Math)" } }, @@ -22761,7 +22735,7 @@ "memberLocation": "1026:7:7", "memberName": "average", "nodeType": "MemberAccess", - "referencedDeclaration": 2589, + "referencedDeclaration": 2784, "src": "1021:12:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", @@ -27003,10 +26977,10 @@ "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", "exportedSymbols": { "Math": [ - 3415 + 3610 ], "SignedMath": [ - 3520 + 3715 ], "Strings": [ 2325 @@ -27034,7 +27008,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 2326, - "sourceUnit": 3416, + "sourceUnit": 3611, "src": "127:37:10", "symbolAliases": [ { @@ -27043,7 +27017,7 @@ "name": "Math", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3415, + "referencedDeclaration": 3610, "src": "135:4:10", "typeDescriptions": {} }, @@ -27059,7 +27033,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 2326, - "sourceUnit": 3521, + "sourceUnit": 3716, "src": "165:49:10", "symbolAliases": [ { @@ -27068,7 +27042,7 @@ "name": "SignedMath", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3520, + "referencedDeclaration": 3715, "src": "173:10:10", "typeDescriptions": {} }, @@ -27341,10 +27315,10 @@ "name": "Math", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3415, + "referencedDeclaration": 3610, "src": "759:4:10", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Math_$3415_$", + "typeIdentifier": "t_type$_t_contract$_Math_$3610_$", "typeString": "type(library Math)" } }, @@ -27356,7 +27330,7 @@ "memberLocation": "764:5:10", "memberName": "log10", "nodeType": "MemberAccess", - "referencedDeclaration": 3235, + "referencedDeclaration": 3430, "src": "759:10:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", @@ -28144,10 +28118,10 @@ "name": "SignedMath", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3520, + "referencedDeclaration": 3715, "src": "1573:10:10", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SignedMath_$3520_$", + "typeIdentifier": "t_type$_t_contract$_SignedMath_$3715_$", "typeString": "type(library SignedMath)" } }, @@ -28159,7 +28133,7 @@ "memberLocation": "1584:3:10", "memberName": "abs", "nodeType": "MemberAccess", - "referencedDeclaration": 3519, + "referencedDeclaration": 3714, "src": "1573:14:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_int256_$returns$_t_uint256_$", @@ -28436,10 +28410,10 @@ "name": "Math", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3415, + "referencedDeclaration": 3610, "src": "1842:4:10", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Math_$3415_$", + "typeIdentifier": "t_type$_t_contract$_Math_$3610_$", "typeString": "type(library Math)" } }, @@ -28451,7 +28425,7 @@ "memberLocation": "1847:6:10", "memberName": "log256", "nodeType": "MemberAccess", - "referencedDeclaration": 3357, + "referencedDeclaration": 3552, "src": "1842:11:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", @@ -29492,8 +29466,8 @@ "referencedDeclaration": 2090, "src": "2439:28:10", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256) pure" + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256,uint256) pure returns (error)" } }, "id": 2257, @@ -29508,8 +29482,8 @@ "src": "2439:43:10", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 2258, @@ -30494,7 +30468,7 @@ 2349 ], "IERC165": [ - 2361 + 2556 ] }, "id": 2350, @@ -30519,7 +30493,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 2350, - "sourceUnit": 2362, + "sourceUnit": 2557, "src": "140:38:11", "symbolAliases": [ { @@ -30528,7 +30502,7 @@ "name": "IERC165", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2361, + "referencedDeclaration": 2556, "src": "148:7:11", "typeDescriptions": {} }, @@ -30548,7 +30522,7 @@ "687:7:11" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2361, + "referencedDeclaration": 2556, "src": "687:7:11" }, "id": 2332, @@ -30569,7 +30543,7 @@ "id": 2349, "linearizedBaseContracts": [ 2349, - 2361 + 2556 ], "name": "ERC165", "nameLocation": "677:6:11", @@ -30577,7 +30551,7 @@ "nodes": [ { "baseFunctions": [ - 2360 + 2555 ], "body": { "id": 2347, @@ -30617,10 +30591,10 @@ "name": "IERC165", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2361, + "referencedDeclaration": 2556, "src": "881:7:11", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC165_$2361_$", + "typeIdentifier": "t_type$_t_contract$_IERC165_$2556_$", "typeString": "type(contract IERC165)" } } @@ -30628,7 +30602,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_type$_t_contract$_IERC165_$2361_$", + "typeIdentifier": "t_type$_t_contract$_IERC165_$2556_$", "typeString": "type(contract IERC165)" } ], @@ -30655,7 +30629,7 @@ "src": "876:13:11", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_contract$_IERC165_$2361", + "typeIdentifier": "t_magic_meta_type_t_contract$_IERC165_$2556", "typeString": "type(contract IERC165)" } }, @@ -30785,15 +30759,18 @@ }, "id": 11 }, - "@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol": { "ast": { - "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol", "exportedSymbols": { + "ERC165Checker": [ + 2544 + ], "IERC165": [ - 2361 + 2556 ] }, - "id": 2362, + "id": 2545, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ @@ -30806,91 +30783,387 @@ ".20" ], "nodeType": "PragmaDirective", - "src": "115:24:12" + "src": "121:24:12" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "file": "./IERC165.sol", + "id": 2353, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2545, + "sourceUnit": 2557, + "src": "147:38:12", + "symbolAliases": [ + { + "foreign": { + "id": 2352, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2556, + "src": "155:7:12", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" }, { "abstract": false, "baseContracts": [], - "canonicalName": "IERC165", + "canonicalName": "ERC165Checker", "contractDependencies": [], - "contractKind": "interface", + "contractKind": "library", "documentation": { - "id": 2352, + "id": 2354, "nodeType": "StructuredDocumentation", - "src": "141:279:12", - "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + "src": "187:277:12", + "text": " @dev Library used to query support of an interface declared via {IERC165}.\n Note that these functions return the actual result of the query: they do not\n `revert` if an interface is not supported. It is up to the caller to decide\n what to do in these cases." }, - "fullyImplemented": false, - "id": 2361, + "fullyImplemented": true, + "id": 2544, "linearizedBaseContracts": [ - 2361 + 2544 ], - "name": "IERC165", - "nameLocation": "431:7:12", + "name": "ERC165Checker", + "nameLocation": "473:13:12", "nodeType": "ContractDefinition", "nodes": [ { + "constant": true, + "id": 2357, + "mutability": "constant", + "name": "INTERFACE_ID_INVALID", + "nameLocation": "591:20:12", + "nodeType": "VariableDeclaration", + "scope": 2544, + "src": "567:57:12", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2355, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "567:6:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30786666666666666666", + "id": 2356, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "614:10:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967295_by_1", + "typeString": "int_const 4294967295" + }, + "value": "0xffffffff" + }, + "visibility": "private" + }, + { + "body": { + "id": 2379, + "nodeType": "Block", + "src": "789:356:12", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2377, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2366, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2360, + "src": "1023:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "arguments": [ + { + "id": 2368, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2556, + "src": "1037:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC165_$2556_$", + "typeString": "type(contract IERC165)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IERC165_$2556_$", + "typeString": "type(contract IERC165)" + } + ], + "id": 2367, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "1032:4:12", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 2369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1032:13:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IERC165_$2556", + "typeString": "type(contract IERC165)" + } + }, + "id": 2370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1046:11:12", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "1032:25:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2365, + "name": "supportsERC165InterfaceUnchecked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2543, + "src": "990:32:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (address,bytes4) view returns (bool)" + } + }, + "id": 2371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "990:68:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "id": 2376, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "1074:64:12", + "subExpression": { + "arguments": [ + { + "id": 2373, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2360, + "src": "1108:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2374, + "name": "INTERFACE_ID_INVALID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2357, + "src": "1117:20:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2372, + "name": "supportsERC165InterfaceUnchecked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2543, + "src": "1075:32:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (address,bytes4) view returns (bool)" + } + }, + "id": 2375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1075:63:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "990:148:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2364, + "id": 2378, + "nodeType": "Return", + "src": "971:167:12" + } + ] + }, "documentation": { - "id": 2353, + "id": 2358, "nodeType": "StructuredDocumentation", - "src": "445:340:12", - "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + "src": "631:83:12", + "text": " @dev Returns true if `account` supports the {IERC165} interface." }, - "functionSelector": "01ffc9a7", - "id": 2360, - "implemented": false, + "id": 2380, + "implemented": true, "kind": "function", "modifiers": [], - "name": "supportsInterface", - "nameLocation": "799:17:12", + "name": "supportsERC165", + "nameLocation": "728:14:12", "nodeType": "FunctionDefinition", "parameters": { - "id": 2356, + "id": 2361, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2355, + "id": 2360, "mutability": "mutable", - "name": "interfaceId", - "nameLocation": "824:11:12", + "name": "account", + "nameLocation": "751:7:12", "nodeType": "VariableDeclaration", - "scope": 2360, - "src": "817:18:12", + "scope": 2380, + "src": "743:15:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 2354, - "name": "bytes4", + "id": 2359, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "817:6:12", + "src": "743:7:12", + "stateMutability": "nonpayable", "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" + "typeIdentifier": "t_address", + "typeString": "address" } }, "visibility": "internal" } ], - "src": "816:20:12" + "src": "742:17:12" }, "returnParameters": { - "id": 2359, + "id": 2364, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2358, + "id": 2363, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2360, - "src": "860:4:12", + "scope": 2380, + "src": "783:4:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -30898,10 +31171,10 @@ "typeString": "bool" }, "typeName": { - "id": 2357, + "id": 2362, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "860:4:12", + "src": "783:4:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -30910,459 +31183,248 @@ "visibility": "internal" } ], - "src": "859:6:12" + "src": "782:6:12" }, - "scope": 2361, - "src": "790:76:12", + "scope": 2544, + "src": "719:426:12", "stateMutability": "view", "virtual": false, - "visibility": "external" - } - ], - "scope": 2362, - "src": "421:447:12", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "115:754:12" - }, - "id": 12 - }, - "@openzeppelin/contracts/utils/math/Math.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol", - "exportedSymbols": { - "Math": [ - 3415 - ] - }, - "id": 3416, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2363, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "103:24:13" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "Math", - "contractDependencies": [], - "contractKind": "library", - "documentation": { - "id": 2364, - "nodeType": "StructuredDocumentation", - "src": "129:73:13", - "text": " @dev Standard math utilities missing in the Solidity language." - }, - "fullyImplemented": true, - "id": 3415, - "linearizedBaseContracts": [ - 3415 - ], - "name": "Math", - "nameLocation": "211:4:13", - "nodeType": "ContractDefinition", - "nodes": [ - { - "documentation": { - "id": 2365, - "nodeType": "StructuredDocumentation", - "src": "222:50:13", - "text": " @dev Muldiv operation overflow." - }, - "errorSelector": "227bc153", - "id": 2367, - "name": "MathOverflowedMulDiv", - "nameLocation": "283:20:13", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 2366, - "nodeType": "ParameterList", - "parameters": [], - "src": "303:2:13" - }, - "src": "277:29:13" - }, - { - "canonicalName": "Math.Rounding", - "id": 2372, - "members": [ - { - "id": 2368, - "name": "Floor", - "nameLocation": "336:5:13", - "nodeType": "EnumValue", - "src": "336:5:13" - }, - { - "id": 2369, - "name": "Ceil", - "nameLocation": "379:4:13", - "nodeType": "EnumValue", - "src": "379:4:13" - }, - { - "id": 2370, - "name": "Trunc", - "nameLocation": "421:5:13", - "nodeType": "EnumValue", - "src": "421:5:13" - }, - { - "id": 2371, - "name": "Expand", - "nameLocation": "451:6:13", - "nodeType": "EnumValue", - "src": "451:6:13" - } - ], - "name": "Rounding", - "nameLocation": "317:8:13", - "nodeType": "EnumDefinition", - "src": "312:169:13" + "visibility": "internal" }, { "body": { - "id": 2403, + "id": 2399, "nodeType": "Block", - "src": "661:140:13", + "src": "1456:189:12", "statements": [ { - "id": 2402, - "nodeType": "UncheckedBlock", - "src": "671:124:13", - "statements": [ - { - "assignments": [ - 2385 - ], - "declarations": [ + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ { - "constant": false, - "id": 2385, - "mutability": "mutable", - "name": "c", - "nameLocation": "703:1:13", - "nodeType": "VariableDeclaration", - "scope": 2402, - "src": "695:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2384, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "695:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 2389, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2388, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2386, - "name": "a", + "id": 2391, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2375, - "src": "707:1:13", + "referencedDeclaration": 2383, + "src": "1572:7:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "id": 2387, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2377, - "src": "711:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" } - }, - "src": "707:5:13", + ], + "id": 2390, + "name": "supportsERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2380, + "src": "1557:14:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" } }, - "nodeType": "VariableDeclarationStatement", - "src": "695:17:13" + "id": 2392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1557:23:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2392, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2390, - "name": "c", + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "arguments": [ + { + "id": 2394, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2385, - "src": "730:1:13", + "referencedDeclaration": 2383, + "src": "1617:7:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 2391, - "name": "a", + { + "id": 2395, + "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2375, - "src": "734:1:13", + "referencedDeclaration": 2385, + "src": "1626:11:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" } - }, - "src": "730:5:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" } - }, - "id": 2397, - "nodeType": "IfStatement", - "src": "726:28:13", - "trueBody": { - "expression": { - "components": [ - { - "hexValue": "66616c7365", - "id": 2393, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "745:5:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - { - "hexValue": "30", - "id": 2394, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "752:1:13", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "id": 2395, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "744:10:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", - "typeString": "tuple(bool,int_const 0)" - } - }, - "functionReturnParameters": 2383, - "id": 2396, - "nodeType": "Return", - "src": "737:17:13" - } - }, - { + ], "expression": { - "components": [ + "argumentTypes": [ { - "hexValue": "74727565", - "id": 2398, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "776:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" + "typeIdentifier": "t_address", + "typeString": "address" }, { - "id": 2399, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2385, - "src": "782:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" } ], - "id": 2400, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "775:9:13", + "id": 2393, + "name": "supportsERC165InterfaceUnchecked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2543, + "src": "1584:32:12", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", - "typeString": "tuple(bool,uint256)" + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (address,bytes4) view returns (bool)" } }, - "functionReturnParameters": 2383, - "id": 2401, - "nodeType": "Return", - "src": "768:16:13" + "id": 2396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1584:54:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1557:81:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" } - ] + }, + "functionReturnParameters": 2389, + "id": 2398, + "nodeType": "Return", + "src": "1550:88:12" } ] }, "documentation": { - "id": 2373, + "id": 2381, "nodeType": "StructuredDocumentation", - "src": "487:93:13", - "text": " @dev Returns the addition of two unsigned integers, with an overflow flag." + "src": "1151:207:12", + "text": " @dev Returns true if `account` supports the interface defined by\n `interfaceId`. Support for {IERC165} itself is queried automatically.\n See {IERC165-supportsInterface}." }, - "id": 2404, + "id": 2400, "implemented": true, "kind": "function", "modifiers": [], - "name": "tryAdd", - "nameLocation": "594:6:13", + "name": "supportsInterface", + "nameLocation": "1372:17:12", "nodeType": "FunctionDefinition", "parameters": { - "id": 2378, + "id": 2386, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2375, + "id": 2383, "mutability": "mutable", - "name": "a", - "nameLocation": "609:1:13", + "name": "account", + "nameLocation": "1398:7:12", "nodeType": "VariableDeclaration", - "scope": 2404, - "src": "601:9:13", + "scope": 2400, + "src": "1390:15:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 2374, - "name": "uint256", + "id": 2382, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "601:7:13", + "src": "1390:7:12", + "stateMutability": "nonpayable", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "visibility": "internal" }, { "constant": false, - "id": 2377, + "id": 2385, "mutability": "mutable", - "name": "b", - "nameLocation": "620:1:13", + "name": "interfaceId", + "nameLocation": "1414:11:12", "nodeType": "VariableDeclaration", - "scope": 2404, - "src": "612:9:13", + "scope": 2400, + "src": "1407:18:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" }, "typeName": { - "id": 2376, - "name": "uint256", + "id": 2384, + "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "612:7:13", + "src": "1407:6:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" } }, "visibility": "internal" } ], - "src": "600:22:13" + "src": "1389:37:12" }, "returnParameters": { - "id": 2383, + "id": 2389, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2380, + "id": 2388, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2404, - "src": "646:4:13", + "scope": 2400, + "src": "1450:4:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -31370,857 +31432,1196 @@ "typeString": "bool" }, "typeName": { - "id": 2379, + "id": 2387, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "646:4:13", + "src": "1450:4:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" - }, - { - "constant": false, - "id": 2382, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2404, - "src": "652:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2381, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "652:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" } ], - "src": "645:15:13" + "src": "1449:6:12" }, - "scope": 3415, - "src": "585:216:13", - "stateMutability": "pure", + "scope": 2544, + "src": "1363:282:12", + "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2431, + "id": 2455, "nodeType": "Block", - "src": "984:113:13", + "src": "2131:560:12", "statements": [ { - "id": 2430, - "nodeType": "UncheckedBlock", - "src": "994:97:13", - "statements": [ + "assignments": [ + 2416 + ], + "declarations": [ { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2418, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2416, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2409, - "src": "1022:1:13", + "constant": false, + "id": 2416, + "mutability": "mutable", + "name": "interfaceIdsSupported", + "nameLocation": "2254:21:12", + "nodeType": "VariableDeclaration", + "scope": 2455, + "src": "2240:35:12", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[]" + }, + "typeName": { + "baseType": { + "id": 2414, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2240:4:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "id": 2417, - "name": "a", + "id": 2415, + "nodeType": "ArrayTypeName", + "src": "2240:6:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", + "typeString": "bool[]" + } + }, + "visibility": "internal" + } + ], + "id": 2423, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 2420, + "name": "interfaceIds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2407, - "src": "1026:1:13", + "referencedDeclaration": 2406, + "src": "2289:12:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr", + "typeString": "bytes4[] memory" } }, - "src": "1022:5:13", + "id": 2421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2302:6:12", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2289:19:12", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } + ], + "id": 2419, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2278:10:12", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bool_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (bool[] memory)" }, - "id": 2423, - "nodeType": "IfStatement", - "src": "1018:28:13", - "trueBody": { - "expression": { - "components": [ - { - "hexValue": "66616c7365", - "id": 2419, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1037:5:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - { - "hexValue": "30", - "id": 2420, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1044:1:13", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "id": 2421, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1036:10:13", + "typeName": { + "baseType": { + "id": 2417, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2282:4:12", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", - "typeString": "tuple(bool,int_const 0)" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "functionReturnParameters": 2415, - "id": 2422, - "nodeType": "Return", - "src": "1029:17:13" + "id": 2418, + "nodeType": "ArrayTypeName", + "src": "2282:6:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", + "typeString": "bool[]" + } } }, - { - "expression": { - "components": [ - { - "hexValue": "74727565", - "id": 2424, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1068:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" + "id": 2422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2278:31:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2240:69:12" + }, + { + "condition": { + "arguments": [ + { + "id": 2425, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2403, + "src": "2381:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2424, + "name": "supportsERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2380, + "src": "2366:14:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 2426, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2366:23:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2452, + "nodeType": "IfStatement", + "src": "2362:284:12", + "trueBody": { + "id": 2451, + "nodeType": "Block", + "src": "2391:255:12", + "statements": [ + { + "body": { + "id": 2449, + "nodeType": "Block", + "src": "2518:118:12", + "statements": [ + { + "expression": { + "id": 2447, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 2438, + "name": "interfaceIdsSupported", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2416, + "src": "2536:21:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[] memory" + } + }, + "id": 2440, + "indexExpression": { + "id": 2439, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2428, + "src": "2558:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2536:24:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 2442, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2403, + "src": "2596:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "id": 2443, + "name": "interfaceIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2406, + "src": "2605:12:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr", + "typeString": "bytes4[] memory" + } + }, + "id": 2445, + "indexExpression": { + "id": 2444, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2428, + "src": "2618:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2605:15:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2441, + "name": "supportsERC165InterfaceUnchecked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2543, + "src": "2563:32:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (address,bytes4) view returns (bool)" + } + }, + "id": 2446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2563:58:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2536:85:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2448, + "nodeType": "ExpressionStatement", + "src": "2536:85:12" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - { - "commonType": { + "id": 2434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2431, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2428, + "src": "2488:1:12", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 2432, + "name": "interfaceIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2406, + "src": "2492:12:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr", + "typeString": "bytes4[] memory" + } }, - "id": 2427, + "id": 2433, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { - "id": 2425, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2407, - "src": "1074:1:13", + "memberLocation": "2505:6:12", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2492:19:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2488:23:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2450, + "initializationExpression": { + "assignments": [ + 2428 + ], + "declarations": [ + { + "constant": false, + "id": 2428, + "mutability": "mutable", + "name": "i", + "nameLocation": "2481:1:12", + "nodeType": "VariableDeclaration", + "scope": 2450, + "src": "2473:9:12", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } + }, + "typeName": { + "id": 2427, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2473:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2430, + "initialValue": { + "hexValue": "30", + "id": 2429, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2485:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 2426, - "name": "b", + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2473:13:12" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 2436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2513:3:12", + "subExpression": { + "id": 2435, + "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2409, - "src": "1078:1:13", + "referencedDeclaration": 2428, + "src": "2513:1:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1074:5:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - } - ], - "id": 2428, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1067:13:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", - "typeString": "tuple(bool,uint256)" - } - }, - "functionReturnParameters": 2415, - "id": 2429, - "nodeType": "Return", - "src": "1060:20:13" + }, + "id": 2437, + "nodeType": "ExpressionStatement", + "src": "2513:3:12" + }, + "nodeType": "ForStatement", + "src": "2468:168:12" + } + ] + } + }, + { + "expression": { + "id": 2453, + "name": "interfaceIdsSupported", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2416, + "src": "2663:21:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[] memory" } - ] + }, + "functionReturnParameters": 2411, + "id": 2454, + "nodeType": "Return", + "src": "2656:28:12" } ] }, "documentation": { - "id": 2405, + "id": 2401, "nodeType": "StructuredDocumentation", - "src": "807:96:13", - "text": " @dev Returns the subtraction of two unsigned integers, with an overflow flag." + "src": "1651:336:12", + "text": " @dev Returns a boolean array where each value corresponds to the\n interfaces passed in and whether they're supported or not. This allows\n you to batch check interfaces for a contract where your expectation\n is that some interfaces may not be supported.\n See {IERC165-supportsInterface}." }, - "id": 2432, + "id": 2456, "implemented": true, "kind": "function", "modifiers": [], - "name": "trySub", - "nameLocation": "917:6:13", + "name": "getSupportedInterfaces", + "nameLocation": "2001:22:12", "nodeType": "FunctionDefinition", "parameters": { - "id": 2410, + "id": 2407, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2407, + "id": 2403, "mutability": "mutable", - "name": "a", - "nameLocation": "932:1:13", + "name": "account", + "nameLocation": "2041:7:12", "nodeType": "VariableDeclaration", - "scope": 2432, - "src": "924:9:13", + "scope": 2456, + "src": "2033:15:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 2406, - "name": "uint256", + "id": 2402, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "924:7:13", + "src": "2033:7:12", + "stateMutability": "nonpayable", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "visibility": "internal" }, { "constant": false, - "id": 2409, + "id": 2406, "mutability": "mutable", - "name": "b", - "nameLocation": "943:1:13", + "name": "interfaceIds", + "nameLocation": "2074:12:12", "nodeType": "VariableDeclaration", - "scope": 2432, - "src": "935:9:13", + "scope": 2456, + "src": "2058:28:12", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr", + "typeString": "bytes4[]" }, "typeName": { - "id": 2408, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "935:7:13", + "baseType": { + "id": 2404, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "2058:6:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "id": 2405, + "nodeType": "ArrayTypeName", + "src": "2058:8:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_bytes4_$dyn_storage_ptr", + "typeString": "bytes4[]" } }, "visibility": "internal" } ], - "src": "923:22:13" + "src": "2023:69:12" }, "returnParameters": { - "id": 2415, + "id": 2411, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2412, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2432, - "src": "969:4:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2411, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "969:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2414, + "id": 2410, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2432, - "src": "975:7:13", + "scope": 2456, + "src": "2116:13:12", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[]" }, "typeName": { - "id": 2413, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "975:7:13", + "baseType": { + "id": 2408, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2116:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2409, + "nodeType": "ArrayTypeName", + "src": "2116:6:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", + "typeString": "bool[]" } }, "visibility": "internal" } ], - "src": "968:15:13" + "src": "2115:15:12" }, - "scope": 3415, - "src": "908:189:13", - "stateMutability": "pure", + "scope": 2544, + "src": "1992:699:12", + "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2473, + "id": 2501, "nodeType": "Block", - "src": "1283:417:13", + "src": "3133:436:12", "statements": [ { - "id": 2472, - "nodeType": "UncheckedBlock", - "src": "1293:401:13", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2444, - "name": "a", + "condition": { + "id": 2470, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3189:24:12", + "subExpression": { + "arguments": [ + { + "id": 2468, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2435, - "src": "1551:1:13", + "referencedDeclaration": 2459, + "src": "3205:7:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 2445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1556:1:13", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1551:6:13", + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2467, + "name": "supportsERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2380, + "src": "3190:14:12", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" } }, - "id": 2451, - "nodeType": "IfStatement", - "src": "1547:28:13", - "trueBody": { + "id": 2469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3190:23:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2474, + "nodeType": "IfStatement", + "src": "3185:67:12", + "trueBody": { + "id": 2473, + "nodeType": "Block", + "src": "3215:37:12", + "statements": [ + { "expression": { - "components": [ - { - "hexValue": "74727565", - "id": 2447, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1567:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - { - "hexValue": "30", - "id": 2448, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1573:1:13", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "id": 2449, + "hexValue": "66616c7365", + "id": 2471, "isConstant": false, - "isInlineArray": false, "isLValue": false, "isPure": true, + "kind": "bool", "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1566:9:13", + "nodeType": "Literal", + "src": "3236:5:12", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", - "typeString": "tuple(bool,int_const 0)" - } + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" }, - "functionReturnParameters": 2443, - "id": 2450, + "functionReturnParameters": 2466, + "id": 2472, "nodeType": "Return", - "src": "1559:16:13" + "src": "3229:12:12" } - }, - { - "assignments": [ - 2453 - ], - "declarations": [ - { - "constant": false, - "id": 2453, - "mutability": "mutable", - "name": "c", - "nameLocation": "1597:1:13", - "nodeType": "VariableDeclaration", - "scope": 2472, - "src": "1589:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2452, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1589:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 2457, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2454, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2435, - "src": "1601:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 2455, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2437, - "src": "1605:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1601:5:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1589:17:13" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2462, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2460, + ] + } + }, + { + "body": { + "id": 2497, + "nodeType": "Block", + "src": "3371:134:12", + "statements": [ + { + "condition": { + "id": 2492, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { - "id": 2458, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2453, - "src": "1624:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 2459, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2435, - "src": "1628:1:13", + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3389:59:12", + "subExpression": { + "arguments": [ + { + "id": 2487, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2459, + "src": "3423:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "id": 2488, + "name": "interfaceIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2462, + "src": "3432:12:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr", + "typeString": "bytes4[] memory" + } + }, + "id": 2490, + "indexExpression": { + "id": 2489, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2476, + "src": "3445:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3432:15:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2486, + "name": "supportsERC165InterfaceUnchecked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2543, + "src": "3390:32:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (address,bytes4) view returns (bool)" + } + }, + "id": 2491, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3390:58:12", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "src": "1624:5:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 2461, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2437, - "src": "1633:1:13", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "src": "1624:10:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2467, - "nodeType": "IfStatement", - "src": "1620:33:13", - "trueBody": { - "expression": { - "components": [ - { - "hexValue": "66616c7365", - "id": 2463, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1644:5:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, + "id": 2496, + "nodeType": "IfStatement", + "src": "3385:110:12", + "trueBody": { + "id": 2495, + "nodeType": "Block", + "src": "3450:45:12", + "statements": [ { - "hexValue": "30", - "id": 2464, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1651:1:13", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "expression": { + "hexValue": "66616c7365", + "id": 2493, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3475:5:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" }, - "value": "0" + "functionReturnParameters": 2466, + "id": 2494, + "nodeType": "Return", + "src": "3468:12:12" } - ], - "id": 2465, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1643:10:13", + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2479, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2476, + "src": "3341:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 2480, + "name": "interfaceIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2462, + "src": "3345:12:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr", + "typeString": "bytes4[] memory" + } + }, + "id": 2481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3358:6:12", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3345:19:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3341:23:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2498, + "initializationExpression": { + "assignments": [ + 2476 + ], + "declarations": [ + { + "constant": false, + "id": 2476, + "mutability": "mutable", + "name": "i", + "nameLocation": "3334:1:12", + "nodeType": "VariableDeclaration", + "scope": 2498, + "src": "3326:9:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2475, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3326:7:12", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", - "typeString": "tuple(bool,int_const 0)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "functionReturnParameters": 2443, - "id": 2466, - "nodeType": "Return", - "src": "1636:17:13" + "visibility": "internal" } + ], + "id": 2478, + "initialValue": { + "hexValue": "30", + "id": 2477, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3338:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - { - "expression": { - "components": [ - { - "hexValue": "74727565", - "id": 2468, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1675:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - { - "id": 2469, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2453, - "src": "1681:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2470, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1674:9:13", + "nodeType": "VariableDeclarationStatement", + "src": "3326:13:12" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 2484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3366:3:12", + "subExpression": { + "id": 2483, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2476, + "src": "3366:1:12", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", - "typeString": "tuple(bool,uint256)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "functionReturnParameters": 2443, - "id": 2471, - "nodeType": "Return", - "src": "1667:16:13" - } - ] + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2485, + "nodeType": "ExpressionStatement", + "src": "3366:3:12" + }, + "nodeType": "ForStatement", + "src": "3321:184:12" + }, + { + "expression": { + "hexValue": "74727565", + "id": 2499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3558:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 2466, + "id": 2500, + "nodeType": "Return", + "src": "3551:11:12" } ] }, "documentation": { - "id": 2433, + "id": 2457, "nodeType": "StructuredDocumentation", - "src": "1103:99:13", - "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag." + "src": "2697:324:12", + "text": " @dev Returns true if `account` supports all the interfaces defined in\n `interfaceIds`. Support for {IERC165} itself is queried automatically.\n Batch-querying can lead to gas savings by skipping repeated checks for\n {IERC165} support.\n See {IERC165-supportsInterface}." }, - "id": 2474, + "id": 2502, "implemented": true, "kind": "function", "modifiers": [], - "name": "tryMul", - "nameLocation": "1216:6:13", + "name": "supportsAllInterfaces", + "nameLocation": "3035:21:12", "nodeType": "FunctionDefinition", "parameters": { - "id": 2438, + "id": 2463, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2435, + "id": 2459, "mutability": "mutable", - "name": "a", - "nameLocation": "1231:1:13", + "name": "account", + "nameLocation": "3065:7:12", "nodeType": "VariableDeclaration", - "scope": 2474, - "src": "1223:9:13", + "scope": 2502, + "src": "3057:15:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 2434, - "name": "uint256", + "id": 2458, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "1223:7:13", + "src": "3057:7:12", + "stateMutability": "nonpayable", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "visibility": "internal" }, { "constant": false, - "id": 2437, + "id": 2462, "mutability": "mutable", - "name": "b", - "nameLocation": "1242:1:13", + "name": "interfaceIds", + "nameLocation": "3090:12:12", "nodeType": "VariableDeclaration", - "scope": 2474, - "src": "1234:9:13", + "scope": 2502, + "src": "3074:28:12", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr", + "typeString": "bytes4[]" }, "typeName": { - "id": 2436, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1234:7:13", + "baseType": { + "id": 2460, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3074:6:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "id": 2461, + "nodeType": "ArrayTypeName", + "src": "3074:8:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_bytes4_$dyn_storage_ptr", + "typeString": "bytes4[]" } }, "visibility": "internal" } ], - "src": "1222:22:13" + "src": "3056:47:12" }, "returnParameters": { - "id": 2443, + "id": 2466, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2440, + "id": 2465, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2474, - "src": "1268:4:13", + "scope": 2502, + "src": "3127:4:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -32228,340 +32629,746 @@ "typeString": "bool" }, "typeName": { - "id": 2439, + "id": 2464, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1268:4:13", + "src": "3127:4:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" - }, - { - "constant": false, - "id": 2442, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2474, - "src": "1274:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2441, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1274:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" } ], - "src": "1267:15:13" + "src": "3126:6:12" }, - "scope": 3415, - "src": "1207:493:13", - "stateMutability": "pure", + "scope": 2544, + "src": "3026:543:12", + "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2501, + "id": 2542, "nodeType": "Block", - "src": "1887:114:13", + "src": "4505:524:12", "statements": [ { - "id": 2500, - "nodeType": "UncheckedBlock", - "src": "1897:98:13", - "statements": [ + "assignments": [ + 2513 + ], + "declarations": [ { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2488, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2486, - "name": "b", + "constant": false, + "id": 2513, + "mutability": "mutable", + "name": "encodedParams", + "nameLocation": "4552:13:12", + "nodeType": "VariableDeclaration", + "scope": 2542, + "src": "4539:26:12", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2512, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4539:5:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 2521, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 2516, + "name": "IERC165", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2479, - "src": "1925:1:13", + "referencedDeclaration": 2556, + "src": "4583:7:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_type$_t_contract$_IERC165_$2556_$", + "typeString": "type(contract IERC165)" } }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 2487, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1930:1:13", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1925:6:13", + "id": 2517, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4591:17:12", + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 2555, + "src": "4583:25:12", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_function_declaration_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function IERC165.supportsInterface(bytes4) view returns (bool)" } }, - "id": 2493, - "nodeType": "IfStatement", - "src": "1921:29:13", - "trueBody": { - "expression": { - "components": [ - { - "hexValue": "66616c7365", - "id": 2489, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1941:5:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - { - "hexValue": "30", - "id": 2490, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1948:1:13", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + { + "components": [ + { + "id": 2518, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2507, + "src": "4611:11:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" } - ], - "id": 2491, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1940:10:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", - "typeString": "tuple(bool,int_const 0)" } + ], + "id": 2519, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4610:13:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_function_declaration_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function IERC165.supportsInterface(bytes4) view returns (bool)" }, - "functionReturnParameters": 2485, - "id": 2492, - "nodeType": "Return", - "src": "1933:17:13" + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 2514, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "4568:3:12", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2515, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4572:10:12", + "memberName": "encodeCall", + "nodeType": "MemberAccess", + "src": "4568:14:12", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" } }, + "id": 2520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4568:56:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4539:85:12" + }, + { + "assignments": [ + 2523 + ], + "declarations": [ { - "expression": { - "components": [ - { - "hexValue": "74727565", - "id": 2494, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1972:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "constant": false, + "id": 2523, + "mutability": "mutable", + "name": "success", + "nameLocation": "4671:7:12", + "nodeType": "VariableDeclaration", + "scope": 2542, + "src": "4666:12:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2522, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4666:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 2524, + "nodeType": "VariableDeclarationStatement", + "src": "4666:12:12" + }, + { + "assignments": [ + 2526 + ], + "declarations": [ + { + "constant": false, + "id": 2526, + "mutability": "mutable", + "name": "returnSize", + "nameLocation": "4696:10:12", + "nodeType": "VariableDeclaration", + "scope": 2542, + "src": "4688:18:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2525, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4688:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2527, + "nodeType": "VariableDeclarationStatement", + "src": "4688:18:12" + }, + { + "assignments": [ + 2529 + ], + "declarations": [ + { + "constant": false, + "id": 2529, + "mutability": "mutable", + "name": "returnValue", + "nameLocation": "4724:11:12", + "nodeType": "VariableDeclaration", + "scope": 2542, + "src": "4716:19:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2528, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4716:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2530, + "nodeType": "VariableDeclarationStatement", + "src": "4716:19:12" + }, + { + "AST": { + "nativeSrc": "4754:203:12", + "nodeType": "YulBlock", + "src": "4754:203:12", + "statements": [ + { + "nativeSrc": "4768:97:12", + "nodeType": "YulAssignment", + "src": "4768:97:12", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4790:5:12", + "nodeType": "YulLiteral", + "src": "4790:5:12", + "type": "", + "value": "30000" }, - "value": "true" - }, - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "name": "account", + "nativeSrc": "4797:7:12", + "nodeType": "YulIdentifier", + "src": "4797:7:12" }, - "id": 2497, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2495, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2477, - "src": "1978:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + { + "arguments": [ + { + "name": "encodedParams", + "nativeSrc": "4810:13:12", + "nodeType": "YulIdentifier", + "src": "4810:13:12" + }, + { + "kind": "number", + "nativeSrc": "4825:4:12", + "nodeType": "YulLiteral", + "src": "4825:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4806:3:12", + "nodeType": "YulIdentifier", + "src": "4806:3:12" + }, + "nativeSrc": "4806:24:12", + "nodeType": "YulFunctionCall", + "src": "4806:24:12" }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 2496, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2479, - "src": "1982:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + { + "arguments": [ + { + "name": "encodedParams", + "nativeSrc": "4838:13:12", + "nodeType": "YulIdentifier", + "src": "4838:13:12" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4832:5:12", + "nodeType": "YulIdentifier", + "src": "4832:5:12" + }, + "nativeSrc": "4832:20:12", + "nodeType": "YulFunctionCall", + "src": "4832:20:12" }, - "src": "1978:5:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "kind": "number", + "nativeSrc": "4854:4:12", + "nodeType": "YulLiteral", + "src": "4854:4:12", + "type": "", + "value": "0x00" + }, + { + "kind": "number", + "nativeSrc": "4860:4:12", + "nodeType": "YulLiteral", + "src": "4860:4:12", + "type": "", + "value": "0x20" } + ], + "functionName": { + "name": "staticcall", + "nativeSrc": "4779:10:12", + "nodeType": "YulIdentifier", + "src": "4779:10:12" + }, + "nativeSrc": "4779:86:12", + "nodeType": "YulFunctionCall", + "src": "4779:86:12" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "4768:7:12", + "nodeType": "YulIdentifier", + "src": "4768:7:12" } - ], - "id": 2498, + ] + }, + { + "nativeSrc": "4878:30:12", + "nodeType": "YulAssignment", + "src": "4878:30:12", + "value": { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nativeSrc": "4892:14:12", + "nodeType": "YulIdentifier", + "src": "4892:14:12" + }, + "nativeSrc": "4892:16:12", + "nodeType": "YulFunctionCall", + "src": "4892:16:12" + }, + "variableNames": [ + { + "name": "returnSize", + "nativeSrc": "4878:10:12", + "nodeType": "YulIdentifier", + "src": "4878:10:12" + } + ] + }, + { + "nativeSrc": "4921:26:12", + "nodeType": "YulAssignment", + "src": "4921:26:12", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4942:4:12", + "nodeType": "YulLiteral", + "src": "4942:4:12", + "type": "", + "value": "0x00" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4936:5:12", + "nodeType": "YulIdentifier", + "src": "4936:5:12" + }, + "nativeSrc": "4936:11:12", + "nodeType": "YulFunctionCall", + "src": "4936:11:12" + }, + "variableNames": [ + { + "name": "returnValue", + "nativeSrc": "4921:11:12", + "nodeType": "YulIdentifier", + "src": "4921:11:12" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2505, + "isOffset": false, + "isSlot": false, + "src": "4797:7:12", + "valueSize": 1 + }, + { + "declaration": 2513, + "isOffset": false, + "isSlot": false, + "src": "4810:13:12", + "valueSize": 1 + }, + { + "declaration": 2513, + "isOffset": false, + "isSlot": false, + "src": "4838:13:12", + "valueSize": 1 + }, + { + "declaration": 2526, + "isOffset": false, + "isSlot": false, + "src": "4878:10:12", + "valueSize": 1 + }, + { + "declaration": 2529, + "isOffset": false, + "isSlot": false, + "src": "4921:11:12", + "valueSize": 1 + }, + { + "declaration": 2523, + "isOffset": false, + "isSlot": false, + "src": "4768:7:12", + "valueSize": 1 + } + ], + "id": 2531, + "nodeType": "InlineAssembly", + "src": "4745:212:12" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2532, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2523, + "src": "4974:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2535, "isConstant": false, - "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1971:13:13", + "leftExpression": { + "id": 2533, + "name": "returnSize", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2526, + "src": "4985:10:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "hexValue": "30783230", + "id": 2534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4999:4:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "0x20" + }, + "src": "4985:18:12", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", - "typeString": "tuple(bool,uint256)" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "functionReturnParameters": 2485, - "id": 2499, - "nodeType": "Return", - "src": "1964:20:13" + "src": "4974:29:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2537, + "name": "returnValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2529, + "src": "5007:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2538, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5021:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5007:15:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4974:48:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" } - ] + }, + "functionReturnParameters": 2511, + "id": 2541, + "nodeType": "Return", + "src": "4967:55:12" } ] }, "documentation": { - "id": 2475, + "id": 2503, "nodeType": "StructuredDocumentation", - "src": "1706:100:13", - "text": " @dev Returns the division of two unsigned integers, with a division by zero flag." + "src": "3575:817:12", + "text": " @notice Query if a contract implements an interface, does not check ERC165 support\n @param account The address of the contract to query for support of an interface\n @param interfaceId The interface identifier, as specified in ERC-165\n @return true if the contract at account indicates support of the interface with\n identifier interfaceId, false otherwise\n @dev Assumes that account contains a contract that supports ERC165, otherwise\n the behavior of this method is undefined. This precondition can be checked\n with {supportsERC165}.\n Some precompiled contracts will falsely indicate support for a given interface, so caution\n should be exercised when using this function.\n Interface identification is specified in ERC-165." }, - "id": 2502, + "id": 2543, "implemented": true, "kind": "function", "modifiers": [], - "name": "tryDiv", - "nameLocation": "1820:6:13", + "name": "supportsERC165InterfaceUnchecked", + "nameLocation": "4406:32:12", "nodeType": "FunctionDefinition", "parameters": { - "id": 2480, + "id": 2508, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2477, + "id": 2505, "mutability": "mutable", - "name": "a", - "nameLocation": "1835:1:13", + "name": "account", + "nameLocation": "4447:7:12", "nodeType": "VariableDeclaration", - "scope": 2502, - "src": "1827:9:13", + "scope": 2543, + "src": "4439:15:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 2476, - "name": "uint256", + "id": 2504, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "1827:7:13", + "src": "4439:7:12", + "stateMutability": "nonpayable", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "visibility": "internal" }, { "constant": false, - "id": 2479, + "id": 2507, "mutability": "mutable", - "name": "b", - "nameLocation": "1846:1:13", + "name": "interfaceId", + "nameLocation": "4463:11:12", "nodeType": "VariableDeclaration", - "scope": 2502, - "src": "1838:9:13", + "scope": 2543, + "src": "4456:18:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" }, "typeName": { - "id": 2478, - "name": "uint256", + "id": 2506, + "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "1838:7:13", + "src": "4456:6:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" } }, "visibility": "internal" } ], - "src": "1826:22:13" + "src": "4438:37:12" }, "returnParameters": { - "id": 2485, + "id": 2511, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2482, + "id": 2510, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2502, - "src": "1872:4:13", + "scope": 2543, + "src": "4499:4:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -32569,127 +33376,432 @@ "typeString": "bool" }, "typeName": { - "id": 2481, + "id": 2509, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1872:4:13", + "src": "4499:4:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" - }, - { - "constant": false, - "id": 2484, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2502, - "src": "1878:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2483, - "name": "uint256", + } + ], + "src": "4498:6:12" + }, + "scope": 2544, + "src": "4397:632:12", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 2545, + "src": "465:4566:12", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "121:4911:12" + }, + "id": 12 + }, + "@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "exportedSymbols": { + "IERC165": [ + 2556 + ] + }, + "id": 2557, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2546, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "115:24:13" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC165", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 2547, + "nodeType": "StructuredDocumentation", + "src": "141:279:13", + "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "fullyImplemented": false, + "id": 2556, + "linearizedBaseContracts": [ + 2556 + ], + "name": "IERC165", + "nameLocation": "431:7:13", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 2548, + "nodeType": "StructuredDocumentation", + "src": "445:340:13", + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 2555, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "799:17:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2551, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2550, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "824:11:13", + "nodeType": "VariableDeclaration", + "scope": 2555, + "src": "817:18:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2549, + "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "1878:7:13", + "src": "817:6:13", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" } }, "visibility": "internal" } ], - "src": "1871:15:13" + "src": "816:20:13" }, - "scope": 3415, - "src": "1811:190:13", - "stateMutability": "pure", + "returnParameters": { + "id": 2554, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2553, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2555, + "src": "860:4:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2552, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "860:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "859:6:13" + }, + "scope": 2556, + "src": "790:76:13", + "stateMutability": "view", "virtual": false, - "visibility": "internal" + "visibility": "external" + } + ], + "scope": 2557, + "src": "421:447:13", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "115:754:13" + }, + "id": 13 + }, + "@openzeppelin/contracts/utils/math/Math.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol", + "exportedSymbols": { + "Math": [ + 3610 + ] + }, + "id": 3611, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2558, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "103:24:14" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Math", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2559, + "nodeType": "StructuredDocumentation", + "src": "129:73:14", + "text": " @dev Standard math utilities missing in the Solidity language." + }, + "fullyImplemented": true, + "id": 3610, + "linearizedBaseContracts": [ + 3610 + ], + "name": "Math", + "nameLocation": "211:4:14", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 2560, + "nodeType": "StructuredDocumentation", + "src": "222:50:14", + "text": " @dev Muldiv operation overflow." + }, + "errorSelector": "227bc153", + "id": 2562, + "name": "MathOverflowedMulDiv", + "nameLocation": "283:20:14", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2561, + "nodeType": "ParameterList", + "parameters": [], + "src": "303:2:14" + }, + "src": "277:29:14" + }, + { + "canonicalName": "Math.Rounding", + "id": 2567, + "members": [ + { + "id": 2563, + "name": "Floor", + "nameLocation": "336:5:14", + "nodeType": "EnumValue", + "src": "336:5:14" + }, + { + "id": 2564, + "name": "Ceil", + "nameLocation": "379:4:14", + "nodeType": "EnumValue", + "src": "379:4:14" + }, + { + "id": 2565, + "name": "Trunc", + "nameLocation": "421:5:14", + "nodeType": "EnumValue", + "src": "421:5:14" + }, + { + "id": 2566, + "name": "Expand", + "nameLocation": "451:6:14", + "nodeType": "EnumValue", + "src": "451:6:14" + } + ], + "name": "Rounding", + "nameLocation": "317:8:14", + "nodeType": "EnumDefinition", + "src": "312:169:14" }, { "body": { - "id": 2529, + "id": 2598, "nodeType": "Block", - "src": "2198:114:13", + "src": "661:140:14", "statements": [ { - "id": 2528, + "id": 2597, "nodeType": "UncheckedBlock", - "src": "2208:98:13", + "src": "671:124:14", "statements": [ { - "condition": { + "assignments": [ + 2580 + ], + "declarations": [ + { + "constant": false, + "id": 2580, + "mutability": "mutable", + "name": "c", + "nameLocation": "703:1:14", + "nodeType": "VariableDeclaration", + "scope": 2597, + "src": "695:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2579, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "695:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2584, + "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2516, + "id": 2583, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2514, + "id": 2581, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2570, + "src": "707:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 2582, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2507, - "src": "2236:1:13", + "referencedDeclaration": 2572, + "src": "711:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "707:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "695:17:14" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2587, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2585, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2580, + "src": "730:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": "==", + "operator": "<", "rightExpression": { - "hexValue": "30", - "id": 2515, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2241:1:13", + "id": 2586, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2570, + "src": "734:1:14", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "src": "2236:6:13", + "src": "730:5:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2521, + "id": 2592, "nodeType": "IfStatement", - "src": "2232:29:13", + "src": "726:28:14", "trueBody": { "expression": { "components": [ { "hexValue": "66616c7365", - "id": 2517, + "id": 2588, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2252:5:13", + "src": "745:5:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -32698,14 +33810,14 @@ }, { "hexValue": "30", - "id": 2518, + "id": 2589, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2259:1:13", + "src": "752:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -32713,23 +33825,23 @@ "value": "0" } ], - "id": 2519, + "id": 2590, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2251:10:13", + "src": "744:10:14", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", "typeString": "tuple(bool,int_const 0)" } }, - "functionReturnParameters": 2513, - "id": 2520, + "functionReturnParameters": 2578, + "id": 2591, "nodeType": "Return", - "src": "2244:17:13" + "src": "737:17:14" } }, { @@ -32737,14 +33849,14 @@ "components": [ { "hexValue": "74727565", - "id": 2522, + "id": 2593, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2283:4:13", + "src": "776:4:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -32752,96 +33864,66 @@ "value": "true" }, { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2525, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2523, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2505, - "src": "2289:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "id": 2524, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2507, - "src": "2293:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2289:5:13", + "id": 2594, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2580, + "src": "782:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 2526, + "id": 2595, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2282:13:13", + "src": "775:9:14", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", "typeString": "tuple(bool,uint256)" } }, - "functionReturnParameters": 2513, - "id": 2527, + "functionReturnParameters": 2578, + "id": 2596, "nodeType": "Return", - "src": "2275:20:13" + "src": "768:16:14" } ] } ] }, "documentation": { - "id": 2503, + "id": 2568, "nodeType": "StructuredDocumentation", - "src": "2007:110:13", - "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag." + "src": "487:93:14", + "text": " @dev Returns the addition of two unsigned integers, with an overflow flag." }, - "id": 2530, + "id": 2599, "implemented": true, "kind": "function", "modifiers": [], - "name": "tryMod", - "nameLocation": "2131:6:13", + "name": "tryAdd", + "nameLocation": "594:6:14", "nodeType": "FunctionDefinition", "parameters": { - "id": 2508, + "id": 2573, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2505, + "id": 2570, "mutability": "mutable", "name": "a", - "nameLocation": "2146:1:13", + "nameLocation": "609:1:14", "nodeType": "VariableDeclaration", - "scope": 2530, - "src": "2138:9:13", + "scope": 2599, + "src": "601:9:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -32849,10 +33931,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2504, + "id": 2569, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2138:7:13", + "src": "601:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -32862,13 +33944,13 @@ }, { "constant": false, - "id": 2507, + "id": 2572, "mutability": "mutable", "name": "b", - "nameLocation": "2157:1:13", + "nameLocation": "620:1:14", "nodeType": "VariableDeclaration", - "scope": 2530, - "src": "2149:9:13", + "scope": 2599, + "src": "612:9:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -32876,10 +33958,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2506, + "id": 2571, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2149:7:13", + "src": "612:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -32888,21 +33970,21 @@ "visibility": "internal" } ], - "src": "2137:22:13" + "src": "600:22:14" }, "returnParameters": { - "id": 2513, + "id": 2578, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2510, + "id": 2575, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2530, - "src": "2183:4:13", + "scope": 2599, + "src": "646:4:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -32910,10 +33992,10 @@ "typeString": "bool" }, "typeName": { - "id": 2509, + "id": 2574, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2183:4:13", + "src": "646:4:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -32923,13 +34005,13 @@ }, { "constant": false, - "id": 2512, + "id": 2577, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2530, - "src": "2189:7:13", + "scope": 2599, + "src": "652:7:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -32937,10 +34019,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2511, + "id": 2576, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2189:7:13", + "src": "652:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -32949,340 +34031,236 @@ "visibility": "internal" } ], - "src": "2182:15:13" + "src": "645:15:14" }, - "scope": 3415, - "src": "2122:190:13", + "scope": 3610, + "src": "585:216:14", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2547, + "id": 2626, "nodeType": "Block", - "src": "2449:37:13", + "src": "984:113:14", "statements": [ { - "expression": { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2540, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2533, - "src": "2466:1:13", - "typeDescriptions": { + "id": 2625, + "nodeType": "UncheckedBlock", + "src": "994:97:14", + "statements": [ + { + "condition": { + "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "id": 2541, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2535, - "src": "2470:1:13", + }, + "id": 2613, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2611, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2604, + "src": "1022:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 2612, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "1026:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1022:5:14", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "src": "2466:5:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "id": 2544, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2535, - "src": "2478:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2545, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "2466:13:13", - "trueExpression": { - "id": 2543, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2533, - "src": "2474:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "id": 2618, + "nodeType": "IfStatement", + "src": "1018:28:14", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2614, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1037:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 2615, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1044:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2616, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1036:10:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2610, + "id": 2617, + "nodeType": "Return", + "src": "1029:17:14" } }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2539, - "id": 2546, - "nodeType": "Return", - "src": "2459:20:13" - } - ] - }, - "documentation": { - "id": 2531, - "nodeType": "StructuredDocumentation", - "src": "2318:59:13", - "text": " @dev Returns the largest of two numbers." - }, - "id": 2548, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "max", - "nameLocation": "2391:3:13", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2536, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2533, - "mutability": "mutable", - "name": "a", - "nameLocation": "2403:1:13", - "nodeType": "VariableDeclaration", - "scope": 2548, - "src": "2395:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2532, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2395:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2535, - "mutability": "mutable", - "name": "b", - "nameLocation": "2414:1:13", - "nodeType": "VariableDeclaration", - "scope": 2548, - "src": "2406:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2534, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2406:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2394:22:13" - }, - "returnParameters": { - "id": 2539, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2538, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2548, - "src": "2440:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2537, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2440:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2439:9:13" - }, - "scope": 3415, - "src": "2382:104:13", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2565, - "nodeType": "Block", - "src": "2624:37:13", - "statements": [ - { - "expression": { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2560, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2558, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2551, - "src": "2641:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 2559, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2553, - "src": "2645:1:13", + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2619, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1068:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2620, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "1074:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 2621, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2604, + "src": "1078:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1074:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2623, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1067:13:14", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" } }, - "src": "2641:5:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "id": 2562, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2553, - "src": "2653:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "2641:13:13", - "trueExpression": { - "id": 2561, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2551, - "src": "2649:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "functionReturnParameters": 2610, + "id": 2624, + "nodeType": "Return", + "src": "1060:20:14" } - }, - "functionReturnParameters": 2557, - "id": 2564, - "nodeType": "Return", - "src": "2634:20:13" + ] } ] }, "documentation": { - "id": 2549, + "id": 2600, "nodeType": "StructuredDocumentation", - "src": "2492:60:13", - "text": " @dev Returns the smallest of two numbers." + "src": "807:96:14", + "text": " @dev Returns the subtraction of two unsigned integers, with an overflow flag." }, - "id": 2566, + "id": 2627, "implemented": true, "kind": "function", "modifiers": [], - "name": "min", - "nameLocation": "2566:3:13", + "name": "trySub", + "nameLocation": "917:6:14", "nodeType": "FunctionDefinition", "parameters": { - "id": 2554, + "id": 2605, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2551, + "id": 2602, "mutability": "mutable", "name": "a", - "nameLocation": "2578:1:13", + "nameLocation": "932:1:14", "nodeType": "VariableDeclaration", - "scope": 2566, - "src": "2570:9:13", + "scope": 2627, + "src": "924:9:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33290,10 +34268,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2550, + "id": 2601, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2570:7:13", + "src": "924:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -33303,13 +34281,13 @@ }, { "constant": false, - "id": 2553, + "id": 2604, "mutability": "mutable", "name": "b", - "nameLocation": "2589:1:13", + "nameLocation": "943:1:14", "nodeType": "VariableDeclaration", - "scope": 2566, - "src": "2581:9:13", + "scope": 2627, + "src": "935:9:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33317,10 +34295,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2552, + "id": 2603, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2581:7:13", + "src": "935:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -33329,21 +34307,48 @@ "visibility": "internal" } ], - "src": "2569:22:13" + "src": "923:22:14" }, "returnParameters": { - "id": 2557, + "id": 2610, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2556, + "id": 2607, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2627, + "src": "969:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2606, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "969:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2609, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2566, - "src": "2615:7:13", + "scope": 2627, + "src": "975:7:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33351,10 +34356,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2555, + "id": 2608, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2615:7:13", + "src": "975:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -33363,222 +34368,420 @@ "visibility": "internal" } ], - "src": "2614:9:13" + "src": "968:15:14" }, - "scope": 3415, - "src": "2557:104:13", + "scope": 3610, + "src": "908:189:14", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2588, + "id": 2668, "nodeType": "Block", - "src": "2845:82:13", + "src": "1283:417:14", "statements": [ { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "id": 2667, + "nodeType": "UncheckedBlock", + "src": "1293:401:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2639, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2630, + "src": "1551:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1556:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1551:6:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2646, + "nodeType": "IfStatement", + "src": "1547:28:14", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1567:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "hexValue": "30", + "id": 2643, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1573:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2644, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1566:9:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2638, + "id": 2645, + "nodeType": "Return", + "src": "1559:16:14" + } }, - "id": 2586, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ + { + "assignments": [ + 2648 + ], + "declarations": [ { + "constant": false, + "id": 2648, + "mutability": "mutable", + "name": "c", + "nameLocation": "1597:1:14", + "nodeType": "VariableDeclaration", + "scope": 2667, + "src": "1589:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2647, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1589:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2652, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2649, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2630, + "src": "1601:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2650, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2632, + "src": "1605:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1601:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1589:17:14" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2578, + "id": 2655, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2576, - "name": "a", + "id": 2653, + "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2569, - "src": "2900:1:13", + "referencedDeclaration": 2648, + "src": "1624:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": "&", + "operator": "/", "rightExpression": { - "id": 2577, - "name": "b", + "id": 2654, + "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2571, - "src": "2904:1:13", + "referencedDeclaration": 2630, + "src": "1628:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2900:5:13", + "src": "1624:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 2656, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2632, + "src": "1633:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } + }, + "src": "1624:10:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" } - ], - "id": 2579, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2899:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + }, + "id": 2662, + "nodeType": "IfStatement", + "src": "1620:33:14", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2658, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1644:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 2659, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1651:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2660, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1643:10:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2638, + "id": 2661, + "nodeType": "Return", + "src": "1636:17:14" } }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + { + "expression": { "components": [ { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2582, + "hexValue": "74727565", + "id": 2663, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "bool", "lValueRequested": false, - "leftExpression": { - "id": 2580, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2569, - "src": "2910:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "^", - "rightExpression": { - "id": 2581, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2571, - "src": "2914:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "nodeType": "Literal", + "src": "1675:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" }, - "src": "2910:5:13", + "value": "true" + }, + { + "id": 2664, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2648, + "src": "1681:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 2583, + "id": 2665, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2909:7:13", + "src": "1674:9:14", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" } }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "hexValue": "32", - "id": 2584, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2919:1:13", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "2909:11:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2899:21:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "functionReturnParameters": 2638, + "id": 2666, + "nodeType": "Return", + "src": "1667:16:14" } - }, - "functionReturnParameters": 2575, - "id": 2587, - "nodeType": "Return", - "src": "2892:28:13" + ] } ] }, "documentation": { - "id": 2567, + "id": 2628, "nodeType": "StructuredDocumentation", - "src": "2667:102:13", - "text": " @dev Returns the average of two numbers. The result is rounded towards\n zero." + "src": "1103:99:14", + "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag." }, - "id": 2589, + "id": 2669, "implemented": true, "kind": "function", "modifiers": [], - "name": "average", - "nameLocation": "2783:7:13", + "name": "tryMul", + "nameLocation": "1216:6:14", "nodeType": "FunctionDefinition", "parameters": { - "id": 2572, + "id": 2633, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2569, + "id": 2630, "mutability": "mutable", "name": "a", - "nameLocation": "2799:1:13", + "nameLocation": "1231:1:14", "nodeType": "VariableDeclaration", - "scope": 2589, - "src": "2791:9:13", + "scope": 2669, + "src": "1223:9:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33586,10 +34789,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2568, + "id": 2629, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2791:7:13", + "src": "1223:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -33599,13 +34802,13 @@ }, { "constant": false, - "id": 2571, + "id": 2632, "mutability": "mutable", "name": "b", - "nameLocation": "2810:1:13", + "nameLocation": "1242:1:14", "nodeType": "VariableDeclaration", - "scope": 2589, - "src": "2802:9:13", + "scope": 2669, + "src": "1234:9:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33613,10 +34816,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2570, + "id": 2631, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2802:7:13", + "src": "1234:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -33625,21 +34828,48 @@ "visibility": "internal" } ], - "src": "2790:22:13" + "src": "1222:22:14" }, "returnParameters": { - "id": 2575, + "id": 2638, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2574, + "id": 2635, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2669, + "src": "1268:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2634, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1268:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2637, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2589, - "src": "2836:7:13", + "scope": 2669, + "src": "1274:7:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33647,10 +34877,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2573, + "id": 2636, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2836:7:13", + "src": "1274:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -33659,361 +34889,240 @@ "visibility": "internal" } ], - "src": "2835:9:13" + "src": "1267:15:14" }, - "scope": 3415, - "src": "2774:153:13", + "scope": 3610, + "src": "1207:493:14", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2622, + "id": 2696, "nodeType": "Block", - "src": "3219:260:13", + "src": "1887:114:14", "statements": [ { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2601, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2599, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2594, - "src": "3233:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 2600, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3238:1:13", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3233:6:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2607, - "nodeType": "IfStatement", - "src": "3229:127:13", - "trueBody": { - "id": 2606, - "nodeType": "Block", - "src": "3241:115:13", - "statements": [ - { - "expression": { - "commonType": { + "id": 2695, + "nodeType": "UncheckedBlock", + "src": "1897:98:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2681, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2674, + "src": "1925:1:14", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - "id": 2604, + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2682, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "leftExpression": { - "id": 2602, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2592, - "src": "3340:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 2603, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2594, - "src": "3344:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3340:5:13", + "nodeType": "Literal", + "src": "1930:1:14", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "functionReturnParameters": 2598, - "id": 2605, - "nodeType": "Return", - "src": "3333:12:13" - } - ] - } - }, - { - "expression": { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2608, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2592, - "src": "3444:1:13", + "src": "1925:6:14", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 2609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3449:1:13", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3444:6:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2619, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "id": 2688, + "nodeType": "IfStatement", + "src": "1921:29:14", + "trueBody": { + "expression": { "components": [ { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2614, + "hexValue": "66616c7365", + "id": 2684, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "bool", "lValueRequested": false, - "leftExpression": { - "id": 2612, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2592, - "src": "3458:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "31", - "id": 2613, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3462:1:13", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" + "nodeType": "Literal", + "src": "1941:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" }, - "src": "3458:5:13", + "value": "false" + }, + { + "hexValue": "30", + "id": 2685, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1948:1:14", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" } ], - "id": 2615, + "id": 2686, "isConstant": false, "isInlineArray": false, "isLValue": false, - "isPure": false, + "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3457:7:13", + "src": "1940:10:14", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" } }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 2616, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2594, - "src": "3467:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "functionReturnParameters": 2680, + "id": 2687, + "nodeType": "Return", + "src": "1933:17:14" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2689, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1972:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2690, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2672, + "src": "1978:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2691, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2674, + "src": "1982:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1978:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } - }, - "src": "3457:11:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "hexValue": "31", - "id": 2618, + ], + "id": 2693, "isConstant": false, + "isInlineArray": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "3471:1:13", + "nodeType": "TupleExpression", + "src": "1971:13:14", "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "3457:15:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2620, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "3444:28:13", - "trueExpression": { - "hexValue": "30", - "id": 2611, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3453:1:13", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } }, - "value": "0" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "functionReturnParameters": 2680, + "id": 2694, + "nodeType": "Return", + "src": "1964:20:14" } - }, - "functionReturnParameters": 2598, - "id": 2621, - "nodeType": "Return", - "src": "3437:35:13" + ] } ] }, "documentation": { - "id": 2590, + "id": 2670, "nodeType": "StructuredDocumentation", - "src": "2933:210:13", - "text": " @dev Returns the ceiling of the division of two numbers.\n This differs from standard division with `/` in that it rounds towards infinity instead\n of rounding towards zero." + "src": "1706:100:14", + "text": " @dev Returns the division of two unsigned integers, with a division by zero flag." }, - "id": 2623, + "id": 2697, "implemented": true, "kind": "function", "modifiers": [], - "name": "ceilDiv", - "nameLocation": "3157:7:13", + "name": "tryDiv", + "nameLocation": "1820:6:14", "nodeType": "FunctionDefinition", "parameters": { - "id": 2595, + "id": 2675, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2592, + "id": 2672, "mutability": "mutable", "name": "a", - "nameLocation": "3173:1:13", + "nameLocation": "1835:1:14", "nodeType": "VariableDeclaration", - "scope": 2623, - "src": "3165:9:13", + "scope": 2697, + "src": "1827:9:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -34021,10 +35130,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2591, + "id": 2671, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3165:7:13", + "src": "1827:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -34034,13 +35143,13 @@ }, { "constant": false, - "id": 2594, + "id": 2674, "mutability": "mutable", "name": "b", - "nameLocation": "3184:1:13", + "nameLocation": "1846:1:14", "nodeType": "VariableDeclaration", - "scope": 2623, - "src": "3176:9:13", + "scope": 2697, + "src": "1838:9:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -34048,10 +35157,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2593, + "id": 2673, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3176:7:13", + "src": "1838:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -34060,21 +35169,48 @@ "visibility": "internal" } ], - "src": "3164:22:13" + "src": "1826:22:14" }, "returnParameters": { - "id": 2598, + "id": 2680, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2597, + "id": 2677, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2697, + "src": "1872:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2676, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1872:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2679, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2623, - "src": "3210:7:13", + "scope": 2697, + "src": "1878:7:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -34082,10 +35218,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2596, + "id": 2678, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3210:7:13", + "src": "1878:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -34094,1241 +35230,1604 @@ "visibility": "internal" } ], - "src": "3209:9:13" + "src": "1871:15:14" }, - "scope": 3415, - "src": "3148:331:13", + "scope": 3610, + "src": "1811:190:14", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2748, + "id": 2724, "nodeType": "Block", - "src": "3901:4018:13", + "src": "2198:114:14", "statements": [ { - "id": 2747, + "id": 2723, "nodeType": "UncheckedBlock", - "src": "3911:4002:13", + "src": "2208:98:14", "statements": [ { - "assignments": [ - 2636 - ], - "declarations": [ - { - "constant": false, - "id": 2636, - "mutability": "mutable", - "name": "prod0", - "nameLocation": "4240:5:13", - "nodeType": "VariableDeclaration", - "scope": 2747, - "src": "4232:13:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2635, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4232:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 2640, - "initialValue": { + "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2639, + "id": 2711, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2637, - "name": "x", + "id": 2709, + "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2626, - "src": "4248:1:13", + "referencedDeclaration": 2702, + "src": "2236:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": "*", + "operator": "==", "rightExpression": { - "id": 2638, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2628, - "src": "4252:1:13", + "hexValue": "30", + "id": 2710, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2241:1:14", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "src": "4248:5:13", + "src": "2236:6:14", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "nodeType": "VariableDeclarationStatement", - "src": "4232:21:13" - }, - { - "assignments": [ - 2642 - ], - "declarations": [ - { - "constant": false, - "id": 2642, - "mutability": "mutable", - "name": "prod1", - "nameLocation": "4320:5:13", - "nodeType": "VariableDeclaration", - "scope": 2747, - "src": "4312:13:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2641, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4312:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 2643, - "nodeType": "VariableDeclarationStatement", - "src": "4312:13:13" - }, - { - "AST": { - "nativeSrc": "4392:122:13", - "nodeType": "YulBlock", - "src": "4392:122:13", - "statements": [ - { - "nativeSrc": "4410:30:13", - "nodeType": "YulVariableDeclaration", - "src": "4410:30:13", - "value": { - "arguments": [ - { - "name": "x", - "nativeSrc": "4427:1:13", - "nodeType": "YulIdentifier", - "src": "4427:1:13" - }, - { - "name": "y", - "nativeSrc": "4430:1:13", - "nodeType": "YulIdentifier", - "src": "4430:1:13" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "4437:1:13", - "nodeType": "YulLiteral", - "src": "4437:1:13", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "4433:3:13", - "nodeType": "YulIdentifier", - "src": "4433:3:13" - }, - "nativeSrc": "4433:6:13", - "nodeType": "YulFunctionCall", - "src": "4433:6:13" - } - ], - "functionName": { - "name": "mulmod", - "nativeSrc": "4420:6:13", - "nodeType": "YulIdentifier", - "src": "4420:6:13" + "id": 2716, + "nodeType": "IfStatement", + "src": "2232:29:14", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2712, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2252:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" }, - "nativeSrc": "4420:20:13", - "nodeType": "YulFunctionCall", - "src": "4420:20:13" + "value": "false" }, - "variables": [ - { - "name": "mm", - "nativeSrc": "4414:2:13", - "nodeType": "YulTypedName", - "src": "4414:2:13", - "type": "" - } - ] - }, - { - "nativeSrc": "4457:43:13", - "nodeType": "YulAssignment", - "src": "4457:43:13", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "mm", - "nativeSrc": "4474:2:13", - "nodeType": "YulIdentifier", - "src": "4474:2:13" - }, - { - "name": "prod0", - "nativeSrc": "4478:5:13", - "nodeType": "YulIdentifier", - "src": "4478:5:13" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "4470:3:13", - "nodeType": "YulIdentifier", - "src": "4470:3:13" - }, - "nativeSrc": "4470:14:13", - "nodeType": "YulFunctionCall", - "src": "4470:14:13" - }, - { - "arguments": [ - { - "name": "mm", - "nativeSrc": "4489:2:13", - "nodeType": "YulIdentifier", - "src": "4489:2:13" - }, - { - "name": "prod0", - "nativeSrc": "4493:5:13", - "nodeType": "YulIdentifier", - "src": "4493:5:13" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "4486:2:13", - "nodeType": "YulIdentifier", - "src": "4486:2:13" - }, - "nativeSrc": "4486:13:13", - "nodeType": "YulFunctionCall", - "src": "4486:13:13" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "4466:3:13", - "nodeType": "YulIdentifier", - "src": "4466:3:13" + { + "hexValue": "30", + "id": 2713, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2259:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" }, - "nativeSrc": "4466:34:13", - "nodeType": "YulFunctionCall", - "src": "4466:34:13" - }, - "variableNames": [ - { - "name": "prod1", - "nativeSrc": "4457:5:13", - "nodeType": "YulIdentifier", - "src": "4457:5:13" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 2636, - "isOffset": false, - "isSlot": false, - "src": "4478:5:13", - "valueSize": 1 - }, - { - "declaration": 2636, - "isOffset": false, - "isSlot": false, - "src": "4493:5:13", - "valueSize": 1 - }, - { - "declaration": 2642, - "isOffset": false, - "isSlot": false, - "src": "4457:5:13", - "valueSize": 1 - }, - { - "declaration": 2626, - "isOffset": false, - "isSlot": false, - "src": "4427:1:13", - "valueSize": 1 - }, - { - "declaration": 2628, - "isOffset": false, - "isSlot": false, - "src": "4430:1:13", - "valueSize": 1 - } - ], - "id": 2644, - "nodeType": "InlineAssembly", - "src": "4383:131:13" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2647, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2645, - "name": "prod1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2642, - "src": "4595:5:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 2646, + "value": "0" + } + ], + "id": 2714, "isConstant": false, + "isInlineArray": false, "isLValue": false, "isPure": true, - "kind": "number", "lValueRequested": false, - "nodeType": "Literal", - "src": "4604:1:13", + "nodeType": "TupleExpression", + "src": "2251:10:14", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } }, - "src": "4595:10:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2653, - "nodeType": "IfStatement", - "src": "4591:368:13", - "trueBody": { - "id": 2652, - "nodeType": "Block", - "src": "4607:352:13", - "statements": [ + "functionReturnParameters": 2708, + "id": 2715, + "nodeType": "Return", + "src": "2244:17:14" + } + }, + { + "expression": { + "components": [ { - "expression": { - "commonType": { + "hexValue": "74727565", + "id": 2717, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2283:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2718, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2700, + "src": "2289:1:14", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - "id": 2650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2648, - "name": "prod0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2636, - "src": "4925:5:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 2649, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2630, - "src": "4933:11:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4925:19:13", + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 2719, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2702, + "src": "2293:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2634, - "id": 2651, - "nodeType": "Return", - "src": "4918:26:13" + "src": "2289:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2656, + ], + "id": 2721, "isConstant": false, + "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { - "id": 2654, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2630, - "src": "5065:11:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "id": 2655, - "name": "prod1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2642, - "src": "5080:5:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5065:20:13", + "nodeType": "TupleExpression", + "src": "2282:13:14", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" } }, - "id": 2661, - "nodeType": "IfStatement", - "src": "5061:88:13", - "trueBody": { - "id": 2660, - "nodeType": "Block", - "src": "5087:62:13", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2657, - "name": "MathOverflowedMulDiv", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "5112:20:13", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 2658, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5112:22:13", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2659, - "nodeType": "RevertStatement", - "src": "5105:29:13" - } - ] + "functionReturnParameters": 2708, + "id": 2722, + "nodeType": "Return", + "src": "2275:20:14" + } + ] + } + ] + }, + "documentation": { + "id": 2698, + "nodeType": "StructuredDocumentation", + "src": "2007:110:14", + "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag." + }, + "id": 2725, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMod", + "nameLocation": "2131:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2703, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2700, + "mutability": "mutable", + "name": "a", + "nameLocation": "2146:1:14", + "nodeType": "VariableDeclaration", + "scope": 2725, + "src": "2138:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2699, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2138:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2702, + "mutability": "mutable", + "name": "b", + "nameLocation": "2157:1:14", + "nodeType": "VariableDeclaration", + "scope": 2725, + "src": "2149:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2701, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2149:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2137:22:14" + }, + "returnParameters": { + "id": 2708, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2705, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2725, + "src": "2183:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2704, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2183:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2707, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2725, + "src": "2189:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2706, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2189:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2182:15:14" + }, + "scope": 3610, + "src": "2122:190:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2742, + "nodeType": "Block", + "src": "2449:37:14", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2735, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2728, + "src": "2466:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 2736, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2730, + "src": "2470:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2466:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - { - "assignments": [ - 2663 - ], - "declarations": [ - { - "constant": false, - "id": 2663, - "mutability": "mutable", - "name": "remainder", - "nameLocation": "5412:9:13", - "nodeType": "VariableDeclaration", - "scope": 2747, - "src": "5404:17:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2662, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5404:7:13", + "falseExpression": { + "id": 2739, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2730, + "src": "2478:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "2466:13:14", + "trueExpression": { + "id": 2738, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2728, + "src": "2474:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2734, + "id": 2741, + "nodeType": "Return", + "src": "2459:20:14" + } + ] + }, + "documentation": { + "id": 2726, + "nodeType": "StructuredDocumentation", + "src": "2318:59:14", + "text": " @dev Returns the largest of two numbers." + }, + "id": 2743, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "max", + "nameLocation": "2391:3:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2731, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2728, + "mutability": "mutable", + "name": "a", + "nameLocation": "2403:1:14", + "nodeType": "VariableDeclaration", + "scope": 2743, + "src": "2395:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2727, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2395:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2730, + "mutability": "mutable", + "name": "b", + "nameLocation": "2414:1:14", + "nodeType": "VariableDeclaration", + "scope": 2743, + "src": "2406:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2729, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2406:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2394:22:14" + }, + "returnParameters": { + "id": 2734, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2733, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2743, + "src": "2440:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2732, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2440:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2439:9:14" + }, + "scope": 3610, + "src": "2382:104:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2760, + "nodeType": "Block", + "src": "2624:37:14", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2753, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2746, + "src": "2641:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 2754, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2748, + "src": "2645:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2641:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 2757, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2748, + "src": "2653:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2758, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "2641:13:14", + "trueExpression": { + "id": 2756, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2746, + "src": "2649:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2752, + "id": 2759, + "nodeType": "Return", + "src": "2634:20:14" + } + ] + }, + "documentation": { + "id": 2744, + "nodeType": "StructuredDocumentation", + "src": "2492:60:14", + "text": " @dev Returns the smallest of two numbers." + }, + "id": 2761, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nameLocation": "2566:3:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2749, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2746, + "mutability": "mutable", + "name": "a", + "nameLocation": "2578:1:14", + "nodeType": "VariableDeclaration", + "scope": 2761, + "src": "2570:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2745, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2570:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2748, + "mutability": "mutable", + "name": "b", + "nameLocation": "2589:1:14", + "nodeType": "VariableDeclaration", + "scope": 2761, + "src": "2581:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2747, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2581:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2569:22:14" + }, + "returnParameters": { + "id": 2752, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2751, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2761, + "src": "2615:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2750, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2615:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2614:9:14" + }, + "scope": 3610, + "src": "2557:104:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2783, + "nodeType": "Block", + "src": "2845:82:14", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2771, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2764, + "src": "2900:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "visibility": "internal" + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "id": 2772, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2766, + "src": "2904:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2900:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } ], - "id": 2664, - "nodeType": "VariableDeclarationStatement", - "src": "5404:17:13" + "id": 2774, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2899:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - { - "AST": { - "nativeSrc": "5444:291:13", - "nodeType": "YulBlock", - "src": "5444:291:13", - "statements": [ + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ { - "nativeSrc": "5513:38:13", - "nodeType": "YulAssignment", - "src": "5513:38:13", - "value": { - "arguments": [ - { - "name": "x", - "nativeSrc": "5533:1:13", - "nodeType": "YulIdentifier", - "src": "5533:1:13" - }, - { - "name": "y", - "nativeSrc": "5536:1:13", - "nodeType": "YulIdentifier", - "src": "5536:1:13" - }, - { - "name": "denominator", - "nativeSrc": "5539:11:13", - "nodeType": "YulIdentifier", - "src": "5539:11:13" - } - ], - "functionName": { - "name": "mulmod", - "nativeSrc": "5526:6:13", - "nodeType": "YulIdentifier", - "src": "5526:6:13" - }, - "nativeSrc": "5526:25:13", - "nodeType": "YulFunctionCall", - "src": "5526:25:13" + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "variableNames": [ - { - "name": "remainder", - "nativeSrc": "5513:9:13", - "nodeType": "YulIdentifier", - "src": "5513:9:13" + "id": 2777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2775, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2764, + "src": "2910:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ] - }, - { - "nativeSrc": "5633:41:13", - "nodeType": "YulAssignment", - "src": "5633:41:13", - "value": { - "arguments": [ - { - "name": "prod1", - "nativeSrc": "5646:5:13", - "nodeType": "YulIdentifier", - "src": "5646:5:13" - }, - { - "arguments": [ - { - "name": "remainder", - "nativeSrc": "5656:9:13", - "nodeType": "YulIdentifier", - "src": "5656:9:13" - }, - { - "name": "prod0", - "nativeSrc": "5667:5:13", - "nodeType": "YulIdentifier", - "src": "5667:5:13" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "5653:2:13", - "nodeType": "YulIdentifier", - "src": "5653:2:13" - }, - "nativeSrc": "5653:20:13", - "nodeType": "YulFunctionCall", - "src": "5653:20:13" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "5642:3:13", - "nodeType": "YulIdentifier", - "src": "5642:3:13" - }, - "nativeSrc": "5642:32:13", - "nodeType": "YulFunctionCall", - "src": "5642:32:13" }, - "variableNames": [ - { - "name": "prod1", - "nativeSrc": "5633:5:13", - "nodeType": "YulIdentifier", - "src": "5633:5:13" + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 2776, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2766, + "src": "2914:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ] - }, - { - "nativeSrc": "5691:30:13", - "nodeType": "YulAssignment", - "src": "5691:30:13", - "value": { - "arguments": [ - { - "name": "prod0", - "nativeSrc": "5704:5:13", - "nodeType": "YulIdentifier", - "src": "5704:5:13" - }, - { - "name": "remainder", - "nativeSrc": "5711:9:13", - "nodeType": "YulIdentifier", - "src": "5711:9:13" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "5700:3:13", - "nodeType": "YulIdentifier", - "src": "5700:3:13" - }, - "nativeSrc": "5700:21:13", - "nodeType": "YulFunctionCall", - "src": "5700:21:13" }, - "variableNames": [ - { - "name": "prod0", - "nativeSrc": "5691:5:13", - "nodeType": "YulIdentifier", - "src": "5691:5:13" - } - ] + "src": "2910:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } - ] + ], + "id": 2778, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2909:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 2630, - "isOffset": false, - "isSlot": false, - "src": "5539:11:13", - "valueSize": 1 - }, - { - "declaration": 2636, - "isOffset": false, - "isSlot": false, - "src": "5667:5:13", - "valueSize": 1 + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "32", + "id": 2779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2919:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" }, - { - "declaration": 2636, - "isOffset": false, - "isSlot": false, - "src": "5691:5:13", - "valueSize": 1 - }, - { - "declaration": 2636, - "isOffset": false, - "isSlot": false, - "src": "5704:5:13", - "valueSize": 1 - }, - { - "declaration": 2642, - "isOffset": false, - "isSlot": false, - "src": "5633:5:13", - "valueSize": 1 - }, - { - "declaration": 2642, - "isOffset": false, - "isSlot": false, - "src": "5646:5:13", - "valueSize": 1 - }, - { - "declaration": 2663, - "isOffset": false, - "isSlot": false, - "src": "5513:9:13", - "valueSize": 1 - }, - { - "declaration": 2663, - "isOffset": false, - "isSlot": false, - "src": "5656:9:13", - "valueSize": 1 - }, - { - "declaration": 2663, - "isOffset": false, - "isSlot": false, - "src": "5711:9:13", - "valueSize": 1 - }, - { - "declaration": 2626, - "isOffset": false, - "isSlot": false, - "src": "5533:1:13", - "valueSize": 1 - }, - { - "declaration": 2628, - "isOffset": false, - "isSlot": false, - "src": "5536:1:13", - "valueSize": 1 - } - ], - "id": 2665, - "nodeType": "InlineAssembly", - "src": "5435:300:13" + "value": "2" + }, + "src": "2909:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - { - "assignments": [ - 2667 - ], - "declarations": [ - { - "constant": false, - "id": 2667, - "mutability": "mutable", - "name": "twos", - "nameLocation": "5947:4:13", - "nodeType": "VariableDeclaration", - "scope": 2747, - "src": "5939:12:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { + "src": "2899:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2770, + "id": 2782, + "nodeType": "Return", + "src": "2892:28:14" + } + ] + }, + "documentation": { + "id": 2762, + "nodeType": "StructuredDocumentation", + "src": "2667:102:14", + "text": " @dev Returns the average of two numbers. The result is rounded towards\n zero." + }, + "id": 2784, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "average", + "nameLocation": "2783:7:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2767, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2764, + "mutability": "mutable", + "name": "a", + "nameLocation": "2799:1:14", + "nodeType": "VariableDeclaration", + "scope": 2784, + "src": "2791:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2763, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2791:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2766, + "mutability": "mutable", + "name": "b", + "nameLocation": "2810:1:14", + "nodeType": "VariableDeclaration", + "scope": 2784, + "src": "2802:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2765, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2802:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2790:22:14" + }, + "returnParameters": { + "id": 2770, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2769, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2784, + "src": "2836:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2768, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2836:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2835:9:14" + }, + "scope": 3610, + "src": "2774:153:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2817, + "nodeType": "Block", + "src": "3219:260:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2796, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2794, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2789, + "src": "3233:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2795, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3238:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3233:6:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2802, + "nodeType": "IfStatement", + "src": "3229:127:14", + "trueBody": { + "id": 2801, + "nodeType": "Block", + "src": "3241:115:14", + "statements": [ + { + "expression": { + "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "typeName": { - "id": 2666, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5939:7:13", + "id": 2799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2797, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2787, + "src": "3340:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "visibility": "internal" + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2798, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2789, + "src": "3344:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3340:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2793, + "id": 2800, + "nodeType": "Return", + "src": "3333:12:14" + } + ] + } + }, + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2803, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2787, + "src": "3444:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ], - "id": 2674, - "initialValue": { + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3449:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3444:6:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2673, + "id": 2812, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2668, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2630, - "src": "5954:11:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "&", - "rightExpression": { "components": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2671, + "id": 2809, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "hexValue": "30", - "id": 2669, + "id": 2807, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2787, + "src": "3458:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2808, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5969:1:13", + "src": "3462:1:14", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" }, - "value": "0" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 2670, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2630, - "src": "5973:11:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "value": "1" }, - "src": "5969:15:13", + "src": "3458:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 2672, + "id": 2810, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "5968:17:13", + "src": "3457:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2811, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2789, + "src": "3467:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5954:31:13", + "src": "3457:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "VariableDeclarationStatement", - "src": "5939:46:13" + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2813, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3471:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3457:15:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - { - "AST": { - "nativeSrc": "6008:362:13", - "nodeType": "YulBlock", - "src": "6008:362:13", - "statements": [ - { - "nativeSrc": "6073:37:13", - "nodeType": "YulAssignment", - "src": "6073:37:13", - "value": { - "arguments": [ - { - "name": "denominator", - "nativeSrc": "6092:11:13", - "nodeType": "YulIdentifier", - "src": "6092:11:13" - }, - { - "name": "twos", - "nativeSrc": "6105:4:13", - "nodeType": "YulIdentifier", - "src": "6105:4:13" - } - ], - "functionName": { - "name": "div", - "nativeSrc": "6088:3:13", - "nodeType": "YulIdentifier", - "src": "6088:3:13" - }, - "nativeSrc": "6088:22:13", - "nodeType": "YulFunctionCall", - "src": "6088:22:13" - }, - "variableNames": [ - { - "name": "denominator", - "nativeSrc": "6073:11:13", - "nodeType": "YulIdentifier", - "src": "6073:11:13" - } - ] - }, - { - "nativeSrc": "6177:25:13", - "nodeType": "YulAssignment", - "src": "6177:25:13", - "value": { - "arguments": [ - { - "name": "prod0", - "nativeSrc": "6190:5:13", - "nodeType": "YulIdentifier", - "src": "6190:5:13" - }, - { - "name": "twos", - "nativeSrc": "6197:4:13", - "nodeType": "YulIdentifier", - "src": "6197:4:13" - } - ], - "functionName": { - "name": "div", - "nativeSrc": "6186:3:13", - "nodeType": "YulIdentifier", - "src": "6186:3:13" - }, - "nativeSrc": "6186:16:13", - "nodeType": "YulFunctionCall", - "src": "6186:16:13" - }, - "variableNames": [ - { - "name": "prod0", - "nativeSrc": "6177:5:13", - "nodeType": "YulIdentifier", - "src": "6177:5:13" - } - ] - }, - { - "nativeSrc": "6317:39:13", - "nodeType": "YulAssignment", - "src": "6317:39:13", - "value": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "6337:1:13", - "nodeType": "YulLiteral", - "src": "6337:1:13", - "type": "", - "value": "0" - }, - { - "name": "twos", - "nativeSrc": "6340:4:13", - "nodeType": "YulIdentifier", - "src": "6340:4:13" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "6333:3:13", - "nodeType": "YulIdentifier", - "src": "6333:3:13" - }, - "nativeSrc": "6333:12:13", - "nodeType": "YulFunctionCall", - "src": "6333:12:13" - }, - { - "name": "twos", - "nativeSrc": "6347:4:13", - "nodeType": "YulIdentifier", - "src": "6347:4:13" - } - ], - "functionName": { - "name": "div", - "nativeSrc": "6329:3:13", - "nodeType": "YulIdentifier", - "src": "6329:3:13" - }, - "nativeSrc": "6329:23:13", - "nodeType": "YulFunctionCall", - "src": "6329:23:13" - }, - { - "kind": "number", - "nativeSrc": "6354:1:13", - "nodeType": "YulLiteral", - "src": "6354:1:13", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6325:3:13", - "nodeType": "YulIdentifier", - "src": "6325:3:13" - }, - "nativeSrc": "6325:31:13", - "nodeType": "YulFunctionCall", - "src": "6325:31:13" - }, - "variableNames": [ - { - "name": "twos", - "nativeSrc": "6317:4:13", - "nodeType": "YulIdentifier", - "src": "6317:4:13" - } - ] - } - ] + "id": 2815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "3444:28:14", + "trueExpression": { + "hexValue": "30", + "id": 2806, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3453:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 2630, - "isOffset": false, - "isSlot": false, - "src": "6073:11:13", - "valueSize": 1 - }, - { - "declaration": 2630, - "isOffset": false, - "isSlot": false, - "src": "6092:11:13", - "valueSize": 1 - }, - { - "declaration": 2636, - "isOffset": false, - "isSlot": false, - "src": "6177:5:13", - "valueSize": 1 - }, - { - "declaration": 2636, - "isOffset": false, - "isSlot": false, - "src": "6190:5:13", - "valueSize": 1 - }, - { - "declaration": 2667, - "isOffset": false, - "isSlot": false, - "src": "6105:4:13", - "valueSize": 1 - }, - { - "declaration": 2667, - "isOffset": false, - "isSlot": false, - "src": "6197:4:13", - "valueSize": 1 - }, - { - "declaration": 2667, - "isOffset": false, - "isSlot": false, - "src": "6317:4:13", - "valueSize": 1 - }, - { - "declaration": 2667, - "isOffset": false, - "isSlot": false, - "src": "6340:4:13", - "valueSize": 1 - }, + "value": "0" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2793, + "id": 2816, + "nodeType": "Return", + "src": "3437:35:14" + } + ] + }, + "documentation": { + "id": 2785, + "nodeType": "StructuredDocumentation", + "src": "2933:210:14", + "text": " @dev Returns the ceiling of the division of two numbers.\n This differs from standard division with `/` in that it rounds towards infinity instead\n of rounding towards zero." + }, + "id": 2818, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ceilDiv", + "nameLocation": "3157:7:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2790, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2787, + "mutability": "mutable", + "name": "a", + "nameLocation": "3173:1:14", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "3165:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2786, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3165:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2789, + "mutability": "mutable", + "name": "b", + "nameLocation": "3184:1:14", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "3176:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2788, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3176:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3164:22:14" + }, + "returnParameters": { + "id": 2793, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2792, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "3210:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2791, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3210:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3209:9:14" + }, + "scope": 3610, + "src": "3148:331:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2943, + "nodeType": "Block", + "src": "3901:4018:14", + "statements": [ + { + "id": 2942, + "nodeType": "UncheckedBlock", + "src": "3911:4002:14", + "statements": [ + { + "assignments": [ + 2831 + ], + "declarations": [ { - "declaration": 2667, - "isOffset": false, - "isSlot": false, - "src": "6347:4:13", - "valueSize": 1 + "constant": false, + "id": 2831, + "mutability": "mutable", + "name": "prod0", + "nameLocation": "4240:5:14", + "nodeType": "VariableDeclaration", + "scope": 2942, + "src": "4232:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2830, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4232:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" } ], - "id": 2675, - "nodeType": "InlineAssembly", - "src": "5999:371:13" - }, - { - "expression": { - "id": 2680, + "id": 2835, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2834, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { - "id": 2676, - "name": "prod0", + "leftExpression": { + "id": 2832, + "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2636, - "src": "6436:5:13", + "referencedDeclaration": 2821, + "src": "4248:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "Assignment", - "operator": "|=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2679, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2677, - "name": "prod1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2642, - "src": "6445:5:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 2678, - "name": "twos", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2667, - "src": "6453:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6445:12:13", + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2833, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2823, + "src": "4252:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6436:21:13", + "src": "4248:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2681, - "nodeType": "ExpressionStatement", - "src": "6436:21:13" + "nodeType": "VariableDeclarationStatement", + "src": "4232:21:14" }, { "assignments": [ - 2683 + 2837 ], "declarations": [ { "constant": false, - "id": 2683, + "id": 2837, "mutability": "mutable", - "name": "inverse", - "nameLocation": "6783:7:13", + "name": "prod1", + "nameLocation": "4320:5:14", "nodeType": "VariableDeclaration", - "scope": 2747, - "src": "6775:15:13", + "scope": 2942, + "src": "4312:13:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -35336,10 +36835,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2682, + "id": 2836, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6775:7:13", + "src": "4312:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -35348,548 +36847,1243 @@ "visibility": "internal" } ], - "id": 2690, - "initialValue": { + "id": 2838, + "nodeType": "VariableDeclarationStatement", + "src": "4312:13:14" + }, + { + "AST": { + "nativeSrc": "4392:122:14", + "nodeType": "YulBlock", + "src": "4392:122:14", + "statements": [ + { + "nativeSrc": "4410:30:14", + "nodeType": "YulVariableDeclaration", + "src": "4410:30:14", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "4427:1:14", + "nodeType": "YulIdentifier", + "src": "4427:1:14" + }, + { + "name": "y", + "nativeSrc": "4430:1:14", + "nodeType": "YulIdentifier", + "src": "4430:1:14" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4437:1:14", + "nodeType": "YulLiteral", + "src": "4437:1:14", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "4433:3:14", + "nodeType": "YulIdentifier", + "src": "4433:3:14" + }, + "nativeSrc": "4433:6:14", + "nodeType": "YulFunctionCall", + "src": "4433:6:14" + } + ], + "functionName": { + "name": "mulmod", + "nativeSrc": "4420:6:14", + "nodeType": "YulIdentifier", + "src": "4420:6:14" + }, + "nativeSrc": "4420:20:14", + "nodeType": "YulFunctionCall", + "src": "4420:20:14" + }, + "variables": [ + { + "name": "mm", + "nativeSrc": "4414:2:14", + "nodeType": "YulTypedName", + "src": "4414:2:14", + "type": "" + } + ] + }, + { + "nativeSrc": "4457:43:14", + "nodeType": "YulAssignment", + "src": "4457:43:14", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "mm", + "nativeSrc": "4474:2:14", + "nodeType": "YulIdentifier", + "src": "4474:2:14" + }, + { + "name": "prod0", + "nativeSrc": "4478:5:14", + "nodeType": "YulIdentifier", + "src": "4478:5:14" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4470:3:14", + "nodeType": "YulIdentifier", + "src": "4470:3:14" + }, + "nativeSrc": "4470:14:14", + "nodeType": "YulFunctionCall", + "src": "4470:14:14" + }, + { + "arguments": [ + { + "name": "mm", + "nativeSrc": "4489:2:14", + "nodeType": "YulIdentifier", + "src": "4489:2:14" + }, + { + "name": "prod0", + "nativeSrc": "4493:5:14", + "nodeType": "YulIdentifier", + "src": "4493:5:14" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "4486:2:14", + "nodeType": "YulIdentifier", + "src": "4486:2:14" + }, + "nativeSrc": "4486:13:14", + "nodeType": "YulFunctionCall", + "src": "4486:13:14" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4466:3:14", + "nodeType": "YulIdentifier", + "src": "4466:3:14" + }, + "nativeSrc": "4466:34:14", + "nodeType": "YulFunctionCall", + "src": "4466:34:14" + }, + "variableNames": [ + { + "name": "prod1", + "nativeSrc": "4457:5:14", + "nodeType": "YulIdentifier", + "src": "4457:5:14" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2831, + "isOffset": false, + "isSlot": false, + "src": "4478:5:14", + "valueSize": 1 + }, + { + "declaration": 2831, + "isOffset": false, + "isSlot": false, + "src": "4493:5:14", + "valueSize": 1 + }, + { + "declaration": 2837, + "isOffset": false, + "isSlot": false, + "src": "4457:5:14", + "valueSize": 1 + }, + { + "declaration": 2821, + "isOffset": false, + "isSlot": false, + "src": "4427:1:14", + "valueSize": 1 + }, + { + "declaration": 2823, + "isOffset": false, + "isSlot": false, + "src": "4430:1:14", + "valueSize": 1 + } + ], + "id": 2839, + "nodeType": "InlineAssembly", + "src": "4383:131:14" + }, + { + "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2689, + "id": 2842, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "components": [ - { + "id": 2840, + "name": "prod1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2837, + "src": "4595:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2841, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4604:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4595:10:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2848, + "nodeType": "IfStatement", + "src": "4591:368:14", + "trueBody": { + "id": 2847, + "nodeType": "Block", + "src": "4607:352:14", + "statements": [ + { + "expression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2686, + "id": 2845, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "hexValue": "33", - "id": 2684, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6794:1:13", + "id": 2843, + "name": "prod0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2831, + "src": "4925:5:14", "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, "nodeType": "BinaryOperation", - "operator": "*", + "operator": "/", "rightExpression": { - "id": 2685, + "id": 2844, "name": "denominator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2630, - "src": "6798:11:13", + "referencedDeclaration": 2825, + "src": "4933:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6794:15:13", + "src": "4925:19:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - } - ], - "id": 2687, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "6793:17:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + }, + "functionReturnParameters": 2829, + "id": 2846, + "nodeType": "Return", + "src": "4918:26:14" } - }, - "nodeType": "BinaryOperation", - "operator": "^", - "rightExpression": { - "hexValue": "32", - "id": 2688, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6813:1:13", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "6793:21:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6775:39:13" + ] + } }, { - "expression": { - "id": 2697, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2851, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { - "id": 2691, - "name": "inverse", + "leftExpression": { + "id": 2849, + "name": "denominator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2683, - "src": "7031:7:13", + "referencedDeclaration": 2825, + "src": "5065:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "Assignment", - "operator": "*=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "32", - "id": 2692, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7042:1:13", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2693, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2630, - "src": "7046:11:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 2694, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2683, - "src": "7060:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7046:21:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7042:25:13", - "typeDescriptions": { + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 2850, + "name": "prod1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2837, + "src": "5080:5:14", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7031:36:13", + "src": "5065:20:14", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 2698, - "nodeType": "ExpressionStatement", - "src": "7031:36:13" + "id": 2856, + "nodeType": "IfStatement", + "src": "5061:88:14", + "trueBody": { + "id": 2855, + "nodeType": "Block", + "src": "5087:62:14", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2852, + "name": "MathOverflowedMulDiv", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2562, + "src": "5112:20:14", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 2853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5112:22:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 2854, + "nodeType": "RevertStatement", + "src": "5105:29:14" + } + ] + } }, { - "expression": { - "id": 2705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 2699, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2683, - "src": "7100:7:13", + "assignments": [ + 2858 + ], + "declarations": [ + { + "constant": false, + "id": 2858, + "mutability": "mutable", + "name": "remainder", + "nameLocation": "5412:9:14", + "nodeType": "VariableDeclaration", + "scope": 2942, + "src": "5404:17:14", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "*=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" }, - "id": 2704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "32", - "id": 2700, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7111:1:13", + "typeName": { + "id": 2857, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5404:7:14", "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2859, + "nodeType": "VariableDeclarationStatement", + "src": "5404:17:14" + }, + { + "AST": { + "nativeSrc": "5444:291:14", + "nodeType": "YulBlock", + "src": "5444:291:14", + "statements": [ + { + "nativeSrc": "5513:38:14", + "nodeType": "YulAssignment", + "src": "5513:38:14", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "5533:1:14", + "nodeType": "YulIdentifier", + "src": "5533:1:14" + }, + { + "name": "y", + "nativeSrc": "5536:1:14", + "nodeType": "YulIdentifier", + "src": "5536:1:14" + }, + { + "name": "denominator", + "nativeSrc": "5539:11:14", + "nodeType": "YulIdentifier", + "src": "5539:11:14" + } + ], + "functionName": { + "name": "mulmod", + "nativeSrc": "5526:6:14", + "nodeType": "YulIdentifier", + "src": "5526:6:14" + }, + "nativeSrc": "5526:25:14", + "nodeType": "YulFunctionCall", + "src": "5526:25:14" }, - "id": 2703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2701, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2630, - "src": "7115:11:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "variableNames": [ + { + "name": "remainder", + "nativeSrc": "5513:9:14", + "nodeType": "YulIdentifier", + "src": "5513:9:14" } + ] + }, + { + "nativeSrc": "5633:41:14", + "nodeType": "YulAssignment", + "src": "5633:41:14", + "value": { + "arguments": [ + { + "name": "prod1", + "nativeSrc": "5646:5:14", + "nodeType": "YulIdentifier", + "src": "5646:5:14" + }, + { + "arguments": [ + { + "name": "remainder", + "nativeSrc": "5656:9:14", + "nodeType": "YulIdentifier", + "src": "5656:9:14" + }, + { + "name": "prod0", + "nativeSrc": "5667:5:14", + "nodeType": "YulIdentifier", + "src": "5667:5:14" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "5653:2:14", + "nodeType": "YulIdentifier", + "src": "5653:2:14" + }, + "nativeSrc": "5653:20:14", + "nodeType": "YulFunctionCall", + "src": "5653:20:14" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5642:3:14", + "nodeType": "YulIdentifier", + "src": "5642:3:14" + }, + "nativeSrc": "5642:32:14", + "nodeType": "YulFunctionCall", + "src": "5642:32:14" }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 2702, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2683, - "src": "7129:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "variableNames": [ + { + "name": "prod1", + "nativeSrc": "5633:5:14", + "nodeType": "YulIdentifier", + "src": "5633:5:14" } - }, - "src": "7115:21:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + ] }, - "src": "7111:25:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "nativeSrc": "5691:30:14", + "nodeType": "YulAssignment", + "src": "5691:30:14", + "value": { + "arguments": [ + { + "name": "prod0", + "nativeSrc": "5704:5:14", + "nodeType": "YulIdentifier", + "src": "5704:5:14" + }, + { + "name": "remainder", + "nativeSrc": "5711:9:14", + "nodeType": "YulIdentifier", + "src": "5711:9:14" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5700:3:14", + "nodeType": "YulIdentifier", + "src": "5700:3:14" + }, + "nativeSrc": "5700:21:14", + "nodeType": "YulFunctionCall", + "src": "5700:21:14" + }, + "variableNames": [ + { + "name": "prod0", + "nativeSrc": "5691:5:14", + "nodeType": "YulIdentifier", + "src": "5691:5:14" + } + ] } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2825, + "isOffset": false, + "isSlot": false, + "src": "5539:11:14", + "valueSize": 1 }, - "src": "7100:36:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "declaration": 2831, + "isOffset": false, + "isSlot": false, + "src": "5667:5:14", + "valueSize": 1 + }, + { + "declaration": 2831, + "isOffset": false, + "isSlot": false, + "src": "5691:5:14", + "valueSize": 1 + }, + { + "declaration": 2831, + "isOffset": false, + "isSlot": false, + "src": "5704:5:14", + "valueSize": 1 + }, + { + "declaration": 2837, + "isOffset": false, + "isSlot": false, + "src": "5633:5:14", + "valueSize": 1 + }, + { + "declaration": 2837, + "isOffset": false, + "isSlot": false, + "src": "5646:5:14", + "valueSize": 1 + }, + { + "declaration": 2858, + "isOffset": false, + "isSlot": false, + "src": "5513:9:14", + "valueSize": 1 + }, + { + "declaration": 2858, + "isOffset": false, + "isSlot": false, + "src": "5656:9:14", + "valueSize": 1 + }, + { + "declaration": 2858, + "isOffset": false, + "isSlot": false, + "src": "5711:9:14", + "valueSize": 1 + }, + { + "declaration": 2821, + "isOffset": false, + "isSlot": false, + "src": "5533:1:14", + "valueSize": 1 + }, + { + "declaration": 2823, + "isOffset": false, + "isSlot": false, + "src": "5536:1:14", + "valueSize": 1 } - }, - "id": 2706, - "nodeType": "ExpressionStatement", - "src": "7100:36:13" + ], + "id": 2860, + "nodeType": "InlineAssembly", + "src": "5435:300:14" }, { - "expression": { - "id": 2713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 2707, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2683, - "src": "7170:7:13", + "assignments": [ + 2862 + ], + "declarations": [ + { + "constant": false, + "id": 2862, + "mutability": "mutable", + "name": "twos", + "nameLocation": "5947:4:14", + "nodeType": "VariableDeclaration", + "scope": 2942, + "src": "5939:12:14", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "*=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2712, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "32", - "id": 2708, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7181:1:13", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2709, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2630, - "src": "7185:11:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 2710, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2683, - "src": "7199:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7185:21:13", + "typeName": { + "id": 2861, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5939:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7181:25:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7170:36:13", - "typeDescriptions": { + "visibility": "internal" + } + ], + "id": 2869, + "initialValue": { + "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } - }, - "id": 2714, - "nodeType": "ExpressionStatement", - "src": "7170:36:13" - }, - { - "expression": { - "id": 2721, + }, + "id": 2868, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { - "id": 2715, - "name": "inverse", + "leftExpression": { + "id": 2863, + "name": "denominator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2683, - "src": "7240:7:13", + "referencedDeclaration": 2825, + "src": "5954:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "Assignment", - "operator": "*=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2720, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "32", - "id": 2716, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7251:1:13", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2717, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2630, - "src": "7255:11:13", - "typeDescriptions": { + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "components": [ + { + "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 2718, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2683, - "src": "7269:7:13", + }, + "id": 2866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "30", + "id": 2864, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5969:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 2865, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2825, + "src": "5973:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5969:15:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "src": "7255:21:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" } - }, - "src": "7251:25:13", + ], + "id": 2867, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5968:17:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7240:36:13", + "src": "5954:31:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2722, - "nodeType": "ExpressionStatement", - "src": "7240:36:13" + "nodeType": "VariableDeclarationStatement", + "src": "5939:46:14" }, { - "expression": { - "id": 2729, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 2723, - "name": "inverse", + "AST": { + "nativeSrc": "6008:362:14", + "nodeType": "YulBlock", + "src": "6008:362:14", + "statements": [ + { + "nativeSrc": "6073:37:14", + "nodeType": "YulAssignment", + "src": "6073:37:14", + "value": { + "arguments": [ + { + "name": "denominator", + "nativeSrc": "6092:11:14", + "nodeType": "YulIdentifier", + "src": "6092:11:14" + }, + { + "name": "twos", + "nativeSrc": "6105:4:14", + "nodeType": "YulIdentifier", + "src": "6105:4:14" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "6088:3:14", + "nodeType": "YulIdentifier", + "src": "6088:3:14" + }, + "nativeSrc": "6088:22:14", + "nodeType": "YulFunctionCall", + "src": "6088:22:14" + }, + "variableNames": [ + { + "name": "denominator", + "nativeSrc": "6073:11:14", + "nodeType": "YulIdentifier", + "src": "6073:11:14" + } + ] + }, + { + "nativeSrc": "6177:25:14", + "nodeType": "YulAssignment", + "src": "6177:25:14", + "value": { + "arguments": [ + { + "name": "prod0", + "nativeSrc": "6190:5:14", + "nodeType": "YulIdentifier", + "src": "6190:5:14" + }, + { + "name": "twos", + "nativeSrc": "6197:4:14", + "nodeType": "YulIdentifier", + "src": "6197:4:14" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "6186:3:14", + "nodeType": "YulIdentifier", + "src": "6186:3:14" + }, + "nativeSrc": "6186:16:14", + "nodeType": "YulFunctionCall", + "src": "6186:16:14" + }, + "variableNames": [ + { + "name": "prod0", + "nativeSrc": "6177:5:14", + "nodeType": "YulIdentifier", + "src": "6177:5:14" + } + ] + }, + { + "nativeSrc": "6317:39:14", + "nodeType": "YulAssignment", + "src": "6317:39:14", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6337:1:14", + "nodeType": "YulLiteral", + "src": "6337:1:14", + "type": "", + "value": "0" + }, + { + "name": "twos", + "nativeSrc": "6340:4:14", + "nodeType": "YulIdentifier", + "src": "6340:4:14" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "6333:3:14", + "nodeType": "YulIdentifier", + "src": "6333:3:14" + }, + "nativeSrc": "6333:12:14", + "nodeType": "YulFunctionCall", + "src": "6333:12:14" + }, + { + "name": "twos", + "nativeSrc": "6347:4:14", + "nodeType": "YulIdentifier", + "src": "6347:4:14" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "6329:3:14", + "nodeType": "YulIdentifier", + "src": "6329:3:14" + }, + "nativeSrc": "6329:23:14", + "nodeType": "YulFunctionCall", + "src": "6329:23:14" + }, + { + "kind": "number", + "nativeSrc": "6354:1:14", + "nodeType": "YulLiteral", + "src": "6354:1:14", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6325:3:14", + "nodeType": "YulIdentifier", + "src": "6325:3:14" + }, + "nativeSrc": "6325:31:14", + "nodeType": "YulFunctionCall", + "src": "6325:31:14" + }, + "variableNames": [ + { + "name": "twos", + "nativeSrc": "6317:4:14", + "nodeType": "YulIdentifier", + "src": "6317:4:14" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2825, + "isOffset": false, + "isSlot": false, + "src": "6073:11:14", + "valueSize": 1 + }, + { + "declaration": 2825, + "isOffset": false, + "isSlot": false, + "src": "6092:11:14", + "valueSize": 1 + }, + { + "declaration": 2831, + "isOffset": false, + "isSlot": false, + "src": "6177:5:14", + "valueSize": 1 + }, + { + "declaration": 2831, + "isOffset": false, + "isSlot": false, + "src": "6190:5:14", + "valueSize": 1 + }, + { + "declaration": 2862, + "isOffset": false, + "isSlot": false, + "src": "6105:4:14", + "valueSize": 1 + }, + { + "declaration": 2862, + "isOffset": false, + "isSlot": false, + "src": "6197:4:14", + "valueSize": 1 + }, + { + "declaration": 2862, + "isOffset": false, + "isSlot": false, + "src": "6317:4:14", + "valueSize": 1 + }, + { + "declaration": 2862, + "isOffset": false, + "isSlot": false, + "src": "6340:4:14", + "valueSize": 1 + }, + { + "declaration": 2862, + "isOffset": false, + "isSlot": false, + "src": "6347:4:14", + "valueSize": 1 + } + ], + "id": 2870, + "nodeType": "InlineAssembly", + "src": "5999:371:14" + }, + { + "expression": { + "id": 2875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2871, + "name": "prod0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2831, + "src": "6436:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2872, + "name": "prod1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2837, + "src": "6445:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2873, + "name": "twos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2862, + "src": "6453:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6445:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6436:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2876, + "nodeType": "ExpressionStatement", + "src": "6436:21:14" + }, + { + "assignments": [ + 2878 + ], + "declarations": [ + { + "constant": false, + "id": 2878, + "mutability": "mutable", + "name": "inverse", + "nameLocation": "6783:7:14", + "nodeType": "VariableDeclaration", + "scope": 2942, + "src": "6775:15:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2877, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6775:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2885, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "33", + "id": 2879, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6794:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2880, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2825, + "src": "6798:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6794:15:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2882, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6793:17:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "hexValue": "32", + "id": 2883, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6813:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "6793:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6775:39:14" + }, + { + "expression": { + "id": 2892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2886, + "name": "inverse", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2683, - "src": "7310:7:13", + "referencedDeclaration": 2878, + "src": "7031:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -35902,21 +38096,21 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2728, + "id": 2891, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "32", - "id": 2724, + "id": 2887, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7321:1:13", + "src": "7042:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" @@ -35930,18 +38124,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2727, + "id": 2890, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2725, + "id": 2888, "name": "denominator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2630, - "src": "7325:11:13", + "referencedDeclaration": 2825, + "src": "7046:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -35950,53 +38144,53 @@ "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { - "id": 2726, + "id": 2889, "name": "inverse", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2683, - "src": "7339:7:13", + "referencedDeclaration": 2878, + "src": "7060:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7325:21:13", + "src": "7046:21:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7321:25:13", + "src": "7042:25:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7310:36:13", + "src": "7031:36:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2730, + "id": 2893, "nodeType": "ExpressionStatement", - "src": "7310:36:13" + "src": "7031:36:14" }, { "expression": { - "id": 2737, + "id": 2900, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2731, + "id": 2894, "name": "inverse", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2683, - "src": "7381:7:13", + "referencedDeclaration": 2878, + "src": "7100:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36009,21 +38203,21 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2736, + "id": 2899, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "32", - "id": 2732, + "id": 2895, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7392:1:13", + "src": "7111:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" @@ -36037,18 +38231,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2735, + "id": 2898, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2733, + "id": 2896, "name": "denominator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2630, - "src": "7396:11:13", + "referencedDeclaration": 2825, + "src": "7115:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36057,171 +38251,599 @@ "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { - "id": 2734, + "id": 2897, "name": "inverse", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2683, - "src": "7410:7:13", + "referencedDeclaration": 2878, + "src": "7129:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7396:21:13", + "src": "7115:21:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7392:25:13", + "src": "7111:25:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7381:36:13", + "src": "7100:36:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2738, + "id": 2901, "nodeType": "ExpressionStatement", - "src": "7381:36:13" + "src": "7100:36:14" }, { "expression": { - "id": 2743, + "id": 2908, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2739, - "name": "result", + "id": 2902, + "name": "inverse", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2633, - "src": "7851:6:13", + "referencedDeclaration": 2878, + "src": "7170:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", - "operator": "=", + "operator": "*=", "rightHandSide": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2742, + "id": 2907, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2740, - "name": "prod0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2636, - "src": "7860:5:13", + "hexValue": "32", + "id": 2903, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7181:1:14", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" }, "nodeType": "BinaryOperation", - "operator": "*", + "operator": "-", "rightExpression": { - "id": 2741, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2683, - "src": "7868:7:13", + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2904, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2825, + "src": "7185:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2905, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7199:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7185:21:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7860:15:13", + "src": "7181:25:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7851:24:13", + "src": "7170:36:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2744, + "id": 2909, "nodeType": "ExpressionStatement", - "src": "7851:24:13" + "src": "7170:36:14" }, { "expression": { - "id": 2745, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2633, - "src": "7896:6:13", + "id": 2916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2910, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7240:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7251:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2912, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2825, + "src": "7255:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2913, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7269:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7255:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7251:25:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7240:36:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2634, - "id": 2746, - "nodeType": "Return", - "src": "7889:13:13" - } - ] - } - ] - }, - "documentation": { - "id": 2624, - "nodeType": "StructuredDocumentation", - "src": "3485:313:13", - "text": " @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n denominator == 0.\n @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n Uniswap Labs also under MIT license." - }, - "id": 2749, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mulDiv", - "nameLocation": "3812:6:13", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2631, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2626, - "mutability": "mutable", - "name": "x", - "nameLocation": "3827:1:13", - "nodeType": "VariableDeclaration", - "scope": 2749, - "src": "3819:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2625, - "name": "uint256", + "id": 2917, + "nodeType": "ExpressionStatement", + "src": "7240:36:14" + }, + { + "expression": { + "id": 2924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2918, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7310:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7321:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2920, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2825, + "src": "7325:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2921, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7339:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7325:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7321:25:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7310:36:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2925, + "nodeType": "ExpressionStatement", + "src": "7310:36:14" + }, + { + "expression": { + "id": 2932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2926, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7381:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2927, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7392:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2930, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2928, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2825, + "src": "7396:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2929, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7410:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7396:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7392:25:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7381:36:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2933, + "nodeType": "ExpressionStatement", + "src": "7381:36:14" + }, + { + "expression": { + "id": 2938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2934, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2828, + "src": "7851:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2935, + "name": "prod0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2831, + "src": "7860:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2936, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7868:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7860:15:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7851:24:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2939, + "nodeType": "ExpressionStatement", + "src": "7851:24:14" + }, + { + "expression": { + "id": 2940, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2828, + "src": "7896:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2829, + "id": 2941, + "nodeType": "Return", + "src": "7889:13:14" + } + ] + } + ] + }, + "documentation": { + "id": 2819, + "nodeType": "StructuredDocumentation", + "src": "3485:313:14", + "text": " @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n denominator == 0.\n @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n Uniswap Labs also under MIT license." + }, + "id": 2944, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mulDiv", + "nameLocation": "3812:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2826, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2821, + "mutability": "mutable", + "name": "x", + "nameLocation": "3827:1:14", + "nodeType": "VariableDeclaration", + "scope": 2944, + "src": "3819:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2820, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3819:7:13", + "src": "3819:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36231,13 +38853,13 @@ }, { "constant": false, - "id": 2628, + "id": 2823, "mutability": "mutable", "name": "y", - "nameLocation": "3838:1:13", + "nameLocation": "3838:1:14", "nodeType": "VariableDeclaration", - "scope": 2749, - "src": "3830:9:13", + "scope": 2944, + "src": "3830:9:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -36245,10 +38867,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2627, + "id": 2822, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3830:7:13", + "src": "3830:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36258,13 +38880,13 @@ }, { "constant": false, - "id": 2630, + "id": 2825, "mutability": "mutable", "name": "denominator", - "nameLocation": "3849:11:13", + "nameLocation": "3849:11:14", "nodeType": "VariableDeclaration", - "scope": 2749, - "src": "3841:19:13", + "scope": 2944, + "src": "3841:19:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -36272,10 +38894,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2629, + "id": 2824, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3841:7:13", + "src": "3841:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36284,21 +38906,21 @@ "visibility": "internal" } ], - "src": "3818:43:13" + "src": "3818:43:14" }, "returnParameters": { - "id": 2634, + "id": 2829, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2633, + "id": 2828, "mutability": "mutable", "name": "result", - "nameLocation": "3893:6:13", + "nameLocation": "3893:6:14", "nodeType": "VariableDeclaration", - "scope": 2749, - "src": "3885:14:13", + "scope": 2944, + "src": "3885:14:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -36306,10 +38928,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2632, + "id": 2827, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3885:7:13", + "src": "3885:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36318,34 +38940,34 @@ "visibility": "internal" } ], - "src": "3884:16:13" + "src": "3884:16:14" }, - "scope": 3415, - "src": "3803:4116:13", + "scope": 3610, + "src": "3803:4116:14", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2791, + "id": 2986, "nodeType": "Block", - "src": "8161:192:13", + "src": "8161:192:14", "statements": [ { "assignments": [ - 2765 + 2960 ], "declarations": [ { "constant": false, - "id": 2765, + "id": 2960, "mutability": "mutable", "name": "result", - "nameLocation": "8179:6:13", + "nameLocation": "8179:6:14", "nodeType": "VariableDeclaration", - "scope": 2791, - "src": "8171:14:13", + "scope": 2986, + "src": "8171:14:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -36353,10 +38975,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2764, + "id": 2959, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8171:7:13", + "src": "8171:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36365,40 +38987,40 @@ "visibility": "internal" } ], - "id": 2771, + "id": 2966, "initialValue": { "arguments": [ { - "id": 2767, + "id": 2962, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2752, - "src": "8195:1:13", + "referencedDeclaration": 2947, + "src": "8195:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 2768, + "id": 2963, "name": "y", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2754, - "src": "8198:1:13", + "referencedDeclaration": 2949, + "src": "8198:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 2769, + "id": 2964, "name": "denominator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2756, - "src": "8201:11:13", + "referencedDeclaration": 2951, + "src": "8201:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36420,21 +39042,21 @@ "typeString": "uint256" } ], - "id": 2766, + "id": 2961, "name": "mulDiv", "nodeType": "Identifier", "overloadedDeclarations": [ - 2749, - 2792 + 2944, + 2987 ], - "referencedDeclaration": 2749, - "src": "8188:6:13", + "referencedDeclaration": 2944, + "src": "8188:6:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, - "id": 2770, + "id": 2965, "isConstant": false, "isLValue": false, "isPure": false, @@ -36443,7 +39065,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8188:25:13", + "src": "8188:25:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -36451,7 +39073,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "8171:42:13" + "src": "8171:42:14" }, { "condition": { @@ -36459,7 +39081,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2782, + "id": 2977, "isConstant": false, "isLValue": false, "isPure": false, @@ -36467,14 +39089,14 @@ "leftExpression": { "arguments": [ { - "id": 2773, + "id": 2968, "name": "rounding", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2759, - "src": "8244:8:13", + "referencedDeclaration": 2954, + "src": "8244:8:14", "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" } } @@ -36482,22 +39104,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" } ], - "id": 2772, + "id": 2967, "name": "unsignedRoundsUp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3414, - "src": "8227:16:13", + "referencedDeclaration": 3609, + "src": "8227:16:14", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$2372_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$2567_$returns$_t_bool_$", "typeString": "function (enum Math.Rounding) pure returns (bool)" } }, - "id": 2774, + "id": 2969, "isConstant": false, "isLValue": false, "isPure": false, @@ -36506,7 +39128,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8227:26:13", + "src": "8227:26:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -36520,7 +39142,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2781, + "id": 2976, "isConstant": false, "isLValue": false, "isPure": false, @@ -36528,36 +39150,36 @@ "leftExpression": { "arguments": [ { - "id": 2776, + "id": 2971, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2752, - "src": "8264:1:13", + "referencedDeclaration": 2947, + "src": "8264:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 2777, + "id": 2972, "name": "y", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2754, - "src": "8267:1:13", + "referencedDeclaration": 2949, + "src": "8267:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 2778, + "id": 2973, "name": "denominator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2756, - "src": "8270:11:13", + "referencedDeclaration": 2951, + "src": "8270:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36579,18 +39201,18 @@ "typeString": "uint256" } ], - "id": 2775, + "id": 2970, "name": "mulmod", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -16, - "src": "8257:6:13", + "src": "8257:6:14", "typeDescriptions": { "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, - "id": 2779, + "id": 2974, "isConstant": false, "isLValue": false, "isPure": false, @@ -36599,7 +39221,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8257:25:13", + "src": "8257:25:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -36610,54 +39232,54 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 2780, + "id": 2975, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8285:1:13", + "src": "8285:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "8257:29:13", + "src": "8257:29:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "8227:59:13", + "src": "8227:59:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2788, + "id": 2983, "nodeType": "IfStatement", - "src": "8223:101:13", + "src": "8223:101:14", "trueBody": { - "id": 2787, + "id": 2982, "nodeType": "Block", - "src": "8288:36:13", + "src": "8288:36:14", "statements": [ { "expression": { - "id": 2785, + "id": 2980, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2783, + "id": 2978, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2765, - "src": "8302:6:13", + "referencedDeclaration": 2960, + "src": "8302:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36667,79 +39289,79 @@ "operator": "+=", "rightHandSide": { "hexValue": "31", - "id": 2784, + "id": 2979, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8312:1:13", + "src": "8312:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "8302:11:13", + "src": "8302:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2786, + "id": 2981, "nodeType": "ExpressionStatement", - "src": "8302:11:13" + "src": "8302:11:14" } ] } }, { "expression": { - "id": 2789, + "id": 2984, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2765, - "src": "8340:6:13", + "referencedDeclaration": 2960, + "src": "8340:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2763, - "id": 2790, + "functionReturnParameters": 2958, + "id": 2985, "nodeType": "Return", - "src": "8333:13:13" + "src": "8333:13:14" } ] }, "documentation": { - "id": 2750, + "id": 2945, "nodeType": "StructuredDocumentation", - "src": "7925:121:13", + "src": "7925:121:14", "text": " @notice Calculates x * y / denominator with full precision, following the selected rounding direction." }, - "id": 2792, + "id": 2987, "implemented": true, "kind": "function", "modifiers": [], "name": "mulDiv", - "nameLocation": "8060:6:13", + "nameLocation": "8060:6:14", "nodeType": "FunctionDefinition", "parameters": { - "id": 2760, + "id": 2955, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2752, + "id": 2947, "mutability": "mutable", "name": "x", - "nameLocation": "8075:1:13", + "nameLocation": "8075:1:14", "nodeType": "VariableDeclaration", - "scope": 2792, - "src": "8067:9:13", + "scope": 2987, + "src": "8067:9:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -36747,10 +39369,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2751, + "id": 2946, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8067:7:13", + "src": "8067:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36760,13 +39382,13 @@ }, { "constant": false, - "id": 2754, + "id": 2949, "mutability": "mutable", "name": "y", - "nameLocation": "8086:1:13", + "nameLocation": "8086:1:14", "nodeType": "VariableDeclaration", - "scope": 2792, - "src": "8078:9:13", + "scope": 2987, + "src": "8078:9:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -36774,10 +39396,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2753, + "id": 2948, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8078:7:13", + "src": "8078:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36787,13 +39409,13 @@ }, { "constant": false, - "id": 2756, + "id": 2951, "mutability": "mutable", "name": "denominator", - "nameLocation": "8097:11:13", + "nameLocation": "8097:11:14", "nodeType": "VariableDeclaration", - "scope": 2792, - "src": "8089:19:13", + "scope": 2987, + "src": "8089:19:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -36801,10 +39423,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2755, + "id": 2950, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8089:7:13", + "src": "8089:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36814,57 +39436,57 @@ }, { "constant": false, - "id": 2759, + "id": 2954, "mutability": "mutable", "name": "rounding", - "nameLocation": "8119:8:13", + "nameLocation": "8119:8:14", "nodeType": "VariableDeclaration", - "scope": 2792, - "src": "8110:17:13", + "scope": 2987, + "src": "8110:17:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" }, "typeName": { - "id": 2758, + "id": 2953, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2757, + "id": 2952, "name": "Rounding", "nameLocations": [ - "8110:8:13" + "8110:8:14" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2372, - "src": "8110:8:13" + "referencedDeclaration": 2567, + "src": "8110:8:14" }, - "referencedDeclaration": 2372, - "src": "8110:8:13", + "referencedDeclaration": 2567, + "src": "8110:8:14", "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" } }, "visibility": "internal" } ], - "src": "8066:62:13" + "src": "8066:62:14" }, "returnParameters": { - "id": 2763, + "id": 2958, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2762, + "id": 2957, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2792, - "src": "8152:7:13", + "scope": 2987, + "src": "8152:7:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -36872,10 +39494,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2761, + "id": 2956, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8152:7:13", + "src": "8152:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36884,19 +39506,19 @@ "visibility": "internal" } ], - "src": "8151:9:13" + "src": "8151:9:14" }, - "scope": 3415, - "src": "8051:302:13", + "scope": 3610, + "src": "8051:302:14", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2903, + "id": 3098, "nodeType": "Block", - "src": "8644:1585:13", + "src": "8644:1585:14", "statements": [ { "condition": { @@ -36904,18 +39526,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2802, + "id": 2997, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2800, + "id": 2995, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2795, - "src": "8658:1:13", + "referencedDeclaration": 2990, + "src": "8658:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36925,73 +39547,73 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 2801, + "id": 2996, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8663:1:13", + "src": "8663:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "8658:6:13", + "src": "8658:6:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2806, + "id": 3001, "nodeType": "IfStatement", - "src": "8654:45:13", + "src": "8654:45:14", "trueBody": { - "id": 2805, + "id": 3000, "nodeType": "Block", - "src": "8666:33:13", + "src": "8666:33:14", "statements": [ { "expression": { "hexValue": "30", - "id": 2803, + "id": 2998, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8687:1:13", + "src": "8687:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "functionReturnParameters": 2799, - "id": 2804, + "functionReturnParameters": 2994, + "id": 2999, "nodeType": "Return", - "src": "8680:8:13" + "src": "8680:8:14" } ] } }, { "assignments": [ - 2808 + 3003 ], "declarations": [ { "constant": false, - "id": 2808, + "id": 3003, "mutability": "mutable", "name": "result", - "nameLocation": "9386:6:13", + "nameLocation": "9386:6:14", "nodeType": "VariableDeclaration", - "scope": 2903, - "src": "9378:14:13", + "scope": 3098, + "src": "9378:14:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -36999,10 +39621,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2807, + "id": 3002, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9378:7:13", + "src": "9378:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37011,27 +39633,27 @@ "visibility": "internal" } ], - "id": 2817, + "id": 3012, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2816, + "id": 3011, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "31", - "id": 2809, + "id": 3004, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9395:1:13", + "src": "9395:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -37047,7 +39669,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2814, + "id": 3009, "isConstant": false, "isLValue": false, "isPure": false, @@ -37055,12 +39677,12 @@ "leftExpression": { "arguments": [ { - "id": 2811, + "id": 3006, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2795, - "src": "9406:1:13", + "referencedDeclaration": 2990, + "src": "9406:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37074,21 +39696,21 @@ "typeString": "uint256" } ], - "id": 2810, + "id": 3005, "name": "log2", "nodeType": "Identifier", "overloadedDeclarations": [ - 3071, - 3106 + 3266, + 3301 ], - "referencedDeclaration": 3071, - "src": "9401:4:13", + "referencedDeclaration": 3266, + "src": "9401:4:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256) pure returns (uint256)" } }, - "id": 2812, + "id": 3007, "isConstant": false, "isLValue": false, "isPure": false, @@ -37097,7 +39719,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9401:7:13", + "src": "9401:7:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -37108,68 +39730,68 @@ "operator": ">>", "rightExpression": { "hexValue": "31", - "id": 2813, + "id": 3008, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9412:1:13", + "src": "9412:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "9401:12:13", + "src": "9401:12:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 2815, + "id": 3010, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "9400:14:13", + "src": "9400:14:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9395:19:13", + "src": "9395:19:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "9378:36:13" + "src": "9378:36:14" }, { - "id": 2902, + "id": 3097, "nodeType": "UncheckedBlock", - "src": "9815:408:13", + "src": "9815:408:14", "statements": [ { "expression": { - "id": 2827, + "id": 3022, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2818, + "id": 3013, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "9839:6:13", + "referencedDeclaration": 3003, + "src": "9839:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37182,7 +39804,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2826, + "id": 3021, "isConstant": false, "isLValue": false, "isPure": false, @@ -37194,18 +39816,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2823, + "id": 3018, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2819, + "id": 3014, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "9849:6:13", + "referencedDeclaration": 3003, + "src": "9849:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37218,18 +39840,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2822, + "id": 3017, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2820, + "id": 3015, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2795, - "src": "9858:1:13", + "referencedDeclaration": 2990, + "src": "9858:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37238,38 +39860,38 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 2821, + "id": 3016, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "9862:6:13", + "referencedDeclaration": 3003, + "src": "9862:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9858:10:13", + "src": "9858:10:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9849:19:13", + "src": "9849:19:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 2824, + "id": 3019, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "9848:21:13", + "src": "9848:21:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37279,50 +39901,50 @@ "operator": ">>", "rightExpression": { "hexValue": "31", - "id": 2825, + "id": 3020, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9873:1:13", + "src": "9873:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "9848:26:13", + "src": "9848:26:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9839:35:13", + "src": "9839:35:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2828, + "id": 3023, "nodeType": "ExpressionStatement", - "src": "9839:35:13" + "src": "9839:35:14" }, { "expression": { - "id": 2838, + "id": 3033, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2829, + "id": 3024, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "9888:6:13", + "referencedDeclaration": 3003, + "src": "9888:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37335,7 +39957,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2837, + "id": 3032, "isConstant": false, "isLValue": false, "isPure": false, @@ -37347,18 +39969,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2834, + "id": 3029, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2830, + "id": 3025, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "9898:6:13", + "referencedDeclaration": 3003, + "src": "9898:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37371,18 +39993,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2833, + "id": 3028, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2831, + "id": 3026, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2795, - "src": "9907:1:13", + "referencedDeclaration": 2990, + "src": "9907:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37391,38 +40013,38 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 2832, + "id": 3027, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "9911:6:13", + "referencedDeclaration": 3003, + "src": "9911:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9907:10:13", + "src": "9907:10:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9898:19:13", + "src": "9898:19:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 2835, + "id": 3030, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "9897:21:13", + "src": "9897:21:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37432,50 +40054,50 @@ "operator": ">>", "rightExpression": { "hexValue": "31", - "id": 2836, + "id": 3031, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9922:1:13", + "src": "9922:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "9897:26:13", + "src": "9897:26:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9888:35:13", + "src": "9888:35:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2839, + "id": 3034, "nodeType": "ExpressionStatement", - "src": "9888:35:13" + "src": "9888:35:14" }, { "expression": { - "id": 2849, + "id": 3044, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2840, + "id": 3035, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "9937:6:13", + "referencedDeclaration": 3003, + "src": "9937:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37488,7 +40110,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2848, + "id": 3043, "isConstant": false, "isLValue": false, "isPure": false, @@ -37500,18 +40122,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2845, + "id": 3040, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2841, + "id": 3036, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "9947:6:13", + "referencedDeclaration": 3003, + "src": "9947:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37524,18 +40146,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2844, + "id": 3039, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2842, + "id": 3037, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2795, - "src": "9956:1:13", + "referencedDeclaration": 2990, + "src": "9956:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37544,38 +40166,38 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 2843, + "id": 3038, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "9960:6:13", + "referencedDeclaration": 3003, + "src": "9960:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9956:10:13", + "src": "9956:10:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9947:19:13", + "src": "9947:19:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 2846, + "id": 3041, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "9946:21:13", + "src": "9946:21:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37585,50 +40207,50 @@ "operator": ">>", "rightExpression": { "hexValue": "31", - "id": 2847, + "id": 3042, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9971:1:13", + "src": "9971:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "9946:26:13", + "src": "9946:26:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9937:35:13", + "src": "9937:35:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2850, + "id": 3045, "nodeType": "ExpressionStatement", - "src": "9937:35:13" + "src": "9937:35:14" }, { "expression": { - "id": 2860, + "id": 3055, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2851, + "id": 3046, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "9986:6:13", + "referencedDeclaration": 3003, + "src": "9986:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37641,7 +40263,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2859, + "id": 3054, "isConstant": false, "isLValue": false, "isPure": false, @@ -37653,18 +40275,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2856, + "id": 3051, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2852, + "id": 3047, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "9996:6:13", + "referencedDeclaration": 3003, + "src": "9996:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37677,18 +40299,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2855, + "id": 3050, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2853, + "id": 3048, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2795, - "src": "10005:1:13", + "referencedDeclaration": 2990, + "src": "10005:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37697,38 +40319,38 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 2854, + "id": 3049, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "10009:6:13", + "referencedDeclaration": 3003, + "src": "10009:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10005:10:13", + "src": "10005:10:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9996:19:13", + "src": "9996:19:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 2857, + "id": 3052, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "9995:21:13", + "src": "9995:21:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37738,50 +40360,50 @@ "operator": ">>", "rightExpression": { "hexValue": "31", - "id": 2858, + "id": 3053, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10020:1:13", + "src": "10020:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "9995:26:13", + "src": "9995:26:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9986:35:13", + "src": "9986:35:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2861, + "id": 3056, "nodeType": "ExpressionStatement", - "src": "9986:35:13" + "src": "9986:35:14" }, { "expression": { - "id": 2871, + "id": 3066, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2862, + "id": 3057, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "10035:6:13", + "referencedDeclaration": 3003, + "src": "10035:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37794,7 +40416,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2870, + "id": 3065, "isConstant": false, "isLValue": false, "isPure": false, @@ -37806,18 +40428,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2867, + "id": 3062, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2863, + "id": 3058, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "10045:6:13", + "referencedDeclaration": 3003, + "src": "10045:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37830,18 +40452,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2866, + "id": 3061, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2864, + "id": 3059, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2795, - "src": "10054:1:13", + "referencedDeclaration": 2990, + "src": "10054:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37850,38 +40472,38 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 2865, + "id": 3060, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "10058:6:13", + "referencedDeclaration": 3003, + "src": "10058:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10054:10:13", + "src": "10054:10:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10045:19:13", + "src": "10045:19:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 2868, + "id": 3063, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "10044:21:13", + "src": "10044:21:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37891,50 +40513,50 @@ "operator": ">>", "rightExpression": { "hexValue": "31", - "id": 2869, + "id": 3064, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10069:1:13", + "src": "10069:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "10044:26:13", + "src": "10044:26:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10035:35:13", + "src": "10035:35:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2872, + "id": 3067, "nodeType": "ExpressionStatement", - "src": "10035:35:13" + "src": "10035:35:14" }, { "expression": { - "id": 2882, + "id": 3077, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2873, + "id": 3068, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "10084:6:13", + "referencedDeclaration": 3003, + "src": "10084:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37947,7 +40569,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2881, + "id": 3076, "isConstant": false, "isLValue": false, "isPure": false, @@ -37959,18 +40581,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2878, + "id": 3073, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2874, + "id": 3069, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "10094:6:13", + "referencedDeclaration": 3003, + "src": "10094:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37983,18 +40605,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2877, + "id": 3072, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2875, + "id": 3070, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2795, - "src": "10103:1:13", + "referencedDeclaration": 2990, + "src": "10103:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38003,38 +40625,38 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 2876, + "id": 3071, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "10107:6:13", + "referencedDeclaration": 3003, + "src": "10107:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10103:10:13", + "src": "10103:10:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10094:19:13", + "src": "10094:19:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 2879, + "id": 3074, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "10093:21:13", + "src": "10093:21:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38044,50 +40666,50 @@ "operator": ">>", "rightExpression": { "hexValue": "31", - "id": 2880, + "id": 3075, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10118:1:13", + "src": "10118:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "10093:26:13", + "src": "10093:26:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10084:35:13", + "src": "10084:35:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2883, + "id": 3078, "nodeType": "ExpressionStatement", - "src": "10084:35:13" + "src": "10084:35:14" }, { "expression": { - "id": 2893, + "id": 3088, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2884, + "id": 3079, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "10133:6:13", + "referencedDeclaration": 3003, + "src": "10133:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38100,7 +40722,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2892, + "id": 3087, "isConstant": false, "isLValue": false, "isPure": false, @@ -38112,18 +40734,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2889, + "id": 3084, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2885, + "id": 3080, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "10143:6:13", + "referencedDeclaration": 3003, + "src": "10143:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38136,18 +40758,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2888, + "id": 3083, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2886, + "id": 3081, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2795, - "src": "10152:1:13", + "referencedDeclaration": 2990, + "src": "10152:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38156,38 +40778,38 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 2887, + "id": 3082, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "10156:6:13", + "referencedDeclaration": 3003, + "src": "10156:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10152:10:13", + "src": "10152:10:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10143:19:13", + "src": "10143:19:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 2890, + "id": 3085, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "10142:21:13", + "src": "10142:21:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38197,46 +40819,46 @@ "operator": ">>", "rightExpression": { "hexValue": "31", - "id": 2891, + "id": 3086, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10167:1:13", + "src": "10167:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "10142:26:13", + "src": "10142:26:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10133:35:13", + "src": "10133:35:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2894, + "id": 3089, "nodeType": "ExpressionStatement", - "src": "10133:35:13" + "src": "10133:35:14" }, { "expression": { "arguments": [ { - "id": 2896, + "id": 3091, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "10193:6:13", + "referencedDeclaration": 3003, + "src": "10193:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38247,18 +40869,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2899, + "id": 3094, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2897, + "id": 3092, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2795, - "src": "10201:1:13", + "referencedDeclaration": 2990, + "src": "10201:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38267,18 +40889,18 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 2898, + "id": 3093, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "10205:6:13", + "referencedDeclaration": 3003, + "src": "10205:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10201:10:13", + "src": "10201:10:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38296,18 +40918,18 @@ "typeString": "uint256" } ], - "id": 2895, + "id": 3090, "name": "min", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "10189:3:13", + "referencedDeclaration": 2761, + "src": "10189:3:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2900, + "id": 3095, "isConstant": false, "isLValue": false, "isPure": false, @@ -38316,48 +40938,48 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10189:23:13", + "src": "10189:23:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2799, - "id": 2901, + "functionReturnParameters": 2994, + "id": 3096, "nodeType": "Return", - "src": "10182:30:13" + "src": "10182:30:14" } ] } ] }, "documentation": { - "id": 2793, + "id": 2988, "nodeType": "StructuredDocumentation", - "src": "8359:223:13", + "src": "8359:223:14", "text": " @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\n towards zero.\n Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11)." }, - "id": 2904, + "id": 3099, "implemented": true, "kind": "function", "modifiers": [], "name": "sqrt", - "nameLocation": "8596:4:13", + "nameLocation": "8596:4:14", "nodeType": "FunctionDefinition", "parameters": { - "id": 2796, + "id": 2991, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2795, + "id": 2990, "mutability": "mutable", "name": "a", - "nameLocation": "8609:1:13", + "nameLocation": "8609:1:14", "nodeType": "VariableDeclaration", - "scope": 2904, - "src": "8601:9:13", + "scope": 3099, + "src": "8601:9:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -38365,10 +40987,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2794, + "id": 2989, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8601:7:13", + "src": "8601:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38377,21 +40999,21 @@ "visibility": "internal" } ], - "src": "8600:11:13" + "src": "8600:11:14" }, "returnParameters": { - "id": 2799, + "id": 2994, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2798, + "id": 2993, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2904, - "src": "8635:7:13", + "scope": 3099, + "src": "8635:7:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -38399,10 +41021,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2797, + "id": 2992, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8635:7:13", + "src": "8635:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38411,39 +41033,39 @@ "visibility": "internal" } ], - "src": "8634:9:13" + "src": "8634:9:14" }, - "scope": 3415, - "src": "8587:1642:13", + "scope": 3610, + "src": "8587:1642:14", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2938, + "id": 3133, "nodeType": "Block", - "src": "10405:164:13", + "src": "10405:164:14", "statements": [ { - "id": 2937, + "id": 3132, "nodeType": "UncheckedBlock", - "src": "10415:148:13", + "src": "10415:148:14", "statements": [ { "assignments": [ - 2916 + 3111 ], "declarations": [ { "constant": false, - "id": 2916, + "id": 3111, "mutability": "mutable", "name": "result", - "nameLocation": "10447:6:13", + "nameLocation": "10447:6:14", "nodeType": "VariableDeclaration", - "scope": 2937, - "src": "10439:14:13", + "scope": 3132, + "src": "10439:14:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -38451,10 +41073,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2915, + "id": 3110, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10439:7:13", + "src": "10439:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38463,16 +41085,16 @@ "visibility": "internal" } ], - "id": 2920, + "id": 3115, "initialValue": { "arguments": [ { - "id": 2918, + "id": 3113, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2907, - "src": "10461:1:13", + "referencedDeclaration": 3102, + "src": "10461:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38486,21 +41108,21 @@ "typeString": "uint256" } ], - "id": 2917, + "id": 3112, "name": "sqrt", "nodeType": "Identifier", "overloadedDeclarations": [ - 2904, - 2939 + 3099, + 3134 ], - "referencedDeclaration": 2904, - "src": "10456:4:13", + "referencedDeclaration": 3099, + "src": "10456:4:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256) pure returns (uint256)" } }, - "id": 2919, + "id": 3114, "isConstant": false, "isLValue": false, "isPure": false, @@ -38509,7 +41131,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10456:7:13", + "src": "10456:7:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -38517,7 +41139,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "10439:24:13" + "src": "10439:24:14" }, { "expression": { @@ -38525,18 +41147,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2935, + "id": 3130, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2921, + "id": 3116, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2916, - "src": "10484:6:13", + "referencedDeclaration": 3111, + "src": "10484:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38552,7 +41174,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2930, + "id": 3125, "isConstant": false, "isLValue": false, "isPure": false, @@ -38560,14 +41182,14 @@ "leftExpression": { "arguments": [ { - "id": 2923, + "id": 3118, "name": "rounding", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2910, - "src": "10511:8:13", + "referencedDeclaration": 3105, + "src": "10511:8:14", "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" } } @@ -38575,22 +41197,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" } ], - "id": 2922, + "id": 3117, "name": "unsignedRoundsUp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3414, - "src": "10494:16:13", + "referencedDeclaration": 3609, + "src": "10494:16:14", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$2372_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$2567_$returns$_t_bool_$", "typeString": "function (enum Math.Rounding) pure returns (bool)" } }, - "id": 2924, + "id": 3119, "isConstant": false, "isLValue": false, "isPure": false, @@ -38599,7 +41221,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10494:26:13", + "src": "10494:26:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -38613,7 +41235,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2929, + "id": 3124, "isConstant": false, "isLValue": false, "isPure": false, @@ -38623,18 +41245,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2927, + "id": 3122, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2925, + "id": 3120, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2916, - "src": "10524:6:13", + "referencedDeclaration": 3111, + "src": "10524:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38643,18 +41265,18 @@ "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { - "id": 2926, + "id": 3121, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2916, - "src": "10533:6:13", + "referencedDeclaration": 3111, + "src": "10533:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10524:15:13", + "src": "10524:15:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38663,24 +41285,24 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 2928, + "id": 3123, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2907, - "src": "10542:1:13", + "referencedDeclaration": 3102, + "src": "10542:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10524:19:13", + "src": "10524:19:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "10494:49:13", + "src": "10494:49:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -38688,37 +41310,37 @@ }, "falseExpression": { "hexValue": "30", - "id": 2932, + "id": 3127, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10550:1:13", + "src": "10550:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "id": 2933, + "id": 3128, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "10494:57:13", + "src": "10494:57:14", "trueExpression": { "hexValue": "31", - "id": 2931, + "id": 3126, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10546:1:13", + "src": "10546:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -38731,60 +41353,60 @@ } } ], - "id": 2934, + "id": 3129, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "10493:59:13", + "src": "10493:59:14", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "10484:68:13", + "src": "10484:68:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2914, - "id": 2936, + "functionReturnParameters": 3109, + "id": 3131, "nodeType": "Return", - "src": "10477:75:13" + "src": "10477:75:14" } ] } ] }, "documentation": { - "id": 2905, + "id": 3100, "nodeType": "StructuredDocumentation", - "src": "10235:89:13", + "src": "10235:89:14", "text": " @notice Calculates sqrt(a), following the selected rounding direction." }, - "id": 2939, + "id": 3134, "implemented": true, "kind": "function", "modifiers": [], "name": "sqrt", - "nameLocation": "10338:4:13", + "nameLocation": "10338:4:14", "nodeType": "FunctionDefinition", "parameters": { - "id": 2911, + "id": 3106, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2907, + "id": 3102, "mutability": "mutable", "name": "a", - "nameLocation": "10351:1:13", + "nameLocation": "10351:1:14", "nodeType": "VariableDeclaration", - "scope": 2939, - "src": "10343:9:13", + "scope": 3134, + "src": "10343:9:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -38792,10 +41414,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2906, + "id": 3101, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10343:7:13", + "src": "10343:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38805,57 +41427,57 @@ }, { "constant": false, - "id": 2910, + "id": 3105, "mutability": "mutable", "name": "rounding", - "nameLocation": "10363:8:13", + "nameLocation": "10363:8:14", "nodeType": "VariableDeclaration", - "scope": 2939, - "src": "10354:17:13", + "scope": 3134, + "src": "10354:17:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" }, "typeName": { - "id": 2909, + "id": 3104, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2908, + "id": 3103, "name": "Rounding", "nameLocations": [ - "10354:8:13" + "10354:8:14" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2372, - "src": "10354:8:13" + "referencedDeclaration": 2567, + "src": "10354:8:14" }, - "referencedDeclaration": 2372, - "src": "10354:8:13", + "referencedDeclaration": 2567, + "src": "10354:8:14", "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" } }, "visibility": "internal" } ], - "src": "10342:30:13" + "src": "10342:30:14" }, "returnParameters": { - "id": 2914, + "id": 3109, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2913, + "id": 3108, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2939, - "src": "10396:7:13", + "scope": 3134, + "src": "10396:7:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -38863,10 +41485,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2912, + "id": 3107, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10396:7:13", + "src": "10396:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38875,34 +41497,34 @@ "visibility": "internal" } ], - "src": "10395:9:13" + "src": "10395:9:14" }, - "scope": 3415, - "src": "10329:240:13", + "scope": 3610, + "src": "10329:240:14", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { - "id": 3070, + "id": 3265, "nodeType": "Block", - "src": "10760:922:13", + "src": "10760:922:14", "statements": [ { "assignments": [ - 2948 + 3143 ], "declarations": [ { "constant": false, - "id": 2948, + "id": 3143, "mutability": "mutable", "name": "result", - "nameLocation": "10778:6:13", + "nameLocation": "10778:6:14", "nodeType": "VariableDeclaration", - "scope": 3070, - "src": "10770:14:13", + "scope": 3265, + "src": "10770:14:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -38910,10 +41532,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2947, + "id": 3142, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10770:7:13", + "src": "10770:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38922,17 +41544,17 @@ "visibility": "internal" } ], - "id": 2950, + "id": 3145, "initialValue": { "hexValue": "30", - "id": 2949, + "id": 3144, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10787:1:13", + "src": "10787:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -38940,12 +41562,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "10770:18:13" + "src": "10770:18:14" }, { - "id": 3067, + "id": 3262, "nodeType": "UncheckedBlock", - "src": "10798:855:13", + "src": "10798:855:14", "statements": [ { "condition": { @@ -38953,7 +41575,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2955, + "id": 3150, "isConstant": false, "isLValue": false, "isPure": false, @@ -38963,18 +41585,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2953, + "id": 3148, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2951, + "id": 3146, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "10826:5:13", + "referencedDeclaration": 3137, + "src": "10826:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38984,21 +41606,21 @@ "operator": ">>", "rightExpression": { "hexValue": "313238", - "id": 2952, + "id": 3147, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10835:3:13", + "src": "10835:3:14", "typeDescriptions": { "typeIdentifier": "t_rational_128_by_1", "typeString": "int_const 128" }, "value": "128" }, - "src": "10826:12:13", + "src": "10826:12:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39008,48 +41630,48 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 2954, + "id": 3149, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10841:1:13", + "src": "10841:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "10826:16:13", + "src": "10826:16:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2965, + "id": 3160, "nodeType": "IfStatement", - "src": "10822:99:13", + "src": "10822:99:14", "trueBody": { - "id": 2964, + "id": 3159, "nodeType": "Block", - "src": "10844:77:13", + "src": "10844:77:14", "statements": [ { "expression": { - "id": 2958, + "id": 3153, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2956, + "id": 3151, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "10862:5:13", + "referencedDeclaration": 3137, + "src": "10862:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39059,44 +41681,44 @@ "operator": ">>=", "rightHandSide": { "hexValue": "313238", - "id": 2957, + "id": 3152, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10872:3:13", + "src": "10872:3:14", "typeDescriptions": { "typeIdentifier": "t_rational_128_by_1", "typeString": "int_const 128" }, "value": "128" }, - "src": "10862:13:13", + "src": "10862:13:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2959, + "id": 3154, "nodeType": "ExpressionStatement", - "src": "10862:13:13" + "src": "10862:13:14" }, { "expression": { - "id": 2962, + "id": 3157, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2960, + "id": 3155, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2948, - "src": "10893:6:13", + "referencedDeclaration": 3143, + "src": "10893:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39106,29 +41728,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "313238", - "id": 2961, + "id": 3156, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10903:3:13", + "src": "10903:3:14", "typeDescriptions": { "typeIdentifier": "t_rational_128_by_1", "typeString": "int_const 128" }, "value": "128" }, - "src": "10893:13:13", + "src": "10893:13:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2963, + "id": 3158, "nodeType": "ExpressionStatement", - "src": "10893:13:13" + "src": "10893:13:14" } ] } @@ -39139,7 +41761,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2970, + "id": 3165, "isConstant": false, "isLValue": false, "isPure": false, @@ -39149,18 +41771,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2968, + "id": 3163, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2966, + "id": 3161, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "10938:5:13", + "referencedDeclaration": 3137, + "src": "10938:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39170,21 +41792,21 @@ "operator": ">>", "rightExpression": { "hexValue": "3634", - "id": 2967, + "id": 3162, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10947:2:13", + "src": "10947:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_64_by_1", "typeString": "int_const 64" }, "value": "64" }, - "src": "10938:11:13", + "src": "10938:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39194,48 +41816,48 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 2969, + "id": 3164, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10952:1:13", + "src": "10952:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "10938:15:13", + "src": "10938:15:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2980, + "id": 3175, "nodeType": "IfStatement", - "src": "10934:96:13", + "src": "10934:96:14", "trueBody": { - "id": 2979, + "id": 3174, "nodeType": "Block", - "src": "10955:75:13", + "src": "10955:75:14", "statements": [ { "expression": { - "id": 2973, + "id": 3168, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2971, + "id": 3166, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "10973:5:13", + "referencedDeclaration": 3137, + "src": "10973:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39245,44 +41867,44 @@ "operator": ">>=", "rightHandSide": { "hexValue": "3634", - "id": 2972, + "id": 3167, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10983:2:13", + "src": "10983:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_64_by_1", "typeString": "int_const 64" }, "value": "64" }, - "src": "10973:12:13", + "src": "10973:12:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2974, + "id": 3169, "nodeType": "ExpressionStatement", - "src": "10973:12:13" + "src": "10973:12:14" }, { "expression": { - "id": 2977, + "id": 3172, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2975, + "id": 3170, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2948, - "src": "11003:6:13", + "referencedDeclaration": 3143, + "src": "11003:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39292,29 +41914,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "3634", - "id": 2976, + "id": 3171, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11013:2:13", + "src": "11013:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_64_by_1", "typeString": "int_const 64" }, "value": "64" }, - "src": "11003:12:13", + "src": "11003:12:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2978, + "id": 3173, "nodeType": "ExpressionStatement", - "src": "11003:12:13" + "src": "11003:12:14" } ] } @@ -39325,7 +41947,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2985, + "id": 3180, "isConstant": false, "isLValue": false, "isPure": false, @@ -39335,18 +41957,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2983, + "id": 3178, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2981, + "id": 3176, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "11047:5:13", + "referencedDeclaration": 3137, + "src": "11047:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39356,21 +41978,21 @@ "operator": ">>", "rightExpression": { "hexValue": "3332", - "id": 2982, + "id": 3177, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11056:2:13", + "src": "11056:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, "value": "32" }, - "src": "11047:11:13", + "src": "11047:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39380,48 +42002,48 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 2984, + "id": 3179, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11061:1:13", + "src": "11061:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "11047:15:13", + "src": "11047:15:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2995, + "id": 3190, "nodeType": "IfStatement", - "src": "11043:96:13", + "src": "11043:96:14", "trueBody": { - "id": 2994, + "id": 3189, "nodeType": "Block", - "src": "11064:75:13", + "src": "11064:75:14", "statements": [ { "expression": { - "id": 2988, + "id": 3183, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2986, + "id": 3181, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "11082:5:13", + "referencedDeclaration": 3137, + "src": "11082:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39431,44 +42053,44 @@ "operator": ">>=", "rightHandSide": { "hexValue": "3332", - "id": 2987, + "id": 3182, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11092:2:13", + "src": "11092:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, "value": "32" }, - "src": "11082:12:13", + "src": "11082:12:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2989, + "id": 3184, "nodeType": "ExpressionStatement", - "src": "11082:12:13" + "src": "11082:12:14" }, { "expression": { - "id": 2992, + "id": 3187, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2990, + "id": 3185, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2948, - "src": "11112:6:13", + "referencedDeclaration": 3143, + "src": "11112:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39478,29 +42100,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "3332", - "id": 2991, + "id": 3186, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11122:2:13", + "src": "11122:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, "value": "32" }, - "src": "11112:12:13", + "src": "11112:12:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2993, + "id": 3188, "nodeType": "ExpressionStatement", - "src": "11112:12:13" + "src": "11112:12:14" } ] } @@ -39511,7 +42133,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3000, + "id": 3195, "isConstant": false, "isLValue": false, "isPure": false, @@ -39521,18 +42143,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2998, + "id": 3193, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2996, + "id": 3191, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "11156:5:13", + "referencedDeclaration": 3137, + "src": "11156:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39542,21 +42164,21 @@ "operator": ">>", "rightExpression": { "hexValue": "3136", - "id": 2997, + "id": 3192, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11165:2:13", + "src": "11165:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_16_by_1", "typeString": "int_const 16" }, "value": "16" }, - "src": "11156:11:13", + "src": "11156:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39566,48 +42188,48 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 2999, + "id": 3194, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11170:1:13", + "src": "11170:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "11156:15:13", + "src": "11156:15:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3010, + "id": 3205, "nodeType": "IfStatement", - "src": "11152:96:13", + "src": "11152:96:14", "trueBody": { - "id": 3009, + "id": 3204, "nodeType": "Block", - "src": "11173:75:13", + "src": "11173:75:14", "statements": [ { "expression": { - "id": 3003, + "id": 3198, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3001, + "id": 3196, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "11191:5:13", + "referencedDeclaration": 3137, + "src": "11191:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39617,44 +42239,44 @@ "operator": ">>=", "rightHandSide": { "hexValue": "3136", - "id": 3002, + "id": 3197, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11201:2:13", + "src": "11201:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_16_by_1", "typeString": "int_const 16" }, "value": "16" }, - "src": "11191:12:13", + "src": "11191:12:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3004, + "id": 3199, "nodeType": "ExpressionStatement", - "src": "11191:12:13" + "src": "11191:12:14" }, { "expression": { - "id": 3007, + "id": 3202, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3005, + "id": 3200, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2948, - "src": "11221:6:13", + "referencedDeclaration": 3143, + "src": "11221:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39664,29 +42286,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "3136", - "id": 3006, + "id": 3201, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11231:2:13", + "src": "11231:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_16_by_1", "typeString": "int_const 16" }, "value": "16" }, - "src": "11221:12:13", + "src": "11221:12:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3008, + "id": 3203, "nodeType": "ExpressionStatement", - "src": "11221:12:13" + "src": "11221:12:14" } ] } @@ -39697,7 +42319,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3015, + "id": 3210, "isConstant": false, "isLValue": false, "isPure": false, @@ -39707,18 +42329,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3013, + "id": 3208, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3011, + "id": 3206, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "11265:5:13", + "referencedDeclaration": 3137, + "src": "11265:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39728,21 +42350,21 @@ "operator": ">>", "rightExpression": { "hexValue": "38", - "id": 3012, + "id": 3207, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11274:1:13", + "src": "11274:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8" }, "value": "8" }, - "src": "11265:10:13", + "src": "11265:10:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39752,48 +42374,48 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 3014, + "id": 3209, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11278:1:13", + "src": "11278:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "11265:14:13", + "src": "11265:14:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3025, + "id": 3220, "nodeType": "IfStatement", - "src": "11261:93:13", + "src": "11261:93:14", "trueBody": { - "id": 3024, + "id": 3219, "nodeType": "Block", - "src": "11281:73:13", + "src": "11281:73:14", "statements": [ { "expression": { - "id": 3018, + "id": 3213, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3016, + "id": 3211, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "11299:5:13", + "referencedDeclaration": 3137, + "src": "11299:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39803,44 +42425,44 @@ "operator": ">>=", "rightHandSide": { "hexValue": "38", - "id": 3017, + "id": 3212, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11309:1:13", + "src": "11309:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8" }, "value": "8" }, - "src": "11299:11:13", + "src": "11299:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3019, + "id": 3214, "nodeType": "ExpressionStatement", - "src": "11299:11:13" + "src": "11299:11:14" }, { "expression": { - "id": 3022, + "id": 3217, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3020, + "id": 3215, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2948, - "src": "11328:6:13", + "referencedDeclaration": 3143, + "src": "11328:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39850,29 +42472,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "38", - "id": 3021, + "id": 3216, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11338:1:13", + "src": "11338:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8" }, "value": "8" }, - "src": "11328:11:13", + "src": "11328:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3023, + "id": 3218, "nodeType": "ExpressionStatement", - "src": "11328:11:13" + "src": "11328:11:14" } ] } @@ -39883,7 +42505,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3030, + "id": 3225, "isConstant": false, "isLValue": false, "isPure": false, @@ -39893,18 +42515,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3028, + "id": 3223, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3026, + "id": 3221, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "11371:5:13", + "referencedDeclaration": 3137, + "src": "11371:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39914,21 +42536,21 @@ "operator": ">>", "rightExpression": { "hexValue": "34", - "id": 3027, + "id": 3222, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11380:1:13", + "src": "11380:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", "typeString": "int_const 4" }, "value": "4" }, - "src": "11371:10:13", + "src": "11371:10:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39938,48 +42560,48 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 3029, + "id": 3224, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11384:1:13", + "src": "11384:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "11371:14:13", + "src": "11371:14:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3040, + "id": 3235, "nodeType": "IfStatement", - "src": "11367:93:13", + "src": "11367:93:14", "trueBody": { - "id": 3039, + "id": 3234, "nodeType": "Block", - "src": "11387:73:13", + "src": "11387:73:14", "statements": [ { "expression": { - "id": 3033, + "id": 3228, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3031, + "id": 3226, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "11405:5:13", + "referencedDeclaration": 3137, + "src": "11405:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39989,44 +42611,44 @@ "operator": ">>=", "rightHandSide": { "hexValue": "34", - "id": 3032, + "id": 3227, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11415:1:13", + "src": "11415:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", "typeString": "int_const 4" }, "value": "4" }, - "src": "11405:11:13", + "src": "11405:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3034, + "id": 3229, "nodeType": "ExpressionStatement", - "src": "11405:11:13" + "src": "11405:11:14" }, { "expression": { - "id": 3037, + "id": 3232, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3035, + "id": 3230, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2948, - "src": "11434:6:13", + "referencedDeclaration": 3143, + "src": "11434:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40036,29 +42658,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "34", - "id": 3036, + "id": 3231, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11444:1:13", + "src": "11444:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", "typeString": "int_const 4" }, "value": "4" }, - "src": "11434:11:13", + "src": "11434:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3038, + "id": 3233, "nodeType": "ExpressionStatement", - "src": "11434:11:13" + "src": "11434:11:14" } ] } @@ -40069,7 +42691,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3045, + "id": 3240, "isConstant": false, "isLValue": false, "isPure": false, @@ -40079,18 +42701,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3043, + "id": 3238, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3041, + "id": 3236, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "11477:5:13", + "referencedDeclaration": 3137, + "src": "11477:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40100,21 +42722,21 @@ "operator": ">>", "rightExpression": { "hexValue": "32", - "id": 3042, + "id": 3237, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11486:1:13", + "src": "11486:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, - "src": "11477:10:13", + "src": "11477:10:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40124,48 +42746,48 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 3044, + "id": 3239, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11490:1:13", + "src": "11490:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "11477:14:13", + "src": "11477:14:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3055, + "id": 3250, "nodeType": "IfStatement", - "src": "11473:93:13", + "src": "11473:93:14", "trueBody": { - "id": 3054, + "id": 3249, "nodeType": "Block", - "src": "11493:73:13", + "src": "11493:73:14", "statements": [ { "expression": { - "id": 3048, + "id": 3243, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3046, + "id": 3241, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "11511:5:13", + "referencedDeclaration": 3137, + "src": "11511:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40175,44 +42797,44 @@ "operator": ">>=", "rightHandSide": { "hexValue": "32", - "id": 3047, + "id": 3242, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11521:1:13", + "src": "11521:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, - "src": "11511:11:13", + "src": "11511:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3049, + "id": 3244, "nodeType": "ExpressionStatement", - "src": "11511:11:13" + "src": "11511:11:14" }, { "expression": { - "id": 3052, + "id": 3247, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3050, + "id": 3245, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2948, - "src": "11540:6:13", + "referencedDeclaration": 3143, + "src": "11540:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40222,29 +42844,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "32", - "id": 3051, + "id": 3246, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11550:1:13", + "src": "11550:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, - "src": "11540:11:13", + "src": "11540:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3053, + "id": 3248, "nodeType": "ExpressionStatement", - "src": "11540:11:13" + "src": "11540:11:14" } ] } @@ -40255,7 +42877,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3060, + "id": 3255, "isConstant": false, "isLValue": false, "isPure": false, @@ -40265,18 +42887,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3058, + "id": 3253, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3056, + "id": 3251, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "11583:5:13", + "referencedDeclaration": 3137, + "src": "11583:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40286,21 +42908,21 @@ "operator": ">>", "rightExpression": { "hexValue": "31", - "id": 3057, + "id": 3252, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11592:1:13", + "src": "11592:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "11583:10:13", + "src": "11583:10:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40310,48 +42932,48 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 3059, + "id": 3254, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11596:1:13", + "src": "11596:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "11583:14:13", + "src": "11583:14:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3066, + "id": 3261, "nodeType": "IfStatement", - "src": "11579:64:13", + "src": "11579:64:14", "trueBody": { - "id": 3065, + "id": 3260, "nodeType": "Block", - "src": "11599:44:13", + "src": "11599:44:14", "statements": [ { "expression": { - "id": 3063, + "id": 3258, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3061, + "id": 3256, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2948, - "src": "11617:6:13", + "referencedDeclaration": 3143, + "src": "11617:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40361,29 +42983,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "31", - "id": 3062, + "id": 3257, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11627:1:13", + "src": "11627:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "11617:11:13", + "src": "11617:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3064, + "id": 3259, "nodeType": "ExpressionStatement", - "src": "11617:11:13" + "src": "11617:11:14" } ] } @@ -40392,50 +43014,50 @@ }, { "expression": { - "id": 3068, + "id": 3263, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2948, - "src": "11669:6:13", + "referencedDeclaration": 3143, + "src": "11669:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2946, - "id": 3069, + "functionReturnParameters": 3141, + "id": 3264, "nodeType": "Return", - "src": "11662:13:13" + "src": "11662:13:14" } ] }, "documentation": { - "id": 2940, + "id": 3135, "nodeType": "StructuredDocumentation", - "src": "10575:119:13", + "src": "10575:119:14", "text": " @dev Return the log in base 2 of a positive value rounded towards zero.\n Returns 0 if given 0." }, - "id": 3071, + "id": 3266, "implemented": true, "kind": "function", "modifiers": [], "name": "log2", - "nameLocation": "10708:4:13", + "nameLocation": "10708:4:14", "nodeType": "FunctionDefinition", "parameters": { - "id": 2943, + "id": 3138, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2942, + "id": 3137, "mutability": "mutable", "name": "value", - "nameLocation": "10721:5:13", + "nameLocation": "10721:5:14", "nodeType": "VariableDeclaration", - "scope": 3071, - "src": "10713:13:13", + "scope": 3266, + "src": "10713:13:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -40443,10 +43065,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2941, + "id": 3136, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10713:7:13", + "src": "10713:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40455,21 +43077,21 @@ "visibility": "internal" } ], - "src": "10712:15:13" + "src": "10712:15:14" }, "returnParameters": { - "id": 2946, + "id": 3141, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2945, + "id": 3140, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 3071, - "src": "10751:7:13", + "scope": 3266, + "src": "10751:7:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -40477,10 +43099,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2944, + "id": 3139, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10751:7:13", + "src": "10751:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40489,39 +43111,39 @@ "visibility": "internal" } ], - "src": "10750:9:13" + "src": "10750:9:14" }, - "scope": 3415, - "src": "10699:983:13", + "scope": 3610, + "src": "10699:983:14", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { - "id": 3105, + "id": 3300, "nodeType": "Block", - "src": "11915:168:13", + "src": "11915:168:14", "statements": [ { - "id": 3104, + "id": 3299, "nodeType": "UncheckedBlock", - "src": "11925:152:13", + "src": "11925:152:14", "statements": [ { "assignments": [ - 3083 + 3278 ], "declarations": [ { "constant": false, - "id": 3083, + "id": 3278, "mutability": "mutable", "name": "result", - "nameLocation": "11957:6:13", + "nameLocation": "11957:6:14", "nodeType": "VariableDeclaration", - "scope": 3104, - "src": "11949:14:13", + "scope": 3299, + "src": "11949:14:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -40529,10 +43151,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3082, + "id": 3277, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "11949:7:13", + "src": "11949:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40541,16 +43163,16 @@ "visibility": "internal" } ], - "id": 3087, + "id": 3282, "initialValue": { "arguments": [ { - "id": 3085, + "id": 3280, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3074, - "src": "11971:5:13", + "referencedDeclaration": 3269, + "src": "11971:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40564,21 +43186,21 @@ "typeString": "uint256" } ], - "id": 3084, + "id": 3279, "name": "log2", "nodeType": "Identifier", "overloadedDeclarations": [ - 3071, - 3106 + 3266, + 3301 ], - "referencedDeclaration": 3071, - "src": "11966:4:13", + "referencedDeclaration": 3266, + "src": "11966:4:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256) pure returns (uint256)" } }, - "id": 3086, + "id": 3281, "isConstant": false, "isLValue": false, "isPure": false, @@ -40587,7 +43209,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11966:11:13", + "src": "11966:11:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -40595,7 +43217,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "11949:28:13" + "src": "11949:28:14" }, { "expression": { @@ -40603,18 +43225,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3102, + "id": 3297, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3088, + "id": 3283, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "11998:6:13", + "referencedDeclaration": 3278, + "src": "11998:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40630,7 +43252,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 3097, + "id": 3292, "isConstant": false, "isLValue": false, "isPure": false, @@ -40638,14 +43260,14 @@ "leftExpression": { "arguments": [ { - "id": 3090, + "id": 3285, "name": "rounding", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3077, - "src": "12025:8:13", + "referencedDeclaration": 3272, + "src": "12025:8:14", "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" } } @@ -40653,22 +43275,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" } ], - "id": 3089, + "id": 3284, "name": "unsignedRoundsUp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3414, - "src": "12008:16:13", + "referencedDeclaration": 3609, + "src": "12008:16:14", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$2372_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$2567_$returns$_t_bool_$", "typeString": "function (enum Math.Rounding) pure returns (bool)" } }, - "id": 3091, + "id": 3286, "isConstant": false, "isLValue": false, "isPure": false, @@ -40677,7 +43299,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "12008:26:13", + "src": "12008:26:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -40691,7 +43313,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3096, + "id": 3291, "isConstant": false, "isLValue": false, "isPure": false, @@ -40701,21 +43323,21 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3094, + "id": 3289, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "31", - "id": 3092, + "id": 3287, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12038:1:13", + "src": "12038:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -40725,18 +43347,18 @@ "nodeType": "BinaryOperation", "operator": "<<", "rightExpression": { - "id": 3093, + "id": 3288, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "12043:6:13", + "referencedDeclaration": 3278, + "src": "12043:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "12038:11:13", + "src": "12038:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40745,24 +43367,24 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 3095, + "id": 3290, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3074, - "src": "12052:5:13", + "referencedDeclaration": 3269, + "src": "12052:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "12038:19:13", + "src": "12038:19:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "12008:49:13", + "src": "12008:49:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -40770,37 +43392,37 @@ }, "falseExpression": { "hexValue": "30", - "id": 3099, + "id": 3294, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12064:1:13", + "src": "12064:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "id": 3100, + "id": 3295, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "12008:57:13", + "src": "12008:57:14", "trueExpression": { "hexValue": "31", - "id": 3098, + "id": 3293, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12060:1:13", + "src": "12060:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -40813,60 +43435,60 @@ } } ], - "id": 3101, + "id": 3296, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "12007:59:13", + "src": "12007:59:14", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "11998:68:13", + "src": "11998:68:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3081, - "id": 3103, + "functionReturnParameters": 3276, + "id": 3298, "nodeType": "Return", - "src": "11991:75:13" + "src": "11991:75:14" } ] } ] }, "documentation": { - "id": 3072, + "id": 3267, "nodeType": "StructuredDocumentation", - "src": "11688:142:13", + "src": "11688:142:14", "text": " @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." }, - "id": 3106, + "id": 3301, "implemented": true, "kind": "function", "modifiers": [], "name": "log2", - "nameLocation": "11844:4:13", + "nameLocation": "11844:4:14", "nodeType": "FunctionDefinition", "parameters": { - "id": 3078, + "id": 3273, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3074, + "id": 3269, "mutability": "mutable", "name": "value", - "nameLocation": "11857:5:13", + "nameLocation": "11857:5:14", "nodeType": "VariableDeclaration", - "scope": 3106, - "src": "11849:13:13", + "scope": 3301, + "src": "11849:13:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -40874,10 +43496,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3073, + "id": 3268, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "11849:7:13", + "src": "11849:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40887,57 +43509,57 @@ }, { "constant": false, - "id": 3077, + "id": 3272, "mutability": "mutable", "name": "rounding", - "nameLocation": "11873:8:13", + "nameLocation": "11873:8:14", "nodeType": "VariableDeclaration", - "scope": 3106, - "src": "11864:17:13", + "scope": 3301, + "src": "11864:17:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" }, "typeName": { - "id": 3076, + "id": 3271, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 3075, + "id": 3270, "name": "Rounding", "nameLocations": [ - "11864:8:13" + "11864:8:14" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2372, - "src": "11864:8:13" + "referencedDeclaration": 2567, + "src": "11864:8:14" }, - "referencedDeclaration": 2372, - "src": "11864:8:13", + "referencedDeclaration": 2567, + "src": "11864:8:14", "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" } }, "visibility": "internal" } ], - "src": "11848:34:13" + "src": "11848:34:14" }, "returnParameters": { - "id": 3081, + "id": 3276, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3080, + "id": 3275, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 3106, - "src": "11906:7:13", + "scope": 3301, + "src": "11906:7:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -40945,10 +43567,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3079, + "id": 3274, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "11906:7:13", + "src": "11906:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40957,34 +43579,34 @@ "visibility": "internal" } ], - "src": "11905:9:13" + "src": "11905:9:14" }, - "scope": 3415, - "src": "11835:248:13", + "scope": 3610, + "src": "11835:248:14", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { - "id": 3234, + "id": 3429, "nodeType": "Block", - "src": "12276:854:13", + "src": "12276:854:14", "statements": [ { "assignments": [ - 3115 + 3310 ], "declarations": [ { "constant": false, - "id": 3115, + "id": 3310, "mutability": "mutable", "name": "result", - "nameLocation": "12294:6:13", + "nameLocation": "12294:6:14", "nodeType": "VariableDeclaration", - "scope": 3234, - "src": "12286:14:13", + "scope": 3429, + "src": "12286:14:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -40992,10 +43614,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3114, + "id": 3309, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "12286:7:13", + "src": "12286:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41004,17 +43626,17 @@ "visibility": "internal" } ], - "id": 3117, + "id": 3312, "initialValue": { "hexValue": "30", - "id": 3116, + "id": 3311, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12303:1:13", + "src": "12303:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -41022,12 +43644,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "12286:18:13" + "src": "12286:18:14" }, { - "id": 3231, + "id": 3426, "nodeType": "UncheckedBlock", - "src": "12314:787:13", + "src": "12314:787:14", "statements": [ { "condition": { @@ -41035,18 +43657,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3122, + "id": 3317, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3118, + "id": 3313, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "12342:5:13", + "referencedDeclaration": 3304, + "src": "12342:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41059,21 +43681,21 @@ "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", "typeString": "int_const 1000...(57 digits omitted)...0000" }, - "id": 3121, + "id": 3316, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 3119, + "id": 3314, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12351:2:13", + "src": "12351:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -41084,54 +43706,54 @@ "operator": "**", "rightExpression": { "hexValue": "3634", - "id": 3120, + "id": 3315, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12357:2:13", + "src": "12357:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_64_by_1", "typeString": "int_const 64" }, "value": "64" }, - "src": "12351:8:13", + "src": "12351:8:14", "typeDescriptions": { "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", "typeString": "int_const 1000...(57 digits omitted)...0000" } }, - "src": "12342:17:13", + "src": "12342:17:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3134, + "id": 3329, "nodeType": "IfStatement", - "src": "12338:103:13", + "src": "12338:103:14", "trueBody": { - "id": 3133, + "id": 3328, "nodeType": "Block", - "src": "12361:80:13", + "src": "12361:80:14", "statements": [ { "expression": { - "id": 3127, + "id": 3322, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3123, + "id": 3318, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "12379:5:13", + "referencedDeclaration": 3304, + "src": "12379:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41144,21 +43766,21 @@ "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", "typeString": "int_const 1000...(57 digits omitted)...0000" }, - "id": 3126, + "id": 3321, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 3124, + "id": 3319, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12388:2:13", + "src": "12388:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -41169,50 +43791,50 @@ "operator": "**", "rightExpression": { "hexValue": "3634", - "id": 3125, + "id": 3320, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12394:2:13", + "src": "12394:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_64_by_1", "typeString": "int_const 64" }, "value": "64" }, - "src": "12388:8:13", + "src": "12388:8:14", "typeDescriptions": { "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", "typeString": "int_const 1000...(57 digits omitted)...0000" } }, - "src": "12379:17:13", + "src": "12379:17:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3128, + "id": 3323, "nodeType": "ExpressionStatement", - "src": "12379:17:13" + "src": "12379:17:14" }, { "expression": { - "id": 3131, + "id": 3326, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3129, + "id": 3324, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3115, - "src": "12414:6:13", + "referencedDeclaration": 3310, + "src": "12414:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41222,29 +43844,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "3634", - "id": 3130, + "id": 3325, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12424:2:13", + "src": "12424:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_64_by_1", "typeString": "int_const 64" }, "value": "64" }, - "src": "12414:12:13", + "src": "12414:12:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3132, + "id": 3327, "nodeType": "ExpressionStatement", - "src": "12414:12:13" + "src": "12414:12:14" } ] } @@ -41255,18 +43877,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3139, + "id": 3334, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3135, + "id": 3330, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "12458:5:13", + "referencedDeclaration": 3304, + "src": "12458:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41279,21 +43901,21 @@ "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", "typeString": "int_const 1000...(25 digits omitted)...0000" }, - "id": 3138, + "id": 3333, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 3136, + "id": 3331, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12467:2:13", + "src": "12467:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -41304,54 +43926,54 @@ "operator": "**", "rightExpression": { "hexValue": "3332", - "id": 3137, + "id": 3332, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12473:2:13", + "src": "12473:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, "value": "32" }, - "src": "12467:8:13", + "src": "12467:8:14", "typeDescriptions": { "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", "typeString": "int_const 1000...(25 digits omitted)...0000" } }, - "src": "12458:17:13", + "src": "12458:17:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3151, + "id": 3346, "nodeType": "IfStatement", - "src": "12454:103:13", + "src": "12454:103:14", "trueBody": { - "id": 3150, + "id": 3345, "nodeType": "Block", - "src": "12477:80:13", + "src": "12477:80:14", "statements": [ { "expression": { - "id": 3144, + "id": 3339, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3140, + "id": 3335, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "12495:5:13", + "referencedDeclaration": 3304, + "src": "12495:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41364,21 +43986,21 @@ "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", "typeString": "int_const 1000...(25 digits omitted)...0000" }, - "id": 3143, + "id": 3338, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 3141, + "id": 3336, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12504:2:13", + "src": "12504:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -41389,50 +44011,50 @@ "operator": "**", "rightExpression": { "hexValue": "3332", - "id": 3142, + "id": 3337, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12510:2:13", + "src": "12510:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, "value": "32" }, - "src": "12504:8:13", + "src": "12504:8:14", "typeDescriptions": { "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", "typeString": "int_const 1000...(25 digits omitted)...0000" } }, - "src": "12495:17:13", + "src": "12495:17:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3145, + "id": 3340, "nodeType": "ExpressionStatement", - "src": "12495:17:13" + "src": "12495:17:14" }, { "expression": { - "id": 3148, + "id": 3343, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3146, + "id": 3341, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3115, - "src": "12530:6:13", + "referencedDeclaration": 3310, + "src": "12530:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41442,29 +44064,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "3332", - "id": 3147, + "id": 3342, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12540:2:13", + "src": "12540:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, "value": "32" }, - "src": "12530:12:13", + "src": "12530:12:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3149, + "id": 3344, "nodeType": "ExpressionStatement", - "src": "12530:12:13" + "src": "12530:12:14" } ] } @@ -41475,18 +44097,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3156, + "id": 3351, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3152, + "id": 3347, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "12574:5:13", + "referencedDeclaration": 3304, + "src": "12574:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41499,21 +44121,21 @@ "typeIdentifier": "t_rational_10000000000000000_by_1", "typeString": "int_const 10000000000000000" }, - "id": 3155, + "id": 3350, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 3153, + "id": 3348, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12583:2:13", + "src": "12583:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -41524,54 +44146,54 @@ "operator": "**", "rightExpression": { "hexValue": "3136", - "id": 3154, + "id": 3349, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12589:2:13", + "src": "12589:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_16_by_1", "typeString": "int_const 16" }, "value": "16" }, - "src": "12583:8:13", + "src": "12583:8:14", "typeDescriptions": { "typeIdentifier": "t_rational_10000000000000000_by_1", "typeString": "int_const 10000000000000000" } }, - "src": "12574:17:13", + "src": "12574:17:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3168, + "id": 3363, "nodeType": "IfStatement", - "src": "12570:103:13", + "src": "12570:103:14", "trueBody": { - "id": 3167, + "id": 3362, "nodeType": "Block", - "src": "12593:80:13", + "src": "12593:80:14", "statements": [ { "expression": { - "id": 3161, + "id": 3356, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3157, + "id": 3352, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "12611:5:13", + "referencedDeclaration": 3304, + "src": "12611:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41584,21 +44206,21 @@ "typeIdentifier": "t_rational_10000000000000000_by_1", "typeString": "int_const 10000000000000000" }, - "id": 3160, + "id": 3355, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 3158, + "id": 3353, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12620:2:13", + "src": "12620:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -41609,50 +44231,50 @@ "operator": "**", "rightExpression": { "hexValue": "3136", - "id": 3159, + "id": 3354, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12626:2:13", + "src": "12626:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_16_by_1", "typeString": "int_const 16" }, "value": "16" }, - "src": "12620:8:13", + "src": "12620:8:14", "typeDescriptions": { "typeIdentifier": "t_rational_10000000000000000_by_1", "typeString": "int_const 10000000000000000" } }, - "src": "12611:17:13", + "src": "12611:17:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3162, + "id": 3357, "nodeType": "ExpressionStatement", - "src": "12611:17:13" + "src": "12611:17:14" }, { "expression": { - "id": 3165, + "id": 3360, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3163, + "id": 3358, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3115, - "src": "12646:6:13", + "referencedDeclaration": 3310, + "src": "12646:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41662,29 +44284,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "3136", - "id": 3164, + "id": 3359, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12656:2:13", + "src": "12656:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_16_by_1", "typeString": "int_const 16" }, "value": "16" }, - "src": "12646:12:13", + "src": "12646:12:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3166, + "id": 3361, "nodeType": "ExpressionStatement", - "src": "12646:12:13" + "src": "12646:12:14" } ] } @@ -41695,18 +44317,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3173, + "id": 3368, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3169, + "id": 3364, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "12690:5:13", + "referencedDeclaration": 3304, + "src": "12690:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41719,21 +44341,21 @@ "typeIdentifier": "t_rational_100000000_by_1", "typeString": "int_const 100000000" }, - "id": 3172, + "id": 3367, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 3170, + "id": 3365, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12699:2:13", + "src": "12699:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -41744,54 +44366,54 @@ "operator": "**", "rightExpression": { "hexValue": "38", - "id": 3171, + "id": 3366, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12705:1:13", + "src": "12705:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8" }, "value": "8" }, - "src": "12699:7:13", + "src": "12699:7:14", "typeDescriptions": { "typeIdentifier": "t_rational_100000000_by_1", "typeString": "int_const 100000000" } }, - "src": "12690:16:13", + "src": "12690:16:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3185, + "id": 3380, "nodeType": "IfStatement", - "src": "12686:100:13", + "src": "12686:100:14", "trueBody": { - "id": 3184, + "id": 3379, "nodeType": "Block", - "src": "12708:78:13", + "src": "12708:78:14", "statements": [ { "expression": { - "id": 3178, + "id": 3373, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3174, + "id": 3369, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "12726:5:13", + "referencedDeclaration": 3304, + "src": "12726:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41804,21 +44426,21 @@ "typeIdentifier": "t_rational_100000000_by_1", "typeString": "int_const 100000000" }, - "id": 3177, + "id": 3372, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 3175, + "id": 3370, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12735:2:13", + "src": "12735:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -41829,50 +44451,50 @@ "operator": "**", "rightExpression": { "hexValue": "38", - "id": 3176, + "id": 3371, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12741:1:13", + "src": "12741:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8" }, "value": "8" }, - "src": "12735:7:13", + "src": "12735:7:14", "typeDescriptions": { "typeIdentifier": "t_rational_100000000_by_1", "typeString": "int_const 100000000" } }, - "src": "12726:16:13", + "src": "12726:16:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3179, + "id": 3374, "nodeType": "ExpressionStatement", - "src": "12726:16:13" + "src": "12726:16:14" }, { "expression": { - "id": 3182, + "id": 3377, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3180, + "id": 3375, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3115, - "src": "12760:6:13", + "referencedDeclaration": 3310, + "src": "12760:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41882,29 +44504,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "38", - "id": 3181, + "id": 3376, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12770:1:13", + "src": "12770:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8" }, "value": "8" }, - "src": "12760:11:13", + "src": "12760:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3183, + "id": 3378, "nodeType": "ExpressionStatement", - "src": "12760:11:13" + "src": "12760:11:14" } ] } @@ -41915,18 +44537,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3190, + "id": 3385, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3186, + "id": 3381, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "12803:5:13", + "referencedDeclaration": 3304, + "src": "12803:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41939,21 +44561,21 @@ "typeIdentifier": "t_rational_10000_by_1", "typeString": "int_const 10000" }, - "id": 3189, + "id": 3384, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 3187, + "id": 3382, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12812:2:13", + "src": "12812:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -41964,54 +44586,54 @@ "operator": "**", "rightExpression": { "hexValue": "34", - "id": 3188, + "id": 3383, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12818:1:13", + "src": "12818:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", "typeString": "int_const 4" }, "value": "4" }, - "src": "12812:7:13", + "src": "12812:7:14", "typeDescriptions": { "typeIdentifier": "t_rational_10000_by_1", "typeString": "int_const 10000" } }, - "src": "12803:16:13", + "src": "12803:16:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3202, + "id": 3397, "nodeType": "IfStatement", - "src": "12799:100:13", + "src": "12799:100:14", "trueBody": { - "id": 3201, + "id": 3396, "nodeType": "Block", - "src": "12821:78:13", + "src": "12821:78:14", "statements": [ { "expression": { - "id": 3195, + "id": 3390, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3191, + "id": 3386, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "12839:5:13", + "referencedDeclaration": 3304, + "src": "12839:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -42024,21 +44646,21 @@ "typeIdentifier": "t_rational_10000_by_1", "typeString": "int_const 10000" }, - "id": 3194, + "id": 3389, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 3192, + "id": 3387, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12848:2:13", + "src": "12848:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -42049,50 +44671,50 @@ "operator": "**", "rightExpression": { "hexValue": "34", - "id": 3193, + "id": 3388, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12854:1:13", + "src": "12854:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", "typeString": "int_const 4" }, "value": "4" }, - "src": "12848:7:13", + "src": "12848:7:14", "typeDescriptions": { "typeIdentifier": "t_rational_10000_by_1", "typeString": "int_const 10000" } }, - "src": "12839:16:13", + "src": "12839:16:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3196, + "id": 3391, "nodeType": "ExpressionStatement", - "src": "12839:16:13" + "src": "12839:16:14" }, { "expression": { - "id": 3199, + "id": 3394, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3197, + "id": 3392, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3115, - "src": "12873:6:13", + "referencedDeclaration": 3310, + "src": "12873:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -42102,29 +44724,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "34", - "id": 3198, + "id": 3393, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12883:1:13", + "src": "12883:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", "typeString": "int_const 4" }, "value": "4" }, - "src": "12873:11:13", + "src": "12873:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3200, + "id": 3395, "nodeType": "ExpressionStatement", - "src": "12873:11:13" + "src": "12873:11:14" } ] } @@ -42135,18 +44757,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3207, + "id": 3402, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3203, + "id": 3398, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "12916:5:13", + "referencedDeclaration": 3304, + "src": "12916:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -42159,21 +44781,21 @@ "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" }, - "id": 3206, + "id": 3401, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 3204, + "id": 3399, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12925:2:13", + "src": "12925:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -42184,54 +44806,54 @@ "operator": "**", "rightExpression": { "hexValue": "32", - "id": 3205, + "id": 3400, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12931:1:13", + "src": "12931:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, - "src": "12925:7:13", + "src": "12925:7:14", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" } }, - "src": "12916:16:13", + "src": "12916:16:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3219, + "id": 3414, "nodeType": "IfStatement", - "src": "12912:100:13", + "src": "12912:100:14", "trueBody": { - "id": 3218, + "id": 3413, "nodeType": "Block", - "src": "12934:78:13", + "src": "12934:78:14", "statements": [ { "expression": { - "id": 3212, + "id": 3407, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3208, + "id": 3403, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "12952:5:13", + "referencedDeclaration": 3304, + "src": "12952:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -42244,21 +44866,21 @@ "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" }, - "id": 3211, + "id": 3406, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 3209, + "id": 3404, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12961:2:13", + "src": "12961:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -42269,50 +44891,50 @@ "operator": "**", "rightExpression": { "hexValue": "32", - "id": 3210, + "id": 3405, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12967:1:13", + "src": "12967:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, - "src": "12961:7:13", + "src": "12961:7:14", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" } }, - "src": "12952:16:13", + "src": "12952:16:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3213, + "id": 3408, "nodeType": "ExpressionStatement", - "src": "12952:16:13" + "src": "12952:16:14" }, { "expression": { - "id": 3216, + "id": 3411, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3214, + "id": 3409, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3115, - "src": "12986:6:13", + "referencedDeclaration": 3310, + "src": "12986:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -42322,29 +44944,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "32", - "id": 3215, + "id": 3410, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12996:1:13", + "src": "12996:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, - "src": "12986:11:13", + "src": "12986:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3217, + "id": 3412, "nodeType": "ExpressionStatement", - "src": "12986:11:13" + "src": "12986:11:14" } ] } @@ -42355,18 +44977,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3224, + "id": 3419, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3220, + "id": 3415, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "13029:5:13", + "referencedDeclaration": 3304, + "src": "13029:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -42379,21 +45001,21 @@ "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" }, - "id": 3223, + "id": 3418, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 3221, + "id": 3416, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13038:2:13", + "src": "13038:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -42404,54 +45026,54 @@ "operator": "**", "rightExpression": { "hexValue": "31", - "id": 3222, + "id": 3417, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13044:1:13", + "src": "13044:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "13038:7:13", + "src": "13038:7:14", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" } }, - "src": "13029:16:13", + "src": "13029:16:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3230, + "id": 3425, "nodeType": "IfStatement", - "src": "13025:66:13", + "src": "13025:66:14", "trueBody": { - "id": 3229, + "id": 3424, "nodeType": "Block", - "src": "13047:44:13", + "src": "13047:44:14", "statements": [ { "expression": { - "id": 3227, + "id": 3422, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3225, + "id": 3420, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3115, - "src": "13065:6:13", + "referencedDeclaration": 3310, + "src": "13065:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -42461,29 +45083,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "31", - "id": 3226, + "id": 3421, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13075:1:13", + "src": "13075:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "13065:11:13", + "src": "13065:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3228, + "id": 3423, "nodeType": "ExpressionStatement", - "src": "13065:11:13" + "src": "13065:11:14" } ] } @@ -42492,50 +45114,50 @@ }, { "expression": { - "id": 3232, + "id": 3427, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3115, - "src": "13117:6:13", + "referencedDeclaration": 3310, + "src": "13117:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3113, - "id": 3233, + "functionReturnParameters": 3308, + "id": 3428, "nodeType": "Return", - "src": "13110:13:13" + "src": "13110:13:14" } ] }, "documentation": { - "id": 3107, + "id": 3302, "nodeType": "StructuredDocumentation", - "src": "12089:120:13", + "src": "12089:120:14", "text": " @dev Return the log in base 10 of a positive value rounded towards zero.\n Returns 0 if given 0." }, - "id": 3235, + "id": 3430, "implemented": true, "kind": "function", "modifiers": [], "name": "log10", - "nameLocation": "12223:5:13", + "nameLocation": "12223:5:14", "nodeType": "FunctionDefinition", "parameters": { - "id": 3110, + "id": 3305, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3109, + "id": 3304, "mutability": "mutable", "name": "value", - "nameLocation": "12237:5:13", + "nameLocation": "12237:5:14", "nodeType": "VariableDeclaration", - "scope": 3235, - "src": "12229:13:13", + "scope": 3430, + "src": "12229:13:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -42543,10 +45165,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3108, + "id": 3303, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "12229:7:13", + "src": "12229:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -42555,21 +45177,21 @@ "visibility": "internal" } ], - "src": "12228:15:13" + "src": "12228:15:14" }, "returnParameters": { - "id": 3113, + "id": 3308, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3112, + "id": 3307, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 3235, - "src": "12267:7:13", + "scope": 3430, + "src": "12267:7:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -42577,10 +45199,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3111, + "id": 3306, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "12267:7:13", + "src": "12267:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -42589,39 +45211,39 @@ "visibility": "internal" } ], - "src": "12266:9:13" + "src": "12266:9:14" }, - "scope": 3415, - "src": "12214:916:13", + "scope": 3610, + "src": "12214:916:14", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { - "id": 3269, + "id": 3464, "nodeType": "Block", - "src": "13365:170:13", + "src": "13365:170:14", "statements": [ { - "id": 3268, + "id": 3463, "nodeType": "UncheckedBlock", - "src": "13375:154:13", + "src": "13375:154:14", "statements": [ { "assignments": [ - 3247 + 3442 ], "declarations": [ { "constant": false, - "id": 3247, + "id": 3442, "mutability": "mutable", "name": "result", - "nameLocation": "13407:6:13", + "nameLocation": "13407:6:14", "nodeType": "VariableDeclaration", - "scope": 3268, - "src": "13399:14:13", + "scope": 3463, + "src": "13399:14:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -42629,10 +45251,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3246, + "id": 3441, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "13399:7:13", + "src": "13399:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -42641,16 +45263,16 @@ "visibility": "internal" } ], - "id": 3251, + "id": 3446, "initialValue": { "arguments": [ { - "id": 3249, + "id": 3444, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3238, - "src": "13422:5:13", + "referencedDeclaration": 3433, + "src": "13422:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -42664,21 +45286,21 @@ "typeString": "uint256" } ], - "id": 3248, + "id": 3443, "name": "log10", "nodeType": "Identifier", "overloadedDeclarations": [ - 3235, - 3270 + 3430, + 3465 ], - "referencedDeclaration": 3235, - "src": "13416:5:13", + "referencedDeclaration": 3430, + "src": "13416:5:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256) pure returns (uint256)" } }, - "id": 3250, + "id": 3445, "isConstant": false, "isLValue": false, "isPure": false, @@ -42687,7 +45309,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "13416:12:13", + "src": "13416:12:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -42695,7 +45317,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "13399:29:13" + "src": "13399:29:14" }, { "expression": { @@ -42703,18 +45325,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3266, + "id": 3461, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3252, + "id": 3447, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3247, - "src": "13449:6:13", + "referencedDeclaration": 3442, + "src": "13449:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -42730,7 +45352,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 3261, + "id": 3456, "isConstant": false, "isLValue": false, "isPure": false, @@ -42738,14 +45360,14 @@ "leftExpression": { "arguments": [ { - "id": 3254, + "id": 3449, "name": "rounding", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3241, - "src": "13476:8:13", + "referencedDeclaration": 3436, + "src": "13476:8:14", "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" } } @@ -42753,22 +45375,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" } ], - "id": 3253, + "id": 3448, "name": "unsignedRoundsUp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3414, - "src": "13459:16:13", + "referencedDeclaration": 3609, + "src": "13459:16:14", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$2372_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$2567_$returns$_t_bool_$", "typeString": "function (enum Math.Rounding) pure returns (bool)" } }, - "id": 3255, + "id": 3450, "isConstant": false, "isLValue": false, "isPure": false, @@ -42777,7 +45399,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "13459:26:13", + "src": "13459:26:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -42791,7 +45413,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3260, + "id": 3455, "isConstant": false, "isLValue": false, "isPure": false, @@ -42801,21 +45423,21 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3258, + "id": 3453, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 3256, + "id": 3451, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13489:2:13", + "src": "13489:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -42825,18 +45447,18 @@ "nodeType": "BinaryOperation", "operator": "**", "rightExpression": { - "id": 3257, + "id": 3452, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3247, - "src": "13495:6:13", + "referencedDeclaration": 3442, + "src": "13495:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "13489:12:13", + "src": "13489:12:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -42845,24 +45467,24 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 3259, + "id": 3454, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3238, - "src": "13504:5:13", + "referencedDeclaration": 3433, + "src": "13504:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "13489:20:13", + "src": "13489:20:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "13459:50:13", + "src": "13459:50:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -42870,37 +45492,37 @@ }, "falseExpression": { "hexValue": "30", - "id": 3263, + "id": 3458, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13516:1:13", + "src": "13516:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "id": 3264, + "id": 3459, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "13459:58:13", + "src": "13459:58:14", "trueExpression": { "hexValue": "31", - "id": 3262, + "id": 3457, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13512:1:13", + "src": "13512:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -42913,60 +45535,60 @@ } } ], - "id": 3265, + "id": 3460, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "13458:60:13", + "src": "13458:60:14", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "13449:69:13", + "src": "13449:69:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3245, - "id": 3267, + "functionReturnParameters": 3440, + "id": 3462, "nodeType": "Return", - "src": "13442:76:13" + "src": "13442:76:14" } ] } ] }, "documentation": { - "id": 3236, + "id": 3431, "nodeType": "StructuredDocumentation", - "src": "13136:143:13", + "src": "13136:143:14", "text": " @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." }, - "id": 3270, + "id": 3465, "implemented": true, "kind": "function", "modifiers": [], "name": "log10", - "nameLocation": "13293:5:13", + "nameLocation": "13293:5:14", "nodeType": "FunctionDefinition", "parameters": { - "id": 3242, + "id": 3437, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3238, + "id": 3433, "mutability": "mutable", "name": "value", - "nameLocation": "13307:5:13", + "nameLocation": "13307:5:14", "nodeType": "VariableDeclaration", - "scope": 3270, - "src": "13299:13:13", + "scope": 3465, + "src": "13299:13:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -42974,10 +45596,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3237, + "id": 3432, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "13299:7:13", + "src": "13299:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -42987,57 +45609,57 @@ }, { "constant": false, - "id": 3241, + "id": 3436, "mutability": "mutable", "name": "rounding", - "nameLocation": "13323:8:13", + "nameLocation": "13323:8:14", "nodeType": "VariableDeclaration", - "scope": 3270, - "src": "13314:17:13", + "scope": 3465, + "src": "13314:17:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" }, "typeName": { - "id": 3240, + "id": 3435, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 3239, + "id": 3434, "name": "Rounding", "nameLocations": [ - "13314:8:13" + "13314:8:14" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2372, - "src": "13314:8:13" + "referencedDeclaration": 2567, + "src": "13314:8:14" }, - "referencedDeclaration": 2372, - "src": "13314:8:13", + "referencedDeclaration": 2567, + "src": "13314:8:14", "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" } }, "visibility": "internal" } ], - "src": "13298:34:13" + "src": "13298:34:14" }, "returnParameters": { - "id": 3245, + "id": 3440, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3244, + "id": 3439, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 3270, - "src": "13356:7:13", + "scope": 3465, + "src": "13356:7:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -43045,10 +45667,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3243, + "id": 3438, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "13356:7:13", + "src": "13356:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43057,34 +45679,34 @@ "visibility": "internal" } ], - "src": "13355:9:13" + "src": "13355:9:14" }, - "scope": 3415, - "src": "13284:251:13", + "scope": 3610, + "src": "13284:251:14", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { - "id": 3356, + "id": 3551, "nodeType": "Block", - "src": "13855:600:13", + "src": "13855:600:14", "statements": [ { "assignments": [ - 3279 + 3474 ], "declarations": [ { "constant": false, - "id": 3279, + "id": 3474, "mutability": "mutable", "name": "result", - "nameLocation": "13873:6:13", + "nameLocation": "13873:6:14", "nodeType": "VariableDeclaration", - "scope": 3356, - "src": "13865:14:13", + "scope": 3551, + "src": "13865:14:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -43092,10 +45714,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3278, + "id": 3473, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "13865:7:13", + "src": "13865:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43104,17 +45726,17 @@ "visibility": "internal" } ], - "id": 3281, + "id": 3476, "initialValue": { "hexValue": "30", - "id": 3280, + "id": 3475, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13882:1:13", + "src": "13882:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -43122,12 +45744,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "13865:18:13" + "src": "13865:18:14" }, { - "id": 3353, + "id": 3548, "nodeType": "UncheckedBlock", - "src": "13893:533:13", + "src": "13893:533:14", "statements": [ { "condition": { @@ -43135,7 +45757,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3286, + "id": 3481, "isConstant": false, "isLValue": false, "isPure": false, @@ -43145,18 +45767,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3284, + "id": 3479, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3282, + "id": 3477, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "13921:5:13", + "referencedDeclaration": 3468, + "src": "13921:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43166,21 +45788,21 @@ "operator": ">>", "rightExpression": { "hexValue": "313238", - "id": 3283, + "id": 3478, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13930:3:13", + "src": "13930:3:14", "typeDescriptions": { "typeIdentifier": "t_rational_128_by_1", "typeString": "int_const 128" }, "value": "128" }, - "src": "13921:12:13", + "src": "13921:12:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43190,48 +45812,48 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 3285, + "id": 3480, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13936:1:13", + "src": "13936:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "13921:16:13", + "src": "13921:16:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3296, + "id": 3491, "nodeType": "IfStatement", - "src": "13917:98:13", + "src": "13917:98:14", "trueBody": { - "id": 3295, + "id": 3490, "nodeType": "Block", - "src": "13939:76:13", + "src": "13939:76:14", "statements": [ { "expression": { - "id": 3289, + "id": 3484, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3287, + "id": 3482, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "13957:5:13", + "referencedDeclaration": 3468, + "src": "13957:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43241,44 +45863,44 @@ "operator": ">>=", "rightHandSide": { "hexValue": "313238", - "id": 3288, + "id": 3483, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13967:3:13", + "src": "13967:3:14", "typeDescriptions": { "typeIdentifier": "t_rational_128_by_1", "typeString": "int_const 128" }, "value": "128" }, - "src": "13957:13:13", + "src": "13957:13:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3290, + "id": 3485, "nodeType": "ExpressionStatement", - "src": "13957:13:13" + "src": "13957:13:14" }, { "expression": { - "id": 3293, + "id": 3488, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3291, + "id": 3486, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3279, - "src": "13988:6:13", + "referencedDeclaration": 3474, + "src": "13988:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43288,29 +45910,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "3136", - "id": 3292, + "id": 3487, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13998:2:13", + "src": "13998:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_16_by_1", "typeString": "int_const 16" }, "value": "16" }, - "src": "13988:12:13", + "src": "13988:12:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3294, + "id": 3489, "nodeType": "ExpressionStatement", - "src": "13988:12:13" + "src": "13988:12:14" } ] } @@ -43321,7 +45943,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3301, + "id": 3496, "isConstant": false, "isLValue": false, "isPure": false, @@ -43331,18 +45953,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3299, + "id": 3494, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3297, + "id": 3492, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "14032:5:13", + "referencedDeclaration": 3468, + "src": "14032:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43352,21 +45974,21 @@ "operator": ">>", "rightExpression": { "hexValue": "3634", - "id": 3298, + "id": 3493, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14041:2:13", + "src": "14041:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_64_by_1", "typeString": "int_const 64" }, "value": "64" }, - "src": "14032:11:13", + "src": "14032:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43376,48 +45998,48 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 3300, + "id": 3495, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14046:1:13", + "src": "14046:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "14032:15:13", + "src": "14032:15:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3311, + "id": 3506, "nodeType": "IfStatement", - "src": "14028:95:13", + "src": "14028:95:14", "trueBody": { - "id": 3310, + "id": 3505, "nodeType": "Block", - "src": "14049:74:13", + "src": "14049:74:14", "statements": [ { "expression": { - "id": 3304, + "id": 3499, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3302, + "id": 3497, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "14067:5:13", + "referencedDeclaration": 3468, + "src": "14067:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43427,44 +46049,44 @@ "operator": ">>=", "rightHandSide": { "hexValue": "3634", - "id": 3303, + "id": 3498, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14077:2:13", + "src": "14077:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_64_by_1", "typeString": "int_const 64" }, "value": "64" }, - "src": "14067:12:13", + "src": "14067:12:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3305, + "id": 3500, "nodeType": "ExpressionStatement", - "src": "14067:12:13" + "src": "14067:12:14" }, { "expression": { - "id": 3308, + "id": 3503, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3306, + "id": 3501, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3279, - "src": "14097:6:13", + "referencedDeclaration": 3474, + "src": "14097:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43474,29 +46096,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "38", - "id": 3307, + "id": 3502, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14107:1:13", + "src": "14107:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8" }, "value": "8" }, - "src": "14097:11:13", + "src": "14097:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3309, + "id": 3504, "nodeType": "ExpressionStatement", - "src": "14097:11:13" + "src": "14097:11:14" } ] } @@ -43507,7 +46129,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3316, + "id": 3511, "isConstant": false, "isLValue": false, "isPure": false, @@ -43517,18 +46139,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3314, + "id": 3509, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3312, + "id": 3507, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "14140:5:13", + "referencedDeclaration": 3468, + "src": "14140:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43538,21 +46160,21 @@ "operator": ">>", "rightExpression": { "hexValue": "3332", - "id": 3313, + "id": 3508, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14149:2:13", + "src": "14149:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, "value": "32" }, - "src": "14140:11:13", + "src": "14140:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43562,48 +46184,48 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 3315, + "id": 3510, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14154:1:13", + "src": "14154:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "14140:15:13", + "src": "14140:15:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3326, + "id": 3521, "nodeType": "IfStatement", - "src": "14136:95:13", + "src": "14136:95:14", "trueBody": { - "id": 3325, + "id": 3520, "nodeType": "Block", - "src": "14157:74:13", + "src": "14157:74:14", "statements": [ { "expression": { - "id": 3319, + "id": 3514, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3317, + "id": 3512, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "14175:5:13", + "referencedDeclaration": 3468, + "src": "14175:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43613,44 +46235,44 @@ "operator": ">>=", "rightHandSide": { "hexValue": "3332", - "id": 3318, + "id": 3513, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14185:2:13", + "src": "14185:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, "value": "32" }, - "src": "14175:12:13", + "src": "14175:12:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3320, + "id": 3515, "nodeType": "ExpressionStatement", - "src": "14175:12:13" + "src": "14175:12:14" }, { "expression": { - "id": 3323, + "id": 3518, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3321, + "id": 3516, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3279, - "src": "14205:6:13", + "referencedDeclaration": 3474, + "src": "14205:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43660,29 +46282,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "34", - "id": 3322, + "id": 3517, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14215:1:13", + "src": "14215:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", "typeString": "int_const 4" }, "value": "4" }, - "src": "14205:11:13", + "src": "14205:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3324, + "id": 3519, "nodeType": "ExpressionStatement", - "src": "14205:11:13" + "src": "14205:11:14" } ] } @@ -43693,7 +46315,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3331, + "id": 3526, "isConstant": false, "isLValue": false, "isPure": false, @@ -43703,18 +46325,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3329, + "id": 3524, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3327, + "id": 3522, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "14248:5:13", + "referencedDeclaration": 3468, + "src": "14248:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43724,21 +46346,21 @@ "operator": ">>", "rightExpression": { "hexValue": "3136", - "id": 3328, + "id": 3523, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14257:2:13", + "src": "14257:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_16_by_1", "typeString": "int_const 16" }, "value": "16" }, - "src": "14248:11:13", + "src": "14248:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43748,48 +46370,48 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 3330, + "id": 3525, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14262:1:13", + "src": "14262:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "14248:15:13", + "src": "14248:15:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3341, + "id": 3536, "nodeType": "IfStatement", - "src": "14244:95:13", + "src": "14244:95:14", "trueBody": { - "id": 3340, + "id": 3535, "nodeType": "Block", - "src": "14265:74:13", + "src": "14265:74:14", "statements": [ { "expression": { - "id": 3334, + "id": 3529, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3332, + "id": 3527, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "14283:5:13", + "referencedDeclaration": 3468, + "src": "14283:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43799,44 +46421,44 @@ "operator": ">>=", "rightHandSide": { "hexValue": "3136", - "id": 3333, + "id": 3528, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14293:2:13", + "src": "14293:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_16_by_1", "typeString": "int_const 16" }, "value": "16" }, - "src": "14283:12:13", + "src": "14283:12:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3335, + "id": 3530, "nodeType": "ExpressionStatement", - "src": "14283:12:13" + "src": "14283:12:14" }, { "expression": { - "id": 3338, + "id": 3533, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3336, + "id": 3531, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3279, - "src": "14313:6:13", + "referencedDeclaration": 3474, + "src": "14313:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43846,29 +46468,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "32", - "id": 3337, + "id": 3532, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14323:1:13", + "src": "14323:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, - "src": "14313:11:13", + "src": "14313:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3339, + "id": 3534, "nodeType": "ExpressionStatement", - "src": "14313:11:13" + "src": "14313:11:14" } ] } @@ -43879,7 +46501,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3346, + "id": 3541, "isConstant": false, "isLValue": false, "isPure": false, @@ -43889,18 +46511,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3344, + "id": 3539, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3342, + "id": 3537, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "14356:5:13", + "referencedDeclaration": 3468, + "src": "14356:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43910,21 +46532,21 @@ "operator": ">>", "rightExpression": { "hexValue": "38", - "id": 3343, + "id": 3538, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14365:1:13", + "src": "14365:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8" }, "value": "8" }, - "src": "14356:10:13", + "src": "14356:10:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43934,48 +46556,48 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 3345, + "id": 3540, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14369:1:13", + "src": "14369:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "14356:14:13", + "src": "14356:14:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3352, + "id": 3547, "nodeType": "IfStatement", - "src": "14352:64:13", + "src": "14352:64:14", "trueBody": { - "id": 3351, + "id": 3546, "nodeType": "Block", - "src": "14372:44:13", + "src": "14372:44:14", "statements": [ { "expression": { - "id": 3349, + "id": 3544, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3347, + "id": 3542, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3279, - "src": "14390:6:13", + "referencedDeclaration": 3474, + "src": "14390:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43985,29 +46607,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "31", - "id": 3348, + "id": 3543, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14400:1:13", + "src": "14400:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "14390:11:13", + "src": "14390:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3350, + "id": 3545, "nodeType": "ExpressionStatement", - "src": "14390:11:13" + "src": "14390:11:14" } ] } @@ -44016,50 +46638,50 @@ }, { "expression": { - "id": 3354, + "id": 3549, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3279, - "src": "14442:6:13", + "referencedDeclaration": 3474, + "src": "14442:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3277, - "id": 3355, + "functionReturnParameters": 3472, + "id": 3550, "nodeType": "Return", - "src": "14435:13:13" + "src": "14435:13:14" } ] }, "documentation": { - "id": 3271, + "id": 3466, "nodeType": "StructuredDocumentation", - "src": "13541:246:13", + "src": "13541:246:14", "text": " @dev Return the log in base 256 of a positive value rounded towards zero.\n Returns 0 if given 0.\n Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string." }, - "id": 3357, + "id": 3552, "implemented": true, "kind": "function", "modifiers": [], "name": "log256", - "nameLocation": "13801:6:13", + "nameLocation": "13801:6:14", "nodeType": "FunctionDefinition", "parameters": { - "id": 3274, + "id": 3469, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3273, + "id": 3468, "mutability": "mutable", "name": "value", - "nameLocation": "13816:5:13", + "nameLocation": "13816:5:14", "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "13808:13:13", + "scope": 3552, + "src": "13808:13:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -44067,10 +46689,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3272, + "id": 3467, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "13808:7:13", + "src": "13808:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -44079,21 +46701,21 @@ "visibility": "internal" } ], - "src": "13807:15:13" + "src": "13807:15:14" }, "returnParameters": { - "id": 3277, + "id": 3472, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3276, + "id": 3471, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "13846:7:13", + "scope": 3552, + "src": "13846:7:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -44101,10 +46723,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3275, + "id": 3470, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "13846:7:13", + "src": "13846:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -44113,39 +46735,39 @@ "visibility": "internal" } ], - "src": "13845:9:13" + "src": "13845:9:14" }, - "scope": 3415, - "src": "13792:663:13", + "scope": 3610, + "src": "13792:663:14", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { - "id": 3394, + "id": 3589, "nodeType": "Block", - "src": "14692:177:13", + "src": "14692:177:14", "statements": [ { - "id": 3393, + "id": 3588, "nodeType": "UncheckedBlock", - "src": "14702:161:13", + "src": "14702:161:14", "statements": [ { "assignments": [ - 3369 + 3564 ], "declarations": [ { "constant": false, - "id": 3369, + "id": 3564, "mutability": "mutable", "name": "result", - "nameLocation": "14734:6:13", + "nameLocation": "14734:6:14", "nodeType": "VariableDeclaration", - "scope": 3393, - "src": "14726:14:13", + "scope": 3588, + "src": "14726:14:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -44153,10 +46775,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3368, + "id": 3563, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "14726:7:13", + "src": "14726:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -44165,16 +46787,16 @@ "visibility": "internal" } ], - "id": 3373, + "id": 3568, "initialValue": { "arguments": [ { - "id": 3371, + "id": 3566, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "14750:5:13", + "referencedDeclaration": 3555, + "src": "14750:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -44188,21 +46810,21 @@ "typeString": "uint256" } ], - "id": 3370, + "id": 3565, "name": "log256", "nodeType": "Identifier", "overloadedDeclarations": [ - 3357, - 3395 + 3552, + 3590 ], - "referencedDeclaration": 3357, - "src": "14743:6:13", + "referencedDeclaration": 3552, + "src": "14743:6:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256) pure returns (uint256)" } }, - "id": 3372, + "id": 3567, "isConstant": false, "isLValue": false, "isPure": false, @@ -44211,7 +46833,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14743:13:13", + "src": "14743:13:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -44219,7 +46841,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "14726:30:13" + "src": "14726:30:14" }, { "expression": { @@ -44227,18 +46849,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3391, + "id": 3586, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3374, + "id": 3569, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3369, - "src": "14777:6:13", + "referencedDeclaration": 3564, + "src": "14777:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -44254,7 +46876,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 3386, + "id": 3581, "isConstant": false, "isLValue": false, "isPure": false, @@ -44262,14 +46884,14 @@ "leftExpression": { "arguments": [ { - "id": 3376, + "id": 3571, "name": "rounding", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3363, - "src": "14804:8:13", + "referencedDeclaration": 3558, + "src": "14804:8:14", "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" } } @@ -44277,22 +46899,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" } ], - "id": 3375, + "id": 3570, "name": "unsignedRoundsUp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3414, - "src": "14787:16:13", + "referencedDeclaration": 3609, + "src": "14787:16:14", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$2372_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$2567_$returns$_t_bool_$", "typeString": "function (enum Math.Rounding) pure returns (bool)" } }, - "id": 3377, + "id": 3572, "isConstant": false, "isLValue": false, "isPure": false, @@ -44301,7 +46923,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14787:26:13", + "src": "14787:26:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -44315,7 +46937,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3385, + "id": 3580, "isConstant": false, "isLValue": false, "isPure": false, @@ -44325,21 +46947,21 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3383, + "id": 3578, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "31", - "id": 3378, + "id": 3573, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14817:1:13", + "src": "14817:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -44355,18 +46977,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3381, + "id": 3576, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3379, + "id": 3574, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3369, - "src": "14823:6:13", + "referencedDeclaration": 3564, + "src": "14823:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -44376,41 +46998,41 @@ "operator": "<<", "rightExpression": { "hexValue": "33", - "id": 3380, + "id": 3575, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14833:1:13", + "src": "14833:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", "typeString": "int_const 3" }, "value": "3" }, - "src": "14823:11:13", + "src": "14823:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 3382, + "id": 3577, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "14822:13:13", + "src": "14822:13:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "14817:18:13", + "src": "14817:18:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -44419,24 +47041,24 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 3384, + "id": 3579, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "14838:5:13", + "referencedDeclaration": 3555, + "src": "14838:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "14817:26:13", + "src": "14817:26:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "14787:56:13", + "src": "14787:56:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -44444,37 +47066,37 @@ }, "falseExpression": { "hexValue": "30", - "id": 3388, + "id": 3583, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14850:1:13", + "src": "14850:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "id": 3389, + "id": 3584, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "14787:64:13", + "src": "14787:64:14", "trueExpression": { "hexValue": "31", - "id": 3387, + "id": 3582, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14846:1:13", + "src": "14846:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -44487,60 +47109,60 @@ } } ], - "id": 3390, + "id": 3585, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "14786:66:13", + "src": "14786:66:14", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "14777:75:13", + "src": "14777:75:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3367, - "id": 3392, + "functionReturnParameters": 3562, + "id": 3587, "nodeType": "Return", - "src": "14770:82:13" + "src": "14770:82:14" } ] } ] }, "documentation": { - "id": 3358, + "id": 3553, "nodeType": "StructuredDocumentation", - "src": "14461:144:13", + "src": "14461:144:14", "text": " @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." }, - "id": 3395, + "id": 3590, "implemented": true, "kind": "function", "modifiers": [], "name": "log256", - "nameLocation": "14619:6:13", + "nameLocation": "14619:6:14", "nodeType": "FunctionDefinition", "parameters": { - "id": 3364, + "id": 3559, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3360, + "id": 3555, "mutability": "mutable", "name": "value", - "nameLocation": "14634:5:13", + "nameLocation": "14634:5:14", "nodeType": "VariableDeclaration", - "scope": 3395, - "src": "14626:13:13", + "scope": 3590, + "src": "14626:13:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -44548,10 +47170,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3359, + "id": 3554, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "14626:7:13", + "src": "14626:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -44561,57 +47183,57 @@ }, { "constant": false, - "id": 3363, + "id": 3558, "mutability": "mutable", "name": "rounding", - "nameLocation": "14650:8:13", + "nameLocation": "14650:8:14", "nodeType": "VariableDeclaration", - "scope": 3395, - "src": "14641:17:13", + "scope": 3590, + "src": "14641:17:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" }, "typeName": { - "id": 3362, + "id": 3557, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 3361, + "id": 3556, "name": "Rounding", "nameLocations": [ - "14641:8:13" + "14641:8:14" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2372, - "src": "14641:8:13" + "referencedDeclaration": 2567, + "src": "14641:8:14" }, - "referencedDeclaration": 2372, - "src": "14641:8:13", + "referencedDeclaration": 2567, + "src": "14641:8:14", "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" } }, "visibility": "internal" } ], - "src": "14625:34:13" + "src": "14625:34:14" }, "returnParameters": { - "id": 3367, + "id": 3562, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3366, + "id": 3561, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 3395, - "src": "14683:7:13", + "scope": 3590, + "src": "14683:7:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -44619,10 +47241,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3365, + "id": 3560, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "14683:7:13", + "src": "14683:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -44631,19 +47253,19 @@ "visibility": "internal" } ], - "src": "14682:9:13" + "src": "14682:9:14" }, - "scope": 3415, - "src": "14610:259:13", + "scope": 3610, + "src": "14610:259:14", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { - "id": 3413, + "id": 3608, "nodeType": "Block", - "src": "15067:48:13", + "src": "15067:48:14", "statements": [ { "expression": { @@ -44651,7 +47273,7 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 3411, + "id": 3606, "isConstant": false, "isLValue": false, "isPure": false, @@ -44661,7 +47283,7 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 3409, + "id": 3604, "isConstant": false, "isLValue": false, "isPure": false, @@ -44669,14 +47291,14 @@ "leftExpression": { "arguments": [ { - "id": 3406, + "id": 3601, "name": "rounding", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "15090:8:13", + "referencedDeclaration": 3594, + "src": "15090:8:14", "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" } } @@ -44684,30 +47306,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" } ], - "id": 3405, + "id": 3600, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "15084:5:13", + "src": "15084:5:14", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": { - "id": 3404, + "id": 3599, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "15084:5:13", + "src": "15084:5:14", "typeDescriptions": {} } }, - "id": 3407, + "id": 3602, "isConstant": false, "isLValue": false, "isPure": false, @@ -44716,7 +47338,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15084:15:13", + "src": "15084:15:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -44727,21 +47349,21 @@ "operator": "%", "rightExpression": { "hexValue": "32", - "id": 3408, + "id": 3603, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "15102:1:13", + "src": "15102:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, - "src": "15084:19:13", + "src": "15084:19:14", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -44751,103 +47373,103 @@ "operator": "==", "rightExpression": { "hexValue": "31", - "id": 3410, + "id": 3605, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "15107:1:13", + "src": "15107:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "15084:24:13", + "src": "15084:24:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 3403, - "id": 3412, + "functionReturnParameters": 3598, + "id": 3607, "nodeType": "Return", - "src": "15077:31:13" + "src": "15077:31:14" } ] }, "documentation": { - "id": 3396, + "id": 3591, "nodeType": "StructuredDocumentation", - "src": "14875:113:13", + "src": "14875:113:14", "text": " @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers." }, - "id": 3414, + "id": 3609, "implemented": true, "kind": "function", "modifiers": [], "name": "unsignedRoundsUp", - "nameLocation": "15002:16:13", + "nameLocation": "15002:16:14", "nodeType": "FunctionDefinition", "parameters": { - "id": 3400, + "id": 3595, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3399, + "id": 3594, "mutability": "mutable", "name": "rounding", - "nameLocation": "15028:8:13", + "nameLocation": "15028:8:14", "nodeType": "VariableDeclaration", - "scope": 3414, - "src": "15019:17:13", + "scope": 3609, + "src": "15019:17:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" }, "typeName": { - "id": 3398, + "id": 3593, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 3397, + "id": 3592, "name": "Rounding", "nameLocations": [ - "15019:8:13" + "15019:8:14" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2372, - "src": "15019:8:13" + "referencedDeclaration": 2567, + "src": "15019:8:14" }, - "referencedDeclaration": 2372, - "src": "15019:8:13", + "referencedDeclaration": 2567, + "src": "15019:8:14", "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" } }, "visibility": "internal" } ], - "src": "15018:19:13" + "src": "15018:19:14" }, "returnParameters": { - "id": 3403, + "id": 3598, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3402, + "id": 3597, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 3414, - "src": "15061:4:13", + "scope": 3609, + "src": "15061:4:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -44855,10 +47477,10 @@ "typeString": "bool" }, "typeName": { - "id": 3401, + "id": 3596, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "15061:4:13", + "src": "15061:4:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -44867,41 +47489,41 @@ "visibility": "internal" } ], - "src": "15060:6:13" + "src": "15060:6:14" }, - "scope": 3415, - "src": "14993:122:13", + "scope": 3610, + "src": "14993:122:14", "stateMutability": "pure", "virtual": false, "visibility": "internal" } ], - "scope": 3416, - "src": "203:14914:13", + "scope": 3611, + "src": "203:14914:14", "usedErrors": [ - 2367 + 2562 ], "usedEvents": [] } ], - "src": "103:15015:13" + "src": "103:15015:14" }, - "id": 13 + "id": 14 }, "@openzeppelin/contracts/utils/math/SignedMath.sol": { "ast": { "absolutePath": "@openzeppelin/contracts/utils/math/SignedMath.sol", "exportedSymbols": { "SignedMath": [ - 3520 + 3715 ] }, - "id": 3521, + "id": 3716, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 3417, + "id": 3612, "literals": [ "solidity", "^", @@ -44909,7 +47531,7 @@ ".20" ], "nodeType": "PragmaDirective", - "src": "109:24:14" + "src": "109:24:15" }, { "abstract": false, @@ -44918,25 +47540,25 @@ "contractDependencies": [], "contractKind": "library", "documentation": { - "id": 3418, + "id": 3613, "nodeType": "StructuredDocumentation", - "src": "135:80:14", + "src": "135:80:15", "text": " @dev Standard signed math utilities missing in the Solidity language." }, "fullyImplemented": true, - "id": 3520, + "id": 3715, "linearizedBaseContracts": [ - 3520 + 3715 ], "name": "SignedMath", - "nameLocation": "224:10:14", + "nameLocation": "224:10:15", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 3435, + "id": 3630, "nodeType": "Block", - "src": "376:37:14", + "src": "376:37:15", "statements": [ { "expression": { @@ -44945,18 +47567,18 @@ "typeIdentifier": "t_int256", "typeString": "int256" }, - "id": 3430, + "id": 3625, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3428, + "id": 3623, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3421, - "src": "393:1:14", + "referencedDeclaration": 3616, + "src": "393:1:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -44965,49 +47587,49 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "id": 3429, + "id": 3624, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3423, - "src": "397:1:14", + "referencedDeclaration": 3618, + "src": "397:1:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, - "src": "393:5:14", + "src": "393:5:15", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseExpression": { - "id": 3432, + "id": 3627, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3423, - "src": "405:1:14", + "referencedDeclaration": 3618, + "src": "405:1:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, - "id": 3433, + "id": 3628, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "393:13:14", + "src": "393:13:15", "trueExpression": { - "id": 3431, + "id": 3626, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3421, - "src": "401:1:14", + "referencedDeclaration": 3616, + "src": "401:1:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45018,39 +47640,39 @@ "typeString": "int256" } }, - "functionReturnParameters": 3427, - "id": 3434, + "functionReturnParameters": 3622, + "id": 3629, "nodeType": "Return", - "src": "386:20:14" + "src": "386:20:15" } ] }, "documentation": { - "id": 3419, + "id": 3614, "nodeType": "StructuredDocumentation", - "src": "241:66:14", + "src": "241:66:15", "text": " @dev Returns the largest of two signed numbers." }, - "id": 3436, + "id": 3631, "implemented": true, "kind": "function", "modifiers": [], "name": "max", - "nameLocation": "321:3:14", + "nameLocation": "321:3:15", "nodeType": "FunctionDefinition", "parameters": { - "id": 3424, + "id": 3619, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3421, + "id": 3616, "mutability": "mutable", "name": "a", - "nameLocation": "332:1:14", + "nameLocation": "332:1:15", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "325:8:14", + "scope": 3631, + "src": "325:8:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -45058,10 +47680,10 @@ "typeString": "int256" }, "typeName": { - "id": 3420, + "id": 3615, "name": "int256", "nodeType": "ElementaryTypeName", - "src": "325:6:14", + "src": "325:6:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45071,13 +47693,13 @@ }, { "constant": false, - "id": 3423, + "id": 3618, "mutability": "mutable", "name": "b", - "nameLocation": "342:1:14", + "nameLocation": "342:1:15", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "335:8:14", + "scope": 3631, + "src": "335:8:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -45085,10 +47707,10 @@ "typeString": "int256" }, "typeName": { - "id": 3422, + "id": 3617, "name": "int256", "nodeType": "ElementaryTypeName", - "src": "335:6:14", + "src": "335:6:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45097,21 +47719,21 @@ "visibility": "internal" } ], - "src": "324:20:14" + "src": "324:20:15" }, "returnParameters": { - "id": 3427, + "id": 3622, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3426, + "id": 3621, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "368:6:14", + "scope": 3631, + "src": "368:6:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -45119,10 +47741,10 @@ "typeString": "int256" }, "typeName": { - "id": 3425, + "id": 3620, "name": "int256", "nodeType": "ElementaryTypeName", - "src": "368:6:14", + "src": "368:6:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45131,19 +47753,19 @@ "visibility": "internal" } ], - "src": "367:8:14" + "src": "367:8:15" }, - "scope": 3520, - "src": "312:101:14", + "scope": 3715, + "src": "312:101:15", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { - "id": 3453, + "id": 3648, "nodeType": "Block", - "src": "555:37:14", + "src": "555:37:15", "statements": [ { "expression": { @@ -45152,18 +47774,18 @@ "typeIdentifier": "t_int256", "typeString": "int256" }, - "id": 3448, + "id": 3643, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3446, + "id": 3641, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "572:1:14", + "referencedDeclaration": 3634, + "src": "572:1:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45172,49 +47794,49 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 3447, + "id": 3642, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "576:1:14", + "referencedDeclaration": 3636, + "src": "576:1:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, - "src": "572:5:14", + "src": "572:5:15", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseExpression": { - "id": 3450, + "id": 3645, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "584:1:14", + "referencedDeclaration": 3636, + "src": "584:1:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, - "id": 3451, + "id": 3646, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "572:13:14", + "src": "572:13:15", "trueExpression": { - "id": 3449, + "id": 3644, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "580:1:14", + "referencedDeclaration": 3634, + "src": "580:1:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45225,39 +47847,39 @@ "typeString": "int256" } }, - "functionReturnParameters": 3445, - "id": 3452, + "functionReturnParameters": 3640, + "id": 3647, "nodeType": "Return", - "src": "565:20:14" + "src": "565:20:15" } ] }, "documentation": { - "id": 3437, + "id": 3632, "nodeType": "StructuredDocumentation", - "src": "419:67:14", + "src": "419:67:15", "text": " @dev Returns the smallest of two signed numbers." }, - "id": 3454, + "id": 3649, "implemented": true, "kind": "function", "modifiers": [], "name": "min", - "nameLocation": "500:3:14", + "nameLocation": "500:3:15", "nodeType": "FunctionDefinition", "parameters": { - "id": 3442, + "id": 3637, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3439, + "id": 3634, "mutability": "mutable", "name": "a", - "nameLocation": "511:1:14", + "nameLocation": "511:1:15", "nodeType": "VariableDeclaration", - "scope": 3454, - "src": "504:8:14", + "scope": 3649, + "src": "504:8:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -45265,10 +47887,10 @@ "typeString": "int256" }, "typeName": { - "id": 3438, + "id": 3633, "name": "int256", "nodeType": "ElementaryTypeName", - "src": "504:6:14", + "src": "504:6:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45278,13 +47900,13 @@ }, { "constant": false, - "id": 3441, + "id": 3636, "mutability": "mutable", "name": "b", - "nameLocation": "521:1:14", + "nameLocation": "521:1:15", "nodeType": "VariableDeclaration", - "scope": 3454, - "src": "514:8:14", + "scope": 3649, + "src": "514:8:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -45292,10 +47914,10 @@ "typeString": "int256" }, "typeName": { - "id": 3440, + "id": 3635, "name": "int256", "nodeType": "ElementaryTypeName", - "src": "514:6:14", + "src": "514:6:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45304,21 +47926,21 @@ "visibility": "internal" } ], - "src": "503:20:14" + "src": "503:20:15" }, "returnParameters": { - "id": 3445, + "id": 3640, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3444, + "id": 3639, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 3454, - "src": "547:6:14", + "scope": 3649, + "src": "547:6:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -45326,10 +47948,10 @@ "typeString": "int256" }, "typeName": { - "id": 3443, + "id": 3638, "name": "int256", "nodeType": "ElementaryTypeName", - "src": "547:6:14", + "src": "547:6:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45338,34 +47960,34 @@ "visibility": "internal" } ], - "src": "546:8:14" + "src": "546:8:15" }, - "scope": 3520, - "src": "491:101:14", + "scope": 3715, + "src": "491:101:15", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { - "id": 3497, + "id": 3692, "nodeType": "Block", - "src": "797:162:14", + "src": "797:162:15", "statements": [ { "assignments": [ - 3465 + 3660 ], "declarations": [ { "constant": false, - "id": 3465, + "id": 3660, "mutability": "mutable", "name": "x", - "nameLocation": "866:1:14", + "nameLocation": "866:1:15", "nodeType": "VariableDeclaration", - "scope": 3497, - "src": "859:8:14", + "scope": 3692, + "src": "859:8:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -45373,10 +47995,10 @@ "typeString": "int256" }, "typeName": { - "id": 3464, + "id": 3659, "name": "int256", "nodeType": "ElementaryTypeName", - "src": "859:6:14", + "src": "859:6:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45385,13 +48007,13 @@ "visibility": "internal" } ], - "id": 3478, + "id": 3673, "initialValue": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, - "id": 3477, + "id": 3672, "isConstant": false, "isLValue": false, "isPure": false, @@ -45403,18 +48025,18 @@ "typeIdentifier": "t_int256", "typeString": "int256" }, - "id": 3468, + "id": 3663, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3466, + "id": 3661, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3457, - "src": "871:1:14", + "referencedDeclaration": 3652, + "src": "871:1:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45423,32 +48045,32 @@ "nodeType": "BinaryOperation", "operator": "&", "rightExpression": { - "id": 3467, + "id": 3662, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3459, - "src": "875:1:14", + "referencedDeclaration": 3654, + "src": "875:1:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, - "src": "871:5:14", + "src": "871:5:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], - "id": 3469, + "id": 3664, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "870:7:14", + "src": "870:7:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45463,7 +48085,7 @@ "typeIdentifier": "t_int256", "typeString": "int256" }, - "id": 3475, + "id": 3670, "isConstant": false, "isLValue": false, "isPure": false, @@ -45475,18 +48097,18 @@ "typeIdentifier": "t_int256", "typeString": "int256" }, - "id": 3472, + "id": 3667, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3470, + "id": 3665, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3457, - "src": "882:1:14", + "referencedDeclaration": 3652, + "src": "882:1:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45495,32 +48117,32 @@ "nodeType": "BinaryOperation", "operator": "^", "rightExpression": { - "id": 3471, + "id": 3666, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3459, - "src": "886:1:14", + "referencedDeclaration": 3654, + "src": "886:1:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, - "src": "882:5:14", + "src": "882:5:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], - "id": 3473, + "id": 3668, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "881:7:14", + "src": "881:7:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45530,48 +48152,48 @@ "operator": ">>", "rightExpression": { "hexValue": "31", - "id": 3474, + "id": 3669, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "892:1:14", + "src": "892:1:15", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "881:12:14", + "src": "881:12:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], - "id": 3476, + "id": 3671, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "880:14:14", + "src": "880:14:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, - "src": "870:24:14", + "src": "870:24:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "VariableDeclarationStatement", - "src": "859:35:14" + "src": "859:35:15" }, { "expression": { @@ -45579,18 +48201,18 @@ "typeIdentifier": "t_int256", "typeString": "int256" }, - "id": 3495, + "id": 3690, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3479, + "id": 3674, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "911:1:14", + "referencedDeclaration": 3660, + "src": "911:1:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45605,7 +48227,7 @@ "typeIdentifier": "t_int256", "typeString": "int256" }, - "id": 3493, + "id": 3688, "isConstant": false, "isLValue": false, "isPure": false, @@ -45617,7 +48239,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3487, + "id": 3682, "isConstant": false, "isLValue": false, "isPure": false, @@ -45625,12 +48247,12 @@ "leftExpression": { "arguments": [ { - "id": 3484, + "id": 3679, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "931:1:14", + "referencedDeclaration": 3660, + "src": "931:1:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45644,26 +48266,26 @@ "typeString": "int256" } ], - "id": 3483, + "id": 3678, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "923:7:14", + "src": "923:7:15", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 3482, + "id": 3677, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "923:7:14", + "src": "923:7:15", "typeDescriptions": {} } }, - "id": 3485, + "id": 3680, "isConstant": false, "isLValue": false, "isPure": false, @@ -45672,7 +48294,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "923:10:14", + "src": "923:10:15", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -45683,21 +48305,21 @@ "operator": ">>", "rightExpression": { "hexValue": "323535", - "id": 3486, + "id": 3681, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "937:3:14", + "src": "937:3:15", "typeDescriptions": { "typeIdentifier": "t_rational_255_by_1", "typeString": "int_const 255" }, "value": "255" }, - "src": "923:17:14", + "src": "923:17:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -45711,26 +48333,26 @@ "typeString": "uint256" } ], - "id": 3481, + "id": 3676, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "916:6:14", + "src": "916:6:15", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": { - "id": 3480, + "id": 3675, "name": "int256", "nodeType": "ElementaryTypeName", - "src": "916:6:14", + "src": "916:6:15", "typeDescriptions": {} } }, - "id": 3488, + "id": 3683, "isConstant": false, "isLValue": false, "isPure": false, @@ -45739,7 +48361,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "916:25:14", + "src": "916:25:15", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_int256", @@ -45755,18 +48377,18 @@ "typeIdentifier": "t_int256", "typeString": "int256" }, - "id": 3491, + "id": 3686, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3489, + "id": 3684, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3457, - "src": "945:1:14", + "referencedDeclaration": 3652, + "src": "945:1:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45775,96 +48397,96 @@ "nodeType": "BinaryOperation", "operator": "^", "rightExpression": { - "id": 3490, + "id": 3685, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3459, - "src": "949:1:14", + "referencedDeclaration": 3654, + "src": "949:1:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, - "src": "945:5:14", + "src": "945:5:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], - "id": 3492, + "id": 3687, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "944:7:14", + "src": "944:7:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, - "src": "916:35:14", + "src": "916:35:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], - "id": 3494, + "id": 3689, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "915:37:14", + "src": "915:37:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, - "src": "911:41:14", + "src": "911:41:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, - "functionReturnParameters": 3463, - "id": 3496, + "functionReturnParameters": 3658, + "id": 3691, "nodeType": "Return", - "src": "904:48:14" + "src": "904:48:15" } ] }, "documentation": { - "id": 3455, + "id": 3650, "nodeType": "StructuredDocumentation", - "src": "598:126:14", + "src": "598:126:15", "text": " @dev Returns the average of two signed numbers without overflow.\n The result is rounded towards zero." }, - "id": 3498, + "id": 3693, "implemented": true, "kind": "function", "modifiers": [], "name": "average", - "nameLocation": "738:7:14", + "nameLocation": "738:7:15", "nodeType": "FunctionDefinition", "parameters": { - "id": 3460, + "id": 3655, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3457, + "id": 3652, "mutability": "mutable", "name": "a", - "nameLocation": "753:1:14", + "nameLocation": "753:1:15", "nodeType": "VariableDeclaration", - "scope": 3498, - "src": "746:8:14", + "scope": 3693, + "src": "746:8:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -45872,10 +48494,10 @@ "typeString": "int256" }, "typeName": { - "id": 3456, + "id": 3651, "name": "int256", "nodeType": "ElementaryTypeName", - "src": "746:6:14", + "src": "746:6:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45885,13 +48507,13 @@ }, { "constant": false, - "id": 3459, + "id": 3654, "mutability": "mutable", "name": "b", - "nameLocation": "763:1:14", + "nameLocation": "763:1:15", "nodeType": "VariableDeclaration", - "scope": 3498, - "src": "756:8:14", + "scope": 3693, + "src": "756:8:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -45899,10 +48521,10 @@ "typeString": "int256" }, "typeName": { - "id": 3458, + "id": 3653, "name": "int256", "nodeType": "ElementaryTypeName", - "src": "756:6:14", + "src": "756:6:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45911,21 +48533,21 @@ "visibility": "internal" } ], - "src": "745:20:14" + "src": "745:20:15" }, "returnParameters": { - "id": 3463, + "id": 3658, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3462, + "id": 3657, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 3498, - "src": "789:6:14", + "scope": 3693, + "src": "789:6:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -45933,10 +48555,10 @@ "typeString": "int256" }, "typeName": { - "id": 3461, + "id": 3656, "name": "int256", "nodeType": "ElementaryTypeName", - "src": "789:6:14", + "src": "789:6:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45945,24 +48567,24 @@ "visibility": "internal" } ], - "src": "788:8:14" + "src": "788:8:15" }, - "scope": 3520, - "src": "729:230:14", + "scope": 3715, + "src": "729:230:15", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { - "id": 3518, + "id": 3713, "nodeType": "Block", - "src": "1103:158:14", + "src": "1103:158:15", "statements": [ { - "id": 3517, + "id": 3712, "nodeType": "UncheckedBlock", - "src": "1113:142:14", + "src": "1113:142:15", "statements": [ { "expression": { @@ -45973,18 +48595,18 @@ "typeIdentifier": "t_int256", "typeString": "int256" }, - "id": 3510, + "id": 3705, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3508, + "id": 3703, "name": "n", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3501, - "src": "1228:1:14", + "referencedDeclaration": 3696, + "src": "1228:1:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45994,28 +48616,28 @@ "operator": ">=", "rightExpression": { "hexValue": "30", - "id": 3509, + "id": 3704, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1233:1:14", + "src": "1233:1:15", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "1228:6:14", + "src": "1228:6:15", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseExpression": { - "id": 3513, + "id": 3708, "isConstant": false, "isLValue": false, "isPure": false, @@ -46023,14 +48645,14 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "1241:2:14", + "src": "1241:2:15", "subExpression": { - "id": 3512, + "id": 3707, "name": "n", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3501, - "src": "1242:1:14", + "referencedDeclaration": 3696, + "src": "1242:1:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -46041,20 +48663,20 @@ "typeString": "int256" } }, - "id": 3514, + "id": 3709, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "1228:15:14", + "src": "1228:15:15", "trueExpression": { - "id": 3511, + "id": 3706, "name": "n", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3501, - "src": "1237:1:14", + "referencedDeclaration": 3696, + "src": "1237:1:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -46073,26 +48695,26 @@ "typeString": "int256" } ], - "id": 3507, + "id": 3702, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1220:7:14", + "src": "1220:7:15", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 3506, + "id": 3701, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1220:7:14", + "src": "1220:7:15", "typeDescriptions": {} } }, - "id": 3515, + "id": 3710, "isConstant": false, "isLValue": false, "isPure": false, @@ -46101,48 +48723,48 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1220:24:14", + "src": "1220:24:15", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3505, - "id": 3516, + "functionReturnParameters": 3700, + "id": 3711, "nodeType": "Return", - "src": "1213:31:14" + "src": "1213:31:15" } ] } ] }, "documentation": { - "id": 3499, + "id": 3694, "nodeType": "StructuredDocumentation", - "src": "965:78:14", + "src": "965:78:15", "text": " @dev Returns the absolute unsigned value of a signed value." }, - "id": 3519, + "id": 3714, "implemented": true, "kind": "function", "modifiers": [], "name": "abs", - "nameLocation": "1057:3:14", + "nameLocation": "1057:3:15", "nodeType": "FunctionDefinition", "parameters": { - "id": 3502, + "id": 3697, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3501, + "id": 3696, "mutability": "mutable", "name": "n", - "nameLocation": "1068:1:14", + "nameLocation": "1068:1:15", "nodeType": "VariableDeclaration", - "scope": 3519, - "src": "1061:8:14", + "scope": 3714, + "src": "1061:8:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -46150,10 +48772,10 @@ "typeString": "int256" }, "typeName": { - "id": 3500, + "id": 3695, "name": "int256", "nodeType": "ElementaryTypeName", - "src": "1061:6:14", + "src": "1061:6:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -46162,21 +48784,21 @@ "visibility": "internal" } ], - "src": "1060:10:14" + "src": "1060:10:15" }, "returnParameters": { - "id": 3505, + "id": 3700, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3504, + "id": 3699, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 3519, - "src": "1094:7:14", + "scope": 3714, + "src": "1094:7:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -46184,10 +48806,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3503, + "id": 3698, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1094:7:14", + "src": "1094:7:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -46196,24 +48818,24 @@ "visibility": "internal" } ], - "src": "1093:9:14" + "src": "1093:9:15" }, - "scope": 3520, - "src": "1048:213:14", + "scope": 3715, + "src": "1048:213:15", "stateMutability": "pure", "virtual": false, "visibility": "internal" } ], - "scope": 3521, - "src": "216:1047:14", + "scope": 3716, + "src": "216:1047:15", "usedErrors": [], "usedEvents": [] } ], - "src": "109:1155:14" + "src": "109:1155:15" }, - "id": 14 + "id": 15 }, "contracts/Engagement.sol": { "ast": { @@ -46234,8 +48856,11 @@ "ERC165": [ 2349 ], + "ERC165Checker": [ + 2544 + ], "Engagement": [ - 3798 + 4029 ], "IAccessControl": [ 378 @@ -46253,81 +48878,92 @@ 1731 ], "IERC165": [ - 2361 + 2556 ], "IEngagement": [ - 3894 + 4117 ], "Math": [ - 3415 + 3610 ], "SignedMath": [ - 3520 + 3715 ], "Strings": [ 2325 ] }, - "id": 3799, + "id": 4030, "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 3522, + "id": 3717, "literals": [ "solidity", - "^", "0.8", - ".24" + ".26" ], "nodeType": "PragmaDirective", - "src": "39:24:15" + "src": "39:23:16" }, { "absolutePath": "@openzeppelin/contracts/token/ERC1155/ERC1155.sol", "file": "@openzeppelin/contracts/token/ERC1155/ERC1155.sol", - "id": 3523, + "id": 3718, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 3799, + "scope": 4030, "sourceUnit": 1567, - "src": "65:59:15", + "src": "64:59:16", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@openzeppelin/contracts/access/AccessControl.sol", "file": "@openzeppelin/contracts/access/AccessControl.sol", - "id": 3524, + "id": 3719, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 3799, + "scope": 4030, "sourceUnit": 296, - "src": "125:58:15", + "src": "124:58:16", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", "file": "@openzeppelin/contracts/utils/Strings.sol", - "id": 3525, + "id": 3720, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 3799, + "scope": 4030, "sourceUnit": 2326, - "src": "184:51:15", + "src": "183:51:16", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol", + "file": "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol", + "id": 3721, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 4030, + "sourceUnit": 2545, + "src": "235:71:16", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "contracts/IEngagement.sol", "file": "./IEngagement.sol", - "id": 3526, + "id": 3722, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 3799, - "sourceUnit": 3895, - "src": "236:27:15", + "scope": 4030, + "sourceUnit": 4118, + "src": "307:27:16", "symbolAliases": [], "unitAlias": "" }, @@ -46336,312 +48972,223 @@ "baseContracts": [ { "baseName": { - "id": 3527, + "id": 3723, "name": "IEngagement", "nameLocations": [ - "288:11:15" + "359:11:16" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 3894, - "src": "288:11:15" + "referencedDeclaration": 4117, + "src": "359:11:16" }, - "id": 3528, + "id": 3724, "nodeType": "InheritanceSpecifier", - "src": "288:11:15" + "src": "359:11:16" }, { "baseName": { - "id": 3529, + "id": 3725, "name": "ERC1155", "nameLocations": [ - "301:7:15" + "372:7:16" ], "nodeType": "IdentifierPath", "referencedDeclaration": 1566, - "src": "301:7:15" + "src": "372:7:16" }, - "id": 3530, + "id": 3726, "nodeType": "InheritanceSpecifier", - "src": "301:7:15" + "src": "372:7:16" }, { "baseName": { - "id": 3531, + "id": 3727, "name": "AccessControl", "nameLocations": [ - "310:13:15" + "381:13:16" ], "nodeType": "IdentifierPath", "referencedDeclaration": 295, - "src": "310:13:15" + "src": "381:13:16" }, - "id": 3532, + "id": 3728, "nodeType": "InheritanceSpecifier", - "src": "310:13:15" + "src": "381:13:16" } ], "canonicalName": "Engagement", "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, - "id": 3798, + "id": 4029, "linearizedBaseContracts": [ - 3798, + 4029, 295, 1566, 515, 1747, 1689, 2349, - 2361, + 2556, 378, 1960, - 3894 + 4117 ], "name": "Engagement", - "nameLocation": "274:10:15", + "nameLocation": "345:10:16", "nodeType": "ContractDefinition", "nodes": [ { - "constant": false, - "id": 3535, - "mutability": "mutable", - "name": "_counter", - "nameLocation": "343:8:15", - "nodeType": "VariableDeclaration", - "scope": 3798, - "src": "330:25:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3533, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "330:4:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "30", - "id": 3534, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "354:1:15", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "private" - }, - { - "constant": true, - "functionSelector": "24c20a34", - "id": 3540, - "mutability": "constant", - "name": "PROVIDER_ROLE", - "nameLocation": "385:13:15", - "nodeType": "VariableDeclaration", - "scope": 3798, - "src": "361:66:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "global": false, + "id": 3731, + "libraryName": { + "id": 3729, + "name": "ERC165Checker", + "nameLocations": [ + "407:13:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2544, + "src": "407:13:16" }, + "nodeType": "UsingForDirective", + "src": "401:32:16", "typeName": { - "id": 3536, - "name": "bytes32", + "id": 3730, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "361:7:15", + "src": "425:7:16", + "stateMutability": "nonpayable", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "arguments": [ - { - "hexValue": "50524f56494445525f524f4c45", - "id": 3538, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "411:15:15", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_18d9ff454de989bd126b06bd404b47ede75f9e65543e94e8d212f89d7dcbb87c", - "typeString": "literal_string \"PROVIDER_ROLE\"" - }, - "value": "PROVIDER_ROLE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_18d9ff454de989bd126b06bd404b47ede75f9e65543e94e8d212f89d7dcbb87c", - "typeString": "literal_string \"PROVIDER_ROLE\"" - } - ], - "id": 3537, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "401:9:15", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 3539, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "401:26:15", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_address", + "typeString": "address" } - }, - "visibility": "public" + } }, { "constant": false, - "id": 3544, + "id": 3733, "mutability": "mutable", - "name": "_tokenMetadata", - "nameLocation": "466:14:15", + "name": "_counter", + "nameLocation": "452:8:16", "nodeType": "VariableDeclaration", - "scope": 3798, - "src": "434:46:15", + "scope": 4029, + "src": "439:21:16", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 3543, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 3541, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "442:4:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "434:23:15", + "id": 3732, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "439:4:16", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 3542, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "450:6:15", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "visibility": "private" }, { "constant": false, - "id": 3548, + "id": 3735, "mutability": "mutable", - "name": "_scores", - "nameLocation": "518:7:15", + "name": "_tokenURI", + "nameLocation": "481:9:16", "nodeType": "VariableDeclaration", - "scope": 3798, - "src": "486:39:15", + "scope": 4029, + "src": "466:24:16", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" + "typeIdentifier": "t_string_storage", + "typeString": "string" }, "typeName": { - "id": 3547, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 3545, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "494:4:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "486:23:15", + "id": 3734, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "466:6:16", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 3546, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "502:6:15", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, "visibility": "private" }, { "body": { - "id": 3560, + "id": 3757, "nodeType": "Block", - "src": "558:59:15", + "src": "546:129:16", "statements": [ { "expression": { "arguments": [ { - "id": 3555, + "id": 3744, + "name": "tokenURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3737, + "src": "575:9:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3743, + "name": "requireNonEmptyURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3792, + "src": "556:18:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 3745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "556:29:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3746, + "nodeType": "ExpressionStatement", + "src": "556:29:16" + }, + { + "expression": { + "arguments": [ + { + "id": 3748, "name": "DEFAULT_ADMIN_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 29, - "src": "579:18:15", + "src": "606:18:16", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -46649,26 +49196,26 @@ }, { "expression": { - "id": 3556, + "id": 3749, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "599:3:15", + "src": "626:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3557, + "id": 3750, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "603:6:15", + "memberLocation": "630:6:16", "memberName": "sender", "nodeType": "MemberAccess", - "src": "599:10:15", + "src": "626:10:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -46686,18 +49233,18 @@ "typeString": "address" } ], - "id": 3554, + "id": 3747, "name": "_grantRole", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 256, - "src": "568:10:15", + "src": "595:10:16", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$", "typeString": "function (bytes32,address) returns (bool)" } }, - "id": 3558, + "id": 3751, "isConstant": false, "isLValue": false, "isPure": false, @@ -46706,20 +49253,63 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "568:42:15", + "src": "595:42:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3559, + "id": 3752, "nodeType": "ExpressionStatement", - "src": "568:42:15" + "src": "595:42:16" + }, + { + "expression": { + "id": 3755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3753, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3735, + "src": "647:9:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3754, + "name": "tokenURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3737, + "src": "659:9:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "647:21:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3756, + "nodeType": "ExpressionStatement", + "src": "647:21:16" } ] }, - "id": 3561, + "id": 3758, "implemented": true, "kind": "constructor", "modifiers": [ @@ -46727,14 +49317,14 @@ "arguments": [ { "hexValue": "", - "id": 3551, + "id": 3740, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "554:2:15", + "src": "542:2:16", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" @@ -46742,48 +49332,76 @@ "value": "" } ], - "id": 3552, + "id": 3741, "kind": "baseConstructorSpecifier", "modifierName": { - "id": 3550, + "id": 3739, "name": "ERC1155", "nameLocations": [ - "546:7:15" + "534:7:16" ], "nodeType": "IdentifierPath", "referencedDeclaration": 1566, - "src": "546:7:15" + "src": "534:7:16" }, "nodeType": "ModifierInvocation", - "src": "546:11:15" + "src": "534:11:16" } ], "name": "", "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { - "id": 3549, + "id": 3738, "nodeType": "ParameterList", - "parameters": [], - "src": "543:2:15" + "parameters": [ + { + "constant": false, + "id": 3737, + "mutability": "mutable", + "name": "tokenURI_", + "nameLocation": "523:9:16", + "nodeType": "VariableDeclaration", + "scope": 3758, + "src": "509:23:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3736, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "509:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "508:25:16" }, "returnParameters": { - "id": 3553, + "id": 3742, "nodeType": "ParameterList", "parameters": [], - "src": "558:0:15" + "src": "546:0:16" }, - "scope": 3798, - "src": "532:85:15", + "scope": 4029, + "src": "497:178:16", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { - "id": 3575, + "id": 3772, "nodeType": "Block", - "src": "673:90:15", + "src": "731:90:16", "statements": [ { "condition": { @@ -46791,18 +49409,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3568, + "id": 3765, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3566, + "id": 3763, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3563, - "src": "687:7:15", + "referencedDeclaration": 3760, + "src": "745:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -46811,41 +49429,41 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 3567, + "id": 3764, "name": "_counter", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3535, - "src": "698:8:15", + "referencedDeclaration": 3733, + "src": "756:8:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "687:19:15", + "src": "745:19:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3574, + "id": 3771, "nodeType": "IfStatement", - "src": "683:74:15", + "src": "741:74:16", "trueBody": { - "id": 3573, + "id": 3770, "nodeType": "Block", - "src": "708:49:15", + "src": "766:49:16", "statements": [ { "errorCall": { "arguments": [ { - "id": 3570, + "id": 3767, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3563, - "src": "738:7:15", + "referencedDeclaration": 3760, + "src": "796:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -46859,18 +49477,18 @@ "typeString": "uint256" } ], - "id": 3569, + "id": 3766, "name": "NotFound", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3833, - "src": "729:8:15", + "referencedDeclaration": 4063, + "src": "787:8:16", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", - "typeString": "function (uint256) pure" + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256) pure returns (error)" } }, - "id": 3571, + "id": 3768, "isConstant": false, "isLValue": false, "isPure": false, @@ -46879,42 +49497,42 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "729:17:15", + "src": "787:17:16", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, - "id": 3572, + "id": 3769, "nodeType": "RevertStatement", - "src": "722:24:15" + "src": "780:24:16" } ] } } ] }, - "id": 3576, + "id": 3773, "implemented": true, "kind": "function", "modifiers": [], "name": "_checkTokenId", - "nameLocation": "632:13:15", + "nameLocation": "690:13:16", "nodeType": "FunctionDefinition", "parameters": { - "id": 3564, + "id": 3761, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3563, + "id": 3760, "mutability": "mutable", "name": "tokenId", - "nameLocation": "651:7:15", + "nameLocation": "709:7:16", "nodeType": "VariableDeclaration", - "scope": 3576, - "src": "646:12:15", + "scope": 3773, + "src": "704:12:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -46922,10 +49540,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3562, + "id": 3759, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "646:4:15", + "src": "704:4:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -46934,36 +49552,273 @@ "visibility": "internal" } ], - "src": "645:14:15" + "src": "703:14:16" }, "returnParameters": { - "id": 3565, + "id": 3762, "nodeType": "ParameterList", "parameters": [], - "src": "673:0:15" + "src": "731:0:16" }, - "scope": 3798, - "src": "623:140:15", + "scope": 4029, + "src": "681:140:16", "stateMutability": "view", "virtual": false, "visibility": "private" }, { "body": { - "id": 3585, + "id": 3791, + "nodeType": "Block", + "src": "891:110:16", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 3780, + "name": "newUri", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3775, + "src": "911:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "905:5:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3778, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "905:5:16", + "typeDescriptions": {} + } + }, + "id": 3781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "905:13:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "919:6:16", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "905:20:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 3783, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "929:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "905:25:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3790, + "nodeType": "IfStatement", + "src": "901:94:16", + "trueBody": { + "id": 3789, + "nodeType": "Block", + "src": "932:63:16", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "5552492063616e6e6f7420626520656d707479", + "id": 3786, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "962:21:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231", + "typeString": "literal_string \"URI cannot be empty\"" + }, + "value": "URI cannot be empty" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231", + "typeString": "literal_string \"URI cannot be empty\"" + } + ], + "id": 3785, + "name": "URIEmpty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4079, + "src": "953:8:16", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$", + "typeString": "function (string memory) pure returns (error)" + } + }, + "id": 3787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "953:31:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 3788, + "nodeType": "RevertStatement", + "src": "946:38:16" + } + ] + } + } + ] + }, + "id": 3792, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "requireNonEmptyURI", + "nameLocation": "836:18:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3776, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3775, + "mutability": "mutable", + "name": "newUri", + "nameLocation": "869:6:16", + "nodeType": "VariableDeclaration", + "scope": 3792, + "src": "855:20:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3774, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "855:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "854:22:16" + }, + "returnParameters": { + "id": 3777, + "nodeType": "ParameterList", + "parameters": [], + "src": "891:0:16" + }, + "scope": 4029, + "src": "827:174:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3801, "nodeType": "Block", - "src": "805:50:15", + "src": "1043:50:16", "statements": [ { "expression": { "arguments": [ { - "id": 3581, + "id": 3797, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "829:7:15", + "referencedDeclaration": 3794, + "src": "1067:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -46977,18 +49832,18 @@ "typeString": "uint256" } ], - "id": 3580, + "id": 3796, "name": "_checkTokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3576, - "src": "815:13:15", + "referencedDeclaration": 3773, + "src": "1053:13:16", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", "typeString": "function (uint256) view" } }, - "id": 3582, + "id": 3798, "isConstant": false, "isLValue": false, "isPure": false, @@ -46997,41 +49852,41 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "815:22:15", + "src": "1053:22:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3583, + "id": 3799, "nodeType": "ExpressionStatement", - "src": "815:22:15" + "src": "1053:22:16" }, { - "id": 3584, + "id": 3800, "nodeType": "PlaceholderStatement", - "src": "847:1:15" + "src": "1085:1:16" } ] }, - "id": 3586, + "id": 3802, "name": "validTokenId", - "nameLocation": "778:12:15", + "nameLocation": "1016:12:16", "nodeType": "ModifierDefinition", "parameters": { - "id": 3579, + "id": 3795, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3578, + "id": 3794, "mutability": "mutable", "name": "tokenId", - "nameLocation": "796:7:15", + "nameLocation": "1034:7:16", "nodeType": "VariableDeclaration", - "scope": 3586, - "src": "791:12:15", + "scope": 3802, + "src": "1029:12:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -47039,10 +49894,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3577, + "id": 3793, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "791:4:15", + "src": "1029:4:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -47051,68 +49906,209 @@ "visibility": "internal" } ], - "src": "790:14:15" + "src": "1028:14:16" }, - "src": "769:86:15", + "src": "1007:86:16", "virtual": false, "visibility": "internal" }, { - "baseFunctions": [ - 3850 - ], "body": { - "id": 3593, + "id": 3820, "nodeType": "Block", - "src": "909:32:15", + "src": "1154:114:16", "statements": [ { - "expression": { - "id": 3591, - "name": "_counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3535, - "src": "926:8:15", + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3808, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3804, + "src": "1168:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 3809, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1179:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1183:6:16", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1179:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1168:21:16", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "functionReturnParameters": 3590, - "id": 3592, - "nodeType": "Return", - "src": "919:15:15" + "id": 3818, + "nodeType": "IfStatement", + "src": "1164:87:16", + "trueBody": { + "id": 3817, + "nodeType": "Block", + "src": "1191:60:16", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 3813, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3804, + "src": "1223:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3814, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3806, + "src": "1232:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3812, + "name": "NotAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4075, + "src": "1212:10:16", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$returns$_t_error_$", + "typeString": "function (address,uint256) pure returns (error)" + } + }, + "id": 3815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1212:28:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 3816, + "nodeType": "RevertStatement", + "src": "1205:35:16" + } + ] + } + }, + { + "id": 3819, + "nodeType": "PlaceholderStatement", + "src": "1260:1:16" } ] }, - "functionSelector": "61bc221a", - "id": 3594, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "counter", - "nameLocation": "870:7:15", - "nodeType": "FunctionDefinition", + "id": 3821, + "name": "onlyTokenOwner", + "nameLocation": "1108:14:16", + "nodeType": "ModifierDefinition", "parameters": { - "id": 3587, - "nodeType": "ParameterList", - "parameters": [], - "src": "877:2:15" - }, - "returnParameters": { - "id": 3590, + "id": 3807, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3589, + "id": 3804, "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", + "name": "account", + "nameLocation": "1131:7:16", + "nodeType": "VariableDeclaration", + "scope": 3821, + "src": "1123:15:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3803, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1123:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3806, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1145:7:16", "nodeType": "VariableDeclaration", - "scope": 3594, - "src": "903:4:15", + "scope": 3821, + "src": "1140:12:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -47120,10 +50116,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3588, + "id": 3805, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "903:4:15", + "src": "1140:4:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -47132,128 +50128,421 @@ "visibility": "internal" } ], - "src": "902:6:15" + "src": "1122:31:16" }, - "scope": 3798, - "src": "861:80:15", - "stateMutability": "view", + "src": "1099:169:16", "virtual": false, - "visibility": "external" + "visibility": "internal" }, { - "baseFunctions": [ - 3855 - ], "body": { - "id": 3622, + "id": 3839, "nodeType": "Block", - "src": "992:155:15", + "src": "1322:140:16", "statements": [ { - "expression": { - "id": 3603, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3831, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 3599, - "name": "_tokenMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3544, - "src": "1002:14:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 3601, - "indexExpression": { - "id": 3600, - "name": "_counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3535, - "src": "1017:8:15", + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 3827, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3823, + "src": "1342:7:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3826, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1336:5:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3825, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1336:5:16", + "typeDescriptions": {} + } + }, + "id": 3828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1336:14:16", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" } }, + "id": 3829, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1002:24:15", + "lValueRequested": false, + "memberLocation": "1351:6:16", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1336:21:16", "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 3602, - "name": "hash_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3596, - "src": "1029:5:15", + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 3830, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1361:1:16", "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "src": "1002:32:15", + "src": "1336:26:16", "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 3604, - "nodeType": "ExpressionStatement", - "src": "1002:32:15" - }, - { - "expression": { + "id": 3837, + "nodeType": "IfStatement", + "src": "1332:113:16", + "trueBody": { + "id": 3836, + "nodeType": "Block", + "src": "1364:81:16", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "4163636f756e742063616e6e6f7420626520656d707479", + "id": 3833, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1408:25:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619", + "typeString": "literal_string \"Account cannot be empty\"" + }, + "value": "Account cannot be empty" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619", + "typeString": "literal_string \"Account cannot be empty\"" + } + ], + "id": 3832, + "name": "EmptyAccountNotAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4083, + "src": "1385:22:16", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$", + "typeString": "function (string memory) pure returns (error)" + } + }, + "id": 3834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1385:49:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 3835, + "nodeType": "RevertStatement", + "src": "1378:56:16" + } + ] + } + }, + { + "id": 3838, + "nodeType": "PlaceholderStatement", + "src": "1454:1:16" + } + ] + }, + "id": 3840, + "name": "nonEmptyAccount", + "nameLocation": "1283:15:16", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 3824, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3823, + "mutability": "mutable", + "name": "account", + "nameLocation": "1313:7:16", + "nodeType": "VariableDeclaration", + "scope": 3840, + "src": "1299:21:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3822, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1299:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1298:23:16" + }, + "src": "1274:188:16", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 4088 + ], + "body": { + "id": 3847, + "nodeType": "Block", + "src": "1516:32:16", + "statements": [ + { + "expression": { + "id": 3845, + "name": "_counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3733, + "src": "1533:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3844, + "id": 3846, + "nodeType": "Return", + "src": "1526:15:16" + } + ] + }, + "functionSelector": "61bc221a", + "id": 3848, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "counter", + "nameLocation": "1477:7:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3841, + "nodeType": "ParameterList", + "parameters": [], + "src": "1484:2:16" + }, + "returnParameters": { + "id": 3844, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3843, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3848, + "src": "1510:4:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3842, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1510:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1509:6:16" + }, + "scope": 4029, + "src": "1468:80:16", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 4091 + ], + "body": { + "id": 3875, + "nodeType": "Block", + "src": "1580:176:16", + "statements": [ + { + "assignments": [ + 3852 + ], + "declarations": [ + { + "constant": false, + "id": 3852, + "mutability": "mutable", + "name": "counterCache", + "nameLocation": "1595:12:16", + "nodeType": "VariableDeclaration", + "scope": 3875, + "src": "1590:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3851, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1590:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3854, + "initialValue": { + "id": 3853, + "name": "_counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3733, + "src": "1610:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1590:28:16" + }, + { + "expression": { "arguments": [ { "expression": { - "id": 3606, + "id": 3856, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "1050:3:15", + "src": "1634:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3607, + "id": 3857, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1054:6:15", + "memberLocation": "1638:6:16", "memberName": "sender", "nodeType": "MemberAccess", - "src": "1050:10:15", + "src": "1634:10:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 3608, - "name": "_counter", + "id": 3858, + "name": "counterCache", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3535, - "src": "1062:8:15", + "referencedDeclaration": 3852, + "src": "1646:12:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -47261,14 +50550,14 @@ }, { "hexValue": "31", - "id": 3609, + "id": 3859, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1072:1:15", + "src": "1660:1:16", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -47277,14 +50566,14 @@ }, { "hexValue": "", - "id": 3610, + "id": 3860, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1075:2:15", + "src": "1663:2:16", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" @@ -47311,18 +50600,18 @@ "typeString": "literal_string \"\"" } ], - "id": 3605, + "id": 3855, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1241, - "src": "1044:5:15", + "src": "1628:5:16", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,uint256,uint256,bytes memory)" } }, - "id": 3611, + "id": 3861, "isConstant": false, "isLValue": false, "isPure": false, @@ -47331,54 +50620,54 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1044:34:15", + "src": "1628:38:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3612, + "id": 3862, "nodeType": "ExpressionStatement", - "src": "1044:34:15" + "src": "1628:38:16" }, { "eventCall": { "arguments": [ { "expression": { - "id": 3614, + "id": 3864, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "1099:3:15", + "src": "1687:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3615, + "id": 3865, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1103:6:15", + "memberLocation": "1691:6:16", "memberName": "sender", "nodeType": "MemberAccess", - "src": "1099:10:15", + "src": "1687:10:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 3616, - "name": "_counter", + "id": 3866, + "name": "counterCache", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3535, - "src": "1111:8:15", + "referencedDeclaration": 3852, + "src": "1699:12:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -47396,18 +50685,18 @@ "typeString": "uint256" } ], - "id": 3613, + "id": 3863, "name": "Issue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3805, - "src": "1093:5:15", + "referencedDeclaration": 4037, + "src": "1681:5:16", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 3617, + "id": 3867, "isConstant": false, "isLValue": false, "isPure": false, @@ -47416,113 +50705,130 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1093:27:15", + "src": "1681:31:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3618, + "id": 3868, "nodeType": "EmitStatement", - "src": "1088:32:15" + "src": "1676:36:16" }, { "expression": { - "id": 3620, + "id": 3873, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "1130:10:15", - "subExpression": { - "id": 3619, + "leftHandSide": { + "id": 3869, "name": "_counter", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3535, - "src": "1130:8:15", + "referencedDeclaration": 3733, + "src": "1722:8:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3870, + "name": "counterCache", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3852, + "src": "1733:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 3871, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1748:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1733:16:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1722:27:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3621, + "id": 3874, "nodeType": "ExpressionStatement", - "src": "1130:10:15" + "src": "1722:27:16" } ] }, - "functionSelector": "3cad9b0d", - "id": 3623, + "functionSelector": "d383f646", + "id": 3876, "implemented": true, "kind": "function", "modifiers": [], "name": "issue", - "nameLocation": "956:5:15", + "nameLocation": "1563:5:16", "nodeType": "FunctionDefinition", "parameters": { - "id": 3597, + "id": 3849, "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3596, - "mutability": "mutable", - "name": "hash_", - "nameLocation": "976:5:15", - "nodeType": "VariableDeclaration", - "scope": 3623, - "src": "962:19:15", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3595, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "962:6:15", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "961:21:15" + "parameters": [], + "src": "1568:2:16" }, "returnParameters": { - "id": 3598, + "id": 3850, "nodeType": "ParameterList", "parameters": [], - "src": "992:0:15" + "src": "1580:0:16" }, - "scope": 3798, - "src": "947:200:15", + "scope": 4029, + "src": "1554:202:16", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "baseFunctions": [ - 3866 + 4102 ], "body": { - "id": 3664, + "id": 3917, "nodeType": "Block", - "src": "1308:194:15", + "src": "1917:195:16", "statements": [ { "condition": { @@ -47530,7 +50836,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3643, + "id": 3896, "isConstant": false, "isLValue": false, "isPure": false, @@ -47538,24 +50844,24 @@ "leftExpression": { "arguments": [ { - "id": 3639, + "id": 3892, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3625, - "src": "1332:7:15", + "referencedDeclaration": 3878, + "src": "1941:7:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 3640, + "id": 3893, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3627, - "src": "1341:7:15", + "referencedDeclaration": 3880, + "src": "1950:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -47573,18 +50879,18 @@ "typeString": "uint256" } ], - "id": 3638, + "id": 3891, "name": "balanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 635, - "src": "1322:9:15", + "src": "1931:9:16", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (address,uint256) view returns (uint256)" } }, - "id": 3641, + "id": 3894, "isConstant": false, "isLValue": false, "isPure": false, @@ -47593,7 +50899,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1322:27:15", + "src": "1931:27:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -47601,59 +50907,59 @@ } }, "nodeType": "BinaryOperation", - "operator": ">", + "operator": ">=", "rightExpression": { - "hexValue": "30", - "id": 3642, + "hexValue": "31", + "id": 3895, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1352:1:15", + "src": "1962:1:16", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" }, - "value": "0" + "value": "1" }, - "src": "1322:31:15", + "src": "1931:32:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3650, + "id": 3903, "nodeType": "IfStatement", - "src": "1318:96:15", + "src": "1927:97:16", "trueBody": { - "id": 3649, + "id": 3902, "nodeType": "Block", - "src": "1355:59:15", + "src": "1965:59:16", "statements": [ { "errorCall": { "arguments": [ { - "id": 3645, + "id": 3898, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3625, - "src": "1386:7:15", + "referencedDeclaration": 3878, + "src": "1996:7:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 3646, + "id": 3899, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3627, - "src": "1395:7:15", + "referencedDeclaration": 3880, + "src": "2005:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -47671,18 +50977,18 @@ "typeString": "uint256" } ], - "id": 3644, + "id": 3897, "name": "MintLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3839, - "src": "1376:9:15", + "referencedDeclaration": 4069, + "src": "1986:9:16", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) pure" + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$returns$_t_error_$", + "typeString": "function (address,uint256) pure returns (error)" } }, - "id": 3647, + "id": 3900, "isConstant": false, "isLValue": false, "isPure": false, @@ -47691,16 +50997,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1376:27:15", + "src": "1986:27:16", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, - "id": 3648, + "id": 3901, "nodeType": "RevertStatement", - "src": "1369:34:15" + "src": "1979:34:16" } ] } @@ -47709,24 +51015,24 @@ "expression": { "arguments": [ { - "id": 3652, + "id": 3905, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3625, - "src": "1429:7:15", + "referencedDeclaration": 3878, + "src": "2039:7:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 3653, + "id": 3906, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3627, - "src": "1438:7:15", + "referencedDeclaration": 3880, + "src": "2048:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -47734,14 +51040,14 @@ }, { "hexValue": "31", - "id": 3654, + "id": 3907, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1447:1:15", + "src": "2057:1:16", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -47749,12 +51055,12 @@ "value": "1" }, { - "id": 3655, + "id": 3908, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3631, - "src": "1450:4:15", + "referencedDeclaration": 3884, + "src": "2060:4:16", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -47780,18 +51086,18 @@ "typeString": "bytes memory" } ], - "id": 3651, + "id": 3904, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1241, - "src": "1423:5:15", + "src": "2033:5:16", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,uint256,uint256,bytes memory)" } }, - "id": 3656, + "id": 3909, "isConstant": false, "isLValue": false, "isPure": false, @@ -47800,39 +51106,39 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1423:32:15", + "src": "2033:32:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3657, + "id": 3910, "nodeType": "ExpressionStatement", - "src": "1423:32:15" + "src": "2033:32:16" }, { "eventCall": { "arguments": [ { - "id": 3659, + "id": 3912, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3625, - "src": "1475:7:15", + "referencedDeclaration": 3878, + "src": "2085:7:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 3660, + "id": 3913, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3627, - "src": "1484:7:15", + "referencedDeclaration": 3880, + "src": "2094:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -47840,14 +51146,14 @@ }, { "hexValue": "31", - "id": 3661, + "id": 3914, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1493:1:15", + "src": "2103:1:16", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -47870,18 +51176,18 @@ "typeString": "int_const 1" } ], - "id": 3658, + "id": 3911, "name": "Mint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3813, - "src": "1470:4:15", + "referencedDeclaration": 4045, + "src": "2080:4:16", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (address,uint256,uint256)" } }, - "id": 3662, + "id": 3915, "isConstant": false, "isLValue": false, "isPure": false, @@ -47890,77 +51196,77 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1470:25:15", + "src": "2080:25:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3663, + "id": 3916, "nodeType": "EmitStatement", - "src": "1465:30:15" + "src": "2075:30:16" } ] }, "functionSelector": "731133e9", - "id": 3665, + "id": 3918, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { - "id": 3635, + "id": 3888, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3627, - "src": "1299:7:15", + "referencedDeclaration": 3880, + "src": "1908:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 3636, + "id": 3889, "kind": "modifierInvocation", "modifierName": { - "id": 3634, + "id": 3887, "name": "validTokenId", "nameLocations": [ - "1286:12:15" + "1895:12:16" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 3586, - "src": "1286:12:15" + "referencedDeclaration": 3802, + "src": "1895:12:16" }, "nodeType": "ModifierInvocation", - "src": "1286:21:15" + "src": "1895:21:16" } ], "name": "mint", - "nameLocation": "1162:4:15", + "nameLocation": "1771:4:16", "nodeType": "FunctionDefinition", "overrides": { - "id": 3633, + "id": 3886, "nodeType": "OverrideSpecifier", "overrides": [], - "src": "1277:8:15" + "src": "1886:8:16" }, "parameters": { - "id": 3632, + "id": 3885, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3625, + "id": 3878, "mutability": "mutable", "name": "account", - "nameLocation": "1184:7:15", + "nameLocation": "1793:7:16", "nodeType": "VariableDeclaration", - "scope": 3665, - "src": "1176:15:15", + "scope": 3918, + "src": "1785:15:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -47968,10 +51274,10 @@ "typeString": "address" }, "typeName": { - "id": 3624, + "id": 3877, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1176:7:15", + "src": "1785:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -47982,13 +51288,13 @@ }, { "constant": false, - "id": 3627, + "id": 3880, "mutability": "mutable", "name": "tokenId", - "nameLocation": "1206:7:15", + "nameLocation": "1815:7:16", "nodeType": "VariableDeclaration", - "scope": 3665, - "src": "1201:12:15", + "scope": 3918, + "src": "1810:12:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -47996,10 +51302,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3626, + "id": 3879, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1201:4:15", + "src": "1810:4:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -48009,13 +51315,13 @@ }, { "constant": false, - "id": 3629, + "id": 3882, "mutability": "mutable", "name": "amount", - "nameLocation": "1228:6:15", + "nameLocation": "1837:6:16", "nodeType": "VariableDeclaration", - "scope": 3665, - "src": "1223:11:15", + "scope": 3918, + "src": "1832:11:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -48023,10 +51329,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3628, + "id": 3881, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1223:4:15", + "src": "1832:4:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -48036,13 +51342,13 @@ }, { "constant": false, - "id": 3631, + "id": 3884, "mutability": "mutable", "name": "data", - "nameLocation": "1257:4:15", + "nameLocation": "1866:4:16", "nodeType": "VariableDeclaration", - "scope": 3665, - "src": "1244:17:15", + "scope": 3918, + "src": "1853:17:16", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -48050,10 +51356,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3630, + "id": 3883, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1244:5:15", + "src": "1853:5:16", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -48062,190 +51368,51 @@ "visibility": "internal" } ], - "src": "1166:101:15" + "src": "1775:101:16" }, "returnParameters": { - "id": 3637, + "id": 3890, "nodeType": "ParameterList", "parameters": [], - "src": "1308:0:15" + "src": "1917:0:16" }, - "scope": 3798, - "src": "1153:349:15", + "scope": 4029, + "src": "1762:350:16", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "baseFunctions": [ - 3875 + 4111 ], "body": { - "id": 3701, + "id": 3947, "nodeType": "Block", - "src": "1636:179:15", + "src": "2279:83:16", "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 3678, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3667, - "src": "1650:7:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "expression": { - "id": 3679, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1661:3:15", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3680, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1665:6:15", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "1661:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1650:21:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3688, - "nodeType": "IfStatement", - "src": "1646:87:15", - "trueBody": { - "id": 3687, - "nodeType": "Block", - "src": "1673:60:15", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "id": 3683, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3667, - "src": "1705:7:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 3684, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3669, - "src": "1714:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3682, - "name": "NotAllowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3845, - "src": "1694:10:15", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) pure" - } - }, - "id": 3685, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1694:28:15", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3686, - "nodeType": "RevertStatement", - "src": "1687:35:15" - } - ] - } - }, { "expression": { "arguments": [ { - "id": 3690, + "id": 3936, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3667, - "src": "1748:7:15", + "referencedDeclaration": 3920, + "src": "2295:7:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 3691, + "id": 3937, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3669, - "src": "1757:7:15", + "referencedDeclaration": 3922, + "src": "2304:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -48253,14 +51420,14 @@ }, { "hexValue": "31", - "id": 3692, + "id": 3938, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1766:1:15", + "src": "2313:1:16", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -48283,18 +51450,18 @@ "typeString": "int_const 1" } ], - "id": 3689, + "id": 3935, "name": "_burn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1332, - "src": "1742:5:15", + "src": "2289:5:16", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (address,uint256,uint256)" } }, - "id": 3693, + "id": 3939, "isConstant": false, "isLValue": false, "isPure": false, @@ -48303,39 +51470,39 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1742:26:15", + "src": "2289:26:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3694, + "id": 3940, "nodeType": "ExpressionStatement", - "src": "1742:26:15" + "src": "2289:26:16" }, { "eventCall": { "arguments": [ { - "id": 3696, + "id": 3942, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3667, - "src": "1788:7:15", + "referencedDeclaration": 3920, + "src": "2335:7:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 3697, + "id": 3943, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3669, - "src": "1797:7:15", + "referencedDeclaration": 3922, + "src": "2344:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -48343,14 +51510,14 @@ }, { "hexValue": "31", - "id": 3698, + "id": 3944, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1806:1:15", + "src": "2353:1:16", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -48373,18 +51540,18 @@ "typeString": "int_const 1" } ], - "id": 3695, + "id": 3941, "name": "Burn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3821, - "src": "1783:4:15", + "referencedDeclaration": 4053, + "src": "2330:4:16", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (address,uint256,uint256)" } }, - "id": 3699, + "id": 3945, "isConstant": false, "isLValue": false, "isPure": false, @@ -48393,77 +51560,119 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1783:25:15", + "src": "2330:25:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3700, + "id": 3946, "nodeType": "EmitStatement", - "src": "1778:30:15" + "src": "2325:30:16" } ] }, "functionSelector": "f5298aca", - "id": 3702, + "id": 3948, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { - "id": 3675, + "id": 3928, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3669, - "src": "1627:7:15", + "referencedDeclaration": 3922, + "src": "2237:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 3676, + "id": 3929, "kind": "modifierInvocation", "modifierName": { - "id": 3674, + "id": 3927, "name": "validTokenId", "nameLocations": [ - "1614:12:15" + "2224:12:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3802, + "src": "2224:12:16" + }, + "nodeType": "ModifierInvocation", + "src": "2224:21:16" + }, + { + "arguments": [ + { + "id": 3931, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3920, + "src": "2261:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3932, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3922, + "src": "2270:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3933, + "kind": "modifierInvocation", + "modifierName": { + "id": 3930, + "name": "onlyTokenOwner", + "nameLocations": [ + "2246:14:16" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 3586, - "src": "1614:12:15" + "referencedDeclaration": 3821, + "src": "2246:14:16" }, "nodeType": "ModifierInvocation", - "src": "1614:21:15" + "src": "2246:32:16" } ], "name": "burn", - "nameLocation": "1517:4:15", + "nameLocation": "2127:4:16", "nodeType": "FunctionDefinition", "overrides": { - "id": 3673, + "id": 3926, "nodeType": "OverrideSpecifier", "overrides": [], - "src": "1605:8:15" + "src": "2215:8:16" }, "parameters": { - "id": 3672, + "id": 3925, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3667, + "id": 3920, "mutability": "mutable", "name": "account", - "nameLocation": "1539:7:15", + "nameLocation": "2149:7:16", "nodeType": "VariableDeclaration", - "scope": 3702, - "src": "1531:15:15", + "scope": 3948, + "src": "2141:15:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -48471,10 +51680,10 @@ "typeString": "address" }, "typeName": { - "id": 3666, + "id": 3919, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1531:7:15", + "src": "2141:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -48485,13 +51694,13 @@ }, { "constant": false, - "id": 3669, + "id": 3922, "mutability": "mutable", "name": "tokenId", - "nameLocation": "1561:7:15", + "nameLocation": "2171:7:16", "nodeType": "VariableDeclaration", - "scope": 3702, - "src": "1556:12:15", + "scope": 3948, + "src": "2166:12:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -48499,10 +51708,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3668, + "id": 3921, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1556:4:15", + "src": "2166:4:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -48512,13 +51721,13 @@ }, { "constant": false, - "id": 3671, + "id": 3924, "mutability": "mutable", "name": "amount", - "nameLocation": "1583:6:15", + "nameLocation": "2193:6:16", "nodeType": "VariableDeclaration", - "scope": 3702, - "src": "1578:11:15", + "scope": 3948, + "src": "2188:11:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -48526,10 +51735,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3670, + "id": 3923, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1578:4:15", + "src": "2188:4:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -48538,635 +51747,423 @@ "visibility": "internal" } ], - "src": "1521:74:15" + "src": "2131:74:16" }, "returnParameters": { - "id": 3677, + "id": 3934, "nodeType": "ParameterList", "parameters": [], - "src": "1636:0:15" + "src": "2279:0:16" }, - "scope": 3798, - "src": "1508:307:15", + "scope": 4029, + "src": "2118:244:16", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "baseFunctions": [ - 3886 + 62, + 607 ], "body": { - "id": 3736, + "id": 3973, "nodeType": "Block", - "src": "1977:324:15", + "src": "2489:142:16", "statements": [ { - "expression": { - "arguments": [ - { + "condition": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { "arguments": [ { - "hexValue": "697066733a2f2f", - "id": 3721, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2068:9:15", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe", - "typeString": "literal_string \"ipfs://\"" - }, - "value": "ipfs://" - }, - { - "baseExpression": { - "id": 3722, - "name": "_scores", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3548, - "src": "2099:7:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 3724, - "indexExpression": { - "id": 3723, - "name": "date", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3704, - "src": "2107:4:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2099:13:15", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - { - "hexValue": "2f", - "id": 3725, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2134:3:15", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527", - "typeString": "literal_string \"/\"" - }, - "value": "/" - }, - { - "arguments": [ - { - "id": 3728, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3706, - "src": "2176:2:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 3726, - "name": "Strings", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2325, - "src": "2159:7:15", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Strings_$2325_$", - "typeString": "type(library Strings)" - } - }, - "id": 3727, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2167:8:15", - "memberName": "toString", - "nodeType": "MemberAccess", - "referencedDeclaration": 2138, - "src": "2159:16:15", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$", - "typeString": "function (uint256) pure returns (string memory)" - } - }, - "id": 3729, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2159:20:15", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "hexValue": "2f", - "id": 3730, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2201:3:15", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527", - "typeString": "literal_string \"/\"" - }, - "value": "/" - }, - { - "id": 3731, - "name": "account", + "id": 3960, + "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3708, - "src": "2226:7:15", + "referencedDeclaration": -28, + "src": "2511:4:16", "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" + "typeIdentifier": "t_contract$_Engagement_$4029", + "typeString": "contract Engagement" } - }, - { - "hexValue": "2e6a736f6e", - "id": 3732, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2255:7:15", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972", - "typeString": "literal_string \".json\"" - }, - "value": ".json" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe", - "typeString": "literal_string \"ipfs://\"" - }, - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - }, - { - "typeIdentifier": "t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527", - "typeString": "literal_string \"/\"" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527", - "typeString": "literal_string \"/\"" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972", - "typeString": "literal_string \".json\"" + "typeIdentifier": "t_contract$_Engagement_$4029", + "typeString": "contract Engagement" } ], - "expression": { - "id": 3719, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "2030:3:15", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3720, + "id": 3959, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "2034:12:15", - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "src": "2030:16:15", + "nodeType": "ElementaryTypeNameExpression", + "src": "2503:7:16", "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3958, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2503:7:16", + "typeDescriptions": {} } }, - "id": 3733, + "id": 3961, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", + "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2030:250:15", + "src": "2503:13:16", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_address", + "typeString": "address" } - ], - "id": 3718, + }, + "id": 3962, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2006:6:15", + "memberLocation": "2517:14:16", + "memberName": "supportsERC165", + "nodeType": "MemberAccess", + "referencedDeclaration": 2380, + "src": "2503:28:16", "typeDescriptions": { - "typeIdentifier": "t_type$_t_string_storage_ptr_$", - "typeString": "type(string storage pointer)" - }, - "typeName": { - "id": 3717, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2006:6:15", - "typeDescriptions": {} + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$attached_to$_t_address_$", + "typeString": "function (address) view returns (bool)" } }, - "id": 3734, + "id": 3963, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "typeConversion", + "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2006:288:15", + "src": "2503:30:16", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "functionReturnParameters": 3716, - "id": 3735, + "id": 3970, + "nodeType": "IfStatement", + "src": "2499:104:16", + "trueBody": { + "id": 3969, + "nodeType": "Block", + "src": "2535:68:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3966, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3950, + "src": "2580:11:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 3964, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "2556:5:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_Engagement_$4029_$", + "typeString": "type(contract super Engagement)" + } + }, + "id": 3965, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2562:17:16", + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 62, + "src": "2556:23:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (bytes4) view returns (bool)" + } + }, + "id": 3967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2556:36:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3957, + "id": 3968, + "nodeType": "Return", + "src": "2549:43:16" + } + ] + } + }, + { + "expression": { + "hexValue": "66616c7365", + "id": 3971, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2619:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 3957, + "id": 3972, "nodeType": "Return", - "src": "1987:307:15" + "src": "2612:12:16" } ] }, - "functionSelector": "c5afac66", - "id": 3737, + "functionSelector": "01ffc9a7", + "id": 3974, "implemented": true, "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 3712, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3706, - "src": "1949:2:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3713, - "kind": "modifierInvocation", - "modifierName": { - "id": 3711, - "name": "validTokenId", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "2377:17:16", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3954, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 3952, + "name": "AccessControl", "nameLocations": [ - "1936:12:15" + "2450:13:16" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 3586, - "src": "1936:12:15" + "referencedDeclaration": 295, + "src": "2450:13:16" }, - "nodeType": "ModifierInvocation", - "src": "1936:16:15" - } - ], - "name": "getScores", - "nameLocation": "1830:9:15", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 3710, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "1927:8:15" + { + "id": 3953, + "name": "ERC1155", + "nameLocations": [ + "2465:7:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1566, + "src": "2465:7:16" + } + ], + "src": "2441:32:16" }, "parameters": { - "id": 3709, + "id": 3951, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3704, + "id": 3950, "mutability": "mutable", - "name": "date", - "nameLocation": "1854:4:15", + "name": "interfaceId", + "nameLocation": "2411:11:16", "nodeType": "VariableDeclaration", - "scope": 3737, - "src": "1849:9:15", + "scope": 3974, + "src": "2404:18:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" }, "typeName": { - "id": 3703, - "name": "uint", + "id": 3949, + "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "1849:4:15", + "src": "2404:6:16", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" } }, "visibility": "internal" - }, + } + ], + "src": "2394:34:16" + }, + "returnParameters": { + "id": 3957, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 3706, + "id": 3956, "mutability": "mutable", - "name": "id", - "nameLocation": "1873:2:15", + "name": "", + "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 3737, - "src": "1868:7:15", + "scope": 3974, + "src": "2483:4:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" }, "typeName": { - "id": 3705, - "name": "uint", + "id": 3955, + "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1868:4:15", + "src": "2483:4:16", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3708, - "mutability": "mutable", - "name": "account", - "nameLocation": "1899:7:15", - "nodeType": "VariableDeclaration", - "scope": 3737, - "src": "1885:21:15", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3707, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1885:6:15", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "1839:73:15" - }, - "returnParameters": { - "id": 3716, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3715, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3737, - "src": "1962:13:15", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3714, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1962:6:15", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, "visibility": "internal" } ], - "src": "1961:15:15" + "src": "2482:6:16" }, - "scope": 3798, - "src": "1821:480:15", + "scope": 4029, + "src": "2368:263:16", "stateMutability": "view", "virtual": false, - "visibility": "external" + "visibility": "public" }, { "baseFunctions": [ - 3893 + 4116 ], "body": { - "id": 3761, + "id": 3995, "nodeType": "Block", - "src": "2423:86:15", + "src": "2720:119:16", "statements": [ { "expression": { - "id": 3752, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 3748, - "name": "_scores", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3548, - "src": "2433:7:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 3750, - "indexExpression": { - "id": 3749, - "name": "date", + "arguments": [ + { + "id": 3983, + "name": "newURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3739, - "src": "2441:4:15", + "referencedDeclaration": 3976, + "src": "2749:6:16", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2433:13:15", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 3751, - "name": "cid", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3982, + "name": "requireNonEmptyURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3741, - "src": "2449:3:15", + "referencedDeclaration": 3792, + "src": "2730:18:16", "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" } }, - "src": "2433:19:15", + "id": 3984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2730:26:16", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 3753, + "id": 3985, "nodeType": "ExpressionStatement", - "src": "2433:19:15" + "src": "2730:26:16" }, { "eventCall": { "arguments": [ { - "expression": { - "id": 3755, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2480:3:15", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3756, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2484:6:15", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "2480:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 3757, - "name": "date", + "id": 3987, + "name": "_tokenURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3739, - "src": "2492:4:15", + "referencedDeclaration": 3735, + "src": "2786:9:16", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" } }, { - "id": 3758, - "name": "cid", + "id": 3988, + "name": "newURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3741, - "src": "2498:3:15", + "referencedDeclaration": 3976, + "src": "2797:6:16", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -49176,30 +52173,26 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], - "id": 3754, - "name": "UpdateScores", + "id": 3986, + "name": "BaseURIUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "2467:12:15", + "referencedDeclaration": 4059, + "src": "2771:14:16", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,string memory)" + "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory,string memory)" } }, - "id": 3759, + "id": 3989, "isConstant": false, "isLValue": false, "isPure": false, @@ -49208,104 +52201,114 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2467:35:15", + "src": "2771:33:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3760, + "id": 3990, "nodeType": "EmitStatement", - "src": "2462:40:15" + "src": "2766:38:16" + }, + { + "expression": { + "id": 3993, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3991, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3735, + "src": "2814:9:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3992, + "name": "newURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3976, + "src": "2826:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "2814:18:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3994, + "nodeType": "ExpressionStatement", + "src": "2814:18:16" } ] }, - "functionSelector": "1c4ce135", - "id": 3762, + "functionSelector": "931688cb", + "id": 3996, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { - "id": 3745, - "name": "PROVIDER_ROLE", + "id": 3979, + "name": "DEFAULT_ADMIN_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3540, - "src": "2408:13:15", + "referencedDeclaration": 29, + "src": "2700:18:16", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 3746, + "id": 3980, "kind": "modifierInvocation", "modifierName": { - "id": 3744, + "id": 3978, "name": "onlyRole", "nameLocations": [ - "2399:8:15" + "2691:8:16" ], "nodeType": "IdentifierPath", "referencedDeclaration": 40, - "src": "2399:8:15" + "src": "2691:8:16" }, "nodeType": "ModifierInvocation", - "src": "2399:23:15" + "src": "2691:28:16" } ], - "name": "updateScores", - "nameLocation": "2316:12:15", + "name": "updateBaseURI", + "nameLocation": "2646:13:16", "nodeType": "FunctionDefinition", - "overrides": { - "id": 3743, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "2390:8:15" - }, "parameters": { - "id": 3742, + "id": 3977, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3739, - "mutability": "mutable", - "name": "date", - "nameLocation": "2343:4:15", - "nodeType": "VariableDeclaration", - "scope": 3762, - "src": "2338:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3738, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2338:4:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3741, + "id": 3976, "mutability": "mutable", - "name": "cid", - "nameLocation": "2371:3:15", + "name": "newURI", + "nameLocation": "2674:6:16", "nodeType": "VariableDeclaration", - "scope": 3762, - "src": "2357:17:15", + "scope": 3996, + "src": "2660:20:16", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -49313,10 +52316,10 @@ "typeString": "string" }, "typeName": { - "id": 3740, + "id": 3975, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2357:6:15", + "src": "2660:6:16", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -49325,148 +52328,25 @@ "visibility": "internal" } ], - "src": "2328:52:15" + "src": "2659:22:16" }, "returnParameters": { - "id": 3747, + "id": 3981, "nodeType": "ParameterList", "parameters": [], - "src": "2423:0:15" + "src": "2720:0:16" }, - "scope": 3798, - "src": "2307:202:15", + "scope": 4029, + "src": "2637:202:16", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "baseFunctions": [ - 62, - 607 - ], - "body": { - "id": 3772, - "nodeType": "Block", - "src": "2636:2:15", - "statements": [] - }, - "functionSelector": "01ffc9a7", - "id": 3773, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nameLocation": "2524:17:15", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 3768, - "nodeType": "OverrideSpecifier", - "overrides": [ - { - "id": 3766, - "name": "AccessControl", - "nameLocations": [ - "2597:13:15" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 295, - "src": "2597:13:15" - }, - { - "id": 3767, - "name": "ERC1155", - "nameLocations": [ - "2612:7:15" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1566, - "src": "2612:7:15" - } - ], - "src": "2588:32:15" - }, - "parameters": { - "id": 3765, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3764, - "mutability": "mutable", - "name": "interfaceId", - "nameLocation": "2558:11:15", - "nodeType": "VariableDeclaration", - "scope": 3773, - "src": "2551:18:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3763, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "2551:6:15", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "visibility": "internal" - } - ], - "src": "2541:34:15" - }, - "returnParameters": { - "id": 3771, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3770, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3773, - "src": "2630:4:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3769, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2630:4:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "2629:6:15" - }, - "scope": 3798, - "src": "2515:123:15", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "baseFunctions": [ - 618 - ], "body": { - "id": 3796, + "id": 4027, "nodeType": "Block", - "src": "2752:135:15", + "src": "3000:174:16", "statements": [ { "expression": { @@ -49474,117 +52354,197 @@ { "arguments": [ { - "hexValue": "697066733a2f2f", - "id": 3788, + "id": 4015, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3735, + "src": "3070:9:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + { + "hexValue": "2f6170692f76312f6e66742f", + "id": 4016, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2822:9:15", + "src": "3080:14:16", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe", - "typeString": "literal_string \"ipfs://\"" + "typeIdentifier": "t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7", + "typeString": "literal_string \"/api/v1/nft/\"" }, - "value": "ipfs://" + "value": "/api/v1/nft/" }, { - "baseExpression": { - "id": 3789, - "name": "_tokenMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3544, - "src": "2833:14:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" + "arguments": [ + { + "id": 4019, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3998, + "src": "3112:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } - }, - "id": 3791, - "indexExpression": { - "id": 3790, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3775, - "src": "2848:7:15", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 4017, + "name": "Strings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2325, + "src": "3095:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Strings_$2325_$", + "typeString": "type(library Strings)" + } + }, + "id": 4018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3103:8:16", + "memberName": "toString", + "nodeType": "MemberAccess", + "referencedDeclaration": 2138, + "src": "3095:16:16", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory)" } }, + "id": 4020, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2833:23:15", + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3095:25:16", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "hexValue": "2f", + "id": 4021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3121:3:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527", + "typeString": "literal_string \"/\"" + }, + "value": "/" + }, + { + "id": 4022, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4000, + "src": "3125:7:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" } }, { - "hexValue": "2e6a736f6e", - "id": 3792, + "hexValue": "2f72657075746174696f6e2d73636f7265", + "id": 4023, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2858:7:15", + "src": "3133:19:16", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972", - "typeString": "literal_string \".json\"" + "typeIdentifier": "t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55", + "typeString": "literal_string \"/reputation-score\"" }, - "value": ".json" + "value": "/reputation-score" } ], "expression": { "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe", - "typeString": "literal_string \"ipfs://\"" - }, { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" }, { - "typeIdentifier": "t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972", - "typeString": "literal_string \".json\"" + "typeIdentifier": "t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7", + "typeString": "literal_string \"/api/v1/nft/\"" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527", + "typeString": "literal_string \"/\"" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55", + "typeString": "literal_string \"/reputation-score\"" } ], "expression": { - "id": 3786, + "id": 4013, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, - "src": "2805:3:15", + "src": "3053:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 3787, + "id": 4014, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "2809:12:15", + "memberLocation": "3057:12:16", "memberName": "encodePacked", "nodeType": "MemberAccess", - "src": "2805:16:15", + "src": "3053:16:16", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 3793, + "id": 4024, "isConstant": false, "isLValue": false, "isPure": false, @@ -49593,7 +52553,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2805:61:15", + "src": "3053:100:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -49608,26 +52568,26 @@ "typeString": "bytes memory" } ], - "id": 3785, + "id": 4012, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2781:6:15", + "src": "3029:6:16", "typeDescriptions": { "typeIdentifier": "t_type$_t_string_storage_ptr_$", "typeString": "type(string storage pointer)" }, "typeName": { - "id": 3784, + "id": 4011, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2781:6:15", + "src": "3029:6:16", "typeDescriptions": {} } }, - "id": 3794, + "id": 4025, "isConstant": false, "isLValue": false, "isPure": false, @@ -49636,78 +52596,102 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2781:99:15", + "src": "3029:138:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "functionReturnParameters": 3783, - "id": 3795, + "functionReturnParameters": 4010, + "id": 4026, "nodeType": "Return", - "src": "2762:118:15" + "src": "3010:157:16" } ] }, - "functionSelector": "0e89341c", - "id": 3797, + "functionSelector": "76b676f1", + "id": 4028, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { - "id": 3779, + "id": 4003, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3775, - "src": "2719:7:15", + "referencedDeclaration": 3998, + "src": "2942:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 3780, + "id": 4004, "kind": "modifierInvocation", "modifierName": { - "id": 3778, + "id": 4002, "name": "validTokenId", "nameLocations": [ - "2706:12:15" + "2929:12:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3802, + "src": "2929:12:16" + }, + "nodeType": "ModifierInvocation", + "src": "2929:21:16" + }, + { + "arguments": [ + { + "id": 4006, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4000, + "src": "2967:7:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "id": 4007, + "kind": "modifierInvocation", + "modifierName": { + "id": 4005, + "name": "nonEmptyAccount", + "nameLocations": [ + "2951:15:16" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 3586, - "src": "2706:12:15" + "referencedDeclaration": 3840, + "src": "2951:15:16" }, "nodeType": "ModifierInvocation", - "src": "2706:21:15" + "src": "2951:24:16" } ], "name": "uri", - "nameLocation": "2653:3:15", + "nameLocation": "2854:3:16", "nodeType": "FunctionDefinition", - "overrides": { - "id": 3777, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "2697:8:15" - }, "parameters": { - "id": 3776, + "id": 4001, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3775, + "id": 3998, "mutability": "mutable", "name": "tokenId", - "nameLocation": "2671:7:15", + "nameLocation": "2872:7:16", "nodeType": "VariableDeclaration", - "scope": 3797, - "src": "2666:12:15", + "scope": 4028, + "src": "2867:12:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -49715,33 +52699,60 @@ "typeString": "uint256" }, "typeName": { - "id": 3774, + "id": 3997, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2666:4:15", + "src": "2867:4:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" + }, + { + "constant": false, + "id": 4000, + "mutability": "mutable", + "name": "account", + "nameLocation": "2903:7:16", + "nodeType": "VariableDeclaration", + "scope": 4028, + "src": "2889:21:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3999, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2889:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" } ], - "src": "2656:28:15" + "src": "2857:59:16" }, "returnParameters": { - "id": 3783, + "id": 4010, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3782, + "id": 4009, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 3797, - "src": "2737:13:15", + "scope": 4028, + "src": "2985:13:16", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -49749,10 +52760,10 @@ "typeString": "string" }, "typeName": { - "id": 3781, + "id": 4008, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2737:6:15", + "src": "2985:6:16", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -49761,17 +52772,17 @@ "visibility": "internal" } ], - "src": "2736:15:15" + "src": "2984:15:16" }, - "scope": 3798, - "src": "2644:243:15", + "scope": 4029, + "src": "2845:329:16", "stateMutability": "view", "virtual": false, "visibility": "public" } ], - "scope": 3799, - "src": "265:2624:15", + "scope": 4030, + "src": "336:2840:16", "usedErrors": [ 305, 308, @@ -49782,9 +52793,11 @@ 502, 507, 514, - 3833, - 3839, - 3845 + 4063, + 4069, + 4075, + 4079, + 4083 ], "usedEvents": [ 317, @@ -49794,28 +52807,39 @@ 1601, 1610, 1617, - 3805, - 3813, - 3821, - 3829 + 4037, + 4045, + 4053, + 4059 ] } ], - "src": "39:2851:15" + "src": "39:3138:16" }, - "id": 15 + "id": 16 }, "contracts/IEngagement.sol": { "ast": { "absolutePath": "contracts/IEngagement.sol", "exportedSymbols": { "IEngagement": [ - 3894 + 4117 ] }, - "id": 3895, + "id": 4118, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ + { + "id": 4031, + "literals": [ + "solidity", + "0.8", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "39:23:17" + }, { "abstract": false, "baseContracts": [], @@ -49823,35 +52847,35 @@ "contractDependencies": [], "contractKind": "interface", "fullyImplemented": false, - "id": 3894, + "id": 4117, "linearizedBaseContracts": [ - 3894 + 4117 ], "name": "IEngagement", - "nameLocation": "10:11:16", + "nameLocation": "74:11:17", "nodeType": "ContractDefinition", "nodes": [ { "anonymous": false, "eventSelector": "c65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c16", - "id": 3805, + "id": 4037, "name": "Issue", - "nameLocation": "34:5:16", + "nameLocation": "98:5:17", "nodeType": "EventDefinition", "parameters": { - "id": 3804, + "id": 4036, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3801, + "id": 4033, "indexed": true, "mutability": "mutable", "name": "account", - "nameLocation": "56:7:16", + "nameLocation": "120:7:17", "nodeType": "VariableDeclaration", - "scope": 3805, - "src": "40:23:16", + "scope": 4037, + "src": "104:23:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -49859,10 +52883,10 @@ "typeString": "address" }, "typeName": { - "id": 3800, + "id": 4032, "name": "address", "nodeType": "ElementaryTypeName", - "src": "40:7:16", + "src": "104:7:17", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -49873,14 +52897,14 @@ }, { "constant": false, - "id": 3803, + "id": 4035, "indexed": true, "mutability": "mutable", "name": "tokenId", - "nameLocation": "78:7:16", + "nameLocation": "142:7:17", "nodeType": "VariableDeclaration", - "scope": 3805, - "src": "65:20:16", + "scope": 4037, + "src": "129:20:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -49888,10 +52912,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3802, + "id": 4034, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "65:4:16", + "src": "129:4:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -49900,31 +52924,31 @@ "visibility": "internal" } ], - "src": "39:47:16" + "src": "103:47:17" }, - "src": "28:59:16" + "src": "92:59:17" }, { "anonymous": false, "eventSelector": "4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f", - "id": 3813, + "id": 4045, "name": "Mint", - "nameLocation": "98:4:16", + "nameLocation": "162:4:17", "nodeType": "EventDefinition", "parameters": { - "id": 3812, + "id": 4044, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3807, + "id": 4039, "indexed": true, "mutability": "mutable", "name": "account", - "nameLocation": "119:7:16", + "nameLocation": "183:7:17", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "103:23:16", + "scope": 4045, + "src": "167:23:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -49932,10 +52956,10 @@ "typeString": "address" }, "typeName": { - "id": 3806, + "id": 4038, "name": "address", "nodeType": "ElementaryTypeName", - "src": "103:7:16", + "src": "167:7:17", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -49946,14 +52970,14 @@ }, { "constant": false, - "id": 3809, + "id": 4041, "indexed": true, "mutability": "mutable", "name": "tokenId", - "nameLocation": "141:7:16", + "nameLocation": "205:7:17", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "128:20:16", + "scope": 4045, + "src": "192:20:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -49961,10 +52985,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3808, + "id": 4040, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "128:4:16", + "src": "192:4:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -49974,14 +52998,14 @@ }, { "constant": false, - "id": 3811, + "id": 4043, "indexed": false, "mutability": "mutable", "name": "amount", - "nameLocation": "155:6:16", + "nameLocation": "219:6:17", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "150:11:16", + "scope": 4045, + "src": "214:11:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -49989,10 +53013,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3810, + "id": 4042, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "150:4:16", + "src": "214:4:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -50001,31 +53025,31 @@ "visibility": "internal" } ], - "src": "102:60:16" + "src": "166:60:17" }, - "src": "92:71:16" + "src": "156:71:17" }, { "anonymous": false, "eventSelector": "49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a", - "id": 3821, + "id": 4053, "name": "Burn", - "nameLocation": "174:4:16", + "nameLocation": "238:4:17", "nodeType": "EventDefinition", "parameters": { - "id": 3820, + "id": 4052, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3815, + "id": 4047, "indexed": true, "mutability": "mutable", "name": "account", - "nameLocation": "195:7:16", + "nameLocation": "259:7:17", "nodeType": "VariableDeclaration", - "scope": 3821, - "src": "179:23:16", + "scope": 4053, + "src": "243:23:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50033,10 +53057,10 @@ "typeString": "address" }, "typeName": { - "id": 3814, + "id": 4046, "name": "address", "nodeType": "ElementaryTypeName", - "src": "179:7:16", + "src": "243:7:17", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -50047,14 +53071,14 @@ }, { "constant": false, - "id": 3817, + "id": 4049, "indexed": true, "mutability": "mutable", "name": "tokenId", - "nameLocation": "217:7:16", + "nameLocation": "281:7:17", "nodeType": "VariableDeclaration", - "scope": 3821, - "src": "204:20:16", + "scope": 4053, + "src": "268:20:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50062,10 +53086,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3816, + "id": 4048, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "204:4:16", + "src": "268:4:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -50075,14 +53099,14 @@ }, { "constant": false, - "id": 3819, + "id": 4051, "indexed": false, "mutability": "mutable", "name": "amount", - "nameLocation": "231:6:16", + "nameLocation": "295:6:17", "nodeType": "VariableDeclaration", - "scope": 3821, - "src": "226:11:16", + "scope": 4053, + "src": "290:11:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50090,10 +53114,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3818, + "id": 4050, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "226:4:16", + "src": "290:4:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -50102,88 +53126,59 @@ "visibility": "internal" } ], - "src": "178:60:16" + "src": "242:60:17" }, - "src": "168:71:16" + "src": "232:71:17" }, { "anonymous": false, - "eventSelector": "ee5e19404a9c880f5e862aeeedfa8f4b4b427864327c17888eb6a34d549e5a55", - "id": 3829, - "name": "UpdateScores", - "nameLocation": "250:12:16", + "eventSelector": "309b29ded109b9e28fb9885757b3e0096eb75c51d23aa4635d68bcd569f6adc1", + "id": 4059, + "name": "BaseURIUpdated", + "nameLocation": "314:14:17", "nodeType": "EventDefinition", "parameters": { - "id": 3828, + "id": 4058, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3823, - "indexed": true, - "mutability": "mutable", - "name": "account", - "nameLocation": "279:7:16", - "nodeType": "VariableDeclaration", - "scope": 3829, - "src": "263:23:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3822, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "263:7:16", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3825, - "indexed": true, + "id": 4055, + "indexed": false, "mutability": "mutable", - "name": "date", - "nameLocation": "301:4:16", + "name": "oldURI", + "nameLocation": "336:6:17", "nodeType": "VariableDeclaration", - "scope": 3829, - "src": "288:17:16", + "scope": 4059, + "src": "329:13:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" }, "typeName": { - "id": 3824, - "name": "uint", + "id": 4054, + "name": "string", "nodeType": "ElementaryTypeName", - "src": "288:4:16", + "src": "329:6:17", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, "visibility": "internal" }, { "constant": false, - "id": 3827, + "id": 4057, "indexed": false, "mutability": "mutable", - "name": "cid", - "nameLocation": "314:3:16", + "name": "newURI", + "nameLocation": "351:6:17", "nodeType": "VariableDeclaration", - "scope": 3829, - "src": "307:10:16", + "scope": 4059, + "src": "344:13:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50191,10 +53186,10 @@ "typeString": "string" }, "typeName": { - "id": 3826, + "id": 4056, "name": "string", "nodeType": "ElementaryTypeName", - "src": "307:6:16", + "src": "344:6:17", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -50203,29 +53198,29 @@ "visibility": "internal" } ], - "src": "262:56:16" + "src": "328:30:17" }, - "src": "244:75:16" + "src": "308:51:17" }, { "errorSelector": "c80a970c", - "id": 3833, + "id": 4063, "name": "NotFound", - "nameLocation": "331:8:16", + "nameLocation": "371:8:17", "nodeType": "ErrorDefinition", "parameters": { - "id": 3832, + "id": 4062, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3831, + "id": 4061, "mutability": "mutable", "name": "tokenId", - "nameLocation": "345:7:16", + "nameLocation": "385:7:17", "nodeType": "VariableDeclaration", - "scope": 3833, - "src": "340:12:16", + "scope": 4063, + "src": "380:12:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50233,10 +53228,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3830, + "id": 4060, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "340:4:16", + "src": "380:4:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -50245,29 +53240,29 @@ "visibility": "internal" } ], - "src": "339:14:16" + "src": "379:14:17" }, - "src": "325:29:16" + "src": "365:29:17" }, { "errorSelector": "788d2556", - "id": 3839, + "id": 4069, "name": "MintLimit", - "nameLocation": "365:9:16", + "nameLocation": "405:9:17", "nodeType": "ErrorDefinition", "parameters": { - "id": 3838, + "id": 4068, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3835, + "id": 4065, "mutability": "mutable", "name": "account", - "nameLocation": "383:7:16", + "nameLocation": "423:7:17", "nodeType": "VariableDeclaration", - "scope": 3839, - "src": "375:15:16", + "scope": 4069, + "src": "415:15:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50275,10 +53270,10 @@ "typeString": "address" }, "typeName": { - "id": 3834, + "id": 4064, "name": "address", "nodeType": "ElementaryTypeName", - "src": "375:7:16", + "src": "415:7:17", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -50289,13 +53284,13 @@ }, { "constant": false, - "id": 3837, + "id": 4067, "mutability": "mutable", "name": "tokenId", - "nameLocation": "397:7:16", + "nameLocation": "437:7:17", "nodeType": "VariableDeclaration", - "scope": 3839, - "src": "392:12:16", + "scope": 4069, + "src": "432:12:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50303,10 +53298,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3836, + "id": 4066, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "392:4:16", + "src": "432:4:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -50315,29 +53310,29 @@ "visibility": "internal" } ], - "src": "374:31:16" + "src": "414:31:17" }, - "src": "359:47:16" + "src": "399:47:17" }, { "errorSelector": "8626cc03", - "id": 3845, + "id": 4075, "name": "NotAllowed", - "nameLocation": "417:10:16", + "nameLocation": "457:10:17", "nodeType": "ErrorDefinition", "parameters": { - "id": 3844, + "id": 4074, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3841, + "id": 4071, "mutability": "mutable", "name": "account", - "nameLocation": "436:7:16", + "nameLocation": "476:7:17", "nodeType": "VariableDeclaration", - "scope": 3845, - "src": "428:15:16", + "scope": 4075, + "src": "468:15:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50345,10 +53340,10 @@ "typeString": "address" }, "typeName": { - "id": 3840, + "id": 4070, "name": "address", "nodeType": "ElementaryTypeName", - "src": "428:7:16", + "src": "468:7:17", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -50359,13 +53354,13 @@ }, { "constant": false, - "id": 3843, + "id": 4073, "mutability": "mutable", "name": "tokenId", - "nameLocation": "450:7:16", + "nameLocation": "490:7:17", "nodeType": "VariableDeclaration", - "scope": 3845, - "src": "445:12:16", + "scope": 4075, + "src": "485:12:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50373,10 +53368,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3842, + "id": 4072, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "445:4:16", + "src": "485:4:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -50385,38 +53380,122 @@ "visibility": "internal" } ], - "src": "427:31:16" + "src": "467:31:17" }, - "src": "411:48:16" + "src": "451:48:17" }, { - "functionSelector": "61bc221a", - "id": 3850, - "implemented": false, + "errorSelector": "1897cf66", + "id": 4079, + "name": "URIEmpty", + "nameLocation": "510:8:17", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 4078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4077, + "mutability": "mutable", + "name": "message", + "nameLocation": "526:7:17", + "nodeType": "VariableDeclaration", + "scope": 4079, + "src": "519:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4076, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "519:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "518:16:17" + }, + "src": "504:31:17" + }, + { + "errorSelector": "c29f9db3", + "id": 4083, + "name": "EmptyAccountNotAllowed", + "nameLocation": "546:22:17", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 4082, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4081, + "mutability": "mutable", + "name": "message", + "nameLocation": "576:7:17", + "nodeType": "VariableDeclaration", + "scope": 4083, + "src": "569:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4080, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "569:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "568:16:17" + }, + "src": "540:45:17" + }, + { + "functionSelector": "61bc221a", + "id": 4088, + "implemented": false, "kind": "function", "modifiers": [], "name": "counter", - "nameLocation": "474:7:16", + "nameLocation": "600:7:17", "nodeType": "FunctionDefinition", "parameters": { - "id": 3846, + "id": 4084, "nodeType": "ParameterList", "parameters": [], - "src": "481:2:16" + "src": "607:2:17" }, "returnParameters": { - "id": 3849, + "id": 4087, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3848, + "id": 4086, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 3850, - "src": "507:4:16", + "scope": 4088, + "src": "633:4:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50424,10 +53503,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3847, + "id": 4085, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "507:4:16", + "src": "633:4:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -50436,91 +53515,63 @@ "visibility": "internal" } ], - "src": "506:6:16" + "src": "632:6:17" }, - "scope": 3894, - "src": "465:48:16", + "scope": 4117, + "src": "591:48:17", "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "functionSelector": "3cad9b0d", - "id": 3855, + "functionSelector": "d383f646", + "id": 4091, "implemented": false, "kind": "function", "modifiers": [], "name": "issue", - "nameLocation": "528:5:16", + "nameLocation": "654:5:17", "nodeType": "FunctionDefinition", "parameters": { - "id": 3853, + "id": 4089, "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3852, - "mutability": "mutable", - "name": "hash", - "nameLocation": "548:4:16", - "nodeType": "VariableDeclaration", - "scope": 3855, - "src": "534:18:16", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3851, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "534:6:16", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "533:20:16" + "parameters": [], + "src": "659:2:17" }, "returnParameters": { - "id": 3854, + "id": 4090, "nodeType": "ParameterList", "parameters": [], - "src": "562:0:16" + "src": "670:0:17" }, - "scope": 3894, - "src": "519:44:16", + "scope": 4117, + "src": "645:26:17", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "functionSelector": "731133e9", - "id": 3866, + "id": 4102, "implemented": false, "kind": "function", "modifiers": [], "name": "mint", - "nameLocation": "578:4:16", + "nameLocation": "686:4:17", "nodeType": "FunctionDefinition", "parameters": { - "id": 3864, + "id": 4100, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3857, + "id": 4093, "mutability": "mutable", "name": "account", - "nameLocation": "600:7:16", + "nameLocation": "708:7:17", "nodeType": "VariableDeclaration", - "scope": 3866, - "src": "592:15:16", + "scope": 4102, + "src": "700:15:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50528,10 +53579,10 @@ "typeString": "address" }, "typeName": { - "id": 3856, + "id": 4092, "name": "address", "nodeType": "ElementaryTypeName", - "src": "592:7:16", + "src": "700:7:17", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -50542,13 +53593,13 @@ }, { "constant": false, - "id": 3859, + "id": 4095, "mutability": "mutable", "name": "tokenId", - "nameLocation": "622:7:16", + "nameLocation": "730:7:17", "nodeType": "VariableDeclaration", - "scope": 3866, - "src": "617:12:16", + "scope": 4102, + "src": "725:12:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50556,10 +53607,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3858, + "id": 4094, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "617:4:16", + "src": "725:4:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -50569,13 +53620,13 @@ }, { "constant": false, - "id": 3861, + "id": 4097, "mutability": "mutable", "name": "amount", - "nameLocation": "644:6:16", + "nameLocation": "752:6:17", "nodeType": "VariableDeclaration", - "scope": 3866, - "src": "639:11:16", + "scope": 4102, + "src": "747:11:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50583,10 +53634,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3860, + "id": 4096, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "639:4:16", + "src": "747:4:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -50596,13 +53647,13 @@ }, { "constant": false, - "id": 3863, + "id": 4099, "mutability": "mutable", "name": "data", - "nameLocation": "673:4:16", + "nameLocation": "781:4:17", "nodeType": "VariableDeclaration", - "scope": 3866, - "src": "660:17:16", + "scope": 4102, + "src": "768:17:17", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -50610,10 +53661,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3862, + "id": 4098, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "660:5:16", + "src": "768:5:17", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -50622,42 +53673,42 @@ "visibility": "internal" } ], - "src": "582:101:16" + "src": "690:101:17" }, "returnParameters": { - "id": 3865, + "id": 4101, "nodeType": "ParameterList", "parameters": [], - "src": "692:0:16" + "src": "800:0:17" }, - "scope": 3894, - "src": "569:124:16", + "scope": 4117, + "src": "677:124:17", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "functionSelector": "f5298aca", - "id": 3875, + "id": 4111, "implemented": false, "kind": "function", "modifiers": [], "name": "burn", - "nameLocation": "708:4:16", + "nameLocation": "816:4:17", "nodeType": "FunctionDefinition", "parameters": { - "id": 3873, + "id": 4109, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3868, + "id": 4104, "mutability": "mutable", "name": "account", - "nameLocation": "721:7:16", + "nameLocation": "829:7:17", "nodeType": "VariableDeclaration", - "scope": 3875, - "src": "713:15:16", + "scope": 4111, + "src": "821:15:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50665,10 +53716,10 @@ "typeString": "address" }, "typeName": { - "id": 3867, + "id": 4103, "name": "address", "nodeType": "ElementaryTypeName", - "src": "713:7:16", + "src": "821:7:17", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -50679,13 +53730,13 @@ }, { "constant": false, - "id": 3870, + "id": 4106, "mutability": "mutable", "name": "tokenId", - "nameLocation": "735:7:16", + "nameLocation": "843:7:17", "nodeType": "VariableDeclaration", - "scope": 3875, - "src": "730:12:16", + "scope": 4111, + "src": "838:12:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50693,10 +53744,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3869, + "id": 4105, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "730:4:16", + "src": "838:4:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -50706,13 +53757,13 @@ }, { "constant": false, - "id": 3872, + "id": 4108, "mutability": "mutable", "name": "amount", - "nameLocation": "749:6:16", + "nameLocation": "857:6:17", "nodeType": "VariableDeclaration", - "scope": 3875, - "src": "744:11:16", + "scope": 4111, + "src": "852:11:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50720,10 +53771,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3871, + "id": 4107, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "744:4:16", + "src": "852:4:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -50732,206 +53783,42 @@ "visibility": "internal" } ], - "src": "712:44:16" + "src": "820:44:17" }, "returnParameters": { - "id": 3874, + "id": 4110, "nodeType": "ParameterList", "parameters": [], - "src": "765:0:16" + "src": "873:0:17" }, - "scope": 3894, - "src": "699:67:16", + "scope": 4117, + "src": "807:67:17", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "functionSelector": "c5afac66", - "id": 3886, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getScores", - "nameLocation": "781:9:16", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3882, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3877, - "mutability": "mutable", - "name": "date", - "nameLocation": "805:4:16", - "nodeType": "VariableDeclaration", - "scope": 3886, - "src": "800:9:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3876, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "800:4:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3879, - "mutability": "mutable", - "name": "id", - "nameLocation": "824:2:16", - "nodeType": "VariableDeclaration", - "scope": 3886, - "src": "819:7:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3878, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "819:4:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3881, - "mutability": "mutable", - "name": "account", - "nameLocation": "850:7:16", - "nodeType": "VariableDeclaration", - "scope": 3886, - "src": "836:21:16", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3880, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "836:6:16", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "790:73:16" - }, - "returnParameters": { - "id": 3885, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3884, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3886, - "src": "887:13:16", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3883, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "887:6:16", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "886:15:16" - }, - "scope": 3894, - "src": "772:130:16", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "1c4ce135", - "id": 3893, + "functionSelector": "931688cb", + "id": 4116, "implemented": false, "kind": "function", "modifiers": [], - "name": "updateScores", - "nameLocation": "917:12:16", + "name": "updateBaseURI", + "nameLocation": "889:13:17", "nodeType": "FunctionDefinition", "parameters": { - "id": 3891, + "id": 4114, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3888, - "mutability": "mutable", - "name": "date", - "nameLocation": "935:4:16", - "nodeType": "VariableDeclaration", - "scope": 3893, - "src": "930:9:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3887, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "930:4:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3890, + "id": 4113, "mutability": "mutable", - "name": "cid", - "nameLocation": "955:3:16", + "name": "newURI", + "nameLocation": "917:6:17", "nodeType": "VariableDeclaration", - "scope": 3893, - "src": "941:17:16", + "scope": 4116, + "src": "903:20:17", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -50939,10 +53826,10 @@ "typeString": "string" }, "typeName": { - "id": 3889, + "id": 4112, "name": "string", "nodeType": "ElementaryTypeName", - "src": "941:6:16", + "src": "903:6:17", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -50951,1241 +53838,181 @@ "visibility": "internal" } ], - "src": "929:30:16" + "src": "902:22:17" }, "returnParameters": { - "id": 3892, + "id": 4115, "nodeType": "ParameterList", "parameters": [], - "src": "968:0:16" + "src": "933:0:17" }, - "scope": 3894, - "src": "908:61:16", + "scope": 4117, + "src": "880:54:17", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 3895, - "src": "0:971:16", + "scope": 4118, + "src": "64:872:17", "usedErrors": [ - 3833, - 3839, - 3845 + 4063, + 4069, + 4075, + 4079, + 4083 ], "usedEvents": [ - 3805, - 3813, - 3821, - 3829 + 4037, + 4045, + 4053, + 4059 ] } ], - "src": "0:972:16" + "src": "39:898:17" }, - "id": 16 - }, - "contracts/Lock.sol": { - "ast": { - "absolutePath": "contracts/Lock.sol", - "exportedSymbols": { - "Lock": [ - 3973 - ] - }, - "id": 3974, - "license": "UNLICENSED", - "nodeType": "SourceUnit", - "nodes": [ + "id": 17 + } + }, + "contracts": { + "@openzeppelin/contracts/access/AccessControl.sol": { + "AccessControl": { + "abi": [ { - "id": 3896, - "literals": [ - "solidity", - "^", - "0.8", - ".24" + "inputs": [], + "name": "AccessControlBadConfirmation", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "neededRole", + "type": "bytes32" + } ], - "nodeType": "PragmaDirective", - "src": "39:24:17" + "name": "AccessControlUnauthorizedAccount", + "type": "error" }, { - "abstract": false, - "baseContracts": [], - "canonicalName": "Lock", - "contractDependencies": [], - "contractKind": "contract", - "fullyImplemented": true, - "id": 3973, - "linearizedBaseContracts": [ - 3973 + "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": "Lock", - "nameLocation": "150:4:17", - "nodeType": "ContractDefinition", - "nodes": [ + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { - "constant": false, - "functionSelector": "251c1aa3", - "id": 3898, - "mutability": "mutable", - "name": "unlockTime", - "nameLocation": "173:10:17", - "nodeType": "VariableDeclaration", - "scope": 3973, - "src": "161:22:17", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3897, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "161:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "public" + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { - "constant": false, - "functionSelector": "8da5cb5b", - "id": 3900, - "mutability": "mutable", - "name": "owner", - "nameLocation": "212:5:17", - "nodeType": "VariableDeclaration", - "scope": 3973, - "src": "189:28:17", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 3899, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "189:15:17", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "public" + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" }, { - "anonymous": false, - "eventSelector": "bf2ed60bd5b5965d685680c01195c9514e4382e28e3a5a2d2d5244bf59411b93", - "id": 3906, - "name": "Withdrawal", - "nameLocation": "230:10:17", - "nodeType": "EventDefinition", - "parameters": { - "id": 3905, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3902, - "indexed": false, - "mutability": "mutable", - "name": "amount", - "nameLocation": "246:6:17", - "nodeType": "VariableDeclaration", - "scope": 3906, - "src": "241:11:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3901, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "241:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3904, - "indexed": false, - "mutability": "mutable", - "name": "when", - "nameLocation": "259:4:17", - "nodeType": "VariableDeclaration", - "scope": 3906, - "src": "254:9:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3903, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "254:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "240:24:17" - }, - "src": "224:41:17" + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { - "body": { - "id": 3931, - "nodeType": "Block", - "src": "309:200:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3915, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 3912, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "340:5:17", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 3913, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "346:9:17", - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "340:15:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 3914, - "name": "_unlockTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3908, - "src": "358:11:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "340:29:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "556e6c6f636b2074696d652073686f756c6420626520696e2074686520667574757265", - "id": 3916, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "383:37:17", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413", - "typeString": "literal_string \"Unlock time should be in the future\"" - }, - "value": "Unlock time should be in the future" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413", - "typeString": "literal_string \"Unlock time should be in the future\"" - } - ], - "id": 3911, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "319:7:17", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3917, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "319:111:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3918, - "nodeType": "ExpressionStatement", - "src": "319:111:17" - }, - { - "expression": { - "id": 3921, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 3919, - "name": "unlockTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3898, - "src": "441:10:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 3920, - "name": "_unlockTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3908, - "src": "454:11:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "441:24:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3922, - "nodeType": "ExpressionStatement", - "src": "441:24:17" - }, - { - "expression": { - "id": 3929, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 3923, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "475:5:17", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "expression": { - "id": 3926, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "491:3:17", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "495:6:17", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "491:10:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3925, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "483:8:17", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_payable_$", - "typeString": "type(address payable)" - }, - "typeName": { - "id": 3924, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "483:8:17", - "stateMutability": "payable", - "typeDescriptions": {} - } - }, - "id": 3928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "483:19:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "475:27:17", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 3930, - "nodeType": "ExpressionStatement", - "src": "475:27:17" - } - ] - }, - "id": 3932, - "implemented": true, - "kind": "constructor", - "modifiers": [], + "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": "", - "nameLocation": "-1:-1:-1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3909, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3908, - "mutability": "mutable", - "name": "_unlockTime", - "nameLocation": "288:11:17", - "nodeType": "VariableDeclaration", - "scope": 3932, - "src": "283:16:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3907, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "283:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "282:18:17" - }, - "returnParameters": { - "id": 3910, - "nodeType": "ParameterList", - "parameters": [], - "src": "309:0:17" - }, - "scope": 3973, - "src": "271:238:17", - "stateMutability": "payable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 3971, - "nodeType": "Block", - "src": "542:463:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3939, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 3936, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "766:5:17", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 3937, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "772:9:17", - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "766:15:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "id": 3938, - "name": "unlockTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3898, - "src": "785:10:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "766:29:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "596f752063616e277420776974686472617720796574", - "id": 3940, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "797:24:17", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8", - "typeString": "literal_string \"You can't withdraw yet\"" - }, - "value": "You can't withdraw yet" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8", - "typeString": "literal_string \"You can't withdraw yet\"" - } - ], - "id": 3935, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "758:7:17", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3941, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "758:64:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3942, - "nodeType": "ExpressionStatement", - "src": "758:64:17" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3947, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 3944, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "840:3:17", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3945, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "844:6:17", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "840:10:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 3946, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "854:5:17", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "840:19:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "596f75206172656e277420746865206f776e6572", - "id": 3948, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "861:22:17", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a", - "typeString": "literal_string \"You aren't the owner\"" - }, - "value": "You aren't the owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a", - "typeString": "literal_string \"You aren't the owner\"" - } - ], - "id": 3943, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "832:7:17", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "832:52:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3950, - "nodeType": "ExpressionStatement", - "src": "832:52:17" - }, - { - "eventCall": { - "arguments": [ - { - "expression": { - "arguments": [ - { - "id": 3954, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "919:4:17", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Lock_$3973", - "typeString": "contract Lock" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Lock_$3973", - "typeString": "contract Lock" - } - ], - "id": 3953, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "911:7:17", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 3952, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "911:7:17", - "typeDescriptions": {} - } - }, - "id": 3955, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "911:13:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3956, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "925:7:17", - "memberName": "balance", - "nodeType": "MemberAccess", - "src": "911:21:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 3957, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "934:5:17", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 3958, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "940:9:17", - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "934:15:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3951, - "name": "Withdrawal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3906, - "src": "900:10:17", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" - } - }, - "id": 3959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "900:50:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3960, - "nodeType": "EmitStatement", - "src": "895:55:17" - }, - { - "expression": { - "arguments": [ - { - "expression": { - "arguments": [ - { - "id": 3966, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "984:4:17", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Lock_$3973", - "typeString": "contract Lock" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Lock_$3973", - "typeString": "contract Lock" - } - ], - "id": 3965, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "976:7:17", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 3964, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "976:7:17", - "typeDescriptions": {} - } - }, - "id": 3967, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "976:13:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3968, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "990:7:17", - "memberName": "balance", - "nodeType": "MemberAccess", - "src": "976:21:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 3961, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "961:5:17", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 3963, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "967:8:17", - "memberName": "transfer", - "nodeType": "MemberAccess", - "src": "961:14:17", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 3969, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "961:37:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3970, - "nodeType": "ExpressionStatement", - "src": "961:37:17" - } - ] - }, - "functionSelector": "3ccfd60b", - "id": 3972, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "withdraw", - "nameLocation": "524:8:17", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3933, - "nodeType": "ParameterList", - "parameters": [], - "src": "532:2:17" - }, - "returnParameters": { - "id": 3934, - "nodeType": "ParameterList", - "parameters": [], - "src": "542:0:17" - }, - "scope": 3973, - "src": "515:490:17", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - } - ], - "scope": 3974, - "src": "141:866:17", - "usedErrors": [], - "usedEvents": [ - 3906 - ] - } - ], - "src": "39:969:17" - }, - "id": 17 - } - }, - "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" + "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", @@ -52306,7 +54133,7 @@ "supportsInterface(bytes4)": "01ffc9a7" } }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module that allows children to implement role-based access control mechanisms. This is a lightweight version that doesn't allow enumerating role members except through off-chain means by accessing the contract event logs. Some applications may benefit from on-chain enumerability, for those cases see {AccessControlEnumerable}. Roles are referred to by their `bytes32` identifier. These should be exposed in the external API and be unique. The best way to achieve this is by using `public constant` hash digests: ```solidity bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\"); ``` Roles can be used to represent a set of permissions. To restrict access to a function call, use {hasRole}: ```solidity function foo() public { require(hasRole(MY_ROLE, msg.sender)); ... } ``` Roles can be granted and revoked dynamically via the {grantRole} and {revokeRole} functions. Each role has an associated admin role, and only accounts that have a role's admin role can call {grantRole} and {revokeRole}. By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means that only accounts with this role will be able to grant or revoke other roles. More complex role relationships can be created by using {_setRoleAdmin}. WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to grant and revoke this role. Extra precautions should be taken to secure accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules} to enforce additional security measures for this role.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/AccessControl.sol\":\"AccessControl\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module that allows children to implement role-based access control mechanisms. This is a lightweight version that doesn't allow enumerating role members except through off-chain means by accessing the contract event logs. Some applications may benefit from on-chain enumerability, for those cases see {AccessControlEnumerable}. Roles are referred to by their `bytes32` identifier. These should be exposed in the external API and be unique. The best way to achieve this is by using `public constant` hash digests: ```solidity bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\"); ``` Roles can be used to represent a set of permissions. To restrict access to a function call, use {hasRole}: ```solidity function foo() public { require(hasRole(MY_ROLE, msg.sender)); ... } ``` Roles can be granted and revoked dynamically via the {grantRole} and {revokeRole} functions. Each role has an associated admin role, and only accounts that have a role's admin role can call {grantRole} and {revokeRole}. By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means that only accounts with this role will be able to grant or revoke other roles. More complex role relationships can be created by using {_setRoleAdmin}. WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to grant and revoke this role. Extra precautions should be taken to secure accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules} to enforce additional security measures for this role.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/AccessControl.sol\":\"AccessControl\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" } }, "@openzeppelin/contracts/access/IAccessControl.sol": { @@ -52532,7 +54359,7 @@ "revokeRole(bytes32,address)": "d547741f" } }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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 ERC165 detection.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"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\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]}},\"version\":1}" + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"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 ERC165 detection.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"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\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]}},\"version\":1}" } }, "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { @@ -52661,7 +54488,7 @@ }, "methodIdentifiers": {} }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC1155Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}" + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC1155Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}" }, "IERC20Errors": { "abi": [ @@ -52772,7 +54599,7 @@ }, "methodIdentifiers": {} }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC20Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}" + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC20Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}" }, "IERC721Errors": { "abi": [ @@ -52900,7 +54727,7 @@ }, "methodIdentifiers": {} }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC721Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}" + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC721Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}" } }, "@openzeppelin/contracts/token/ERC1155/ERC1155.sol": { @@ -53350,7 +55177,7 @@ "uri(uint256)": "0e89341c" } }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the basic standard multi-token. See https://eips.ethereum.org/EIPS/eip-1155 Originally based on code by Enjin: https://github.com/enjin/erc-1155\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`.\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers.\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`.\"},\"URI(string,uint256)\":{\"details\":\"Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. If an {URI} event was emitted for `id`, the standard https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value returned by {IERC1155MetadataURI-uri}.\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"See {IERC1155-balanceOf}.\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"See {IERC1155-balanceOfBatch}. Requirements: - `accounts` and `ids` must have the same length.\"},\"constructor\":{\"details\":\"See {_setURI}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC1155-isApprovedForAll}.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155-safeBatchTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC1155-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"uri(uint256)\":{\"details\":\"See {IERC1155MetadataURI-uri}. This implementation returns the same URI for *all* token types. It relies on the token type ID substitution mechanism https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP]. Clients calling this function must replace the `\\\\{id\\\\}` substring with the actual token type ID.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\":\"ERC1155\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\":{\"keccak256\":\"0xd9b0b8ee1ac6dfee14eb1ad4383a4739dbaa0f2036594bb3a16f0408085dadde\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6309805132e519162d1134c67df22dd963323a9208b4f41344a4c13ed63c1026\",\"dweb:/ipfs/QmTBPHnf6qbtAD4NVnKVFmubUHRqMDPLkseR6apxTUpsQo\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182\",\"dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xb69597a63b202e28401128bed6a6d259e8730191274471af7303eafb247881a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://25addbda49a578b3318130585601344c5149a5549d749adf88e9685349a46b23\",\"dweb:/ipfs/Qme2DuD8gpsve1ZvaSMQpBwMdpU7yAtekDwr7gUp8dX4zX\"]},\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0xe92b5e199b963d108ad6e06feeede151ba23849e0d064956535489ff967ffe68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://280e17738a67b06dae02fec32982bd48a8ab71d8df95e9975ae03532634bc522\",\"dweb:/ipfs/QmecjsNcFgy2mMjuNfRDkLpAYMRWnh5o73fw1Bj2rCso2z\"]},\"@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x8806d620b6571932b662cfd48fbd518d4f70df1f88a23b5724cacde64a77bda1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8043304c8f9e1c1dc4a41935efa067daa77ad7abbae1fda41f015d53fbf327a5\",\"dweb:/ipfs/QmTrF2hSkRZoN9EEu8zdEhBpGNZ7RxzCdXf9ydzc2HQ3tM\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}" + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the basic standard multi-token. See https://eips.ethereum.org/EIPS/eip-1155 Originally based on code by Enjin: https://github.com/enjin/erc-1155\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`.\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers.\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`.\"},\"URI(string,uint256)\":{\"details\":\"Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. If an {URI} event was emitted for `id`, the standard https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value returned by {IERC1155MetadataURI-uri}.\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"See {IERC1155-balanceOf}.\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"See {IERC1155-balanceOfBatch}. Requirements: - `accounts` and `ids` must have the same length.\"},\"constructor\":{\"details\":\"See {_setURI}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC1155-isApprovedForAll}.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155-safeBatchTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC1155-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"uri(uint256)\":{\"details\":\"See {IERC1155MetadataURI-uri}. This implementation returns the same URI for *all* token types. It relies on the token type ID substitution mechanism https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP]. Clients calling this function must replace the `\\\\{id\\\\}` substring with the actual token type ID.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\":\"ERC1155\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\":{\"keccak256\":\"0xd9b0b8ee1ac6dfee14eb1ad4383a4739dbaa0f2036594bb3a16f0408085dadde\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6309805132e519162d1134c67df22dd963323a9208b4f41344a4c13ed63c1026\",\"dweb:/ipfs/QmTBPHnf6qbtAD4NVnKVFmubUHRqMDPLkseR6apxTUpsQo\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182\",\"dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xb69597a63b202e28401128bed6a6d259e8730191274471af7303eafb247881a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://25addbda49a578b3318130585601344c5149a5549d749adf88e9685349a46b23\",\"dweb:/ipfs/Qme2DuD8gpsve1ZvaSMQpBwMdpU7yAtekDwr7gUp8dX4zX\"]},\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0xe92b5e199b963d108ad6e06feeede151ba23849e0d064956535489ff967ffe68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://280e17738a67b06dae02fec32982bd48a8ab71d8df95e9975ae03532634bc522\",\"dweb:/ipfs/QmecjsNcFgy2mMjuNfRDkLpAYMRWnh5o73fw1Bj2rCso2z\"]},\"@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x8806d620b6571932b662cfd48fbd518d4f70df1f88a23b5724cacde64a77bda1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8043304c8f9e1c1dc4a41935efa067daa77ad7abbae1fda41f015d53fbf327a5\",\"dweb:/ipfs/QmTrF2hSkRZoN9EEu8zdEhBpGNZ7RxzCdXf9ydzc2HQ3tM\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}" } }, "@openzeppelin/contracts/token/ERC1155/IERC1155.sol": { @@ -53678,7 +55505,7 @@ "supportsInterface(bytes4)": "01ffc9a7" } }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC1155 compliant contract, as defined in the https://eips.ethereum.org/EIPS/eip-1155[EIP].\",\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`.\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers.\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`.\"},\"URI(string,uint256)\":{\"details\":\"Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. If an {URI} event was emitted for `id`, the standard https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value returned by {IERC1155MetadataURI-uri}.\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"Returns the value of tokens of token type `id` owned by `account`. Requirements: - `account` cannot be the zero address.\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}. Requirements: - `accounts` and `ids` must have the same length.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns true if `operator` is approved to transfer ``account``'s tokens. See {setApprovalForAll}.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}. WARNING: This function can potentially allow a reentrancy attack when transferring tokens to an untrusted contract, when invoking {onERC1155BatchReceived} on the receiver. Ensure to follow the checks-effects-interactions pattern and consider employing reentrancy guards when interacting with untrusted contracts. Emits either a {TransferSingle} or a {TransferBatch} event, depending on the length of the array arguments. Requirements: - `ids` and `values` must have the same length. - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the acceptance magic value.\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"Transfers a `value` amount of tokens of type `id` from `from` to `to`. WARNING: This function can potentially allow a reentrancy attack when transferring tokens to an untrusted contract, when invoking {onERC1155Received} on the receiver. Ensure to follow the checks-effects-interactions pattern and consider employing reentrancy guards when interacting with untrusted contracts. Emits a {TransferSingle} event. Requirements: - `to` cannot be the zero address. - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}. - `from` must have a balance of tokens of type `id` of at least `value` amount. - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the acceptance magic value.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`, Emits an {ApprovalForAll} event. Requirements: - `operator` cannot be the caller.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":\"IERC1155\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182\",\"dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC1155 compliant contract, as defined in the https://eips.ethereum.org/EIPS/eip-1155[EIP].\",\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`.\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers.\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`.\"},\"URI(string,uint256)\":{\"details\":\"Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. If an {URI} event was emitted for `id`, the standard https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value returned by {IERC1155MetadataURI-uri}.\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"Returns the value of tokens of token type `id` owned by `account`. Requirements: - `account` cannot be the zero address.\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}. Requirements: - `accounts` and `ids` must have the same length.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns true if `operator` is approved to transfer ``account``'s tokens. See {setApprovalForAll}.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}. WARNING: This function can potentially allow a reentrancy attack when transferring tokens to an untrusted contract, when invoking {onERC1155BatchReceived} on the receiver. Ensure to follow the checks-effects-interactions pattern and consider employing reentrancy guards when interacting with untrusted contracts. Emits either a {TransferSingle} or a {TransferBatch} event, depending on the length of the array arguments. Requirements: - `ids` and `values` must have the same length. - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the acceptance magic value.\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"Transfers a `value` amount of tokens of type `id` from `from` to `to`. WARNING: This function can potentially allow a reentrancy attack when transferring tokens to an untrusted contract, when invoking {onERC1155Received} on the receiver. Ensure to follow the checks-effects-interactions pattern and consider employing reentrancy guards when interacting with untrusted contracts. Emits a {TransferSingle} event. Requirements: - `to` cannot be the zero address. - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}. - `from` must have a balance of tokens of type `id` of at least `value` amount. - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the acceptance magic value.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`, Emits an {ApprovalForAll} event. Requirements: - `operator` cannot be the caller.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":\"IERC1155\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182\",\"dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" } }, "@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol": { @@ -53806,7 +55633,7 @@ "supportsInterface(bytes4)": "01ffc9a7" } }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"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\":\"Interface that must be implemented by smart contracts in order to receive ERC-1155 token transfers.\",\"kind\":\"dev\",\"methods\":{\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"Handles the receipt of a multiple ERC1155 token types. This function is called at the end of a `safeBatchTransferFrom` after the balances have been updated. NOTE: To accept the transfer(s), this must return `bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` (i.e. 0xbc197c81, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"ids\":\"An array containing ids of each token being transferred (order and length must match values array)\",\"operator\":\"The address which initiated the batch transfer (i.e. msg.sender)\",\"values\":\"An array containing amounts of each token being transferred (order and length must match ids array)\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` if transfer is allowed\"}},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"Handles the receipt of a single ERC1155 token type. This function is called at the end of a `safeTransferFrom` after the balance has been updated. NOTE: To accept the transfer, this must return `bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` (i.e. 0xf23a6e61, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"id\":\"The ID of the token being transferred\",\"operator\":\"The address which initiated the transfer (i.e. msg.sender)\",\"value\":\"The amount of tokens being transferred\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` if transfer is allowed\"}},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":\"IERC1155Receiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xb69597a63b202e28401128bed6a6d259e8730191274471af7303eafb247881a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://25addbda49a578b3318130585601344c5149a5549d749adf88e9685349a46b23\",\"dweb:/ipfs/Qme2DuD8gpsve1ZvaSMQpBwMdpU7yAtekDwr7gUp8dX4zX\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"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\":\"Interface that must be implemented by smart contracts in order to receive ERC-1155 token transfers.\",\"kind\":\"dev\",\"methods\":{\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"Handles the receipt of a multiple ERC1155 token types. This function is called at the end of a `safeBatchTransferFrom` after the balances have been updated. NOTE: To accept the transfer(s), this must return `bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` (i.e. 0xbc197c81, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"ids\":\"An array containing ids of each token being transferred (order and length must match values array)\",\"operator\":\"The address which initiated the batch transfer (i.e. msg.sender)\",\"values\":\"An array containing amounts of each token being transferred (order and length must match ids array)\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` if transfer is allowed\"}},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"Handles the receipt of a single ERC1155 token type. This function is called at the end of a `safeTransferFrom` after the balance has been updated. NOTE: To accept the transfer, this must return `bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` (i.e. 0xf23a6e61, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"id\":\"The ID of the token being transferred\",\"operator\":\"The address which initiated the transfer (i.e. msg.sender)\",\"value\":\"The amount of tokens being transferred\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` if transfer is allowed\"}},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":\"IERC1155Receiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xb69597a63b202e28401128bed6a6d259e8730191274471af7303eafb247881a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://25addbda49a578b3318130585601344c5149a5549d749adf88e9685349a46b23\",\"dweb:/ipfs/Qme2DuD8gpsve1ZvaSMQpBwMdpU7yAtekDwr7gUp8dX4zX\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" } }, "@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol": { @@ -54154,7 +55981,7 @@ "uri(uint256)": "0e89341c" } }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the optional ERC1155MetadataExtension interface, as defined in the https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[EIP].\",\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`.\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers.\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`.\"},\"URI(string,uint256)\":{\"details\":\"Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. If an {URI} event was emitted for `id`, the standard https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value returned by {IERC1155MetadataURI-uri}.\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"Returns the value of tokens of token type `id` owned by `account`. Requirements: - `account` cannot be the zero address.\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}. Requirements: - `accounts` and `ids` must have the same length.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns true if `operator` is approved to transfer ``account``'s tokens. See {setApprovalForAll}.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}. WARNING: This function can potentially allow a reentrancy attack when transferring tokens to an untrusted contract, when invoking {onERC1155BatchReceived} on the receiver. Ensure to follow the checks-effects-interactions pattern and consider employing reentrancy guards when interacting with untrusted contracts. Emits either a {TransferSingle} or a {TransferBatch} event, depending on the length of the array arguments. Requirements: - `ids` and `values` must have the same length. - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the acceptance magic value.\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"Transfers a `value` amount of tokens of type `id` from `from` to `to`. WARNING: This function can potentially allow a reentrancy attack when transferring tokens to an untrusted contract, when invoking {onERC1155Received} on the receiver. Ensure to follow the checks-effects-interactions pattern and consider employing reentrancy guards when interacting with untrusted contracts. Emits a {TransferSingle} event. Requirements: - `to` cannot be the zero address. - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}. - `from` must have a balance of tokens of type `id` of at least `value` amount. - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the acceptance magic value.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`, Emits an {ApprovalForAll} event. Requirements: - `operator` cannot be the caller.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"uri(uint256)\":{\"details\":\"Returns the URI for token type `id`. If the `\\\\{id\\\\}` substring is present in the URI, it must be replaced by clients with the actual token type ID.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":\"IERC1155MetadataURI\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182\",\"dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC\"]},\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0xe92b5e199b963d108ad6e06feeede151ba23849e0d064956535489ff967ffe68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://280e17738a67b06dae02fec32982bd48a8ab71d8df95e9975ae03532634bc522\",\"dweb:/ipfs/QmecjsNcFgy2mMjuNfRDkLpAYMRWnh5o73fw1Bj2rCso2z\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the optional ERC1155MetadataExtension interface, as defined in the https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[EIP].\",\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`.\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers.\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`.\"},\"URI(string,uint256)\":{\"details\":\"Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. If an {URI} event was emitted for `id`, the standard https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value returned by {IERC1155MetadataURI-uri}.\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"Returns the value of tokens of token type `id` owned by `account`. Requirements: - `account` cannot be the zero address.\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}. Requirements: - `accounts` and `ids` must have the same length.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns true if `operator` is approved to transfer ``account``'s tokens. See {setApprovalForAll}.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}. WARNING: This function can potentially allow a reentrancy attack when transferring tokens to an untrusted contract, when invoking {onERC1155BatchReceived} on the receiver. Ensure to follow the checks-effects-interactions pattern and consider employing reentrancy guards when interacting with untrusted contracts. Emits either a {TransferSingle} or a {TransferBatch} event, depending on the length of the array arguments. Requirements: - `ids` and `values` must have the same length. - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the acceptance magic value.\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"Transfers a `value` amount of tokens of type `id` from `from` to `to`. WARNING: This function can potentially allow a reentrancy attack when transferring tokens to an untrusted contract, when invoking {onERC1155Received} on the receiver. Ensure to follow the checks-effects-interactions pattern and consider employing reentrancy guards when interacting with untrusted contracts. Emits a {TransferSingle} event. Requirements: - `to` cannot be the zero address. - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}. - `from` must have a balance of tokens of type `id` of at least `value` amount. - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the acceptance magic value.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`, Emits an {ApprovalForAll} event. Requirements: - `operator` cannot be the caller.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"uri(uint256)\":{\"details\":\"Returns the URI for token type `id`. If the `\\\\{id\\\\}` substring is present in the URI, it must be replaced by clients with the actual token type ID.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":\"IERC1155MetadataURI\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182\",\"dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC\"]},\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0xe92b5e199b963d108ad6e06feeede151ba23849e0d064956535489ff967ffe68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://280e17738a67b06dae02fec32982bd48a8ab71d8df95e9975ae03532634bc522\",\"dweb:/ipfs/QmecjsNcFgy2mMjuNfRDkLpAYMRWnh5o73fw1Bj2rCso2z\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" } }, "@openzeppelin/contracts/utils/Arrays.sol": { @@ -54165,8 +55992,8 @@ "functionDebugData": {}, "generatedSources": [], "linkReferences": {}, - "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220793c6ad83d827c73127614b422a36d96b65e8ad196c643c779862d80a47df69664736f6c63430008180033", - "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH26 0x3C6AD83D827C73127614B422A36D96B65E8AD196C643C779862D DUP1 LOG4 PUSH30 0xF69664736F6C634300081800330000000000000000000000000000000000 ", + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a5e38ab4ed780c0bbd45f12e9dc818f8aee559d3b37c5a74be955ff54d94926164736f6c634300081a0033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA5 0xE3 DUP11 0xB4 0xED PUSH25 0xC0BBD45F12E9DC818F8AEE559D3B37C5A74BE955FF54D9492 PUSH2 0x6473 PUSH16 0x6C634300081A00330000000000000000 ", "sourceMap": "276:4526:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { @@ -54174,13 +56001,13 @@ "generatedSources": [], "immutableReferences": {}, "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220793c6ad83d827c73127614b422a36d96b65e8ad196c643c779862d80a47df69664736f6c63430008180033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH26 0x3C6AD83D827C73127614B422A36D96B65E8AD196C643C779862D DUP1 LOG4 PUSH30 0xF69664736F6C634300081800330000000000000000000000000000000000 ", + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a5e38ab4ed780c0bbd45f12e9dc818f8aee559d3b37c5a74be955ff54d94926164736f6c634300081a0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA5 0xE3 DUP11 0xB4 0xED PUSH25 0xC0BBD45F12E9DC818F8AEE559D3B37C5A74BE955FF54D9492 PUSH2 0x6473 PUSH16 0x6C634300081A00330000000000000000 ", "sourceMap": "276:4526:7:-:0;;;;;;;;" }, "methodIdentifiers": {} }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to array types.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Arrays.sol\":\"Arrays\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x8806d620b6571932b662cfd48fbd518d4f70df1f88a23b5724cacde64a77bda1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8043304c8f9e1c1dc4a41935efa067daa77ad7abbae1fda41f015d53fbf327a5\",\"dweb:/ipfs/QmTrF2hSkRZoN9EEu8zdEhBpGNZ7RxzCdXf9ydzc2HQ3tM\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}" + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to array types.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Arrays.sol\":\"Arrays\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x8806d620b6571932b662cfd48fbd518d4f70df1f88a23b5724cacde64a77bda1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8043304c8f9e1c1dc4a41935efa067daa77ad7abbae1fda41f015d53fbf327a5\",\"dweb:/ipfs/QmTrF2hSkRZoN9EEu8zdEhBpGNZ7RxzCdXf9ydzc2HQ3tM\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}" } }, "@openzeppelin/contracts/utils/Context.sol": { @@ -54206,7 +56033,7 @@ }, "methodIdentifiers": {} }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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}" + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}" } }, "@openzeppelin/contracts/utils/StorageSlot.sol": { @@ -54217,8 +56044,8 @@ "functionDebugData": {}, "generatedSources": [], "linkReferences": {}, - "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200d9d594500b0633db8c36b486b2e5bd19779e3026132b93582c791873a3dee9064736f6c63430008180033", - "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD SWAP14 MSIZE GASLIMIT STOP 0xB0 PUSH4 0x3DB8C36B BASEFEE PUSH12 0x2E5BD19779E3026132B93582 0xC7 SWAP2 DUP8 GASPRICE RETURNDATASIZE 0xEE SWAP1 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201a4bc2888a2d930728f71fd687a9873d474795c5e763ce16209723c5c15981d664736f6c634300081a0033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BYTE 0x4B 0xC2 DUP9 DUP11 0x2D SWAP4 SMOD 0x28 0xF7 0x1F 0xD6 DUP8 0xA9 DUP8 RETURNDATASIZE SELFBALANCE SELFBALANCE SWAP6 0xC5 0xE7 PUSH4 0xCE162097 0x23 0xC5 0xC1 MSIZE DUP2 0xD6 PUSH5 0x736F6C6343 STOP ADDMOD BYTE STOP CALLER ", "sourceMap": "1245:2685:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { @@ -54226,13 +56053,13 @@ "generatedSources": [], "immutableReferences": {}, "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200d9d594500b0633db8c36b486b2e5bd19779e3026132b93582c791873a3dee9064736f6c63430008180033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD SWAP14 MSIZE GASLIMIT STOP 0xB0 PUSH4 0x3DB8C36B BASEFEE PUSH12 0x2E5BD19779E3026132B93582 0xC7 SWAP2 DUP8 GASPRICE RETURNDATASIZE 0xEE SWAP1 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201a4bc2888a2d930728f71fd687a9873d474795c5e763ce16209723c5c15981d664736f6c634300081a0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BYTE 0x4B 0xC2 DUP9 DUP11 0x2D SWAP4 SMOD 0x28 0xF7 0x1F 0xD6 DUP8 0xA9 DUP8 RETURNDATASIZE SELFBALANCE SELFBALANCE SWAP6 0xC5 0xE7 PUSH4 0xCE162097 0x23 0xC5 0xC1 MSIZE DUP2 0xD6 PUSH5 0x736F6C6343 STOP ADDMOD BYTE STOP CALLER ", "sourceMap": "1245:2685:9:-:0;;;;;;;;" }, "methodIdentifiers": {} }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for reading and writing primitive types to specific storage slots. Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. This library helps with reading and writing to such slots without the need for inline assembly. The functions in this library return Slot structs that contain a `value` member that can be used to read or write. Example usage to set ERC1967 implementation slot: ```solidity contract ERC1967 { bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; function _getImplementation() internal view returns (address) { return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value; } function _setImplementation(address newImplementation) internal { require(newImplementation.code.length > 0); StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation; } } ```\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/StorageSlot.sol\":\"StorageSlot\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]}},\"version\":1}" + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for reading and writing primitive types to specific storage slots. Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. This library helps with reading and writing to such slots without the need for inline assembly. The functions in this library return Slot structs that contain a `value` member that can be used to read or write. Example usage to set ERC1967 implementation slot: ```solidity contract ERC1967 { bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; function _getImplementation() internal view returns (address) { return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value; } function _setImplementation(address newImplementation) internal { require(newImplementation.code.length > 0); StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation; } } ```\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/StorageSlot.sol\":\"StorageSlot\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]}},\"version\":1}" } }, "@openzeppelin/contracts/utils/Strings.sol": { @@ -54260,8 +56087,8 @@ "functionDebugData": {}, "generatedSources": [], "linkReferences": {}, - "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122022ea8e82b761ff0f2c8fae5d36bcca20db5176a1081cc893147086b57be5cf8f64736f6c63430008180033", - "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x22 0xEA DUP15 DUP3 0xB7 PUSH2 0xFF0F 0x2C DUP16 0xAE TSTORE CALLDATASIZE 0xBC 0xCA KECCAK256 0xDB MLOAD PUSH23 0xA1081CC893147086B57BE5CF8F64736F6C634300081800 CALLER ", + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e0e72875b864f53a3c539f0dfde34d53065df50d962253ee601271522bd18aa964736f6c634300081a0033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE0 0xE7 0x28 PUSH22 0xB864F53A3C539F0DFDE34D53065DF50D962253EE6012 PUSH18 0x522BD18AA964736F6C634300081A00330000 ", "sourceMap": "251:2847:10:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { @@ -54269,13 +56096,13 @@ "generatedSources": [], "immutableReferences": {}, "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122022ea8e82b761ff0f2c8fae5d36bcca20db5176a1081cc893147086b57be5cf8f64736f6c63430008180033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x22 0xEA DUP15 DUP3 0xB7 PUSH2 0xFF0F 0x2C DUP16 0xAE TSTORE CALLDATASIZE 0xBC 0xCA KECCAK256 0xDB MLOAD PUSH23 0xA1081CC893147086B57BE5CF8F64736F6C634300081800 CALLER ", + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e0e72875b864f53a3c539f0dfde34d53065df50d962253ee601271522bd18aa964736f6c634300081a0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE0 0xE7 0x28 PUSH22 0xB864F53A3C539F0DFDE34D53065DF50D962253EE6012 PUSH18 0x522BD18AA964736F6C634300081A00330000 ", "sourceMap": "251:2847:10:-:0;;;;;;;;" }, "methodIdentifiers": {} }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"StringsInsufficientHexLength\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"String operations.\",\"errors\":{\"StringsInsufficientHexLength(uint256,uint256)\":[{\"details\":\"The `value` string doesn't fit in the specified `length`.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}" + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"StringsInsufficientHexLength\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"String operations.\",\"errors\":{\"StringsInsufficientHexLength(uint256,uint256)\":[{\"details\":\"The `value` string doesn't fit in the specified `length`.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}" } }, "@openzeppelin/contracts/utils/introspection/ERC165.sol": { @@ -54323,7 +56150,33 @@ "supportsInterface(bytes4)": "01ffc9a7" } }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ```\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ```\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol": { + "ERC165Checker": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220abca560f01582e1c555c4f7ecd2b3772963db14131a5d165691a3b481984eab264736f6c634300081a0033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAB 0xCA JUMP 0xF ADD PC 0x2E SHR SSTORE TLOAD 0x4F PUSH31 0xCD2B3772963DB14131A5D165691A3B481984EAB264736F6C634300081A0033 ", + "sourceMap": "465:4566:12:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220abca560f01582e1c555c4f7ecd2b3772963db14131a5d165691a3b481984eab264736f6c634300081a0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAB 0xCA JUMP 0xF ADD PC 0x2E SHR SSTORE TLOAD 0x4F PUSH31 0xCD2B3772963DB14131A5D165691A3B481984EAB264736F6C634300081A0033 ", + "sourceMap": "465:4566:12:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library used to query support of an interface declared via {IERC165}. Note that these functions return the actual result of the query: they do not `revert` if an interface is not supported. It is up to the caller to decide what to do in these cases.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol\":\"ERC165Checker\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0xac3d50e321a48a40b4496970ce725900f13aeb2255b7c1203f5adbe98c4a911a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1d7b235b578347dce2d831a76f122e820a7db7e73fd2e47f13bafdcd61c5b066\",\"dweb:/ipfs/QmVAELwambfJa55HfiCoz1kFFh7iYwRYeW5x8si6AFM4iX\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" } }, "@openzeppelin/contracts/utils/introspection/IERC165.sol": { @@ -54371,7 +56224,7 @@ "supportsInterface(bytes4)": "01ffc9a7" } }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" } }, "@openzeppelin/contracts/utils/math/Math.sol": { @@ -54388,22 +56241,22 @@ "functionDebugData": {}, "generatedSources": [], "linkReferences": {}, - "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205f1847e716d326528b8b9324e0228d1e4971145e5ba1173b4269248a23a4838564736f6c63430008180033", - "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH0 XOR SELFBALANCE 0xE7 AND 0xD3 0x26 MSTORE DUP12 DUP12 SWAP4 0x24 0xE0 0x22 DUP14 0x1E BLOBHASH PUSH18 0x145E5BA1173B4269248A23A4838564736F6C PUSH4 0x43000818 STOP CALLER ", - "sourceMap": "203:14914:13:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122073bc26c1c0364e82c73ceb155aaf560608e8f19c0d7353e3374fd24b4f182a2864736f6c634300081a0033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH20 0xBC26C1C0364E82C73CEB155AAF560608E8F19C0D PUSH20 0x53E3374FD24B4F182A2864736F6C634300081A00 CALLER ", + "sourceMap": "203:14914:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { "functionDebugData": {}, "generatedSources": [], "immutableReferences": {}, "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205f1847e716d326528b8b9324e0228d1e4971145e5ba1173b4269248a23a4838564736f6c63430008180033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH0 XOR SELFBALANCE 0xE7 AND 0xD3 0x26 MSTORE DUP12 DUP12 SWAP4 0x24 0xE0 0x22 DUP14 0x1E BLOBHASH PUSH18 0x145E5BA1173B4269248A23A4838564736F6C PUSH4 0x43000818 STOP CALLER ", - "sourceMap": "203:14914:13:-:0;;;;;;;;" + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122073bc26c1c0364e82c73ceb155aaf560608e8f19c0d7353e3374fd24b4f182a2864736f6c634300081a0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH20 0xBC26C1C0364E82C73CEB155AAF560608E8F19C0D PUSH20 0x53E3374FD24B4F182A2864736F6C634300081A00 CALLER ", + "sourceMap": "203:14914:14:-:0;;;;;;;;" }, "methodIdentifiers": {} }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"errors\":{\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}" + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"errors\":{\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}" } }, "@openzeppelin/contracts/utils/math/SignedMath.sol": { @@ -54414,29 +56267,35 @@ "functionDebugData": {}, "generatedSources": [], "linkReferences": {}, - "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209275fb1eb703f1ada4f4ce7bacc8dfe6c85df9651d82c9adda1c7e92c94ddc8464736f6c63430008180033", - "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP3 PUSH22 0xFB1EB703F1ADA4F4CE7BACC8DFE6C85DF9651D82C9AD 0xDA SHR PUSH31 0x92C94DDC8464736F6C63430008180033000000000000000000000000000000 ", - "sourceMap": "216:1047:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b0a59f8e7b021f06d1fd412a1b4a85ed27707ba8e3837ea55bb2db3f3cc7a7e764736f6c634300081a0033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB0 0xA5 SWAP16 DUP15 PUSH28 0x21F06D1FD412A1B4A85ED27707BA8E3837EA55BB2DB3F3CC7A7E764 PUSH20 0x6F6C634300081A00330000000000000000000000 ", + "sourceMap": "216:1047:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { "functionDebugData": {}, "generatedSources": [], "immutableReferences": {}, "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209275fb1eb703f1ada4f4ce7bacc8dfe6c85df9651d82c9adda1c7e92c94ddc8464736f6c63430008180033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP3 PUSH22 0xFB1EB703F1ADA4F4CE7BACC8DFE6C85DF9651D82C9AD 0xDA SHR PUSH31 0x92C94DDC8464736F6C63430008180033000000000000000000000000000000 ", - "sourceMap": "216:1047:14:-:0;;;;;;;;" + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b0a59f8e7b021f06d1fd412a1b4a85ed27707ba8e3837ea55bb2db3f3cc7a7e764736f6c634300081a0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB0 0xA5 SWAP16 DUP15 PUSH28 0x21F06D1FD412A1B4A85ED27707BA8E3837EA55BB2DB3F3CC7A7E764 PUSH20 0x6F6C634300081A00330000000000000000000000 ", + "sourceMap": "216:1047:15:-:0;;;;;;;;" }, "methodIdentifiers": {} }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard signed math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":\"SignedMath\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}" + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard signed math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":\"SignedMath\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}" } }, "contracts/Engagement.sol": { "Engagement": { "abi": [ { - "inputs": [], + "inputs": [ + { + "internalType": "string", + "name": "tokenURI_", + "type": "string" + } + ], "stateMutability": "nonpayable", "type": "constructor" }, @@ -54563,6 +56422,17 @@ "name": "ERC1155MissingApprovalForAll", "type": "error" }, + { + "inputs": [ + { + "internalType": "string", + "name": "message", + "type": "string" + } + ], + "name": "EmptyAccountNotAllowed", + "type": "error" + }, { "inputs": [ { @@ -54606,6 +56476,17 @@ "name": "NotFound", "type": "error" }, + { + "inputs": [ + { + "internalType": "string", + "name": "message", + "type": "string" + } + ], + "name": "URIEmpty", + "type": "error" + }, { "anonymous": false, "inputs": [ @@ -54631,6 +56512,25 @@ "name": "ApprovalForAll", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "oldURI", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "newURI", + "type": "string" + } + ], + "name": "BaseURIUpdated", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -54868,31 +56768,6 @@ "name": "URI", "type": "event" }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "date", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "string", - "name": "cid", - "type": "string" - } - ], - "name": "UpdateScores", - "type": "event" - }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", @@ -54906,19 +56781,6 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [], - "name": "PROVIDER_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { @@ -55022,35 +56884,6 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "date", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "string", - "name": "account", - "type": "string" - } - ], - "name": "getScores", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { @@ -55118,13 +56951,7 @@ "type": "function" }, { - "inputs": [ - { - "internalType": "string", - "name": "hash_", - "type": "string" - } - ], + "inputs": [], "name": "issue", "outputs": [], "stateMutability": "nonpayable", @@ -55297,22 +57124,36 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "string", + "name": "newURI", + "type": "string" + } + ], + "name": "updateBaseURI", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { "internalType": "uint256", - "name": "date", + "name": "", "type": "uint256" - }, + } + ], + "name": "uri", + "outputs": [ { "internalType": "string", - "name": "cid", + "name": "", "type": "string" } ], - "name": "updateScores", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { @@ -55321,6 +57162,11 @@ "internalType": "uint256", "name": "tokenId", "type": "uint256" + }, + { + "internalType": "string", + "name": "account", + "type": "string" } ], "name": "uri", @@ -55338,10 +57184,10 @@ "evm": { "bytecode": { "functionDebugData": { - "@_3561": { + "@_3758": { "entryPoint": null, - "id": 3561, - "parameterSlots": 0, + "id": 3758, + "parameterSlots": 1, "returnSlots": 0 }, "@_576": { @@ -55351,151 +57197,259 @@ "returnSlots": 0 }, "@_grantRole_256": { - "entryPoint": 106, + "entryPoint": 229, "id": 256, "parameterSlots": 2, "returnSlots": 1 }, "@_msgSender_1942": { - "entryPoint": 473, + "entryPoint": 590, "id": 1942, "parameterSlots": 0, "returnSlots": 1 }, "@_setURI_1189": { - "entryPoint": 85, + "entryPoint": 139, "id": 1189, "parameterSlots": 1, "returnSlots": 0 }, "@hasRole_80": { - "entryPoint": 366, + "entryPoint": 483, "id": 80, "parameterSlots": 2, "returnSlots": 1 }, + "@requireNonEmptyURI_3792": { + "entryPoint": 158, + "id": 3792, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_decode_available_length_t_string_memory_ptr_fromMemory": { + "entryPoint": 859, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_string_memory_ptr_fromMemory": { + "entryPoint": 925, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_string_memory_ptr_fromMemory": { + "entryPoint": 971, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack": { + "entryPoint": 1857, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 1892, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 741, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 598, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_string_memory_ptr": { + "entryPoint": 768, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, "array_dataslot_t_string_storage": { - "entryPoint": 639, + "entryPoint": 1151, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "array_length_t_string_memory_ptr": { - "entryPoint": 481, + "entryPoint": 1044, "id": null, "parameterSlots": 1, "returnSlots": 1 }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 1799, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, "clean_up_bytearray_end_slots_t_string_storage": { - "entryPoint": 960, + "entryPoint": 1448, "id": null, "parameterSlots": 3, "returnSlots": 0 }, "cleanup_t_uint256": { - "entryPoint": 775, + "entryPoint": 1283, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "clear_storage_range_t_bytes1": { - "entryPoint": 921, + "entryPoint": 1413, "id": null, "parameterSlots": 2, "returnSlots": 0 }, "convert_t_uint256_to_t_uint256": { - "entryPoint": 795, + "entryPoint": 1303, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { - "entryPoint": 1115, + "entryPoint": 1589, "id": null, "parameterSlots": 2, "returnSlots": 0 }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 817, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, "divide_by_32_ceil": { - "entryPoint": 660, + "entryPoint": 1172, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "extract_byte_array_length": { - "entryPoint": 586, + "entryPoint": 1102, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "extract_used_part_and_set_length_of_short_byte_array": { - "entryPoint": 1085, + "entryPoint": 1561, "id": null, "parameterSlots": 2, "returnSlots": 1 }, + "finalize_allocation": { + "entryPoint": 692, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, "identity": { - "entryPoint": 785, + "entryPoint": 1293, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "mask_bytes_dynamic": { - "entryPoint": 1053, + "entryPoint": 1531, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "panic_error_0x22": { - "entryPoint": 539, + "entryPoint": 1055, "id": null, "parameterSlots": 0, "returnSlots": 0 }, "panic_error_0x41": { - "entryPoint": 492, + "entryPoint": 645, "id": null, "parameterSlots": 0, "returnSlots": 0 }, "prepare_store_t_uint256": { - "entryPoint": 835, + "entryPoint": 1337, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 618, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 623, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 613, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 608, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 628, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "shift_left_dynamic": { - "entryPoint": 676, + "entryPoint": 1188, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "shift_right_unsigned_dynamic": { - "entryPoint": 1040, + "entryPoint": 1518, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "storage_set_to_zero_t_uint256": { - "entryPoint": 893, + "entryPoint": 1389, "id": null, "parameterSlots": 2, "returnSlots": 0 }, + "store_literal_in_memory_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231": { + "entryPoint": 1816, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, "update_byte_slice_dynamic32": { - "entryPoint": 689, + "entryPoint": 1201, "id": null, "parameterSlots": 3, "returnSlots": 1 }, "update_storage_value_t_uint256_to_t_uint256": { - "entryPoint": 845, + "entryPoint": 1347, "id": null, "parameterSlots": 3, "returnSlots": 0 }, "zero_value_for_split_t_uint256": { - "entryPoint": 888, + "entryPoint": 1384, "id": null, "parameterSlots": 0, "returnSlots": 1 @@ -55504,583 +57458,709 @@ "generatedSources": [ { "ast": { - "nativeSrc": "0:5231:18", + "nativeSrc": "0:9394:18", "nodeType": "YulBlock", - "src": "0:5231:18", + "src": "0:9394:18", "statements": [ { "body": { - "nativeSrc": "66:40:18", + "nativeSrc": "47:35:18", "nodeType": "YulBlock", - "src": "66:40:18", + "src": "47:35:18", "statements": [ { - "nativeSrc": "77:22:18", + "nativeSrc": "57:19:18", "nodeType": "YulAssignment", - "src": "77:22:18", + "src": "57:19:18", "value": { "arguments": [ { - "name": "value", - "nativeSrc": "93:5:18", - "nodeType": "YulIdentifier", - "src": "93:5:18" + "kind": "number", + "nativeSrc": "73:2:18", + "nodeType": "YulLiteral", + "src": "73:2:18", + "type": "", + "value": "64" } ], "functionName": { "name": "mload", - "nativeSrc": "87:5:18", + "nativeSrc": "67:5:18", "nodeType": "YulIdentifier", - "src": "87:5:18" + "src": "67:5:18" }, - "nativeSrc": "87:12:18", + "nativeSrc": "67:9:18", "nodeType": "YulFunctionCall", - "src": "87:12:18" + "src": "67:9:18" }, "variableNames": [ { - "name": "length", - "nativeSrc": "77:6:18", + "name": "memPtr", + "nativeSrc": "57:6:18", "nodeType": "YulIdentifier", - "src": "77:6:18" + "src": "57:6:18" } ] } ] }, - "name": "array_length_t_string_memory_ptr", - "nativeSrc": "7:99:18", + "name": "allocate_unbounded", + "nativeSrc": "7:75:18", "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "49:5:18", - "nodeType": "YulTypedName", - "src": "49:5:18", - "type": "" - } - ], "returnVariables": [ { - "name": "length", - "nativeSrc": "59:6:18", + "name": "memPtr", + "nativeSrc": "40:6:18", "nodeType": "YulTypedName", - "src": "59:6:18", + "src": "40:6:18", "type": "" } ], - "src": "7:99:18" + "src": "7:75:18" }, { "body": { - "nativeSrc": "140:152:18", + "nativeSrc": "177:28:18", "nodeType": "YulBlock", - "src": "140:152:18", + "src": "177:28:18", "statements": [ { "expression": { "arguments": [ { "kind": "number", - "nativeSrc": "157:1:18", + "nativeSrc": "194:1:18", "nodeType": "YulLiteral", - "src": "157:1:18", + "src": "194:1:18", "type": "", "value": "0" }, { "kind": "number", - "nativeSrc": "160:77:18", + "nativeSrc": "197:1:18", "nodeType": "YulLiteral", - "src": "160:77:18", + "src": "197:1:18", "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + "value": "0" } ], "functionName": { - "name": "mstore", - "nativeSrc": "150:6:18", + "name": "revert", + "nativeSrc": "187:6:18", "nodeType": "YulIdentifier", - "src": "150:6:18" + "src": "187:6:18" }, - "nativeSrc": "150:88:18", + "nativeSrc": "187:12:18", "nodeType": "YulFunctionCall", - "src": "150:88:18" + "src": "187:12:18" }, - "nativeSrc": "150:88:18", + "nativeSrc": "187:12:18", "nodeType": "YulExpressionStatement", - "src": "150:88:18" - }, + "src": "187:12:18" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:18", + "nodeType": "YulFunctionDefinition", + "src": "88:117:18" + }, + { + "body": { + "nativeSrc": "300:28:18", + "nodeType": "YulBlock", + "src": "300:28:18", + "statements": [ { "expression": { "arguments": [ { "kind": "number", - "nativeSrc": "254:1:18", + "nativeSrc": "317:1:18", "nodeType": "YulLiteral", - "src": "254:1:18", + "src": "317:1:18", "type": "", - "value": "4" + "value": "0" }, { "kind": "number", - "nativeSrc": "257:4:18", + "nativeSrc": "320:1:18", "nodeType": "YulLiteral", - "src": "257:4:18", + "src": "320:1:18", "type": "", - "value": "0x41" + "value": "0" } ], "functionName": { - "name": "mstore", - "nativeSrc": "247:6:18", + "name": "revert", + "nativeSrc": "310:6:18", "nodeType": "YulIdentifier", - "src": "247:6:18" + "src": "310:6:18" }, - "nativeSrc": "247:15:18", + "nativeSrc": "310:12:18", "nodeType": "YulFunctionCall", - "src": "247:15:18" + "src": "310:12:18" }, - "nativeSrc": "247:15:18", + "nativeSrc": "310:12:18", "nodeType": "YulExpressionStatement", - "src": "247:15:18" - }, + "src": "310:12:18" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:18", + "nodeType": "YulFunctionDefinition", + "src": "211:117:18" + }, + { + "body": { + "nativeSrc": "423:28:18", + "nodeType": "YulBlock", + "src": "423:28:18", + "statements": [ { "expression": { "arguments": [ { "kind": "number", - "nativeSrc": "278:1:18", + "nativeSrc": "440:1:18", "nodeType": "YulLiteral", - "src": "278:1:18", + "src": "440:1:18", "type": "", "value": "0" }, { "kind": "number", - "nativeSrc": "281:4:18", + "nativeSrc": "443:1:18", "nodeType": "YulLiteral", - "src": "281:4:18", + "src": "443:1:18", "type": "", - "value": "0x24" + "value": "0" } ], "functionName": { "name": "revert", - "nativeSrc": "271:6:18", + "nativeSrc": "433:6:18", "nodeType": "YulIdentifier", - "src": "271:6:18" + "src": "433:6:18" }, - "nativeSrc": "271:15:18", + "nativeSrc": "433:12:18", "nodeType": "YulFunctionCall", - "src": "271:15:18" + "src": "433:12:18" }, - "nativeSrc": "271:15:18", + "nativeSrc": "433:12:18", "nodeType": "YulExpressionStatement", - "src": "271:15:18" + "src": "433:12:18" } ] }, - "name": "panic_error_0x41", - "nativeSrc": "112:180:18", + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "334:117:18", + "nodeType": "YulFunctionDefinition", + "src": "334:117:18" + }, + { + "body": { + "nativeSrc": "546:28:18", + "nodeType": "YulBlock", + "src": "546:28:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "563:1:18", + "nodeType": "YulLiteral", + "src": "563:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "566:1:18", + "nodeType": "YulLiteral", + "src": "566:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "556:6:18", + "nodeType": "YulIdentifier", + "src": "556:6:18" + }, + "nativeSrc": "556:12:18", + "nodeType": "YulFunctionCall", + "src": "556:12:18" + }, + "nativeSrc": "556:12:18", + "nodeType": "YulExpressionStatement", + "src": "556:12:18" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "457:117:18", "nodeType": "YulFunctionDefinition", - "src": "112:180:18" + "src": "457:117:18" }, { "body": { - "nativeSrc": "326:152:18", + "nativeSrc": "628:54:18", "nodeType": "YulBlock", - "src": "326:152:18", + "src": "628:54:18", + "statements": [ + { + "nativeSrc": "638:38:18", + "nodeType": "YulAssignment", + "src": "638:38:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "656:5:18", + "nodeType": "YulIdentifier", + "src": "656:5:18" + }, + { + "kind": "number", + "nativeSrc": "663:2:18", + "nodeType": "YulLiteral", + "src": "663:2:18", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "652:3:18", + "nodeType": "YulIdentifier", + "src": "652:3:18" + }, + "nativeSrc": "652:14:18", + "nodeType": "YulFunctionCall", + "src": "652:14:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "672:2:18", + "nodeType": "YulLiteral", + "src": "672:2:18", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "668:3:18", + "nodeType": "YulIdentifier", + "src": "668:3:18" + }, + "nativeSrc": "668:7:18", + "nodeType": "YulFunctionCall", + "src": "668:7:18" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "648:3:18", + "nodeType": "YulIdentifier", + "src": "648:3:18" + }, + "nativeSrc": "648:28:18", + "nodeType": "YulFunctionCall", + "src": "648:28:18" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "638:6:18", + "nodeType": "YulIdentifier", + "src": "638:6:18" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nativeSrc": "580:102:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "611:5:18", + "nodeType": "YulTypedName", + "src": "611:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "621:6:18", + "nodeType": "YulTypedName", + "src": "621:6:18", + "type": "" + } + ], + "src": "580:102:18" + }, + { + "body": { + "nativeSrc": "716:152:18", + "nodeType": "YulBlock", + "src": "716:152:18", "statements": [ { "expression": { "arguments": [ { "kind": "number", - "nativeSrc": "343:1:18", + "nativeSrc": "733:1:18", "nodeType": "YulLiteral", - "src": "343:1:18", + "src": "733:1:18", "type": "", "value": "0" }, { "kind": "number", - "nativeSrc": "346:77:18", + "nativeSrc": "736:77:18", "nodeType": "YulLiteral", - "src": "346:77:18", + "src": "736:77:18", "type": "", "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { "name": "mstore", - "nativeSrc": "336:6:18", + "nativeSrc": "726:6:18", "nodeType": "YulIdentifier", - "src": "336:6:18" + "src": "726:6:18" }, - "nativeSrc": "336:88:18", + "nativeSrc": "726:88:18", "nodeType": "YulFunctionCall", - "src": "336:88:18" + "src": "726:88:18" }, - "nativeSrc": "336:88:18", + "nativeSrc": "726:88:18", "nodeType": "YulExpressionStatement", - "src": "336:88:18" + "src": "726:88:18" }, { "expression": { "arguments": [ { "kind": "number", - "nativeSrc": "440:1:18", + "nativeSrc": "830:1:18", "nodeType": "YulLiteral", - "src": "440:1:18", + "src": "830:1:18", "type": "", "value": "4" }, { "kind": "number", - "nativeSrc": "443:4:18", + "nativeSrc": "833:4:18", "nodeType": "YulLiteral", - "src": "443:4:18", + "src": "833:4:18", "type": "", - "value": "0x22" + "value": "0x41" } ], "functionName": { "name": "mstore", - "nativeSrc": "433:6:18", + "nativeSrc": "823:6:18", "nodeType": "YulIdentifier", - "src": "433:6:18" + "src": "823:6:18" }, - "nativeSrc": "433:15:18", + "nativeSrc": "823:15:18", "nodeType": "YulFunctionCall", - "src": "433:15:18" + "src": "823:15:18" }, - "nativeSrc": "433:15:18", + "nativeSrc": "823:15:18", "nodeType": "YulExpressionStatement", - "src": "433:15:18" + "src": "823:15:18" }, { "expression": { "arguments": [ { "kind": "number", - "nativeSrc": "464:1:18", + "nativeSrc": "854:1:18", "nodeType": "YulLiteral", - "src": "464:1:18", + "src": "854:1:18", "type": "", "value": "0" }, { "kind": "number", - "nativeSrc": "467:4:18", + "nativeSrc": "857:4:18", "nodeType": "YulLiteral", - "src": "467:4:18", + "src": "857:4:18", "type": "", "value": "0x24" } ], "functionName": { "name": "revert", - "nativeSrc": "457:6:18", + "nativeSrc": "847:6:18", "nodeType": "YulIdentifier", - "src": "457:6:18" + "src": "847:6:18" }, - "nativeSrc": "457:15:18", + "nativeSrc": "847:15:18", "nodeType": "YulFunctionCall", - "src": "457:15:18" + "src": "847:15:18" }, - "nativeSrc": "457:15:18", + "nativeSrc": "847:15:18", "nodeType": "YulExpressionStatement", - "src": "457:15:18" + "src": "847:15:18" } ] }, - "name": "panic_error_0x22", - "nativeSrc": "298:180:18", + "name": "panic_error_0x41", + "nativeSrc": "688:180:18", "nodeType": "YulFunctionDefinition", - "src": "298:180:18" + "src": "688:180:18" }, { "body": { - "nativeSrc": "535:269:18", + "nativeSrc": "917:238:18", "nodeType": "YulBlock", - "src": "535:269:18", + "src": "917:238:18", "statements": [ { - "nativeSrc": "545:22:18", - "nodeType": "YulAssignment", - "src": "545:22:18", - "value": { - "arguments": [ - { - "name": "data", - "nativeSrc": "559:4:18", - "nodeType": "YulIdentifier", - "src": "559:4:18" - }, - { - "kind": "number", - "nativeSrc": "565:1:18", - "nodeType": "YulLiteral", - "src": "565:1:18", - "type": "", - "value": "2" - } - ], - "functionName": { - "name": "div", - "nativeSrc": "555:3:18", - "nodeType": "YulIdentifier", - "src": "555:3:18" - }, - "nativeSrc": "555:12:18", - "nodeType": "YulFunctionCall", - "src": "555:12:18" - }, - "variableNames": [ - { - "name": "length", - "nativeSrc": "545:6:18", - "nodeType": "YulIdentifier", - "src": "545:6:18" - } - ] - }, - { - "nativeSrc": "576:38:18", + "nativeSrc": "927:58:18", "nodeType": "YulVariableDeclaration", - "src": "576:38:18", + "src": "927:58:18", "value": { "arguments": [ { - "name": "data", - "nativeSrc": "606:4:18", + "name": "memPtr", + "nativeSrc": "949:6:18", "nodeType": "YulIdentifier", - "src": "606:4:18" + "src": "949:6:18" }, { - "kind": "number", - "nativeSrc": "612:1:18", - "nodeType": "YulLiteral", - "src": "612:1:18", - "type": "", - "value": "1" + "arguments": [ + { + "name": "size", + "nativeSrc": "979:4:18", + "nodeType": "YulIdentifier", + "src": "979:4:18" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "957:21:18", + "nodeType": "YulIdentifier", + "src": "957:21:18" + }, + "nativeSrc": "957:27:18", + "nodeType": "YulFunctionCall", + "src": "957:27:18" } ], "functionName": { - "name": "and", - "nativeSrc": "602:3:18", + "name": "add", + "nativeSrc": "945:3:18", "nodeType": "YulIdentifier", - "src": "602:3:18" + "src": "945:3:18" }, - "nativeSrc": "602:12:18", + "nativeSrc": "945:40:18", "nodeType": "YulFunctionCall", - "src": "602:12:18" + "src": "945:40:18" }, "variables": [ { - "name": "outOfPlaceEncoding", - "nativeSrc": "580:18:18", + "name": "newFreePtr", + "nativeSrc": "931:10:18", "nodeType": "YulTypedName", - "src": "580:18:18", + "src": "931:10:18", "type": "" } ] }, { "body": { - "nativeSrc": "653:51:18", - "nodeType": "YulBlock", - "src": "653:51:18", - "statements": [ - { - "nativeSrc": "667:27:18", - "nodeType": "YulAssignment", - "src": "667:27:18", - "value": { - "arguments": [ - { - "name": "length", - "nativeSrc": "681:6:18", - "nodeType": "YulIdentifier", - "src": "681:6:18" - }, - { - "kind": "number", - "nativeSrc": "689:4:18", - "nodeType": "YulLiteral", - "src": "689:4:18", - "type": "", - "value": "0x7f" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "677:3:18", - "nodeType": "YulIdentifier", - "src": "677:3:18" - }, - "nativeSrc": "677:17:18", - "nodeType": "YulFunctionCall", - "src": "677:17:18" - }, - "variableNames": [ - { - "name": "length", - "nativeSrc": "667:6:18", - "nodeType": "YulIdentifier", - "src": "667:6:18" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "outOfPlaceEncoding", - "nativeSrc": "633:18:18", - "nodeType": "YulIdentifier", - "src": "633:18:18" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "626:6:18", - "nodeType": "YulIdentifier", - "src": "626:6:18" - }, - "nativeSrc": "626:26:18", - "nodeType": "YulFunctionCall", - "src": "626:26:18" - }, - "nativeSrc": "623:81:18", - "nodeType": "YulIf", - "src": "623:81:18" - }, - { - "body": { - "nativeSrc": "756:42:18", + "nativeSrc": "1096:22:18", "nodeType": "YulBlock", - "src": "756:42:18", + "src": "1096:22:18", "statements": [ { "expression": { "arguments": [], "functionName": { - "name": "panic_error_0x22", - "nativeSrc": "770:16:18", + "name": "panic_error_0x41", + "nativeSrc": "1098:16:18", "nodeType": "YulIdentifier", - "src": "770:16:18" + "src": "1098:16:18" }, - "nativeSrc": "770:18:18", + "nativeSrc": "1098:18:18", "nodeType": "YulFunctionCall", - "src": "770:18:18" + "src": "1098:18:18" }, - "nativeSrc": "770:18:18", + "nativeSrc": "1098:18:18", "nodeType": "YulExpressionStatement", - "src": "770:18:18" + "src": "1098:18:18" } ] }, "condition": { "arguments": [ - { - "name": "outOfPlaceEncoding", - "nativeSrc": "720:18:18", - "nodeType": "YulIdentifier", - "src": "720:18:18" - }, { "arguments": [ { - "name": "length", - "nativeSrc": "743:6:18", + "name": "newFreePtr", + "nativeSrc": "1039:10:18", "nodeType": "YulIdentifier", - "src": "743:6:18" + "src": "1039:10:18" }, { "kind": "number", - "nativeSrc": "751:2:18", + "nativeSrc": "1051:18:18", "nodeType": "YulLiteral", - "src": "751:2:18", + "src": "1051:18:18", "type": "", - "value": "32" + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1036:2:18", + "nodeType": "YulIdentifier", + "src": "1036:2:18" + }, + "nativeSrc": "1036:34:18", + "nodeType": "YulFunctionCall", + "src": "1036:34:18" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "1075:10:18", + "nodeType": "YulIdentifier", + "src": "1075:10:18" + }, + { + "name": "memPtr", + "nativeSrc": "1087:6:18", + "nodeType": "YulIdentifier", + "src": "1087:6:18" } ], "functionName": { "name": "lt", - "nativeSrc": "740:2:18", + "nativeSrc": "1072:2:18", "nodeType": "YulIdentifier", - "src": "740:2:18" + "src": "1072:2:18" }, - "nativeSrc": "740:14:18", + "nativeSrc": "1072:22:18", "nodeType": "YulFunctionCall", - "src": "740:14:18" + "src": "1072:22:18" } ], "functionName": { - "name": "eq", - "nativeSrc": "717:2:18", + "name": "or", + "nativeSrc": "1033:2:18", "nodeType": "YulIdentifier", - "src": "717:2:18" + "src": "1033:2:18" }, - "nativeSrc": "717:38:18", + "nativeSrc": "1033:62:18", "nodeType": "YulFunctionCall", - "src": "717:38:18" + "src": "1033:62:18" }, - "nativeSrc": "714:84:18", + "nativeSrc": "1030:88:18", "nodeType": "YulIf", - "src": "714:84:18" + "src": "1030:88:18" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1134:2:18", + "nodeType": "YulLiteral", + "src": "1134:2:18", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "1138:10:18", + "nodeType": "YulIdentifier", + "src": "1138:10:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1127:6:18", + "nodeType": "YulIdentifier", + "src": "1127:6:18" + }, + "nativeSrc": "1127:22:18", + "nodeType": "YulFunctionCall", + "src": "1127:22:18" + }, + "nativeSrc": "1127:22:18", + "nodeType": "YulExpressionStatement", + "src": "1127:22:18" } ] }, - "name": "extract_byte_array_length", - "nativeSrc": "484:320:18", + "name": "finalize_allocation", + "nativeSrc": "874:281:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "data", - "nativeSrc": "519:4:18", + "name": "memPtr", + "nativeSrc": "903:6:18", "nodeType": "YulTypedName", - "src": "519:4:18", + "src": "903:6:18", "type": "" - } - ], - "returnVariables": [ + }, { - "name": "length", - "nativeSrc": "528:6:18", + "name": "size", + "nativeSrc": "911:4:18", "nodeType": "YulTypedName", - "src": "528:6:18", + "src": "911:4:18", "type": "" } ], - "src": "484:320:18" + "src": "874:281:18" }, { "body": { - "nativeSrc": "864:87:18", + "nativeSrc": "1202:88:18", "nodeType": "YulBlock", - "src": "864:87:18", + "src": "1202:88:18", "statements": [ { - "nativeSrc": "874:11:18", + "nativeSrc": "1212:30:18", "nodeType": "YulAssignment", - "src": "874:11:18", + "src": "1212:30:18", "value": { - "name": "ptr", - "nativeSrc": "882:3:18", - "nodeType": "YulIdentifier", - "src": "882:3:18" + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nativeSrc": "1222:18:18", + "nodeType": "YulIdentifier", + "src": "1222:18:18" + }, + "nativeSrc": "1222:20:18", + "nodeType": "YulFunctionCall", + "src": "1222:20:18" }, "variableNames": [ { - "name": "data", - "nativeSrc": "874:4:18", + "name": "memPtr", + "nativeSrc": "1212:6:18", "nodeType": "YulIdentifier", - "src": "874:4:18" + "src": "1212:6:18" } ] }, @@ -56088,5085 +58168,2553 @@ "expression": { "arguments": [ { - "kind": "number", - "nativeSrc": "902:1:18", - "nodeType": "YulLiteral", - "src": "902:1:18", - "type": "", - "value": "0" + "name": "memPtr", + "nativeSrc": "1271:6:18", + "nodeType": "YulIdentifier", + "src": "1271:6:18" }, { - "name": "ptr", - "nativeSrc": "905:3:18", + "name": "size", + "nativeSrc": "1279:4:18", "nodeType": "YulIdentifier", - "src": "905:3:18" + "src": "1279:4:18" } ], "functionName": { - "name": "mstore", - "nativeSrc": "895:6:18", + "name": "finalize_allocation", + "nativeSrc": "1251:19:18", "nodeType": "YulIdentifier", - "src": "895:6:18" + "src": "1251:19:18" }, - "nativeSrc": "895:14:18", + "nativeSrc": "1251:33:18", "nodeType": "YulFunctionCall", - "src": "895:14:18" + "src": "1251:33:18" }, - "nativeSrc": "895:14:18", + "nativeSrc": "1251:33:18", "nodeType": "YulExpressionStatement", - "src": "895:14:18" - }, - { - "nativeSrc": "918:26:18", - "nodeType": "YulAssignment", - "src": "918:26:18", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "936:1:18", - "nodeType": "YulLiteral", - "src": "936:1:18", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "939:4:18", - "nodeType": "YulLiteral", - "src": "939:4:18", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "keccak256", - "nativeSrc": "926:9:18", - "nodeType": "YulIdentifier", - "src": "926:9:18" - }, - "nativeSrc": "926:18:18", - "nodeType": "YulFunctionCall", - "src": "926:18:18" - }, - "variableNames": [ - { - "name": "data", - "nativeSrc": "918:4:18", - "nodeType": "YulIdentifier", - "src": "918:4:18" - } - ] + "src": "1251:33:18" } ] }, - "name": "array_dataslot_t_string_storage", - "nativeSrc": "810:141:18", + "name": "allocate_memory", + "nativeSrc": "1161:129:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "ptr", - "nativeSrc": "851:3:18", + "name": "size", + "nativeSrc": "1186:4:18", "nodeType": "YulTypedName", - "src": "851:3:18", + "src": "1186:4:18", "type": "" } ], "returnVariables": [ { - "name": "data", - "nativeSrc": "859:4:18", + "name": "memPtr", + "nativeSrc": "1195:6:18", "nodeType": "YulTypedName", - "src": "859:4:18", + "src": "1195:6:18", "type": "" } ], - "src": "810:141:18" + "src": "1161:129:18" }, { "body": { - "nativeSrc": "1001:49:18", + "nativeSrc": "1363:241:18", "nodeType": "YulBlock", - "src": "1001:49:18", + "src": "1363:241:18", "statements": [ { - "nativeSrc": "1011:33:18", - "nodeType": "YulAssignment", - "src": "1011:33:18", - "value": { - "arguments": [ + "body": { + "nativeSrc": "1468:22:18", + "nodeType": "YulBlock", + "src": "1468:22:18", + "statements": [ { - "arguments": [ - { - "name": "value", - "nativeSrc": "1029:5:18", + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "1470:16:18", "nodeType": "YulIdentifier", - "src": "1029:5:18" + "src": "1470:16:18" }, - { - "kind": "number", - "nativeSrc": "1036:2:18", - "nodeType": "YulLiteral", - "src": "1036:2:18", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1025:3:18", - "nodeType": "YulIdentifier", - "src": "1025:3:18" + "nativeSrc": "1470:18:18", + "nodeType": "YulFunctionCall", + "src": "1470:18:18" }, - "nativeSrc": "1025:14:18", - "nodeType": "YulFunctionCall", - "src": "1025:14:18" + "nativeSrc": "1470:18:18", + "nodeType": "YulExpressionStatement", + "src": "1470:18:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "1440:6:18", + "nodeType": "YulIdentifier", + "src": "1440:6:18" }, { "kind": "number", - "nativeSrc": "1041:2:18", + "nativeSrc": "1448:18:18", "nodeType": "YulLiteral", - "src": "1041:2:18", + "src": "1448:18:18", "type": "", - "value": "32" + "value": "0xffffffffffffffff" } ], "functionName": { - "name": "div", - "nativeSrc": "1021:3:18", + "name": "gt", + "nativeSrc": "1437:2:18", + "nodeType": "YulIdentifier", + "src": "1437:2:18" + }, + "nativeSrc": "1437:30:18", + "nodeType": "YulFunctionCall", + "src": "1437:30:18" + }, + "nativeSrc": "1434:56:18", + "nodeType": "YulIf", + "src": "1434:56:18" + }, + { + "nativeSrc": "1500:37:18", + "nodeType": "YulAssignment", + "src": "1500:37:18", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "1530:6:18", + "nodeType": "YulIdentifier", + "src": "1530:6:18" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "1508:21:18", "nodeType": "YulIdentifier", - "src": "1021:3:18" + "src": "1508:21:18" }, - "nativeSrc": "1021:23:18", + "nativeSrc": "1508:29:18", "nodeType": "YulFunctionCall", - "src": "1021:23:18" + "src": "1508:29:18" }, "variableNames": [ { - "name": "result", - "nativeSrc": "1011:6:18", + "name": "size", + "nativeSrc": "1500:4:18", "nodeType": "YulIdentifier", - "src": "1011:6:18" + "src": "1500:4:18" } ] - } - ] - }, - "name": "divide_by_32_ceil", - "nativeSrc": "957:93:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "984:5:18", - "nodeType": "YulTypedName", - "src": "984:5:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "result", - "nativeSrc": "994:6:18", - "nodeType": "YulTypedName", - "src": "994:6:18", - "type": "" - } - ], - "src": "957:93:18" - }, - { - "body": { - "nativeSrc": "1109:54:18", - "nodeType": "YulBlock", - "src": "1109:54:18", - "statements": [ + }, { - "nativeSrc": "1119:37:18", + "nativeSrc": "1574:23:18", "nodeType": "YulAssignment", - "src": "1119:37:18", + "src": "1574:23:18", "value": { "arguments": [ { - "name": "bits", - "nativeSrc": "1144:4:18", + "name": "size", + "nativeSrc": "1586:4:18", "nodeType": "YulIdentifier", - "src": "1144:4:18" + "src": "1586:4:18" }, { - "name": "value", - "nativeSrc": "1150:5:18", - "nodeType": "YulIdentifier", - "src": "1150:5:18" + "kind": "number", + "nativeSrc": "1592:4:18", + "nodeType": "YulLiteral", + "src": "1592:4:18", + "type": "", + "value": "0x20" } ], "functionName": { - "name": "shl", - "nativeSrc": "1140:3:18", + "name": "add", + "nativeSrc": "1582:3:18", "nodeType": "YulIdentifier", - "src": "1140:3:18" + "src": "1582:3:18" }, - "nativeSrc": "1140:16:18", + "nativeSrc": "1582:15:18", "nodeType": "YulFunctionCall", - "src": "1140:16:18" + "src": "1582:15:18" }, "variableNames": [ { - "name": "newValue", - "nativeSrc": "1119:8:18", + "name": "size", + "nativeSrc": "1574:4:18", "nodeType": "YulIdentifier", - "src": "1119:8:18" + "src": "1574:4:18" } ] } ] }, - "name": "shift_left_dynamic", - "nativeSrc": "1056:107:18", + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "1296:308:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "bits", - "nativeSrc": "1084:4:18", - "nodeType": "YulTypedName", - "src": "1084:4:18", - "type": "" - }, - { - "name": "value", - "nativeSrc": "1090:5:18", + "name": "length", + "nativeSrc": "1347:6:18", "nodeType": "YulTypedName", - "src": "1090:5:18", + "src": "1347:6:18", "type": "" } ], "returnVariables": [ { - "name": "newValue", - "nativeSrc": "1100:8:18", + "name": "size", + "nativeSrc": "1358:4:18", "nodeType": "YulTypedName", - "src": "1100:8:18", + "src": "1358:4:18", "type": "" } ], - "src": "1056:107:18" + "src": "1296:308:18" }, { "body": { - "nativeSrc": "1245:317:18", + "nativeSrc": "1672:186:18", "nodeType": "YulBlock", - "src": "1245:317:18", + "src": "1672:186:18", "statements": [ { - "nativeSrc": "1255:35:18", + "nativeSrc": "1683:10:18", "nodeType": "YulVariableDeclaration", - "src": "1255:35:18", + "src": "1683:10:18", "value": { - "arguments": [ - { - "name": "shiftBytes", - "nativeSrc": "1276:10:18", - "nodeType": "YulIdentifier", - "src": "1276:10:18" - }, - { - "kind": "number", - "nativeSrc": "1288:1:18", - "nodeType": "YulLiteral", - "src": "1288:1:18", - "type": "", - "value": "8" - } - ], - "functionName": { - "name": "mul", - "nativeSrc": "1272:3:18", - "nodeType": "YulIdentifier", - "src": "1272:3:18" - }, - "nativeSrc": "1272:18:18", - "nodeType": "YulFunctionCall", - "src": "1272:18:18" + "kind": "number", + "nativeSrc": "1692:1:18", + "nodeType": "YulLiteral", + "src": "1692:1:18", + "type": "", + "value": "0" }, "variables": [ { - "name": "shiftBits", - "nativeSrc": "1259:9:18", + "name": "i", + "nativeSrc": "1687:1:18", "nodeType": "YulTypedName", - "src": "1259:9:18", + "src": "1687:1:18", "type": "" } ] }, { - "nativeSrc": "1299:109:18", - "nodeType": "YulVariableDeclaration", - "src": "1299:109:18", - "value": { - "arguments": [ - { - "name": "shiftBits", - "nativeSrc": "1330:9:18", - "nodeType": "YulIdentifier", - "src": "1330:9:18" - }, + "body": { + "nativeSrc": "1752:63:18", + "nodeType": "YulBlock", + "src": "1752:63:18", + "statements": [ { - "kind": "number", - "nativeSrc": "1341:66:18", - "nodeType": "YulLiteral", - "src": "1341:66:18", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "1777:3:18", + "nodeType": "YulIdentifier", + "src": "1777:3:18" + }, + { + "name": "i", + "nativeSrc": "1782:1:18", + "nodeType": "YulIdentifier", + "src": "1782:1:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1773:3:18", + "nodeType": "YulIdentifier", + "src": "1773:3:18" + }, + "nativeSrc": "1773:11:18", + "nodeType": "YulFunctionCall", + "src": "1773:11:18" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "1796:3:18", + "nodeType": "YulIdentifier", + "src": "1796:3:18" + }, + { + "name": "i", + "nativeSrc": "1801:1:18", + "nodeType": "YulIdentifier", + "src": "1801:1:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1792:3:18", + "nodeType": "YulIdentifier", + "src": "1792:3:18" + }, + "nativeSrc": "1792:11:18", + "nodeType": "YulFunctionCall", + "src": "1792:11:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1786:5:18", + "nodeType": "YulIdentifier", + "src": "1786:5:18" + }, + "nativeSrc": "1786:18:18", + "nodeType": "YulFunctionCall", + "src": "1786:18:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1766:6:18", + "nodeType": "YulIdentifier", + "src": "1766:6:18" + }, + "nativeSrc": "1766:39:18", + "nodeType": "YulFunctionCall", + "src": "1766:39:18" + }, + "nativeSrc": "1766:39:18", + "nodeType": "YulExpressionStatement", + "src": "1766:39:18" } - ], - "functionName": { - "name": "shift_left_dynamic", - "nativeSrc": "1311:18:18", - "nodeType": "YulIdentifier", - "src": "1311:18:18" - }, - "nativeSrc": "1311:97:18", - "nodeType": "YulFunctionCall", - "src": "1311:97:18" + ] }, - "variables": [ - { - "name": "mask", - "nativeSrc": "1303:4:18", - "nodeType": "YulTypedName", - "src": "1303:4:18", - "type": "" - } - ] - }, - { - "nativeSrc": "1417:51:18", - "nodeType": "YulAssignment", - "src": "1417:51:18", - "value": { + "condition": { "arguments": [ { - "name": "shiftBits", - "nativeSrc": "1448:9:18", + "name": "i", + "nativeSrc": "1713:1:18", "nodeType": "YulIdentifier", - "src": "1448:9:18" + "src": "1713:1:18" }, { - "name": "toInsert", - "nativeSrc": "1459:8:18", + "name": "length", + "nativeSrc": "1716:6:18", "nodeType": "YulIdentifier", - "src": "1459:8:18" + "src": "1716:6:18" } ], "functionName": { - "name": "shift_left_dynamic", - "nativeSrc": "1429:18:18", + "name": "lt", + "nativeSrc": "1710:2:18", "nodeType": "YulIdentifier", - "src": "1429:18:18" + "src": "1710:2:18" }, - "nativeSrc": "1429:39:18", + "nativeSrc": "1710:13:18", "nodeType": "YulFunctionCall", - "src": "1429:39:18" + "src": "1710:13:18" }, - "variableNames": [ - { - "name": "toInsert", - "nativeSrc": "1417:8:18", - "nodeType": "YulIdentifier", - "src": "1417:8:18" - } - ] + "nativeSrc": "1702:113:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "1724:19:18", + "nodeType": "YulBlock", + "src": "1724:19:18", + "statements": [ + { + "nativeSrc": "1726:15:18", + "nodeType": "YulAssignment", + "src": "1726:15:18", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "1735:1:18", + "nodeType": "YulIdentifier", + "src": "1735:1:18" + }, + { + "kind": "number", + "nativeSrc": "1738:2:18", + "nodeType": "YulLiteral", + "src": "1738:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1731:3:18", + "nodeType": "YulIdentifier", + "src": "1731:3:18" + }, + "nativeSrc": "1731:10:18", + "nodeType": "YulFunctionCall", + "src": "1731:10:18" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "1726:1:18", + "nodeType": "YulIdentifier", + "src": "1726:1:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "1706:3:18", + "nodeType": "YulBlock", + "src": "1706:3:18", + "statements": [] + }, + "src": "1702:113:18" }, { - "nativeSrc": "1477:30:18", - "nodeType": "YulAssignment", - "src": "1477:30:18", - "value": { + "expression": { "arguments": [ - { - "name": "value", - "nativeSrc": "1490:5:18", - "nodeType": "YulIdentifier", - "src": "1490:5:18" - }, { "arguments": [ { - "name": "mask", - "nativeSrc": "1501:4:18", + "name": "dst", + "nativeSrc": "1835:3:18", + "nodeType": "YulIdentifier", + "src": "1835:3:18" + }, + { + "name": "length", + "nativeSrc": "1840:6:18", "nodeType": "YulIdentifier", - "src": "1501:4:18" + "src": "1840:6:18" } ], "functionName": { - "name": "not", - "nativeSrc": "1497:3:18", + "name": "add", + "nativeSrc": "1831:3:18", "nodeType": "YulIdentifier", - "src": "1497:3:18" + "src": "1831:3:18" }, - "nativeSrc": "1497:9:18", + "nativeSrc": "1831:16:18", "nodeType": "YulFunctionCall", - "src": "1497:9:18" + "src": "1831:16:18" + }, + { + "kind": "number", + "nativeSrc": "1849:1:18", + "nodeType": "YulLiteral", + "src": "1849:1:18", + "type": "", + "value": "0" } ], "functionName": { - "name": "and", - "nativeSrc": "1486:3:18", + "name": "mstore", + "nativeSrc": "1824:6:18", "nodeType": "YulIdentifier", - "src": "1486:3:18" + "src": "1824:6:18" }, - "nativeSrc": "1486:21:18", + "nativeSrc": "1824:27:18", "nodeType": "YulFunctionCall", - "src": "1486:21:18" + "src": "1824:27:18" }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "1477:5:18", - "nodeType": "YulIdentifier", - "src": "1477:5:18" - } - ] - }, - { - "nativeSrc": "1516:40:18", - "nodeType": "YulAssignment", - "src": "1516:40:18", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1529:5:18", - "nodeType": "YulIdentifier", - "src": "1529:5:18" - }, - { - "arguments": [ - { - "name": "toInsert", - "nativeSrc": "1540:8:18", - "nodeType": "YulIdentifier", - "src": "1540:8:18" - }, - { - "name": "mask", - "nativeSrc": "1550:4:18", - "nodeType": "YulIdentifier", - "src": "1550:4:18" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "1536:3:18", - "nodeType": "YulIdentifier", - "src": "1536:3:18" - }, - "nativeSrc": "1536:19:18", - "nodeType": "YulFunctionCall", - "src": "1536:19:18" - } - ], - "functionName": { - "name": "or", - "nativeSrc": "1526:2:18", - "nodeType": "YulIdentifier", - "src": "1526:2:18" - }, - "nativeSrc": "1526:30:18", - "nodeType": "YulFunctionCall", - "src": "1526:30:18" - }, - "variableNames": [ - { - "name": "result", - "nativeSrc": "1516:6:18", - "nodeType": "YulIdentifier", - "src": "1516:6:18" - } - ] + "nativeSrc": "1824:27:18", + "nodeType": "YulExpressionStatement", + "src": "1824:27:18" } ] }, - "name": "update_byte_slice_dynamic32", - "nativeSrc": "1169:393:18", + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "1610:248:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", - "nativeSrc": "1206:5:18", + "name": "src", + "nativeSrc": "1654:3:18", "nodeType": "YulTypedName", - "src": "1206:5:18", + "src": "1654:3:18", "type": "" }, { - "name": "shiftBytes", - "nativeSrc": "1213:10:18", + "name": "dst", + "nativeSrc": "1659:3:18", "nodeType": "YulTypedName", - "src": "1213:10:18", + "src": "1659:3:18", "type": "" }, { - "name": "toInsert", - "nativeSrc": "1225:8:18", - "nodeType": "YulTypedName", - "src": "1225:8:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "result", - "nativeSrc": "1238:6:18", - "nodeType": "YulTypedName", - "src": "1238:6:18", - "type": "" - } - ], - "src": "1169:393:18" - }, - { - "body": { - "nativeSrc": "1613:32:18", - "nodeType": "YulBlock", - "src": "1613:32:18", - "statements": [ - { - "nativeSrc": "1623:16:18", - "nodeType": "YulAssignment", - "src": "1623:16:18", - "value": { - "name": "value", - "nativeSrc": "1634:5:18", - "nodeType": "YulIdentifier", - "src": "1634:5:18" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "1623:7:18", - "nodeType": "YulIdentifier", - "src": "1623:7:18" - } - ] - } - ] - }, - "name": "cleanup_t_uint256", - "nativeSrc": "1568:77:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1595:5:18", - "nodeType": "YulTypedName", - "src": "1595:5:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "1605:7:18", - "nodeType": "YulTypedName", - "src": "1605:7:18", - "type": "" - } - ], - "src": "1568:77:18" - }, - { - "body": { - "nativeSrc": "1683:28:18", - "nodeType": "YulBlock", - "src": "1683:28:18", - "statements": [ - { - "nativeSrc": "1693:12:18", - "nodeType": "YulAssignment", - "src": "1693:12:18", - "value": { - "name": "value", - "nativeSrc": "1700:5:18", - "nodeType": "YulIdentifier", - "src": "1700:5:18" - }, - "variableNames": [ - { - "name": "ret", - "nativeSrc": "1693:3:18", - "nodeType": "YulIdentifier", - "src": "1693:3:18" - } - ] - } - ] - }, - "name": "identity", - "nativeSrc": "1651:60:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1669:5:18", - "nodeType": "YulTypedName", - "src": "1669:5:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "ret", - "nativeSrc": "1679:3:18", + "name": "length", + "nativeSrc": "1664:6:18", "nodeType": "YulTypedName", - "src": "1679:3:18", + "src": "1664:6:18", "type": "" } ], - "src": "1651:60:18" + "src": "1610:248:18" }, { "body": { - "nativeSrc": "1777:82:18", + "nativeSrc": "1959:339:18", "nodeType": "YulBlock", - "src": "1777:82:18", + "src": "1959:339:18", "statements": [ { - "nativeSrc": "1787:66:18", + "nativeSrc": "1969:75:18", "nodeType": "YulAssignment", - "src": "1787:66:18", + "src": "1969:75:18", "value": { "arguments": [ { "arguments": [ { - "arguments": [ - { - "name": "value", - "nativeSrc": "1845:5:18", - "nodeType": "YulIdentifier", - "src": "1845:5:18" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "1827:17:18", - "nodeType": "YulIdentifier", - "src": "1827:17:18" - }, - "nativeSrc": "1827:24:18", - "nodeType": "YulFunctionCall", - "src": "1827:24:18" + "name": "length", + "nativeSrc": "2036:6:18", + "nodeType": "YulIdentifier", + "src": "2036:6:18" } ], "functionName": { - "name": "identity", - "nativeSrc": "1818:8:18", + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "1994:41:18", "nodeType": "YulIdentifier", - "src": "1818:8:18" + "src": "1994:41:18" }, - "nativeSrc": "1818:34:18", + "nativeSrc": "1994:49:18", "nodeType": "YulFunctionCall", - "src": "1818:34:18" + "src": "1994:49:18" } ], "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "1800:17:18", + "name": "allocate_memory", + "nativeSrc": "1978:15:18", "nodeType": "YulIdentifier", - "src": "1800:17:18" + "src": "1978:15:18" }, - "nativeSrc": "1800:53:18", + "nativeSrc": "1978:66:18", "nodeType": "YulFunctionCall", - "src": "1800:53:18" + "src": "1978:66:18" }, "variableNames": [ { - "name": "converted", - "nativeSrc": "1787:9:18", + "name": "array", + "nativeSrc": "1969:5:18", "nodeType": "YulIdentifier", - "src": "1787:9:18" + "src": "1969:5:18" } ] - } - ] - }, - "name": "convert_t_uint256_to_t_uint256", - "nativeSrc": "1717:142:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1757:5:18", - "nodeType": "YulTypedName", - "src": "1757:5:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "1767:9:18", - "nodeType": "YulTypedName", - "src": "1767:9:18", - "type": "" - } - ], - "src": "1717:142:18" - }, - { - "body": { - "nativeSrc": "1912:28:18", - "nodeType": "YulBlock", - "src": "1912:28:18", - "statements": [ + }, { - "nativeSrc": "1922:12:18", - "nodeType": "YulAssignment", - "src": "1922:12:18", - "value": { - "name": "value", - "nativeSrc": "1929:5:18", - "nodeType": "YulIdentifier", - "src": "1929:5:18" - }, - "variableNames": [ - { - "name": "ret", - "nativeSrc": "1922:3:18", + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "2060:5:18", + "nodeType": "YulIdentifier", + "src": "2060:5:18" + }, + { + "name": "length", + "nativeSrc": "2067:6:18", + "nodeType": "YulIdentifier", + "src": "2067:6:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2053:6:18", "nodeType": "YulIdentifier", - "src": "1922:3:18" - } - ] - } - ] - }, - "name": "prepare_store_t_uint256", - "nativeSrc": "1865:75:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1898:5:18", - "nodeType": "YulTypedName", - "src": "1898:5:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "ret", - "nativeSrc": "1908:3:18", - "nodeType": "YulTypedName", - "src": "1908:3:18", - "type": "" - } - ], - "src": "1865:75:18" - }, - { - "body": { - "nativeSrc": "2022:193:18", - "nodeType": "YulBlock", - "src": "2022:193:18", - "statements": [ + "src": "2053:6:18" + }, + "nativeSrc": "2053:21:18", + "nodeType": "YulFunctionCall", + "src": "2053:21:18" + }, + "nativeSrc": "2053:21:18", + "nodeType": "YulExpressionStatement", + "src": "2053:21:18" + }, { - "nativeSrc": "2032:63:18", + "nativeSrc": "2083:27:18", "nodeType": "YulVariableDeclaration", - "src": "2032:63:18", + "src": "2083:27:18", "value": { "arguments": [ { - "name": "value_0", - "nativeSrc": "2087:7:18", + "name": "array", + "nativeSrc": "2098:5:18", "nodeType": "YulIdentifier", - "src": "2087:7:18" + "src": "2098:5:18" + }, + { + "kind": "number", + "nativeSrc": "2105:4:18", + "nodeType": "YulLiteral", + "src": "2105:4:18", + "type": "", + "value": "0x20" } ], "functionName": { - "name": "convert_t_uint256_to_t_uint256", - "nativeSrc": "2056:30:18", + "name": "add", + "nativeSrc": "2094:3:18", "nodeType": "YulIdentifier", - "src": "2056:30:18" + "src": "2094:3:18" }, - "nativeSrc": "2056:39:18", + "nativeSrc": "2094:16:18", "nodeType": "YulFunctionCall", - "src": "2056:39:18" + "src": "2094:16:18" }, "variables": [ { - "name": "convertedValue_0", - "nativeSrc": "2036:16:18", + "name": "dst", + "nativeSrc": "2087:3:18", "nodeType": "YulTypedName", - "src": "2036:16:18", + "src": "2087:3:18", "type": "" } ] }, { - "expression": { - "arguments": [ + "body": { + "nativeSrc": "2148:83:18", + "nodeType": "YulBlock", + "src": "2148:83:18", + "statements": [ { - "name": "slot", - "nativeSrc": "2111:4:18", - "nodeType": "YulIdentifier", - "src": "2111:4:18" - }, + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "2150:77:18", + "nodeType": "YulIdentifier", + "src": "2150:77:18" + }, + "nativeSrc": "2150:79:18", + "nodeType": "YulFunctionCall", + "src": "2150:79:18" + }, + "nativeSrc": "2150:79:18", + "nodeType": "YulExpressionStatement", + "src": "2150:79:18" + } + ] + }, + "condition": { + "arguments": [ { "arguments": [ { - "arguments": [ - { - "name": "slot", - "nativeSrc": "2151:4:18", - "nodeType": "YulIdentifier", - "src": "2151:4:18" - } - ], - "functionName": { - "name": "sload", - "nativeSrc": "2145:5:18", - "nodeType": "YulIdentifier", - "src": "2145:5:18" - }, - "nativeSrc": "2145:11:18", - "nodeType": "YulFunctionCall", - "src": "2145:11:18" - }, - { - "name": "offset", - "nativeSrc": "2158:6:18", + "name": "src", + "nativeSrc": "2129:3:18", "nodeType": "YulIdentifier", - "src": "2158:6:18" + "src": "2129:3:18" }, { - "arguments": [ - { - "name": "convertedValue_0", - "nativeSrc": "2190:16:18", - "nodeType": "YulIdentifier", - "src": "2190:16:18" - } - ], - "functionName": { - "name": "prepare_store_t_uint256", - "nativeSrc": "2166:23:18", - "nodeType": "YulIdentifier", - "src": "2166:23:18" - }, - "nativeSrc": "2166:41:18", - "nodeType": "YulFunctionCall", - "src": "2166:41:18" + "name": "length", + "nativeSrc": "2134:6:18", + "nodeType": "YulIdentifier", + "src": "2134:6:18" } ], "functionName": { - "name": "update_byte_slice_dynamic32", - "nativeSrc": "2117:27:18", + "name": "add", + "nativeSrc": "2125:3:18", "nodeType": "YulIdentifier", - "src": "2117:27:18" + "src": "2125:3:18" }, - "nativeSrc": "2117:91:18", + "nativeSrc": "2125:16:18", "nodeType": "YulFunctionCall", - "src": "2117:91:18" + "src": "2125:16:18" + }, + { + "name": "end", + "nativeSrc": "2143:3:18", + "nodeType": "YulIdentifier", + "src": "2143:3:18" } ], "functionName": { - "name": "sstore", - "nativeSrc": "2104:6:18", + "name": "gt", + "nativeSrc": "2122:2:18", + "nodeType": "YulIdentifier", + "src": "2122:2:18" + }, + "nativeSrc": "2122:25:18", + "nodeType": "YulFunctionCall", + "src": "2122:25:18" + }, + "nativeSrc": "2119:112:18", + "nodeType": "YulIf", + "src": "2119:112:18" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nativeSrc": "2275:3:18", + "nodeType": "YulIdentifier", + "src": "2275:3:18" + }, + { + "name": "dst", + "nativeSrc": "2280:3:18", + "nodeType": "YulIdentifier", + "src": "2280:3:18" + }, + { + "name": "length", + "nativeSrc": "2285:6:18", + "nodeType": "YulIdentifier", + "src": "2285:6:18" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "2240:34:18", "nodeType": "YulIdentifier", - "src": "2104:6:18" + "src": "2240:34:18" }, - "nativeSrc": "2104:105:18", + "nativeSrc": "2240:52:18", "nodeType": "YulFunctionCall", - "src": "2104:105:18" + "src": "2240:52:18" }, - "nativeSrc": "2104:105:18", + "nativeSrc": "2240:52:18", "nodeType": "YulExpressionStatement", - "src": "2104:105:18" + "src": "2240:52:18" } ] }, - "name": "update_storage_value_t_uint256_to_t_uint256", - "nativeSrc": "1946:269:18", + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nativeSrc": "1864:434:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "slot", - "nativeSrc": "1999:4:18", + "name": "src", + "nativeSrc": "1932:3:18", "nodeType": "YulTypedName", - "src": "1999:4:18", + "src": "1932:3:18", "type": "" }, { - "name": "offset", - "nativeSrc": "2005:6:18", + "name": "length", + "nativeSrc": "1937:6:18", "nodeType": "YulTypedName", - "src": "2005:6:18", + "src": "1937:6:18", "type": "" }, { - "name": "value_0", - "nativeSrc": "2013:7:18", + "name": "end", + "nativeSrc": "1945:3:18", "nodeType": "YulTypedName", - "src": "2013:7:18", + "src": "1945:3:18", "type": "" } ], - "src": "1946:269:18" - }, - { - "body": { - "nativeSrc": "2270:24:18", - "nodeType": "YulBlock", - "src": "2270:24:18", - "statements": [ - { - "nativeSrc": "2280:8:18", - "nodeType": "YulAssignment", - "src": "2280:8:18", - "value": { - "kind": "number", - "nativeSrc": "2287:1:18", - "nodeType": "YulLiteral", - "src": "2287:1:18", - "type": "", - "value": "0" - }, - "variableNames": [ - { - "name": "ret", - "nativeSrc": "2280:3:18", - "nodeType": "YulIdentifier", - "src": "2280:3:18" - } - ] - } - ] - }, - "name": "zero_value_for_split_t_uint256", - "nativeSrc": "2221:73:18", - "nodeType": "YulFunctionDefinition", "returnVariables": [ { - "name": "ret", - "nativeSrc": "2266:3:18", + "name": "array", + "nativeSrc": "1953:5:18", "nodeType": "YulTypedName", - "src": "2266:3:18", + "src": "1953:5:18", "type": "" } ], - "src": "2221:73:18" + "src": "1864:434:18" }, { "body": { - "nativeSrc": "2353:136:18", + "nativeSrc": "2391:282:18", "nodeType": "YulBlock", - "src": "2353:136:18", + "src": "2391:282:18", "statements": [ { - "nativeSrc": "2363:46:18", + "body": { + "nativeSrc": "2440:83:18", + "nodeType": "YulBlock", + "src": "2440:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "2442:77:18", + "nodeType": "YulIdentifier", + "src": "2442:77:18" + }, + "nativeSrc": "2442:79:18", + "nodeType": "YulFunctionCall", + "src": "2442:79:18" + }, + "nativeSrc": "2442:79:18", + "nodeType": "YulExpressionStatement", + "src": "2442:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2419:6:18", + "nodeType": "YulIdentifier", + "src": "2419:6:18" + }, + { + "kind": "number", + "nativeSrc": "2427:4:18", + "nodeType": "YulLiteral", + "src": "2427:4:18", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2415:3:18", + "nodeType": "YulIdentifier", + "src": "2415:3:18" + }, + "nativeSrc": "2415:17:18", + "nodeType": "YulFunctionCall", + "src": "2415:17:18" + }, + { + "name": "end", + "nativeSrc": "2434:3:18", + "nodeType": "YulIdentifier", + "src": "2434:3:18" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2411:3:18", + "nodeType": "YulIdentifier", + "src": "2411:3:18" + }, + "nativeSrc": "2411:27:18", + "nodeType": "YulFunctionCall", + "src": "2411:27:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2404:6:18", + "nodeType": "YulIdentifier", + "src": "2404:6:18" + }, + "nativeSrc": "2404:35:18", + "nodeType": "YulFunctionCall", + "src": "2404:35:18" + }, + "nativeSrc": "2401:122:18", + "nodeType": "YulIf", + "src": "2401:122:18" + }, + { + "nativeSrc": "2532:27:18", "nodeType": "YulVariableDeclaration", - "src": "2363:46:18", + "src": "2532:27:18", "value": { - "arguments": [], + "arguments": [ + { + "name": "offset", + "nativeSrc": "2552:6:18", + "nodeType": "YulIdentifier", + "src": "2552:6:18" + } + ], "functionName": { - "name": "zero_value_for_split_t_uint256", - "nativeSrc": "2377:30:18", + "name": "mload", + "nativeSrc": "2546:5:18", "nodeType": "YulIdentifier", - "src": "2377:30:18" + "src": "2546:5:18" }, - "nativeSrc": "2377:32:18", + "nativeSrc": "2546:13:18", "nodeType": "YulFunctionCall", - "src": "2377:32:18" + "src": "2546:13:18" }, "variables": [ { - "name": "zero_0", - "nativeSrc": "2367:6:18", + "name": "length", + "nativeSrc": "2536:6:18", "nodeType": "YulTypedName", - "src": "2367:6:18", + "src": "2536:6:18", "type": "" } ] }, { - "expression": { + "nativeSrc": "2568:99:18", + "nodeType": "YulAssignment", + "src": "2568:99:18", + "value": { "arguments": [ { - "name": "slot", - "nativeSrc": "2462:4:18", - "nodeType": "YulIdentifier", - "src": "2462:4:18" + "arguments": [ + { + "name": "offset", + "nativeSrc": "2640:6:18", + "nodeType": "YulIdentifier", + "src": "2640:6:18" + }, + { + "kind": "number", + "nativeSrc": "2648:4:18", + "nodeType": "YulLiteral", + "src": "2648:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2636:3:18", + "nodeType": "YulIdentifier", + "src": "2636:3:18" + }, + "nativeSrc": "2636:17:18", + "nodeType": "YulFunctionCall", + "src": "2636:17:18" }, { - "name": "offset", - "nativeSrc": "2468:6:18", + "name": "length", + "nativeSrc": "2655:6:18", "nodeType": "YulIdentifier", - "src": "2468:6:18" + "src": "2655:6:18" }, { - "name": "zero_0", - "nativeSrc": "2476:6:18", + "name": "end", + "nativeSrc": "2663:3:18", "nodeType": "YulIdentifier", - "src": "2476:6:18" + "src": "2663:3:18" } ], "functionName": { - "name": "update_storage_value_t_uint256_to_t_uint256", - "nativeSrc": "2418:43:18", + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nativeSrc": "2577:58:18", "nodeType": "YulIdentifier", - "src": "2418:43:18" + "src": "2577:58:18" }, - "nativeSrc": "2418:65:18", + "nativeSrc": "2577:90:18", "nodeType": "YulFunctionCall", - "src": "2418:65:18" + "src": "2577:90:18" }, - "nativeSrc": "2418:65:18", - "nodeType": "YulExpressionStatement", - "src": "2418:65:18" + "variableNames": [ + { + "name": "array", + "nativeSrc": "2568:5:18", + "nodeType": "YulIdentifier", + "src": "2568:5:18" + } + ] } ] }, - "name": "storage_set_to_zero_t_uint256", - "nativeSrc": "2300:189:18", + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nativeSrc": "2318:355:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "slot", - "nativeSrc": "2339:4:18", + "name": "offset", + "nativeSrc": "2369:6:18", "nodeType": "YulTypedName", - "src": "2339:4:18", + "src": "2369:6:18", "type": "" }, { - "name": "offset", - "nativeSrc": "2345:6:18", + "name": "end", + "nativeSrc": "2377:3:18", + "nodeType": "YulTypedName", + "src": "2377:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "2385:5:18", "nodeType": "YulTypedName", - "src": "2345:6:18", + "src": "2385:5:18", "type": "" } ], - "src": "2300:189:18" + "src": "2318:355:18" }, { "body": { - "nativeSrc": "2545:136:18", + "nativeSrc": "2766:437:18", "nodeType": "YulBlock", - "src": "2545:136:18", + "src": "2766:437:18", "statements": [ { "body": { - "nativeSrc": "2612:63:18", + "nativeSrc": "2812:83:18", "nodeType": "YulBlock", - "src": "2612:63:18", + "src": "2812:83:18", "statements": [ { "expression": { - "arguments": [ - { - "name": "start", - "nativeSrc": "2656:5:18", - "nodeType": "YulIdentifier", - "src": "2656:5:18" - }, - { - "kind": "number", - "nativeSrc": "2663:1:18", - "nodeType": "YulLiteral", - "src": "2663:1:18", - "type": "", - "value": "0" - } - ], + "arguments": [], "functionName": { - "name": "storage_set_to_zero_t_uint256", - "nativeSrc": "2626:29:18", + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "2814:77:18", "nodeType": "YulIdentifier", - "src": "2626:29:18" + "src": "2814:77:18" }, - "nativeSrc": "2626:39:18", + "nativeSrc": "2814:79:18", "nodeType": "YulFunctionCall", - "src": "2626:39:18" + "src": "2814:79:18" }, - "nativeSrc": "2626:39:18", + "nativeSrc": "2814:79:18", "nodeType": "YulExpressionStatement", - "src": "2626:39:18" + "src": "2814:79:18" } ] }, "condition": { "arguments": [ { - "name": "start", - "nativeSrc": "2565:5:18", - "nodeType": "YulIdentifier", - "src": "2565:5:18" + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "2787:7:18", + "nodeType": "YulIdentifier", + "src": "2787:7:18" + }, + { + "name": "headStart", + "nativeSrc": "2796:9:18", + "nodeType": "YulIdentifier", + "src": "2796:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2783:3:18", + "nodeType": "YulIdentifier", + "src": "2783:3:18" + }, + "nativeSrc": "2783:23:18", + "nodeType": "YulFunctionCall", + "src": "2783:23:18" }, { - "name": "end", - "nativeSrc": "2572:3:18", - "nodeType": "YulIdentifier", - "src": "2572:3:18" + "kind": "number", + "nativeSrc": "2808:2:18", + "nodeType": "YulLiteral", + "src": "2808:2:18", + "type": "", + "value": "32" } ], "functionName": { - "name": "lt", - "nativeSrc": "2562:2:18", + "name": "slt", + "nativeSrc": "2779:3:18", "nodeType": "YulIdentifier", - "src": "2562:2:18" + "src": "2779:3:18" }, - "nativeSrc": "2562:14:18", + "nativeSrc": "2779:32:18", "nodeType": "YulFunctionCall", - "src": "2562:14:18" + "src": "2779:32:18" }, - "nativeSrc": "2555:120:18", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "2577:26:18", - "nodeType": "YulBlock", - "src": "2577:26:18", - "statements": [ - { - "nativeSrc": "2579:22:18", - "nodeType": "YulAssignment", - "src": "2579:22:18", - "value": { - "arguments": [ - { - "name": "start", - "nativeSrc": "2592:5:18", + "nativeSrc": "2776:119:18", + "nodeType": "YulIf", + "src": "2776:119:18" + }, + { + "nativeSrc": "2905:291:18", + "nodeType": "YulBlock", + "src": "2905:291:18", + "statements": [ + { + "nativeSrc": "2920:38:18", + "nodeType": "YulVariableDeclaration", + "src": "2920:38:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2944:9:18", + "nodeType": "YulIdentifier", + "src": "2944:9:18" + }, + { + "kind": "number", + "nativeSrc": "2955:1:18", + "nodeType": "YulLiteral", + "src": "2955:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2940:3:18", "nodeType": "YulIdentifier", - "src": "2592:5:18" + "src": "2940:3:18" }, - { - "kind": "number", - "nativeSrc": "2599:1:18", - "nodeType": "YulLiteral", - "src": "2599:1:18", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2588:3:18", - "nodeType": "YulIdentifier", - "src": "2588:3:18" - }, - "nativeSrc": "2588:13:18", - "nodeType": "YulFunctionCall", - "src": "2588:13:18" - }, - "variableNames": [ - { - "name": "start", - "nativeSrc": "2579:5:18", - "nodeType": "YulIdentifier", - "src": "2579:5:18" + "nativeSrc": "2940:17:18", + "nodeType": "YulFunctionCall", + "src": "2940:17:18" } - ] - } - ] - }, - "pre": { - "nativeSrc": "2559:2:18", - "nodeType": "YulBlock", - "src": "2559:2:18", - "statements": [] - }, - "src": "2555:120:18" - } - ] - }, - "name": "clear_storage_range_t_bytes1", - "nativeSrc": "2495:186:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "start", - "nativeSrc": "2533:5:18", - "nodeType": "YulTypedName", - "src": "2533:5:18", - "type": "" - }, - { - "name": "end", - "nativeSrc": "2540:3:18", - "nodeType": "YulTypedName", - "src": "2540:3:18", - "type": "" - } - ], - "src": "2495:186:18" - }, - { - "body": { - "nativeSrc": "2766:464:18", - "nodeType": "YulBlock", - "src": "2766:464:18", - "statements": [ - { - "body": { - "nativeSrc": "2792:431:18", - "nodeType": "YulBlock", - "src": "2792:431:18", - "statements": [ - { - "nativeSrc": "2806:54:18", - "nodeType": "YulVariableDeclaration", - "src": "2806:54:18", - "value": { - "arguments": [ - { - "name": "array", - "nativeSrc": "2854:5:18", - "nodeType": "YulIdentifier", - "src": "2854:5:18" - } - ], - "functionName": { - "name": "array_dataslot_t_string_storage", - "nativeSrc": "2822:31:18", - "nodeType": "YulIdentifier", - "src": "2822:31:18" - }, - "nativeSrc": "2822:38:18", - "nodeType": "YulFunctionCall", - "src": "2822:38:18" + ], + "functionName": { + "name": "mload", + "nativeSrc": "2934:5:18", + "nodeType": "YulIdentifier", + "src": "2934:5:18" }, - "variables": [ - { - "name": "dataArea", - "nativeSrc": "2810:8:18", - "nodeType": "YulTypedName", - "src": "2810:8:18", - "type": "" - } - ] + "nativeSrc": "2934:24:18", + "nodeType": "YulFunctionCall", + "src": "2934:24:18" }, - { - "nativeSrc": "2873:63:18", - "nodeType": "YulVariableDeclaration", - "src": "2873:63:18", - "value": { - "arguments": [ - { - "name": "dataArea", - "nativeSrc": "2896:8:18", - "nodeType": "YulIdentifier", - "src": "2896:8:18" - }, - { - "arguments": [ - { - "name": "startIndex", - "nativeSrc": "2924:10:18", - "nodeType": "YulIdentifier", - "src": "2924:10:18" - } - ], + "variables": [ + { + "name": "offset", + "nativeSrc": "2924:6:18", + "nodeType": "YulTypedName", + "src": "2924:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "3005:83:18", + "nodeType": "YulBlock", + "src": "3005:83:18", + "statements": [ + { + "expression": { + "arguments": [], "functionName": { - "name": "divide_by_32_ceil", - "nativeSrc": "2906:17:18", + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "3007:77:18", "nodeType": "YulIdentifier", - "src": "2906:17:18" + "src": "3007:77:18" }, - "nativeSrc": "2906:29:18", + "nativeSrc": "3007:79:18", "nodeType": "YulFunctionCall", - "src": "2906:29:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2892:3:18", + "src": "3007:79:18" + }, + "nativeSrc": "3007:79:18", + "nodeType": "YulExpressionStatement", + "src": "3007:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2977:6:18", "nodeType": "YulIdentifier", - "src": "2892:3:18" + "src": "2977:6:18" }, - "nativeSrc": "2892:44:18", - "nodeType": "YulFunctionCall", - "src": "2892:44:18" - }, - "variables": [ { - "name": "deleteStart", - "nativeSrc": "2877:11:18", - "nodeType": "YulTypedName", - "src": "2877:11:18", - "type": "" + "kind": "number", + "nativeSrc": "2985:18:18", + "nodeType": "YulLiteral", + "src": "2985:18:18", + "type": "", + "value": "0xffffffffffffffff" } - ] + ], + "functionName": { + "name": "gt", + "nativeSrc": "2974:2:18", + "nodeType": "YulIdentifier", + "src": "2974:2:18" + }, + "nativeSrc": "2974:30:18", + "nodeType": "YulFunctionCall", + "src": "2974:30:18" }, - { - "body": { - "nativeSrc": "3093:27:18", - "nodeType": "YulBlock", - "src": "3093:27:18", - "statements": [ - { - "nativeSrc": "3095:23:18", - "nodeType": "YulAssignment", - "src": "3095:23:18", - "value": { - "name": "dataArea", - "nativeSrc": "3110:8:18", + "nativeSrc": "2971:117:18", + "nodeType": "YulIf", + "src": "2971:117:18" + }, + { + "nativeSrc": "3102:84:18", + "nodeType": "YulAssignment", + "src": "3102:84:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3158:9:18", "nodeType": "YulIdentifier", - "src": "3110:8:18" + "src": "3158:9:18" }, - "variableNames": [ - { - "name": "deleteStart", - "nativeSrc": "3095:11:18", - "nodeType": "YulIdentifier", - "src": "3095:11:18" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "startIndex", - "nativeSrc": "3077:10:18", + { + "name": "offset", + "nativeSrc": "3169:6:18", + "nodeType": "YulIdentifier", + "src": "3169:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3154:3:18", "nodeType": "YulIdentifier", - "src": "3077:10:18" + "src": "3154:3:18" }, - { - "kind": "number", - "nativeSrc": "3089:2:18", - "nodeType": "YulLiteral", - "src": "3089:2:18", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "3074:2:18", - "nodeType": "YulIdentifier", - "src": "3074:2:18" + "nativeSrc": "3154:22:18", + "nodeType": "YulFunctionCall", + "src": "3154:22:18" }, - "nativeSrc": "3074:18:18", - "nodeType": "YulFunctionCall", - "src": "3074:18:18" - }, - "nativeSrc": "3071:49:18", - "nodeType": "YulIf", - "src": "3071:49:18" - }, - { - "expression": { - "arguments": [ - { - "name": "deleteStart", - "nativeSrc": "3162:11:18", - "nodeType": "YulIdentifier", - "src": "3162:11:18" - }, - { - "arguments": [ - { - "name": "dataArea", - "nativeSrc": "3179:8:18", - "nodeType": "YulIdentifier", - "src": "3179:8:18" - }, - { - "arguments": [ - { - "name": "len", - "nativeSrc": "3207:3:18", - "nodeType": "YulIdentifier", - "src": "3207:3:18" - } - ], - "functionName": { - "name": "divide_by_32_ceil", - "nativeSrc": "3189:17:18", - "nodeType": "YulIdentifier", - "src": "3189:17:18" - }, - "nativeSrc": "3189:22:18", - "nodeType": "YulFunctionCall", - "src": "3189:22:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3175:3:18", - "nodeType": "YulIdentifier", - "src": "3175:3:18" - }, - "nativeSrc": "3175:37:18", - "nodeType": "YulFunctionCall", - "src": "3175:37:18" - } - ], - "functionName": { - "name": "clear_storage_range_t_bytes1", - "nativeSrc": "3133:28:18", + { + "name": "dataEnd", + "nativeSrc": "3178:7:18", "nodeType": "YulIdentifier", - "src": "3133:28:18" - }, - "nativeSrc": "3133:80:18", - "nodeType": "YulFunctionCall", - "src": "3133:80:18" + "src": "3178:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nativeSrc": "3112:41:18", + "nodeType": "YulIdentifier", + "src": "3112:41:18" }, - "nativeSrc": "3133:80:18", - "nodeType": "YulExpressionStatement", - "src": "3133:80:18" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "len", - "nativeSrc": "2783:3:18", - "nodeType": "YulIdentifier", - "src": "2783:3:18" + "nativeSrc": "3112:74:18", + "nodeType": "YulFunctionCall", + "src": "3112:74:18" }, - { - "kind": "number", - "nativeSrc": "2788:2:18", - "nodeType": "YulLiteral", - "src": "2788:2:18", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "2780:2:18", - "nodeType": "YulIdentifier", - "src": "2780:2:18" - }, - "nativeSrc": "2780:11:18", - "nodeType": "YulFunctionCall", - "src": "2780:11:18" - }, - "nativeSrc": "2777:446:18", - "nodeType": "YulIf", - "src": "2777:446:18" + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3102:6:18", + "nodeType": "YulIdentifier", + "src": "3102:6:18" + } + ] + } + ] } ] }, - "name": "clean_up_bytearray_end_slots_t_string_storage", - "nativeSrc": "2687:543:18", + "name": "abi_decode_tuple_t_string_memory_ptr_fromMemory", + "nativeSrc": "2679:524:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "array", - "nativeSrc": "2742:5:18", + "name": "headStart", + "nativeSrc": "2736:9:18", "nodeType": "YulTypedName", - "src": "2742:5:18", + "src": "2736:9:18", "type": "" }, { - "name": "len", - "nativeSrc": "2749:3:18", + "name": "dataEnd", + "nativeSrc": "2747:7:18", "nodeType": "YulTypedName", - "src": "2749:3:18", + "src": "2747:7:18", "type": "" - }, + } + ], + "returnVariables": [ { - "name": "startIndex", - "nativeSrc": "2754:10:18", + "name": "value0", + "nativeSrc": "2759:6:18", "nodeType": "YulTypedName", - "src": "2754:10:18", + "src": "2759:6:18", "type": "" } ], - "src": "2687:543:18" + "src": "2679:524:18" }, { "body": { - "nativeSrc": "3299:54:18", + "nativeSrc": "3268:40:18", "nodeType": "YulBlock", - "src": "3299:54:18", + "src": "3268:40:18", "statements": [ { - "nativeSrc": "3309:37:18", + "nativeSrc": "3279:22:18", "nodeType": "YulAssignment", - "src": "3309:37:18", + "src": "3279:22:18", "value": { "arguments": [ - { - "name": "bits", - "nativeSrc": "3334:4:18", - "nodeType": "YulIdentifier", - "src": "3334:4:18" - }, { "name": "value", - "nativeSrc": "3340:5:18", + "nativeSrc": "3295:5:18", "nodeType": "YulIdentifier", - "src": "3340:5:18" + "src": "3295:5:18" } ], "functionName": { - "name": "shr", - "nativeSrc": "3330:3:18", + "name": "mload", + "nativeSrc": "3289:5:18", "nodeType": "YulIdentifier", - "src": "3330:3:18" + "src": "3289:5:18" }, - "nativeSrc": "3330:16:18", + "nativeSrc": "3289:12:18", "nodeType": "YulFunctionCall", - "src": "3330:16:18" + "src": "3289:12:18" }, "variableNames": [ { - "name": "newValue", - "nativeSrc": "3309:8:18", + "name": "length", + "nativeSrc": "3279:6:18", "nodeType": "YulIdentifier", - "src": "3309:8:18" + "src": "3279:6:18" } ] } ] }, - "name": "shift_right_unsigned_dynamic", - "nativeSrc": "3236:117:18", + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "3209:99:18", "nodeType": "YulFunctionDefinition", "parameters": [ - { - "name": "bits", - "nativeSrc": "3274:4:18", - "nodeType": "YulTypedName", - "src": "3274:4:18", - "type": "" - }, { "name": "value", - "nativeSrc": "3280:5:18", + "nativeSrc": "3251:5:18", "nodeType": "YulTypedName", - "src": "3280:5:18", + "src": "3251:5:18", "type": "" } ], "returnVariables": [ { - "name": "newValue", - "nativeSrc": "3290:8:18", + "name": "length", + "nativeSrc": "3261:6:18", "nodeType": "YulTypedName", - "src": "3290:8:18", + "src": "3261:6:18", "type": "" } ], - "src": "3236:117:18" + "src": "3209:99:18" }, { "body": { - "nativeSrc": "3410:118:18", + "nativeSrc": "3342:152:18", "nodeType": "YulBlock", - "src": "3410:118:18", + "src": "3342:152:18", "statements": [ { - "nativeSrc": "3420:68:18", - "nodeType": "YulVariableDeclaration", - "src": "3420:68:18", - "value": { + "expression": { "arguments": [ { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "3469:1:18", - "nodeType": "YulLiteral", - "src": "3469:1:18", - "type": "", - "value": "8" - }, - { - "name": "bytes", - "nativeSrc": "3472:5:18", - "nodeType": "YulIdentifier", - "src": "3472:5:18" - } - ], - "functionName": { - "name": "mul", - "nativeSrc": "3465:3:18", - "nodeType": "YulIdentifier", - "src": "3465:3:18" - }, - "nativeSrc": "3465:13:18", - "nodeType": "YulFunctionCall", - "src": "3465:13:18" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "3484:1:18", - "nodeType": "YulLiteral", - "src": "3484:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "3480:3:18", - "nodeType": "YulIdentifier", - "src": "3480:3:18" - }, - "nativeSrc": "3480:6:18", - "nodeType": "YulFunctionCall", - "src": "3480:6:18" - } - ], - "functionName": { - "name": "shift_right_unsigned_dynamic", - "nativeSrc": "3436:28:18", - "nodeType": "YulIdentifier", - "src": "3436:28:18" - }, - "nativeSrc": "3436:51:18", - "nodeType": "YulFunctionCall", - "src": "3436:51:18" + "kind": "number", + "nativeSrc": "3359:1:18", + "nodeType": "YulLiteral", + "src": "3359:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3362:77:18", + "nodeType": "YulLiteral", + "src": "3362:77:18", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { - "name": "not", - "nativeSrc": "3432:3:18", + "name": "mstore", + "nativeSrc": "3352:6:18", "nodeType": "YulIdentifier", - "src": "3432:3:18" + "src": "3352:6:18" }, - "nativeSrc": "3432:56:18", + "nativeSrc": "3352:88:18", "nodeType": "YulFunctionCall", - "src": "3432:56:18" + "src": "3352:88:18" }, - "variables": [ - { - "name": "mask", - "nativeSrc": "3424:4:18", - "nodeType": "YulTypedName", - "src": "3424:4:18", - "type": "" - } - ] + "nativeSrc": "3352:88:18", + "nodeType": "YulExpressionStatement", + "src": "3352:88:18" }, { - "nativeSrc": "3497:25:18", - "nodeType": "YulAssignment", - "src": "3497:25:18", - "value": { + "expression": { "arguments": [ { - "name": "data", - "nativeSrc": "3511:4:18", - "nodeType": "YulIdentifier", - "src": "3511:4:18" + "kind": "number", + "nativeSrc": "3456:1:18", + "nodeType": "YulLiteral", + "src": "3456:1:18", + "type": "", + "value": "4" }, { - "name": "mask", - "nativeSrc": "3517:4:18", - "nodeType": "YulIdentifier", - "src": "3517:4:18" + "kind": "number", + "nativeSrc": "3459:4:18", + "nodeType": "YulLiteral", + "src": "3459:4:18", + "type": "", + "value": "0x22" } ], "functionName": { - "name": "and", - "nativeSrc": "3507:3:18", + "name": "mstore", + "nativeSrc": "3449:6:18", "nodeType": "YulIdentifier", - "src": "3507:3:18" + "src": "3449:6:18" }, - "nativeSrc": "3507:15:18", + "nativeSrc": "3449:15:18", "nodeType": "YulFunctionCall", - "src": "3507:15:18" + "src": "3449:15:18" }, - "variableNames": [ - { - "name": "result", - "nativeSrc": "3497:6:18", + "nativeSrc": "3449:15:18", + "nodeType": "YulExpressionStatement", + "src": "3449:15:18" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3480:1:18", + "nodeType": "YulLiteral", + "src": "3480:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3483:4:18", + "nodeType": "YulLiteral", + "src": "3483:4:18", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3473:6:18", "nodeType": "YulIdentifier", - "src": "3497:6:18" - } - ] + "src": "3473:6:18" + }, + "nativeSrc": "3473:15:18", + "nodeType": "YulFunctionCall", + "src": "3473:15:18" + }, + "nativeSrc": "3473:15:18", + "nodeType": "YulExpressionStatement", + "src": "3473:15:18" } ] }, - "name": "mask_bytes_dynamic", - "nativeSrc": "3359:169:18", + "name": "panic_error_0x22", + "nativeSrc": "3314:180:18", "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "data", - "nativeSrc": "3387:4:18", - "nodeType": "YulTypedName", - "src": "3387:4:18", - "type": "" - }, - { - "name": "bytes", - "nativeSrc": "3393:5:18", - "nodeType": "YulTypedName", - "src": "3393:5:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "result", - "nativeSrc": "3403:6:18", - "nodeType": "YulTypedName", - "src": "3403:6:18", - "type": "" - } - ], - "src": "3359:169:18" + "src": "3314:180:18" }, { "body": { - "nativeSrc": "3614:214:18", + "nativeSrc": "3551:269:18", "nodeType": "YulBlock", - "src": "3614:214:18", + "src": "3551:269:18", "statements": [ { - "nativeSrc": "3747:37:18", + "nativeSrc": "3561:22:18", "nodeType": "YulAssignment", - "src": "3747:37:18", + "src": "3561:22:18", "value": { "arguments": [ { "name": "data", - "nativeSrc": "3774:4:18", + "nativeSrc": "3575:4:18", "nodeType": "YulIdentifier", - "src": "3774:4:18" + "src": "3575:4:18" }, { - "name": "len", - "nativeSrc": "3780:3:18", - "nodeType": "YulIdentifier", - "src": "3780:3:18" + "kind": "number", + "nativeSrc": "3581:1:18", + "nodeType": "YulLiteral", + "src": "3581:1:18", + "type": "", + "value": "2" } ], "functionName": { - "name": "mask_bytes_dynamic", - "nativeSrc": "3755:18:18", + "name": "div", + "nativeSrc": "3571:3:18", "nodeType": "YulIdentifier", - "src": "3755:18:18" + "src": "3571:3:18" }, - "nativeSrc": "3755:29:18", + "nativeSrc": "3571:12:18", "nodeType": "YulFunctionCall", - "src": "3755:29:18" + "src": "3571:12:18" }, "variableNames": [ { - "name": "data", - "nativeSrc": "3747:4:18", + "name": "length", + "nativeSrc": "3561:6:18", "nodeType": "YulIdentifier", - "src": "3747:4:18" + "src": "3561:6:18" } ] }, { - "nativeSrc": "3793:29:18", - "nodeType": "YulAssignment", - "src": "3793:29:18", + "nativeSrc": "3592:38:18", + "nodeType": "YulVariableDeclaration", + "src": "3592:38:18", "value": { "arguments": [ { "name": "data", - "nativeSrc": "3804:4:18", + "nativeSrc": "3622:4:18", "nodeType": "YulIdentifier", - "src": "3804:4:18" + "src": "3622:4:18" }, { - "arguments": [ - { - "kind": "number", - "nativeSrc": "3814:1:18", - "nodeType": "YulLiteral", - "src": "3814:1:18", - "type": "", - "value": "2" - }, - { - "name": "len", - "nativeSrc": "3817:3:18", - "nodeType": "YulIdentifier", - "src": "3817:3:18" - } - ], - "functionName": { - "name": "mul", - "nativeSrc": "3810:3:18", - "nodeType": "YulIdentifier", - "src": "3810:3:18" - }, - "nativeSrc": "3810:11:18", - "nodeType": "YulFunctionCall", - "src": "3810:11:18" + "kind": "number", + "nativeSrc": "3628:1:18", + "nodeType": "YulLiteral", + "src": "3628:1:18", + "type": "", + "value": "1" } ], "functionName": { - "name": "or", - "nativeSrc": "3801:2:18", + "name": "and", + "nativeSrc": "3618:3:18", "nodeType": "YulIdentifier", - "src": "3801:2:18" + "src": "3618:3:18" }, - "nativeSrc": "3801:21:18", + "nativeSrc": "3618:12:18", "nodeType": "YulFunctionCall", - "src": "3801:21:18" + "src": "3618:12:18" }, - "variableNames": [ + "variables": [ { - "name": "used", - "nativeSrc": "3793:4:18", - "nodeType": "YulIdentifier", - "src": "3793:4:18" + "name": "outOfPlaceEncoding", + "nativeSrc": "3596:18:18", + "nodeType": "YulTypedName", + "src": "3596:18:18", + "type": "" } ] - } - ] - }, - "name": "extract_used_part_and_set_length_of_short_byte_array", - "nativeSrc": "3533:295:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "data", - "nativeSrc": "3595:4:18", - "nodeType": "YulTypedName", - "src": "3595:4:18", - "type": "" - }, - { - "name": "len", - "nativeSrc": "3601:3:18", - "nodeType": "YulTypedName", - "src": "3601:3:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "used", - "nativeSrc": "3609:4:18", - "nodeType": "YulTypedName", - "src": "3609:4:18", - "type": "" - } - ], - "src": "3533:295:18" - }, - { - "body": { - "nativeSrc": "3925:1303:18", - "nodeType": "YulBlock", - "src": "3925:1303:18", - "statements": [ + }, { - "nativeSrc": "3936:51:18", - "nodeType": "YulVariableDeclaration", - "src": "3936:51:18", - "value": { + "body": { + "nativeSrc": "3669:51:18", + "nodeType": "YulBlock", + "src": "3669:51:18", + "statements": [ + { + "nativeSrc": "3683:27:18", + "nodeType": "YulAssignment", + "src": "3683:27:18", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "3697:6:18", + "nodeType": "YulIdentifier", + "src": "3697:6:18" + }, + { + "kind": "number", + "nativeSrc": "3705:4:18", + "nodeType": "YulLiteral", + "src": "3705:4:18", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "3693:3:18", + "nodeType": "YulIdentifier", + "src": "3693:3:18" + }, + "nativeSrc": "3693:17:18", + "nodeType": "YulFunctionCall", + "src": "3693:17:18" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "3683:6:18", + "nodeType": "YulIdentifier", + "src": "3683:6:18" + } + ] + } + ] + }, + "condition": { "arguments": [ { - "name": "src", - "nativeSrc": "3983:3:18", + "name": "outOfPlaceEncoding", + "nativeSrc": "3649:18:18", "nodeType": "YulIdentifier", - "src": "3983:3:18" + "src": "3649:18:18" } ], "functionName": { - "name": "array_length_t_string_memory_ptr", - "nativeSrc": "3950:32:18", + "name": "iszero", + "nativeSrc": "3642:6:18", "nodeType": "YulIdentifier", - "src": "3950:32:18" + "src": "3642:6:18" }, - "nativeSrc": "3950:37:18", + "nativeSrc": "3642:26:18", "nodeType": "YulFunctionCall", - "src": "3950:37:18" + "src": "3642:26:18" }, - "variables": [ - { - "name": "newLen", - "nativeSrc": "3940:6:18", - "nodeType": "YulTypedName", - "src": "3940:6:18", - "type": "" - } - ] + "nativeSrc": "3639:81:18", + "nodeType": "YulIf", + "src": "3639:81:18" }, { "body": { - "nativeSrc": "4072:22:18", + "nativeSrc": "3772:42:18", "nodeType": "YulBlock", - "src": "4072:22:18", + "src": "3772:42:18", "statements": [ { "expression": { "arguments": [], "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "4074:16:18", + "name": "panic_error_0x22", + "nativeSrc": "3786:16:18", "nodeType": "YulIdentifier", - "src": "4074:16:18" + "src": "3786:16:18" }, - "nativeSrc": "4074:18:18", + "nativeSrc": "3786:18:18", "nodeType": "YulFunctionCall", - "src": "4074:18:18" + "src": "3786:18:18" }, - "nativeSrc": "4074:18:18", + "nativeSrc": "3786:18:18", "nodeType": "YulExpressionStatement", - "src": "4074:18:18" + "src": "3786:18:18" } ] }, "condition": { "arguments": [ { - "name": "newLen", - "nativeSrc": "4044:6:18", + "name": "outOfPlaceEncoding", + "nativeSrc": "3736:18:18", "nodeType": "YulIdentifier", - "src": "4044:6:18" + "src": "3736:18:18" }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "3759:6:18", + "nodeType": "YulIdentifier", + "src": "3759:6:18" + }, + { + "kind": "number", + "nativeSrc": "3767:2:18", + "nodeType": "YulLiteral", + "src": "3767:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "3756:2:18", + "nodeType": "YulIdentifier", + "src": "3756:2:18" + }, + "nativeSrc": "3756:14:18", + "nodeType": "YulFunctionCall", + "src": "3756:14:18" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "3733:2:18", + "nodeType": "YulIdentifier", + "src": "3733:2:18" + }, + "nativeSrc": "3733:38:18", + "nodeType": "YulFunctionCall", + "src": "3733:38:18" + }, + "nativeSrc": "3730:84:18", + "nodeType": "YulIf", + "src": "3730:84:18" + } + ] + }, + "name": "extract_byte_array_length", + "nativeSrc": "3500:320:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "3535:4:18", + "nodeType": "YulTypedName", + "src": "3535:4:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "3544:6:18", + "nodeType": "YulTypedName", + "src": "3544:6:18", + "type": "" + } + ], + "src": "3500:320:18" + }, + { + "body": { + "nativeSrc": "3880:87:18", + "nodeType": "YulBlock", + "src": "3880:87:18", + "statements": [ + { + "nativeSrc": "3890:11:18", + "nodeType": "YulAssignment", + "src": "3890:11:18", + "value": { + "name": "ptr", + "nativeSrc": "3898:3:18", + "nodeType": "YulIdentifier", + "src": "3898:3:18" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "3890:4:18", + "nodeType": "YulIdentifier", + "src": "3890:4:18" + } + ] + }, + { + "expression": { + "arguments": [ { "kind": "number", - "nativeSrc": "4052:18:18", + "nativeSrc": "3918:1:18", "nodeType": "YulLiteral", - "src": "4052:18:18", + "src": "3918:1:18", "type": "", - "value": "0xffffffffffffffff" + "value": "0" + }, + { + "name": "ptr", + "nativeSrc": "3921:3:18", + "nodeType": "YulIdentifier", + "src": "3921:3:18" } ], "functionName": { - "name": "gt", - "nativeSrc": "4041:2:18", + "name": "mstore", + "nativeSrc": "3911:6:18", "nodeType": "YulIdentifier", - "src": "4041:2:18" + "src": "3911:6:18" }, - "nativeSrc": "4041:30:18", + "nativeSrc": "3911:14:18", "nodeType": "YulFunctionCall", - "src": "4041:30:18" + "src": "3911:14:18" }, - "nativeSrc": "4038:56:18", - "nodeType": "YulIf", - "src": "4038:56:18" + "nativeSrc": "3911:14:18", + "nodeType": "YulExpressionStatement", + "src": "3911:14:18" }, { - "nativeSrc": "4104:52:18", - "nodeType": "YulVariableDeclaration", - "src": "4104:52:18", + "nativeSrc": "3934:26:18", + "nodeType": "YulAssignment", + "src": "3934:26:18", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3952:1:18", + "nodeType": "YulLiteral", + "src": "3952:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3955:4:18", + "nodeType": "YulLiteral", + "src": "3955:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "3942:9:18", + "nodeType": "YulIdentifier", + "src": "3942:9:18" + }, + "nativeSrc": "3942:18:18", + "nodeType": "YulFunctionCall", + "src": "3942:18:18" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "3934:4:18", + "nodeType": "YulIdentifier", + "src": "3934:4:18" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nativeSrc": "3826:141:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "3867:3:18", + "nodeType": "YulTypedName", + "src": "3867:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nativeSrc": "3875:4:18", + "nodeType": "YulTypedName", + "src": "3875:4:18", + "type": "" + } + ], + "src": "3826:141:18" + }, + { + "body": { + "nativeSrc": "4017:49:18", + "nodeType": "YulBlock", + "src": "4017:49:18", + "statements": [ + { + "nativeSrc": "4027:33:18", + "nodeType": "YulAssignment", + "src": "4027:33:18", "value": { "arguments": [ { "arguments": [ { - "name": "slot", - "nativeSrc": "4150:4:18", + "name": "value", + "nativeSrc": "4045:5:18", "nodeType": "YulIdentifier", - "src": "4150:4:18" + "src": "4045:5:18" + }, + { + "kind": "number", + "nativeSrc": "4052:2:18", + "nodeType": "YulLiteral", + "src": "4052:2:18", + "type": "", + "value": "31" } ], "functionName": { - "name": "sload", - "nativeSrc": "4144:5:18", + "name": "add", + "nativeSrc": "4041:3:18", "nodeType": "YulIdentifier", - "src": "4144:5:18" + "src": "4041:3:18" }, - "nativeSrc": "4144:11:18", + "nativeSrc": "4041:14:18", "nodeType": "YulFunctionCall", - "src": "4144:11:18" + "src": "4041:14:18" + }, + { + "kind": "number", + "nativeSrc": "4057:2:18", + "nodeType": "YulLiteral", + "src": "4057:2:18", + "type": "", + "value": "32" } ], "functionName": { - "name": "extract_byte_array_length", - "nativeSrc": "4118:25:18", + "name": "div", + "nativeSrc": "4037:3:18", "nodeType": "YulIdentifier", - "src": "4118:25:18" + "src": "4037:3:18" }, - "nativeSrc": "4118:38:18", + "nativeSrc": "4037:23:18", "nodeType": "YulFunctionCall", - "src": "4118:38:18" + "src": "4037:23:18" }, - "variables": [ + "variableNames": [ { - "name": "oldLen", - "nativeSrc": "4108:6:18", - "nodeType": "YulTypedName", - "src": "4108:6:18", - "type": "" + "name": "result", + "nativeSrc": "4027:6:18", + "nodeType": "YulIdentifier", + "src": "4027:6:18" } ] - }, + } + ] + }, + "name": "divide_by_32_ceil", + "nativeSrc": "3973:93:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4000:5:18", + "nodeType": "YulTypedName", + "src": "4000:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "4010:6:18", + "nodeType": "YulTypedName", + "src": "4010:6:18", + "type": "" + } + ], + "src": "3973:93:18" + }, + { + "body": { + "nativeSrc": "4125:54:18", + "nodeType": "YulBlock", + "src": "4125:54:18", + "statements": [ { - "expression": { + "nativeSrc": "4135:37:18", + "nodeType": "YulAssignment", + "src": "4135:37:18", + "value": { "arguments": [ { - "name": "slot", - "nativeSrc": "4249:4:18", + "name": "bits", + "nativeSrc": "4160:4:18", "nodeType": "YulIdentifier", - "src": "4249:4:18" + "src": "4160:4:18" }, { - "name": "oldLen", - "nativeSrc": "4255:6:18", + "name": "value", + "nativeSrc": "4166:5:18", "nodeType": "YulIdentifier", - "src": "4255:6:18" - }, + "src": "4166:5:18" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "4156:3:18", + "nodeType": "YulIdentifier", + "src": "4156:3:18" + }, + "nativeSrc": "4156:16:18", + "nodeType": "YulFunctionCall", + "src": "4156:16:18" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "4135:8:18", + "nodeType": "YulIdentifier", + "src": "4135:8:18" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nativeSrc": "4072:107:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "4100:4:18", + "nodeType": "YulTypedName", + "src": "4100:4:18", + "type": "" + }, + { + "name": "value", + "nativeSrc": "4106:5:18", + "nodeType": "YulTypedName", + "src": "4106:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "4116:8:18", + "nodeType": "YulTypedName", + "src": "4116:8:18", + "type": "" + } + ], + "src": "4072:107:18" + }, + { + "body": { + "nativeSrc": "4261:317:18", + "nodeType": "YulBlock", + "src": "4261:317:18", + "statements": [ + { + "nativeSrc": "4271:35:18", + "nodeType": "YulVariableDeclaration", + "src": "4271:35:18", + "value": { + "arguments": [ { - "name": "newLen", - "nativeSrc": "4263:6:18", + "name": "shiftBytes", + "nativeSrc": "4292:10:18", "nodeType": "YulIdentifier", - "src": "4263:6:18" + "src": "4292:10:18" + }, + { + "kind": "number", + "nativeSrc": "4304:1:18", + "nodeType": "YulLiteral", + "src": "4304:1:18", + "type": "", + "value": "8" } ], "functionName": { - "name": "clean_up_bytearray_end_slots_t_string_storage", - "nativeSrc": "4203:45:18", + "name": "mul", + "nativeSrc": "4288:3:18", "nodeType": "YulIdentifier", - "src": "4203:45:18" + "src": "4288:3:18" }, - "nativeSrc": "4203:67:18", + "nativeSrc": "4288:18:18", "nodeType": "YulFunctionCall", - "src": "4203:67:18" + "src": "4288:18:18" }, - "nativeSrc": "4203:67:18", - "nodeType": "YulExpressionStatement", - "src": "4203:67:18" + "variables": [ + { + "name": "shiftBits", + "nativeSrc": "4275:9:18", + "nodeType": "YulTypedName", + "src": "4275:9:18", + "type": "" + } + ] }, { - "nativeSrc": "4280:18:18", + "nativeSrc": "4315:109:18", "nodeType": "YulVariableDeclaration", - "src": "4280:18:18", + "src": "4315:109:18", "value": { - "kind": "number", - "nativeSrc": "4297:1:18", - "nodeType": "YulLiteral", - "src": "4297:1:18", - "type": "", - "value": "0" + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "4346:9:18", + "nodeType": "YulIdentifier", + "src": "4346:9:18" + }, + { + "kind": "number", + "nativeSrc": "4357:66:18", + "nodeType": "YulLiteral", + "src": "4357:66:18", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "4327:18:18", + "nodeType": "YulIdentifier", + "src": "4327:18:18" + }, + "nativeSrc": "4327:97:18", + "nodeType": "YulFunctionCall", + "src": "4327:97:18" }, "variables": [ { - "name": "srcOffset", - "nativeSrc": "4284:9:18", + "name": "mask", + "nativeSrc": "4319:4:18", "nodeType": "YulTypedName", - "src": "4284:9:18", + "src": "4319:4:18", "type": "" } ] }, { - "nativeSrc": "4308:17:18", + "nativeSrc": "4433:51:18", "nodeType": "YulAssignment", - "src": "4308:17:18", + "src": "4433:51:18", "value": { - "kind": "number", - "nativeSrc": "4321:4:18", - "nodeType": "YulLiteral", - "src": "4321:4:18", - "type": "", - "value": "0x20" + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "4464:9:18", + "nodeType": "YulIdentifier", + "src": "4464:9:18" + }, + { + "name": "toInsert", + "nativeSrc": "4475:8:18", + "nodeType": "YulIdentifier", + "src": "4475:8:18" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "4445:18:18", + "nodeType": "YulIdentifier", + "src": "4445:18:18" + }, + "nativeSrc": "4445:39:18", + "nodeType": "YulFunctionCall", + "src": "4445:39:18" }, "variableNames": [ { - "name": "srcOffset", - "nativeSrc": "4308:9:18", + "name": "toInsert", + "nativeSrc": "4433:8:18", "nodeType": "YulIdentifier", - "src": "4308:9:18" + "src": "4433:8:18" } ] }, { - "cases": [ - { - "body": { - "nativeSrc": "4372:611:18", - "nodeType": "YulBlock", - "src": "4372:611:18", - "statements": [ - { - "nativeSrc": "4386:37:18", - "nodeType": "YulVariableDeclaration", - "src": "4386:37:18", - "value": { - "arguments": [ - { - "name": "newLen", - "nativeSrc": "4405:6:18", - "nodeType": "YulIdentifier", - "src": "4405:6:18" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "4417:4:18", - "nodeType": "YulLiteral", - "src": "4417:4:18", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "4413:3:18", - "nodeType": "YulIdentifier", - "src": "4413:3:18" - }, - "nativeSrc": "4413:9:18", - "nodeType": "YulFunctionCall", - "src": "4413:9:18" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "4401:3:18", - "nodeType": "YulIdentifier", - "src": "4401:3:18" - }, - "nativeSrc": "4401:22:18", - "nodeType": "YulFunctionCall", - "src": "4401:22:18" - }, - "variables": [ - { - "name": "loopEnd", - "nativeSrc": "4390:7:18", - "nodeType": "YulTypedName", - "src": "4390:7:18", - "type": "" - } - ] - }, + "nativeSrc": "4493:30:18", + "nodeType": "YulAssignment", + "src": "4493:30:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4506:5:18", + "nodeType": "YulIdentifier", + "src": "4506:5:18" + }, + { + "arguments": [ { - "nativeSrc": "4437:51:18", - "nodeType": "YulVariableDeclaration", - "src": "4437:51:18", - "value": { - "arguments": [ - { - "name": "slot", - "nativeSrc": "4483:4:18", - "nodeType": "YulIdentifier", - "src": "4483:4:18" - } - ], - "functionName": { - "name": "array_dataslot_t_string_storage", - "nativeSrc": "4451:31:18", - "nodeType": "YulIdentifier", - "src": "4451:31:18" - }, - "nativeSrc": "4451:37:18", - "nodeType": "YulFunctionCall", - "src": "4451:37:18" - }, - "variables": [ - { - "name": "dstPtr", - "nativeSrc": "4441:6:18", - "nodeType": "YulTypedName", - "src": "4441:6:18", - "type": "" - } - ] - }, + "name": "mask", + "nativeSrc": "4517:4:18", + "nodeType": "YulIdentifier", + "src": "4517:4:18" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "4513:3:18", + "nodeType": "YulIdentifier", + "src": "4513:3:18" + }, + "nativeSrc": "4513:9:18", + "nodeType": "YulFunctionCall", + "src": "4513:9:18" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4502:3:18", + "nodeType": "YulIdentifier", + "src": "4502:3:18" + }, + "nativeSrc": "4502:21:18", + "nodeType": "YulFunctionCall", + "src": "4502:21:18" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "4493:5:18", + "nodeType": "YulIdentifier", + "src": "4493:5:18" + } + ] + }, + { + "nativeSrc": "4532:40:18", + "nodeType": "YulAssignment", + "src": "4532:40:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4545:5:18", + "nodeType": "YulIdentifier", + "src": "4545:5:18" + }, + { + "arguments": [ { - "nativeSrc": "4501:10:18", - "nodeType": "YulVariableDeclaration", - "src": "4501:10:18", - "value": { - "kind": "number", - "nativeSrc": "4510:1:18", - "nodeType": "YulLiteral", - "src": "4510:1:18", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nativeSrc": "4505:1:18", - "nodeType": "YulTypedName", - "src": "4505:1:18", - "type": "" - } - ] + "name": "toInsert", + "nativeSrc": "4556:8:18", + "nodeType": "YulIdentifier", + "src": "4556:8:18" }, { - "body": { - "nativeSrc": "4569:163:18", - "nodeType": "YulBlock", - "src": "4569:163:18", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "dstPtr", - "nativeSrc": "4594:6:18", - "nodeType": "YulIdentifier", - "src": "4594:6:18" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "4612:3:18", - "nodeType": "YulIdentifier", - "src": "4612:3:18" - }, - { - "name": "srcOffset", - "nativeSrc": "4617:9:18", - "nodeType": "YulIdentifier", - "src": "4617:9:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4608:3:18", - "nodeType": "YulIdentifier", - "src": "4608:3:18" - }, - "nativeSrc": "4608:19:18", - "nodeType": "YulFunctionCall", - "src": "4608:19:18" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "4602:5:18", - "nodeType": "YulIdentifier", - "src": "4602:5:18" - }, - "nativeSrc": "4602:26:18", - "nodeType": "YulFunctionCall", - "src": "4602:26:18" - } - ], - "functionName": { - "name": "sstore", - "nativeSrc": "4587:6:18", - "nodeType": "YulIdentifier", - "src": "4587:6:18" - }, - "nativeSrc": "4587:42:18", - "nodeType": "YulFunctionCall", - "src": "4587:42:18" - }, - "nativeSrc": "4587:42:18", - "nodeType": "YulExpressionStatement", - "src": "4587:42:18" - }, - { - "nativeSrc": "4646:24:18", - "nodeType": "YulAssignment", - "src": "4646:24:18", - "value": { - "arguments": [ - { - "name": "dstPtr", - "nativeSrc": "4660:6:18", - "nodeType": "YulIdentifier", - "src": "4660:6:18" - }, - { - "kind": "number", - "nativeSrc": "4668:1:18", - "nodeType": "YulLiteral", - "src": "4668:1:18", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4656:3:18", - "nodeType": "YulIdentifier", - "src": "4656:3:18" - }, - "nativeSrc": "4656:14:18", - "nodeType": "YulFunctionCall", - "src": "4656:14:18" - }, - "variableNames": [ - { - "name": "dstPtr", - "nativeSrc": "4646:6:18", - "nodeType": "YulIdentifier", - "src": "4646:6:18" - } - ] - }, - { - "nativeSrc": "4687:31:18", - "nodeType": "YulAssignment", - "src": "4687:31:18", - "value": { - "arguments": [ - { - "name": "srcOffset", - "nativeSrc": "4704:9:18", - "nodeType": "YulIdentifier", - "src": "4704:9:18" - }, - { - "kind": "number", - "nativeSrc": "4715:2:18", - "nodeType": "YulLiteral", - "src": "4715:2:18", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4700:3:18", - "nodeType": "YulIdentifier", - "src": "4700:3:18" - }, - "nativeSrc": "4700:18:18", - "nodeType": "YulFunctionCall", - "src": "4700:18:18" - }, - "variableNames": [ - { - "name": "srcOffset", - "nativeSrc": "4687:9:18", - "nodeType": "YulIdentifier", - "src": "4687:9:18" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nativeSrc": "4535:1:18", - "nodeType": "YulIdentifier", - "src": "4535:1:18" - }, - { - "name": "loopEnd", - "nativeSrc": "4538:7:18", - "nodeType": "YulIdentifier", - "src": "4538:7:18" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "4532:2:18", - "nodeType": "YulIdentifier", - "src": "4532:2:18" - }, - "nativeSrc": "4532:14:18", - "nodeType": "YulFunctionCall", - "src": "4532:14:18" - }, - "nativeSrc": "4524:208:18", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "4547:21:18", - "nodeType": "YulBlock", - "src": "4547:21:18", - "statements": [ - { - "nativeSrc": "4549:17:18", - "nodeType": "YulAssignment", - "src": "4549:17:18", - "value": { - "arguments": [ - { - "name": "i", - "nativeSrc": "4558:1:18", - "nodeType": "YulIdentifier", - "src": "4558:1:18" - }, - { - "kind": "number", - "nativeSrc": "4561:4:18", - "nodeType": "YulLiteral", - "src": "4561:4:18", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4554:3:18", - "nodeType": "YulIdentifier", - "src": "4554:3:18" - }, - "nativeSrc": "4554:12:18", - "nodeType": "YulFunctionCall", - "src": "4554:12:18" - }, - "variableNames": [ - { - "name": "i", - "nativeSrc": "4549:1:18", - "nodeType": "YulIdentifier", - "src": "4549:1:18" - } - ] - } - ] - }, - "pre": { - "nativeSrc": "4528:3:18", - "nodeType": "YulBlock", - "src": "4528:3:18", - "statements": [] - }, - "src": "4524:208:18" - }, - { - "body": { - "nativeSrc": "4768:156:18", - "nodeType": "YulBlock", - "src": "4768:156:18", - "statements": [ - { - "nativeSrc": "4786:43:18", - "nodeType": "YulVariableDeclaration", - "src": "4786:43:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "4813:3:18", - "nodeType": "YulIdentifier", - "src": "4813:3:18" - }, - { - "name": "srcOffset", - "nativeSrc": "4818:9:18", - "nodeType": "YulIdentifier", - "src": "4818:9:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4809:3:18", - "nodeType": "YulIdentifier", - "src": "4809:3:18" - }, - "nativeSrc": "4809:19:18", - "nodeType": "YulFunctionCall", - "src": "4809:19:18" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "4803:5:18", - "nodeType": "YulIdentifier", - "src": "4803:5:18" - }, - "nativeSrc": "4803:26:18", - "nodeType": "YulFunctionCall", - "src": "4803:26:18" - }, - "variables": [ - { - "name": "lastValue", - "nativeSrc": "4790:9:18", - "nodeType": "YulTypedName", - "src": "4790:9:18", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "dstPtr", - "nativeSrc": "4853:6:18", - "nodeType": "YulIdentifier", - "src": "4853:6:18" - }, - { - "arguments": [ - { - "name": "lastValue", - "nativeSrc": "4880:9:18", - "nodeType": "YulIdentifier", - "src": "4880:9:18" - }, - { - "arguments": [ - { - "name": "newLen", - "nativeSrc": "4895:6:18", - "nodeType": "YulIdentifier", - "src": "4895:6:18" - }, - { - "kind": "number", - "nativeSrc": "4903:4:18", - "nodeType": "YulLiteral", - "src": "4903:4:18", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "4891:3:18", - "nodeType": "YulIdentifier", - "src": "4891:3:18" - }, - "nativeSrc": "4891:17:18", - "nodeType": "YulFunctionCall", - "src": "4891:17:18" - } - ], - "functionName": { - "name": "mask_bytes_dynamic", - "nativeSrc": "4861:18:18", - "nodeType": "YulIdentifier", - "src": "4861:18:18" - }, - "nativeSrc": "4861:48:18", - "nodeType": "YulFunctionCall", - "src": "4861:48:18" - } - ], - "functionName": { - "name": "sstore", - "nativeSrc": "4846:6:18", - "nodeType": "YulIdentifier", - "src": "4846:6:18" - }, - "nativeSrc": "4846:64:18", - "nodeType": "YulFunctionCall", - "src": "4846:64:18" - }, - "nativeSrc": "4846:64:18", - "nodeType": "YulExpressionStatement", - "src": "4846:64:18" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "loopEnd", - "nativeSrc": "4751:7:18", - "nodeType": "YulIdentifier", - "src": "4751:7:18" - }, - { - "name": "newLen", - "nativeSrc": "4760:6:18", - "nodeType": "YulIdentifier", - "src": "4760:6:18" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "4748:2:18", - "nodeType": "YulIdentifier", - "src": "4748:2:18" - }, - "nativeSrc": "4748:19:18", - "nodeType": "YulFunctionCall", - "src": "4748:19:18" - }, - "nativeSrc": "4745:179:18", - "nodeType": "YulIf", - "src": "4745:179:18" - }, - { - "expression": { - "arguments": [ - { - "name": "slot", - "nativeSrc": "4944:4:18", - "nodeType": "YulIdentifier", - "src": "4944:4:18" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "newLen", - "nativeSrc": "4958:6:18", - "nodeType": "YulIdentifier", - "src": "4958:6:18" - }, - { - "kind": "number", - "nativeSrc": "4966:1:18", - "nodeType": "YulLiteral", - "src": "4966:1:18", - "type": "", - "value": "2" - } - ], - "functionName": { - "name": "mul", - "nativeSrc": "4954:3:18", - "nodeType": "YulIdentifier", - "src": "4954:3:18" - }, - "nativeSrc": "4954:14:18", - "nodeType": "YulFunctionCall", - "src": "4954:14:18" - }, - { - "kind": "number", - "nativeSrc": "4970:1:18", - "nodeType": "YulLiteral", - "src": "4970:1:18", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4950:3:18", - "nodeType": "YulIdentifier", - "src": "4950:3:18" - }, - "nativeSrc": "4950:22:18", - "nodeType": "YulFunctionCall", - "src": "4950:22:18" - } - ], - "functionName": { - "name": "sstore", - "nativeSrc": "4937:6:18", - "nodeType": "YulIdentifier", - "src": "4937:6:18" - }, - "nativeSrc": "4937:36:18", - "nodeType": "YulFunctionCall", - "src": "4937:36:18" - }, - "nativeSrc": "4937:36:18", - "nodeType": "YulExpressionStatement", - "src": "4937:36:18" - } - ] - }, - "nativeSrc": "4365:618:18", - "nodeType": "YulCase", - "src": "4365:618:18", - "value": { - "kind": "number", - "nativeSrc": "4370:1:18", - "nodeType": "YulLiteral", - "src": "4370:1:18", - "type": "", - "value": "1" - } - }, - { - "body": { - "nativeSrc": "5000:222:18", - "nodeType": "YulBlock", - "src": "5000:222:18", - "statements": [ - { - "nativeSrc": "5014:14:18", - "nodeType": "YulVariableDeclaration", - "src": "5014:14:18", - "value": { - "kind": "number", - "nativeSrc": "5027:1:18", - "nodeType": "YulLiteral", - "src": "5027:1:18", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "5018:5:18", - "nodeType": "YulTypedName", - "src": "5018:5:18", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "5051:67:18", - "nodeType": "YulBlock", - "src": "5051:67:18", - "statements": [ - { - "nativeSrc": "5069:35:18", - "nodeType": "YulAssignment", - "src": "5069:35:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "5088:3:18", - "nodeType": "YulIdentifier", - "src": "5088:3:18" - }, - { - "name": "srcOffset", - "nativeSrc": "5093:9:18", - "nodeType": "YulIdentifier", - "src": "5093:9:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5084:3:18", - "nodeType": "YulIdentifier", - "src": "5084:3:18" - }, - "nativeSrc": "5084:19:18", - "nodeType": "YulFunctionCall", - "src": "5084:19:18" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "5078:5:18", - "nodeType": "YulIdentifier", - "src": "5078:5:18" - }, - "nativeSrc": "5078:26:18", - "nodeType": "YulFunctionCall", - "src": "5078:26:18" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "5069:5:18", - "nodeType": "YulIdentifier", - "src": "5069:5:18" - } - ] - } - ] - }, - "condition": { - "name": "newLen", - "nativeSrc": "5044:6:18", - "nodeType": "YulIdentifier", - "src": "5044:6:18" - }, - "nativeSrc": "5041:77:18", - "nodeType": "YulIf", - "src": "5041:77:18" - }, - { - "expression": { - "arguments": [ - { - "name": "slot", - "nativeSrc": "5138:4:18", - "nodeType": "YulIdentifier", - "src": "5138:4:18" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "5197:5:18", - "nodeType": "YulIdentifier", - "src": "5197:5:18" - }, - { - "name": "newLen", - "nativeSrc": "5204:6:18", - "nodeType": "YulIdentifier", - "src": "5204:6:18" - } - ], - "functionName": { - "name": "extract_used_part_and_set_length_of_short_byte_array", - "nativeSrc": "5144:52:18", - "nodeType": "YulIdentifier", - "src": "5144:52:18" - }, - "nativeSrc": "5144:67:18", - "nodeType": "YulFunctionCall", - "src": "5144:67:18" - } - ], - "functionName": { - "name": "sstore", - "nativeSrc": "5131:6:18", - "nodeType": "YulIdentifier", - "src": "5131:6:18" - }, - "nativeSrc": "5131:81:18", - "nodeType": "YulFunctionCall", - "src": "5131:81:18" - }, - "nativeSrc": "5131:81:18", - "nodeType": "YulExpressionStatement", - "src": "5131:81:18" + "name": "mask", + "nativeSrc": "4566:4:18", + "nodeType": "YulIdentifier", + "src": "4566:4:18" } - ] - }, - "nativeSrc": "4992:230:18", - "nodeType": "YulCase", - "src": "4992:230:18", - "value": "default" - } - ], - "expression": { - "arguments": [ - { - "name": "newLen", - "nativeSrc": "4345:6:18", - "nodeType": "YulIdentifier", - "src": "4345:6:18" - }, - { - "kind": "number", - "nativeSrc": "4353:2:18", - "nodeType": "YulLiteral", - "src": "4353:2:18", - "type": "", - "value": "31" + ], + "functionName": { + "name": "and", + "nativeSrc": "4552:3:18", + "nodeType": "YulIdentifier", + "src": "4552:3:18" + }, + "nativeSrc": "4552:19:18", + "nodeType": "YulFunctionCall", + "src": "4552:19:18" } ], "functionName": { - "name": "gt", - "nativeSrc": "4342:2:18", + "name": "or", + "nativeSrc": "4542:2:18", "nodeType": "YulIdentifier", - "src": "4342:2:18" + "src": "4542:2:18" }, - "nativeSrc": "4342:14:18", + "nativeSrc": "4542:30:18", "nodeType": "YulFunctionCall", - "src": "4342:14:18" + "src": "4542:30:18" }, - "nativeSrc": "4335:887:18", - "nodeType": "YulSwitch", - "src": "4335:887:18" + "variableNames": [ + { + "name": "result", + "nativeSrc": "4532:6:18", + "nodeType": "YulIdentifier", + "src": "4532:6:18" + } + ] } ] }, - "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", - "nativeSrc": "3833:1395:18", + "name": "update_byte_slice_dynamic32", + "nativeSrc": "4185:393:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "slot", - "nativeSrc": "3914:4:18", + "name": "value", + "nativeSrc": "4222:5:18", "nodeType": "YulTypedName", - "src": "3914:4:18", + "src": "4222:5:18", "type": "" }, { - "name": "src", - "nativeSrc": "3920:3:18", + "name": "shiftBytes", + "nativeSrc": "4229:10:18", "nodeType": "YulTypedName", - "src": "3920:3:18", - "type": "" - } - ], - "src": "3833:1395:18" - } - ] - }, - "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\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 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}\n", - "id": 18, - "language": "Yul", - "name": "#utility.yul" - } - ], - "linkReferences": {}, - "object": "608060405260006004553480156200001657600080fd5b506040518060200160405280600081525062000038816200005560201b60201c565b506200004e6000801b336200006a60201b60201c565b5062000542565b80600290816200006691906200045b565b5050565b60006200007e83836200016e60201b60201c565b620001635760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620000ff620001d960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001905062000168565b600090505b92915050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200026357607f821691505b6020821081036200027957620002786200021b565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620002e37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002a4565b620002ef8683620002a4565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200033c62000336620003308462000307565b62000311565b62000307565b9050919050565b6000819050919050565b62000358836200031b565b62000370620003678262000343565b848454620002b1565b825550505050565b600090565b6200038762000378565b620003948184846200034d565b505050565b5b81811015620003bc57620003b06000826200037d565b6001810190506200039a565b5050565b601f8211156200040b57620003d5816200027f565b620003e08462000294565b81016020851015620003f0578190505b62000408620003ff8562000294565b83018262000399565b50505b505050565b600082821c905092915050565b6000620004306000198460080262000410565b1980831691505092915050565b60006200044b83836200041d565b9150826002028217905092915050565b6200046682620001e1565b67ffffffffffffffff811115620004825762000481620001ec565b5b6200048e82546200024a565b6200049b828285620003c0565b600060209050601f831160018114620004d35760008415620004be578287015190505b620004ca85826200043d565b8655506200053a565b601f198416620004e3866200027f565b60005b828110156200050d57848901518255600182019150602085019450602081019050620004e6565b868310156200052d578489015162000529601f8916826200041d565b8355505b6001600288020188555050505b505050505050565b61338280620005526000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c80634e1273f4116100b8578063a22cb4651161007c578063a22cb4651461035d578063c5afac6614610379578063d547741f146103a9578063e985e9c5146103c5578063f242432a146103f5578063f5298aca1461041157610136565b80634e1273f4146102a557806361bc221a146102d5578063731133e9146102f357806391d148541461030f578063a217fddf1461033f57610136565b806324c20a34116100ff57806324c20a34146102175780632eb2c2d6146102355780632f2ff15d1461025157806336568abe1461026d5780633cad9b0d1461028957610136565b8062fdd58e1461013b57806301ffc9a71461016b5780630e89341c1461019b5780631c4ce135146101cb578063248a9ca3146101e7575b600080fd5b61015560048036038101906101509190611eb9565b61042d565b6040516101629190611f08565b60405180910390f35b61018560048036038101906101809190611f7b565b610487565b6040516101929190611fc3565b60405180910390f35b6101b560048036038101906101b09190611fde565b61048e565b6040516101c2919061209b565b60405180910390f35b6101e560048036038101906101e091906121f2565b6104d4565b005b61020160048036038101906101fc9190612284565b610573565b60405161020e91906122c0565b60405180910390f35b61021f610593565b60405161022c91906122c0565b60405180910390f35b61024f600480360381019061024a9190612444565b6105b7565b005b61026b60048036038101906102669190612513565b61065f565b005b61028760048036038101906102829190612513565b610681565b005b6102a3600480360381019061029e9190612553565b6106fc565b005b6102bf60048036038101906102ba919061265f565b61079e565b6040516102cc9190612795565b60405180910390f35b6102dd6108a7565b6040516102ea9190611f08565b60405180910390f35b61030d600480360381019061030891906127b7565b6108b1565b005b61032960048036038101906103249190612513565b610970565b6040516103369190611fc3565b60405180910390f35b6103476109db565b60405161035491906122c0565b60405180910390f35b61037760048036038101906103729190612866565b6109e2565b005b610393600480360381019061038e91906128a6565b6109f8565b6040516103a0919061209b565b60405180910390f35b6103c360048036038101906103be9190612513565b610a4c565b005b6103df60048036038101906103da9190612915565b610a6e565b6040516103ec9190611fc3565b60405180910390f35b61040f600480360381019061040a9190612955565b610b02565b005b61042b600480360381019061042691906129ec565b610baa565b005b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000919050565b60608161049a81610c88565b600560008481526020019081526020016000206040516020016104bd9190612bda565b604051602081830303815290604052915050919050565b7f18d9ff454de989bd126b06bd404b47ede75f9e65543e94e8d212f89d7dcbb87c6104fe81610cd1565b8160066000858152602001908152602001600020908161051e9190612d9e565b50823373ffffffffffffffffffffffffffffffffffffffff167fee5e19404a9c880f5e862aeeedfa8f4b4b427864327c17888eb6a34d549e5a5584604051610566919061209b565b60405180910390a3505050565b600060036000838152602001908152602001600020600101549050919050565b7f18d9ff454de989bd126b06bd404b47ede75f9e65543e94e8d212f89d7dcbb87c81565b60006105c1610ce5565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561060657506106048682610a6e565b155b1561064a5780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610641929190612e7f565b60405180910390fd5b6106578686868686610ced565b505050505050565b61066882610573565b61067181610cd1565b61067b8383610de5565b50505050565b610689610ce5565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146106ed576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106f78282610ed7565b505050565b80600560006004548152602001908152602001600020908161071e9190612d9e565b5061073d33600454600160405180602001604052806000815250610fca565b6004543373ffffffffffffffffffffffffffffffffffffffff167fc65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c1660405160405180910390a36004600081548092919061079690612ed7565b919050555050565b606081518351146107ea57815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016107e1929190612f1f565b60405180910390fd5b6000835167ffffffffffffffff811115610807576108066120c7565b5b6040519080825280602002602001820160405280156108355781602001602082028036833780820191505090505b50905060005b845181101561089c5761087261085a828761106390919063ffffffff16565b61086d838761107790919063ffffffff16565b61042d565b82828151811061088557610884612f48565b5b60200260200101818152505080600101905061083b565b508091505092915050565b6000600454905090565b826108bb81610c88565b60006108c7868661042d565b111561090c5784846040517f788d2556000000000000000000000000000000000000000000000000000000008152600401610903929190612f77565b60405180910390fd5b6109198585600185610fca565b838573ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f60016040516109619190612fdb565b60405180910390a35050505050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b6109f46109ed610ce5565b838361108b565b5050565b606082610a0481610c88565b60066000868152602001908152602001600020610a20856111fb565b84604051602001610a3393929190613073565b6040516020818303038152906040529150509392505050565b610a5582610573565b610a5e81610cd1565b610a688383610ed7565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000610b0c610ce5565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610b515750610b4f8682610a6e565b155b15610b955780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610b8c929190612e7f565b60405180910390fd5b610ba286868686866112c9565b505050505050565b81610bb481610c88565b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610c265783836040517f8626cc03000000000000000000000000000000000000000000000000000000008152600401610c1d929190612f77565b60405180910390fd5b610c32848460016113d4565b828473ffffffffffffffffffffffffffffffffffffffff167f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a6001604051610c7a9190612fdb565b60405180910390a350505050565b6004548110610cce57806040517fc80a970c000000000000000000000000000000000000000000000000000000008152600401610cc59190611f08565b60405180910390fd5b50565b610ce281610cdd610ce5565b61147b565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610d5f5760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610d5691906130d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610dd15760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610dc891906130d0565b60405180910390fd5b610dde85858585856114cc565b5050505050565b6000610df18383610970565b610ecc5760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610e69610ce5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610ed1565b600090505b92915050565b6000610ee38383610970565b15610fbf5760006003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610f5c610ce5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050610fc4565b600090505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361103c5760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161103391906130d0565b60405180910390fd5b600080611049858561157e565b9150915061105b6000878484876114cc565b505050505050565b600060208202602084010151905092915050565b600060208202602084010151905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110fd5760006040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016110f491906130d0565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516111ee9190611fc3565b60405180910390a3505050565b60606000600161120a846115ae565b01905060008167ffffffffffffffff811115611229576112286120c7565b5b6040519080825280601f01601f19166020018201604052801561125b5781602001600182028036833780820191505090505b509050600082602001820190505b6001156112be578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816112b2576112b16130eb565b5b04945060008503611269575b819350505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361133b5760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161133291906130d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036113ad5760006040517f01a835140000000000000000000000000000000000000000000000000000000081526004016113a491906130d0565b60405180910390fd5b6000806113ba858561157e565b915091506113cb87878484876114cc565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114465760006040517f01a8351400000000000000000000000000000000000000000000000000000000815260040161143d91906130d0565b60405180910390fd5b600080611453848461157e565b915091506114748560008484604051806020016040528060008152506114cc565b5050505050565b6114858282610970565b6114c85780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016114bf92919061311a565b60405180910390fd5b5050565b6114d885858585611701565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611577576000611516610ce5565b9050600184510361156657600061153760008661107790919063ffffffff16565b9050600061154f60008661107790919063ffffffff16565b905061155f838989858589611aa9565b5050611575565b611574818787878787611c5d565b5b505b5050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061160c577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611602576116016130eb565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611649576d04ee2d6d415b85acef8100000000838161163f5761163e6130eb565b5b0492506020810190505b662386f26fc10000831061167857662386f26fc10000838161166e5761166d6130eb565b5b0492506010810190505b6305f5e10083106116a1576305f5e1008381611697576116966130eb565b5b0492506008810190505b61271083106116c65761271083816116bc576116bb6130eb565b5b0492506004810190505b606483106116e957606483816116df576116de6130eb565b5b0492506002810190505b600a83106116f8576001810190505b80915050919050565b805182511461174b57815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401611742929190612f1f565b60405180910390fd5b6000611755610ce5565b905060005b8351811015611964576000611778828661107790919063ffffffff16565b9050600061178f838661107790919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146118bc57600080600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561186457888183856040517f03dee4c500000000000000000000000000000000000000000000000000000000815260040161185b9493929190613143565b60405180910390fd5b81810360008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611957578060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461194f9190613188565b925050819055505b505080600101905061175a565b506001835103611a2357600061198460008561107790919063ffffffff16565b9050600061199c60008561107790919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611a14929190612f1f565b60405180910390a45050611aa2565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611a999291906131bc565b60405180910390a45b5050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611c55578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611b0a959493929190613248565b6020604051808303816000875af1925050508015611b4657506040513d601f19601f82011682018060405250810190611b4391906132b7565b60015b611bca573d8060008114611b76576040519150601f19603f3d011682016040523d82523d6000602084013e611b7b565b606091505b506000815103611bc257846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611bb991906130d0565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611c5357846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611c4a91906130d0565b60405180910390fd5b505b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611e09578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611cbe9594939291906132e4565b6020604051808303816000875af1925050508015611cfa57506040513d601f19601f82011682018060405250810190611cf791906132b7565b60015b611d7e573d8060008114611d2a576040519150601f19603f3d011682016040523d82523d6000602084013e611d2f565b606091505b506000815103611d7657846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611d6d91906130d0565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611e0757846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611dfe91906130d0565b60405180910390fd5b505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611e5082611e25565b9050919050565b611e6081611e45565b8114611e6b57600080fd5b50565b600081359050611e7d81611e57565b92915050565b6000819050919050565b611e9681611e83565b8114611ea157600080fd5b50565b600081359050611eb381611e8d565b92915050565b60008060408385031215611ed057611ecf611e1b565b5b6000611ede85828601611e6e565b9250506020611eef85828601611ea4565b9150509250929050565b611f0281611e83565b82525050565b6000602082019050611f1d6000830184611ef9565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611f5881611f23565b8114611f6357600080fd5b50565b600081359050611f7581611f4f565b92915050565b600060208284031215611f9157611f90611e1b565b5b6000611f9f84828501611f66565b91505092915050565b60008115159050919050565b611fbd81611fa8565b82525050565b6000602082019050611fd86000830184611fb4565b92915050565b600060208284031215611ff457611ff3611e1b565b5b600061200284828501611ea4565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561204557808201518184015260208101905061202a565b60008484015250505050565b6000601f19601f8301169050919050565b600061206d8261200b565b6120778185612016565b9350612087818560208601612027565b61209081612051565b840191505092915050565b600060208201905081810360008301526120b58184612062565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6120ff82612051565b810181811067ffffffffffffffff8211171561211e5761211d6120c7565b5b80604052505050565b6000612131611e11565b905061213d82826120f6565b919050565b600067ffffffffffffffff82111561215d5761215c6120c7565b5b61216682612051565b9050602081019050919050565b82818337600083830152505050565b600061219561219084612142565b612127565b9050828152602081018484840111156121b1576121b06120c2565b5b6121bc848285612173565b509392505050565b600082601f8301126121d9576121d86120bd565b5b81356121e9848260208601612182565b91505092915050565b6000806040838503121561220957612208611e1b565b5b600061221785828601611ea4565b925050602083013567ffffffffffffffff81111561223857612237611e20565b5b612244858286016121c4565b9150509250929050565b6000819050919050565b6122618161224e565b811461226c57600080fd5b50565b60008135905061227e81612258565b92915050565b60006020828403121561229a57612299611e1b565b5b60006122a88482850161226f565b91505092915050565b6122ba8161224e565b82525050565b60006020820190506122d560008301846122b1565b92915050565b600067ffffffffffffffff8211156122f6576122f56120c7565b5b602082029050602081019050919050565b600080fd5b600061231f61231a846122db565b612127565b9050808382526020820190506020840283018581111561234257612341612307565b5b835b8181101561236b57806123578882611ea4565b845260208401935050602081019050612344565b5050509392505050565b600082601f83011261238a576123896120bd565b5b813561239a84826020860161230c565b91505092915050565b600067ffffffffffffffff8211156123be576123bd6120c7565b5b6123c782612051565b9050602081019050919050565b60006123e76123e2846123a3565b612127565b905082815260208101848484011115612403576124026120c2565b5b61240e848285612173565b509392505050565b600082601f83011261242b5761242a6120bd565b5b813561243b8482602086016123d4565b91505092915050565b600080600080600060a086880312156124605761245f611e1b565b5b600061246e88828901611e6e565b955050602061247f88828901611e6e565b945050604086013567ffffffffffffffff8111156124a05761249f611e20565b5b6124ac88828901612375565b935050606086013567ffffffffffffffff8111156124cd576124cc611e20565b5b6124d988828901612375565b925050608086013567ffffffffffffffff8111156124fa576124f9611e20565b5b61250688828901612416565b9150509295509295909350565b6000806040838503121561252a57612529611e1b565b5b60006125388582860161226f565b925050602061254985828601611e6e565b9150509250929050565b60006020828403121561256957612568611e1b565b5b600082013567ffffffffffffffff81111561258757612586611e20565b5b612593848285016121c4565b91505092915050565b600067ffffffffffffffff8211156125b7576125b66120c7565b5b602082029050602081019050919050565b60006125db6125d68461259c565b612127565b905080838252602082019050602084028301858111156125fe576125fd612307565b5b835b8181101561262757806126138882611e6e565b845260208401935050602081019050612600565b5050509392505050565b600082601f830112612646576126456120bd565b5b81356126568482602086016125c8565b91505092915050565b6000806040838503121561267657612675611e1b565b5b600083013567ffffffffffffffff81111561269457612693611e20565b5b6126a085828601612631565b925050602083013567ffffffffffffffff8111156126c1576126c0611e20565b5b6126cd85828601612375565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61270c81611e83565b82525050565b600061271e8383612703565b60208301905092915050565b6000602082019050919050565b6000612742826126d7565b61274c81856126e2565b9350612757836126f3565b8060005b8381101561278857815161276f8882612712565b975061277a8361272a565b92505060018101905061275b565b5085935050505092915050565b600060208201905081810360008301526127af8184612737565b905092915050565b600080600080608085870312156127d1576127d0611e1b565b5b60006127df87828801611e6e565b94505060206127f087828801611ea4565b935050604061280187828801611ea4565b925050606085013567ffffffffffffffff81111561282257612821611e20565b5b61282e87828801612416565b91505092959194509250565b61284381611fa8565b811461284e57600080fd5b50565b6000813590506128608161283a565b92915050565b6000806040838503121561287d5761287c611e1b565b5b600061288b85828601611e6e565b925050602061289c85828601612851565b9150509250929050565b6000806000606084860312156128bf576128be611e1b565b5b60006128cd86828701611ea4565b93505060206128de86828701611ea4565b925050604084013567ffffffffffffffff8111156128ff576128fe611e20565b5b61290b868287016121c4565b9150509250925092565b6000806040838503121561292c5761292b611e1b565b5b600061293a85828601611e6e565b925050602061294b85828601611e6e565b9150509250929050565b600080600080600060a0868803121561297157612970611e1b565b5b600061297f88828901611e6e565b955050602061299088828901611e6e565b94505060406129a188828901611ea4565b93505060606129b288828901611ea4565b925050608086013567ffffffffffffffff8111156129d3576129d2611e20565b5b6129df88828901612416565b9150509295509295909350565b600080600060608486031215612a0557612a04611e1b565b5b6000612a1386828701611e6e565b9350506020612a2486828701611ea4565b9250506040612a3586828701611ea4565b9150509250925092565b600081905092915050565b7f697066733a2f2f00000000000000000000000000000000000000000000000000600082015250565b6000612a80600783612a3f565b9150612a8b82612a4a565b600782019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612add57607f821691505b602082108103612af057612aef612a96565b5b50919050565b60008190508160005260206000209050919050565b60008154612b1881612ac5565b612b228186612a3f565b94506001821660008114612b3d5760018114612b5257612b85565b60ff1983168652811515820286019350612b85565b612b5b85612af6565b60005b83811015612b7d57815481890152600182019150602081019050612b5e565b838801955050505b50505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b6000612bc4600583612a3f565b9150612bcf82612b8e565b600582019050919050565b6000612be582612a73565b9150612bf18284612b0b565b9150612bfc82612bb7565b915081905092915050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612c547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612c17565b612c5e8683612c17565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612c9b612c96612c9184611e83565b612c76565b611e83565b9050919050565b6000819050919050565b612cb583612c80565b612cc9612cc182612ca2565b848454612c24565b825550505050565b600090565b612cde612cd1565b612ce9818484612cac565b505050565b5b81811015612d0d57612d02600082612cd6565b600181019050612cef565b5050565b601f821115612d5257612d2381612af6565b612d2c84612c07565b81016020851015612d3b578190505b612d4f612d4785612c07565b830182612cee565b50505b505050565b600082821c905092915050565b6000612d7560001984600802612d57565b1980831691505092915050565b6000612d8e8383612d64565b9150826002028217905092915050565b612da78261200b565b67ffffffffffffffff811115612dc057612dbf6120c7565b5b612dca8254612ac5565b612dd5828285612d11565b600060209050601f831160018114612e085760008415612df6578287015190505b612e008582612d82565b865550612e68565b601f198416612e1686612af6565b60005b82811015612e3e57848901518255600182019150602085019450602081019050612e19565b86831015612e5b5784890151612e57601f891682612d64565b8355505b6001600288020188555050505b505050505050565b612e7981611e45565b82525050565b6000604082019050612e946000830185612e70565b612ea16020830184612e70565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ee282611e83565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f1457612f13612ea8565b5b600182019050919050565b6000604082019050612f346000830185611ef9565b612f416020830184611ef9565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050612f8c6000830185612e70565b612f996020830184611ef9565b9392505050565b6000819050919050565b6000612fc5612fc0612fbb84612fa0565b612c76565b611e83565b9050919050565b612fd581612faa565b82525050565b6000602082019050612ff06000830184612fcc565b92915050565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b600061302c600183612a3f565b915061303782612ff6565b600182019050919050565b600061304d8261200b565b6130578185612a3f565b9350613067818560208601612027565b80840191505092915050565b600061307e82612a73565b915061308a8286612b0b565b91506130958261301f565b91506130a18285613042565b91506130ac8261301f565b91506130b88284613042565b91506130c382612bb7565b9150819050949350505050565b60006020820190506130e56000830184612e70565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600060408201905061312f6000830185612e70565b61313c60208301846122b1565b9392505050565b60006080820190506131586000830187612e70565b6131656020830186611ef9565b6131726040830185611ef9565b61317f6060830184611ef9565b95945050505050565b600061319382611e83565b915061319e83611e83565b92508282019050808211156131b6576131b5612ea8565b5b92915050565b600060408201905081810360008301526131d68185612737565b905081810360208301526131ea8184612737565b90509392505050565b600081519050919050565b600082825260208201905092915050565b600061321a826131f3565b61322481856131fe565b9350613234818560208601612027565b61323d81612051565b840191505092915050565b600060a08201905061325d6000830188612e70565b61326a6020830187612e70565b6132776040830186611ef9565b6132846060830185611ef9565b8181036080830152613296818461320f565b90509695505050505050565b6000815190506132b181611f4f565b92915050565b6000602082840312156132cd576132cc611e1b565b5b60006132db848285016132a2565b91505092915050565b600060a0820190506132f96000830188612e70565b6133066020830187612e70565b81810360408301526133188186612737565b9050818103606083015261332c8185612737565b90508181036080830152613340818461320f565b9050969550505050505056fea2646970667358221220294f8401608e8b44e40d642ddeddde899f8a456400db1a2f81df9ef8d59242d564736f6c63430008180033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 PUSH1 0x4 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH3 0x38 DUP2 PUSH3 0x55 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH3 0x4E PUSH1 0x0 DUP1 SHL CALLER PUSH3 0x6A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH3 0x542 JUMP JUMPDEST DUP1 PUSH1 0x2 SWAP1 DUP2 PUSH3 0x66 SWAP2 SWAP1 PUSH3 0x45B JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x7E DUP4 DUP4 PUSH3 0x16E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0x163 JUMPI PUSH1 0x1 PUSH1 0x3 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 PUSH3 0xFF PUSH3 0x1D9 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 PUSH3 0x168 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 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 PUSH3 0x263 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x279 JUMPI PUSH3 0x278 PUSH3 0x21B 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 PUSH3 0x2E3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x2A4 JUMP JUMPDEST PUSH3 0x2EF DUP7 DUP4 PUSH3 0x2A4 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 PUSH3 0x33C PUSH3 0x336 PUSH3 0x330 DUP5 PUSH3 0x307 JUMP JUMPDEST PUSH3 0x311 JUMP JUMPDEST PUSH3 0x307 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x358 DUP4 PUSH3 0x31B JUMP JUMPDEST PUSH3 0x370 PUSH3 0x367 DUP3 PUSH3 0x343 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x2B1 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x387 PUSH3 0x378 JUMP JUMPDEST PUSH3 0x394 DUP2 DUP5 DUP5 PUSH3 0x34D JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x3BC JUMPI PUSH3 0x3B0 PUSH1 0x0 DUP3 PUSH3 0x37D JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x39A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x40B JUMPI PUSH3 0x3D5 DUP2 PUSH3 0x27F JUMP JUMPDEST PUSH3 0x3E0 DUP5 PUSH3 0x294 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x3F0 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x408 PUSH3 0x3FF DUP6 PUSH3 0x294 JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x399 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 PUSH3 0x430 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x410 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x44B DUP4 DUP4 PUSH3 0x41D JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x466 DUP3 PUSH3 0x1E1 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x482 JUMPI PUSH3 0x481 PUSH3 0x1EC JUMP JUMPDEST JUMPDEST PUSH3 0x48E DUP3 SLOAD PUSH3 0x24A JUMP JUMPDEST PUSH3 0x49B DUP3 DUP3 DUP6 PUSH3 0x3C0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x4D3 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x4BE JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x4CA DUP6 DUP3 PUSH3 0x43D JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x53A JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x4E3 DUP7 PUSH3 0x27F JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x50D 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 PUSH3 0x4E6 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x52D JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x529 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x41D 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 0x3382 DUP1 PUSH3 0x552 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x136 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4E1273F4 GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x35D JUMPI DUP1 PUSH4 0xC5AFAC66 EQ PUSH2 0x379 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x3A9 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x3C5 JUMPI DUP1 PUSH4 0xF242432A EQ PUSH2 0x3F5 JUMPI DUP1 PUSH4 0xF5298ACA EQ PUSH2 0x411 JUMPI PUSH2 0x136 JUMP JUMPDEST DUP1 PUSH4 0x4E1273F4 EQ PUSH2 0x2A5 JUMPI DUP1 PUSH4 0x61BC221A EQ PUSH2 0x2D5 JUMPI DUP1 PUSH4 0x731133E9 EQ PUSH2 0x2F3 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x30F JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x33F JUMPI PUSH2 0x136 JUMP JUMPDEST DUP1 PUSH4 0x24C20A34 GT PUSH2 0xFF JUMPI DUP1 PUSH4 0x24C20A34 EQ PUSH2 0x217 JUMPI DUP1 PUSH4 0x2EB2C2D6 EQ PUSH2 0x235 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x251 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x26D JUMPI DUP1 PUSH4 0x3CAD9B0D EQ PUSH2 0x289 JUMPI PUSH2 0x136 JUMP JUMPDEST DUP1 PUSH3 0xFDD58E EQ PUSH2 0x13B JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x16B JUMPI DUP1 PUSH4 0xE89341C EQ PUSH2 0x19B JUMPI DUP1 PUSH4 0x1C4CE135 EQ PUSH2 0x1CB JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x1E7 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x155 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x150 SWAP2 SWAP1 PUSH2 0x1EB9 JUMP JUMPDEST PUSH2 0x42D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x162 SWAP2 SWAP1 PUSH2 0x1F08 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x185 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x180 SWAP2 SWAP1 PUSH2 0x1F7B JUMP JUMPDEST PUSH2 0x487 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x192 SWAP2 SWAP1 PUSH2 0x1FC3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1B0 SWAP2 SWAP1 PUSH2 0x1FDE JUMP JUMPDEST PUSH2 0x48E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C2 SWAP2 SWAP1 PUSH2 0x209B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E0 SWAP2 SWAP1 PUSH2 0x21F2 JUMP JUMPDEST PUSH2 0x4D4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x201 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FC SWAP2 SWAP1 PUSH2 0x2284 JUMP JUMPDEST PUSH2 0x573 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20E SWAP2 SWAP1 PUSH2 0x22C0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x21F PUSH2 0x593 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x22C SWAP2 SWAP1 PUSH2 0x22C0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x24F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x24A SWAP2 SWAP1 PUSH2 0x2444 JUMP JUMPDEST PUSH2 0x5B7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x26B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x266 SWAP2 SWAP1 PUSH2 0x2513 JUMP JUMPDEST PUSH2 0x65F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x287 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x282 SWAP2 SWAP1 PUSH2 0x2513 JUMP JUMPDEST PUSH2 0x681 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2A3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29E SWAP2 SWAP1 PUSH2 0x2553 JUMP JUMPDEST PUSH2 0x6FC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2BF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2BA SWAP2 SWAP1 PUSH2 0x265F JUMP JUMPDEST PUSH2 0x79E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2CC SWAP2 SWAP1 PUSH2 0x2795 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2DD PUSH2 0x8A7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EA SWAP2 SWAP1 PUSH2 0x1F08 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x30D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x308 SWAP2 SWAP1 PUSH2 0x27B7 JUMP JUMPDEST PUSH2 0x8B1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x329 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x324 SWAP2 SWAP1 PUSH2 0x2513 JUMP JUMPDEST PUSH2 0x970 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x336 SWAP2 SWAP1 PUSH2 0x1FC3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x347 PUSH2 0x9DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x354 SWAP2 SWAP1 PUSH2 0x22C0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x377 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x372 SWAP2 SWAP1 PUSH2 0x2866 JUMP JUMPDEST PUSH2 0x9E2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x393 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x38E SWAP2 SWAP1 PUSH2 0x28A6 JUMP JUMPDEST PUSH2 0x9F8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3A0 SWAP2 SWAP1 PUSH2 0x209B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3C3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3BE SWAP2 SWAP1 PUSH2 0x2513 JUMP JUMPDEST PUSH2 0xA4C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3DF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3DA SWAP2 SWAP1 PUSH2 0x2915 JUMP JUMPDEST PUSH2 0xA6E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3EC SWAP2 SWAP1 PUSH2 0x1FC3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x40F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x40A SWAP2 SWAP1 PUSH2 0x2955 JUMP JUMPDEST PUSH2 0xB02 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x42B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x426 SWAP2 SWAP1 PUSH2 0x29EC JUMP JUMPDEST PUSH2 0xBAA JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0x49A DUP2 PUSH2 0xC88 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x4BD SWAP2 SWAP1 PUSH2 0x2BDA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x18D9FF454DE989BD126B06BD404B47EDE75F9E65543E94E8D212F89D7DCBB87C PUSH2 0x4FE DUP2 PUSH2 0xCD1 JUMP JUMPDEST DUP2 PUSH1 0x6 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP2 PUSH2 0x51E SWAP2 SWAP1 PUSH2 0x2D9E JUMP JUMPDEST POP DUP3 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xEE5E19404A9C880F5E862AEEEDFA8F4B4B427864327C17888EB6A34D549E5A55 DUP5 PUSH1 0x40 MLOAD PUSH2 0x566 SWAP2 SWAP1 PUSH2 0x209B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x18D9FF454DE989BD126B06BD404B47EDE75F9E65543E94E8D212F89D7DCBB87C DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C1 PUSH2 0xCE5 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x606 JUMPI POP PUSH2 0x604 DUP7 DUP3 PUSH2 0xA6E JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x64A JUMPI DUP1 DUP7 PUSH1 0x40 MLOAD PUSH32 0xE237D92200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x641 SWAP3 SWAP2 SWAP1 PUSH2 0x2E7F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x657 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0xCED JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x668 DUP3 PUSH2 0x573 JUMP JUMPDEST PUSH2 0x671 DUP2 PUSH2 0xCD1 JUMP JUMPDEST PUSH2 0x67B DUP4 DUP4 PUSH2 0xDE5 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x689 PUSH2 0xCE5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x6ED JUMPI PUSH1 0x40 MLOAD PUSH32 0x6697B23200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6F7 DUP3 DUP3 PUSH2 0xED7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP1 PUSH1 0x5 PUSH1 0x0 PUSH1 0x4 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP2 PUSH2 0x71E SWAP2 SWAP1 PUSH2 0x2D9E JUMP JUMPDEST POP PUSH2 0x73D CALLER PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xFCA JUMP JUMPDEST PUSH1 0x4 SLOAD CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC65A3F767206D2FDCEDE0B094A4840E01C0DD0BE1888B5BA800346EAA0123C16 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x4 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x796 SWAP1 PUSH2 0x2ED7 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0x7EA JUMPI DUP2 MLOAD DUP4 MLOAD PUSH1 0x40 MLOAD PUSH32 0x5B05999100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7E1 SWAP3 SWAP2 SWAP1 PUSH2 0x2F1F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x807 JUMPI PUSH2 0x806 PUSH2 0x20C7 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 0x835 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x89C JUMPI PUSH2 0x872 PUSH2 0x85A DUP3 DUP8 PUSH2 0x1063 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x86D DUP4 DUP8 PUSH2 0x1077 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x42D JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x885 JUMPI PUSH2 0x884 PUSH2 0x2F48 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x83B JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST DUP3 PUSH2 0x8BB DUP2 PUSH2 0xC88 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8C7 DUP7 DUP7 PUSH2 0x42D JUMP JUMPDEST GT ISZERO PUSH2 0x90C JUMPI DUP5 DUP5 PUSH1 0x40 MLOAD PUSH32 0x788D255600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x903 SWAP3 SWAP2 SWAP1 PUSH2 0x2F77 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x919 DUP6 DUP6 PUSH1 0x1 DUP6 PUSH2 0xFCA JUMP JUMPDEST DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4C209B5FC8AD50758F13E2E1088BA56A560DFF690A1C6FEF26394F4C03821C4F PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x961 SWAP2 SWAP1 PUSH2 0x2FDB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 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 SHL DUP2 JUMP JUMPDEST PUSH2 0x9F4 PUSH2 0x9ED PUSH2 0xCE5 JUMP JUMPDEST DUP4 DUP4 PUSH2 0x108B JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0xA04 DUP2 PUSH2 0xC88 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH2 0xA20 DUP6 PUSH2 0x11FB JUMP JUMPDEST DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xA33 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3073 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xA55 DUP3 PUSH2 0x573 JUMP JUMPDEST PUSH2 0xA5E DUP2 PUSH2 0xCD1 JUMP JUMPDEST PUSH2 0xA68 DUP4 DUP4 PUSH2 0xED7 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB0C PUSH2 0xCE5 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0xB51 JUMPI POP PUSH2 0xB4F DUP7 DUP3 PUSH2 0xA6E JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0xB95 JUMPI DUP1 DUP7 PUSH1 0x40 MLOAD PUSH32 0xE237D92200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB8C SWAP3 SWAP2 SWAP1 PUSH2 0x2E7F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBA2 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x12C9 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH2 0xBB4 DUP2 PUSH2 0xC88 JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xC26 JUMPI DUP4 DUP4 PUSH1 0x40 MLOAD PUSH32 0x8626CC0300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1D SWAP3 SWAP2 SWAP1 PUSH2 0x2F77 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC32 DUP5 DUP5 PUSH1 0x1 PUSH2 0x13D4 JUMP JUMPDEST DUP3 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x49995E5DD6158CF69AD3E9777C46755A1A826A446C6416992167462DAD033B2A PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0xC7A SWAP2 SWAP1 PUSH2 0x2FDB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 LT PUSH2 0xCCE JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0xC80A970C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCC5 SWAP2 SWAP1 PUSH2 0x1F08 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0xCE2 DUP2 PUSH2 0xCDD PUSH2 0xCE5 JUMP JUMPDEST PUSH2 0x147B JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xD5F JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD56 SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xDD1 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xDC8 SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xDDE DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0x14CC JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDF1 DUP4 DUP4 PUSH2 0x970 JUMP JUMPDEST PUSH2 0xECC JUMPI PUSH1 0x1 PUSH1 0x3 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 0xE69 PUSH2 0xCE5 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 0xED1 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEE3 DUP4 DUP4 PUSH2 0x970 JUMP JUMPDEST ISZERO PUSH2 0xFBF JUMPI PUSH1 0x0 PUSH1 0x3 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 0xF5C PUSH2 0xCE5 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 0xFC4 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x103C JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1033 SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1049 DUP6 DUP6 PUSH2 0x157E JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x105B PUSH1 0x0 DUP8 DUP5 DUP5 DUP8 PUSH2 0x14CC JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MUL PUSH1 0x20 DUP5 ADD ADD MLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MUL PUSH1 0x20 DUP5 ADD ADD MLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x10FD JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xCED3E10000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10F4 SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 DUP4 PUSH1 0x40 MLOAD PUSH2 0x11EE SWAP2 SWAP1 PUSH2 0x1FC3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH2 0x120A DUP5 PUSH2 0x15AE JUMP JUMPDEST ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1229 JUMPI PUSH2 0x1228 PUSH2 0x20C7 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x125B JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x20 ADD DUP3 ADD SWAP1 POP JUMPDEST PUSH1 0x1 ISZERO PUSH2 0x12BE JUMPI DUP1 DUP1 PUSH1 0x1 SWAP1 SUB SWAP2 POP POP PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DUP2 PUSH2 0x12B2 JUMPI PUSH2 0x12B1 PUSH2 0x30EB JUMP JUMPDEST JUMPDEST DIV SWAP5 POP PUSH1 0x0 DUP6 SUB PUSH2 0x1269 JUMPI JUMPDEST DUP2 SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x133B JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1332 SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x13AD JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x13A4 SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x13BA DUP6 DUP6 PUSH2 0x157E JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x13CB DUP8 DUP8 DUP5 DUP5 DUP8 PUSH2 0x14CC JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1446 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x143D SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1453 DUP5 DUP5 PUSH2 0x157E JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x1474 DUP6 PUSH1 0x0 DUP5 DUP5 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x14CC JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1485 DUP3 DUP3 PUSH2 0x970 JUMP JUMPDEST PUSH2 0x14C8 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH32 0xE2517D3F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14BF SWAP3 SWAP2 SWAP1 PUSH2 0x311A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x14D8 DUP6 DUP6 DUP6 DUP6 PUSH2 0x1701 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1577 JUMPI PUSH1 0x0 PUSH2 0x1516 PUSH2 0xCE5 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP5 MLOAD SUB PUSH2 0x1566 JUMPI PUSH1 0x0 PUSH2 0x1537 PUSH1 0x0 DUP7 PUSH2 0x1077 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x154F PUSH1 0x0 DUP7 PUSH2 0x1077 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH2 0x155F DUP4 DUP10 DUP10 DUP6 DUP6 DUP10 PUSH2 0x1AA9 JUMP JUMPDEST POP POP PUSH2 0x1575 JUMP JUMPDEST PUSH2 0x1574 DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x1C5D JUMP JUMPDEST JUMPDEST POP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1 DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH1 0x1 DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD PUSH1 0x40 MSTORE SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x160C JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DUP2 PUSH2 0x1602 JUMPI PUSH2 0x1601 PUSH2 0x30EB JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x40 DUP2 ADD SWAP1 POP JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x1649 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DUP2 PUSH2 0x163F JUMPI PUSH2 0x163E PUSH2 0x30EB JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x20 DUP2 ADD SWAP1 POP JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x1678 JUMPI PUSH7 0x2386F26FC10000 DUP4 DUP2 PUSH2 0x166E JUMPI PUSH2 0x166D PUSH2 0x30EB JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x10 DUP2 ADD SWAP1 POP JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x16A1 JUMPI PUSH4 0x5F5E100 DUP4 DUP2 PUSH2 0x1697 JUMPI PUSH2 0x1696 PUSH2 0x30EB JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x8 DUP2 ADD SWAP1 POP JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x16C6 JUMPI PUSH2 0x2710 DUP4 DUP2 PUSH2 0x16BC JUMPI PUSH2 0x16BB PUSH2 0x30EB JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x4 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x16E9 JUMPI PUSH1 0x64 DUP4 DUP2 PUSH2 0x16DF JUMPI PUSH2 0x16DE PUSH2 0x30EB JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x2 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x16F8 JUMPI PUSH1 0x1 DUP2 ADD SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD DUP3 MLOAD EQ PUSH2 0x174B JUMPI DUP2 MLOAD DUP2 MLOAD PUSH1 0x40 MLOAD PUSH32 0x5B05999100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1742 SWAP3 SWAP2 SWAP1 PUSH2 0x2F1F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1755 PUSH2 0xCE5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x1964 JUMPI PUSH1 0x0 PUSH2 0x1778 DUP3 DUP7 PUSH2 0x1077 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x178F DUP4 DUP7 PUSH2 0x1077 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x18BC JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x1864 JUMPI DUP9 DUP2 DUP4 DUP6 PUSH1 0x40 MLOAD PUSH32 0x3DEE4C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x185B SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3143 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1957 JUMPI DUP1 PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x194F SWAP2 SWAP1 PUSH2 0x3188 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x175A JUMP JUMPDEST POP PUSH1 0x1 DUP4 MLOAD SUB PUSH2 0x1A23 JUMPI PUSH1 0x0 PUSH2 0x1984 PUSH1 0x0 DUP6 PUSH2 0x1077 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x199C PUSH1 0x0 DUP6 PUSH2 0x1077 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x1A14 SWAP3 SWAP2 SWAP1 PUSH2 0x2F1F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP PUSH2 0x1AA2 JUMP JUMPDEST DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4A39DC06D4C0DBC64B70AF90FD698A233A518AA5D07E595D983B8C0526C8F7FB DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1A99 SWAP3 SWAP2 SWAP1 PUSH2 0x31BC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x1C55 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF23A6E61 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B0A SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3248 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1B46 JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1B43 SWAP2 SWAP1 PUSH2 0x32B7 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1BCA JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1B76 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1B7B JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x1BC2 JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BB9 SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x1C53 JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C4A SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x1E09 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xBC197C81 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CBE SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x32E4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1CFA JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1CF7 SWAP2 SWAP1 PUSH2 0x32B7 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1D7E JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1D2A JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1D2F JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x1D76 JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D6D SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x1E07 JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1DFE SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E50 DUP3 PUSH2 0x1E25 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1E60 DUP2 PUSH2 0x1E45 JUMP JUMPDEST DUP2 EQ PUSH2 0x1E6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1E7D DUP2 PUSH2 0x1E57 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1E96 DUP2 PUSH2 0x1E83 JUMP JUMPDEST DUP2 EQ PUSH2 0x1EA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1EB3 DUP2 PUSH2 0x1E8D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1ED0 JUMPI PUSH2 0x1ECF PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1EDE DUP6 DUP3 DUP7 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1EEF DUP6 DUP3 DUP7 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1F02 DUP2 PUSH2 0x1E83 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1F1D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1EF9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1F58 DUP2 PUSH2 0x1F23 JUMP JUMPDEST DUP2 EQ PUSH2 0x1F63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1F75 DUP2 PUSH2 0x1F4F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F91 JUMPI PUSH2 0x1F90 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1F9F DUP5 DUP3 DUP6 ADD PUSH2 0x1F66 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1FBD DUP2 PUSH2 0x1FA8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1FD8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1FB4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FF4 JUMPI PUSH2 0x1FF3 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2002 DUP5 DUP3 DUP6 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2045 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x202A JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x206D DUP3 PUSH2 0x200B JUMP JUMPDEST PUSH2 0x2077 DUP2 DUP6 PUSH2 0x2016 JUMP JUMPDEST SWAP4 POP PUSH2 0x2087 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2027 JUMP JUMPDEST PUSH2 0x2090 DUP2 PUSH2 0x2051 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 0x20B5 DUP2 DUP5 PUSH2 0x2062 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x20FF DUP3 PUSH2 0x2051 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x211E JUMPI PUSH2 0x211D PUSH2 0x20C7 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2131 PUSH2 0x1E11 JUMP JUMPDEST SWAP1 POP PUSH2 0x213D DUP3 DUP3 PUSH2 0x20F6 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x215D JUMPI PUSH2 0x215C PUSH2 0x20C7 JUMP JUMPDEST JUMPDEST PUSH2 0x2166 DUP3 PUSH2 0x2051 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 0x2195 PUSH2 0x2190 DUP5 PUSH2 0x2142 JUMP JUMPDEST PUSH2 0x2127 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x21B1 JUMPI PUSH2 0x21B0 PUSH2 0x20C2 JUMP JUMPDEST JUMPDEST PUSH2 0x21BC DUP5 DUP3 DUP6 PUSH2 0x2173 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x21D9 JUMPI PUSH2 0x21D8 PUSH2 0x20BD JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x21E9 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2182 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2209 JUMPI PUSH2 0x2208 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2217 DUP6 DUP3 DUP7 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2238 JUMPI PUSH2 0x2237 PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x2244 DUP6 DUP3 DUP7 ADD PUSH2 0x21C4 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2261 DUP2 PUSH2 0x224E JUMP JUMPDEST DUP2 EQ PUSH2 0x226C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x227E DUP2 PUSH2 0x2258 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x229A JUMPI PUSH2 0x2299 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x22A8 DUP5 DUP3 DUP6 ADD PUSH2 0x226F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x22BA DUP2 PUSH2 0x224E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x22D5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x22B1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x22F6 JUMPI PUSH2 0x22F5 PUSH2 0x20C7 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x231F PUSH2 0x231A DUP5 PUSH2 0x22DB JUMP JUMPDEST PUSH2 0x2127 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 0x2342 JUMPI PUSH2 0x2341 PUSH2 0x2307 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x236B JUMPI DUP1 PUSH2 0x2357 DUP9 DUP3 PUSH2 0x1EA4 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2344 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x238A JUMPI PUSH2 0x2389 PUSH2 0x20BD JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x239A DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x230C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x23BE JUMPI PUSH2 0x23BD PUSH2 0x20C7 JUMP JUMPDEST JUMPDEST PUSH2 0x23C7 DUP3 PUSH2 0x2051 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x23E7 PUSH2 0x23E2 DUP5 PUSH2 0x23A3 JUMP JUMPDEST PUSH2 0x2127 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2403 JUMPI PUSH2 0x2402 PUSH2 0x20C2 JUMP JUMPDEST JUMPDEST PUSH2 0x240E DUP5 DUP3 DUP6 PUSH2 0x2173 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x242B JUMPI PUSH2 0x242A PUSH2 0x20BD JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x243B DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x23D4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2460 JUMPI PUSH2 0x245F PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x246E DUP9 DUP3 DUP10 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x247F DUP9 DUP3 DUP10 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x24A0 JUMPI PUSH2 0x249F PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x24AC DUP9 DUP3 DUP10 ADD PUSH2 0x2375 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x24CD JUMPI PUSH2 0x24CC PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x24D9 DUP9 DUP3 DUP10 ADD PUSH2 0x2375 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x24FA JUMPI PUSH2 0x24F9 PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x2506 DUP9 DUP3 DUP10 ADD PUSH2 0x2416 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x252A JUMPI PUSH2 0x2529 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2538 DUP6 DUP3 DUP7 ADD PUSH2 0x226F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2549 DUP6 DUP3 DUP7 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2569 JUMPI PUSH2 0x2568 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2587 JUMPI PUSH2 0x2586 PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x2593 DUP5 DUP3 DUP6 ADD PUSH2 0x21C4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x25B7 JUMPI PUSH2 0x25B6 PUSH2 0x20C7 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x25DB PUSH2 0x25D6 DUP5 PUSH2 0x259C JUMP JUMPDEST PUSH2 0x2127 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 0x25FE JUMPI PUSH2 0x25FD PUSH2 0x2307 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2627 JUMPI DUP1 PUSH2 0x2613 DUP9 DUP3 PUSH2 0x1E6E JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2600 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2646 JUMPI PUSH2 0x2645 PUSH2 0x20BD JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2656 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x25C8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2676 JUMPI PUSH2 0x2675 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2694 JUMPI PUSH2 0x2693 PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x26A0 DUP6 DUP3 DUP7 ADD PUSH2 0x2631 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x26C1 JUMPI PUSH2 0x26C0 PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x26CD DUP6 DUP3 DUP7 ADD PUSH2 0x2375 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x270C DUP2 PUSH2 0x1E83 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x271E DUP4 DUP4 PUSH2 0x2703 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 0x2742 DUP3 PUSH2 0x26D7 JUMP JUMPDEST PUSH2 0x274C DUP2 DUP6 PUSH2 0x26E2 JUMP JUMPDEST SWAP4 POP PUSH2 0x2757 DUP4 PUSH2 0x26F3 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2788 JUMPI DUP2 MLOAD PUSH2 0x276F DUP9 DUP3 PUSH2 0x2712 JUMP JUMPDEST SWAP8 POP PUSH2 0x277A DUP4 PUSH2 0x272A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x275B JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x27AF DUP2 DUP5 PUSH2 0x2737 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x27D1 JUMPI PUSH2 0x27D0 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x27DF DUP8 DUP3 DUP9 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x27F0 DUP8 DUP3 DUP9 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x2801 DUP8 DUP3 DUP9 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2822 JUMPI PUSH2 0x2821 PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x282E DUP8 DUP3 DUP9 ADD PUSH2 0x2416 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH2 0x2843 DUP2 PUSH2 0x1FA8 JUMP JUMPDEST DUP2 EQ PUSH2 0x284E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2860 DUP2 PUSH2 0x283A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x287D JUMPI PUSH2 0x287C PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x288B DUP6 DUP3 DUP7 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x289C DUP6 DUP3 DUP7 ADD PUSH2 0x2851 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x28BF JUMPI PUSH2 0x28BE PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x28CD DUP7 DUP3 DUP8 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x28DE DUP7 DUP3 DUP8 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x28FF JUMPI PUSH2 0x28FE PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x290B DUP7 DUP3 DUP8 ADD PUSH2 0x21C4 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x292C JUMPI PUSH2 0x292B PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x293A DUP6 DUP3 DUP7 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x294B DUP6 DUP3 DUP7 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2971 JUMPI PUSH2 0x2970 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x297F DUP9 DUP3 DUP10 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x2990 DUP9 DUP3 DUP10 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x29A1 DUP9 DUP3 DUP10 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x29B2 DUP9 DUP3 DUP10 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x29D3 JUMPI PUSH2 0x29D2 PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x29DF DUP9 DUP3 DUP10 ADD PUSH2 0x2416 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2A05 JUMPI PUSH2 0x2A04 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2A13 DUP7 DUP3 DUP8 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x2A24 DUP7 DUP3 DUP8 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x2A35 DUP7 DUP3 DUP8 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x697066733A2F2F00000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A80 PUSH1 0x7 DUP4 PUSH2 0x2A3F JUMP JUMPDEST SWAP2 POP PUSH2 0x2A8B DUP3 PUSH2 0x2A4A JUMP JUMPDEST PUSH1 0x7 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x2ADD JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2AF0 JUMPI PUSH2 0x2AEF PUSH2 0x2A96 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 DUP2 SLOAD PUSH2 0x2B18 DUP2 PUSH2 0x2AC5 JUMP JUMPDEST PUSH2 0x2B22 DUP2 DUP7 PUSH2 0x2A3F JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0x2B3D JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x2B52 JUMPI PUSH2 0x2B85 JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE DUP2 ISZERO ISZERO DUP3 MUL DUP7 ADD SWAP4 POP PUSH2 0x2B85 JUMP JUMPDEST PUSH2 0x2B5B DUP6 PUSH2 0x2AF6 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2B7D JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2B5E JUMP JUMPDEST DUP4 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x2E6A736F6E000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2BC4 PUSH1 0x5 DUP4 PUSH2 0x2A3F JUMP JUMPDEST SWAP2 POP PUSH2 0x2BCF DUP3 PUSH2 0x2B8E JUMP JUMPDEST PUSH1 0x5 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2BE5 DUP3 PUSH2 0x2A73 JUMP JUMPDEST SWAP2 POP PUSH2 0x2BF1 DUP3 DUP5 PUSH2 0x2B0B JUMP JUMPDEST SWAP2 POP PUSH2 0x2BFC DUP3 PUSH2 0x2BB7 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP 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 0x2C54 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x2C17 JUMP JUMPDEST PUSH2 0x2C5E DUP7 DUP4 PUSH2 0x2C17 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C9B PUSH2 0x2C96 PUSH2 0x2C91 DUP5 PUSH2 0x1E83 JUMP JUMPDEST PUSH2 0x2C76 JUMP JUMPDEST PUSH2 0x1E83 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2CB5 DUP4 PUSH2 0x2C80 JUMP JUMPDEST PUSH2 0x2CC9 PUSH2 0x2CC1 DUP3 PUSH2 0x2CA2 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x2C24 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x2CDE PUSH2 0x2CD1 JUMP JUMPDEST PUSH2 0x2CE9 DUP2 DUP5 DUP5 PUSH2 0x2CAC JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2D0D JUMPI PUSH2 0x2D02 PUSH1 0x0 DUP3 PUSH2 0x2CD6 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x2CEF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x2D52 JUMPI PUSH2 0x2D23 DUP2 PUSH2 0x2AF6 JUMP JUMPDEST PUSH2 0x2D2C DUP5 PUSH2 0x2C07 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x2D3B JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x2D4F PUSH2 0x2D47 DUP6 PUSH2 0x2C07 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x2CEE 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 0x2D75 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x2D57 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D8E DUP4 DUP4 PUSH2 0x2D64 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2DA7 DUP3 PUSH2 0x200B JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2DC0 JUMPI PUSH2 0x2DBF PUSH2 0x20C7 JUMP JUMPDEST JUMPDEST PUSH2 0x2DCA DUP3 SLOAD PUSH2 0x2AC5 JUMP JUMPDEST PUSH2 0x2DD5 DUP3 DUP3 DUP6 PUSH2 0x2D11 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x2E08 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x2DF6 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x2E00 DUP6 DUP3 PUSH2 0x2D82 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x2E68 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x2E16 DUP7 PUSH2 0x2AF6 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2E3E 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 0x2E19 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x2E5B JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x2E57 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x2D64 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 0x2E79 DUP2 PUSH2 0x1E45 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2E94 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2E70 JUMP JUMPDEST PUSH2 0x2EA1 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2E70 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2EE2 DUP3 PUSH2 0x1E83 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x2F14 JUMPI PUSH2 0x2F13 PUSH2 0x2EA8 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2F34 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1EF9 JUMP JUMPDEST PUSH2 0x2F41 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1EF9 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2F8C PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2E70 JUMP JUMPDEST PUSH2 0x2F99 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1EF9 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FC5 PUSH2 0x2FC0 PUSH2 0x2FBB DUP5 PUSH2 0x2FA0 JUMP JUMPDEST PUSH2 0x2C76 JUMP JUMPDEST PUSH2 0x1E83 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2FD5 DUP2 PUSH2 0x2FAA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2FF0 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2FCC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x2F00000000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x302C PUSH1 0x1 DUP4 PUSH2 0x2A3F JUMP JUMPDEST SWAP2 POP PUSH2 0x3037 DUP3 PUSH2 0x2FF6 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x304D DUP3 PUSH2 0x200B JUMP JUMPDEST PUSH2 0x3057 DUP2 DUP6 PUSH2 0x2A3F JUMP JUMPDEST SWAP4 POP PUSH2 0x3067 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2027 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x307E DUP3 PUSH2 0x2A73 JUMP JUMPDEST SWAP2 POP PUSH2 0x308A DUP3 DUP7 PUSH2 0x2B0B JUMP JUMPDEST SWAP2 POP PUSH2 0x3095 DUP3 PUSH2 0x301F JUMP JUMPDEST SWAP2 POP PUSH2 0x30A1 DUP3 DUP6 PUSH2 0x3042 JUMP JUMPDEST SWAP2 POP PUSH2 0x30AC DUP3 PUSH2 0x301F JUMP JUMPDEST SWAP2 POP PUSH2 0x30B8 DUP3 DUP5 PUSH2 0x3042 JUMP JUMPDEST SWAP2 POP PUSH2 0x30C3 DUP3 PUSH2 0x2BB7 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x30E5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2E70 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x312F PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2E70 JUMP JUMPDEST PUSH2 0x313C PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x22B1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x3158 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x2E70 JUMP JUMPDEST PUSH2 0x3165 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1EF9 JUMP JUMPDEST PUSH2 0x3172 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x1EF9 JUMP JUMPDEST PUSH2 0x317F PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x1EF9 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3193 DUP3 PUSH2 0x1E83 JUMP JUMPDEST SWAP2 POP PUSH2 0x319E DUP4 PUSH2 0x1E83 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x31B6 JUMPI PUSH2 0x31B5 PUSH2 0x2EA8 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x31D6 DUP2 DUP6 PUSH2 0x2737 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x31EA DUP2 DUP5 PUSH2 0x2737 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 0x321A DUP3 PUSH2 0x31F3 JUMP JUMPDEST PUSH2 0x3224 DUP2 DUP6 PUSH2 0x31FE JUMP JUMPDEST SWAP4 POP PUSH2 0x3234 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2027 JUMP JUMPDEST PUSH2 0x323D DUP2 PUSH2 0x2051 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x325D PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x2E70 JUMP JUMPDEST PUSH2 0x326A PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2E70 JUMP JUMPDEST PUSH2 0x3277 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x1EF9 JUMP JUMPDEST PUSH2 0x3284 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x1EF9 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x3296 DUP2 DUP5 PUSH2 0x320F JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x32B1 DUP2 PUSH2 0x1F4F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x32CD JUMPI PUSH2 0x32CC PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x32DB DUP5 DUP3 DUP6 ADD PUSH2 0x32A2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x32F9 PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x2E70 JUMP JUMPDEST PUSH2 0x3306 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2E70 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x3318 DUP2 DUP7 PUSH2 0x2737 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x332C DUP2 DUP6 PUSH2 0x2737 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x3340 DUP2 DUP5 PUSH2 0x320F JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x29 0x4F DUP5 ADD PUSH1 0x8E DUP12 PREVRANDAO 0xE4 0xD PUSH5 0x2DDEDDDE89 SWAP16 DUP11 GASLIMIT PUSH5 0xDB1A2F81 0xDF SWAP15 0xF8 0xD5 SWAP3 TIMESTAMP 0xD5 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", - "sourceMap": "265:2624:15:-:0;;;354:1;330:25;;532:85;;;;;;;;;;1251:62:3;;;;;;;;;;;;1293:13;1301:4;1293:7;;;:13;;:::i;:::-;1251:62;568:42:15::1;2232:4:0;579:18:15::0;::::1;599:10;568;;;:42;;:::i;:::-;;265:2624:::0;;10282:86:3;10355:6;10348:4;:13;;;;;;:::i;:::-;;10282:86;:::o;6179:316:0:-;6256:4;6277:22;6285:4;6291:7;6277;;;:22;;:::i;:::-;6272:217;;6347:4;6315:6;:12;6322:4;6315:12;;;;;;;;;;;:20;;:29;6336:7;6315:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;6397:12;:10;;;:12;;:::i;:::-;6370:40;;6388:7;6370:40;;6382:4;6370:40;;;;;;;;;;6431:4;6424:11;;;;6272:217;6473:5;6466:12;;6179:316;;;;;:::o;2854:136::-;2931:4;2954:6;:12;2961:4;2954:12;;;;;;;;;;;:20;;:29;2975:7;2954:29;;;;;;;;;;;;;;;;;;;;;;;;;2947:36;;2854:136;;;;:::o;656:96:8:-;709:7;735:10;728:17;;656:96;:::o;7:99:18:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;265:2624:15:-;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": { - "@DEFAULT_ADMIN_ROLE_29": { - "entryPoint": 2523, - "id": 29, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@PROVIDER_ROLE_3540": { - "entryPoint": 1427, - "id": 3540, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_asSingletonArrays_1565": { - "entryPoint": 5502, - "id": 1565, - "parameterSlots": 2, - "returnSlots": 2 - }, - "@_burn_1332": { - "entryPoint": 5076, - "id": 1332, - "parameterSlots": 3, - "returnSlots": 0 - }, - "@_checkRole_114": { - "entryPoint": 5243, - "id": 114, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@_checkRole_93": { - "entryPoint": 3281, - "id": 93, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_checkTokenId_3576": { - "entryPoint": 3208, - "id": 3576, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_doSafeBatchTransferAcceptanceCheck_1549": { - "entryPoint": 7261, - "id": 1549, - "parameterSlots": 6, - "returnSlots": 0 - }, - "@_doSafeTransferAcceptanceCheck_1479": { - "entryPoint": 6825, - "id": 1479, - "parameterSlots": 6, - "returnSlots": 0 - }, - "@_grantRole_256": { - "entryPoint": 3557, - "id": 256, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@_mint_1241": { - "entryPoint": 4042, - "id": 1241, - "parameterSlots": 4, - "returnSlots": 0 - }, - "@_msgSender_1942": { - "entryPoint": 3301, - "id": 1942, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_revokeRole_294": { - "entryPoint": 3799, - "id": 294, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@_safeBatchTransferFrom_1178": { - "entryPoint": 3309, - "id": 1178, - "parameterSlots": 5, - "returnSlots": 0 - }, - "@_safeTransferFrom_1123": { - "entryPoint": 4809, - "id": 1123, - "parameterSlots": 5, - "returnSlots": 0 - }, - "@_setApprovalForAll_1411": { - "entryPoint": 4235, - "id": 1411, - "parameterSlots": 3, - "returnSlots": 0 - }, - "@_updateWithAcceptanceCheck_1057": { - "entryPoint": 5324, - "id": 1057, - "parameterSlots": 5, - "returnSlots": 0 - }, - "@_update_981": { - "entryPoint": 5889, - "id": 981, - "parameterSlots": 4, - "returnSlots": 0 - }, - "@balanceOfBatch_705": { - "entryPoint": 1950, - "id": 705, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@balanceOf_635": { - "entryPoint": 1069, - "id": 635, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@burn_3702": { - "entryPoint": 2986, - "id": 3702, - "parameterSlots": 3, - "returnSlots": 0 - }, - "@counter_3594": { - "entryPoint": 2215, - "id": 3594, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@getRoleAdmin_128": { - "entryPoint": 1395, - "id": 128, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@getScores_3737": { - "entryPoint": 2552, - "id": 3737, - "parameterSlots": 3, - "returnSlots": 1 - }, - "@grantRole_147": { - "entryPoint": 1631, - "id": 147, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@hasRole_80": { - "entryPoint": 2416, - "id": 80, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@isApprovedForAll_738": { - "entryPoint": 2670, - "id": 738, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@issue_3623": { - "entryPoint": 1788, - "id": 3623, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@log10_3235": { - "entryPoint": 5550, - "id": 3235, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@mint_3665": { - "entryPoint": 2225, - "id": 3665, - "parameterSlots": 4, - "returnSlots": 0 - }, - "@renounceRole_189": { - "entryPoint": 1665, - "id": 189, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@revokeRole_166": { - "entryPoint": 2636, - "id": 166, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@safeBatchTransferFrom_828": { - "entryPoint": 1463, - "id": 828, - "parameterSlots": 5, - "returnSlots": 0 - }, - "@safeTransferFrom_782": { - "entryPoint": 2818, - "id": 782, - "parameterSlots": 5, - "returnSlots": 0 - }, - "@setApprovalForAll_721": { - "entryPoint": 2530, - "id": 721, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@supportsInterface_3773": { - "entryPoint": 1159, - "id": 3773, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@toString_2138": { - "entryPoint": 4603, - "id": 2138, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@unsafeMemoryAccess_1916": { - "entryPoint": 4215, - "id": 1916, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@unsafeMemoryAccess_1929": { - "entryPoint": 4195, - "id": 1929, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@updateScores_3762": { - "entryPoint": 1236, - "id": 3762, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@uri_3797": { - "entryPoint": 1166, - "id": 3797, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr": { - "entryPoint": 9672, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr": { - "entryPoint": 8972, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_decode_available_length_t_bytes_memory_ptr": { - "entryPoint": 9172, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_decode_available_length_t_string_memory_ptr": { - "entryPoint": 8578, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_decode_t_address": { - "entryPoint": 7790, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_array$_t_address_$dyn_memory_ptr": { - "entryPoint": 9777, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_array$_t_uint256_$dyn_memory_ptr": { - "entryPoint": 9077, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_bool": { - "entryPoint": 10321, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_bytes32": { - "entryPoint": 8815, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_bytes4": { - "entryPoint": 8038, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_bytes4_fromMemory": { - "entryPoint": 12962, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_bytes_memory_ptr": { - "entryPoint": 9238, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_string_memory_ptr": { - "entryPoint": 8644, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_uint256": { - "entryPoint": 7844, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_addresst_address": { - "entryPoint": 10517, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr": { - "entryPoint": 9284, - "id": null, - "parameterSlots": 2, - "returnSlots": 5 - }, - "abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr": { - "entryPoint": 10581, - "id": null, - "parameterSlots": 2, - "returnSlots": 5 - }, - "abi_decode_tuple_t_addresst_bool": { - "entryPoint": 10342, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_addresst_uint256": { - "entryPoint": 7865, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_addresst_uint256t_uint256": { - "entryPoint": 10732, - "id": null, - "parameterSlots": 2, - "returnSlots": 3 - }, - "abi_decode_tuple_t_addresst_uint256t_uint256t_bytes_memory_ptr": { - "entryPoint": 10167, - "id": null, - "parameterSlots": 2, - "returnSlots": 4 - }, - "abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr": { - "entryPoint": 9823, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_bytes32": { - "entryPoint": 8836, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_bytes32t_address": { - "entryPoint": 9491, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_bytes4": { - "entryPoint": 8059, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_bytes4_fromMemory": { - "entryPoint": 12983, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_string_memory_ptr": { - "entryPoint": 9555, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_uint256": { - "entryPoint": 8158, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_uint256t_string_memory_ptr": { - "entryPoint": 8690, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_uint256t_uint256t_string_memory_ptr": { - "entryPoint": 10406, - "id": null, - "parameterSlots": 2, - "returnSlots": 3 - }, - "abi_encodeUpdatedPos_t_uint256_to_t_uint256": { - "entryPoint": 10002, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_t_address_to_t_address_fromStack": { - "entryPoint": 11888, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack": { - "entryPoint": 10039, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_t_bool_to_t_bool_fromStack": { - "entryPoint": 8116, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_bytes32_to_t_bytes32_fromStack": { - "entryPoint": 8881, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack": { - "entryPoint": 12815, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_t_rational_1_by_1_to_t_uint256_fromStack": { - "entryPoint": 12236, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { - "entryPoint": 8290, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { - "entryPoint": 12354, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { - "entryPoint": 11019, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { - "entryPoint": 10867, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { - "entryPoint": 11191, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { - "entryPoint": 12319, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_t_uint256_to_t_uint256": { - "entryPoint": 9987, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_uint256_to_t_uint256_fromStack": { - "entryPoint": 7929, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_tuple_packed_t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe_t_string_storage_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { - "entryPoint": 11226, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_packed_t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe_t_string_storage_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_t_string_memory_ptr_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_t_string_memory_ptr_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { - "entryPoint": 12403, - "id": null, - "parameterSlots": 4, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { - "entryPoint": 12496, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed": { - "entryPoint": 11903, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed": { - "entryPoint": 13028, - "id": null, - "parameterSlots": 6, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed": { - "entryPoint": 12872, - "id": null, - "parameterSlots": 6, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed": { - "entryPoint": 12570, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": { - "entryPoint": 12151, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_uint256_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256__fromStack_reversed": { - "entryPoint": 12611, - "id": null, - "parameterSlots": 5, - "returnSlots": 1 - }, - "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed": { - "entryPoint": 10133, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed": { - "entryPoint": 12732, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { - "entryPoint": 8131, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": { - "entryPoint": 8896, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_rational_1_by_1__to_t_uint256__fromStack_reversed": { - "entryPoint": 12251, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 8347, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { - "entryPoint": 7944, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed": { - "entryPoint": 12063, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "allocate_memory": { - "entryPoint": 8487, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "allocate_unbounded": { - "entryPoint": 7697, - "id": null, - "parameterSlots": 0, - "returnSlots": 1 - }, - "array_allocation_size_t_array$_t_address_$dyn_memory_ptr": { - "entryPoint": 9628, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr": { - "entryPoint": 8923, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "array_allocation_size_t_bytes_memory_ptr": { - "entryPoint": 9123, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "array_allocation_size_t_string_memory_ptr": { - "entryPoint": 8514, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr": { - "entryPoint": 9971, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "array_dataslot_t_string_storage": { - "entryPoint": 10998, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "array_length_t_array$_t_uint256_$dyn_memory_ptr": { - "entryPoint": 9943, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "array_length_t_bytes_memory_ptr": { - "entryPoint": 12787, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "array_length_t_string_memory_ptr": { - "entryPoint": 8203, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr": { - "entryPoint": 10026, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack": { - "entryPoint": 9954, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack": { - "entryPoint": 12798, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { - "entryPoint": 8214, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack": { - "entryPoint": 10815, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "checked_add_t_uint256": { - "entryPoint": 12680, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "clean_up_bytearray_end_slots_t_string_storage": { - "entryPoint": 11537, - "id": null, - "parameterSlots": 3, - "returnSlots": 0 - }, - "cleanup_t_address": { - "entryPoint": 7749, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_bool": { - "entryPoint": 8104, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_bytes32": { - "entryPoint": 8782, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_bytes4": { - "entryPoint": 7971, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_rational_1_by_1": { - "entryPoint": 12192, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_uint160": { - "entryPoint": 7717, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_uint256": { - "entryPoint": 7811, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "clear_storage_range_t_bytes1": { - "entryPoint": 11502, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "convert_t_rational_1_by_1_to_t_uint256": { - "entryPoint": 12202, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "convert_t_uint256_to_t_uint256": { - "entryPoint": 11392, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { - "entryPoint": 11678, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "copy_calldata_to_memory_with_cleanup": { - "entryPoint": 8563, - "id": null, - "parameterSlots": 3, - "returnSlots": 0 - }, - "copy_memory_to_memory_with_cleanup": { - "entryPoint": 8231, - "id": null, - "parameterSlots": 3, - "returnSlots": 0 - }, - "divide_by_32_ceil": { - "entryPoint": 11271, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "extract_byte_array_length": { - "entryPoint": 10949, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "extract_used_part_and_set_length_of_short_byte_array": { - "entryPoint": 11650, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "finalize_allocation": { - "entryPoint": 8438, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "identity": { - "entryPoint": 11382, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "increment_t_uint256": { - "entryPoint": 11991, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "mask_bytes_dynamic": { - "entryPoint": 11620, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "panic_error_0x11": { - "entryPoint": 11944, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "panic_error_0x12": { - "entryPoint": 12523, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "panic_error_0x22": { - "entryPoint": 10902, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "panic_error_0x32": { - "entryPoint": 12104, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "panic_error_0x41": { - "entryPoint": 8391, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "prepare_store_t_uint256": { - "entryPoint": 11426, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { - "entryPoint": 8381, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef": { - "entryPoint": 8967, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { - "entryPoint": 8386, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { - "entryPoint": 7712, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { - "entryPoint": 7707, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "round_up_to_mul_of_32": { - "entryPoint": 8273, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "shift_left_dynamic": { - "entryPoint": 11287, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "shift_right_unsigned_dynamic": { - "entryPoint": 11607, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "storage_set_to_zero_t_uint256": { - "entryPoint": 11478, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "store_literal_in_memory_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe": { - "entryPoint": 10826, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "store_literal_in_memory_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972": { - "entryPoint": 11150, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "store_literal_in_memory_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527": { - "entryPoint": 12278, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "update_byte_slice_dynamic32": { - "entryPoint": 11300, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "update_storage_value_t_uint256_to_t_uint256": { - "entryPoint": 11436, - "id": null, - "parameterSlots": 3, - "returnSlots": 0 - }, - "validator_revert_t_address": { - "entryPoint": 7767, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "validator_revert_t_bool": { - "entryPoint": 10298, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "validator_revert_t_bytes32": { - "entryPoint": 8792, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "validator_revert_t_bytes4": { - "entryPoint": 8015, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "validator_revert_t_uint256": { - "entryPoint": 7821, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "zero_value_for_split_t_uint256": { - "entryPoint": 11473, - "id": null, - "parameterSlots": 0, - "returnSlots": 1 - } - }, - "generatedSources": [ - { - "ast": { - "nativeSrc": "0:42145:18", - "nodeType": "YulBlock", - "src": "0:42145:18", - "statements": [ - { - "body": { - "nativeSrc": "47:35:18", - "nodeType": "YulBlock", - "src": "47:35:18", - "statements": [ - { - "nativeSrc": "57:19:18", - "nodeType": "YulAssignment", - "src": "57:19:18", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "73:2:18", - "nodeType": "YulLiteral", - "src": "73:2:18", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "67:5:18", - "nodeType": "YulIdentifier", - "src": "67:5:18" - }, - "nativeSrc": "67:9:18", - "nodeType": "YulFunctionCall", - "src": "67:9:18" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "57:6:18", - "nodeType": "YulIdentifier", - "src": "57:6:18" - } - ] - } - ] - }, - "name": "allocate_unbounded", - "nativeSrc": "7:75:18", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "40:6:18", - "nodeType": "YulTypedName", - "src": "40:6:18", - "type": "" - } - ], - "src": "7:75:18" - }, - { - "body": { - "nativeSrc": "177:28:18", - "nodeType": "YulBlock", - "src": "177:28:18", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "194:1:18", - "nodeType": "YulLiteral", - "src": "194:1:18", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "197:1:18", - "nodeType": "YulLiteral", - "src": "197:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "187:6:18", - "nodeType": "YulIdentifier", - "src": "187:6:18" - }, - "nativeSrc": "187:12:18", - "nodeType": "YulFunctionCall", - "src": "187:12:18" - }, - "nativeSrc": "187:12:18", - "nodeType": "YulExpressionStatement", - "src": "187:12:18" - } - ] - }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "88:117:18", - "nodeType": "YulFunctionDefinition", - "src": "88:117:18" - }, - { - "body": { - "nativeSrc": "300:28:18", - "nodeType": "YulBlock", - "src": "300:28:18", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "317:1:18", - "nodeType": "YulLiteral", - "src": "317:1:18", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "320:1:18", - "nodeType": "YulLiteral", - "src": "320:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "310:6:18", - "nodeType": "YulIdentifier", - "src": "310:6:18" - }, - "nativeSrc": "310:12:18", - "nodeType": "YulFunctionCall", - "src": "310:12:18" - }, - "nativeSrc": "310:12:18", - "nodeType": "YulExpressionStatement", - "src": "310:12:18" - } - ] - }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "211:117:18", - "nodeType": "YulFunctionDefinition", - "src": "211:117:18" - }, - { - "body": { - "nativeSrc": "379:81:18", - "nodeType": "YulBlock", - "src": "379:81:18", - "statements": [ - { - "nativeSrc": "389:65:18", - "nodeType": "YulAssignment", - "src": "389:65:18", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "404:5:18", - "nodeType": "YulIdentifier", - "src": "404:5:18" - }, - { - "kind": "number", - "nativeSrc": "411:42:18", - "nodeType": "YulLiteral", - "src": "411:42:18", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "400:3:18", - "nodeType": "YulIdentifier", - "src": "400:3:18" - }, - "nativeSrc": "400:54:18", - "nodeType": "YulFunctionCall", - "src": "400:54:18" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "389:7:18", - "nodeType": "YulIdentifier", - "src": "389:7:18" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nativeSrc": "334:126:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "361:5:18", - "nodeType": "YulTypedName", - "src": "361:5:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "371:7:18", - "nodeType": "YulTypedName", - "src": "371:7:18", - "type": "" - } - ], - "src": "334:126:18" - }, - { - "body": { - "nativeSrc": "511:51:18", - "nodeType": "YulBlock", - "src": "511:51:18", - "statements": [ - { - "nativeSrc": "521:35:18", - "nodeType": "YulAssignment", - "src": "521:35:18", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "550:5:18", - "nodeType": "YulIdentifier", - "src": "550:5:18" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "532:17:18", - "nodeType": "YulIdentifier", - "src": "532:17:18" - }, - "nativeSrc": "532:24:18", - "nodeType": "YulFunctionCall", - "src": "532:24:18" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "521:7:18", - "nodeType": "YulIdentifier", - "src": "521:7:18" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nativeSrc": "466:96:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "493:5:18", - "nodeType": "YulTypedName", - "src": "493:5:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "503:7:18", - "nodeType": "YulTypedName", - "src": "503:7:18", - "type": "" - } - ], - "src": "466:96:18" - }, - { - "body": { - "nativeSrc": "611:79:18", - "nodeType": "YulBlock", - "src": "611:79:18", - "statements": [ - { - "body": { - "nativeSrc": "668:16:18", - "nodeType": "YulBlock", - "src": "668:16:18", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "677:1:18", - "nodeType": "YulLiteral", - "src": "677:1:18", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "680:1:18", - "nodeType": "YulLiteral", - "src": "680:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "670:6:18", - "nodeType": "YulIdentifier", - "src": "670:6:18" - }, - "nativeSrc": "670:12:18", - "nodeType": "YulFunctionCall", - "src": "670:12:18" - }, - "nativeSrc": "670:12:18", - "nodeType": "YulExpressionStatement", - "src": "670:12:18" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "634:5:18", - "nodeType": "YulIdentifier", - "src": "634:5:18" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "659:5:18", - "nodeType": "YulIdentifier", - "src": "659:5:18" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "641:17:18", - "nodeType": "YulIdentifier", - "src": "641:17:18" - }, - "nativeSrc": "641:24:18", - "nodeType": "YulFunctionCall", - "src": "641:24:18" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "631:2:18", - "nodeType": "YulIdentifier", - "src": "631:2:18" - }, - "nativeSrc": "631:35:18", - "nodeType": "YulFunctionCall", - "src": "631:35:18" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "624:6:18", - "nodeType": "YulIdentifier", - "src": "624:6:18" - }, - "nativeSrc": "624:43:18", - "nodeType": "YulFunctionCall", - "src": "624:43:18" - }, - "nativeSrc": "621:63:18", - "nodeType": "YulIf", - "src": "621:63:18" - } - ] - }, - "name": "validator_revert_t_address", - "nativeSrc": "568:122:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "604:5:18", - "nodeType": "YulTypedName", - "src": "604:5:18", - "type": "" - } - ], - "src": "568:122:18" - }, - { - "body": { - "nativeSrc": "748:87:18", - "nodeType": "YulBlock", - "src": "748:87:18", - "statements": [ - { - "nativeSrc": "758:29:18", - "nodeType": "YulAssignment", - "src": "758:29:18", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "780:6:18", - "nodeType": "YulIdentifier", - "src": "780:6:18" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "767:12:18", - "nodeType": "YulIdentifier", - "src": "767:12:18" - }, - "nativeSrc": "767:20:18", - "nodeType": "YulFunctionCall", - "src": "767:20:18" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "758:5:18", - "nodeType": "YulIdentifier", - "src": "758:5:18" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "823:5:18", - "nodeType": "YulIdentifier", - "src": "823:5:18" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nativeSrc": "796:26:18", - "nodeType": "YulIdentifier", - "src": "796:26:18" - }, - "nativeSrc": "796:33:18", - "nodeType": "YulFunctionCall", - "src": "796:33:18" - }, - "nativeSrc": "796:33:18", - "nodeType": "YulExpressionStatement", - "src": "796:33:18" - } - ] - }, - "name": "abi_decode_t_address", - "nativeSrc": "696:139:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "726:6:18", - "nodeType": "YulTypedName", - "src": "726:6:18", - "type": "" - }, - { - "name": "end", - "nativeSrc": "734:3:18", - "nodeType": "YulTypedName", - "src": "734:3:18", + "src": "4229:10:18", + "type": "" + }, + { + "name": "toInsert", + "nativeSrc": "4241:8:18", + "nodeType": "YulTypedName", + "src": "4241:8:18", "type": "" } ], "returnVariables": [ { - "name": "value", - "nativeSrc": "742:5:18", + "name": "result", + "nativeSrc": "4254:6:18", "nodeType": "YulTypedName", - "src": "742:5:18", + "src": "4254:6:18", "type": "" } ], - "src": "696:139:18" + "src": "4185:393:18" }, { "body": { - "nativeSrc": "886:32:18", + "nativeSrc": "4629:32:18", "nodeType": "YulBlock", - "src": "886:32:18", + "src": "4629:32:18", "statements": [ { - "nativeSrc": "896:16:18", + "nativeSrc": "4639:16:18", "nodeType": "YulAssignment", - "src": "896:16:18", + "src": "4639:16:18", "value": { "name": "value", - "nativeSrc": "907:5:18", + "nativeSrc": "4650:5:18", "nodeType": "YulIdentifier", - "src": "907:5:18" + "src": "4650:5:18" }, "variableNames": [ { "name": "cleaned", - "nativeSrc": "896:7:18", + "nativeSrc": "4639:7:18", "nodeType": "YulIdentifier", - "src": "896:7:18" + "src": "4639:7:18" } ] } ] }, "name": "cleanup_t_uint256", - "nativeSrc": "841:77:18", + "nativeSrc": "4584:77:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", - "nativeSrc": "868:5:18", + "nativeSrc": "4611:5:18", "nodeType": "YulTypedName", - "src": "868:5:18", + "src": "4611:5:18", "type": "" } ], "returnVariables": [ { "name": "cleaned", - "nativeSrc": "878:7:18", - "nodeType": "YulTypedName", - "src": "878:7:18", - "type": "" - } - ], - "src": "841:77:18" - }, - { - "body": { - "nativeSrc": "967:79:18", - "nodeType": "YulBlock", - "src": "967:79:18", - "statements": [ - { - "body": { - "nativeSrc": "1024:16:18", - "nodeType": "YulBlock", - "src": "1024:16:18", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1033:1:18", - "nodeType": "YulLiteral", - "src": "1033:1:18", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1036:1:18", - "nodeType": "YulLiteral", - "src": "1036:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1026:6:18", - "nodeType": "YulIdentifier", - "src": "1026:6:18" - }, - "nativeSrc": "1026:12:18", - "nodeType": "YulFunctionCall", - "src": "1026:12:18" - }, - "nativeSrc": "1026:12:18", - "nodeType": "YulExpressionStatement", - "src": "1026:12:18" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "990:5:18", - "nodeType": "YulIdentifier", - "src": "990:5:18" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1015:5:18", - "nodeType": "YulIdentifier", - "src": "1015:5:18" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "997:17:18", - "nodeType": "YulIdentifier", - "src": "997:17:18" - }, - "nativeSrc": "997:24:18", - "nodeType": "YulFunctionCall", - "src": "997:24:18" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "987:2:18", - "nodeType": "YulIdentifier", - "src": "987:2:18" - }, - "nativeSrc": "987:35:18", - "nodeType": "YulFunctionCall", - "src": "987:35:18" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "980:6:18", - "nodeType": "YulIdentifier", - "src": "980:6:18" - }, - "nativeSrc": "980:43:18", - "nodeType": "YulFunctionCall", - "src": "980:43:18" - }, - "nativeSrc": "977:63:18", - "nodeType": "YulIf", - "src": "977:63:18" - } - ] - }, - "name": "validator_revert_t_uint256", - "nativeSrc": "924:122:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "960:5:18", + "nativeSrc": "4621:7:18", "nodeType": "YulTypedName", - "src": "960:5:18", + "src": "4621:7:18", "type": "" } ], - "src": "924:122:18" + "src": "4584:77:18" }, { "body": { - "nativeSrc": "1104:87:18", + "nativeSrc": "4699:28:18", "nodeType": "YulBlock", - "src": "1104:87:18", + "src": "4699:28:18", "statements": [ { - "nativeSrc": "1114:29:18", + "nativeSrc": "4709:12:18", "nodeType": "YulAssignment", - "src": "1114:29:18", + "src": "4709:12:18", "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "1136:6:18", - "nodeType": "YulIdentifier", - "src": "1136:6:18" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "1123:12:18", - "nodeType": "YulIdentifier", - "src": "1123:12:18" - }, - "nativeSrc": "1123:20:18", - "nodeType": "YulFunctionCall", - "src": "1123:20:18" + "name": "value", + "nativeSrc": "4716:5:18", + "nodeType": "YulIdentifier", + "src": "4716:5:18" }, "variableNames": [ { - "name": "value", - "nativeSrc": "1114:5:18", + "name": "ret", + "nativeSrc": "4709:3:18", "nodeType": "YulIdentifier", - "src": "1114:5:18" + "src": "4709:3:18" } ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1179:5:18", - "nodeType": "YulIdentifier", - "src": "1179:5:18" - } - ], - "functionName": { - "name": "validator_revert_t_uint256", - "nativeSrc": "1152:26:18", - "nodeType": "YulIdentifier", - "src": "1152:26:18" - }, - "nativeSrc": "1152:33:18", - "nodeType": "YulFunctionCall", - "src": "1152:33:18" - }, - "nativeSrc": "1152:33:18", - "nodeType": "YulExpressionStatement", - "src": "1152:33:18" } ] }, - "name": "abi_decode_t_uint256", - "nativeSrc": "1052:139:18", + "name": "identity", + "nativeSrc": "4667:60:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", - "nativeSrc": "1082:6:18", - "nodeType": "YulTypedName", - "src": "1082:6:18", - "type": "" - }, - { - "name": "end", - "nativeSrc": "1090:3:18", + "name": "value", + "nativeSrc": "4685:5:18", "nodeType": "YulTypedName", - "src": "1090:3:18", + "src": "4685:5:18", "type": "" } ], "returnVariables": [ { - "name": "value", - "nativeSrc": "1098:5:18", + "name": "ret", + "nativeSrc": "4695:3:18", "nodeType": "YulTypedName", - "src": "1098:5:18", + "src": "4695:3:18", "type": "" } ], - "src": "1052:139:18" + "src": "4667:60:18" }, { "body": { - "nativeSrc": "1280:391:18", + "nativeSrc": "4793:82:18", "nodeType": "YulBlock", - "src": "1280:391:18", + "src": "4793:82:18", "statements": [ { - "body": { - "nativeSrc": "1326:83:18", - "nodeType": "YulBlock", - "src": "1326:83:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "1328:77:18", - "nodeType": "YulIdentifier", - "src": "1328:77:18" - }, - "nativeSrc": "1328:79:18", - "nodeType": "YulFunctionCall", - "src": "1328:79:18" - }, - "nativeSrc": "1328:79:18", - "nodeType": "YulExpressionStatement", - "src": "1328:79:18" - } - ] - }, - "condition": { + "nativeSrc": "4803:66:18", + "nodeType": "YulAssignment", + "src": "4803:66:18", + "value": { "arguments": [ { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "1301:7:18", - "nodeType": "YulIdentifier", - "src": "1301:7:18" - }, - { - "name": "headStart", - "nativeSrc": "1310:9:18", - "nodeType": "YulIdentifier", - "src": "1310:9:18" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "1297:3:18", - "nodeType": "YulIdentifier", - "src": "1297:3:18" - }, - "nativeSrc": "1297:23:18", - "nodeType": "YulFunctionCall", - "src": "1297:23:18" - }, - { - "kind": "number", - "nativeSrc": "1322:2:18", - "nodeType": "YulLiteral", - "src": "1322:2:18", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "1293:3:18", - "nodeType": "YulIdentifier", - "src": "1293:3:18" - }, - "nativeSrc": "1293:32:18", - "nodeType": "YulFunctionCall", - "src": "1293:32:18" - }, - "nativeSrc": "1290:119:18", - "nodeType": "YulIf", - "src": "1290:119:18" - }, - { - "nativeSrc": "1419:117:18", - "nodeType": "YulBlock", - "src": "1419:117:18", - "statements": [ - { - "nativeSrc": "1434:15:18", - "nodeType": "YulVariableDeclaration", - "src": "1434:15:18", - "value": { - "kind": "number", - "nativeSrc": "1448:1:18", - "nodeType": "YulLiteral", - "src": "1448:1:18", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "1438:6:18", - "nodeType": "YulTypedName", - "src": "1438:6:18", - "type": "" - } - ] - }, - { - "nativeSrc": "1463:63:18", - "nodeType": "YulAssignment", - "src": "1463:63:18", - "value": { "arguments": [ { "arguments": [ { - "name": "headStart", - "nativeSrc": "1498:9:18", - "nodeType": "YulIdentifier", - "src": "1498:9:18" - }, - { - "name": "offset", - "nativeSrc": "1509:6:18", + "name": "value", + "nativeSrc": "4861:5:18", "nodeType": "YulIdentifier", - "src": "1509:6:18" + "src": "4861:5:18" } ], "functionName": { - "name": "add", - "nativeSrc": "1494:3:18", + "name": "cleanup_t_uint256", + "nativeSrc": "4843:17:18", "nodeType": "YulIdentifier", - "src": "1494:3:18" + "src": "4843:17:18" }, - "nativeSrc": "1494:22:18", + "nativeSrc": "4843:24:18", "nodeType": "YulFunctionCall", - "src": "1494:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "1518:7:18", - "nodeType": "YulIdentifier", - "src": "1518:7:18" + "src": "4843:24:18" } ], "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "1473:20:18", + "name": "identity", + "nativeSrc": "4834:8:18", "nodeType": "YulIdentifier", - "src": "1473:20:18" + "src": "4834:8:18" }, - "nativeSrc": "1473:53:18", + "nativeSrc": "4834:34:18", "nodeType": "YulFunctionCall", - "src": "1473:53:18" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "1463:6:18", - "nodeType": "YulIdentifier", - "src": "1463:6:18" - } - ] - } - ] - }, - { - "nativeSrc": "1546:118:18", - "nodeType": "YulBlock", - "src": "1546:118:18", - "statements": [ - { - "nativeSrc": "1561:16:18", - "nodeType": "YulVariableDeclaration", - "src": "1561:16:18", - "value": { - "kind": "number", - "nativeSrc": "1575:2:18", - "nodeType": "YulLiteral", - "src": "1575:2:18", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "1565:6:18", - "nodeType": "YulTypedName", - "src": "1565:6:18", - "type": "" - } - ] + "src": "4834:34:18" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "4816:17:18", + "nodeType": "YulIdentifier", + "src": "4816:17:18" }, + "nativeSrc": "4816:53:18", + "nodeType": "YulFunctionCall", + "src": "4816:53:18" + }, + "variableNames": [ { - "nativeSrc": "1591:63:18", - "nodeType": "YulAssignment", - "src": "1591:63:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1626:9:18", - "nodeType": "YulIdentifier", - "src": "1626:9:18" - }, - { - "name": "offset", - "nativeSrc": "1637:6:18", - "nodeType": "YulIdentifier", - "src": "1637:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1622:3:18", - "nodeType": "YulIdentifier", - "src": "1622:3:18" - }, - "nativeSrc": "1622:22:18", - "nodeType": "YulFunctionCall", - "src": "1622:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "1646:7:18", - "nodeType": "YulIdentifier", - "src": "1646:7:18" - } - ], - "functionName": { - "name": "abi_decode_t_uint256", - "nativeSrc": "1601:20:18", - "nodeType": "YulIdentifier", - "src": "1601:20:18" - }, - "nativeSrc": "1601:53:18", - "nodeType": "YulFunctionCall", - "src": "1601:53:18" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "1591:6:18", - "nodeType": "YulIdentifier", - "src": "1591:6:18" - } - ] + "name": "converted", + "nativeSrc": "4803:9:18", + "nodeType": "YulIdentifier", + "src": "4803:9:18" } ] } ] }, - "name": "abi_decode_tuple_t_addresst_uint256", - "nativeSrc": "1197:474:18", + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "4733:142:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nativeSrc": "1242:9:18", - "nodeType": "YulTypedName", - "src": "1242:9:18", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "1253:7:18", - "nodeType": "YulTypedName", - "src": "1253:7:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "1265:6:18", - "nodeType": "YulTypedName", - "src": "1265:6:18", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "1273:6:18", + "name": "value", + "nativeSrc": "4773:5:18", "nodeType": "YulTypedName", - "src": "1273:6:18", + "src": "4773:5:18", "type": "" } ], - "src": "1197:474:18" - }, - { - "body": { - "nativeSrc": "1742:53:18", - "nodeType": "YulBlock", - "src": "1742:53:18", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "1759:3:18", - "nodeType": "YulIdentifier", - "src": "1759:3:18" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1782:5:18", - "nodeType": "YulIdentifier", - "src": "1782:5:18" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "1764:17:18", - "nodeType": "YulIdentifier", - "src": "1764:17:18" - }, - "nativeSrc": "1764:24:18", - "nodeType": "YulFunctionCall", - "src": "1764:24:18" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1752:6:18", - "nodeType": "YulIdentifier", - "src": "1752:6:18" - }, - "nativeSrc": "1752:37:18", - "nodeType": "YulFunctionCall", - "src": "1752:37:18" + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "4783:9:18", + "nodeType": "YulTypedName", + "src": "4783:9:18", + "type": "" + } + ], + "src": "4733:142:18" + }, + { + "body": { + "nativeSrc": "4928:28:18", + "nodeType": "YulBlock", + "src": "4928:28:18", + "statements": [ + { + "nativeSrc": "4938:12:18", + "nodeType": "YulAssignment", + "src": "4938:12:18", + "value": { + "name": "value", + "nativeSrc": "4945:5:18", + "nodeType": "YulIdentifier", + "src": "4945:5:18" }, - "nativeSrc": "1752:37:18", - "nodeType": "YulExpressionStatement", - "src": "1752:37:18" + "variableNames": [ + { + "name": "ret", + "nativeSrc": "4938:3:18", + "nodeType": "YulIdentifier", + "src": "4938:3:18" + } + ] } ] }, - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "1677:118:18", + "name": "prepare_store_t_uint256", + "nativeSrc": "4881:75:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", - "nativeSrc": "1730:5:18", + "nativeSrc": "4914:5:18", "nodeType": "YulTypedName", - "src": "1730:5:18", + "src": "4914:5:18", "type": "" - }, + } + ], + "returnVariables": [ { - "name": "pos", - "nativeSrc": "1737:3:18", + "name": "ret", + "nativeSrc": "4924:3:18", "nodeType": "YulTypedName", - "src": "1737:3:18", + "src": "4924:3:18", "type": "" } ], - "src": "1677:118:18" + "src": "4881:75:18" }, { "body": { - "nativeSrc": "1899:124:18", + "nativeSrc": "5038:193:18", "nodeType": "YulBlock", - "src": "1899:124:18", + "src": "5038:193:18", "statements": [ { - "nativeSrc": "1909:26:18", - "nodeType": "YulAssignment", - "src": "1909:26:18", + "nativeSrc": "5048:63:18", + "nodeType": "YulVariableDeclaration", + "src": "5048:63:18", "value": { "arguments": [ { - "name": "headStart", - "nativeSrc": "1921:9:18", + "name": "value_0", + "nativeSrc": "5103:7:18", "nodeType": "YulIdentifier", - "src": "1921:9:18" - }, - { - "kind": "number", - "nativeSrc": "1932:2:18", - "nodeType": "YulLiteral", - "src": "1932:2:18", - "type": "", - "value": "32" + "src": "5103:7:18" } ], "functionName": { - "name": "add", - "nativeSrc": "1917:3:18", + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "5072:30:18", "nodeType": "YulIdentifier", - "src": "1917:3:18" + "src": "5072:30:18" }, - "nativeSrc": "1917:18:18", + "nativeSrc": "5072:39:18", "nodeType": "YulFunctionCall", - "src": "1917:18:18" + "src": "5072:39:18" }, - "variableNames": [ + "variables": [ { - "name": "tail", - "nativeSrc": "1909:4:18", - "nodeType": "YulIdentifier", - "src": "1909:4:18" + "name": "convertedValue_0", + "nativeSrc": "5052:16:18", + "nodeType": "YulTypedName", + "src": "5052:16:18", + "type": "" } ] }, @@ -61174,1674 +60722,2437 @@ "expression": { "arguments": [ { - "name": "value0", - "nativeSrc": "1989:6:18", + "name": "slot", + "nativeSrc": "5127:4:18", "nodeType": "YulIdentifier", - "src": "1989:6:18" + "src": "5127:4:18" }, { "arguments": [ { - "name": "headStart", - "nativeSrc": "2002:9:18", + "arguments": [ + { + "name": "slot", + "nativeSrc": "5167:4:18", + "nodeType": "YulIdentifier", + "src": "5167:4:18" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "5161:5:18", + "nodeType": "YulIdentifier", + "src": "5161:5:18" + }, + "nativeSrc": "5161:11:18", + "nodeType": "YulFunctionCall", + "src": "5161:11:18" + }, + { + "name": "offset", + "nativeSrc": "5174:6:18", "nodeType": "YulIdentifier", - "src": "2002:9:18" + "src": "5174:6:18" }, { - "kind": "number", - "nativeSrc": "2013:1:18", - "nodeType": "YulLiteral", - "src": "2013:1:18", - "type": "", - "value": "0" + "arguments": [ + { + "name": "convertedValue_0", + "nativeSrc": "5206:16:18", + "nodeType": "YulIdentifier", + "src": "5206:16:18" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nativeSrc": "5182:23:18", + "nodeType": "YulIdentifier", + "src": "5182:23:18" + }, + "nativeSrc": "5182:41:18", + "nodeType": "YulFunctionCall", + "src": "5182:41:18" } ], "functionName": { - "name": "add", - "nativeSrc": "1998:3:18", + "name": "update_byte_slice_dynamic32", + "nativeSrc": "5133:27:18", "nodeType": "YulIdentifier", - "src": "1998:3:18" + "src": "5133:27:18" }, - "nativeSrc": "1998:17:18", + "nativeSrc": "5133:91:18", "nodeType": "YulFunctionCall", - "src": "1998:17:18" + "src": "5133:91:18" } ], "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "1945:43:18", + "name": "sstore", + "nativeSrc": "5120:6:18", "nodeType": "YulIdentifier", - "src": "1945:43:18" + "src": "5120:6:18" }, - "nativeSrc": "1945:71:18", + "nativeSrc": "5120:105:18", "nodeType": "YulFunctionCall", - "src": "1945:71:18" + "src": "5120:105:18" }, - "nativeSrc": "1945:71:18", + "nativeSrc": "5120:105:18", "nodeType": "YulExpressionStatement", - "src": "1945:71:18" + "src": "5120:105:18" } ] }, - "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", - "nativeSrc": "1801:222:18", + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "4962:269:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nativeSrc": "1871:9:18", + "name": "slot", + "nativeSrc": "5015:4:18", "nodeType": "YulTypedName", - "src": "1871:9:18", + "src": "5015:4:18", "type": "" }, { - "name": "value0", - "nativeSrc": "1883:6:18", + "name": "offset", + "nativeSrc": "5021:6:18", "nodeType": "YulTypedName", - "src": "1883:6:18", + "src": "5021:6:18", + "type": "" + }, + { + "name": "value_0", + "nativeSrc": "5029:7:18", + "nodeType": "YulTypedName", + "src": "5029:7:18", "type": "" } ], + "src": "4962:269:18" + }, + { + "body": { + "nativeSrc": "5286:24:18", + "nodeType": "YulBlock", + "src": "5286:24:18", + "statements": [ + { + "nativeSrc": "5296:8:18", + "nodeType": "YulAssignment", + "src": "5296:8:18", + "value": { + "kind": "number", + "nativeSrc": "5303:1:18", + "nodeType": "YulLiteral", + "src": "5303:1:18", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "5296:3:18", + "nodeType": "YulIdentifier", + "src": "5296:3:18" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "5237:73:18", + "nodeType": "YulFunctionDefinition", "returnVariables": [ { - "name": "tail", - "nativeSrc": "1894:4:18", + "name": "ret", + "nativeSrc": "5282:3:18", "nodeType": "YulTypedName", - "src": "1894:4:18", + "src": "5282:3:18", "type": "" } ], - "src": "1801:222:18" + "src": "5237:73:18" }, { "body": { - "nativeSrc": "2073:105:18", + "nativeSrc": "5369:136:18", "nodeType": "YulBlock", - "src": "2073:105:18", + "src": "5369:136:18", "statements": [ { - "nativeSrc": "2083:89:18", - "nodeType": "YulAssignment", - "src": "2083:89:18", + "nativeSrc": "5379:46:18", + "nodeType": "YulVariableDeclaration", + "src": "5379:46:18", "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "5393:30:18", + "nodeType": "YulIdentifier", + "src": "5393:30:18" + }, + "nativeSrc": "5393:32:18", + "nodeType": "YulFunctionCall", + "src": "5393:32:18" + }, + "variables": [ + { + "name": "zero_0", + "nativeSrc": "5383:6:18", + "nodeType": "YulTypedName", + "src": "5383:6:18", + "type": "" + } + ] + }, + { + "expression": { "arguments": [ { - "name": "value", - "nativeSrc": "2098:5:18", + "name": "slot", + "nativeSrc": "5478:4:18", "nodeType": "YulIdentifier", - "src": "2098:5:18" + "src": "5478:4:18" }, { - "kind": "number", - "nativeSrc": "2105:66:18", - "nodeType": "YulLiteral", - "src": "2105:66:18", - "type": "", - "value": "0xffffffff00000000000000000000000000000000000000000000000000000000" + "name": "offset", + "nativeSrc": "5484:6:18", + "nodeType": "YulIdentifier", + "src": "5484:6:18" + }, + { + "name": "zero_0", + "nativeSrc": "5492:6:18", + "nodeType": "YulIdentifier", + "src": "5492:6:18" } ], "functionName": { - "name": "and", - "nativeSrc": "2094:3:18", + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "5434:43:18", "nodeType": "YulIdentifier", - "src": "2094:3:18" + "src": "5434:43:18" }, - "nativeSrc": "2094:78:18", + "nativeSrc": "5434:65:18", "nodeType": "YulFunctionCall", - "src": "2094:78:18" + "src": "5434:65:18" }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "2083:7:18", - "nodeType": "YulIdentifier", - "src": "2083:7:18" - } - ] + "nativeSrc": "5434:65:18", + "nodeType": "YulExpressionStatement", + "src": "5434:65:18" } ] }, - "name": "cleanup_t_bytes4", - "nativeSrc": "2029:149:18", + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "5316:189:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", - "nativeSrc": "2055:5:18", + "name": "slot", + "nativeSrc": "5355:4:18", "nodeType": "YulTypedName", - "src": "2055:5:18", + "src": "5355:4:18", "type": "" - } - ], - "returnVariables": [ + }, { - "name": "cleaned", - "nativeSrc": "2065:7:18", + "name": "offset", + "nativeSrc": "5361:6:18", "nodeType": "YulTypedName", - "src": "2065:7:18", + "src": "5361:6:18", "type": "" } ], - "src": "2029:149:18" + "src": "5316:189:18" }, { "body": { - "nativeSrc": "2226:78:18", + "nativeSrc": "5561:136:18", "nodeType": "YulBlock", - "src": "2226:78:18", + "src": "5561:136:18", "statements": [ { "body": { - "nativeSrc": "2282:16:18", + "nativeSrc": "5628:63:18", "nodeType": "YulBlock", - "src": "2282:16:18", + "src": "5628:63:18", "statements": [ { "expression": { "arguments": [ { - "kind": "number", - "nativeSrc": "2291:1:18", - "nodeType": "YulLiteral", - "src": "2291:1:18", - "type": "", - "value": "0" + "name": "start", + "nativeSrc": "5672:5:18", + "nodeType": "YulIdentifier", + "src": "5672:5:18" }, { "kind": "number", - "nativeSrc": "2294:1:18", + "nativeSrc": "5679:1:18", "nodeType": "YulLiteral", - "src": "2294:1:18", + "src": "5679:1:18", "type": "", "value": "0" } ], "functionName": { - "name": "revert", - "nativeSrc": "2284:6:18", + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "5642:29:18", "nodeType": "YulIdentifier", - "src": "2284:6:18" + "src": "5642:29:18" }, - "nativeSrc": "2284:12:18", + "nativeSrc": "5642:39:18", "nodeType": "YulFunctionCall", - "src": "2284:12:18" + "src": "5642:39:18" }, - "nativeSrc": "2284:12:18", + "nativeSrc": "5642:39:18", "nodeType": "YulExpressionStatement", - "src": "2284:12:18" + "src": "5642:39:18" } ] }, "condition": { "arguments": [ { - "arguments": [ - { - "name": "value", - "nativeSrc": "2249:5:18", - "nodeType": "YulIdentifier", - "src": "2249:5:18" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "2273:5:18", - "nodeType": "YulIdentifier", - "src": "2273:5:18" - } - ], - "functionName": { - "name": "cleanup_t_bytes4", - "nativeSrc": "2256:16:18", - "nodeType": "YulIdentifier", - "src": "2256:16:18" - }, - "nativeSrc": "2256:23:18", - "nodeType": "YulFunctionCall", - "src": "2256:23:18" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "2246:2:18", - "nodeType": "YulIdentifier", - "src": "2246:2:18" - }, - "nativeSrc": "2246:34:18", - "nodeType": "YulFunctionCall", - "src": "2246:34:18" + "name": "start", + "nativeSrc": "5581:5:18", + "nodeType": "YulIdentifier", + "src": "5581:5:18" + }, + { + "name": "end", + "nativeSrc": "5588:3:18", + "nodeType": "YulIdentifier", + "src": "5588:3:18" } ], "functionName": { - "name": "iszero", - "nativeSrc": "2239:6:18", + "name": "lt", + "nativeSrc": "5578:2:18", "nodeType": "YulIdentifier", - "src": "2239:6:18" + "src": "5578:2:18" }, - "nativeSrc": "2239:42:18", + "nativeSrc": "5578:14:18", "nodeType": "YulFunctionCall", - "src": "2239:42:18" + "src": "5578:14:18" }, - "nativeSrc": "2236:62:18", - "nodeType": "YulIf", - "src": "2236:62:18" + "nativeSrc": "5571:120:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "5593:26:18", + "nodeType": "YulBlock", + "src": "5593:26:18", + "statements": [ + { + "nativeSrc": "5595:22:18", + "nodeType": "YulAssignment", + "src": "5595:22:18", + "value": { + "arguments": [ + { + "name": "start", + "nativeSrc": "5608:5:18", + "nodeType": "YulIdentifier", + "src": "5608:5:18" + }, + { + "kind": "number", + "nativeSrc": "5615:1:18", + "nodeType": "YulLiteral", + "src": "5615:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5604:3:18", + "nodeType": "YulIdentifier", + "src": "5604:3:18" + }, + "nativeSrc": "5604:13:18", + "nodeType": "YulFunctionCall", + "src": "5604:13:18" + }, + "variableNames": [ + { + "name": "start", + "nativeSrc": "5595:5:18", + "nodeType": "YulIdentifier", + "src": "5595:5:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "5575:2:18", + "nodeType": "YulBlock", + "src": "5575:2:18", + "statements": [] + }, + "src": "5571:120:18" } ] }, - "name": "validator_revert_t_bytes4", - "nativeSrc": "2184:120:18", + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "5511:186:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", - "nativeSrc": "2219:5:18", + "name": "start", + "nativeSrc": "5549:5:18", "nodeType": "YulTypedName", - "src": "2219:5:18", + "src": "5549:5:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "5556:3:18", + "nodeType": "YulTypedName", + "src": "5556:3:18", "type": "" } ], - "src": "2184:120:18" + "src": "5511:186:18" }, { "body": { - "nativeSrc": "2361:86:18", + "nativeSrc": "5782:464:18", "nodeType": "YulBlock", - "src": "2361:86:18", + "src": "5782:464:18", "statements": [ { - "nativeSrc": "2371:29:18", - "nodeType": "YulAssignment", - "src": "2371:29:18", - "value": { - "arguments": [ + "body": { + "nativeSrc": "5808:431:18", + "nodeType": "YulBlock", + "src": "5808:431:18", + "statements": [ { - "name": "offset", - "nativeSrc": "2393:6:18", - "nodeType": "YulIdentifier", - "src": "2393:6:18" + "nativeSrc": "5822:54:18", + "nodeType": "YulVariableDeclaration", + "src": "5822:54:18", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "5870:5:18", + "nodeType": "YulIdentifier", + "src": "5870:5:18" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "5838:31:18", + "nodeType": "YulIdentifier", + "src": "5838:31:18" + }, + "nativeSrc": "5838:38:18", + "nodeType": "YulFunctionCall", + "src": "5838:38:18" + }, + "variables": [ + { + "name": "dataArea", + "nativeSrc": "5826:8:18", + "nodeType": "YulTypedName", + "src": "5826:8:18", + "type": "" + } + ] + }, + { + "nativeSrc": "5889:63:18", + "nodeType": "YulVariableDeclaration", + "src": "5889:63:18", + "value": { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "5912:8:18", + "nodeType": "YulIdentifier", + "src": "5912:8:18" + }, + { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "5940:10:18", + "nodeType": "YulIdentifier", + "src": "5940:10:18" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "5922:17:18", + "nodeType": "YulIdentifier", + "src": "5922:17:18" + }, + "nativeSrc": "5922:29:18", + "nodeType": "YulFunctionCall", + "src": "5922:29:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5908:3:18", + "nodeType": "YulIdentifier", + "src": "5908:3:18" + }, + "nativeSrc": "5908:44:18", + "nodeType": "YulFunctionCall", + "src": "5908:44:18" + }, + "variables": [ + { + "name": "deleteStart", + "nativeSrc": "5893:11:18", + "nodeType": "YulTypedName", + "src": "5893:11:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "6109:27:18", + "nodeType": "YulBlock", + "src": "6109:27:18", + "statements": [ + { + "nativeSrc": "6111:23:18", + "nodeType": "YulAssignment", + "src": "6111:23:18", + "value": { + "name": "dataArea", + "nativeSrc": "6126:8:18", + "nodeType": "YulIdentifier", + "src": "6126:8:18" + }, + "variableNames": [ + { + "name": "deleteStart", + "nativeSrc": "6111:11:18", + "nodeType": "YulIdentifier", + "src": "6111:11:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "6093:10:18", + "nodeType": "YulIdentifier", + "src": "6093:10:18" + }, + { + "kind": "number", + "nativeSrc": "6105:2:18", + "nodeType": "YulLiteral", + "src": "6105:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "6090:2:18", + "nodeType": "YulIdentifier", + "src": "6090:2:18" + }, + "nativeSrc": "6090:18:18", + "nodeType": "YulFunctionCall", + "src": "6090:18:18" + }, + "nativeSrc": "6087:49:18", + "nodeType": "YulIf", + "src": "6087:49:18" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nativeSrc": "6178:11:18", + "nodeType": "YulIdentifier", + "src": "6178:11:18" + }, + { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "6195:8:18", + "nodeType": "YulIdentifier", + "src": "6195:8:18" + }, + { + "arguments": [ + { + "name": "len", + "nativeSrc": "6223:3:18", + "nodeType": "YulIdentifier", + "src": "6223:3:18" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "6205:17:18", + "nodeType": "YulIdentifier", + "src": "6205:17:18" + }, + "nativeSrc": "6205:22:18", + "nodeType": "YulFunctionCall", + "src": "6205:22:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6191:3:18", + "nodeType": "YulIdentifier", + "src": "6191:3:18" + }, + "nativeSrc": "6191:37:18", + "nodeType": "YulFunctionCall", + "src": "6191:37:18" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "6149:28:18", + "nodeType": "YulIdentifier", + "src": "6149:28:18" + }, + "nativeSrc": "6149:80:18", + "nodeType": "YulFunctionCall", + "src": "6149:80:18" + }, + "nativeSrc": "6149:80:18", + "nodeType": "YulExpressionStatement", + "src": "6149:80:18" } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "2380:12:18", - "nodeType": "YulIdentifier", - "src": "2380:12:18" - }, - "nativeSrc": "2380:20:18", - "nodeType": "YulFunctionCall", - "src": "2380:20:18" + ] }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "2371:5:18", - "nodeType": "YulIdentifier", - "src": "2371:5:18" - } - ] - }, - { - "expression": { + "condition": { "arguments": [ { - "name": "value", - "nativeSrc": "2435:5:18", + "name": "len", + "nativeSrc": "5799:3:18", "nodeType": "YulIdentifier", - "src": "2435:5:18" + "src": "5799:3:18" + }, + { + "kind": "number", + "nativeSrc": "5804:2:18", + "nodeType": "YulLiteral", + "src": "5804:2:18", + "type": "", + "value": "31" } ], "functionName": { - "name": "validator_revert_t_bytes4", - "nativeSrc": "2409:25:18", + "name": "gt", + "nativeSrc": "5796:2:18", "nodeType": "YulIdentifier", - "src": "2409:25:18" + "src": "5796:2:18" }, - "nativeSrc": "2409:32:18", + "nativeSrc": "5796:11:18", "nodeType": "YulFunctionCall", - "src": "2409:32:18" + "src": "5796:11:18" }, - "nativeSrc": "2409:32:18", - "nodeType": "YulExpressionStatement", - "src": "2409:32:18" + "nativeSrc": "5793:446:18", + "nodeType": "YulIf", + "src": "5793:446:18" } ] }, - "name": "abi_decode_t_bytes4", - "nativeSrc": "2310:137:18", + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "5703:543:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", - "nativeSrc": "2339:6:18", + "name": "array", + "nativeSrc": "5758:5:18", "nodeType": "YulTypedName", - "src": "2339:6:18", + "src": "5758:5:18", "type": "" }, { - "name": "end", - "nativeSrc": "2347:3:18", + "name": "len", + "nativeSrc": "5765:3:18", "nodeType": "YulTypedName", - "src": "2347:3:18", + "src": "5765:3:18", "type": "" - } - ], - "returnVariables": [ + }, { - "name": "value", - "nativeSrc": "2355:5:18", + "name": "startIndex", + "nativeSrc": "5770:10:18", "nodeType": "YulTypedName", - "src": "2355:5:18", + "src": "5770:10:18", "type": "" } ], - "src": "2310:137:18" + "src": "5703:543:18" }, { "body": { - "nativeSrc": "2518:262:18", + "nativeSrc": "6315:54:18", "nodeType": "YulBlock", - "src": "2518:262:18", + "src": "6315:54:18", "statements": [ { - "body": { - "nativeSrc": "2564:83:18", - "nodeType": "YulBlock", - "src": "2564:83:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "2566:77:18", - "nodeType": "YulIdentifier", - "src": "2566:77:18" - }, - "nativeSrc": "2566:79:18", - "nodeType": "YulFunctionCall", - "src": "2566:79:18" - }, - "nativeSrc": "2566:79:18", - "nodeType": "YulExpressionStatement", - "src": "2566:79:18" - } - ] - }, - "condition": { + "nativeSrc": "6325:37:18", + "nodeType": "YulAssignment", + "src": "6325:37:18", + "value": { "arguments": [ { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "2539:7:18", - "nodeType": "YulIdentifier", - "src": "2539:7:18" - }, - { - "name": "headStart", - "nativeSrc": "2548:9:18", - "nodeType": "YulIdentifier", - "src": "2548:9:18" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "2535:3:18", - "nodeType": "YulIdentifier", - "src": "2535:3:18" - }, - "nativeSrc": "2535:23:18", - "nodeType": "YulFunctionCall", - "src": "2535:23:18" + "name": "bits", + "nativeSrc": "6350:4:18", + "nodeType": "YulIdentifier", + "src": "6350:4:18" }, { - "kind": "number", - "nativeSrc": "2560:2:18", - "nodeType": "YulLiteral", - "src": "2560:2:18", - "type": "", - "value": "32" + "name": "value", + "nativeSrc": "6356:5:18", + "nodeType": "YulIdentifier", + "src": "6356:5:18" } ], "functionName": { - "name": "slt", - "nativeSrc": "2531:3:18", + "name": "shr", + "nativeSrc": "6346:3:18", "nodeType": "YulIdentifier", - "src": "2531:3:18" + "src": "6346:3:18" }, - "nativeSrc": "2531:32:18", + "nativeSrc": "6346:16:18", "nodeType": "YulFunctionCall", - "src": "2531:32:18" + "src": "6346:16:18" }, - "nativeSrc": "2528:119:18", - "nodeType": "YulIf", - "src": "2528:119:18" - }, - { - "nativeSrc": "2657:116:18", - "nodeType": "YulBlock", - "src": "2657:116:18", - "statements": [ - { - "nativeSrc": "2672:15:18", - "nodeType": "YulVariableDeclaration", - "src": "2672:15:18", - "value": { - "kind": "number", - "nativeSrc": "2686:1:18", - "nodeType": "YulLiteral", - "src": "2686:1:18", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "2676:6:18", - "nodeType": "YulTypedName", - "src": "2676:6:18", - "type": "" - } - ] - }, + "variableNames": [ { - "nativeSrc": "2701:62:18", - "nodeType": "YulAssignment", - "src": "2701:62:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2735:9:18", - "nodeType": "YulIdentifier", - "src": "2735:9:18" - }, - { - "name": "offset", - "nativeSrc": "2746:6:18", - "nodeType": "YulIdentifier", - "src": "2746:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2731:3:18", - "nodeType": "YulIdentifier", - "src": "2731:3:18" - }, - "nativeSrc": "2731:22:18", - "nodeType": "YulFunctionCall", - "src": "2731:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "2755:7:18", - "nodeType": "YulIdentifier", - "src": "2755:7:18" - } - ], - "functionName": { - "name": "abi_decode_t_bytes4", - "nativeSrc": "2711:19:18", - "nodeType": "YulIdentifier", - "src": "2711:19:18" - }, - "nativeSrc": "2711:52:18", - "nodeType": "YulFunctionCall", - "src": "2711:52:18" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "2701:6:18", - "nodeType": "YulIdentifier", - "src": "2701:6:18" - } - ] + "name": "newValue", + "nativeSrc": "6325:8:18", + "nodeType": "YulIdentifier", + "src": "6325:8:18" } ] } ] }, - "name": "abi_decode_tuple_t_bytes4", - "nativeSrc": "2453:327:18", + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "6252:117:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nativeSrc": "2488:9:18", + "name": "bits", + "nativeSrc": "6290:4:18", "nodeType": "YulTypedName", - "src": "2488:9:18", + "src": "6290:4:18", "type": "" }, { - "name": "dataEnd", - "nativeSrc": "2499:7:18", + "name": "value", + "nativeSrc": "6296:5:18", "nodeType": "YulTypedName", - "src": "2499:7:18", + "src": "6296:5:18", "type": "" } ], "returnVariables": [ { - "name": "value0", - "nativeSrc": "2511:6:18", + "name": "newValue", + "nativeSrc": "6306:8:18", "nodeType": "YulTypedName", - "src": "2511:6:18", + "src": "6306:8:18", "type": "" } ], - "src": "2453:327:18" + "src": "6252:117:18" }, { "body": { - "nativeSrc": "2828:48:18", + "nativeSrc": "6426:118:18", "nodeType": "YulBlock", - "src": "2828:48:18", + "src": "6426:118:18", "statements": [ { - "nativeSrc": "2838:32:18", - "nodeType": "YulAssignment", - "src": "2838:32:18", + "nativeSrc": "6436:68:18", + "nodeType": "YulVariableDeclaration", + "src": "6436:68:18", "value": { "arguments": [ { "arguments": [ { - "name": "value", - "nativeSrc": "2863:5:18", - "nodeType": "YulIdentifier", - "src": "2863:5:18" + "arguments": [ + { + "kind": "number", + "nativeSrc": "6485:1:18", + "nodeType": "YulLiteral", + "src": "6485:1:18", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nativeSrc": "6488:5:18", + "nodeType": "YulIdentifier", + "src": "6488:5:18" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "6481:3:18", + "nodeType": "YulIdentifier", + "src": "6481:3:18" + }, + "nativeSrc": "6481:13:18", + "nodeType": "YulFunctionCall", + "src": "6481:13:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6500:1:18", + "nodeType": "YulLiteral", + "src": "6500:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "6496:3:18", + "nodeType": "YulIdentifier", + "src": "6496:3:18" + }, + "nativeSrc": "6496:6:18", + "nodeType": "YulFunctionCall", + "src": "6496:6:18" } ], "functionName": { - "name": "iszero", - "nativeSrc": "2856:6:18", + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "6452:28:18", "nodeType": "YulIdentifier", - "src": "2856:6:18" + "src": "6452:28:18" }, - "nativeSrc": "2856:13:18", + "nativeSrc": "6452:51:18", "nodeType": "YulFunctionCall", - "src": "2856:13:18" + "src": "6452:51:18" } ], "functionName": { - "name": "iszero", - "nativeSrc": "2849:6:18", + "name": "not", + "nativeSrc": "6448:3:18", "nodeType": "YulIdentifier", - "src": "2849:6:18" + "src": "6448:3:18" }, - "nativeSrc": "2849:21:18", + "nativeSrc": "6448:56:18", "nodeType": "YulFunctionCall", - "src": "2849:21:18" + "src": "6448:56:18" }, - "variableNames": [ + "variables": [ { - "name": "cleaned", - "nativeSrc": "2838:7:18", - "nodeType": "YulIdentifier", - "src": "2838:7:18" + "name": "mask", + "nativeSrc": "6440:4:18", + "nodeType": "YulTypedName", + "src": "6440:4:18", + "type": "" } ] - } - ] - }, - "name": "cleanup_t_bool", - "nativeSrc": "2786:90:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "2810:5:18", - "nodeType": "YulTypedName", - "src": "2810:5:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "2820:7:18", - "nodeType": "YulTypedName", - "src": "2820:7:18", - "type": "" - } - ], - "src": "2786:90:18" - }, - { - "body": { - "nativeSrc": "2941:50:18", - "nodeType": "YulBlock", - "src": "2941:50:18", - "statements": [ + }, { - "expression": { + "nativeSrc": "6513:25:18", + "nodeType": "YulAssignment", + "src": "6513:25:18", + "value": { "arguments": [ { - "name": "pos", - "nativeSrc": "2958:3:18", + "name": "data", + "nativeSrc": "6527:4:18", "nodeType": "YulIdentifier", - "src": "2958:3:18" + "src": "6527:4:18" }, { - "arguments": [ - { - "name": "value", - "nativeSrc": "2978:5:18", - "nodeType": "YulIdentifier", - "src": "2978:5:18" - } - ], - "functionName": { - "name": "cleanup_t_bool", - "nativeSrc": "2963:14:18", - "nodeType": "YulIdentifier", - "src": "2963:14:18" - }, - "nativeSrc": "2963:21:18", - "nodeType": "YulFunctionCall", - "src": "2963:21:18" + "name": "mask", + "nativeSrc": "6533:4:18", + "nodeType": "YulIdentifier", + "src": "6533:4:18" } ], "functionName": { - "name": "mstore", - "nativeSrc": "2951:6:18", + "name": "and", + "nativeSrc": "6523:3:18", "nodeType": "YulIdentifier", - "src": "2951:6:18" + "src": "6523:3:18" }, - "nativeSrc": "2951:34:18", + "nativeSrc": "6523:15:18", "nodeType": "YulFunctionCall", - "src": "2951:34:18" + "src": "6523:15:18" }, - "nativeSrc": "2951:34:18", - "nodeType": "YulExpressionStatement", - "src": "2951:34:18" + "variableNames": [ + { + "name": "result", + "nativeSrc": "6513:6:18", + "nodeType": "YulIdentifier", + "src": "6513:6:18" + } + ] } ] }, - "name": "abi_encode_t_bool_to_t_bool_fromStack", - "nativeSrc": "2882:109:18", + "name": "mask_bytes_dynamic", + "nativeSrc": "6375:169:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", - "nativeSrc": "2929:5:18", + "name": "data", + "nativeSrc": "6403:4:18", "nodeType": "YulTypedName", - "src": "2929:5:18", + "src": "6403:4:18", "type": "" }, { - "name": "pos", - "nativeSrc": "2936:3:18", + "name": "bytes", + "nativeSrc": "6409:5:18", "nodeType": "YulTypedName", - "src": "2936:3:18", + "src": "6409:5:18", "type": "" } ], - "src": "2882:109:18" + "returnVariables": [ + { + "name": "result", + "nativeSrc": "6419:6:18", + "nodeType": "YulTypedName", + "src": "6419:6:18", + "type": "" + } + ], + "src": "6375:169:18" }, { "body": { - "nativeSrc": "3089:118:18", + "nativeSrc": "6630:214:18", "nodeType": "YulBlock", - "src": "3089:118:18", + "src": "6630:214:18", "statements": [ { - "nativeSrc": "3099:26:18", + "nativeSrc": "6763:37:18", "nodeType": "YulAssignment", - "src": "3099:26:18", + "src": "6763:37:18", "value": { "arguments": [ { - "name": "headStart", - "nativeSrc": "3111:9:18", + "name": "data", + "nativeSrc": "6790:4:18", "nodeType": "YulIdentifier", - "src": "3111:9:18" + "src": "6790:4:18" }, { - "kind": "number", - "nativeSrc": "3122:2:18", - "nodeType": "YulLiteral", - "src": "3122:2:18", - "type": "", - "value": "32" + "name": "len", + "nativeSrc": "6796:3:18", + "nodeType": "YulIdentifier", + "src": "6796:3:18" } ], "functionName": { - "name": "add", - "nativeSrc": "3107:3:18", + "name": "mask_bytes_dynamic", + "nativeSrc": "6771:18:18", "nodeType": "YulIdentifier", - "src": "3107:3:18" + "src": "6771:18:18" }, - "nativeSrc": "3107:18:18", + "nativeSrc": "6771:29:18", "nodeType": "YulFunctionCall", - "src": "3107:18:18" + "src": "6771:29:18" }, "variableNames": [ { - "name": "tail", - "nativeSrc": "3099:4:18", + "name": "data", + "nativeSrc": "6763:4:18", "nodeType": "YulIdentifier", - "src": "3099:4:18" + "src": "6763:4:18" } ] }, { - "expression": { + "nativeSrc": "6809:29:18", + "nodeType": "YulAssignment", + "src": "6809:29:18", + "value": { "arguments": [ { - "name": "value0", - "nativeSrc": "3173:6:18", + "name": "data", + "nativeSrc": "6820:4:18", "nodeType": "YulIdentifier", - "src": "3173:6:18" + "src": "6820:4:18" }, { "arguments": [ - { - "name": "headStart", - "nativeSrc": "3186:9:18", - "nodeType": "YulIdentifier", - "src": "3186:9:18" - }, { "kind": "number", - "nativeSrc": "3197:1:18", + "nativeSrc": "6830:1:18", "nodeType": "YulLiteral", - "src": "3197:1:18", + "src": "6830:1:18", "type": "", - "value": "0" + "value": "2" + }, + { + "name": "len", + "nativeSrc": "6833:3:18", + "nodeType": "YulIdentifier", + "src": "6833:3:18" } ], "functionName": { - "name": "add", - "nativeSrc": "3182:3:18", + "name": "mul", + "nativeSrc": "6826:3:18", "nodeType": "YulIdentifier", - "src": "3182:3:18" + "src": "6826:3:18" }, - "nativeSrc": "3182:17:18", + "nativeSrc": "6826:11:18", "nodeType": "YulFunctionCall", - "src": "3182:17:18" + "src": "6826:11:18" } ], "functionName": { - "name": "abi_encode_t_bool_to_t_bool_fromStack", - "nativeSrc": "3135:37:18", + "name": "or", + "nativeSrc": "6817:2:18", "nodeType": "YulIdentifier", - "src": "3135:37:18" + "src": "6817:2:18" }, - "nativeSrc": "3135:65:18", + "nativeSrc": "6817:21:18", "nodeType": "YulFunctionCall", - "src": "3135:65:18" + "src": "6817:21:18" }, - "nativeSrc": "3135:65:18", - "nodeType": "YulExpressionStatement", - "src": "3135:65:18" + "variableNames": [ + { + "name": "used", + "nativeSrc": "6809:4:18", + "nodeType": "YulIdentifier", + "src": "6809:4:18" + } + ] } ] }, - "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", - "nativeSrc": "2997:210:18", + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "6549:295:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nativeSrc": "3061:9:18", + "name": "data", + "nativeSrc": "6611:4:18", "nodeType": "YulTypedName", - "src": "3061:9:18", + "src": "6611:4:18", "type": "" }, { - "name": "value0", - "nativeSrc": "3073:6:18", + "name": "len", + "nativeSrc": "6617:3:18", "nodeType": "YulTypedName", - "src": "3073:6:18", + "src": "6617:3:18", "type": "" } ], "returnVariables": [ { - "name": "tail", - "nativeSrc": "3084:4:18", + "name": "used", + "nativeSrc": "6625:4:18", "nodeType": "YulTypedName", - "src": "3084:4:18", + "src": "6625:4:18", "type": "" } ], - "src": "2997:210:18" + "src": "6549:295:18" }, { "body": { - "nativeSrc": "3279:263:18", + "nativeSrc": "6941:1303:18", "nodeType": "YulBlock", - "src": "3279:263:18", + "src": "6941:1303:18", "statements": [ + { + "nativeSrc": "6952:51:18", + "nodeType": "YulVariableDeclaration", + "src": "6952:51:18", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "6999:3:18", + "nodeType": "YulIdentifier", + "src": "6999:3:18" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "6966:32:18", + "nodeType": "YulIdentifier", + "src": "6966:32:18" + }, + "nativeSrc": "6966:37:18", + "nodeType": "YulFunctionCall", + "src": "6966:37:18" + }, + "variables": [ + { + "name": "newLen", + "nativeSrc": "6956:6:18", + "nodeType": "YulTypedName", + "src": "6956:6:18", + "type": "" + } + ] + }, { "body": { - "nativeSrc": "3325:83:18", + "nativeSrc": "7088:22:18", "nodeType": "YulBlock", - "src": "3325:83:18", + "src": "7088:22:18", "statements": [ { "expression": { "arguments": [], "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "3327:77:18", + "name": "panic_error_0x41", + "nativeSrc": "7090:16:18", "nodeType": "YulIdentifier", - "src": "3327:77:18" + "src": "7090:16:18" }, - "nativeSrc": "3327:79:18", + "nativeSrc": "7090:18:18", "nodeType": "YulFunctionCall", - "src": "3327:79:18" + "src": "7090:18:18" }, - "nativeSrc": "3327:79:18", + "nativeSrc": "7090:18:18", "nodeType": "YulExpressionStatement", - "src": "3327:79:18" + "src": "7090:18:18" } ] }, "condition": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7060:6:18", + "nodeType": "YulIdentifier", + "src": "7060:6:18" + }, + { + "kind": "number", + "nativeSrc": "7068:18:18", + "nodeType": "YulLiteral", + "src": "7068:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7057:2:18", + "nodeType": "YulIdentifier", + "src": "7057:2:18" + }, + "nativeSrc": "7057:30:18", + "nodeType": "YulFunctionCall", + "src": "7057:30:18" + }, + "nativeSrc": "7054:56:18", + "nodeType": "YulIf", + "src": "7054:56:18" + }, + { + "nativeSrc": "7120:52:18", + "nodeType": "YulVariableDeclaration", + "src": "7120:52:18", + "value": { "arguments": [ { "arguments": [ { - "name": "dataEnd", - "nativeSrc": "3300:7:18", - "nodeType": "YulIdentifier", - "src": "3300:7:18" - }, - { - "name": "headStart", - "nativeSrc": "3309:9:18", + "name": "slot", + "nativeSrc": "7166:4:18", "nodeType": "YulIdentifier", - "src": "3309:9:18" + "src": "7166:4:18" } ], "functionName": { - "name": "sub", - "nativeSrc": "3296:3:18", + "name": "sload", + "nativeSrc": "7160:5:18", "nodeType": "YulIdentifier", - "src": "3296:3:18" + "src": "7160:5:18" }, - "nativeSrc": "3296:23:18", + "nativeSrc": "7160:11:18", "nodeType": "YulFunctionCall", - "src": "3296:23:18" + "src": "7160:11:18" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "7134:25:18", + "nodeType": "YulIdentifier", + "src": "7134:25:18" + }, + "nativeSrc": "7134:38:18", + "nodeType": "YulFunctionCall", + "src": "7134:38:18" + }, + "variables": [ + { + "name": "oldLen", + "nativeSrc": "7124:6:18", + "nodeType": "YulTypedName", + "src": "7124:6:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "7265:4:18", + "nodeType": "YulIdentifier", + "src": "7265:4:18" + }, + { + "name": "oldLen", + "nativeSrc": "7271:6:18", + "nodeType": "YulIdentifier", + "src": "7271:6:18" + }, + { + "name": "newLen", + "nativeSrc": "7279:6:18", + "nodeType": "YulIdentifier", + "src": "7279:6:18" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "7219:45:18", + "nodeType": "YulIdentifier", + "src": "7219:45:18" + }, + "nativeSrc": "7219:67:18", + "nodeType": "YulFunctionCall", + "src": "7219:67:18" + }, + "nativeSrc": "7219:67:18", + "nodeType": "YulExpressionStatement", + "src": "7219:67:18" + }, + { + "nativeSrc": "7296:18:18", + "nodeType": "YulVariableDeclaration", + "src": "7296:18:18", + "value": { + "kind": "number", + "nativeSrc": "7313:1:18", + "nodeType": "YulLiteral", + "src": "7313:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nativeSrc": "7300:9:18", + "nodeType": "YulTypedName", + "src": "7300:9:18", + "type": "" + } + ] + }, + { + "nativeSrc": "7324:17:18", + "nodeType": "YulAssignment", + "src": "7324:17:18", + "value": { + "kind": "number", + "nativeSrc": "7337:4:18", + "nodeType": "YulLiteral", + "src": "7337:4:18", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "7324:9:18", + "nodeType": "YulIdentifier", + "src": "7324:9:18" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "7388:611:18", + "nodeType": "YulBlock", + "src": "7388:611:18", + "statements": [ + { + "nativeSrc": "7402:37:18", + "nodeType": "YulVariableDeclaration", + "src": "7402:37:18", + "value": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7421:6:18", + "nodeType": "YulIdentifier", + "src": "7421:6:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7433:4:18", + "nodeType": "YulLiteral", + "src": "7433:4:18", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "7429:3:18", + "nodeType": "YulIdentifier", + "src": "7429:3:18" + }, + "nativeSrc": "7429:9:18", + "nodeType": "YulFunctionCall", + "src": "7429:9:18" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "7417:3:18", + "nodeType": "YulIdentifier", + "src": "7417:3:18" + }, + "nativeSrc": "7417:22:18", + "nodeType": "YulFunctionCall", + "src": "7417:22:18" + }, + "variables": [ + { + "name": "loopEnd", + "nativeSrc": "7406:7:18", + "nodeType": "YulTypedName", + "src": "7406:7:18", + "type": "" + } + ] + }, + { + "nativeSrc": "7453:51:18", + "nodeType": "YulVariableDeclaration", + "src": "7453:51:18", + "value": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "7499:4:18", + "nodeType": "YulIdentifier", + "src": "7499:4:18" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "7467:31:18", + "nodeType": "YulIdentifier", + "src": "7467:31:18" + }, + "nativeSrc": "7467:37:18", + "nodeType": "YulFunctionCall", + "src": "7467:37:18" + }, + "variables": [ + { + "name": "dstPtr", + "nativeSrc": "7457:6:18", + "nodeType": "YulTypedName", + "src": "7457:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "7517:10:18", + "nodeType": "YulVariableDeclaration", + "src": "7517:10:18", + "value": { + "kind": "number", + "nativeSrc": "7526:1:18", + "nodeType": "YulLiteral", + "src": "7526:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "7521:1:18", + "nodeType": "YulTypedName", + "src": "7521:1:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "7585:163:18", + "nodeType": "YulBlock", + "src": "7585:163:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "7610:6:18", + "nodeType": "YulIdentifier", + "src": "7610:6:18" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "7628:3:18", + "nodeType": "YulIdentifier", + "src": "7628:3:18" + }, + { + "name": "srcOffset", + "nativeSrc": "7633:9:18", + "nodeType": "YulIdentifier", + "src": "7633:9:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7624:3:18", + "nodeType": "YulIdentifier", + "src": "7624:3:18" + }, + "nativeSrc": "7624:19:18", + "nodeType": "YulFunctionCall", + "src": "7624:19:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "7618:5:18", + "nodeType": "YulIdentifier", + "src": "7618:5:18" + }, + "nativeSrc": "7618:26:18", + "nodeType": "YulFunctionCall", + "src": "7618:26:18" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "7603:6:18", + "nodeType": "YulIdentifier", + "src": "7603:6:18" + }, + "nativeSrc": "7603:42:18", + "nodeType": "YulFunctionCall", + "src": "7603:42:18" + }, + "nativeSrc": "7603:42:18", + "nodeType": "YulExpressionStatement", + "src": "7603:42:18" + }, + { + "nativeSrc": "7662:24:18", + "nodeType": "YulAssignment", + "src": "7662:24:18", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "7676:6:18", + "nodeType": "YulIdentifier", + "src": "7676:6:18" + }, + { + "kind": "number", + "nativeSrc": "7684:1:18", + "nodeType": "YulLiteral", + "src": "7684:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7672:3:18", + "nodeType": "YulIdentifier", + "src": "7672:3:18" + }, + "nativeSrc": "7672:14:18", + "nodeType": "YulFunctionCall", + "src": "7672:14:18" + }, + "variableNames": [ + { + "name": "dstPtr", + "nativeSrc": "7662:6:18", + "nodeType": "YulIdentifier", + "src": "7662:6:18" + } + ] + }, + { + "nativeSrc": "7703:31:18", + "nodeType": "YulAssignment", + "src": "7703:31:18", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nativeSrc": "7720:9:18", + "nodeType": "YulIdentifier", + "src": "7720:9:18" + }, + { + "kind": "number", + "nativeSrc": "7731:2:18", + "nodeType": "YulLiteral", + "src": "7731:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7716:3:18", + "nodeType": "YulIdentifier", + "src": "7716:3:18" + }, + "nativeSrc": "7716:18:18", + "nodeType": "YulFunctionCall", + "src": "7716:18:18" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "7703:9:18", + "nodeType": "YulIdentifier", + "src": "7703:9:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "7551:1:18", + "nodeType": "YulIdentifier", + "src": "7551:1:18" + }, + { + "name": "loopEnd", + "nativeSrc": "7554:7:18", + "nodeType": "YulIdentifier", + "src": "7554:7:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "7548:2:18", + "nodeType": "YulIdentifier", + "src": "7548:2:18" + }, + "nativeSrc": "7548:14:18", + "nodeType": "YulFunctionCall", + "src": "7548:14:18" + }, + "nativeSrc": "7540:208:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "7563:21:18", + "nodeType": "YulBlock", + "src": "7563:21:18", + "statements": [ + { + "nativeSrc": "7565:17:18", + "nodeType": "YulAssignment", + "src": "7565:17:18", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "7574:1:18", + "nodeType": "YulIdentifier", + "src": "7574:1:18" + }, + { + "kind": "number", + "nativeSrc": "7577:4:18", + "nodeType": "YulLiteral", + "src": "7577:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7570:3:18", + "nodeType": "YulIdentifier", + "src": "7570:3:18" + }, + "nativeSrc": "7570:12:18", + "nodeType": "YulFunctionCall", + "src": "7570:12:18" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "7565:1:18", + "nodeType": "YulIdentifier", + "src": "7565:1:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "7544:3:18", + "nodeType": "YulBlock", + "src": "7544:3:18", + "statements": [] + }, + "src": "7540:208:18" + }, + { + "body": { + "nativeSrc": "7784:156:18", + "nodeType": "YulBlock", + "src": "7784:156:18", + "statements": [ + { + "nativeSrc": "7802:43:18", + "nodeType": "YulVariableDeclaration", + "src": "7802:43:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "7829:3:18", + "nodeType": "YulIdentifier", + "src": "7829:3:18" + }, + { + "name": "srcOffset", + "nativeSrc": "7834:9:18", + "nodeType": "YulIdentifier", + "src": "7834:9:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7825:3:18", + "nodeType": "YulIdentifier", + "src": "7825:3:18" + }, + "nativeSrc": "7825:19:18", + "nodeType": "YulFunctionCall", + "src": "7825:19:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "7819:5:18", + "nodeType": "YulIdentifier", + "src": "7819:5:18" + }, + "nativeSrc": "7819:26:18", + "nodeType": "YulFunctionCall", + "src": "7819:26:18" + }, + "variables": [ + { + "name": "lastValue", + "nativeSrc": "7806:9:18", + "nodeType": "YulTypedName", + "src": "7806:9:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "7869:6:18", + "nodeType": "YulIdentifier", + "src": "7869:6:18" + }, + { + "arguments": [ + { + "name": "lastValue", + "nativeSrc": "7896:9:18", + "nodeType": "YulIdentifier", + "src": "7896:9:18" + }, + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7911:6:18", + "nodeType": "YulIdentifier", + "src": "7911:6:18" + }, + { + "kind": "number", + "nativeSrc": "7919:4:18", + "nodeType": "YulLiteral", + "src": "7919:4:18", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "7907:3:18", + "nodeType": "YulIdentifier", + "src": "7907:3:18" + }, + "nativeSrc": "7907:17:18", + "nodeType": "YulFunctionCall", + "src": "7907:17:18" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "7877:18:18", + "nodeType": "YulIdentifier", + "src": "7877:18:18" + }, + "nativeSrc": "7877:48:18", + "nodeType": "YulFunctionCall", + "src": "7877:48:18" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "7862:6:18", + "nodeType": "YulIdentifier", + "src": "7862:6:18" + }, + "nativeSrc": "7862:64:18", + "nodeType": "YulFunctionCall", + "src": "7862:64:18" + }, + "nativeSrc": "7862:64:18", + "nodeType": "YulExpressionStatement", + "src": "7862:64:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nativeSrc": "7767:7:18", + "nodeType": "YulIdentifier", + "src": "7767:7:18" + }, + { + "name": "newLen", + "nativeSrc": "7776:6:18", + "nodeType": "YulIdentifier", + "src": "7776:6:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "7764:2:18", + "nodeType": "YulIdentifier", + "src": "7764:2:18" + }, + "nativeSrc": "7764:19:18", + "nodeType": "YulFunctionCall", + "src": "7764:19:18" + }, + "nativeSrc": "7761:179:18", + "nodeType": "YulIf", + "src": "7761:179:18" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "7960:4:18", + "nodeType": "YulIdentifier", + "src": "7960:4:18" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7974:6:18", + "nodeType": "YulIdentifier", + "src": "7974:6:18" + }, + { + "kind": "number", + "nativeSrc": "7982:1:18", + "nodeType": "YulLiteral", + "src": "7982:1:18", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "7970:3:18", + "nodeType": "YulIdentifier", + "src": "7970:3:18" + }, + "nativeSrc": "7970:14:18", + "nodeType": "YulFunctionCall", + "src": "7970:14:18" + }, + { + "kind": "number", + "nativeSrc": "7986:1:18", + "nodeType": "YulLiteral", + "src": "7986:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7966:3:18", + "nodeType": "YulIdentifier", + "src": "7966:3:18" + }, + "nativeSrc": "7966:22:18", + "nodeType": "YulFunctionCall", + "src": "7966:22:18" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "7953:6:18", + "nodeType": "YulIdentifier", + "src": "7953:6:18" + }, + "nativeSrc": "7953:36:18", + "nodeType": "YulFunctionCall", + "src": "7953:36:18" + }, + "nativeSrc": "7953:36:18", + "nodeType": "YulExpressionStatement", + "src": "7953:36:18" + } + ] }, - { - "kind": "number", - "nativeSrc": "3321:2:18", - "nodeType": "YulLiteral", - "src": "3321:2:18", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "3292:3:18", - "nodeType": "YulIdentifier", - "src": "3292:3:18" - }, - "nativeSrc": "3292:32:18", - "nodeType": "YulFunctionCall", - "src": "3292:32:18" - }, - "nativeSrc": "3289:119:18", - "nodeType": "YulIf", - "src": "3289:119:18" - }, - { - "nativeSrc": "3418:117:18", - "nodeType": "YulBlock", - "src": "3418:117:18", - "statements": [ - { - "nativeSrc": "3433:15:18", - "nodeType": "YulVariableDeclaration", - "src": "3433:15:18", + "nativeSrc": "7381:618:18", + "nodeType": "YulCase", + "src": "7381:618:18", "value": { "kind": "number", - "nativeSrc": "3447:1:18", + "nativeSrc": "7386:1:18", "nodeType": "YulLiteral", - "src": "3447:1:18", + "src": "7386:1:18", "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "3437:6:18", - "nodeType": "YulTypedName", - "src": "3437:6:18", - "type": "" - } - ] + "value": "1" + } }, { - "nativeSrc": "3462:63:18", - "nodeType": "YulAssignment", - "src": "3462:63:18", - "value": { - "arguments": [ + "body": { + "nativeSrc": "8016:222:18", + "nodeType": "YulBlock", + "src": "8016:222:18", + "statements": [ { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3497:9:18", - "nodeType": "YulIdentifier", - "src": "3497:9:18" - }, + "nativeSrc": "8030:14:18", + "nodeType": "YulVariableDeclaration", + "src": "8030:14:18", + "value": { + "kind": "number", + "nativeSrc": "8043:1:18", + "nodeType": "YulLiteral", + "src": "8043:1:18", + "type": "", + "value": "0" + }, + "variables": [ { - "name": "offset", - "nativeSrc": "3508:6:18", - "nodeType": "YulIdentifier", - "src": "3508:6:18" + "name": "value", + "nativeSrc": "8034:5:18", + "nodeType": "YulTypedName", + "src": "8034:5:18", + "type": "" } - ], - "functionName": { - "name": "add", - "nativeSrc": "3493:3:18", + ] + }, + { + "body": { + "nativeSrc": "8067:67:18", + "nodeType": "YulBlock", + "src": "8067:67:18", + "statements": [ + { + "nativeSrc": "8085:35:18", + "nodeType": "YulAssignment", + "src": "8085:35:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "8104:3:18", + "nodeType": "YulIdentifier", + "src": "8104:3:18" + }, + { + "name": "srcOffset", + "nativeSrc": "8109:9:18", + "nodeType": "YulIdentifier", + "src": "8109:9:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8100:3:18", + "nodeType": "YulIdentifier", + "src": "8100:3:18" + }, + "nativeSrc": "8100:19:18", + "nodeType": "YulFunctionCall", + "src": "8100:19:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "8094:5:18", + "nodeType": "YulIdentifier", + "src": "8094:5:18" + }, + "nativeSrc": "8094:26:18", + "nodeType": "YulFunctionCall", + "src": "8094:26:18" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "8085:5:18", + "nodeType": "YulIdentifier", + "src": "8085:5:18" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nativeSrc": "8060:6:18", "nodeType": "YulIdentifier", - "src": "3493:3:18" + "src": "8060:6:18" }, - "nativeSrc": "3493:22:18", - "nodeType": "YulFunctionCall", - "src": "3493:22:18" + "nativeSrc": "8057:77:18", + "nodeType": "YulIf", + "src": "8057:77:18" }, { - "name": "dataEnd", - "nativeSrc": "3517:7:18", - "nodeType": "YulIdentifier", - "src": "3517:7:18" + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "8154:4:18", + "nodeType": "YulIdentifier", + "src": "8154:4:18" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "8213:5:18", + "nodeType": "YulIdentifier", + "src": "8213:5:18" + }, + { + "name": "newLen", + "nativeSrc": "8220:6:18", + "nodeType": "YulIdentifier", + "src": "8220:6:18" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "8160:52:18", + "nodeType": "YulIdentifier", + "src": "8160:52:18" + }, + "nativeSrc": "8160:67:18", + "nodeType": "YulFunctionCall", + "src": "8160:67:18" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "8147:6:18", + "nodeType": "YulIdentifier", + "src": "8147:6:18" + }, + "nativeSrc": "8147:81:18", + "nodeType": "YulFunctionCall", + "src": "8147:81:18" + }, + "nativeSrc": "8147:81:18", + "nodeType": "YulExpressionStatement", + "src": "8147:81:18" } - ], - "functionName": { - "name": "abi_decode_t_uint256", - "nativeSrc": "3472:20:18", - "nodeType": "YulIdentifier", - "src": "3472:20:18" - }, - "nativeSrc": "3472:53:18", - "nodeType": "YulFunctionCall", - "src": "3472:53:18" + ] }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "3462:6:18", - "nodeType": "YulIdentifier", - "src": "3462:6:18" - } - ] + "nativeSrc": "8008:230:18", + "nodeType": "YulCase", + "src": "8008:230:18", + "value": "default" } - ] - } - ] - }, - "name": "abi_decode_tuple_t_uint256", - "nativeSrc": "3213:329:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "3249:9:18", - "nodeType": "YulTypedName", - "src": "3249:9:18", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "3260:7:18", - "nodeType": "YulTypedName", - "src": "3260:7:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "3272:6:18", - "nodeType": "YulTypedName", - "src": "3272:6:18", - "type": "" - } - ], - "src": "3213:329:18" - }, - { - "body": { - "nativeSrc": "3607:40:18", - "nodeType": "YulBlock", - "src": "3607:40:18", - "statements": [ - { - "nativeSrc": "3618:22:18", - "nodeType": "YulAssignment", - "src": "3618:22:18", - "value": { + ], + "expression": { "arguments": [ { - "name": "value", - "nativeSrc": "3634:5:18", + "name": "newLen", + "nativeSrc": "7361:6:18", "nodeType": "YulIdentifier", - "src": "3634:5:18" + "src": "7361:6:18" + }, + { + "kind": "number", + "nativeSrc": "7369:2:18", + "nodeType": "YulLiteral", + "src": "7369:2:18", + "type": "", + "value": "31" } ], "functionName": { - "name": "mload", - "nativeSrc": "3628:5:18", + "name": "gt", + "nativeSrc": "7358:2:18", "nodeType": "YulIdentifier", - "src": "3628:5:18" + "src": "7358:2:18" }, - "nativeSrc": "3628:12:18", + "nativeSrc": "7358:14:18", "nodeType": "YulFunctionCall", - "src": "3628:12:18" + "src": "7358:14:18" }, - "variableNames": [ - { - "name": "length", - "nativeSrc": "3618:6:18", - "nodeType": "YulIdentifier", - "src": "3618:6:18" - } - ] + "nativeSrc": "7351:887:18", + "nodeType": "YulSwitch", + "src": "7351:887:18" } ] }, - "name": "array_length_t_string_memory_ptr", - "nativeSrc": "3548:99:18", + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nativeSrc": "6849:1395:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", - "nativeSrc": "3590:5:18", + "name": "slot", + "nativeSrc": "6930:4:18", "nodeType": "YulTypedName", - "src": "3590:5:18", + "src": "6930:4:18", "type": "" - } - ], - "returnVariables": [ + }, { - "name": "length", - "nativeSrc": "3600:6:18", + "name": "src", + "nativeSrc": "6936:3:18", "nodeType": "YulTypedName", - "src": "3600:6:18", + "src": "6936:3:18", "type": "" } ], - "src": "3548:99:18" + "src": "6849:1395:18" }, { "body": { - "nativeSrc": "3749:73:18", + "nativeSrc": "8346:73:18", "nodeType": "YulBlock", - "src": "3749:73:18", + "src": "8346:73:18", "statements": [ { "expression": { "arguments": [ { "name": "pos", - "nativeSrc": "3766:3:18", + "nativeSrc": "8363:3:18", "nodeType": "YulIdentifier", - "src": "3766:3:18" + "src": "8363:3:18" }, { "name": "length", - "nativeSrc": "3771:6:18", + "nativeSrc": "8368:6:18", "nodeType": "YulIdentifier", - "src": "3771:6:18" + "src": "8368:6:18" } ], "functionName": { "name": "mstore", - "nativeSrc": "3759:6:18", + "nativeSrc": "8356:6:18", "nodeType": "YulIdentifier", - "src": "3759:6:18" + "src": "8356:6:18" }, - "nativeSrc": "3759:19:18", + "nativeSrc": "8356:19:18", "nodeType": "YulFunctionCall", - "src": "3759:19:18" + "src": "8356:19:18" }, - "nativeSrc": "3759:19:18", + "nativeSrc": "8356:19:18", "nodeType": "YulExpressionStatement", - "src": "3759:19:18" + "src": "8356:19:18" }, { - "nativeSrc": "3787:29:18", + "nativeSrc": "8384:29:18", "nodeType": "YulAssignment", - "src": "3787:29:18", + "src": "8384:29:18", "value": { "arguments": [ { "name": "pos", - "nativeSrc": "3806:3:18", + "nativeSrc": "8403:3:18", "nodeType": "YulIdentifier", - "src": "3806:3:18" + "src": "8403:3:18" }, { "kind": "number", - "nativeSrc": "3811:4:18", + "nativeSrc": "8408:4:18", "nodeType": "YulLiteral", - "src": "3811:4:18", + "src": "8408:4:18", "type": "", "value": "0x20" } ], "functionName": { "name": "add", - "nativeSrc": "3802:3:18", + "nativeSrc": "8399:3:18", "nodeType": "YulIdentifier", - "src": "3802:3:18" + "src": "8399:3:18" }, - "nativeSrc": "3802:14:18", + "nativeSrc": "8399:14:18", "nodeType": "YulFunctionCall", - "src": "3802:14:18" + "src": "8399:14:18" }, "variableNames": [ { "name": "updated_pos", - "nativeSrc": "3787:11:18", + "nativeSrc": "8384:11:18", "nodeType": "YulIdentifier", - "src": "3787:11:18" + "src": "8384:11:18" } ] } ] }, "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nativeSrc": "3653:169:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "3721:3:18", - "nodeType": "YulTypedName", - "src": "3721:3:18", - "type": "" - }, - { - "name": "length", - "nativeSrc": "3726:6:18", - "nodeType": "YulTypedName", - "src": "3726:6:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updated_pos", - "nativeSrc": "3737:11:18", - "nodeType": "YulTypedName", - "src": "3737:11:18", - "type": "" - } - ], - "src": "3653:169:18" - }, - { - "body": { - "nativeSrc": "3890:184:18", - "nodeType": "YulBlock", - "src": "3890:184:18", - "statements": [ - { - "nativeSrc": "3900:10:18", - "nodeType": "YulVariableDeclaration", - "src": "3900:10:18", - "value": { - "kind": "number", - "nativeSrc": "3909:1:18", - "nodeType": "YulLiteral", - "src": "3909:1:18", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nativeSrc": "3904:1:18", - "nodeType": "YulTypedName", - "src": "3904:1:18", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "3969:63:18", - "nodeType": "YulBlock", - "src": "3969:63:18", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nativeSrc": "3994:3:18", - "nodeType": "YulIdentifier", - "src": "3994:3:18" - }, - { - "name": "i", - "nativeSrc": "3999:1:18", - "nodeType": "YulIdentifier", - "src": "3999:1:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3990:3:18", - "nodeType": "YulIdentifier", - "src": "3990:3:18" - }, - "nativeSrc": "3990:11:18", - "nodeType": "YulFunctionCall", - "src": "3990:11:18" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "4013:3:18", - "nodeType": "YulIdentifier", - "src": "4013:3:18" - }, - { - "name": "i", - "nativeSrc": "4018:1:18", - "nodeType": "YulIdentifier", - "src": "4018:1:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4009:3:18", - "nodeType": "YulIdentifier", - "src": "4009:3:18" - }, - "nativeSrc": "4009:11:18", - "nodeType": "YulFunctionCall", - "src": "4009:11:18" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "4003:5:18", - "nodeType": "YulIdentifier", - "src": "4003:5:18" - }, - "nativeSrc": "4003:18:18", - "nodeType": "YulFunctionCall", - "src": "4003:18:18" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "3983:6:18", - "nodeType": "YulIdentifier", - "src": "3983:6:18" - }, - "nativeSrc": "3983:39:18", - "nodeType": "YulFunctionCall", - "src": "3983:39:18" - }, - "nativeSrc": "3983:39:18", - "nodeType": "YulExpressionStatement", - "src": "3983:39:18" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nativeSrc": "3930:1:18", - "nodeType": "YulIdentifier", - "src": "3930:1:18" - }, - { - "name": "length", - "nativeSrc": "3933:6:18", - "nodeType": "YulIdentifier", - "src": "3933:6:18" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "3927:2:18", - "nodeType": "YulIdentifier", - "src": "3927:2:18" - }, - "nativeSrc": "3927:13:18", - "nodeType": "YulFunctionCall", - "src": "3927:13:18" - }, - "nativeSrc": "3919:113:18", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "3941:19:18", - "nodeType": "YulBlock", - "src": "3941:19:18", - "statements": [ - { - "nativeSrc": "3943:15:18", - "nodeType": "YulAssignment", - "src": "3943:15:18", - "value": { - "arguments": [ - { - "name": "i", - "nativeSrc": "3952:1:18", - "nodeType": "YulIdentifier", - "src": "3952:1:18" - }, - { - "kind": "number", - "nativeSrc": "3955:2:18", - "nodeType": "YulLiteral", - "src": "3955:2:18", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3948:3:18", - "nodeType": "YulIdentifier", - "src": "3948:3:18" - }, - "nativeSrc": "3948:10:18", - "nodeType": "YulFunctionCall", - "src": "3948:10:18" - }, - "variableNames": [ - { - "name": "i", - "nativeSrc": "3943:1:18", - "nodeType": "YulIdentifier", - "src": "3943:1:18" - } - ] - } - ] - }, - "pre": { - "nativeSrc": "3923:3:18", - "nodeType": "YulBlock", - "src": "3923:3:18", - "statements": [] - }, - "src": "3919:113:18" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nativeSrc": "4052:3:18", - "nodeType": "YulIdentifier", - "src": "4052:3:18" - }, - { - "name": "length", - "nativeSrc": "4057:6:18", - "nodeType": "YulIdentifier", - "src": "4057:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4048:3:18", - "nodeType": "YulIdentifier", - "src": "4048:3:18" - }, - "nativeSrc": "4048:16:18", - "nodeType": "YulFunctionCall", - "src": "4048:16:18" - }, - { - "kind": "number", - "nativeSrc": "4066:1:18", - "nodeType": "YulLiteral", - "src": "4066:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "4041:6:18", - "nodeType": "YulIdentifier", - "src": "4041:6:18" - }, - "nativeSrc": "4041:27:18", - "nodeType": "YulFunctionCall", - "src": "4041:27:18" - }, - "nativeSrc": "4041:27:18", - "nodeType": "YulExpressionStatement", - "src": "4041:27:18" - } - ] - }, - "name": "copy_memory_to_memory_with_cleanup", - "nativeSrc": "3828:246:18", + "nativeSrc": "8250:169:18", "nodeType": "YulFunctionDefinition", "parameters": [ - { - "name": "src", - "nativeSrc": "3872:3:18", + { + "name": "pos", + "nativeSrc": "8318:3:18", "nodeType": "YulTypedName", - "src": "3872:3:18", + "src": "8318:3:18", "type": "" }, { - "name": "dst", - "nativeSrc": "3877:3:18", + "name": "length", + "nativeSrc": "8323:6:18", "nodeType": "YulTypedName", - "src": "3877:3:18", + "src": "8323:6:18", "type": "" - }, + } + ], + "returnVariables": [ { - "name": "length", - "nativeSrc": "3882:6:18", + "name": "updated_pos", + "nativeSrc": "8334:11:18", "nodeType": "YulTypedName", - "src": "3882:6:18", + "src": "8334:11:18", "type": "" } ], - "src": "3828:246:18" + "src": "8250:169:18" }, { "body": { - "nativeSrc": "4128:54:18", + "nativeSrc": "8531:63:18", "nodeType": "YulBlock", - "src": "4128:54:18", + "src": "8531:63:18", "statements": [ { - "nativeSrc": "4138:38:18", - "nodeType": "YulAssignment", - "src": "4138:38:18", - "value": { + "expression": { "arguments": [ { "arguments": [ { - "name": "value", - "nativeSrc": "4156:5:18", + "name": "memPtr", + "nativeSrc": "8553:6:18", "nodeType": "YulIdentifier", - "src": "4156:5:18" + "src": "8553:6:18" }, { "kind": "number", - "nativeSrc": "4163:2:18", + "nativeSrc": "8561:1:18", "nodeType": "YulLiteral", - "src": "4163:2:18", + "src": "8561:1:18", "type": "", - "value": "31" + "value": "0" } ], "functionName": { "name": "add", - "nativeSrc": "4152:3:18", + "nativeSrc": "8549:3:18", "nodeType": "YulIdentifier", - "src": "4152:3:18" + "src": "8549:3:18" }, - "nativeSrc": "4152:14:18", + "nativeSrc": "8549:14:18", "nodeType": "YulFunctionCall", - "src": "4152:14:18" + "src": "8549:14:18" }, { - "arguments": [ - { - "kind": "number", - "nativeSrc": "4172:2:18", - "nodeType": "YulLiteral", - "src": "4172:2:18", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "4168:3:18", - "nodeType": "YulIdentifier", - "src": "4168:3:18" - }, - "nativeSrc": "4168:7:18", - "nodeType": "YulFunctionCall", - "src": "4168:7:18" + "hexValue": "5552492063616e6e6f7420626520656d707479", + "kind": "string", + "nativeSrc": "8565:21:18", + "nodeType": "YulLiteral", + "src": "8565:21:18", + "type": "", + "value": "URI cannot be empty" } ], "functionName": { - "name": "and", - "nativeSrc": "4148:3:18", + "name": "mstore", + "nativeSrc": "8542:6:18", "nodeType": "YulIdentifier", - "src": "4148:3:18" + "src": "8542:6:18" }, - "nativeSrc": "4148:28:18", + "nativeSrc": "8542:45:18", "nodeType": "YulFunctionCall", - "src": "4148:28:18" + "src": "8542:45:18" }, - "variableNames": [ - { - "name": "result", - "nativeSrc": "4138:6:18", - "nodeType": "YulIdentifier", - "src": "4138:6:18" - } - ] + "nativeSrc": "8542:45:18", + "nodeType": "YulExpressionStatement", + "src": "8542:45:18" } ] }, - "name": "round_up_to_mul_of_32", - "nativeSrc": "4080:102:18", + "name": "store_literal_in_memory_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231", + "nativeSrc": "8425:169:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", - "nativeSrc": "4111:5:18", - "nodeType": "YulTypedName", - "src": "4111:5:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "result", - "nativeSrc": "4121:6:18", + "name": "memPtr", + "nativeSrc": "8523:6:18", "nodeType": "YulTypedName", - "src": "4121:6:18", + "src": "8523:6:18", "type": "" } ], - "src": "4080:102:18" + "src": "8425:169:18" }, { "body": { - "nativeSrc": "4280:285:18", + "nativeSrc": "8746:220:18", "nodeType": "YulBlock", - "src": "4280:285:18", + "src": "8746:220:18", "statements": [ { - "nativeSrc": "4290:53:18", - "nodeType": "YulVariableDeclaration", - "src": "4290:53:18", + "nativeSrc": "8756:74:18", + "nodeType": "YulAssignment", + "src": "8756:74:18", "value": { "arguments": [ { - "name": "value", - "nativeSrc": "4337:5:18", + "name": "pos", + "nativeSrc": "8822:3:18", "nodeType": "YulIdentifier", - "src": "4337:5:18" + "src": "8822:3:18" + }, + { + "kind": "number", + "nativeSrc": "8827:2:18", + "nodeType": "YulLiteral", + "src": "8827:2:18", + "type": "", + "value": "19" } ], "functionName": { - "name": "array_length_t_string_memory_ptr", - "nativeSrc": "4304:32:18", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "8763:58:18", "nodeType": "YulIdentifier", - "src": "4304:32:18" + "src": "8763:58:18" }, - "nativeSrc": "4304:39:18", + "nativeSrc": "8763:67:18", "nodeType": "YulFunctionCall", - "src": "4304:39:18" + "src": "8763:67:18" }, - "variables": [ + "variableNames": [ { - "name": "length", - "nativeSrc": "4294:6:18", - "nodeType": "YulTypedName", - "src": "4294:6:18", - "type": "" + "name": "pos", + "nativeSrc": "8756:3:18", + "nodeType": "YulIdentifier", + "src": "8756:3:18" } ] }, { - "nativeSrc": "4352:78:18", + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "8928:3:18", + "nodeType": "YulIdentifier", + "src": "8928:3:18" + } + ], + "functionName": { + "name": "store_literal_in_memory_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231", + "nativeSrc": "8839:88:18", + "nodeType": "YulIdentifier", + "src": "8839:88:18" + }, + "nativeSrc": "8839:93:18", + "nodeType": "YulFunctionCall", + "src": "8839:93:18" + }, + "nativeSrc": "8839:93:18", + "nodeType": "YulExpressionStatement", + "src": "8839:93:18" + }, + { + "nativeSrc": "8941:19:18", "nodeType": "YulAssignment", - "src": "4352:78:18", + "src": "8941:19:18", "value": { "arguments": [ { "name": "pos", - "nativeSrc": "4418:3:18", + "nativeSrc": "8952:3:18", "nodeType": "YulIdentifier", - "src": "4418:3:18" + "src": "8952:3:18" }, { - "name": "length", - "nativeSrc": "4423:6:18", + "kind": "number", + "nativeSrc": "8957:2:18", + "nodeType": "YulLiteral", + "src": "8957:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8948:3:18", + "nodeType": "YulIdentifier", + "src": "8948:3:18" + }, + "nativeSrc": "8948:12:18", + "nodeType": "YulFunctionCall", + "src": "8948:12:18" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "8941:3:18", + "nodeType": "YulIdentifier", + "src": "8941:3:18" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack", + "nativeSrc": "8600:366:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "8734:3:18", + "nodeType": "YulTypedName", + "src": "8734:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "8742:3:18", + "nodeType": "YulTypedName", + "src": "8742:3:18", + "type": "" + } + ], + "src": "8600:366:18" + }, + { + "body": { + "nativeSrc": "9143:248:18", + "nodeType": "YulBlock", + "src": "9143:248:18", + "statements": [ + { + "nativeSrc": "9153:26:18", + "nodeType": "YulAssignment", + "src": "9153:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9165:9:18", "nodeType": "YulIdentifier", - "src": "4423:6:18" + "src": "9165:9:18" + }, + { + "kind": "number", + "nativeSrc": "9176:2:18", + "nodeType": "YulLiteral", + "src": "9176:2:18", + "type": "", + "value": "32" } ], "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nativeSrc": "4359:58:18", + "name": "add", + "nativeSrc": "9161:3:18", "nodeType": "YulIdentifier", - "src": "4359:58:18" + "src": "9161:3:18" }, - "nativeSrc": "4359:71:18", + "nativeSrc": "9161:18:18", "nodeType": "YulFunctionCall", - "src": "4359:71:18" + "src": "9161:18:18" }, "variableNames": [ { - "name": "pos", - "nativeSrc": "4352:3:18", + "name": "tail", + "nativeSrc": "9153:4:18", "nodeType": "YulIdentifier", - "src": "4352:3:18" + "src": "9153:4:18" } ] }, @@ -62851,1254 +63162,1553 @@ { "arguments": [ { - "name": "value", - "nativeSrc": "4478:5:18", + "name": "headStart", + "nativeSrc": "9200:9:18", "nodeType": "YulIdentifier", - "src": "4478:5:18" + "src": "9200:9:18" }, { "kind": "number", - "nativeSrc": "4485:4:18", + "nativeSrc": "9211:1:18", "nodeType": "YulLiteral", - "src": "4485:4:18", + "src": "9211:1:18", "type": "", - "value": "0x20" + "value": "0" } ], "functionName": { "name": "add", - "nativeSrc": "4474:3:18", + "nativeSrc": "9196:3:18", "nodeType": "YulIdentifier", - "src": "4474:3:18" + "src": "9196:3:18" }, - "nativeSrc": "4474:16:18", + "nativeSrc": "9196:17:18", "nodeType": "YulFunctionCall", - "src": "4474:16:18" + "src": "9196:17:18" }, { - "name": "pos", - "nativeSrc": "4492:3:18", - "nodeType": "YulIdentifier", - "src": "4492:3:18" - }, - { - "name": "length", - "nativeSrc": "4497:6:18", - "nodeType": "YulIdentifier", - "src": "4497:6:18" + "arguments": [ + { + "name": "tail", + "nativeSrc": "9219:4:18", + "nodeType": "YulIdentifier", + "src": "9219:4:18" + }, + { + "name": "headStart", + "nativeSrc": "9225:9:18", + "nodeType": "YulIdentifier", + "src": "9225:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9215:3:18", + "nodeType": "YulIdentifier", + "src": "9215:3:18" + }, + "nativeSrc": "9215:20:18", + "nodeType": "YulFunctionCall", + "src": "9215:20:18" } ], "functionName": { - "name": "copy_memory_to_memory_with_cleanup", - "nativeSrc": "4439:34:18", + "name": "mstore", + "nativeSrc": "9189:6:18", "nodeType": "YulIdentifier", - "src": "4439:34:18" + "src": "9189:6:18" }, - "nativeSrc": "4439:65:18", + "nativeSrc": "9189:47:18", "nodeType": "YulFunctionCall", - "src": "4439:65:18" + "src": "9189:47:18" }, - "nativeSrc": "4439:65:18", + "nativeSrc": "9189:47:18", "nodeType": "YulExpressionStatement", - "src": "4439:65:18" + "src": "9189:47:18" }, { - "nativeSrc": "4513:46:18", + "nativeSrc": "9245:139:18", "nodeType": "YulAssignment", - "src": "4513:46:18", + "src": "9245:139:18", "value": { "arguments": [ { - "name": "pos", - "nativeSrc": "4524:3:18", + "name": "tail", + "nativeSrc": "9379:4:18", "nodeType": "YulIdentifier", - "src": "4524:3:18" - }, - { - "arguments": [ - { - "name": "length", - "nativeSrc": "4551:6:18", - "nodeType": "YulIdentifier", - "src": "4551:6:18" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nativeSrc": "4529:21:18", - "nodeType": "YulIdentifier", - "src": "4529:21:18" - }, - "nativeSrc": "4529:29:18", - "nodeType": "YulFunctionCall", - "src": "4529:29:18" + "src": "9379:4:18" } ], "functionName": { - "name": "add", - "nativeSrc": "4520:3:18", + "name": "abi_encode_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack", + "nativeSrc": "9253:124:18", "nodeType": "YulIdentifier", - "src": "4520:3:18" + "src": "9253:124:18" }, - "nativeSrc": "4520:39:18", + "nativeSrc": "9253:131:18", "nodeType": "YulFunctionCall", - "src": "4520:39:18" + "src": "9253:131:18" }, "variableNames": [ { - "name": "end", - "nativeSrc": "4513:3:18", + "name": "tail", + "nativeSrc": "9245:4:18", "nodeType": "YulIdentifier", - "src": "4513:3:18" + "src": "9245:4:18" } ] } ] }, - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", - "nativeSrc": "4188:377:18", + "name": "abi_encode_tuple_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "8972:419:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", - "nativeSrc": "4261:5:18", - "nodeType": "YulTypedName", - "src": "4261:5:18", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "4268:3:18", + "name": "headStart", + "nativeSrc": "9123:9:18", "nodeType": "YulTypedName", - "src": "4268:3:18", + "src": "9123:9:18", "type": "" } ], "returnVariables": [ { - "name": "end", - "nativeSrc": "4276:3:18", + "name": "tail", + "nativeSrc": "9138:4:18", "nodeType": "YulTypedName", - "src": "4276:3:18", + "src": "9138:4:18", "type": "" } ], - "src": "4188:377:18" - }, + "src": "8972:419:18" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n function 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_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231(memPtr) {\n\n mstore(add(memPtr, 0), \"URI cannot be empty\")\n\n }\n\n function abi_encode_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 19)\n store_literal_in_memory_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", + "id": 18, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50604051613edb380380613edb833981810160405281019061003291906103cb565b604051806020016040528060008152506100518161008b60201b60201c565b506100618161009e60201b60201c565b6100746000801b336100e560201b60201c565b5080600590816100849190610635565b5050610784565b806002908161009a9190610635565b5050565b60008151036100e2576040517f1897cf660000000000000000000000000000000000000000000000000000000081526004016100d990610764565b60405180910390fd5b50565b60006100f783836101e360201b60201c565b6101d85760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061017561024e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506101dd565b600090505b92915050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6102bd82610274565b810181811067ffffffffffffffff821117156102dc576102db610285565b5b80604052505050565b60006102ef610256565b90506102fb82826102b4565b919050565b600067ffffffffffffffff82111561031b5761031a610285565b5b61032482610274565b9050602081019050919050565b60005b8381101561034f578082015181840152602081019050610334565b60008484015250505050565b600061036e61036984610300565b6102e5565b90508281526020810184848401111561038a5761038961026f565b5b610395848285610331565b509392505050565b600082601f8301126103b2576103b161026a565b5b81516103c284826020860161035b565b91505092915050565b6000602082840312156103e1576103e0610260565b5b600082015167ffffffffffffffff8111156103ff576103fe610265565b5b61040b8482850161039d565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061046657607f821691505b6020821081036104795761047861041f565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026104e17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826104a4565b6104eb86836104a4565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600061053261052d61052884610503565b61050d565b610503565b9050919050565b6000819050919050565b61054c83610517565b61056061055882610539565b8484546104b1565b825550505050565b600090565b610575610568565b610580818484610543565b505050565b5b818110156105a45761059960008261056d565b600181019050610586565b5050565b601f8211156105e9576105ba8161047f565b6105c384610494565b810160208510156105d2578190505b6105e66105de85610494565b830182610585565b50505b505050565b600082821c905092915050565b600061060c600019846008026105ee565b1980831691505092915050565b600061062583836105fb565b9150826002028217905092915050565b61063e82610414565b67ffffffffffffffff81111561065757610656610285565b5b610661825461044e565b61066c8282856105a8565b600060209050601f83116001811461069f576000841561068d578287015190505b6106978582610619565b8655506106ff565b601f1984166106ad8661047f565b60005b828110156106d5578489015182556001820191506020850194506020810190506106b0565b868310156106f257848901516106ee601f8916826105fb565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f5552492063616e6e6f7420626520656d70747900000000000000000000000000600082015250565b600061074e601383610707565b915061075982610718565b602082019050919050565b6000602082019050818103600083015261077d81610741565b9050919050565b613748806107936000396000f3fe608060405234801561001057600080fd5b506004361061012b5760003560e01c806376b676f1116100ad578063d383f64611610071578063d383f64614610364578063d547741f1461036e578063e985e9c51461038a578063f242432a146103ba578063f5298aca146103d65761012b565b806376b676f1146102ae57806391d14854146102de578063931688cb1461030e578063a217fddf1461032a578063a22cb465146103485761012b565b80632f2ff15d116100f45780632f2ff15d1461020c57806336568abe146102285780634e1273f41461024457806361bc221a14610274578063731133e9146102925761012b565b8062fdd58e1461013057806301ffc9a7146101605780630e89341c14610190578063248a9ca3146101c05780632eb2c2d6146101f0575b600080fd5b61014a600480360381019061014591906121b1565b6103f2565b6040516101579190612200565b60405180910390f35b61017a60048036038101906101759190612273565b61044c565b60405161018791906122bb565b60405180910390f35b6101aa60048036038101906101a591906122d6565b61048c565b6040516101b79190612393565b60405180910390f35b6101da60048036038101906101d591906123eb565b610520565b6040516101e79190612427565b60405180910390f35b61020a6004803603810190610205919061263f565b610540565b005b6102266004803603810190610221919061270e565b6105e8565b005b610242600480360381019061023d919061270e565b61060a565b005b61025e60048036038101906102599190612811565b610685565b60405161026b9190612947565b60405180910390f35b61027c61078e565b6040516102899190612200565b60405180910390f35b6102ac60048036038101906102a79190612969565b610798565b005b6102c860048036038101906102c39190612a8d565b610856565b6040516102d59190612393565b60405180910390f35b6102f860048036038101906102f3919061270e565b6108de565b60405161030591906122bb565b60405180910390f35b61032860048036038101906103239190612ae9565b610949565b005b6103326109ad565b60405161033f9190612427565b60405180910390f35b610362600480360381019061035d9190612b5e565b6109b4565b005b61036c6109ca565b005b6103886004803603810190610383919061270e565b610a47565b005b6103a4600480360381019061039f9190612b9e565b610a69565b6040516103b191906122bb565b60405180910390f35b6103d460048036038101906103cf9190612bde565b610afd565b005b6103f060048036038101906103eb9190612c75565b610ba5565b005b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061046d3073ffffffffffffffffffffffffffffffffffffffff16610c87565b156104825761047b82610cd4565b9050610487565b600090505b919050565b60606002805461049b90612cf7565b80601f01602080910402602001604051908101604052809291908181526020018280546104c790612cf7565b80156105145780601f106104e957610100808354040283529160200191610514565b820191906000526020600020905b8154815290600101906020018083116104f757829003601f168201915b50505050509050919050565b600060036000838152602001908152602001600020600101549050919050565b600061054a610d4e565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561058f575061058d8682610a69565b155b156105d35780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016105ca929190612d37565b60405180910390fd5b6105e08686868686610d56565b505050505050565b6105f182610520565b6105fa81610e4e565b6106048383610e62565b50505050565b610612610d4e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610676576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106808282610f54565b505050565b606081518351146106d157815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016106c8929190612d60565b60405180910390fd5b6000835167ffffffffffffffff8111156106ee576106ed612447565b5b60405190808252806020026020018201604052801561071c5781602001602082028036833780820191505090505b50905060005b845181101561078357610759610741828761104790919063ffffffff16565b610754838761105b90919063ffffffff16565b6103f2565b82828151811061076c5761076b612d89565b5b602002602001018181525050806001019050610722565b508091505092915050565b6000600454905090565b826107a28161106f565b60016107ae86866103f2565b106107f25784846040517f788d25560000000000000000000000000000000000000000000000000000000081526004016107e9929190612db8565b60405180910390fd5b6107ff85856001856110b8565b838573ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f60016040516108479190612e26565b60405180910390a35050505050565b6060826108628161106f565b8260008151036108a7576040517fc29f9db300000000000000000000000000000000000000000000000000000000815260040161089e90612e8d565b60405180910390fd5b60056108b286611151565b856040516020016108c593929190613065565b6040516020818303038152906040529250505092915050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b61095681610e4e565b61095f8261121f565b7f309b29ded109b9e28fb9885757b3e0096eb75c51d23aa4635d68bcd569f6adc160058360405161099192919061313b565b60405180910390a181600590816109a891906132ff565b505050565b6000801b81565b6109c66109bf610d4e565b8383611266565b5050565b600060045490506109ed33826001604051806020016040528060008152506110b8565b803373ffffffffffffffffffffffffffffffffffffffff167fc65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c1660405160405180910390a3600181610a3e9190613400565b60048190555050565b610a5082610520565b610a5981610e4e565b610a638383610f54565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000610b07610d4e565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610b4c5750610b4a8682610a69565b155b15610b905780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610b87929190612d37565b60405180910390fd5b610b9d86868686866113d6565b505050505050565b81610baf8161106f565b83833373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610c235781816040517f8626cc03000000000000000000000000000000000000000000000000000000008152600401610c1a929190612db8565b60405180910390fd5b610c2f868660016114e1565b848673ffffffffffffffffffffffffffffffffffffffff167f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a6001604051610c779190612e26565b60405180910390a3505050505050565b6000610cb3827f01ffc9a700000000000000000000000000000000000000000000000000000000611588565b8015610ccd5750610ccb8263ffffffff60e01b611588565b155b9050919050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610d475750610d4682611627565b5b9050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610dc85760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610dbf9190613434565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610e3a5760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610e319190613434565b60405180910390fd5b610e478585858585611709565b5050505050565b610e5f81610e5a610d4e565b6117bb565b50565b6000610e6e83836108de565b610f495760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610ee6610d4e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610f4e565b600090505b92915050565b6000610f6083836108de565b1561103c5760006003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610fd9610d4e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611041565b600090505b92915050565b600060208202602084010151905092915050565b600060208202602084010151905092915050565b60045481106110b557806040517fc80a970c0000000000000000000000000000000000000000000000000000000081526004016110ac9190612200565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361112a5760006040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016111219190613434565b60405180910390fd5b600080611137858561180c565b91509150611149600087848487611709565b505050505050565b6060600060016111608461183c565b01905060008167ffffffffffffffff81111561117f5761117e612447565b5b6040519080825280601f01601f1916602001820160405280156111b15781602001600182028036833780820191505090505b509050600082602001820190505b600115611214578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816112085761120761344f565b5b049450600085036111bf575b819350505050919050565b6000815103611263576040517f1897cf6600000000000000000000000000000000000000000000000000000000815260040161125a906134ca565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112d85760006040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016112cf9190613434565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516113c991906122bb565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036114485760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161143f9190613434565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036114ba5760006040517f01a835140000000000000000000000000000000000000000000000000000000081526004016114b19190613434565b60405180910390fd5b6000806114c7858561180c565b915091506114d88787848487611709565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115535760006040517f01a8351400000000000000000000000000000000000000000000000000000000815260040161154a9190613434565b60405180910390fd5b600080611560848461180c565b91509150611581856000848460405180602001604052806000815250611709565b5050505050565b6000808260405160240161159c91906134f9565b6040516020818303038152906040526301ffc9a760e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000806000602060008551602087018a617530fa92503d9150600051905082801561160f575060208210155b801561161b5750600081115b94505050505092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806116f257507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061170257506117018261198f565b5b9050919050565b611715858585856119f9565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146117b4576000611753610d4e565b905060018451036117a357600061177460008661105b90919063ffffffff16565b9050600061178c60008661105b90919063ffffffff16565b905061179c838989858589611da1565b50506117b2565b6117b1818787878787611f55565b5b505b5050505050565b6117c582826108de565b6118085780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016117ff929190613514565b60405180910390fd5b5050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061189a577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816118905761188f61344f565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106118d7576d04ee2d6d415b85acef810000000083816118cd576118cc61344f565b5b0492506020810190505b662386f26fc10000831061190657662386f26fc1000083816118fc576118fb61344f565b5b0492506010810190505b6305f5e100831061192f576305f5e10083816119255761192461344f565b5b0492506008810190505b612710831061195457612710838161194a5761194961344f565b5b0492506004810190505b60648310611977576064838161196d5761196c61344f565b5b0492506002810190505b600a8310611986576001810190505b80915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b8051825114611a4357815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401611a3a929190612d60565b60405180910390fd5b6000611a4d610d4e565b905060005b8351811015611c5c576000611a70828661105b90919063ffffffff16565b90506000611a87838661105b90919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611bb457600080600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611b5c57888183856040517f03dee4c5000000000000000000000000000000000000000000000000000000008152600401611b53949392919061353d565b60405180910390fd5b81810360008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611c4f578060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c479190613400565b925050819055505b5050806001019050611a52565b506001835103611d1b576000611c7c60008561105b90919063ffffffff16565b90506000611c9460008561105b90919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611d0c929190612d60565b60405180910390a45050611d9a565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611d91929190613582565b60405180910390a45b5050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611f4d578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611e0295949392919061360e565b6020604051808303816000875af1925050508015611e3e57506040513d601f19601f82011682018060405250810190611e3b919061367d565b60015b611ec2573d8060008114611e6e576040519150601f19603f3d011682016040523d82523d6000602084013e611e73565b606091505b506000815103611eba57846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611eb19190613434565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611f4b57846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611f429190613434565b60405180910390fd5b505b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115612101578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611fb69594939291906136aa565b6020604051808303816000875af1925050508015611ff257506040513d601f19601f82011682018060405250810190611fef919061367d565b60015b612076573d8060008114612022576040519150601f19603f3d011682016040523d82523d6000602084013e612027565b606091505b50600081510361206e57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016120659190613434565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146120ff57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016120f69190613434565b60405180910390fd5b505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121488261211d565b9050919050565b6121588161213d565b811461216357600080fd5b50565b6000813590506121758161214f565b92915050565b6000819050919050565b61218e8161217b565b811461219957600080fd5b50565b6000813590506121ab81612185565b92915050565b600080604083850312156121c8576121c7612113565b5b60006121d685828601612166565b92505060206121e78582860161219c565b9150509250929050565b6121fa8161217b565b82525050565b600060208201905061221560008301846121f1565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6122508161221b565b811461225b57600080fd5b50565b60008135905061226d81612247565b92915050565b60006020828403121561228957612288612113565b5b60006122978482850161225e565b91505092915050565b60008115159050919050565b6122b5816122a0565b82525050565b60006020820190506122d060008301846122ac565b92915050565b6000602082840312156122ec576122eb612113565b5b60006122fa8482850161219c565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561233d578082015181840152602081019050612322565b60008484015250505050565b6000601f19601f8301169050919050565b600061236582612303565b61236f818561230e565b935061237f81856020860161231f565b61238881612349565b840191505092915050565b600060208201905081810360008301526123ad818461235a565b905092915050565b6000819050919050565b6123c8816123b5565b81146123d357600080fd5b50565b6000813590506123e5816123bf565b92915050565b60006020828403121561240157612400612113565b5b600061240f848285016123d6565b91505092915050565b612421816123b5565b82525050565b600060208201905061243c6000830184612418565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61247f82612349565b810181811067ffffffffffffffff8211171561249e5761249d612447565b5b80604052505050565b60006124b1612109565b90506124bd8282612476565b919050565b600067ffffffffffffffff8211156124dd576124dc612447565b5b602082029050602081019050919050565b600080fd5b6000612506612501846124c2565b6124a7565b90508083825260208201905060208402830185811115612529576125286124ee565b5b835b81811015612552578061253e888261219c565b84526020840193505060208101905061252b565b5050509392505050565b600082601f83011261257157612570612442565b5b81356125818482602086016124f3565b91505092915050565b600080fd5b600067ffffffffffffffff8211156125aa576125a9612447565b5b6125b382612349565b9050602081019050919050565b82818337600083830152505050565b60006125e26125dd8461258f565b6124a7565b9050828152602081018484840111156125fe576125fd61258a565b5b6126098482856125c0565b509392505050565b600082601f83011261262657612625612442565b5b81356126368482602086016125cf565b91505092915050565b600080600080600060a0868803121561265b5761265a612113565b5b600061266988828901612166565b955050602061267a88828901612166565b945050604086013567ffffffffffffffff81111561269b5761269a612118565b5b6126a78882890161255c565b935050606086013567ffffffffffffffff8111156126c8576126c7612118565b5b6126d48882890161255c565b925050608086013567ffffffffffffffff8111156126f5576126f4612118565b5b61270188828901612611565b9150509295509295909350565b6000806040838503121561272557612724612113565b5b6000612733858286016123d6565b925050602061274485828601612166565b9150509250929050565b600067ffffffffffffffff82111561276957612768612447565b5b602082029050602081019050919050565b600061278d6127888461274e565b6124a7565b905080838252602082019050602084028301858111156127b0576127af6124ee565b5b835b818110156127d957806127c58882612166565b8452602084019350506020810190506127b2565b5050509392505050565b600082601f8301126127f8576127f7612442565b5b813561280884826020860161277a565b91505092915050565b6000806040838503121561282857612827612113565b5b600083013567ffffffffffffffff81111561284657612845612118565b5b612852858286016127e3565b925050602083013567ffffffffffffffff81111561287357612872612118565b5b61287f8582860161255c565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6128be8161217b565b82525050565b60006128d083836128b5565b60208301905092915050565b6000602082019050919050565b60006128f482612889565b6128fe8185612894565b9350612909836128a5565b8060005b8381101561293a57815161292188826128c4565b975061292c836128dc565b92505060018101905061290d565b5085935050505092915050565b6000602082019050818103600083015261296181846128e9565b905092915050565b6000806000806080858703121561298357612982612113565b5b600061299187828801612166565b94505060206129a28782880161219c565b93505060406129b38782880161219c565b925050606085013567ffffffffffffffff8111156129d4576129d3612118565b5b6129e087828801612611565b91505092959194509250565b600067ffffffffffffffff821115612a0757612a06612447565b5b612a1082612349565b9050602081019050919050565b6000612a30612a2b846129ec565b6124a7565b905082815260208101848484011115612a4c57612a4b61258a565b5b612a578482856125c0565b509392505050565b600082601f830112612a7457612a73612442565b5b8135612a84848260208601612a1d565b91505092915050565b60008060408385031215612aa457612aa3612113565b5b6000612ab28582860161219c565b925050602083013567ffffffffffffffff811115612ad357612ad2612118565b5b612adf85828601612a5f565b9150509250929050565b600060208284031215612aff57612afe612113565b5b600082013567ffffffffffffffff811115612b1d57612b1c612118565b5b612b2984828501612a5f565b91505092915050565b612b3b816122a0565b8114612b4657600080fd5b50565b600081359050612b5881612b32565b92915050565b60008060408385031215612b7557612b74612113565b5b6000612b8385828601612166565b9250506020612b9485828601612b49565b9150509250929050565b60008060408385031215612bb557612bb4612113565b5b6000612bc385828601612166565b9250506020612bd485828601612166565b9150509250929050565b600080600080600060a08688031215612bfa57612bf9612113565b5b6000612c0888828901612166565b9550506020612c1988828901612166565b9450506040612c2a8882890161219c565b9350506060612c3b8882890161219c565b925050608086013567ffffffffffffffff811115612c5c57612c5b612118565b5b612c6888828901612611565b9150509295509295909350565b600080600060608486031215612c8e57612c8d612113565b5b6000612c9c86828701612166565b9350506020612cad8682870161219c565b9250506040612cbe8682870161219c565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612d0f57607f821691505b602082108103612d2257612d21612cc8565b5b50919050565b612d318161213d565b82525050565b6000604082019050612d4c6000830185612d28565b612d596020830184612d28565b9392505050565b6000604082019050612d7560008301856121f1565b612d8260208301846121f1565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050612dcd6000830185612d28565b612dda60208301846121f1565b9392505050565b6000819050919050565b6000819050919050565b6000612e10612e0b612e0684612de1565b612deb565b61217b565b9050919050565b612e2081612df5565b82525050565b6000602082019050612e3b6000830184612e17565b92915050565b7f4163636f756e742063616e6e6f7420626520656d707479000000000000000000600082015250565b6000612e7760178361230e565b9150612e8282612e41565b602082019050919050565b60006020820190508181036000830152612ea681612e6a565b9050919050565b600081905092915050565b60008190508160005260206000209050919050565b60008154612eda81612cf7565b612ee48186612ead565b94506001821660008114612eff5760018114612f1457612f47565b60ff1983168652811515820286019350612f47565b612f1d85612eb8565b60005b83811015612f3f57815481890152600182019150602081019050612f20565b838801955050505b50505092915050565b7f2f6170692f76312f6e66742f0000000000000000000000000000000000000000600082015250565b6000612f86600c83612ead565b9150612f9182612f50565b600c82019050919050565b6000612fa782612303565b612fb18185612ead565b9350612fc181856020860161231f565b80840191505092915050565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b6000613003600183612ead565b915061300e82612fcd565b600182019050919050565b7f2f72657075746174696f6e2d73636f7265000000000000000000000000000000600082015250565b600061304f601183612ead565b915061305a82613019565b601182019050919050565b60006130718286612ecd565b915061307c82612f79565b91506130888285612f9c565b915061309382612ff6565b915061309f8284612f9c565b91506130aa82613042565b9150819050949350505050565b600081546130c481612cf7565b6130ce818661230e565b945060018216600081146130e957600181146130ff57613132565b60ff198316865281151560200286019350613132565b61310885612eb8565b60005b8381101561312a5781548189015260018201915060208101905061310b565b808801955050505b50505092915050565b6000604082019050818103600083015261315581856130b7565b90508181036020830152613169818461235a565b90509392505050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026131bf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613182565b6131c98683613182565b95508019841693508086168417925050509392505050565b60006131fc6131f76131f28461217b565b612deb565b61217b565b9050919050565b6000819050919050565b613216836131e1565b61322a61322282613203565b84845461318f565b825550505050565b600090565b61323f613232565b61324a81848461320d565b505050565b5b8181101561326e57613263600082613237565b600181019050613250565b5050565b601f8211156132b35761328481612eb8565b61328d84613172565b8101602085101561329c578190505b6132b06132a885613172565b83018261324f565b50505b505050565b600082821c905092915050565b60006132d6600019846008026132b8565b1980831691505092915050565b60006132ef83836132c5565b9150826002028217905092915050565b61330882612303565b67ffffffffffffffff81111561332157613320612447565b5b61332b8254612cf7565b613336828285613272565b600060209050601f8311600181146133695760008415613357578287015190505b61336185826132e3565b8655506133c9565b601f19841661337786612eb8565b60005b8281101561339f5784890151825560018201915060208501945060208101905061337a565b868310156133bc57848901516133b8601f8916826132c5565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061340b8261217b565b91506134168361217b565b925082820190508082111561342e5761342d6133d1565b5b92915050565b60006020820190506134496000830184612d28565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f5552492063616e6e6f7420626520656d70747900000000000000000000000000600082015250565b60006134b460138361230e565b91506134bf8261347e565b602082019050919050565b600060208201905081810360008301526134e3816134a7565b9050919050565b6134f38161221b565b82525050565b600060208201905061350e60008301846134ea565b92915050565b60006040820190506135296000830185612d28565b6135366020830184612418565b9392505050565b60006080820190506135526000830187612d28565b61355f60208301866121f1565b61356c60408301856121f1565b61357960608301846121f1565b95945050505050565b6000604082019050818103600083015261359c81856128e9565b905081810360208301526135b081846128e9565b90509392505050565b600081519050919050565b600082825260208201905092915050565b60006135e0826135b9565b6135ea81856135c4565b93506135fa81856020860161231f565b61360381612349565b840191505092915050565b600060a0820190506136236000830188612d28565b6136306020830187612d28565b61363d60408301866121f1565b61364a60608301856121f1565b818103608083015261365c81846135d5565b90509695505050505050565b60008151905061367781612247565b92915050565b60006020828403121561369357613692612113565b5b60006136a184828501613668565b91505092915050565b600060a0820190506136bf6000830188612d28565b6136cc6020830187612d28565b81810360408301526136de81866128e9565b905081810360608301526136f281856128e9565b9050818103608083015261370681846135d5565b9050969550505050505056fea2646970667358221220240e9a7daab5d9eba2793e75f4bbf0e9a74f133868ac14d5e9561767bb722e8264736f6c634300081a0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x3EDB CODESIZE SUB DUP1 PUSH2 0x3EDB DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0x3CB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x51 DUP2 PUSH2 0x8B PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH2 0x61 DUP2 PUSH2 0x9E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x74 PUSH1 0x0 DUP1 SHL CALLER PUSH2 0xE5 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP DUP1 PUSH1 0x5 SWAP1 DUP2 PUSH2 0x84 SWAP2 SWAP1 PUSH2 0x635 JUMP JUMPDEST POP POP PUSH2 0x784 JUMP JUMPDEST DUP1 PUSH1 0x2 SWAP1 DUP2 PUSH2 0x9A SWAP2 SWAP1 PUSH2 0x635 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0xE2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x1897CF6600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD9 SWAP1 PUSH2 0x764 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF7 DUP4 DUP4 PUSH2 0x1E3 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x1D8 JUMPI PUSH1 0x1 PUSH1 0x3 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 0x175 PUSH2 0x24E 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 0x1DD JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x2BD DUP3 PUSH2 0x274 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2DC JUMPI PUSH2 0x2DB PUSH2 0x285 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2EF PUSH2 0x256 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FB DUP3 DUP3 PUSH2 0x2B4 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x31B JUMPI PUSH2 0x31A PUSH2 0x285 JUMP JUMPDEST JUMPDEST PUSH2 0x324 DUP3 PUSH2 0x274 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x34F JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x334 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x36E PUSH2 0x369 DUP5 PUSH2 0x300 JUMP JUMPDEST PUSH2 0x2E5 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x38A JUMPI PUSH2 0x389 PUSH2 0x26F JUMP JUMPDEST JUMPDEST PUSH2 0x395 DUP5 DUP3 DUP6 PUSH2 0x331 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3B2 JUMPI PUSH2 0x3B1 PUSH2 0x26A JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x3C2 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x35B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3E1 JUMPI PUSH2 0x3E0 PUSH2 0x260 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3FF JUMPI PUSH2 0x3FE PUSH2 0x265 JUMP JUMPDEST JUMPDEST PUSH2 0x40B DUP5 DUP3 DUP6 ADD PUSH2 0x39D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x466 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x479 JUMPI PUSH2 0x478 PUSH2 0x41F 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 0x4E1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x4A4 JUMP JUMPDEST PUSH2 0x4EB DUP7 DUP4 PUSH2 0x4A4 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 0x532 PUSH2 0x52D PUSH2 0x528 DUP5 PUSH2 0x503 JUMP JUMPDEST PUSH2 0x50D JUMP JUMPDEST PUSH2 0x503 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x54C DUP4 PUSH2 0x517 JUMP JUMPDEST PUSH2 0x560 PUSH2 0x558 DUP3 PUSH2 0x539 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x4B1 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x575 PUSH2 0x568 JUMP JUMPDEST PUSH2 0x580 DUP2 DUP5 DUP5 PUSH2 0x543 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x5A4 JUMPI PUSH2 0x599 PUSH1 0x0 DUP3 PUSH2 0x56D JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x586 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x5E9 JUMPI PUSH2 0x5BA DUP2 PUSH2 0x47F JUMP JUMPDEST PUSH2 0x5C3 DUP5 PUSH2 0x494 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x5D2 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x5E6 PUSH2 0x5DE DUP6 PUSH2 0x494 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x585 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 0x60C PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x5EE JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x625 DUP4 DUP4 PUSH2 0x5FB JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x63E DUP3 PUSH2 0x414 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x657 JUMPI PUSH2 0x656 PUSH2 0x285 JUMP JUMPDEST JUMPDEST PUSH2 0x661 DUP3 SLOAD PUSH2 0x44E JUMP JUMPDEST PUSH2 0x66C DUP3 DUP3 DUP6 PUSH2 0x5A8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x69F JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x68D JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x697 DUP6 DUP3 PUSH2 0x619 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x6FF JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x6AD DUP7 PUSH2 0x47F JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x6D5 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 0x6B0 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x6F2 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x6EE PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x5FB 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 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x5552492063616E6E6F7420626520656D70747900000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x74E PUSH1 0x13 DUP4 PUSH2 0x707 JUMP JUMPDEST SWAP2 POP PUSH2 0x759 DUP3 PUSH2 0x718 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x77D DUP2 PUSH2 0x741 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3748 DUP1 PUSH2 0x793 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x12B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x76B676F1 GT PUSH2 0xAD JUMPI DUP1 PUSH4 0xD383F646 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xD383F646 EQ PUSH2 0x364 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x36E JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x38A JUMPI DUP1 PUSH4 0xF242432A EQ PUSH2 0x3BA JUMPI DUP1 PUSH4 0xF5298ACA EQ PUSH2 0x3D6 JUMPI PUSH2 0x12B JUMP JUMPDEST DUP1 PUSH4 0x76B676F1 EQ PUSH2 0x2AE JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x2DE JUMPI DUP1 PUSH4 0x931688CB EQ PUSH2 0x30E JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x32A JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x348 JUMPI PUSH2 0x12B JUMP JUMPDEST DUP1 PUSH4 0x2F2FF15D GT PUSH2 0xF4 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x228 JUMPI DUP1 PUSH4 0x4E1273F4 EQ PUSH2 0x244 JUMPI DUP1 PUSH4 0x61BC221A EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0x731133E9 EQ PUSH2 0x292 JUMPI PUSH2 0x12B JUMP JUMPDEST DUP1 PUSH3 0xFDD58E EQ PUSH2 0x130 JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x160 JUMPI DUP1 PUSH4 0xE89341C EQ PUSH2 0x190 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x1C0 JUMPI DUP1 PUSH4 0x2EB2C2D6 EQ PUSH2 0x1F0 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x145 SWAP2 SWAP1 PUSH2 0x21B1 JUMP JUMPDEST PUSH2 0x3F2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x157 SWAP2 SWAP1 PUSH2 0x2200 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x175 SWAP2 SWAP1 PUSH2 0x2273 JUMP JUMPDEST PUSH2 0x44C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x187 SWAP2 SWAP1 PUSH2 0x22BB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1AA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A5 SWAP2 SWAP1 PUSH2 0x22D6 JUMP JUMPDEST PUSH2 0x48C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B7 SWAP2 SWAP1 PUSH2 0x2393 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1DA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D5 SWAP2 SWAP1 PUSH2 0x23EB JUMP JUMPDEST PUSH2 0x520 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E7 SWAP2 SWAP1 PUSH2 0x2427 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x20A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x205 SWAP2 SWAP1 PUSH2 0x263F JUMP JUMPDEST PUSH2 0x540 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x226 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x221 SWAP2 SWAP1 PUSH2 0x270E JUMP JUMPDEST PUSH2 0x5E8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x242 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x23D SWAP2 SWAP1 PUSH2 0x270E JUMP JUMPDEST PUSH2 0x60A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x25E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x259 SWAP2 SWAP1 PUSH2 0x2811 JUMP JUMPDEST PUSH2 0x685 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x26B SWAP2 SWAP1 PUSH2 0x2947 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x27C PUSH2 0x78E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x289 SWAP2 SWAP1 PUSH2 0x2200 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2AC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A7 SWAP2 SWAP1 PUSH2 0x2969 JUMP JUMPDEST PUSH2 0x798 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2C8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2C3 SWAP2 SWAP1 PUSH2 0x2A8D JUMP JUMPDEST PUSH2 0x856 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D5 SWAP2 SWAP1 PUSH2 0x2393 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2F8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2F3 SWAP2 SWAP1 PUSH2 0x270E JUMP JUMPDEST PUSH2 0x8DE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x305 SWAP2 SWAP1 PUSH2 0x22BB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x328 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x323 SWAP2 SWAP1 PUSH2 0x2AE9 JUMP JUMPDEST PUSH2 0x949 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x332 PUSH2 0x9AD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x33F SWAP2 SWAP1 PUSH2 0x2427 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x362 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x35D SWAP2 SWAP1 PUSH2 0x2B5E JUMP JUMPDEST PUSH2 0x9B4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x36C PUSH2 0x9CA JUMP JUMPDEST STOP JUMPDEST PUSH2 0x388 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x383 SWAP2 SWAP1 PUSH2 0x270E JUMP JUMPDEST PUSH2 0xA47 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39F SWAP2 SWAP1 PUSH2 0x2B9E JUMP JUMPDEST PUSH2 0xA69 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3B1 SWAP2 SWAP1 PUSH2 0x22BB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3D4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3CF SWAP2 SWAP1 PUSH2 0x2BDE JUMP JUMPDEST PUSH2 0xAFD JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3F0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3EB SWAP2 SWAP1 PUSH2 0x2C75 JUMP JUMPDEST PUSH2 0xBA5 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x46D ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xC87 JUMP JUMPDEST ISZERO PUSH2 0x482 JUMPI PUSH2 0x47B DUP3 PUSH2 0xCD4 JUMP JUMPDEST SWAP1 POP PUSH2 0x487 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP1 SLOAD PUSH2 0x49B SWAP1 PUSH2 0x2CF7 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 0x4C7 SWAP1 PUSH2 0x2CF7 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x514 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x4E9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x514 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 0x4F7 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 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 PUSH2 0x54A PUSH2 0xD4E JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x58F JUMPI POP PUSH2 0x58D DUP7 DUP3 PUSH2 0xA69 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x5D3 JUMPI DUP1 DUP7 PUSH1 0x40 MLOAD PUSH32 0xE237D92200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CA SWAP3 SWAP2 SWAP1 PUSH2 0x2D37 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5E0 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0xD56 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x5F1 DUP3 PUSH2 0x520 JUMP JUMPDEST PUSH2 0x5FA DUP2 PUSH2 0xE4E JUMP JUMPDEST PUSH2 0x604 DUP4 DUP4 PUSH2 0xE62 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x612 PUSH2 0xD4E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x676 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6697B23200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x680 DUP3 DUP3 PUSH2 0xF54 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0x6D1 JUMPI DUP2 MLOAD DUP4 MLOAD PUSH1 0x40 MLOAD PUSH32 0x5B05999100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6C8 SWAP3 SWAP2 SWAP1 PUSH2 0x2D60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x6EE JUMPI PUSH2 0x6ED PUSH2 0x2447 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 0x71C JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x783 JUMPI PUSH2 0x759 PUSH2 0x741 DUP3 DUP8 PUSH2 0x1047 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x754 DUP4 DUP8 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x3F2 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x76C JUMPI PUSH2 0x76B PUSH2 0x2D89 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x722 JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST DUP3 PUSH2 0x7A2 DUP2 PUSH2 0x106F JUMP JUMPDEST PUSH1 0x1 PUSH2 0x7AE DUP7 DUP7 PUSH2 0x3F2 JUMP JUMPDEST LT PUSH2 0x7F2 JUMPI DUP5 DUP5 PUSH1 0x40 MLOAD PUSH32 0x788D255600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7E9 SWAP3 SWAP2 SWAP1 PUSH2 0x2DB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7FF DUP6 DUP6 PUSH1 0x1 DUP6 PUSH2 0x10B8 JUMP JUMPDEST DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4C209B5FC8AD50758F13E2E1088BA56A560DFF690A1C6FEF26394F4C03821C4F PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x847 SWAP2 SWAP1 PUSH2 0x2E26 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x862 DUP2 PUSH2 0x106F JUMP JUMPDEST DUP3 PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x8A7 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC29F9DB300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x89E SWAP1 PUSH2 0x2E8D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH2 0x8B2 DUP7 PUSH2 0x1151 JUMP JUMPDEST DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x8C5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3065 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 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 SHL PUSH2 0x956 DUP2 PUSH2 0xE4E JUMP JUMPDEST PUSH2 0x95F DUP3 PUSH2 0x121F JUMP JUMPDEST PUSH32 0x309B29DED109B9E28FB9885757B3E0096EB75C51D23AA4635D68BCD569F6ADC1 PUSH1 0x5 DUP4 PUSH1 0x40 MLOAD PUSH2 0x991 SWAP3 SWAP2 SWAP1 PUSH2 0x313B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP2 PUSH1 0x5 SWAP1 DUP2 PUSH2 0x9A8 SWAP2 SWAP1 PUSH2 0x32FF JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST PUSH2 0x9C6 PUSH2 0x9BF PUSH2 0xD4E JUMP JUMPDEST DUP4 DUP4 PUSH2 0x1266 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 SLOAD SWAP1 POP PUSH2 0x9ED CALLER DUP3 PUSH1 0x1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x10B8 JUMP JUMPDEST DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC65A3F767206D2FDCEDE0B094A4840E01C0DD0BE1888B5BA800346EAA0123C16 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 DUP2 PUSH2 0xA3E SWAP2 SWAP1 PUSH2 0x3400 JUMP JUMPDEST PUSH1 0x4 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0xA50 DUP3 PUSH2 0x520 JUMP JUMPDEST PUSH2 0xA59 DUP2 PUSH2 0xE4E JUMP JUMPDEST PUSH2 0xA63 DUP4 DUP4 PUSH2 0xF54 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB07 PUSH2 0xD4E JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0xB4C JUMPI POP PUSH2 0xB4A DUP7 DUP3 PUSH2 0xA69 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0xB90 JUMPI DUP1 DUP7 PUSH1 0x40 MLOAD PUSH32 0xE237D92200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB87 SWAP3 SWAP2 SWAP1 PUSH2 0x2D37 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB9D DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x13D6 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH2 0xBAF DUP2 PUSH2 0x106F JUMP JUMPDEST DUP4 DUP4 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xC23 JUMPI DUP2 DUP2 PUSH1 0x40 MLOAD PUSH32 0x8626CC0300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1A SWAP3 SWAP2 SWAP1 PUSH2 0x2DB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC2F DUP7 DUP7 PUSH1 0x1 PUSH2 0x14E1 JUMP JUMPDEST DUP5 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x49995E5DD6158CF69AD3E9777C46755A1A826A446C6416992167462DAD033B2A PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0xC77 SWAP2 SWAP1 PUSH2 0x2E26 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCB3 DUP3 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH2 0x1588 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xCCD JUMPI POP PUSH2 0xCCB DUP3 PUSH4 0xFFFFFFFF PUSH1 0xE0 SHL PUSH2 0x1588 JUMP JUMPDEST ISZERO JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xD47 JUMPI POP PUSH2 0xD46 DUP3 PUSH2 0x1627 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xDC8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xDBF SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xE3A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE31 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xE47 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0x1709 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0xE5F DUP2 PUSH2 0xE5A PUSH2 0xD4E JUMP JUMPDEST PUSH2 0x17BB JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE6E DUP4 DUP4 PUSH2 0x8DE JUMP JUMPDEST PUSH2 0xF49 JUMPI PUSH1 0x1 PUSH1 0x3 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 0xEE6 PUSH2 0xD4E 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 0xF4E JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF60 DUP4 DUP4 PUSH2 0x8DE JUMP JUMPDEST ISZERO PUSH2 0x103C JUMPI PUSH1 0x0 PUSH1 0x3 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 0xFD9 PUSH2 0xD4E 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 0x1041 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MUL PUSH1 0x20 DUP5 ADD ADD MLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MUL PUSH1 0x20 DUP5 ADD ADD MLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 LT PUSH2 0x10B5 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0xC80A970C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10AC SWAP2 SWAP1 PUSH2 0x2200 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x112A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1121 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1137 DUP6 DUP6 PUSH2 0x180C JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x1149 PUSH1 0x0 DUP8 DUP5 DUP5 DUP8 PUSH2 0x1709 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH2 0x1160 DUP5 PUSH2 0x183C JUMP JUMPDEST ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x117F JUMPI PUSH2 0x117E PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x11B1 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x20 ADD DUP3 ADD SWAP1 POP JUMPDEST PUSH1 0x1 ISZERO PUSH2 0x1214 JUMPI DUP1 DUP1 PUSH1 0x1 SWAP1 SUB SWAP2 POP POP PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DUP2 PUSH2 0x1208 JUMPI PUSH2 0x1207 PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP5 POP PUSH1 0x0 DUP6 SUB PUSH2 0x11BF JUMPI JUMPDEST DUP2 SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x1263 JUMPI PUSH1 0x40 MLOAD PUSH32 0x1897CF6600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x125A SWAP1 PUSH2 0x34CA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x12D8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xCED3E10000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12CF SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 DUP4 PUSH1 0x40 MLOAD PUSH2 0x13C9 SWAP2 SWAP1 PUSH2 0x22BB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1448 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x143F SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x14BA JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14B1 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x14C7 DUP6 DUP6 PUSH2 0x180C JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x14D8 DUP8 DUP8 DUP5 DUP5 DUP8 PUSH2 0x1709 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1553 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x154A SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1560 DUP5 DUP5 PUSH2 0x180C JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x1581 DUP6 PUSH1 0x0 DUP5 DUP5 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1709 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x159C SWAP2 SWAP1 PUSH2 0x34F9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x20 PUSH1 0x0 DUP6 MLOAD PUSH1 0x20 DUP8 ADD DUP11 PUSH2 0x7530 STATICCALL SWAP3 POP RETURNDATASIZE SWAP2 POP PUSH1 0x0 MLOAD SWAP1 POP DUP3 DUP1 ISZERO PUSH2 0x160F JUMPI POP PUSH1 0x20 DUP3 LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x161B JUMPI POP PUSH1 0x0 DUP2 GT JUMPDEST SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xD9B67A2600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x16F2 JUMPI POP PUSH32 0xE89341C00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x1702 JUMPI POP PUSH2 0x1701 DUP3 PUSH2 0x198F JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1715 DUP6 DUP6 DUP6 DUP6 PUSH2 0x19F9 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x17B4 JUMPI PUSH1 0x0 PUSH2 0x1753 PUSH2 0xD4E JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP5 MLOAD SUB PUSH2 0x17A3 JUMPI PUSH1 0x0 PUSH2 0x1774 PUSH1 0x0 DUP7 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x178C PUSH1 0x0 DUP7 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH2 0x179C DUP4 DUP10 DUP10 DUP6 DUP6 DUP10 PUSH2 0x1DA1 JUMP JUMPDEST POP POP PUSH2 0x17B2 JUMP JUMPDEST PUSH2 0x17B1 DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x1F55 JUMP JUMPDEST JUMPDEST POP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x17C5 DUP3 DUP3 PUSH2 0x8DE JUMP JUMPDEST PUSH2 0x1808 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH32 0xE2517D3F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x17FF SWAP3 SWAP2 SWAP1 PUSH2 0x3514 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1 DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH1 0x1 DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD PUSH1 0x40 MSTORE SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x189A JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DUP2 PUSH2 0x1890 JUMPI PUSH2 0x188F PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x40 DUP2 ADD SWAP1 POP JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x18D7 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DUP2 PUSH2 0x18CD JUMPI PUSH2 0x18CC PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x20 DUP2 ADD SWAP1 POP JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x1906 JUMPI PUSH7 0x2386F26FC10000 DUP4 DUP2 PUSH2 0x18FC JUMPI PUSH2 0x18FB PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x10 DUP2 ADD SWAP1 POP JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x192F JUMPI PUSH4 0x5F5E100 DUP4 DUP2 PUSH2 0x1925 JUMPI PUSH2 0x1924 PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x8 DUP2 ADD SWAP1 POP JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x1954 JUMPI PUSH2 0x2710 DUP4 DUP2 PUSH2 0x194A JUMPI PUSH2 0x1949 PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x4 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x1977 JUMPI PUSH1 0x64 DUP4 DUP2 PUSH2 0x196D JUMPI PUSH2 0x196C PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x2 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x1986 JUMPI PUSH1 0x1 DUP2 ADD SWAP1 POP JUMPDEST DUP1 SWAP2 POP 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 DUP1 MLOAD DUP3 MLOAD EQ PUSH2 0x1A43 JUMPI DUP2 MLOAD DUP2 MLOAD PUSH1 0x40 MLOAD PUSH32 0x5B05999100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A3A SWAP3 SWAP2 SWAP1 PUSH2 0x2D60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1A4D PUSH2 0xD4E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x1C5C JUMPI PUSH1 0x0 PUSH2 0x1A70 DUP3 DUP7 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1A87 DUP4 DUP7 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1BB4 JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x1B5C JUMPI DUP9 DUP2 DUP4 DUP6 PUSH1 0x40 MLOAD PUSH32 0x3DEE4C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B53 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x353D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1C4F JUMPI DUP1 PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1C47 SWAP2 SWAP1 PUSH2 0x3400 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x1A52 JUMP JUMPDEST POP PUSH1 0x1 DUP4 MLOAD SUB PUSH2 0x1D1B JUMPI PUSH1 0x0 PUSH2 0x1C7C PUSH1 0x0 DUP6 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1C94 PUSH1 0x0 DUP6 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x1D0C SWAP3 SWAP2 SWAP1 PUSH2 0x2D60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP PUSH2 0x1D9A JUMP JUMPDEST DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4A39DC06D4C0DBC64B70AF90FD698A233A518AA5D07E595D983B8C0526C8F7FB DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1D91 SWAP3 SWAP2 SWAP1 PUSH2 0x3582 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x1F4D JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF23A6E61 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E02 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x360E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1E3E JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1E3B SWAP2 SWAP1 PUSH2 0x367D JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1EC2 JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1E6E JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1E73 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x1EBA JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1EB1 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x1F4B JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1F42 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x2101 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xBC197C81 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1FB6 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x36AA JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1FF2 JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1FEF SWAP2 SWAP1 PUSH2 0x367D JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x2076 JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2022 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2027 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x206E JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2065 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x20FF JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x20F6 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2148 DUP3 PUSH2 0x211D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2158 DUP2 PUSH2 0x213D JUMP JUMPDEST DUP2 EQ PUSH2 0x2163 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2175 DUP2 PUSH2 0x214F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x218E DUP2 PUSH2 0x217B JUMP JUMPDEST DUP2 EQ PUSH2 0x2199 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x21AB DUP2 PUSH2 0x2185 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x21C8 JUMPI PUSH2 0x21C7 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x21D6 DUP6 DUP3 DUP7 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x21E7 DUP6 DUP3 DUP7 ADD PUSH2 0x219C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x21FA DUP2 PUSH2 0x217B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2215 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x21F1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2250 DUP2 PUSH2 0x221B JUMP JUMPDEST DUP2 EQ PUSH2 0x225B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x226D DUP2 PUSH2 0x2247 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2289 JUMPI PUSH2 0x2288 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2297 DUP5 DUP3 DUP6 ADD PUSH2 0x225E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x22B5 DUP2 PUSH2 0x22A0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x22D0 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x22AC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x22EC JUMPI PUSH2 0x22EB PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x22FA DUP5 DUP3 DUP6 ADD PUSH2 0x219C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x233D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2322 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2365 DUP3 PUSH2 0x2303 JUMP JUMPDEST PUSH2 0x236F DUP2 DUP6 PUSH2 0x230E JUMP JUMPDEST SWAP4 POP PUSH2 0x237F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x231F JUMP JUMPDEST PUSH2 0x2388 DUP2 PUSH2 0x2349 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 0x23AD DUP2 DUP5 PUSH2 0x235A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x23C8 DUP2 PUSH2 0x23B5 JUMP JUMPDEST DUP2 EQ PUSH2 0x23D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x23E5 DUP2 PUSH2 0x23BF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2401 JUMPI PUSH2 0x2400 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x240F DUP5 DUP3 DUP6 ADD PUSH2 0x23D6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2421 DUP2 PUSH2 0x23B5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x243C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2418 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x247F DUP3 PUSH2 0x2349 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x249E JUMPI PUSH2 0x249D PUSH2 0x2447 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24B1 PUSH2 0x2109 JUMP JUMPDEST SWAP1 POP PUSH2 0x24BD DUP3 DUP3 PUSH2 0x2476 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x24DD JUMPI PUSH2 0x24DC PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2506 PUSH2 0x2501 DUP5 PUSH2 0x24C2 JUMP JUMPDEST PUSH2 0x24A7 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 0x2529 JUMPI PUSH2 0x2528 PUSH2 0x24EE JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2552 JUMPI DUP1 PUSH2 0x253E DUP9 DUP3 PUSH2 0x219C JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x252B JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2571 JUMPI PUSH2 0x2570 PUSH2 0x2442 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2581 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x24F3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x25AA JUMPI PUSH2 0x25A9 PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH2 0x25B3 DUP3 PUSH2 0x2349 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 0x25E2 PUSH2 0x25DD DUP5 PUSH2 0x258F JUMP JUMPDEST PUSH2 0x24A7 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x25FE JUMPI PUSH2 0x25FD PUSH2 0x258A JUMP JUMPDEST JUMPDEST PUSH2 0x2609 DUP5 DUP3 DUP6 PUSH2 0x25C0 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2626 JUMPI PUSH2 0x2625 PUSH2 0x2442 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2636 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x25CF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x265B JUMPI PUSH2 0x265A PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2669 DUP9 DUP3 DUP10 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x267A DUP9 DUP3 DUP10 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x269B JUMPI PUSH2 0x269A PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x26A7 DUP9 DUP3 DUP10 ADD PUSH2 0x255C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x26C8 JUMPI PUSH2 0x26C7 PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x26D4 DUP9 DUP3 DUP10 ADD PUSH2 0x255C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x26F5 JUMPI PUSH2 0x26F4 PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x2701 DUP9 DUP3 DUP10 ADD PUSH2 0x2611 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2725 JUMPI PUSH2 0x2724 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2733 DUP6 DUP3 DUP7 ADD PUSH2 0x23D6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2744 DUP6 DUP3 DUP7 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2769 JUMPI PUSH2 0x2768 PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x278D PUSH2 0x2788 DUP5 PUSH2 0x274E JUMP JUMPDEST PUSH2 0x24A7 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 0x27B0 JUMPI PUSH2 0x27AF PUSH2 0x24EE JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x27D9 JUMPI DUP1 PUSH2 0x27C5 DUP9 DUP3 PUSH2 0x2166 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x27B2 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x27F8 JUMPI PUSH2 0x27F7 PUSH2 0x2442 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2808 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x277A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2828 JUMPI PUSH2 0x2827 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2846 JUMPI PUSH2 0x2845 PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x2852 DUP6 DUP3 DUP7 ADD PUSH2 0x27E3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2873 JUMPI PUSH2 0x2872 PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x287F DUP6 DUP3 DUP7 ADD PUSH2 0x255C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x28BE DUP2 PUSH2 0x217B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28D0 DUP4 DUP4 PUSH2 0x28B5 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 0x28F4 DUP3 PUSH2 0x2889 JUMP JUMPDEST PUSH2 0x28FE DUP2 DUP6 PUSH2 0x2894 JUMP JUMPDEST SWAP4 POP PUSH2 0x2909 DUP4 PUSH2 0x28A5 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x293A JUMPI DUP2 MLOAD PUSH2 0x2921 DUP9 DUP3 PUSH2 0x28C4 JUMP JUMPDEST SWAP8 POP PUSH2 0x292C DUP4 PUSH2 0x28DC JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x290D JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2961 DUP2 DUP5 PUSH2 0x28E9 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2983 JUMPI PUSH2 0x2982 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2991 DUP8 DUP3 DUP9 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x29A2 DUP8 DUP3 DUP9 ADD PUSH2 0x219C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x29B3 DUP8 DUP3 DUP9 ADD PUSH2 0x219C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x29D4 JUMPI PUSH2 0x29D3 PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x29E0 DUP8 DUP3 DUP9 ADD PUSH2 0x2611 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2A07 JUMPI PUSH2 0x2A06 PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH2 0x2A10 DUP3 PUSH2 0x2349 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A30 PUSH2 0x2A2B DUP5 PUSH2 0x29EC JUMP JUMPDEST PUSH2 0x24A7 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2A4C JUMPI PUSH2 0x2A4B PUSH2 0x258A JUMP JUMPDEST JUMPDEST PUSH2 0x2A57 DUP5 DUP3 DUP6 PUSH2 0x25C0 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2A74 JUMPI PUSH2 0x2A73 PUSH2 0x2442 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2A84 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2A1D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2AA4 JUMPI PUSH2 0x2AA3 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2AB2 DUP6 DUP3 DUP7 ADD PUSH2 0x219C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2AD3 JUMPI PUSH2 0x2AD2 PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x2ADF DUP6 DUP3 DUP7 ADD PUSH2 0x2A5F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AFF JUMPI PUSH2 0x2AFE PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2B1D JUMPI PUSH2 0x2B1C PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x2B29 DUP5 DUP3 DUP6 ADD PUSH2 0x2A5F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2B3B DUP2 PUSH2 0x22A0 JUMP JUMPDEST DUP2 EQ PUSH2 0x2B46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2B58 DUP2 PUSH2 0x2B32 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2B75 JUMPI PUSH2 0x2B74 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2B83 DUP6 DUP3 DUP7 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2B94 DUP6 DUP3 DUP7 ADD PUSH2 0x2B49 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2BB5 JUMPI PUSH2 0x2BB4 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2BC3 DUP6 DUP3 DUP7 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2BD4 DUP6 DUP3 DUP7 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2BFA JUMPI PUSH2 0x2BF9 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2C08 DUP9 DUP3 DUP10 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x2C19 DUP9 DUP3 DUP10 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x2C2A DUP9 DUP3 DUP10 ADD PUSH2 0x219C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x2C3B DUP9 DUP3 DUP10 ADD PUSH2 0x219C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2C5C JUMPI PUSH2 0x2C5B PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x2C68 DUP9 DUP3 DUP10 ADD PUSH2 0x2611 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2C8E JUMPI PUSH2 0x2C8D PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2C9C DUP7 DUP3 DUP8 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x2CAD DUP7 DUP3 DUP8 ADD PUSH2 0x219C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x2CBE DUP7 DUP3 DUP8 ADD PUSH2 0x219C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 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 0x2D0F JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2D22 JUMPI PUSH2 0x2D21 PUSH2 0x2CC8 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2D31 DUP2 PUSH2 0x213D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2D4C PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x2D59 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2D28 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2D75 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x21F1 JUMP JUMPDEST PUSH2 0x2D82 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x21F1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2DCD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x2DDA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x21F1 JUMP JUMPDEST 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 0x2E10 PUSH2 0x2E0B PUSH2 0x2E06 DUP5 PUSH2 0x2DE1 JUMP JUMPDEST PUSH2 0x2DEB JUMP JUMPDEST PUSH2 0x217B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2E20 DUP2 PUSH2 0x2DF5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2E3B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2E17 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4163636F756E742063616E6E6F7420626520656D707479000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E77 PUSH1 0x17 DUP4 PUSH2 0x230E JUMP JUMPDEST SWAP2 POP PUSH2 0x2E82 DUP3 PUSH2 0x2E41 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2EA6 DUP2 PUSH2 0x2E6A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x2EDA DUP2 PUSH2 0x2CF7 JUMP JUMPDEST PUSH2 0x2EE4 DUP2 DUP7 PUSH2 0x2EAD JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0x2EFF JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x2F14 JUMPI PUSH2 0x2F47 JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE DUP2 ISZERO ISZERO DUP3 MUL DUP7 ADD SWAP4 POP PUSH2 0x2F47 JUMP JUMPDEST PUSH2 0x2F1D DUP6 PUSH2 0x2EB8 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2F3F JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2F20 JUMP JUMPDEST DUP4 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x2F6170692F76312F6E66742F0000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F86 PUSH1 0xC DUP4 PUSH2 0x2EAD JUMP JUMPDEST SWAP2 POP PUSH2 0x2F91 DUP3 PUSH2 0x2F50 JUMP JUMPDEST PUSH1 0xC DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FA7 DUP3 PUSH2 0x2303 JUMP JUMPDEST PUSH2 0x2FB1 DUP2 DUP6 PUSH2 0x2EAD JUMP JUMPDEST SWAP4 POP PUSH2 0x2FC1 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x231F JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x2F00000000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3003 PUSH1 0x1 DUP4 PUSH2 0x2EAD JUMP JUMPDEST SWAP2 POP PUSH2 0x300E DUP3 PUSH2 0x2FCD JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x2F72657075746174696F6E2D73636F7265000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x304F PUSH1 0x11 DUP4 PUSH2 0x2EAD JUMP JUMPDEST SWAP2 POP PUSH2 0x305A DUP3 PUSH2 0x3019 JUMP JUMPDEST PUSH1 0x11 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3071 DUP3 DUP7 PUSH2 0x2ECD JUMP JUMPDEST SWAP2 POP PUSH2 0x307C DUP3 PUSH2 0x2F79 JUMP JUMPDEST SWAP2 POP PUSH2 0x3088 DUP3 DUP6 PUSH2 0x2F9C JUMP JUMPDEST SWAP2 POP PUSH2 0x3093 DUP3 PUSH2 0x2FF6 JUMP JUMPDEST SWAP2 POP PUSH2 0x309F DUP3 DUP5 PUSH2 0x2F9C JUMP JUMPDEST SWAP2 POP PUSH2 0x30AA DUP3 PUSH2 0x3042 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x30C4 DUP2 PUSH2 0x2CF7 JUMP JUMPDEST PUSH2 0x30CE DUP2 DUP7 PUSH2 0x230E JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0x30E9 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x30FF JUMPI PUSH2 0x3132 JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE DUP2 ISZERO ISZERO PUSH1 0x20 MUL DUP7 ADD SWAP4 POP PUSH2 0x3132 JUMP JUMPDEST PUSH2 0x3108 DUP6 PUSH2 0x2EB8 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x312A JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x310B JUMP JUMPDEST DUP1 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP 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 0x3155 DUP2 DUP6 PUSH2 0x30B7 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x3169 DUP2 DUP5 PUSH2 0x235A JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP 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 0x31BF PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x3182 JUMP JUMPDEST PUSH2 0x31C9 DUP7 DUP4 PUSH2 0x3182 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 0x31FC PUSH2 0x31F7 PUSH2 0x31F2 DUP5 PUSH2 0x217B JUMP JUMPDEST PUSH2 0x2DEB JUMP JUMPDEST PUSH2 0x217B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3216 DUP4 PUSH2 0x31E1 JUMP JUMPDEST PUSH2 0x322A PUSH2 0x3222 DUP3 PUSH2 0x3203 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x318F JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x323F PUSH2 0x3232 JUMP JUMPDEST PUSH2 0x324A DUP2 DUP5 DUP5 PUSH2 0x320D JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x326E JUMPI PUSH2 0x3263 PUSH1 0x0 DUP3 PUSH2 0x3237 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x3250 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x32B3 JUMPI PUSH2 0x3284 DUP2 PUSH2 0x2EB8 JUMP JUMPDEST PUSH2 0x328D DUP5 PUSH2 0x3172 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x329C JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x32B0 PUSH2 0x32A8 DUP6 PUSH2 0x3172 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x324F 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 0x32D6 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x32B8 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x32EF DUP4 DUP4 PUSH2 0x32C5 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x3308 DUP3 PUSH2 0x2303 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3321 JUMPI PUSH2 0x3320 PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH2 0x332B DUP3 SLOAD PUSH2 0x2CF7 JUMP JUMPDEST PUSH2 0x3336 DUP3 DUP3 DUP6 PUSH2 0x3272 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x3369 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x3357 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x3361 DUP6 DUP3 PUSH2 0x32E3 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x3377 DUP7 PUSH2 0x2EB8 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x339F 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 0x337A JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x33BC JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x33B8 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x32C5 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 PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x340B DUP3 PUSH2 0x217B JUMP JUMPDEST SWAP2 POP PUSH2 0x3416 DUP4 PUSH2 0x217B JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x342E JUMPI PUSH2 0x342D PUSH2 0x33D1 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3449 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2D28 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x5552492063616E6E6F7420626520656D70747900000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34B4 PUSH1 0x13 DUP4 PUSH2 0x230E JUMP JUMPDEST SWAP2 POP PUSH2 0x34BF DUP3 PUSH2 0x347E JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x34E3 DUP2 PUSH2 0x34A7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x34F3 DUP2 PUSH2 0x221B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x350E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x34EA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3529 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x3536 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2418 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x3552 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x355F PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x21F1 JUMP JUMPDEST PUSH2 0x356C PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x21F1 JUMP JUMPDEST PUSH2 0x3579 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x21F1 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x359C DUP2 DUP6 PUSH2 0x28E9 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x35B0 DUP2 DUP5 PUSH2 0x28E9 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 0x35E0 DUP3 PUSH2 0x35B9 JUMP JUMPDEST PUSH2 0x35EA DUP2 DUP6 PUSH2 0x35C4 JUMP JUMPDEST SWAP4 POP PUSH2 0x35FA DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x231F JUMP JUMPDEST PUSH2 0x3603 DUP2 PUSH2 0x2349 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x3623 PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x3630 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x363D PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x21F1 JUMP JUMPDEST PUSH2 0x364A PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x21F1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x365C DUP2 DUP5 PUSH2 0x35D5 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x3677 DUP2 PUSH2 0x2247 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3693 JUMPI PUSH2 0x3692 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x36A1 DUP5 DUP3 DUP6 ADD PUSH2 0x3668 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x36BF PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x36CC PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2D28 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x36DE DUP2 DUP7 PUSH2 0x28E9 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x36F2 DUP2 DUP6 PUSH2 0x28E9 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x3706 DUP2 DUP5 PUSH2 0x35D5 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x24 0xE SWAP11 PUSH30 0xAAB5D9EBA2793E75F4BBF0E9A74F133868AC14D5E9561767BB722E826473 PUSH16 0x6C634300081A00330000000000000000 ", + "sourceMap": "336:2840:16:-:0;;;497:178;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1251:62:3;;;;;;;;;;;;1293:13;1301:4;1293:7;;;:13;;:::i;:::-;1251:62;556:29:16::1;575:9;556:18;;;:29;;:::i;:::-;595:42;2232:4:0;606:18:16::0;::::1;626:10;595;;;:42;;:::i;:::-;;659:9;647;:21;;;;;;:::i;:::-;;497:178:::0;336:2840;;10282:86:3;10355:6;10348:4;:13;;;;;;:::i;:::-;;10282:86;:::o;827:174:16:-;929:1;911:6;905:20;:25;901:94;;953:31;;;;;;;;;;:::i;:::-;;;;;;;;901:94;827:174;:::o;6179:316:0:-;6256:4;6277:22;6285:4;6291:7;6277;;;:22;;:::i;:::-;6272:217;;6347:4;6315:6;:12;6322:4;6315:12;;;;;;;;;;;:20;;:29;6336:7;6315:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;6397:12;:10;;;:12;;:::i;:::-;6370:40;;6388:7;6370:40;;6382:4;6370:40;;;;;;;;;;6431:4;6424:11;;;;6272:217;6473:5;6466:12;;6179:316;;;;;:::o;2854:136::-;2931:4;2954:6;:12;2961:4;2954:12;;;;;;;;;;;:20;;:29;2975:7;2954:29;;;;;;;;;;;;;;;;;;;;;;;;;2947:36;;2854:136;;;;:::o;656:96:8:-;709:7;735:10;728:17;;656:96;:::o;7:75:18:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:248::-;1692:1;1702:113;1716:6;1713:1;1710:13;1702:113;;;1801:1;1796:3;1792:11;1786:18;1782:1;1777:3;1773:11;1766:39;1738:2;1735:1;1731:10;1726:15;;1702:113;;;1849:1;1840:6;1835:3;1831:16;1824:27;1672:186;1610:248;;;:::o;1864:434::-;1953:5;1978:66;1994:49;2036:6;1994:49;:::i;:::-;1978:66;:::i;:::-;1969:75;;2067:6;2060:5;2053:21;2105:4;2098:5;2094:16;2143:3;2134:6;2129:3;2125:16;2122:25;2119:112;;;2150:79;;:::i;:::-;2119:112;2240:52;2285:6;2280:3;2275;2240:52;:::i;:::-;1959:339;1864:434;;;;;:::o;2318:355::-;2385:5;2434:3;2427:4;2419:6;2415:17;2411:27;2401:122;;2442:79;;:::i;:::-;2401:122;2552:6;2546:13;2577:90;2663:3;2655:6;2648:4;2640:6;2636:17;2577:90;:::i;:::-;2568:99;;2391:282;2318:355;;;;:::o;2679:524::-;2759:6;2808:2;2796:9;2787:7;2783:23;2779:32;2776:119;;;2814:79;;:::i;:::-;2776:119;2955:1;2944:9;2940:17;2934:24;2985:18;2977:6;2974:30;2971:117;;;3007:79;;:::i;:::-;2971:117;3112:74;3178:7;3169:6;3158:9;3154:22;3112:74;:::i;:::-;3102:84;;2905:291;2679:524;;;;:::o;3209:99::-;3261:6;3295:5;3289:12;3279:22;;3209:99;;;:::o;3314:180::-;3362:77;3359:1;3352:88;3459:4;3456:1;3449:15;3483:4;3480:1;3473:15;3500:320;3544:6;3581:1;3575:4;3571:12;3561:22;;3628:1;3622:4;3618:12;3649:18;3639:81;;3705:4;3697:6;3693:17;3683:27;;3639:81;3767:2;3759:6;3756:14;3736:18;3733:38;3730:84;;3786:18;;:::i;:::-;3730:84;3551:269;3500:320;;;:::o;3826:141::-;3875:4;3898:3;3890:11;;3921:3;3918:1;3911:14;3955:4;3952:1;3942:18;3934:26;;3826:141;;;:::o;3973:93::-;4010:6;4057:2;4052;4045:5;4041:14;4037:23;4027:33;;3973:93;;;:::o;4072:107::-;4116:8;4166:5;4160:4;4156:16;4135:37;;4072:107;;;;:::o;4185:393::-;4254:6;4304:1;4292:10;4288:18;4327:97;4357:66;4346:9;4327:97;:::i;:::-;4445:39;4475:8;4464:9;4445:39;:::i;:::-;4433:51;;4517:4;4513:9;4506:5;4502:21;4493:30;;4566:4;4556:8;4552:19;4545:5;4542:30;4532:40;;4261:317;;4185:393;;;;;:::o;4584:77::-;4621:7;4650:5;4639:16;;4584:77;;;:::o;4667:60::-;4695:3;4716:5;4709:12;;4667:60;;;:::o;4733:142::-;4783:9;4816:53;4834:34;4843:24;4861:5;4843:24;:::i;:::-;4834:34;:::i;:::-;4816:53;:::i;:::-;4803:66;;4733:142;;;:::o;4881:75::-;4924:3;4945:5;4938:12;;4881:75;;;:::o;4962:269::-;5072:39;5103:7;5072:39;:::i;:::-;5133:91;5182:41;5206:16;5182:41;:::i;:::-;5174:6;5167:4;5161:11;5133:91;:::i;:::-;5127:4;5120:105;5038:193;4962:269;;;:::o;5237:73::-;5282:3;5237:73;:::o;5316:189::-;5393:32;;:::i;:::-;5434:65;5492:6;5484;5478:4;5434:65;:::i;:::-;5369:136;5316:189;;:::o;5511:186::-;5571:120;5588:3;5581:5;5578:14;5571:120;;;5642:39;5679:1;5672:5;5642:39;:::i;:::-;5615:1;5608:5;5604:13;5595:22;;5571:120;;;5511:186;;:::o;5703:543::-;5804:2;5799:3;5796:11;5793:446;;;5838:38;5870:5;5838:38;:::i;:::-;5922:29;5940:10;5922:29;:::i;:::-;5912:8;5908:44;6105:2;6093:10;6090:18;6087:49;;;6126:8;6111:23;;6087:49;6149:80;6205:22;6223:3;6205:22;:::i;:::-;6195:8;6191:37;6178:11;6149:80;:::i;:::-;5808:431;;5793:446;5703:543;;;:::o;6252:117::-;6306:8;6356:5;6350:4;6346:16;6325:37;;6252:117;;;;:::o;6375:169::-;6419:6;6452:51;6500:1;6496:6;6488:5;6485:1;6481:13;6452:51;:::i;:::-;6448:56;6533:4;6527;6523:15;6513:25;;6426:118;6375:169;;;;:::o;6549:295::-;6625:4;6771:29;6796:3;6790:4;6771:29;:::i;:::-;6763:37;;6833:3;6830:1;6826:11;6820:4;6817:21;6809:29;;6549:295;;;;:::o;6849:1395::-;6966:37;6999:3;6966:37;:::i;:::-;7068:18;7060:6;7057:30;7054:56;;;7090:18;;:::i;:::-;7054:56;7134:38;7166:4;7160:11;7134:38;:::i;:::-;7219:67;7279:6;7271;7265:4;7219:67;:::i;:::-;7313:1;7337:4;7324:17;;7369:2;7361:6;7358:14;7386:1;7381:618;;;;8043:1;8060:6;8057:77;;;8109:9;8104:3;8100:19;8094:26;8085:35;;8057:77;8160:67;8220:6;8213:5;8160:67;:::i;:::-;8154:4;8147:81;8016:222;7351:887;;7381:618;7433:4;7429:9;7421:6;7417:22;7467:37;7499:4;7467:37;:::i;:::-;7526:1;7540:208;7554:7;7551:1;7548:14;7540:208;;;7633:9;7628:3;7624:19;7618:26;7610:6;7603:42;7684:1;7676:6;7672:14;7662:24;;7731:2;7720:9;7716:18;7703:31;;7577:4;7574:1;7570:12;7565:17;;7540:208;;;7776:6;7767:7;7764:19;7761:179;;;7834:9;7829:3;7825:19;7819:26;7877:48;7919:4;7911:6;7907:17;7896:9;7877:48;:::i;:::-;7869:6;7862:64;7784:156;7761:179;7986:1;7982;7974:6;7970:14;7966:22;7960:4;7953:36;7388:611;;;7351:887;;6941:1303;;;6849:1395;;:::o;8250:169::-;8334:11;8368:6;8363:3;8356:19;8408:4;8403:3;8399:14;8384:29;;8250:169;;;;:::o;8425:::-;8565:21;8561:1;8553:6;8549:14;8542:45;8425:169;:::o;8600:366::-;8742:3;8763:67;8827:2;8822:3;8763:67;:::i;:::-;8756:74;;8839:93;8928:3;8839:93;:::i;:::-;8957:2;8952:3;8948:12;8941:19;;8600:366;;;:::o;8972:419::-;9138:4;9176:2;9165:9;9161:18;9153:26;;9225:9;9219:4;9215:20;9211:1;9200:9;9196:17;9189:47;9253:131;9379:4;9253:131;:::i;:::-;9245:139;;8972:419;;;:::o;336:2840:16:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@DEFAULT_ADMIN_ROLE_29": { + "entryPoint": 2477, + "id": 29, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_asSingletonArrays_1565": { + "entryPoint": 6156, + "id": 1565, + "parameterSlots": 2, + "returnSlots": 2 + }, + "@_burn_1332": { + "entryPoint": 5345, + "id": 1332, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_checkRole_114": { + "entryPoint": 6075, + "id": 114, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_checkRole_93": { + "entryPoint": 3662, + "id": 93, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_checkTokenId_3773": { + "entryPoint": 4207, + "id": 3773, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_doSafeBatchTransferAcceptanceCheck_1549": { + "entryPoint": 8021, + "id": 1549, + "parameterSlots": 6, + "returnSlots": 0 + }, + "@_doSafeTransferAcceptanceCheck_1479": { + "entryPoint": 7585, + "id": 1479, + "parameterSlots": 6, + "returnSlots": 0 + }, + "@_grantRole_256": { + "entryPoint": 3682, + "id": 256, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_mint_1241": { + "entryPoint": 4280, + "id": 1241, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_msgSender_1942": { + "entryPoint": 3406, + "id": 1942, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_revokeRole_294": { + "entryPoint": 3924, + "id": 294, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_safeBatchTransferFrom_1178": { + "entryPoint": 3414, + "id": 1178, + "parameterSlots": 5, + "returnSlots": 0 + }, + "@_safeTransferFrom_1123": { + "entryPoint": 5078, + "id": 1123, + "parameterSlots": 5, + "returnSlots": 0 + }, + "@_setApprovalForAll_1411": { + "entryPoint": 4710, + "id": 1411, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_updateWithAcceptanceCheck_1057": { + "entryPoint": 5897, + "id": 1057, + "parameterSlots": 5, + "returnSlots": 0 + }, + "@_update_981": { + "entryPoint": 6649, + "id": 981, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@balanceOfBatch_705": { + "entryPoint": 1669, + "id": 705, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balanceOf_635": { + "entryPoint": 1010, + "id": 635, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@burn_3948": { + "entryPoint": 2981, + "id": 3948, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@counter_3848": { + "entryPoint": 1934, + "id": 3848, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getRoleAdmin_128": { + "entryPoint": 1312, + "id": 128, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@grantRole_147": { + "entryPoint": 1512, + "id": 147, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@hasRole_80": { + "entryPoint": 2270, + "id": 80, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@isApprovedForAll_738": { + "entryPoint": 2665, + "id": 738, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@issue_3876": { + "entryPoint": 2506, + "id": 3876, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@log10_3430": { + "entryPoint": 6204, + "id": 3430, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@mint_3918": { + "entryPoint": 1944, + "id": 3918, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@renounceRole_189": { + "entryPoint": 1546, + "id": 189, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@requireNonEmptyURI_3792": { + "entryPoint": 4639, + "id": 3792, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@revokeRole_166": { + "entryPoint": 2631, + "id": 166, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@safeBatchTransferFrom_828": { + "entryPoint": 1344, + "id": 828, + "parameterSlots": 5, + "returnSlots": 0 + }, + "@safeTransferFrom_782": { + "entryPoint": 2813, + "id": 782, + "parameterSlots": 5, + "returnSlots": 0 + }, + "@setApprovalForAll_721": { + "entryPoint": 2484, + "id": 721, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@supportsERC165InterfaceUnchecked_2543": { + "entryPoint": 5512, + "id": 2543, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@supportsERC165_2380": { + "entryPoint": 3207, + "id": 2380, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_2348": { + "entryPoint": 6543, + "id": 2348, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_3974": { + "entryPoint": 1100, + "id": 3974, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_607": { + "entryPoint": 5671, + "id": 607, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_62": { + "entryPoint": 3284, + "id": 62, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@toString_2138": { + "entryPoint": 4433, + "id": 2138, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@unsafeMemoryAccess_1916": { + "entryPoint": 4187, + "id": 1916, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@unsafeMemoryAccess_1929": { + "entryPoint": 4167, + "id": 1929, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@updateBaseURI_3996": { + "entryPoint": 2377, + "id": 3996, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@uri_4028": { + "entryPoint": 2134, + "id": 4028, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@uri_618": { + "entryPoint": 1164, + "id": 618, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 10106, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 9459, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_available_length_t_bytes_memory_ptr": { + "entryPoint": 9679, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_available_length_t_string_memory_ptr": { + "entryPoint": 10781, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 8550, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 10211, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 9564, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bool": { + "entryPoint": 11081, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes32": { + "entryPoint": 9174, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes4": { + "entryPoint": 8798, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes4_fromMemory": { + "entryPoint": 13928, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes_memory_ptr": { + "entryPoint": 9745, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_string_memory_ptr": { + "entryPoint": 10847, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 8604, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 11166, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr": { + "entryPoint": 9791, + "id": null, + "parameterSlots": 2, + "returnSlots": 5 + }, + "abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr": { + "entryPoint": 11230, + "id": null, + "parameterSlots": 2, + "returnSlots": 5 + }, + "abi_decode_tuple_t_addresst_bool": { + "entryPoint": 11102, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 8625, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_uint256t_uint256": { + "entryPoint": 11381, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256t_uint256t_bytes_memory_ptr": { + "entryPoint": 10601, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 10257, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bytes32": { + "entryPoint": 9195, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes32t_address": { + "entryPoint": 9998, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bytes4": { + "entryPoint": 8819, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes4_fromMemory": { + "entryPoint": 13949, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_string_memory_ptr": { + "entryPoint": 10985, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 8918, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_string_memory_ptr": { + "entryPoint": 10893, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encodeUpdatedPos_t_uint256_to_t_uint256": { + "entryPoint": 10436, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 11560, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack": { + "entryPoint": 10473, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 8876, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes32_to_t_bytes32_fromStack": { + "entryPoint": 9240, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes4_to_t_bytes4_fromStack": { + "entryPoint": 13546, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack": { + "entryPoint": 13781, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_rational_1_by_1_to_t_uint256_fromStack": { + "entryPoint": 11799, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 9050, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 12188, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack": { + "entryPoint": 12471, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 11981, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack": { + "entryPoint": 13479, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 12354, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619_to_t_string_memory_ptr_fromStack": { + "entryPoint": 11882, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 12153, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 12278, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256": { + "entryPoint": 10421, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 8689, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_packed_t_string_storage_t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7_t_string_memory_ptr_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_t_string_memory_ptr_t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 12389, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 13364, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed": { + "entryPoint": 11575, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed": { + "entryPoint": 13994, + "id": null, + "parameterSlots": 6, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed": { + "entryPoint": 13838, + "id": null, + "parameterSlots": 6, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed": { + "entryPoint": 13588, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 11704, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 13629, + "id": null, + "parameterSlots": 5, + "returnSlots": 1 + }, + "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed": { + "entryPoint": 10567, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed": { + "entryPoint": 13698, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 8891, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": { + "entryPoint": 9255, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed": { + "entryPoint": 13561, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_rational_1_by_1__to_t_uint256__fromStack_reversed": { + "entryPoint": 11814, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 9107, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_storage_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 12603, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 13514, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 11917, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 8704, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 11616, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 9383, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 8457, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 10062, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 9410, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_allocation_size_t_bytes_memory_ptr": { + "entryPoint": 9615, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_allocation_size_t_string_memory_ptr": { + "entryPoint": 10732, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 10405, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 11960, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 10377, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_bytes_memory_ptr": { + "entryPoint": 13753, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 8963, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 10460, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack": { + "entryPoint": 10388, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack": { + "entryPoint": 13764, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 8974, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 11949, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 13312, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 12914, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_address": { + "entryPoint": 8509, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 8864, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes32": { + "entryPoint": 9141, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes4": { + "entryPoint": 8731, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_rational_1_by_1": { + "entryPoint": 11745, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 8477, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 8571, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 12879, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_rational_1_by_1_to_t_uint256": { + "entryPoint": 11765, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 12769, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 13055, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "copy_calldata_to_memory_with_cleanup": { + "entryPoint": 9664, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 8991, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 12658, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 11511, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 13027, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 9334, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "identity": { + "entryPoint": 11755, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 12997, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 13265, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x12": { + "entryPoint": 13391, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 11464, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x32": { + "entryPoint": 11657, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 9287, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 12803, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 9282, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef": { + "entryPoint": 9454, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 9610, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 8472, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 8467, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 9033, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 12674, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 12984, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 12855, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "store_literal_in_memory_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231": { + "entryPoint": 13438, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55": { + "entryPoint": 12313, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619": { + "entryPoint": 11841, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7": { + "entryPoint": 12112, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527": { + "entryPoint": 12237, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 12687, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 12813, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 8527, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bool": { + "entryPoint": 11058, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bytes32": { + "entryPoint": 9151, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bytes4": { + "entryPoint": 8775, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 8581, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 12850, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:42493:18", + "nodeType": "YulBlock", + "src": "0:42493:18", + "statements": [ { "body": { - "nativeSrc": "4689:195:18", + "nativeSrc": "47:35:18", "nodeType": "YulBlock", - "src": "4689:195:18", + "src": "47:35:18", "statements": [ { - "nativeSrc": "4699:26:18", - "nodeType": "YulAssignment", - "src": "4699:26:18", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4711:9:18", - "nodeType": "YulIdentifier", - "src": "4711:9:18" - }, - { - "kind": "number", - "nativeSrc": "4722:2:18", - "nodeType": "YulLiteral", - "src": "4722:2:18", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4707:3:18", - "nodeType": "YulIdentifier", - "src": "4707:3:18" - }, - "nativeSrc": "4707:18:18", - "nodeType": "YulFunctionCall", - "src": "4707:18:18" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "4699:4:18", - "nodeType": "YulIdentifier", - "src": "4699:4:18" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4746:9:18", - "nodeType": "YulIdentifier", - "src": "4746:9:18" - }, - { - "kind": "number", - "nativeSrc": "4757:1:18", - "nodeType": "YulLiteral", - "src": "4757:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4742:3:18", - "nodeType": "YulIdentifier", - "src": "4742:3:18" - }, - "nativeSrc": "4742:17:18", - "nodeType": "YulFunctionCall", - "src": "4742:17:18" - }, - { - "arguments": [ - { - "name": "tail", - "nativeSrc": "4765:4:18", - "nodeType": "YulIdentifier", - "src": "4765:4:18" - }, - { - "name": "headStart", - "nativeSrc": "4771:9:18", - "nodeType": "YulIdentifier", - "src": "4771:9:18" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "4761:3:18", - "nodeType": "YulIdentifier", - "src": "4761:3:18" - }, - "nativeSrc": "4761:20:18", - "nodeType": "YulFunctionCall", - "src": "4761:20:18" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "4735:6:18", - "nodeType": "YulIdentifier", - "src": "4735:6:18" - }, - "nativeSrc": "4735:47:18", - "nodeType": "YulFunctionCall", - "src": "4735:47:18" - }, - "nativeSrc": "4735:47:18", - "nodeType": "YulExpressionStatement", - "src": "4735:47:18" - }, - { - "nativeSrc": "4791:86:18", + "nativeSrc": "57:19:18", "nodeType": "YulAssignment", - "src": "4791:86:18", - "value": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "4863:6:18", - "nodeType": "YulIdentifier", - "src": "4863:6:18" - }, - { - "name": "tail", - "nativeSrc": "4872:4:18", - "nodeType": "YulIdentifier", - "src": "4872:4:18" - } - ], - "functionName": { - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", - "nativeSrc": "4799:63:18", - "nodeType": "YulIdentifier", - "src": "4799:63:18" - }, - "nativeSrc": "4799:78:18", - "nodeType": "YulFunctionCall", - "src": "4799:78:18" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "4791:4:18", - "nodeType": "YulIdentifier", - "src": "4791:4:18" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", - "nativeSrc": "4571:313:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "4661:9:18", - "nodeType": "YulTypedName", - "src": "4661:9:18", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "4673:6:18", - "nodeType": "YulTypedName", - "src": "4673:6:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "4684:4:18", - "nodeType": "YulTypedName", - "src": "4684:4:18", - "type": "" - } - ], - "src": "4571:313:18" - }, - { - "body": { - "nativeSrc": "4979:28:18", - "nodeType": "YulBlock", - "src": "4979:28:18", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "4996:1:18", - "nodeType": "YulLiteral", - "src": "4996:1:18", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "4999:1:18", - "nodeType": "YulLiteral", - "src": "4999:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "4989:6:18", - "nodeType": "YulIdentifier", - "src": "4989:6:18" - }, - "nativeSrc": "4989:12:18", - "nodeType": "YulFunctionCall", - "src": "4989:12:18" - }, - "nativeSrc": "4989:12:18", - "nodeType": "YulExpressionStatement", - "src": "4989:12:18" - } - ] - }, - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "4890:117:18", - "nodeType": "YulFunctionDefinition", - "src": "4890:117:18" - }, - { - "body": { - "nativeSrc": "5102:28:18", - "nodeType": "YulBlock", - "src": "5102:28:18", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "5119:1:18", - "nodeType": "YulLiteral", - "src": "5119:1:18", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "5122:1:18", - "nodeType": "YulLiteral", - "src": "5122:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "5112:6:18", - "nodeType": "YulIdentifier", - "src": "5112:6:18" - }, - "nativeSrc": "5112:12:18", - "nodeType": "YulFunctionCall", - "src": "5112:12:18" - }, - "nativeSrc": "5112:12:18", - "nodeType": "YulExpressionStatement", - "src": "5112:12:18" - } - ] - }, - "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", - "nativeSrc": "5013:117:18", - "nodeType": "YulFunctionDefinition", - "src": "5013:117:18" - }, - { - "body": { - "nativeSrc": "5164:152:18", - "nodeType": "YulBlock", - "src": "5164:152:18", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "5181:1:18", - "nodeType": "YulLiteral", - "src": "5181:1:18", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "5184:77:18", - "nodeType": "YulLiteral", - "src": "5184:77:18", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5174:6:18", - "nodeType": "YulIdentifier", - "src": "5174:6:18" - }, - "nativeSrc": "5174:88:18", - "nodeType": "YulFunctionCall", - "src": "5174:88:18" - }, - "nativeSrc": "5174:88:18", - "nodeType": "YulExpressionStatement", - "src": "5174:88:18" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "5278:1:18", - "nodeType": "YulLiteral", - "src": "5278:1:18", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "5281:4:18", - "nodeType": "YulLiteral", - "src": "5281:4:18", - "type": "", - "value": "0x41" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5271:6:18", - "nodeType": "YulIdentifier", - "src": "5271:6:18" - }, - "nativeSrc": "5271:15:18", - "nodeType": "YulFunctionCall", - "src": "5271:15:18" - }, - "nativeSrc": "5271:15:18", - "nodeType": "YulExpressionStatement", - "src": "5271:15:18" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "5302:1:18", - "nodeType": "YulLiteral", - "src": "5302:1:18", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "5305:4:18", - "nodeType": "YulLiteral", - "src": "5305:4:18", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "5295:6:18", - "nodeType": "YulIdentifier", - "src": "5295:6:18" - }, - "nativeSrc": "5295:15:18", - "nodeType": "YulFunctionCall", - "src": "5295:15:18" - }, - "nativeSrc": "5295:15:18", - "nodeType": "YulExpressionStatement", - "src": "5295:15:18" - } - ] - }, - "name": "panic_error_0x41", - "nativeSrc": "5136:180:18", - "nodeType": "YulFunctionDefinition", - "src": "5136:180:18" - }, - { - "body": { - "nativeSrc": "5365:238:18", - "nodeType": "YulBlock", - "src": "5365:238:18", - "statements": [ - { - "nativeSrc": "5375:58:18", - "nodeType": "YulVariableDeclaration", - "src": "5375:58:18", + "src": "57:19:18", "value": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "5397:6:18", - "nodeType": "YulIdentifier", - "src": "5397:6:18" - }, - { - "arguments": [ - { - "name": "size", - "nativeSrc": "5427:4:18", - "nodeType": "YulIdentifier", - "src": "5427:4:18" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nativeSrc": "5405:21:18", - "nodeType": "YulIdentifier", - "src": "5405:21:18" - }, - "nativeSrc": "5405:27:18", - "nodeType": "YulFunctionCall", - "src": "5405:27:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5393:3:18", - "nodeType": "YulIdentifier", - "src": "5393:3:18" - }, - "nativeSrc": "5393:40:18", - "nodeType": "YulFunctionCall", - "src": "5393:40:18" - }, - "variables": [ - { - "name": "newFreePtr", - "nativeSrc": "5379:10:18", - "nodeType": "YulTypedName", - "src": "5379:10:18", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "5544:22:18", - "nodeType": "YulBlock", - "src": "5544:22:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "5546:16:18", - "nodeType": "YulIdentifier", - "src": "5546:16:18" - }, - "nativeSrc": "5546:18:18", - "nodeType": "YulFunctionCall", - "src": "5546:18:18" - }, - "nativeSrc": "5546:18:18", - "nodeType": "YulExpressionStatement", - "src": "5546:18:18" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "5487:10:18", - "nodeType": "YulIdentifier", - "src": "5487:10:18" - }, - { - "kind": "number", - "nativeSrc": "5499:18:18", - "nodeType": "YulLiteral", - "src": "5499:18:18", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "5484:2:18", - "nodeType": "YulIdentifier", - "src": "5484:2:18" - }, - "nativeSrc": "5484:34:18", - "nodeType": "YulFunctionCall", - "src": "5484:34:18" - }, - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "5523:10:18", - "nodeType": "YulIdentifier", - "src": "5523:10:18" - }, - { - "name": "memPtr", - "nativeSrc": "5535:6:18", - "nodeType": "YulIdentifier", - "src": "5535:6:18" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "5520:2:18", - "nodeType": "YulIdentifier", - "src": "5520:2:18" - }, - "nativeSrc": "5520:22:18", - "nodeType": "YulFunctionCall", - "src": "5520:22:18" - } - ], - "functionName": { - "name": "or", - "nativeSrc": "5481:2:18", - "nodeType": "YulIdentifier", - "src": "5481:2:18" - }, - "nativeSrc": "5481:62:18", - "nodeType": "YulFunctionCall", - "src": "5481:62:18" - }, - "nativeSrc": "5478:88:18", - "nodeType": "YulIf", - "src": "5478:88:18" - }, - { - "expression": { "arguments": [ { "kind": "number", - "nativeSrc": "5582:2:18", + "nativeSrc": "73:2:18", "nodeType": "YulLiteral", - "src": "5582:2:18", + "src": "73:2:18", "type": "", "value": "64" - }, - { - "name": "newFreePtr", - "nativeSrc": "5586:10:18", - "nodeType": "YulIdentifier", - "src": "5586:10:18" } ], "functionName": { - "name": "mstore", - "nativeSrc": "5575:6:18", - "nodeType": "YulIdentifier", - "src": "5575:6:18" - }, - "nativeSrc": "5575:22:18", - "nodeType": "YulFunctionCall", - "src": "5575:22:18" - }, - "nativeSrc": "5575:22:18", - "nodeType": "YulExpressionStatement", - "src": "5575:22:18" - } - ] - }, - "name": "finalize_allocation", - "nativeSrc": "5322:281:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nativeSrc": "5351:6:18", - "nodeType": "YulTypedName", - "src": "5351:6:18", - "type": "" - }, - { - "name": "size", - "nativeSrc": "5359:4:18", - "nodeType": "YulTypedName", - "src": "5359:4:18", - "type": "" - } - ], - "src": "5322:281:18" - }, - { - "body": { - "nativeSrc": "5650:88:18", - "nodeType": "YulBlock", - "src": "5650:88:18", - "statements": [ - { - "nativeSrc": "5660:30:18", - "nodeType": "YulAssignment", - "src": "5660:30:18", - "value": { - "arguments": [], - "functionName": { - "name": "allocate_unbounded", - "nativeSrc": "5670:18:18", + "name": "mload", + "nativeSrc": "67:5:18", "nodeType": "YulIdentifier", - "src": "5670:18:18" + "src": "67:5:18" }, - "nativeSrc": "5670:20:18", + "nativeSrc": "67:9:18", "nodeType": "YulFunctionCall", - "src": "5670:20:18" + "src": "67:9:18" }, "variableNames": [ { "name": "memPtr", - "nativeSrc": "5660:6:18", + "nativeSrc": "57:6:18", "nodeType": "YulIdentifier", - "src": "5660:6:18" + "src": "57:6:18" } ] - }, - { - "expression": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "5719:6:18", - "nodeType": "YulIdentifier", - "src": "5719:6:18" - }, - { - "name": "size", - "nativeSrc": "5727:4:18", - "nodeType": "YulIdentifier", - "src": "5727:4:18" - } - ], - "functionName": { - "name": "finalize_allocation", - "nativeSrc": "5699:19:18", - "nodeType": "YulIdentifier", - "src": "5699:19:18" - }, - "nativeSrc": "5699:33:18", - "nodeType": "YulFunctionCall", - "src": "5699:33:18" - }, - "nativeSrc": "5699:33:18", - "nodeType": "YulExpressionStatement", - "src": "5699:33:18" } ] }, - "name": "allocate_memory", - "nativeSrc": "5609:129:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "size", - "nativeSrc": "5634:4:18", - "nodeType": "YulTypedName", - "src": "5634:4:18", - "type": "" - } - ], + "name": "allocate_unbounded", + "nativeSrc": "7:75:18", + "nodeType": "YulFunctionDefinition", "returnVariables": [ { "name": "memPtr", - "nativeSrc": "5643:6:18", + "nativeSrc": "40:6:18", "nodeType": "YulTypedName", - "src": "5643:6:18", + "src": "40:6:18", "type": "" } ], - "src": "5609:129:18" + "src": "7:75:18" }, { "body": { - "nativeSrc": "5811:241:18", + "nativeSrc": "177:28:18", "nodeType": "YulBlock", - "src": "5811:241:18", + "src": "177:28:18", "statements": [ { - "body": { - "nativeSrc": "5916:22:18", - "nodeType": "YulBlock", - "src": "5916:22:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "5918:16:18", - "nodeType": "YulIdentifier", - "src": "5918:16:18" - }, - "nativeSrc": "5918:18:18", - "nodeType": "YulFunctionCall", - "src": "5918:18:18" - }, - "nativeSrc": "5918:18:18", - "nodeType": "YulExpressionStatement", - "src": "5918:18:18" - } - ] - }, - "condition": { + "expression": { "arguments": [ { - "name": "length", - "nativeSrc": "5888:6:18", - "nodeType": "YulIdentifier", - "src": "5888:6:18" + "kind": "number", + "nativeSrc": "194:1:18", + "nodeType": "YulLiteral", + "src": "194:1:18", + "type": "", + "value": "0" }, { "kind": "number", - "nativeSrc": "5896:18:18", + "nativeSrc": "197:1:18", "nodeType": "YulLiteral", - "src": "5896:18:18", + "src": "197:1:18", "type": "", - "value": "0xffffffffffffffff" + "value": "0" } ], "functionName": { - "name": "gt", - "nativeSrc": "5885:2:18", + "name": "revert", + "nativeSrc": "187:6:18", "nodeType": "YulIdentifier", - "src": "5885:2:18" + "src": "187:6:18" }, - "nativeSrc": "5885:30:18", + "nativeSrc": "187:12:18", "nodeType": "YulFunctionCall", - "src": "5885:30:18" + "src": "187:12:18" }, - "nativeSrc": "5882:56:18", - "nodeType": "YulIf", - "src": "5882:56:18" - }, + "nativeSrc": "187:12:18", + "nodeType": "YulExpressionStatement", + "src": "187:12:18" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:18", + "nodeType": "YulFunctionDefinition", + "src": "88:117:18" + }, + { + "body": { + "nativeSrc": "300:28:18", + "nodeType": "YulBlock", + "src": "300:28:18", + "statements": [ { - "nativeSrc": "5948:37:18", - "nodeType": "YulAssignment", - "src": "5948:37:18", - "value": { + "expression": { "arguments": [ { - "name": "length", - "nativeSrc": "5978:6:18", - "nodeType": "YulIdentifier", - "src": "5978:6:18" + "kind": "number", + "nativeSrc": "317:1:18", + "nodeType": "YulLiteral", + "src": "317:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:18", + "nodeType": "YulLiteral", + "src": "320:1:18", + "type": "", + "value": "0" } ], "functionName": { - "name": "round_up_to_mul_of_32", - "nativeSrc": "5956:21:18", + "name": "revert", + "nativeSrc": "310:6:18", "nodeType": "YulIdentifier", - "src": "5956:21:18" + "src": "310:6:18" }, - "nativeSrc": "5956:29:18", + "nativeSrc": "310:12:18", "nodeType": "YulFunctionCall", - "src": "5956:29:18" + "src": "310:12:18" }, - "variableNames": [ - { - "name": "size", - "nativeSrc": "5948:4:18", - "nodeType": "YulIdentifier", - "src": "5948:4:18" - } - ] - }, + "nativeSrc": "310:12:18", + "nodeType": "YulExpressionStatement", + "src": "310:12:18" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:18", + "nodeType": "YulFunctionDefinition", + "src": "211:117:18" + }, + { + "body": { + "nativeSrc": "379:81:18", + "nodeType": "YulBlock", + "src": "379:81:18", + "statements": [ { - "nativeSrc": "6022:23:18", + "nativeSrc": "389:65:18", "nodeType": "YulAssignment", - "src": "6022:23:18", + "src": "389:65:18", "value": { "arguments": [ { - "name": "size", - "nativeSrc": "6034:4:18", + "name": "value", + "nativeSrc": "404:5:18", "nodeType": "YulIdentifier", - "src": "6034:4:18" + "src": "404:5:18" }, { "kind": "number", - "nativeSrc": "6040:4:18", + "nativeSrc": "411:42:18", "nodeType": "YulLiteral", - "src": "6040:4:18", + "src": "411:42:18", "type": "", - "value": "0x20" + "value": "0xffffffffffffffffffffffffffffffffffffffff" } ], "functionName": { - "name": "add", - "nativeSrc": "6030:3:18", + "name": "and", + "nativeSrc": "400:3:18", "nodeType": "YulIdentifier", - "src": "6030:3:18" + "src": "400:3:18" }, - "nativeSrc": "6030:15:18", + "nativeSrc": "400:54:18", "nodeType": "YulFunctionCall", - "src": "6030:15:18" + "src": "400:54:18" }, "variableNames": [ { - "name": "size", - "nativeSrc": "6022:4:18", + "name": "cleaned", + "nativeSrc": "389:7:18", "nodeType": "YulIdentifier", - "src": "6022:4:18" + "src": "389:7:18" } ] } ] }, - "name": "array_allocation_size_t_string_memory_ptr", - "nativeSrc": "5744:308:18", + "name": "cleanup_t_uint160", + "nativeSrc": "334:126:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "length", - "nativeSrc": "5795:6:18", + "name": "value", + "nativeSrc": "361:5:18", "nodeType": "YulTypedName", - "src": "5795:6:18", + "src": "361:5:18", "type": "" } ], "returnVariables": [ { - "name": "size", - "nativeSrc": "5806:4:18", + "name": "cleaned", + "nativeSrc": "371:7:18", "nodeType": "YulTypedName", - "src": "5806:4:18", + "src": "371:7:18", "type": "" } ], - "src": "5744:308:18" + "src": "334:126:18" }, { "body": { - "nativeSrc": "6122:82:18", + "nativeSrc": "511:51:18", "nodeType": "YulBlock", - "src": "6122:82:18", + "src": "511:51:18", "statements": [ { - "expression": { + "nativeSrc": "521:35:18", + "nodeType": "YulAssignment", + "src": "521:35:18", + "value": { "arguments": [ { - "name": "dst", - "nativeSrc": "6145:3:18", - "nodeType": "YulIdentifier", - "src": "6145:3:18" - }, - { - "name": "src", - "nativeSrc": "6150:3:18", - "nodeType": "YulIdentifier", - "src": "6150:3:18" - }, - { - "name": "length", - "nativeSrc": "6155:6:18", + "name": "value", + "nativeSrc": "550:5:18", "nodeType": "YulIdentifier", - "src": "6155:6:18" + "src": "550:5:18" } ], "functionName": { - "name": "calldatacopy", - "nativeSrc": "6132:12:18", + "name": "cleanup_t_uint160", + "nativeSrc": "532:17:18", "nodeType": "YulIdentifier", - "src": "6132:12:18" + "src": "532:17:18" }, - "nativeSrc": "6132:30:18", + "nativeSrc": "532:24:18", "nodeType": "YulFunctionCall", - "src": "6132:30:18" + "src": "532:24:18" }, - "nativeSrc": "6132:30:18", - "nodeType": "YulExpressionStatement", - "src": "6132:30:18" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nativeSrc": "6182:3:18", - "nodeType": "YulIdentifier", - "src": "6182:3:18" - }, - { - "name": "length", - "nativeSrc": "6187:6:18", - "nodeType": "YulIdentifier", - "src": "6187:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6178:3:18", - "nodeType": "YulIdentifier", - "src": "6178:3:18" - }, - "nativeSrc": "6178:16:18", - "nodeType": "YulFunctionCall", - "src": "6178:16:18" - }, - { - "kind": "number", - "nativeSrc": "6196:1:18", - "nodeType": "YulLiteral", - "src": "6196:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "6171:6:18", + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "521:7:18", "nodeType": "YulIdentifier", - "src": "6171:6:18" - }, - "nativeSrc": "6171:27:18", - "nodeType": "YulFunctionCall", - "src": "6171:27:18" - }, - "nativeSrc": "6171:27:18", - "nodeType": "YulExpressionStatement", - "src": "6171:27:18" + "src": "521:7:18" + } + ] } ] }, - "name": "copy_calldata_to_memory_with_cleanup", - "nativeSrc": "6058:146:18", + "name": "cleanup_t_address", + "nativeSrc": "466:96:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "src", - "nativeSrc": "6104:3:18", - "nodeType": "YulTypedName", - "src": "6104:3:18", - "type": "" - }, - { - "name": "dst", - "nativeSrc": "6109:3:18", + "name": "value", + "nativeSrc": "493:5:18", "nodeType": "YulTypedName", - "src": "6109:3:18", + "src": "493:5:18", "type": "" - }, + } + ], + "returnVariables": [ { - "name": "length", - "nativeSrc": "6114:6:18", + "name": "cleaned", + "nativeSrc": "503:7:18", "nodeType": "YulTypedName", - "src": "6114:6:18", + "src": "503:7:18", "type": "" } ], - "src": "6058:146:18" + "src": "466:96:18" }, { "body": { - "nativeSrc": "6294:341:18", + "nativeSrc": "611:79:18", "nodeType": "YulBlock", - "src": "6294:341:18", + "src": "611:79:18", "statements": [ - { - "nativeSrc": "6304:75:18", - "nodeType": "YulAssignment", - "src": "6304:75:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nativeSrc": "6371:6:18", - "nodeType": "YulIdentifier", - "src": "6371:6:18" - } - ], - "functionName": { - "name": "array_allocation_size_t_string_memory_ptr", - "nativeSrc": "6329:41:18", - "nodeType": "YulIdentifier", - "src": "6329:41:18" - }, - "nativeSrc": "6329:49:18", - "nodeType": "YulFunctionCall", - "src": "6329:49:18" - } - ], - "functionName": { - "name": "allocate_memory", - "nativeSrc": "6313:15:18", - "nodeType": "YulIdentifier", - "src": "6313:15:18" - }, - "nativeSrc": "6313:66:18", - "nodeType": "YulFunctionCall", - "src": "6313:66:18" - }, - "variableNames": [ - { - "name": "array", - "nativeSrc": "6304:5:18", - "nodeType": "YulIdentifier", - "src": "6304:5:18" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "array", - "nativeSrc": "6395:5:18", - "nodeType": "YulIdentifier", - "src": "6395:5:18" - }, - { - "name": "length", - "nativeSrc": "6402:6:18", - "nodeType": "YulIdentifier", - "src": "6402:6:18" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "6388:6:18", - "nodeType": "YulIdentifier", - "src": "6388:6:18" - }, - "nativeSrc": "6388:21:18", - "nodeType": "YulFunctionCall", - "src": "6388:21:18" - }, - "nativeSrc": "6388:21:18", - "nodeType": "YulExpressionStatement", - "src": "6388:21:18" - }, - { - "nativeSrc": "6418:27:18", - "nodeType": "YulVariableDeclaration", - "src": "6418:27:18", - "value": { - "arguments": [ - { - "name": "array", - "nativeSrc": "6433:5:18", - "nodeType": "YulIdentifier", - "src": "6433:5:18" - }, - { - "kind": "number", - "nativeSrc": "6440:4:18", - "nodeType": "YulLiteral", - "src": "6440:4:18", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6429:3:18", - "nodeType": "YulIdentifier", - "src": "6429:3:18" - }, - "nativeSrc": "6429:16:18", - "nodeType": "YulFunctionCall", - "src": "6429:16:18" - }, - "variables": [ - { - "name": "dst", - "nativeSrc": "6422:3:18", - "nodeType": "YulTypedName", - "src": "6422:3:18", - "type": "" - } - ] - }, { "body": { - "nativeSrc": "6483:83:18", + "nativeSrc": "668:16:18", "nodeType": "YulBlock", - "src": "6483:83:18", + "src": "668:16:18", "statements": [ { "expression": { - "arguments": [], + "arguments": [ + { + "kind": "number", + "nativeSrc": "677:1:18", + "nodeType": "YulLiteral", + "src": "677:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "680:1:18", + "nodeType": "YulLiteral", + "src": "680:1:18", + "type": "", + "value": "0" + } + ], "functionName": { - "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", - "nativeSrc": "6485:77:18", + "name": "revert", + "nativeSrc": "670:6:18", "nodeType": "YulIdentifier", - "src": "6485:77:18" + "src": "670:6:18" }, - "nativeSrc": "6485:79:18", + "nativeSrc": "670:12:18", "nodeType": "YulFunctionCall", - "src": "6485:79:18" + "src": "670:12:18" }, - "nativeSrc": "6485:79:18", + "nativeSrc": "670:12:18", "nodeType": "YulExpressionStatement", - "src": "6485:79:18" + "src": "670:12:18" } ] }, @@ -64107,152 +64717,261 @@ { "arguments": [ { - "name": "src", - "nativeSrc": "6464:3:18", + "name": "value", + "nativeSrc": "634:5:18", "nodeType": "YulIdentifier", - "src": "6464:3:18" + "src": "634:5:18" }, { - "name": "length", - "nativeSrc": "6469:6:18", - "nodeType": "YulIdentifier", - "src": "6469:6:18" + "arguments": [ + { + "name": "value", + "nativeSrc": "659:5:18", + "nodeType": "YulIdentifier", + "src": "659:5:18" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "641:17:18", + "nodeType": "YulIdentifier", + "src": "641:17:18" + }, + "nativeSrc": "641:24:18", + "nodeType": "YulFunctionCall", + "src": "641:24:18" } ], "functionName": { - "name": "add", - "nativeSrc": "6460:3:18", + "name": "eq", + "nativeSrc": "631:2:18", "nodeType": "YulIdentifier", - "src": "6460:3:18" + "src": "631:2:18" }, - "nativeSrc": "6460:16:18", + "nativeSrc": "631:35:18", "nodeType": "YulFunctionCall", - "src": "6460:16:18" - }, + "src": "631:35:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "624:6:18", + "nodeType": "YulIdentifier", + "src": "624:6:18" + }, + "nativeSrc": "624:43:18", + "nodeType": "YulFunctionCall", + "src": "624:43:18" + }, + "nativeSrc": "621:63:18", + "nodeType": "YulIf", + "src": "621:63:18" + } + ] + }, + "name": "validator_revert_t_address", + "nativeSrc": "568:122:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "604:5:18", + "nodeType": "YulTypedName", + "src": "604:5:18", + "type": "" + } + ], + "src": "568:122:18" + }, + { + "body": { + "nativeSrc": "748:87:18", + "nodeType": "YulBlock", + "src": "748:87:18", + "statements": [ + { + "nativeSrc": "758:29:18", + "nodeType": "YulAssignment", + "src": "758:29:18", + "value": { + "arguments": [ { - "name": "end", - "nativeSrc": "6478:3:18", + "name": "offset", + "nativeSrc": "780:6:18", "nodeType": "YulIdentifier", - "src": "6478:3:18" + "src": "780:6:18" } ], "functionName": { - "name": "gt", - "nativeSrc": "6457:2:18", + "name": "calldataload", + "nativeSrc": "767:12:18", "nodeType": "YulIdentifier", - "src": "6457:2:18" + "src": "767:12:18" }, - "nativeSrc": "6457:25:18", + "nativeSrc": "767:20:18", "nodeType": "YulFunctionCall", - "src": "6457:25:18" + "src": "767:20:18" }, - "nativeSrc": "6454:112:18", - "nodeType": "YulIf", - "src": "6454:112:18" + "variableNames": [ + { + "name": "value", + "nativeSrc": "758:5:18", + "nodeType": "YulIdentifier", + "src": "758:5:18" + } + ] }, { "expression": { "arguments": [ { - "name": "src", - "nativeSrc": "6612:3:18", - "nodeType": "YulIdentifier", - "src": "6612:3:18" - }, - { - "name": "dst", - "nativeSrc": "6617:3:18", - "nodeType": "YulIdentifier", - "src": "6617:3:18" - }, - { - "name": "length", - "nativeSrc": "6622:6:18", + "name": "value", + "nativeSrc": "823:5:18", "nodeType": "YulIdentifier", - "src": "6622:6:18" + "src": "823:5:18" } ], "functionName": { - "name": "copy_calldata_to_memory_with_cleanup", - "nativeSrc": "6575:36:18", + "name": "validator_revert_t_address", + "nativeSrc": "796:26:18", "nodeType": "YulIdentifier", - "src": "6575:36:18" + "src": "796:26:18" }, - "nativeSrc": "6575:54:18", + "nativeSrc": "796:33:18", "nodeType": "YulFunctionCall", - "src": "6575:54:18" + "src": "796:33:18" }, - "nativeSrc": "6575:54:18", + "nativeSrc": "796:33:18", "nodeType": "YulExpressionStatement", - "src": "6575:54:18" + "src": "796:33:18" } ] }, - "name": "abi_decode_available_length_t_string_memory_ptr", - "nativeSrc": "6210:425:18", + "name": "abi_decode_t_address", + "nativeSrc": "696:139:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "src", - "nativeSrc": "6267:3:18", + "name": "offset", + "nativeSrc": "726:6:18", "nodeType": "YulTypedName", - "src": "6267:3:18", + "src": "726:6:18", "type": "" }, { - "name": "length", - "nativeSrc": "6272:6:18", + "name": "end", + "nativeSrc": "734:3:18", "nodeType": "YulTypedName", - "src": "6272:6:18", + "src": "734:3:18", "type": "" - }, + } + ], + "returnVariables": [ { - "name": "end", - "nativeSrc": "6280:3:18", + "name": "value", + "nativeSrc": "742:5:18", + "nodeType": "YulTypedName", + "src": "742:5:18", + "type": "" + } + ], + "src": "696:139:18" + }, + { + "body": { + "nativeSrc": "886:32:18", + "nodeType": "YulBlock", + "src": "886:32:18", + "statements": [ + { + "nativeSrc": "896:16:18", + "nodeType": "YulAssignment", + "src": "896:16:18", + "value": { + "name": "value", + "nativeSrc": "907:5:18", + "nodeType": "YulIdentifier", + "src": "907:5:18" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "896:7:18", + "nodeType": "YulIdentifier", + "src": "896:7:18" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "841:77:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "868:5:18", "nodeType": "YulTypedName", - "src": "6280:3:18", + "src": "868:5:18", "type": "" } ], "returnVariables": [ { - "name": "array", - "nativeSrc": "6288:5:18", + "name": "cleaned", + "nativeSrc": "878:7:18", "nodeType": "YulTypedName", - "src": "6288:5:18", + "src": "878:7:18", "type": "" } ], - "src": "6210:425:18" + "src": "841:77:18" }, { "body": { - "nativeSrc": "6717:278:18", + "nativeSrc": "967:79:18", "nodeType": "YulBlock", - "src": "6717:278:18", + "src": "967:79:18", "statements": [ { "body": { - "nativeSrc": "6766:83:18", + "nativeSrc": "1024:16:18", "nodeType": "YulBlock", - "src": "6766:83:18", + "src": "1024:16:18", "statements": [ { "expression": { - "arguments": [], + "arguments": [ + { + "kind": "number", + "nativeSrc": "1033:1:18", + "nodeType": "YulLiteral", + "src": "1033:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1036:1:18", + "nodeType": "YulLiteral", + "src": "1036:1:18", + "type": "", + "value": "0" + } + ], "functionName": { - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "6768:77:18", + "name": "revert", + "nativeSrc": "1026:6:18", "nodeType": "YulIdentifier", - "src": "6768:77:18" + "src": "1026:6:18" }, - "nativeSrc": "6768:79:18", + "nativeSrc": "1026:12:18", "nodeType": "YulFunctionCall", - "src": "6768:79:18" + "src": "1026:12:18" }, - "nativeSrc": "6768:79:18", + "nativeSrc": "1026:12:18", "nodeType": "YulExpressionStatement", - "src": "6768:79:18" + "src": "1026:12:18" } ] }, @@ -64260,223 +64979,195 @@ "arguments": [ { "arguments": [ + { + "name": "value", + "nativeSrc": "990:5:18", + "nodeType": "YulIdentifier", + "src": "990:5:18" + }, { "arguments": [ { - "name": "offset", - "nativeSrc": "6745:6:18", + "name": "value", + "nativeSrc": "1015:5:18", "nodeType": "YulIdentifier", - "src": "6745:6:18" - }, - { - "kind": "number", - "nativeSrc": "6753:4:18", - "nodeType": "YulLiteral", - "src": "6753:4:18", - "type": "", - "value": "0x1f" + "src": "1015:5:18" } ], "functionName": { - "name": "add", - "nativeSrc": "6741:3:18", + "name": "cleanup_t_uint256", + "nativeSrc": "997:17:18", "nodeType": "YulIdentifier", - "src": "6741:3:18" + "src": "997:17:18" }, - "nativeSrc": "6741:17:18", + "nativeSrc": "997:24:18", "nodeType": "YulFunctionCall", - "src": "6741:17:18" - }, - { - "name": "end", - "nativeSrc": "6760:3:18", - "nodeType": "YulIdentifier", - "src": "6760:3:18" + "src": "997:24:18" } ], "functionName": { - "name": "slt", - "nativeSrc": "6737:3:18", + "name": "eq", + "nativeSrc": "987:2:18", "nodeType": "YulIdentifier", - "src": "6737:3:18" + "src": "987:2:18" }, - "nativeSrc": "6737:27:18", + "nativeSrc": "987:35:18", "nodeType": "YulFunctionCall", - "src": "6737:27:18" + "src": "987:35:18" } ], "functionName": { "name": "iszero", - "nativeSrc": "6730:6:18", + "nativeSrc": "980:6:18", "nodeType": "YulIdentifier", - "src": "6730:6:18" + "src": "980:6:18" }, - "nativeSrc": "6730:35:18", + "nativeSrc": "980:43:18", "nodeType": "YulFunctionCall", - "src": "6730:35:18" + "src": "980:43:18" }, - "nativeSrc": "6727:122:18", + "nativeSrc": "977:63:18", "nodeType": "YulIf", - "src": "6727:122:18" - }, + "src": "977:63:18" + } + ] + }, + "name": "validator_revert_t_uint256", + "nativeSrc": "924:122:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "960:5:18", + "nodeType": "YulTypedName", + "src": "960:5:18", + "type": "" + } + ], + "src": "924:122:18" + }, + { + "body": { + "nativeSrc": "1104:87:18", + "nodeType": "YulBlock", + "src": "1104:87:18", + "statements": [ { - "nativeSrc": "6858:34:18", - "nodeType": "YulVariableDeclaration", - "src": "6858:34:18", + "nativeSrc": "1114:29:18", + "nodeType": "YulAssignment", + "src": "1114:29:18", "value": { "arguments": [ { "name": "offset", - "nativeSrc": "6885:6:18", + "nativeSrc": "1136:6:18", "nodeType": "YulIdentifier", - "src": "6885:6:18" + "src": "1136:6:18" } ], "functionName": { "name": "calldataload", - "nativeSrc": "6872:12:18", + "nativeSrc": "1123:12:18", "nodeType": "YulIdentifier", - "src": "6872:12:18" + "src": "1123:12:18" }, - "nativeSrc": "6872:20:18", + "nativeSrc": "1123:20:18", "nodeType": "YulFunctionCall", - "src": "6872:20:18" + "src": "1123:20:18" }, - "variables": [ + "variableNames": [ { - "name": "length", - "nativeSrc": "6862:6:18", - "nodeType": "YulTypedName", - "src": "6862:6:18", - "type": "" + "name": "value", + "nativeSrc": "1114:5:18", + "nodeType": "YulIdentifier", + "src": "1114:5:18" } ] }, { - "nativeSrc": "6901:88:18", - "nodeType": "YulAssignment", - "src": "6901:88:18", - "value": { + "expression": { "arguments": [ { - "arguments": [ - { - "name": "offset", - "nativeSrc": "6962:6:18", - "nodeType": "YulIdentifier", - "src": "6962:6:18" - }, - { - "kind": "number", - "nativeSrc": "6970:4:18", - "nodeType": "YulLiteral", - "src": "6970:4:18", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6958:3:18", - "nodeType": "YulIdentifier", - "src": "6958:3:18" - }, - "nativeSrc": "6958:17:18", - "nodeType": "YulFunctionCall", - "src": "6958:17:18" - }, - { - "name": "length", - "nativeSrc": "6977:6:18", - "nodeType": "YulIdentifier", - "src": "6977:6:18" - }, - { - "name": "end", - "nativeSrc": "6985:3:18", + "name": "value", + "nativeSrc": "1179:5:18", "nodeType": "YulIdentifier", - "src": "6985:3:18" + "src": "1179:5:18" } ], "functionName": { - "name": "abi_decode_available_length_t_string_memory_ptr", - "nativeSrc": "6910:47:18", + "name": "validator_revert_t_uint256", + "nativeSrc": "1152:26:18", "nodeType": "YulIdentifier", - "src": "6910:47:18" + "src": "1152:26:18" }, - "nativeSrc": "6910:79:18", + "nativeSrc": "1152:33:18", "nodeType": "YulFunctionCall", - "src": "6910:79:18" + "src": "1152:33:18" }, - "variableNames": [ - { - "name": "array", - "nativeSrc": "6901:5:18", - "nodeType": "YulIdentifier", - "src": "6901:5:18" - } - ] + "nativeSrc": "1152:33:18", + "nodeType": "YulExpressionStatement", + "src": "1152:33:18" } ] }, - "name": "abi_decode_t_string_memory_ptr", - "nativeSrc": "6655:340:18", + "name": "abi_decode_t_uint256", + "nativeSrc": "1052:139:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", - "nativeSrc": "6695:6:18", + "nativeSrc": "1082:6:18", "nodeType": "YulTypedName", - "src": "6695:6:18", + "src": "1082:6:18", "type": "" }, { "name": "end", - "nativeSrc": "6703:3:18", + "nativeSrc": "1090:3:18", "nodeType": "YulTypedName", - "src": "6703:3:18", + "src": "1090:3:18", "type": "" } ], "returnVariables": [ { - "name": "array", - "nativeSrc": "6711:5:18", + "name": "value", + "nativeSrc": "1098:5:18", "nodeType": "YulTypedName", - "src": "6711:5:18", + "src": "1098:5:18", "type": "" } ], - "src": "6655:340:18" + "src": "1052:139:18" }, { "body": { - "nativeSrc": "7094:561:18", + "nativeSrc": "1280:391:18", "nodeType": "YulBlock", - "src": "7094:561:18", + "src": "1280:391:18", "statements": [ { "body": { - "nativeSrc": "7140:83:18", + "nativeSrc": "1326:83:18", "nodeType": "YulBlock", - "src": "7140:83:18", + "src": "1326:83:18", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "7142:77:18", + "nativeSrc": "1328:77:18", "nodeType": "YulIdentifier", - "src": "7142:77:18" + "src": "1328:77:18" }, - "nativeSrc": "7142:79:18", + "nativeSrc": "1328:79:18", "nodeType": "YulFunctionCall", - "src": "7142:79:18" + "src": "1328:79:18" }, - "nativeSrc": "7142:79:18", + "nativeSrc": "1328:79:18", "nodeType": "YulExpressionStatement", - "src": "7142:79:18" + "src": "1328:79:18" } ] }, @@ -64486,305 +65177,217 @@ "arguments": [ { "name": "dataEnd", - "nativeSrc": "7115:7:18", + "nativeSrc": "1301:7:18", "nodeType": "YulIdentifier", - "src": "7115:7:18" + "src": "1301:7:18" }, { "name": "headStart", - "nativeSrc": "7124:9:18", + "nativeSrc": "1310:9:18", "nodeType": "YulIdentifier", - "src": "7124:9:18" + "src": "1310:9:18" } ], "functionName": { "name": "sub", - "nativeSrc": "7111:3:18", + "nativeSrc": "1297:3:18", "nodeType": "YulIdentifier", - "src": "7111:3:18" + "src": "1297:3:18" }, - "nativeSrc": "7111:23:18", + "nativeSrc": "1297:23:18", "nodeType": "YulFunctionCall", - "src": "7111:23:18" + "src": "1297:23:18" }, { "kind": "number", - "nativeSrc": "7136:2:18", + "nativeSrc": "1322:2:18", "nodeType": "YulLiteral", - "src": "7136:2:18", + "src": "1322:2:18", "type": "", "value": "64" } ], "functionName": { "name": "slt", - "nativeSrc": "7107:3:18", + "nativeSrc": "1293:3:18", "nodeType": "YulIdentifier", - "src": "7107:3:18" + "src": "1293:3:18" }, - "nativeSrc": "7107:32:18", + "nativeSrc": "1293:32:18", "nodeType": "YulFunctionCall", - "src": "7107:32:18" + "src": "1293:32:18" }, - "nativeSrc": "7104:119:18", + "nativeSrc": "1290:119:18", "nodeType": "YulIf", - "src": "7104:119:18" + "src": "1290:119:18" }, { - "nativeSrc": "7233:117:18", + "nativeSrc": "1419:117:18", "nodeType": "YulBlock", - "src": "7233:117:18", + "src": "1419:117:18", "statements": [ { - "nativeSrc": "7248:15:18", + "nativeSrc": "1434:15:18", "nodeType": "YulVariableDeclaration", - "src": "7248:15:18", + "src": "1434:15:18", "value": { "kind": "number", - "nativeSrc": "7262:1:18", + "nativeSrc": "1448:1:18", "nodeType": "YulLiteral", - "src": "7262:1:18", + "src": "1448:1:18", "type": "", "value": "0" }, "variables": [ { "name": "offset", - "nativeSrc": "7252:6:18", + "nativeSrc": "1438:6:18", "nodeType": "YulTypedName", - "src": "7252:6:18", + "src": "1438:6:18", "type": "" } ] }, { - "nativeSrc": "7277:63:18", + "nativeSrc": "1463:63:18", "nodeType": "YulAssignment", - "src": "7277:63:18", + "src": "1463:63:18", "value": { "arguments": [ { "arguments": [ { "name": "headStart", - "nativeSrc": "7312:9:18", + "nativeSrc": "1498:9:18", "nodeType": "YulIdentifier", - "src": "7312:9:18" + "src": "1498:9:18" }, { "name": "offset", - "nativeSrc": "7323:6:18", + "nativeSrc": "1509:6:18", "nodeType": "YulIdentifier", - "src": "7323:6:18" + "src": "1509:6:18" } ], "functionName": { "name": "add", - "nativeSrc": "7308:3:18", + "nativeSrc": "1494:3:18", "nodeType": "YulIdentifier", - "src": "7308:3:18" + "src": "1494:3:18" }, - "nativeSrc": "7308:22:18", + "nativeSrc": "1494:22:18", "nodeType": "YulFunctionCall", - "src": "7308:22:18" + "src": "1494:22:18" }, { "name": "dataEnd", - "nativeSrc": "7332:7:18", + "nativeSrc": "1518:7:18", "nodeType": "YulIdentifier", - "src": "7332:7:18" + "src": "1518:7:18" } ], "functionName": { - "name": "abi_decode_t_uint256", - "nativeSrc": "7287:20:18", + "name": "abi_decode_t_address", + "nativeSrc": "1473:20:18", "nodeType": "YulIdentifier", - "src": "7287:20:18" + "src": "1473:20:18" }, - "nativeSrc": "7287:53:18", + "nativeSrc": "1473:53:18", "nodeType": "YulFunctionCall", - "src": "7287:53:18" + "src": "1473:53:18" }, "variableNames": [ { "name": "value0", - "nativeSrc": "7277:6:18", + "nativeSrc": "1463:6:18", "nodeType": "YulIdentifier", - "src": "7277:6:18" + "src": "1463:6:18" } ] } ] }, { - "nativeSrc": "7360:288:18", + "nativeSrc": "1546:118:18", "nodeType": "YulBlock", - "src": "7360:288:18", + "src": "1546:118:18", "statements": [ { - "nativeSrc": "7375:46:18", + "nativeSrc": "1561:16:18", "nodeType": "YulVariableDeclaration", - "src": "7375:46:18", + "src": "1561:16:18", "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7406:9:18", - "nodeType": "YulIdentifier", - "src": "7406:9:18" - }, - { - "kind": "number", - "nativeSrc": "7417:2:18", - "nodeType": "YulLiteral", - "src": "7417:2:18", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7402:3:18", - "nodeType": "YulIdentifier", - "src": "7402:3:18" - }, - "nativeSrc": "7402:18:18", - "nodeType": "YulFunctionCall", - "src": "7402:18:18" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "7389:12:18", - "nodeType": "YulIdentifier", - "src": "7389:12:18" - }, - "nativeSrc": "7389:32:18", - "nodeType": "YulFunctionCall", - "src": "7389:32:18" + "kind": "number", + "nativeSrc": "1575:2:18", + "nodeType": "YulLiteral", + "src": "1575:2:18", + "type": "", + "value": "32" }, "variables": [ { "name": "offset", - "nativeSrc": "7379:6:18", + "nativeSrc": "1565:6:18", "nodeType": "YulTypedName", - "src": "7379:6:18", + "src": "1565:6:18", "type": "" } ] }, { - "body": { - "nativeSrc": "7468:83:18", - "nodeType": "YulBlock", - "src": "7468:83:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "7470:77:18", - "nodeType": "YulIdentifier", - "src": "7470:77:18" - }, - "nativeSrc": "7470:79:18", - "nodeType": "YulFunctionCall", - "src": "7470:79:18" - }, - "nativeSrc": "7470:79:18", - "nodeType": "YulExpressionStatement", - "src": "7470:79:18" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "7440:6:18", - "nodeType": "YulIdentifier", - "src": "7440:6:18" - }, - { - "kind": "number", - "nativeSrc": "7448:18:18", - "nodeType": "YulLiteral", - "src": "7448:18:18", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "7437:2:18", - "nodeType": "YulIdentifier", - "src": "7437:2:18" - }, - "nativeSrc": "7437:30:18", - "nodeType": "YulFunctionCall", - "src": "7437:30:18" - }, - "nativeSrc": "7434:117:18", - "nodeType": "YulIf", - "src": "7434:117:18" - }, - { - "nativeSrc": "7565:73:18", + "nativeSrc": "1591:63:18", "nodeType": "YulAssignment", - "src": "7565:73:18", + "src": "1591:63:18", "value": { "arguments": [ { "arguments": [ { "name": "headStart", - "nativeSrc": "7610:9:18", + "nativeSrc": "1626:9:18", "nodeType": "YulIdentifier", - "src": "7610:9:18" + "src": "1626:9:18" }, { "name": "offset", - "nativeSrc": "7621:6:18", + "nativeSrc": "1637:6:18", "nodeType": "YulIdentifier", - "src": "7621:6:18" + "src": "1637:6:18" } ], "functionName": { "name": "add", - "nativeSrc": "7606:3:18", + "nativeSrc": "1622:3:18", "nodeType": "YulIdentifier", - "src": "7606:3:18" + "src": "1622:3:18" }, - "nativeSrc": "7606:22:18", + "nativeSrc": "1622:22:18", "nodeType": "YulFunctionCall", - "src": "7606:22:18" + "src": "1622:22:18" }, { "name": "dataEnd", - "nativeSrc": "7630:7:18", + "nativeSrc": "1646:7:18", "nodeType": "YulIdentifier", - "src": "7630:7:18" + "src": "1646:7:18" } ], "functionName": { - "name": "abi_decode_t_string_memory_ptr", - "nativeSrc": "7575:30:18", + "name": "abi_decode_t_uint256", + "nativeSrc": "1601:20:18", "nodeType": "YulIdentifier", - "src": "7575:30:18" + "src": "1601:20:18" }, - "nativeSrc": "7575:63:18", + "nativeSrc": "1601:53:18", "nodeType": "YulFunctionCall", - "src": "7575:63:18" + "src": "1601:53:18" }, "variableNames": [ { "name": "value1", - "nativeSrc": "7565:6:18", + "nativeSrc": "1591:6:18", "nodeType": "YulIdentifier", - "src": "7565:6:18" + "src": "1591:6:18" } ] } @@ -64792,138 +65395,360 @@ } ] }, - "name": "abi_decode_tuple_t_uint256t_string_memory_ptr", - "nativeSrc": "7001:654:18", + "name": "abi_decode_tuple_t_addresst_uint256", + "nativeSrc": "1197:474:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1242:9:18", + "nodeType": "YulTypedName", + "src": "1242:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "1253:7:18", + "nodeType": "YulTypedName", + "src": "1253:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "1265:6:18", + "nodeType": "YulTypedName", + "src": "1265:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "1273:6:18", + "nodeType": "YulTypedName", + "src": "1273:6:18", + "type": "" + } + ], + "src": "1197:474:18" + }, + { + "body": { + "nativeSrc": "1742:53:18", + "nodeType": "YulBlock", + "src": "1742:53:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1759:3:18", + "nodeType": "YulIdentifier", + "src": "1759:3:18" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1782:5:18", + "nodeType": "YulIdentifier", + "src": "1782:5:18" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "1764:17:18", + "nodeType": "YulIdentifier", + "src": "1764:17:18" + }, + "nativeSrc": "1764:24:18", + "nodeType": "YulFunctionCall", + "src": "1764:24:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1752:6:18", + "nodeType": "YulIdentifier", + "src": "1752:6:18" + }, + "nativeSrc": "1752:37:18", + "nodeType": "YulFunctionCall", + "src": "1752:37:18" + }, + "nativeSrc": "1752:37:18", + "nodeType": "YulExpressionStatement", + "src": "1752:37:18" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "1677:118:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1730:5:18", + "nodeType": "YulTypedName", + "src": "1730:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "1737:3:18", + "nodeType": "YulTypedName", + "src": "1737:3:18", + "type": "" + } + ], + "src": "1677:118:18" + }, + { + "body": { + "nativeSrc": "1899:124:18", + "nodeType": "YulBlock", + "src": "1899:124:18", + "statements": [ + { + "nativeSrc": "1909:26:18", + "nodeType": "YulAssignment", + "src": "1909:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1921:9:18", + "nodeType": "YulIdentifier", + "src": "1921:9:18" + }, + { + "kind": "number", + "nativeSrc": "1932:2:18", + "nodeType": "YulLiteral", + "src": "1932:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1917:3:18", + "nodeType": "YulIdentifier", + "src": "1917:3:18" + }, + "nativeSrc": "1917:18:18", + "nodeType": "YulFunctionCall", + "src": "1917:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1909:4:18", + "nodeType": "YulIdentifier", + "src": "1909:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1989:6:18", + "nodeType": "YulIdentifier", + "src": "1989:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2002:9:18", + "nodeType": "YulIdentifier", + "src": "2002:9:18" + }, + { + "kind": "number", + "nativeSrc": "2013:1:18", + "nodeType": "YulLiteral", + "src": "2013:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1998:3:18", + "nodeType": "YulIdentifier", + "src": "1998:3:18" + }, + "nativeSrc": "1998:17:18", + "nodeType": "YulFunctionCall", + "src": "1998:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "1945:43:18", + "nodeType": "YulIdentifier", + "src": "1945:43:18" + }, + "nativeSrc": "1945:71:18", + "nodeType": "YulFunctionCall", + "src": "1945:71:18" + }, + "nativeSrc": "1945:71:18", + "nodeType": "YulExpressionStatement", + "src": "1945:71:18" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nativeSrc": "1801:222:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", - "nativeSrc": "7056:9:18", + "nativeSrc": "1871:9:18", "nodeType": "YulTypedName", - "src": "7056:9:18", + "src": "1871:9:18", "type": "" }, { - "name": "dataEnd", - "nativeSrc": "7067:7:18", + "name": "value0", + "nativeSrc": "1883:6:18", "nodeType": "YulTypedName", - "src": "7067:7:18", + "src": "1883:6:18", "type": "" } ], "returnVariables": [ { - "name": "value0", - "nativeSrc": "7079:6:18", - "nodeType": "YulTypedName", - "src": "7079:6:18", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "7087:6:18", + "name": "tail", + "nativeSrc": "1894:4:18", "nodeType": "YulTypedName", - "src": "7087:6:18", + "src": "1894:4:18", "type": "" } ], - "src": "7001:654:18" + "src": "1801:222:18" }, { "body": { - "nativeSrc": "7706:32:18", + "nativeSrc": "2073:105:18", "nodeType": "YulBlock", - "src": "7706:32:18", + "src": "2073:105:18", "statements": [ { - "nativeSrc": "7716:16:18", + "nativeSrc": "2083:89:18", "nodeType": "YulAssignment", - "src": "7716:16:18", + "src": "2083:89:18", "value": { - "name": "value", - "nativeSrc": "7727:5:18", - "nodeType": "YulIdentifier", - "src": "7727:5:18" + "arguments": [ + { + "name": "value", + "nativeSrc": "2098:5:18", + "nodeType": "YulIdentifier", + "src": "2098:5:18" + }, + { + "kind": "number", + "nativeSrc": "2105:66:18", + "nodeType": "YulLiteral", + "src": "2105:66:18", + "type": "", + "value": "0xffffffff00000000000000000000000000000000000000000000000000000000" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2094:3:18", + "nodeType": "YulIdentifier", + "src": "2094:3:18" + }, + "nativeSrc": "2094:78:18", + "nodeType": "YulFunctionCall", + "src": "2094:78:18" }, "variableNames": [ { "name": "cleaned", - "nativeSrc": "7716:7:18", + "nativeSrc": "2083:7:18", "nodeType": "YulIdentifier", - "src": "7716:7:18" + "src": "2083:7:18" } ] } ] }, - "name": "cleanup_t_bytes32", - "nativeSrc": "7661:77:18", + "name": "cleanup_t_bytes4", + "nativeSrc": "2029:149:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", - "nativeSrc": "7688:5:18", + "nativeSrc": "2055:5:18", "nodeType": "YulTypedName", - "src": "7688:5:18", + "src": "2055:5:18", "type": "" } ], "returnVariables": [ { "name": "cleaned", - "nativeSrc": "7698:7:18", + "nativeSrc": "2065:7:18", "nodeType": "YulTypedName", - "src": "7698:7:18", + "src": "2065:7:18", "type": "" } ], - "src": "7661:77:18" + "src": "2029:149:18" }, { "body": { - "nativeSrc": "7787:79:18", + "nativeSrc": "2226:78:18", "nodeType": "YulBlock", - "src": "7787:79:18", + "src": "2226:78:18", "statements": [ { "body": { - "nativeSrc": "7844:16:18", + "nativeSrc": "2282:16:18", "nodeType": "YulBlock", - "src": "7844:16:18", + "src": "2282:16:18", "statements": [ { "expression": { "arguments": [ { "kind": "number", - "nativeSrc": "7853:1:18", + "nativeSrc": "2291:1:18", "nodeType": "YulLiteral", - "src": "7853:1:18", + "src": "2291:1:18", "type": "", "value": "0" }, { "kind": "number", - "nativeSrc": "7856:1:18", + "nativeSrc": "2294:1:18", "nodeType": "YulLiteral", - "src": "7856:1:18", + "src": "2294:1:18", "type": "", "value": "0" } ], "functionName": { "name": "revert", - "nativeSrc": "7846:6:18", + "nativeSrc": "2284:6:18", "nodeType": "YulIdentifier", - "src": "7846:6:18" + "src": "2284:6:18" }, - "nativeSrc": "7846:12:18", + "nativeSrc": "2284:12:18", "nodeType": "YulFunctionCall", - "src": "7846:12:18" + "src": "2284:12:18" }, - "nativeSrc": "7846:12:18", + "nativeSrc": "2284:12:18", "nodeType": "YulExpressionStatement", - "src": "7846:12:18" + "src": "2284:12:18" } ] }, @@ -64933,106 +65758,106 @@ "arguments": [ { "name": "value", - "nativeSrc": "7810:5:18", + "nativeSrc": "2249:5:18", "nodeType": "YulIdentifier", - "src": "7810:5:18" + "src": "2249:5:18" }, { "arguments": [ { "name": "value", - "nativeSrc": "7835:5:18", + "nativeSrc": "2273:5:18", "nodeType": "YulIdentifier", - "src": "7835:5:18" + "src": "2273:5:18" } ], "functionName": { - "name": "cleanup_t_bytes32", - "nativeSrc": "7817:17:18", + "name": "cleanup_t_bytes4", + "nativeSrc": "2256:16:18", "nodeType": "YulIdentifier", - "src": "7817:17:18" + "src": "2256:16:18" }, - "nativeSrc": "7817:24:18", + "nativeSrc": "2256:23:18", "nodeType": "YulFunctionCall", - "src": "7817:24:18" + "src": "2256:23:18" } ], "functionName": { "name": "eq", - "nativeSrc": "7807:2:18", + "nativeSrc": "2246:2:18", "nodeType": "YulIdentifier", - "src": "7807:2:18" + "src": "2246:2:18" }, - "nativeSrc": "7807:35:18", + "nativeSrc": "2246:34:18", "nodeType": "YulFunctionCall", - "src": "7807:35:18" + "src": "2246:34:18" } ], "functionName": { "name": "iszero", - "nativeSrc": "7800:6:18", + "nativeSrc": "2239:6:18", "nodeType": "YulIdentifier", - "src": "7800:6:18" + "src": "2239:6:18" }, - "nativeSrc": "7800:43:18", + "nativeSrc": "2239:42:18", "nodeType": "YulFunctionCall", - "src": "7800:43:18" + "src": "2239:42:18" }, - "nativeSrc": "7797:63:18", + "nativeSrc": "2236:62:18", "nodeType": "YulIf", - "src": "7797:63:18" + "src": "2236:62:18" } ] }, - "name": "validator_revert_t_bytes32", - "nativeSrc": "7744:122:18", + "name": "validator_revert_t_bytes4", + "nativeSrc": "2184:120:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", - "nativeSrc": "7780:5:18", + "nativeSrc": "2219:5:18", "nodeType": "YulTypedName", - "src": "7780:5:18", + "src": "2219:5:18", "type": "" } ], - "src": "7744:122:18" + "src": "2184:120:18" }, { "body": { - "nativeSrc": "7924:87:18", + "nativeSrc": "2361:86:18", "nodeType": "YulBlock", - "src": "7924:87:18", + "src": "2361:86:18", "statements": [ { - "nativeSrc": "7934:29:18", + "nativeSrc": "2371:29:18", "nodeType": "YulAssignment", - "src": "7934:29:18", + "src": "2371:29:18", "value": { "arguments": [ { "name": "offset", - "nativeSrc": "7956:6:18", + "nativeSrc": "2393:6:18", "nodeType": "YulIdentifier", - "src": "7956:6:18" + "src": "2393:6:18" } ], "functionName": { "name": "calldataload", - "nativeSrc": "7943:12:18", + "nativeSrc": "2380:12:18", "nodeType": "YulIdentifier", - "src": "7943:12:18" + "src": "2380:12:18" }, - "nativeSrc": "7943:20:18", + "nativeSrc": "2380:20:18", "nodeType": "YulFunctionCall", - "src": "7943:20:18" + "src": "2380:20:18" }, "variableNames": [ { "name": "value", - "nativeSrc": "7934:5:18", + "nativeSrc": "2371:5:18", "nodeType": "YulIdentifier", - "src": "7934:5:18" + "src": "2371:5:18" } ] }, @@ -65041,85 +65866,85 @@ "arguments": [ { "name": "value", - "nativeSrc": "7999:5:18", + "nativeSrc": "2435:5:18", "nodeType": "YulIdentifier", - "src": "7999:5:18" + "src": "2435:5:18" } ], "functionName": { - "name": "validator_revert_t_bytes32", - "nativeSrc": "7972:26:18", + "name": "validator_revert_t_bytes4", + "nativeSrc": "2409:25:18", "nodeType": "YulIdentifier", - "src": "7972:26:18" + "src": "2409:25:18" }, - "nativeSrc": "7972:33:18", + "nativeSrc": "2409:32:18", "nodeType": "YulFunctionCall", - "src": "7972:33:18" + "src": "2409:32:18" }, - "nativeSrc": "7972:33:18", + "nativeSrc": "2409:32:18", "nodeType": "YulExpressionStatement", - "src": "7972:33:18" + "src": "2409:32:18" } ] }, - "name": "abi_decode_t_bytes32", - "nativeSrc": "7872:139:18", + "name": "abi_decode_t_bytes4", + "nativeSrc": "2310:137:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", - "nativeSrc": "7902:6:18", + "nativeSrc": "2339:6:18", "nodeType": "YulTypedName", - "src": "7902:6:18", + "src": "2339:6:18", "type": "" }, { "name": "end", - "nativeSrc": "7910:3:18", + "nativeSrc": "2347:3:18", "nodeType": "YulTypedName", - "src": "7910:3:18", + "src": "2347:3:18", "type": "" } ], "returnVariables": [ { "name": "value", - "nativeSrc": "7918:5:18", + "nativeSrc": "2355:5:18", "nodeType": "YulTypedName", - "src": "7918:5:18", + "src": "2355:5:18", "type": "" } ], - "src": "7872:139:18" + "src": "2310:137:18" }, { "body": { - "nativeSrc": "8083:263:18", + "nativeSrc": "2518:262:18", "nodeType": "YulBlock", - "src": "8083:263:18", + "src": "2518:262:18", "statements": [ { "body": { - "nativeSrc": "8129:83:18", + "nativeSrc": "2564:83:18", "nodeType": "YulBlock", - "src": "8129:83:18", + "src": "2564:83:18", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "8131:77:18", + "nativeSrc": "2566:77:18", "nodeType": "YulIdentifier", - "src": "8131:77:18" + "src": "2566:77:18" }, - "nativeSrc": "8131:79:18", + "nativeSrc": "2566:79:18", "nodeType": "YulFunctionCall", - "src": "8131:79:18" + "src": "2566:79:18" }, - "nativeSrc": "8131:79:18", + "nativeSrc": "2566:79:18", "nodeType": "YulExpressionStatement", - "src": "8131:79:18" + "src": "2566:79:18" } ] }, @@ -65129,131 +65954,131 @@ "arguments": [ { "name": "dataEnd", - "nativeSrc": "8104:7:18", + "nativeSrc": "2539:7:18", "nodeType": "YulIdentifier", - "src": "8104:7:18" + "src": "2539:7:18" }, { "name": "headStart", - "nativeSrc": "8113:9:18", + "nativeSrc": "2548:9:18", "nodeType": "YulIdentifier", - "src": "8113:9:18" + "src": "2548:9:18" } ], "functionName": { "name": "sub", - "nativeSrc": "8100:3:18", + "nativeSrc": "2535:3:18", "nodeType": "YulIdentifier", - "src": "8100:3:18" + "src": "2535:3:18" }, - "nativeSrc": "8100:23:18", + "nativeSrc": "2535:23:18", "nodeType": "YulFunctionCall", - "src": "8100:23:18" + "src": "2535:23:18" }, { "kind": "number", - "nativeSrc": "8125:2:18", + "nativeSrc": "2560:2:18", "nodeType": "YulLiteral", - "src": "8125:2:18", + "src": "2560:2:18", "type": "", "value": "32" } ], "functionName": { "name": "slt", - "nativeSrc": "8096:3:18", + "nativeSrc": "2531:3:18", "nodeType": "YulIdentifier", - "src": "8096:3:18" + "src": "2531:3:18" }, - "nativeSrc": "8096:32:18", + "nativeSrc": "2531:32:18", "nodeType": "YulFunctionCall", - "src": "8096:32:18" + "src": "2531:32:18" }, - "nativeSrc": "8093:119:18", + "nativeSrc": "2528:119:18", "nodeType": "YulIf", - "src": "8093:119:18" + "src": "2528:119:18" }, { - "nativeSrc": "8222:117:18", + "nativeSrc": "2657:116:18", "nodeType": "YulBlock", - "src": "8222:117:18", + "src": "2657:116:18", "statements": [ { - "nativeSrc": "8237:15:18", + "nativeSrc": "2672:15:18", "nodeType": "YulVariableDeclaration", - "src": "8237:15:18", + "src": "2672:15:18", "value": { "kind": "number", - "nativeSrc": "8251:1:18", + "nativeSrc": "2686:1:18", "nodeType": "YulLiteral", - "src": "8251:1:18", + "src": "2686:1:18", "type": "", "value": "0" }, "variables": [ { "name": "offset", - "nativeSrc": "8241:6:18", + "nativeSrc": "2676:6:18", "nodeType": "YulTypedName", - "src": "8241:6:18", + "src": "2676:6:18", "type": "" } ] }, { - "nativeSrc": "8266:63:18", + "nativeSrc": "2701:62:18", "nodeType": "YulAssignment", - "src": "8266:63:18", + "src": "2701:62:18", "value": { "arguments": [ { "arguments": [ { "name": "headStart", - "nativeSrc": "8301:9:18", + "nativeSrc": "2735:9:18", "nodeType": "YulIdentifier", - "src": "8301:9:18" + "src": "2735:9:18" }, { "name": "offset", - "nativeSrc": "8312:6:18", + "nativeSrc": "2746:6:18", "nodeType": "YulIdentifier", - "src": "8312:6:18" + "src": "2746:6:18" } ], "functionName": { "name": "add", - "nativeSrc": "8297:3:18", + "nativeSrc": "2731:3:18", "nodeType": "YulIdentifier", - "src": "8297:3:18" + "src": "2731:3:18" }, - "nativeSrc": "8297:22:18", + "nativeSrc": "2731:22:18", "nodeType": "YulFunctionCall", - "src": "8297:22:18" + "src": "2731:22:18" }, { "name": "dataEnd", - "nativeSrc": "8321:7:18", + "nativeSrc": "2755:7:18", "nodeType": "YulIdentifier", - "src": "8321:7:18" + "src": "2755:7:18" } ], "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "8276:20:18", + "name": "abi_decode_t_bytes4", + "nativeSrc": "2711:19:18", "nodeType": "YulIdentifier", - "src": "8276:20:18" + "src": "2711:19:18" }, - "nativeSrc": "8276:53:18", + "nativeSrc": "2711:52:18", "nodeType": "YulFunctionCall", - "src": "8276:53:18" + "src": "2711:52:18" }, "variableNames": [ { "name": "value0", - "nativeSrc": "8266:6:18", + "nativeSrc": "2701:6:18", "nodeType": "YulIdentifier", - "src": "8266:6:18" + "src": "2701:6:18" } ] } @@ -65261,993 +66086,341 @@ } ] }, - "name": "abi_decode_tuple_t_bytes32", - "nativeSrc": "8017:329:18", + "name": "abi_decode_tuple_t_bytes4", + "nativeSrc": "2453:327:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", - "nativeSrc": "8053:9:18", + "nativeSrc": "2488:9:18", "nodeType": "YulTypedName", - "src": "8053:9:18", + "src": "2488:9:18", "type": "" }, { "name": "dataEnd", - "nativeSrc": "8064:7:18", + "nativeSrc": "2499:7:18", "nodeType": "YulTypedName", - "src": "8064:7:18", + "src": "2499:7:18", "type": "" } ], "returnVariables": [ { "name": "value0", - "nativeSrc": "8076:6:18", - "nodeType": "YulTypedName", - "src": "8076:6:18", - "type": "" - } - ], - "src": "8017:329:18" - }, - { - "body": { - "nativeSrc": "8417:53:18", - "nodeType": "YulBlock", - "src": "8417:53:18", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "8434:3:18", - "nodeType": "YulIdentifier", - "src": "8434:3:18" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "8457:5:18", - "nodeType": "YulIdentifier", - "src": "8457:5:18" - } - ], - "functionName": { - "name": "cleanup_t_bytes32", - "nativeSrc": "8439:17:18", - "nodeType": "YulIdentifier", - "src": "8439:17:18" - }, - "nativeSrc": "8439:24:18", - "nodeType": "YulFunctionCall", - "src": "8439:24:18" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "8427:6:18", - "nodeType": "YulIdentifier", - "src": "8427:6:18" - }, - "nativeSrc": "8427:37:18", - "nodeType": "YulFunctionCall", - "src": "8427:37:18" - }, - "nativeSrc": "8427:37:18", - "nodeType": "YulExpressionStatement", - "src": "8427:37:18" - } - ] - }, - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "8352:118:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "8405:5:18", - "nodeType": "YulTypedName", - "src": "8405:5:18", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "8412:3:18", - "nodeType": "YulTypedName", - "src": "8412:3:18", - "type": "" - } - ], - "src": "8352:118:18" - }, - { - "body": { - "nativeSrc": "8574:124:18", - "nodeType": "YulBlock", - "src": "8574:124:18", - "statements": [ - { - "nativeSrc": "8584:26:18", - "nodeType": "YulAssignment", - "src": "8584:26:18", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8596:9:18", - "nodeType": "YulIdentifier", - "src": "8596:9:18" - }, - { - "kind": "number", - "nativeSrc": "8607:2:18", - "nodeType": "YulLiteral", - "src": "8607:2:18", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8592:3:18", - "nodeType": "YulIdentifier", - "src": "8592:3:18" - }, - "nativeSrc": "8592:18:18", - "nodeType": "YulFunctionCall", - "src": "8592:18:18" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "8584:4:18", - "nodeType": "YulIdentifier", - "src": "8584:4:18" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "8664:6:18", - "nodeType": "YulIdentifier", - "src": "8664:6:18" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8677:9:18", - "nodeType": "YulIdentifier", - "src": "8677:9:18" - }, - { - "kind": "number", - "nativeSrc": "8688:1:18", - "nodeType": "YulLiteral", - "src": "8688:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8673:3:18", - "nodeType": "YulIdentifier", - "src": "8673:3:18" - }, - "nativeSrc": "8673:17:18", - "nodeType": "YulFunctionCall", - "src": "8673:17:18" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "8620:43:18", - "nodeType": "YulIdentifier", - "src": "8620:43:18" - }, - "nativeSrc": "8620:71:18", - "nodeType": "YulFunctionCall", - "src": "8620:71:18" - }, - "nativeSrc": "8620:71:18", - "nodeType": "YulExpressionStatement", - "src": "8620:71:18" - } - ] - }, - "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", - "nativeSrc": "8476:222:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "8546:9:18", - "nodeType": "YulTypedName", - "src": "8546:9:18", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "8558:6:18", - "nodeType": "YulTypedName", - "src": "8558:6:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "8569:4:18", - "nodeType": "YulTypedName", - "src": "8569:4:18", - "type": "" - } - ], - "src": "8476:222:18" - }, - { - "body": { - "nativeSrc": "8786:229:18", - "nodeType": "YulBlock", - "src": "8786:229:18", - "statements": [ - { - "body": { - "nativeSrc": "8891:22:18", - "nodeType": "YulBlock", - "src": "8891:22:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "8893:16:18", - "nodeType": "YulIdentifier", - "src": "8893:16:18" - }, - "nativeSrc": "8893:18:18", - "nodeType": "YulFunctionCall", - "src": "8893:18:18" - }, - "nativeSrc": "8893:18:18", - "nodeType": "YulExpressionStatement", - "src": "8893:18:18" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "length", - "nativeSrc": "8863:6:18", - "nodeType": "YulIdentifier", - "src": "8863:6:18" - }, - { - "kind": "number", - "nativeSrc": "8871:18:18", - "nodeType": "YulLiteral", - "src": "8871:18:18", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "8860:2:18", - "nodeType": "YulIdentifier", - "src": "8860:2:18" - }, - "nativeSrc": "8860:30:18", - "nodeType": "YulFunctionCall", - "src": "8860:30:18" - }, - "nativeSrc": "8857:56:18", - "nodeType": "YulIf", - "src": "8857:56:18" - }, - { - "nativeSrc": "8923:25:18", - "nodeType": "YulAssignment", - "src": "8923:25:18", - "value": { - "arguments": [ - { - "name": "length", - "nativeSrc": "8935:6:18", - "nodeType": "YulIdentifier", - "src": "8935:6:18" - }, - { - "kind": "number", - "nativeSrc": "8943:4:18", - "nodeType": "YulLiteral", - "src": "8943:4:18", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "mul", - "nativeSrc": "8931:3:18", - "nodeType": "YulIdentifier", - "src": "8931:3:18" - }, - "nativeSrc": "8931:17:18", - "nodeType": "YulFunctionCall", - "src": "8931:17:18" - }, - "variableNames": [ - { - "name": "size", - "nativeSrc": "8923:4:18", - "nodeType": "YulIdentifier", - "src": "8923:4:18" - } - ] - }, - { - "nativeSrc": "8985:23:18", - "nodeType": "YulAssignment", - "src": "8985:23:18", - "value": { - "arguments": [ - { - "name": "size", - "nativeSrc": "8997:4:18", - "nodeType": "YulIdentifier", - "src": "8997:4:18" - }, - { - "kind": "number", - "nativeSrc": "9003:4:18", - "nodeType": "YulLiteral", - "src": "9003:4:18", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8993:3:18", - "nodeType": "YulIdentifier", - "src": "8993:3:18" - }, - "nativeSrc": "8993:15:18", - "nodeType": "YulFunctionCall", - "src": "8993:15:18" - }, - "variableNames": [ - { - "name": "size", - "nativeSrc": "8985:4:18", - "nodeType": "YulIdentifier", - "src": "8985:4:18" - } - ] - } - ] - }, - "name": "array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "8704:311:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "length", - "nativeSrc": "8770:6:18", - "nodeType": "YulTypedName", - "src": "8770:6:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "size", - "nativeSrc": "8781:4:18", + "nativeSrc": "2511:6:18", "nodeType": "YulTypedName", - "src": "8781:4:18", + "src": "2511:6:18", "type": "" } ], - "src": "8704:311:18" - }, - { - "body": { - "nativeSrc": "9110:28:18", - "nodeType": "YulBlock", - "src": "9110:28:18", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "9127:1:18", - "nodeType": "YulLiteral", - "src": "9127:1:18", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "9130:1:18", - "nodeType": "YulLiteral", - "src": "9130:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "9120:6:18", - "nodeType": "YulIdentifier", - "src": "9120:6:18" - }, - "nativeSrc": "9120:12:18", - "nodeType": "YulFunctionCall", - "src": "9120:12:18" - }, - "nativeSrc": "9120:12:18", - "nodeType": "YulExpressionStatement", - "src": "9120:12:18" - } - ] - }, - "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", - "nativeSrc": "9021:117:18", - "nodeType": "YulFunctionDefinition", - "src": "9021:117:18" + "src": "2453:327:18" }, { "body": { - "nativeSrc": "9263:608:18", + "nativeSrc": "2828:48:18", "nodeType": "YulBlock", - "src": "9263:608:18", + "src": "2828:48:18", "statements": [ { - "nativeSrc": "9273:90:18", + "nativeSrc": "2838:32:18", "nodeType": "YulAssignment", - "src": "9273:90:18", + "src": "2838:32:18", "value": { "arguments": [ { "arguments": [ { - "name": "length", - "nativeSrc": "9355:6:18", + "name": "value", + "nativeSrc": "2863:5:18", "nodeType": "YulIdentifier", - "src": "9355:6:18" + "src": "2863:5:18" } ], "functionName": { - "name": "array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "9298:56:18", + "name": "iszero", + "nativeSrc": "2856:6:18", "nodeType": "YulIdentifier", - "src": "9298:56:18" + "src": "2856:6:18" }, - "nativeSrc": "9298:64:18", + "nativeSrc": "2856:13:18", "nodeType": "YulFunctionCall", - "src": "9298:64:18" + "src": "2856:13:18" } ], "functionName": { - "name": "allocate_memory", - "nativeSrc": "9282:15:18", + "name": "iszero", + "nativeSrc": "2849:6:18", "nodeType": "YulIdentifier", - "src": "9282:15:18" + "src": "2849:6:18" }, - "nativeSrc": "9282:81:18", + "nativeSrc": "2849:21:18", "nodeType": "YulFunctionCall", - "src": "9282:81:18" + "src": "2849:21:18" }, "variableNames": [ { - "name": "array", - "nativeSrc": "9273:5:18", + "name": "cleaned", + "nativeSrc": "2838:7:18", "nodeType": "YulIdentifier", - "src": "9273:5:18" - } - ] - }, - { - "nativeSrc": "9372:16:18", - "nodeType": "YulVariableDeclaration", - "src": "9372:16:18", - "value": { - "name": "array", - "nativeSrc": "9383:5:18", - "nodeType": "YulIdentifier", - "src": "9383:5:18" - }, - "variables": [ - { - "name": "dst", - "nativeSrc": "9376:3:18", - "nodeType": "YulTypedName", - "src": "9376:3:18", - "type": "" + "src": "2838:7:18" } ] - }, + } + ] + }, + "name": "cleanup_t_bool", + "nativeSrc": "2786:90:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2810:5:18", + "nodeType": "YulTypedName", + "src": "2810:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "2820:7:18", + "nodeType": "YulTypedName", + "src": "2820:7:18", + "type": "" + } + ], + "src": "2786:90:18" + }, + { + "body": { + "nativeSrc": "2941:50:18", + "nodeType": "YulBlock", + "src": "2941:50:18", + "statements": [ { "expression": { "arguments": [ { - "name": "array", - "nativeSrc": "9405:5:18", + "name": "pos", + "nativeSrc": "2958:3:18", "nodeType": "YulIdentifier", - "src": "9405:5:18" + "src": "2958:3:18" }, { - "name": "length", - "nativeSrc": "9412:6:18", - "nodeType": "YulIdentifier", - "src": "9412:6:18" + "arguments": [ + { + "name": "value", + "nativeSrc": "2978:5:18", + "nodeType": "YulIdentifier", + "src": "2978:5:18" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nativeSrc": "2963:14:18", + "nodeType": "YulIdentifier", + "src": "2963:14:18" + }, + "nativeSrc": "2963:21:18", + "nodeType": "YulFunctionCall", + "src": "2963:21:18" } ], "functionName": { "name": "mstore", - "nativeSrc": "9398:6:18", + "nativeSrc": "2951:6:18", "nodeType": "YulIdentifier", - "src": "9398:6:18" + "src": "2951:6:18" }, - "nativeSrc": "9398:21:18", + "nativeSrc": "2951:34:18", "nodeType": "YulFunctionCall", - "src": "9398:21:18" + "src": "2951:34:18" }, - "nativeSrc": "9398:21:18", + "nativeSrc": "2951:34:18", "nodeType": "YulExpressionStatement", - "src": "9398:21:18" - }, + "src": "2951:34:18" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "2882:109:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2929:5:18", + "nodeType": "YulTypedName", + "src": "2929:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "2936:3:18", + "nodeType": "YulTypedName", + "src": "2936:3:18", + "type": "" + } + ], + "src": "2882:109:18" + }, + { + "body": { + "nativeSrc": "3089:118:18", + "nodeType": "YulBlock", + "src": "3089:118:18", + "statements": [ { - "nativeSrc": "9428:23:18", + "nativeSrc": "3099:26:18", "nodeType": "YulAssignment", - "src": "9428:23:18", + "src": "3099:26:18", "value": { "arguments": [ { - "name": "array", - "nativeSrc": "9439:5:18", + "name": "headStart", + "nativeSrc": "3111:9:18", "nodeType": "YulIdentifier", - "src": "9439:5:18" + "src": "3111:9:18" }, { "kind": "number", - "nativeSrc": "9446:4:18", + "nativeSrc": "3122:2:18", "nodeType": "YulLiteral", - "src": "9446:4:18", + "src": "3122:2:18", "type": "", - "value": "0x20" + "value": "32" } ], "functionName": { "name": "add", - "nativeSrc": "9435:3:18", + "nativeSrc": "3107:3:18", "nodeType": "YulIdentifier", - "src": "9435:3:18" + "src": "3107:3:18" }, - "nativeSrc": "9435:16:18", + "nativeSrc": "3107:18:18", "nodeType": "YulFunctionCall", - "src": "9435:16:18" + "src": "3107:18:18" }, "variableNames": [ { - "name": "dst", - "nativeSrc": "9428:3:18", + "name": "tail", + "nativeSrc": "3099:4:18", "nodeType": "YulIdentifier", - "src": "9428:3:18" + "src": "3099:4:18" } ] }, { - "nativeSrc": "9461:44:18", - "nodeType": "YulVariableDeclaration", - "src": "9461:44:18", - "value": { + "expression": { "arguments": [ { - "name": "offset", - "nativeSrc": "9479:6:18", + "name": "value0", + "nativeSrc": "3173:6:18", "nodeType": "YulIdentifier", - "src": "9479:6:18" + "src": "3173:6:18" }, { "arguments": [ { - "name": "length", - "nativeSrc": "9491:6:18", + "name": "headStart", + "nativeSrc": "3186:9:18", "nodeType": "YulIdentifier", - "src": "9491:6:18" + "src": "3186:9:18" }, { "kind": "number", - "nativeSrc": "9499:4:18", + "nativeSrc": "3197:1:18", "nodeType": "YulLiteral", - "src": "9499:4:18", + "src": "3197:1:18", "type": "", - "value": "0x20" + "value": "0" } ], "functionName": { - "name": "mul", - "nativeSrc": "9487:3:18", + "name": "add", + "nativeSrc": "3182:3:18", "nodeType": "YulIdentifier", - "src": "9487:3:18" + "src": "3182:3:18" }, - "nativeSrc": "9487:17:18", + "nativeSrc": "3182:17:18", "nodeType": "YulFunctionCall", - "src": "9487:17:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9475:3:18", - "nodeType": "YulIdentifier", - "src": "9475:3:18" - }, - "nativeSrc": "9475:30:18", - "nodeType": "YulFunctionCall", - "src": "9475:30:18" - }, - "variables": [ - { - "name": "srcEnd", - "nativeSrc": "9465:6:18", - "nodeType": "YulTypedName", - "src": "9465:6:18", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "9533:103:18", - "nodeType": "YulBlock", - "src": "9533:103:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", - "nativeSrc": "9547:77:18", - "nodeType": "YulIdentifier", - "src": "9547:77:18" - }, - "nativeSrc": "9547:79:18", - "nodeType": "YulFunctionCall", - "src": "9547:79:18" - }, - "nativeSrc": "9547:79:18", - "nodeType": "YulExpressionStatement", - "src": "9547:79:18" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "srcEnd", - "nativeSrc": "9520:6:18", - "nodeType": "YulIdentifier", - "src": "9520:6:18" - }, - { - "name": "end", - "nativeSrc": "9528:3:18", - "nodeType": "YulIdentifier", - "src": "9528:3:18" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "9517:2:18", - "nodeType": "YulIdentifier", - "src": "9517:2:18" - }, - "nativeSrc": "9517:15:18", - "nodeType": "YulFunctionCall", - "src": "9517:15:18" - }, - "nativeSrc": "9514:122:18", - "nodeType": "YulIf", - "src": "9514:122:18" - }, - { - "body": { - "nativeSrc": "9721:144:18", - "nodeType": "YulBlock", - "src": "9721:144:18", - "statements": [ - { - "nativeSrc": "9736:21:18", - "nodeType": "YulVariableDeclaration", - "src": "9736:21:18", - "value": { - "name": "src", - "nativeSrc": "9754:3:18", - "nodeType": "YulIdentifier", - "src": "9754:3:18" - }, - "variables": [ - { - "name": "elementPos", - "nativeSrc": "9740:10:18", - "nodeType": "YulTypedName", - "src": "9740:10:18", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "dst", - "nativeSrc": "9778:3:18", - "nodeType": "YulIdentifier", - "src": "9778:3:18" - }, - { - "arguments": [ - { - "name": "elementPos", - "nativeSrc": "9804:10:18", - "nodeType": "YulIdentifier", - "src": "9804:10:18" - }, - { - "name": "end", - "nativeSrc": "9816:3:18", - "nodeType": "YulIdentifier", - "src": "9816:3:18" - } - ], - "functionName": { - "name": "abi_decode_t_uint256", - "nativeSrc": "9783:20:18", - "nodeType": "YulIdentifier", - "src": "9783:20:18" - }, - "nativeSrc": "9783:37:18", - "nodeType": "YulFunctionCall", - "src": "9783:37:18" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "9771:6:18", - "nodeType": "YulIdentifier", - "src": "9771:6:18" - }, - "nativeSrc": "9771:50:18", - "nodeType": "YulFunctionCall", - "src": "9771:50:18" - }, - "nativeSrc": "9771:50:18", - "nodeType": "YulExpressionStatement", - "src": "9771:50:18" - }, - { - "nativeSrc": "9834:21:18", - "nodeType": "YulAssignment", - "src": "9834:21:18", - "value": { - "arguments": [ - { - "name": "dst", - "nativeSrc": "9845:3:18", - "nodeType": "YulIdentifier", - "src": "9845:3:18" - }, - { - "kind": "number", - "nativeSrc": "9850:4:18", - "nodeType": "YulLiteral", - "src": "9850:4:18", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9841:3:18", - "nodeType": "YulIdentifier", - "src": "9841:3:18" - }, - "nativeSrc": "9841:14:18", - "nodeType": "YulFunctionCall", - "src": "9841:14:18" - }, - "variableNames": [ - { - "name": "dst", - "nativeSrc": "9834:3:18", - "nodeType": "YulIdentifier", - "src": "9834:3:18" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "src", - "nativeSrc": "9674:3:18", - "nodeType": "YulIdentifier", - "src": "9674:3:18" - }, - { - "name": "srcEnd", - "nativeSrc": "9679:6:18", - "nodeType": "YulIdentifier", - "src": "9679:6:18" + "src": "3182:17:18" } ], "functionName": { - "name": "lt", - "nativeSrc": "9671:2:18", + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "3135:37:18", "nodeType": "YulIdentifier", - "src": "9671:2:18" + "src": "3135:37:18" }, - "nativeSrc": "9671:15:18", + "nativeSrc": "3135:65:18", "nodeType": "YulFunctionCall", - "src": "9671:15:18" - }, - "nativeSrc": "9645:220:18", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "9687:25:18", - "nodeType": "YulBlock", - "src": "9687:25:18", - "statements": [ - { - "nativeSrc": "9689:21:18", - "nodeType": "YulAssignment", - "src": "9689:21:18", - "value": { - "arguments": [ - { - "name": "src", - "nativeSrc": "9700:3:18", - "nodeType": "YulIdentifier", - "src": "9700:3:18" - }, - { - "kind": "number", - "nativeSrc": "9705:4:18", - "nodeType": "YulLiteral", - "src": "9705:4:18", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9696:3:18", - "nodeType": "YulIdentifier", - "src": "9696:3:18" - }, - "nativeSrc": "9696:14:18", - "nodeType": "YulFunctionCall", - "src": "9696:14:18" - }, - "variableNames": [ - { - "name": "src", - "nativeSrc": "9689:3:18", - "nodeType": "YulIdentifier", - "src": "9689:3:18" - } - ] - } - ] - }, - "pre": { - "nativeSrc": "9649:21:18", - "nodeType": "YulBlock", - "src": "9649:21:18", - "statements": [ - { - "nativeSrc": "9651:17:18", - "nodeType": "YulVariableDeclaration", - "src": "9651:17:18", - "value": { - "name": "offset", - "nativeSrc": "9662:6:18", - "nodeType": "YulIdentifier", - "src": "9662:6:18" - }, - "variables": [ - { - "name": "src", - "nativeSrc": "9655:3:18", - "nodeType": "YulTypedName", - "src": "9655:3:18", - "type": "" - } - ] - } - ] + "src": "3135:65:18" }, - "src": "9645:220:18" + "nativeSrc": "3135:65:18", + "nodeType": "YulExpressionStatement", + "src": "3135:65:18" } ] }, - "name": "abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "9161:710:18", + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nativeSrc": "2997:210:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", - "nativeSrc": "9233:6:18", - "nodeType": "YulTypedName", - "src": "9233:6:18", - "type": "" - }, - { - "name": "length", - "nativeSrc": "9241:6:18", + "name": "headStart", + "nativeSrc": "3061:9:18", "nodeType": "YulTypedName", - "src": "9241:6:18", + "src": "3061:9:18", "type": "" }, { - "name": "end", - "nativeSrc": "9249:3:18", + "name": "value0", + "nativeSrc": "3073:6:18", "nodeType": "YulTypedName", - "src": "9249:3:18", + "src": "3073:6:18", "type": "" } ], "returnVariables": [ { - "name": "array", - "nativeSrc": "9257:5:18", + "name": "tail", + "nativeSrc": "3084:4:18", "nodeType": "YulTypedName", - "src": "9257:5:18", + "src": "3084:4:18", "type": "" } ], - "src": "9161:710:18" + "src": "2997:210:18" }, { "body": { - "nativeSrc": "9971:293:18", + "nativeSrc": "3279:263:18", "nodeType": "YulBlock", - "src": "9971:293:18", + "src": "3279:263:18", "statements": [ { "body": { - "nativeSrc": "10020:83:18", + "nativeSrc": "3325:83:18", "nodeType": "YulBlock", - "src": "10020:83:18", + "src": "3325:83:18", "statements": [ { "expression": { "arguments": [], "functionName": { - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "10022:77:18", + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "3327:77:18", "nodeType": "YulIdentifier", - "src": "10022:77:18" + "src": "3327:77:18" }, - "nativeSrc": "10022:79:18", + "nativeSrc": "3327:79:18", "nodeType": "YulFunctionCall", - "src": "10022:79:18" + "src": "3327:79:18" }, - "nativeSrc": "10022:79:18", + "nativeSrc": "3327:79:18", "nodeType": "YulExpressionStatement", - "src": "10022:79:18" + "src": "3327:79:18" } ] }, @@ -66256,1710 +66429,1223 @@ { "arguments": [ { - "arguments": [ - { - "name": "offset", - "nativeSrc": "9999:6:18", - "nodeType": "YulIdentifier", - "src": "9999:6:18" - }, - { - "kind": "number", - "nativeSrc": "10007:4:18", - "nodeType": "YulLiteral", - "src": "10007:4:18", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9995:3:18", - "nodeType": "YulIdentifier", - "src": "9995:3:18" - }, - "nativeSrc": "9995:17:18", - "nodeType": "YulFunctionCall", - "src": "9995:17:18" + "name": "dataEnd", + "nativeSrc": "3300:7:18", + "nodeType": "YulIdentifier", + "src": "3300:7:18" }, { - "name": "end", - "nativeSrc": "10014:3:18", + "name": "headStart", + "nativeSrc": "3309:9:18", "nodeType": "YulIdentifier", - "src": "10014:3:18" + "src": "3309:9:18" } ], "functionName": { - "name": "slt", - "nativeSrc": "9991:3:18", + "name": "sub", + "nativeSrc": "3296:3:18", "nodeType": "YulIdentifier", - "src": "9991:3:18" + "src": "3296:3:18" }, - "nativeSrc": "9991:27:18", + "nativeSrc": "3296:23:18", "nodeType": "YulFunctionCall", - "src": "9991:27:18" + "src": "3296:23:18" + }, + { + "kind": "number", + "nativeSrc": "3321:2:18", + "nodeType": "YulLiteral", + "src": "3321:2:18", + "type": "", + "value": "32" } ], "functionName": { - "name": "iszero", - "nativeSrc": "9984:6:18", + "name": "slt", + "nativeSrc": "3292:3:18", "nodeType": "YulIdentifier", - "src": "9984:6:18" + "src": "3292:3:18" }, - "nativeSrc": "9984:35:18", + "nativeSrc": "3292:32:18", "nodeType": "YulFunctionCall", - "src": "9984:35:18" + "src": "3292:32:18" }, - "nativeSrc": "9981:122:18", + "nativeSrc": "3289:119:18", "nodeType": "YulIf", - "src": "9981:122:18" + "src": "3289:119:18" }, { - "nativeSrc": "10112:34:18", - "nodeType": "YulVariableDeclaration", - "src": "10112:34:18", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "10139:6:18", - "nodeType": "YulIdentifier", - "src": "10139:6:18" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "10126:12:18", - "nodeType": "YulIdentifier", - "src": "10126:12:18" + "nativeSrc": "3418:117:18", + "nodeType": "YulBlock", + "src": "3418:117:18", + "statements": [ + { + "nativeSrc": "3433:15:18", + "nodeType": "YulVariableDeclaration", + "src": "3433:15:18", + "value": { + "kind": "number", + "nativeSrc": "3447:1:18", + "nodeType": "YulLiteral", + "src": "3447:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "3437:6:18", + "nodeType": "YulTypedName", + "src": "3437:6:18", + "type": "" + } + ] }, - "nativeSrc": "10126:20:18", - "nodeType": "YulFunctionCall", - "src": "10126:20:18" - }, - "variables": [ { - "name": "length", - "nativeSrc": "10116:6:18", - "nodeType": "YulTypedName", - "src": "10116:6:18", - "type": "" - } - ] - }, - { - "nativeSrc": "10155:103:18", - "nodeType": "YulAssignment", - "src": "10155:103:18", - "value": { - "arguments": [ - { + "nativeSrc": "3462:63:18", + "nodeType": "YulAssignment", + "src": "3462:63:18", + "value": { "arguments": [ { - "name": "offset", - "nativeSrc": "10231:6:18", - "nodeType": "YulIdentifier", - "src": "10231:6:18" + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3497:9:18", + "nodeType": "YulIdentifier", + "src": "3497:9:18" + }, + { + "name": "offset", + "nativeSrc": "3508:6:18", + "nodeType": "YulIdentifier", + "src": "3508:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3493:3:18", + "nodeType": "YulIdentifier", + "src": "3493:3:18" + }, + "nativeSrc": "3493:22:18", + "nodeType": "YulFunctionCall", + "src": "3493:22:18" }, { - "kind": "number", - "nativeSrc": "10239:4:18", - "nodeType": "YulLiteral", - "src": "10239:4:18", - "type": "", - "value": "0x20" + "name": "dataEnd", + "nativeSrc": "3517:7:18", + "nodeType": "YulIdentifier", + "src": "3517:7:18" } ], "functionName": { - "name": "add", - "nativeSrc": "10227:3:18", + "name": "abi_decode_t_uint256", + "nativeSrc": "3472:20:18", "nodeType": "YulIdentifier", - "src": "10227:3:18" + "src": "3472:20:18" }, - "nativeSrc": "10227:17:18", + "nativeSrc": "3472:53:18", "nodeType": "YulFunctionCall", - "src": "10227:17:18" - }, - { - "name": "length", - "nativeSrc": "10246:6:18", - "nodeType": "YulIdentifier", - "src": "10246:6:18" + "src": "3472:53:18" }, - { - "name": "end", - "nativeSrc": "10254:3:18", - "nodeType": "YulIdentifier", - "src": "10254:3:18" - } - ], - "functionName": { - "name": "abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "10164:62:18", - "nodeType": "YulIdentifier", - "src": "10164:62:18" - }, - "nativeSrc": "10164:94:18", - "nodeType": "YulFunctionCall", - "src": "10164:94:18" - }, - "variableNames": [ - { - "name": "array", - "nativeSrc": "10155:5:18", - "nodeType": "YulIdentifier", - "src": "10155:5:18" + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3462:6:18", + "nodeType": "YulIdentifier", + "src": "3462:6:18" + } + ] } ] } ] }, - "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "9894:370:18", + "name": "abi_decode_tuple_t_uint256", + "nativeSrc": "3213:329:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", - "nativeSrc": "9949:6:18", + "name": "headStart", + "nativeSrc": "3249:9:18", "nodeType": "YulTypedName", - "src": "9949:6:18", + "src": "3249:9:18", "type": "" }, { - "name": "end", - "nativeSrc": "9957:3:18", + "name": "dataEnd", + "nativeSrc": "3260:7:18", "nodeType": "YulTypedName", - "src": "9957:3:18", + "src": "3260:7:18", "type": "" } ], "returnVariables": [ { - "name": "array", - "nativeSrc": "9965:5:18", + "name": "value0", + "nativeSrc": "3272:6:18", "nodeType": "YulTypedName", - "src": "9965:5:18", + "src": "3272:6:18", "type": "" } ], - "src": "9894:370:18" + "src": "3213:329:18" }, { "body": { - "nativeSrc": "10336:241:18", + "nativeSrc": "3607:40:18", "nodeType": "YulBlock", - "src": "10336:241:18", + "src": "3607:40:18", "statements": [ { - "body": { - "nativeSrc": "10441:22:18", - "nodeType": "YulBlock", - "src": "10441:22:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "10443:16:18", - "nodeType": "YulIdentifier", - "src": "10443:16:18" - }, - "nativeSrc": "10443:18:18", - "nodeType": "YulFunctionCall", - "src": "10443:18:18" - }, - "nativeSrc": "10443:18:18", - "nodeType": "YulExpressionStatement", - "src": "10443:18:18" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "length", - "nativeSrc": "10413:6:18", - "nodeType": "YulIdentifier", - "src": "10413:6:18" - }, - { - "kind": "number", - "nativeSrc": "10421:18:18", - "nodeType": "YulLiteral", - "src": "10421:18:18", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "10410:2:18", - "nodeType": "YulIdentifier", - "src": "10410:2:18" - }, - "nativeSrc": "10410:30:18", - "nodeType": "YulFunctionCall", - "src": "10410:30:18" - }, - "nativeSrc": "10407:56:18", - "nodeType": "YulIf", - "src": "10407:56:18" - }, - { - "nativeSrc": "10473:37:18", - "nodeType": "YulAssignment", - "src": "10473:37:18", - "value": { - "arguments": [ - { - "name": "length", - "nativeSrc": "10503:6:18", - "nodeType": "YulIdentifier", - "src": "10503:6:18" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nativeSrc": "10481:21:18", - "nodeType": "YulIdentifier", - "src": "10481:21:18" - }, - "nativeSrc": "10481:29:18", - "nodeType": "YulFunctionCall", - "src": "10481:29:18" - }, - "variableNames": [ - { - "name": "size", - "nativeSrc": "10473:4:18", - "nodeType": "YulIdentifier", - "src": "10473:4:18" - } - ] - }, - { - "nativeSrc": "10547:23:18", + "nativeSrc": "3618:22:18", "nodeType": "YulAssignment", - "src": "10547:23:18", + "src": "3618:22:18", "value": { "arguments": [ { - "name": "size", - "nativeSrc": "10559:4:18", + "name": "value", + "nativeSrc": "3634:5:18", "nodeType": "YulIdentifier", - "src": "10559:4:18" - }, - { - "kind": "number", - "nativeSrc": "10565:4:18", - "nodeType": "YulLiteral", - "src": "10565:4:18", - "type": "", - "value": "0x20" + "src": "3634:5:18" } ], "functionName": { - "name": "add", - "nativeSrc": "10555:3:18", + "name": "mload", + "nativeSrc": "3628:5:18", "nodeType": "YulIdentifier", - "src": "10555:3:18" + "src": "3628:5:18" }, - "nativeSrc": "10555:15:18", + "nativeSrc": "3628:12:18", "nodeType": "YulFunctionCall", - "src": "10555:15:18" + "src": "3628:12:18" }, "variableNames": [ { - "name": "size", - "nativeSrc": "10547:4:18", + "name": "length", + "nativeSrc": "3618:6:18", "nodeType": "YulIdentifier", - "src": "10547:4:18" + "src": "3618:6:18" } ] } ] }, - "name": "array_allocation_size_t_bytes_memory_ptr", - "nativeSrc": "10270:307:18", + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "3548:99:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "length", - "nativeSrc": "10320:6:18", + "name": "value", + "nativeSrc": "3590:5:18", "nodeType": "YulTypedName", - "src": "10320:6:18", + "src": "3590:5:18", "type": "" } ], "returnVariables": [ { - "name": "size", - "nativeSrc": "10331:4:18", + "name": "length", + "nativeSrc": "3600:6:18", "nodeType": "YulTypedName", - "src": "10331:4:18", + "src": "3600:6:18", "type": "" } ], - "src": "10270:307:18" + "src": "3548:99:18" }, { "body": { - "nativeSrc": "10666:340:18", + "nativeSrc": "3749:73:18", "nodeType": "YulBlock", - "src": "10666:340:18", + "src": "3749:73:18", "statements": [ - { - "nativeSrc": "10676:74:18", - "nodeType": "YulAssignment", - "src": "10676:74:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nativeSrc": "10742:6:18", - "nodeType": "YulIdentifier", - "src": "10742:6:18" - } - ], - "functionName": { - "name": "array_allocation_size_t_bytes_memory_ptr", - "nativeSrc": "10701:40:18", - "nodeType": "YulIdentifier", - "src": "10701:40:18" - }, - "nativeSrc": "10701:48:18", - "nodeType": "YulFunctionCall", - "src": "10701:48:18" - } - ], - "functionName": { - "name": "allocate_memory", - "nativeSrc": "10685:15:18", - "nodeType": "YulIdentifier", - "src": "10685:15:18" - }, - "nativeSrc": "10685:65:18", - "nodeType": "YulFunctionCall", - "src": "10685:65:18" - }, - "variableNames": [ - { - "name": "array", - "nativeSrc": "10676:5:18", - "nodeType": "YulIdentifier", - "src": "10676:5:18" - } - ] - }, { "expression": { "arguments": [ { - "name": "array", - "nativeSrc": "10766:5:18", + "name": "pos", + "nativeSrc": "3766:3:18", "nodeType": "YulIdentifier", - "src": "10766:5:18" + "src": "3766:3:18" }, { "name": "length", - "nativeSrc": "10773:6:18", + "nativeSrc": "3771:6:18", "nodeType": "YulIdentifier", - "src": "10773:6:18" + "src": "3771:6:18" } ], "functionName": { "name": "mstore", - "nativeSrc": "10759:6:18", + "nativeSrc": "3759:6:18", "nodeType": "YulIdentifier", - "src": "10759:6:18" + "src": "3759:6:18" }, - "nativeSrc": "10759:21:18", + "nativeSrc": "3759:19:18", "nodeType": "YulFunctionCall", - "src": "10759:21:18" + "src": "3759:19:18" }, - "nativeSrc": "10759:21:18", + "nativeSrc": "3759:19:18", "nodeType": "YulExpressionStatement", - "src": "10759:21:18" + "src": "3759:19:18" }, { - "nativeSrc": "10789:27:18", - "nodeType": "YulVariableDeclaration", - "src": "10789:27:18", + "nativeSrc": "3787:29:18", + "nodeType": "YulAssignment", + "src": "3787:29:18", "value": { "arguments": [ { - "name": "array", - "nativeSrc": "10804:5:18", + "name": "pos", + "nativeSrc": "3806:3:18", "nodeType": "YulIdentifier", - "src": "10804:5:18" + "src": "3806:3:18" }, { "kind": "number", - "nativeSrc": "10811:4:18", + "nativeSrc": "3811:4:18", "nodeType": "YulLiteral", - "src": "10811:4:18", + "src": "3811:4:18", "type": "", "value": "0x20" } ], "functionName": { "name": "add", - "nativeSrc": "10800:3:18", + "nativeSrc": "3802:3:18", "nodeType": "YulIdentifier", - "src": "10800:3:18" + "src": "3802:3:18" }, - "nativeSrc": "10800:16:18", + "nativeSrc": "3802:14:18", "nodeType": "YulFunctionCall", - "src": "10800:16:18" + "src": "3802:14:18" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "3787:11:18", + "nodeType": "YulIdentifier", + "src": "3787:11:18" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "3653:169:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "3721:3:18", + "nodeType": "YulTypedName", + "src": "3721:3:18", + "type": "" + }, + { + "name": "length", + "nativeSrc": "3726:6:18", + "nodeType": "YulTypedName", + "src": "3726:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "3737:11:18", + "nodeType": "YulTypedName", + "src": "3737:11:18", + "type": "" + } + ], + "src": "3653:169:18" + }, + { + "body": { + "nativeSrc": "3890:186:18", + "nodeType": "YulBlock", + "src": "3890:186:18", + "statements": [ + { + "nativeSrc": "3901:10:18", + "nodeType": "YulVariableDeclaration", + "src": "3901:10:18", + "value": { + "kind": "number", + "nativeSrc": "3910:1:18", + "nodeType": "YulLiteral", + "src": "3910:1:18", + "type": "", + "value": "0" }, "variables": [ { - "name": "dst", - "nativeSrc": "10793:3:18", + "name": "i", + "nativeSrc": "3905:1:18", "nodeType": "YulTypedName", - "src": "10793:3:18", + "src": "3905:1:18", "type": "" } ] }, { "body": { - "nativeSrc": "10854:83:18", + "nativeSrc": "3970:63:18", "nodeType": "YulBlock", - "src": "10854:83:18", + "src": "3970:63:18", "statements": [ { "expression": { - "arguments": [], + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "3995:3:18", + "nodeType": "YulIdentifier", + "src": "3995:3:18" + }, + { + "name": "i", + "nativeSrc": "4000:1:18", + "nodeType": "YulIdentifier", + "src": "4000:1:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3991:3:18", + "nodeType": "YulIdentifier", + "src": "3991:3:18" + }, + "nativeSrc": "3991:11:18", + "nodeType": "YulFunctionCall", + "src": "3991:11:18" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "4014:3:18", + "nodeType": "YulIdentifier", + "src": "4014:3:18" + }, + { + "name": "i", + "nativeSrc": "4019:1:18", + "nodeType": "YulIdentifier", + "src": "4019:1:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4010:3:18", + "nodeType": "YulIdentifier", + "src": "4010:3:18" + }, + "nativeSrc": "4010:11:18", + "nodeType": "YulFunctionCall", + "src": "4010:11:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4004:5:18", + "nodeType": "YulIdentifier", + "src": "4004:5:18" + }, + "nativeSrc": "4004:18:18", + "nodeType": "YulFunctionCall", + "src": "4004:18:18" + } + ], "functionName": { - "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", - "nativeSrc": "10856:77:18", + "name": "mstore", + "nativeSrc": "3984:6:18", "nodeType": "YulIdentifier", - "src": "10856:77:18" + "src": "3984:6:18" }, - "nativeSrc": "10856:79:18", + "nativeSrc": "3984:39:18", "nodeType": "YulFunctionCall", - "src": "10856:79:18" + "src": "3984:39:18" }, - "nativeSrc": "10856:79:18", + "nativeSrc": "3984:39:18", "nodeType": "YulExpressionStatement", - "src": "10856:79:18" + "src": "3984:39:18" } ] }, "condition": { "arguments": [ { - "arguments": [ - { - "name": "src", - "nativeSrc": "10835:3:18", - "nodeType": "YulIdentifier", - "src": "10835:3:18" - }, - { - "name": "length", - "nativeSrc": "10840:6:18", - "nodeType": "YulIdentifier", - "src": "10840:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "10831:3:18", - "nodeType": "YulIdentifier", - "src": "10831:3:18" - }, - "nativeSrc": "10831:16:18", - "nodeType": "YulFunctionCall", - "src": "10831:16:18" - }, - { - "name": "end", - "nativeSrc": "10849:3:18", - "nodeType": "YulIdentifier", - "src": "10849:3:18" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "10828:2:18", - "nodeType": "YulIdentifier", - "src": "10828:2:18" - }, - "nativeSrc": "10828:25:18", - "nodeType": "YulFunctionCall", - "src": "10828:25:18" - }, - "nativeSrc": "10825:112:18", - "nodeType": "YulIf", - "src": "10825:112:18" - }, - { - "expression": { - "arguments": [ - { - "name": "src", - "nativeSrc": "10983:3:18", - "nodeType": "YulIdentifier", - "src": "10983:3:18" - }, - { - "name": "dst", - "nativeSrc": "10988:3:18", + "name": "i", + "nativeSrc": "3931:1:18", "nodeType": "YulIdentifier", - "src": "10988:3:18" + "src": "3931:1:18" }, { "name": "length", - "nativeSrc": "10993:6:18", + "nativeSrc": "3934:6:18", "nodeType": "YulIdentifier", - "src": "10993:6:18" + "src": "3934:6:18" } ], "functionName": { - "name": "copy_calldata_to_memory_with_cleanup", - "nativeSrc": "10946:36:18", + "name": "lt", + "nativeSrc": "3928:2:18", "nodeType": "YulIdentifier", - "src": "10946:36:18" + "src": "3928:2:18" }, - "nativeSrc": "10946:54:18", + "nativeSrc": "3928:13:18", "nodeType": "YulFunctionCall", - "src": "10946:54:18" + "src": "3928:13:18" }, - "nativeSrc": "10946:54:18", - "nodeType": "YulExpressionStatement", - "src": "10946:54:18" - } - ] - }, - "name": "abi_decode_available_length_t_bytes_memory_ptr", - "nativeSrc": "10583:423:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nativeSrc": "10639:3:18", - "nodeType": "YulTypedName", - "src": "10639:3:18", - "type": "" - }, - { - "name": "length", - "nativeSrc": "10644:6:18", - "nodeType": "YulTypedName", - "src": "10644:6:18", - "type": "" - }, - { - "name": "end", - "nativeSrc": "10652:3:18", - "nodeType": "YulTypedName", - "src": "10652:3:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nativeSrc": "10660:5:18", - "nodeType": "YulTypedName", - "src": "10660:5:18", - "type": "" - } - ], - "src": "10583:423:18" - }, - { - "body": { - "nativeSrc": "11086:277:18", - "nodeType": "YulBlock", - "src": "11086:277:18", - "statements": [ - { - "body": { - "nativeSrc": "11135:83:18", + "nativeSrc": "3920:113:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "3942:19:18", "nodeType": "YulBlock", - "src": "11135:83:18", + "src": "3942:19:18", "statements": [ { - "expression": { - "arguments": [], + "nativeSrc": "3944:15:18", + "nodeType": "YulAssignment", + "src": "3944:15:18", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "3953:1:18", + "nodeType": "YulIdentifier", + "src": "3953:1:18" + }, + { + "kind": "number", + "nativeSrc": "3956:2:18", + "nodeType": "YulLiteral", + "src": "3956:2:18", + "type": "", + "value": "32" + } + ], "functionName": { - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "11137:77:18", + "name": "add", + "nativeSrc": "3949:3:18", "nodeType": "YulIdentifier", - "src": "11137:77:18" + "src": "3949:3:18" }, - "nativeSrc": "11137:79:18", + "nativeSrc": "3949:10:18", "nodeType": "YulFunctionCall", - "src": "11137:79:18" + "src": "3949:10:18" }, - "nativeSrc": "11137:79:18", - "nodeType": "YulExpressionStatement", - "src": "11137:79:18" + "variableNames": [ + { + "name": "i", + "nativeSrc": "3944:1:18", + "nodeType": "YulIdentifier", + "src": "3944:1:18" + } + ] } ] }, - "condition": { + "pre": { + "nativeSrc": "3924:3:18", + "nodeType": "YulBlock", + "src": "3924:3:18", + "statements": [] + }, + "src": "3920:113:18" + }, + { + "expression": { "arguments": [ { "arguments": [ { - "arguments": [ - { - "name": "offset", - "nativeSrc": "11114:6:18", - "nodeType": "YulIdentifier", - "src": "11114:6:18" - }, - { - "kind": "number", - "nativeSrc": "11122:4:18", - "nodeType": "YulLiteral", - "src": "11122:4:18", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "11110:3:18", - "nodeType": "YulIdentifier", - "src": "11110:3:18" - }, - "nativeSrc": "11110:17:18", - "nodeType": "YulFunctionCall", - "src": "11110:17:18" + "name": "dst", + "nativeSrc": "4053:3:18", + "nodeType": "YulIdentifier", + "src": "4053:3:18" }, { - "name": "end", - "nativeSrc": "11129:3:18", + "name": "length", + "nativeSrc": "4058:6:18", "nodeType": "YulIdentifier", - "src": "11129:3:18" + "src": "4058:6:18" } ], "functionName": { - "name": "slt", - "nativeSrc": "11106:3:18", + "name": "add", + "nativeSrc": "4049:3:18", "nodeType": "YulIdentifier", - "src": "11106:3:18" + "src": "4049:3:18" }, - "nativeSrc": "11106:27:18", + "nativeSrc": "4049:16:18", "nodeType": "YulFunctionCall", - "src": "11106:27:18" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "11099:6:18", - "nodeType": "YulIdentifier", - "src": "11099:6:18" - }, - "nativeSrc": "11099:35:18", - "nodeType": "YulFunctionCall", - "src": "11099:35:18" - }, - "nativeSrc": "11096:122:18", - "nodeType": "YulIf", - "src": "11096:122:18" - }, - { - "nativeSrc": "11227:34:18", - "nodeType": "YulVariableDeclaration", - "src": "11227:34:18", - "value": { - "arguments": [ + "src": "4049:16:18" + }, { - "name": "offset", - "nativeSrc": "11254:6:18", - "nodeType": "YulIdentifier", - "src": "11254:6:18" + "kind": "number", + "nativeSrc": "4067:1:18", + "nodeType": "YulLiteral", + "src": "4067:1:18", + "type": "", + "value": "0" } ], "functionName": { - "name": "calldataload", - "nativeSrc": "11241:12:18", + "name": "mstore", + "nativeSrc": "4042:6:18", "nodeType": "YulIdentifier", - "src": "11241:12:18" + "src": "4042:6:18" }, - "nativeSrc": "11241:20:18", + "nativeSrc": "4042:27:18", "nodeType": "YulFunctionCall", - "src": "11241:20:18" + "src": "4042:27:18" }, - "variables": [ - { - "name": "length", - "nativeSrc": "11231:6:18", - "nodeType": "YulTypedName", - "src": "11231:6:18", - "type": "" - } - ] - }, + "nativeSrc": "4042:27:18", + "nodeType": "YulExpressionStatement", + "src": "4042:27:18" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "3828:248:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "3872:3:18", + "nodeType": "YulTypedName", + "src": "3872:3:18", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "3877:3:18", + "nodeType": "YulTypedName", + "src": "3877:3:18", + "type": "" + }, + { + "name": "length", + "nativeSrc": "3882:6:18", + "nodeType": "YulTypedName", + "src": "3882:6:18", + "type": "" + } + ], + "src": "3828:248:18" + }, + { + "body": { + "nativeSrc": "4130:54:18", + "nodeType": "YulBlock", + "src": "4130:54:18", + "statements": [ { - "nativeSrc": "11270:87:18", + "nativeSrc": "4140:38:18", "nodeType": "YulAssignment", - "src": "11270:87:18", + "src": "4140:38:18", "value": { "arguments": [ { "arguments": [ { - "name": "offset", - "nativeSrc": "11330:6:18", + "name": "value", + "nativeSrc": "4158:5:18", "nodeType": "YulIdentifier", - "src": "11330:6:18" + "src": "4158:5:18" }, { "kind": "number", - "nativeSrc": "11338:4:18", + "nativeSrc": "4165:2:18", "nodeType": "YulLiteral", - "src": "11338:4:18", + "src": "4165:2:18", "type": "", - "value": "0x20" + "value": "31" } ], "functionName": { "name": "add", - "nativeSrc": "11326:3:18", + "nativeSrc": "4154:3:18", "nodeType": "YulIdentifier", - "src": "11326:3:18" + "src": "4154:3:18" }, - "nativeSrc": "11326:17:18", + "nativeSrc": "4154:14:18", "nodeType": "YulFunctionCall", - "src": "11326:17:18" - }, - { - "name": "length", - "nativeSrc": "11345:6:18", - "nodeType": "YulIdentifier", - "src": "11345:6:18" + "src": "4154:14:18" }, { - "name": "end", - "nativeSrc": "11353:3:18", - "nodeType": "YulIdentifier", - "src": "11353:3:18" + "arguments": [ + { + "kind": "number", + "nativeSrc": "4174:2:18", + "nodeType": "YulLiteral", + "src": "4174:2:18", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "4170:3:18", + "nodeType": "YulIdentifier", + "src": "4170:3:18" + }, + "nativeSrc": "4170:7:18", + "nodeType": "YulFunctionCall", + "src": "4170:7:18" } ], "functionName": { - "name": "abi_decode_available_length_t_bytes_memory_ptr", - "nativeSrc": "11279:46:18", + "name": "and", + "nativeSrc": "4150:3:18", "nodeType": "YulIdentifier", - "src": "11279:46:18" + "src": "4150:3:18" }, - "nativeSrc": "11279:78:18", + "nativeSrc": "4150:28:18", "nodeType": "YulFunctionCall", - "src": "11279:78:18" + "src": "4150:28:18" }, "variableNames": [ { - "name": "array", - "nativeSrc": "11270:5:18", + "name": "result", + "nativeSrc": "4140:6:18", "nodeType": "YulIdentifier", - "src": "11270:5:18" + "src": "4140:6:18" } ] } ] }, - "name": "abi_decode_t_bytes_memory_ptr", - "nativeSrc": "11025:338:18", + "name": "round_up_to_mul_of_32", + "nativeSrc": "4082:102:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", - "nativeSrc": "11064:6:18", - "nodeType": "YulTypedName", - "src": "11064:6:18", - "type": "" - }, - { - "name": "end", - "nativeSrc": "11072:3:18", + "name": "value", + "nativeSrc": "4113:5:18", "nodeType": "YulTypedName", - "src": "11072:3:18", + "src": "4113:5:18", "type": "" } ], "returnVariables": [ { - "name": "array", - "nativeSrc": "11080:5:18", + "name": "result", + "nativeSrc": "4123:6:18", "nodeType": "YulTypedName", - "src": "11080:5:18", + "src": "4123:6:18", "type": "" } ], - "src": "11025:338:18" + "src": "4082:102:18" }, { "body": { - "nativeSrc": "11562:1316:18", + "nativeSrc": "4282:285:18", "nodeType": "YulBlock", - "src": "11562:1316:18", + "src": "4282:285:18", "statements": [ { - "body": { - "nativeSrc": "11609:83:18", - "nodeType": "YulBlock", - "src": "11609:83:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "11611:77:18", - "nodeType": "YulIdentifier", - "src": "11611:77:18" - }, - "nativeSrc": "11611:79:18", - "nodeType": "YulFunctionCall", - "src": "11611:79:18" - }, - "nativeSrc": "11611:79:18", - "nodeType": "YulExpressionStatement", - "src": "11611:79:18" - } - ] - }, - "condition": { + "nativeSrc": "4292:53:18", + "nodeType": "YulVariableDeclaration", + "src": "4292:53:18", + "value": { "arguments": [ { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "11583:7:18", - "nodeType": "YulIdentifier", - "src": "11583:7:18" - }, - { - "name": "headStart", - "nativeSrc": "11592:9:18", - "nodeType": "YulIdentifier", - "src": "11592:9:18" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "11579:3:18", - "nodeType": "YulIdentifier", - "src": "11579:3:18" - }, - "nativeSrc": "11579:23:18", - "nodeType": "YulFunctionCall", - "src": "11579:23:18" - }, - { - "kind": "number", - "nativeSrc": "11604:3:18", - "nodeType": "YulLiteral", - "src": "11604:3:18", - "type": "", - "value": "160" + "name": "value", + "nativeSrc": "4339:5:18", + "nodeType": "YulIdentifier", + "src": "4339:5:18" } ], "functionName": { - "name": "slt", - "nativeSrc": "11575:3:18", + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "4306:32:18", "nodeType": "YulIdentifier", - "src": "11575:3:18" + "src": "4306:32:18" }, - "nativeSrc": "11575:33:18", + "nativeSrc": "4306:39:18", "nodeType": "YulFunctionCall", - "src": "11575:33:18" + "src": "4306:39:18" }, - "nativeSrc": "11572:120:18", - "nodeType": "YulIf", - "src": "11572:120:18" - }, - { - "nativeSrc": "11702:117:18", - "nodeType": "YulBlock", - "src": "11702:117:18", - "statements": [ - { - "nativeSrc": "11717:15:18", - "nodeType": "YulVariableDeclaration", - "src": "11717:15:18", - "value": { - "kind": "number", - "nativeSrc": "11731:1:18", - "nodeType": "YulLiteral", - "src": "11731:1:18", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "11721:6:18", - "nodeType": "YulTypedName", - "src": "11721:6:18", - "type": "" - } - ] - }, + "variables": [ { - "nativeSrc": "11746:63:18", - "nodeType": "YulAssignment", - "src": "11746:63:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "11781:9:18", - "nodeType": "YulIdentifier", - "src": "11781:9:18" - }, - { - "name": "offset", - "nativeSrc": "11792:6:18", - "nodeType": "YulIdentifier", - "src": "11792:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "11777:3:18", - "nodeType": "YulIdentifier", - "src": "11777:3:18" - }, - "nativeSrc": "11777:22:18", - "nodeType": "YulFunctionCall", - "src": "11777:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "11801:7:18", - "nodeType": "YulIdentifier", - "src": "11801:7:18" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "11756:20:18", - "nodeType": "YulIdentifier", - "src": "11756:20:18" - }, - "nativeSrc": "11756:53:18", - "nodeType": "YulFunctionCall", - "src": "11756:53:18" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "11746:6:18", - "nodeType": "YulIdentifier", - "src": "11746:6:18" - } - ] + "name": "length", + "nativeSrc": "4296:6:18", + "nodeType": "YulTypedName", + "src": "4296:6:18", + "type": "" } ] }, { - "nativeSrc": "11829:118:18", - "nodeType": "YulBlock", - "src": "11829:118:18", - "statements": [ - { - "nativeSrc": "11844:16:18", - "nodeType": "YulVariableDeclaration", - "src": "11844:16:18", - "value": { - "kind": "number", - "nativeSrc": "11858:2:18", - "nodeType": "YulLiteral", - "src": "11858:2:18", - "type": "", - "value": "32" + "nativeSrc": "4354:78:18", + "nodeType": "YulAssignment", + "src": "4354:78:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "4420:3:18", + "nodeType": "YulIdentifier", + "src": "4420:3:18" }, - "variables": [ - { - "name": "offset", - "nativeSrc": "11848:6:18", - "nodeType": "YulTypedName", - "src": "11848:6:18", - "type": "" - } - ] + { + "name": "length", + "nativeSrc": "4425:6:18", + "nodeType": "YulIdentifier", + "src": "4425:6:18" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "4361:58:18", + "nodeType": "YulIdentifier", + "src": "4361:58:18" }, + "nativeSrc": "4361:71:18", + "nodeType": "YulFunctionCall", + "src": "4361:71:18" + }, + "variableNames": [ { - "nativeSrc": "11874:63:18", - "nodeType": "YulAssignment", - "src": "11874:63:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "11909:9:18", - "nodeType": "YulIdentifier", - "src": "11909:9:18" - }, - { - "name": "offset", - "nativeSrc": "11920:6:18", - "nodeType": "YulIdentifier", - "src": "11920:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "11905:3:18", - "nodeType": "YulIdentifier", - "src": "11905:3:18" - }, - "nativeSrc": "11905:22:18", - "nodeType": "YulFunctionCall", - "src": "11905:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "11929:7:18", - "nodeType": "YulIdentifier", - "src": "11929:7:18" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "11884:20:18", - "nodeType": "YulIdentifier", - "src": "11884:20:18" - }, - "nativeSrc": "11884:53:18", - "nodeType": "YulFunctionCall", - "src": "11884:53:18" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "11874:6:18", - "nodeType": "YulIdentifier", - "src": "11874:6:18" - } - ] + "name": "pos", + "nativeSrc": "4354:3:18", + "nodeType": "YulIdentifier", + "src": "4354:3:18" } ] }, { - "nativeSrc": "11957:303:18", - "nodeType": "YulBlock", - "src": "11957:303:18", - "statements": [ - { - "nativeSrc": "11972:46:18", - "nodeType": "YulVariableDeclaration", - "src": "11972:46:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "12003:9:18", - "nodeType": "YulIdentifier", - "src": "12003:9:18" - }, - { - "kind": "number", - "nativeSrc": "12014:2:18", - "nodeType": "YulLiteral", - "src": "12014:2:18", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "11999:3:18", - "nodeType": "YulIdentifier", - "src": "11999:3:18" - }, - "nativeSrc": "11999:18:18", - "nodeType": "YulFunctionCall", - "src": "11999:18:18" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "11986:12:18", - "nodeType": "YulIdentifier", - "src": "11986:12:18" - }, - "nativeSrc": "11986:32:18", - "nodeType": "YulFunctionCall", - "src": "11986:32:18" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "11976:6:18", - "nodeType": "YulTypedName", - "src": "11976:6:18", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "12065:83:18", - "nodeType": "YulBlock", - "src": "12065:83:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "12067:77:18", - "nodeType": "YulIdentifier", - "src": "12067:77:18" - }, - "nativeSrc": "12067:79:18", - "nodeType": "YulFunctionCall", - "src": "12067:79:18" - }, - "nativeSrc": "12067:79:18", - "nodeType": "YulExpressionStatement", - "src": "12067:79:18" - } - ] - }, - "condition": { + "expression": { + "arguments": [ + { "arguments": [ { - "name": "offset", - "nativeSrc": "12037:6:18", + "name": "value", + "nativeSrc": "4480:5:18", "nodeType": "YulIdentifier", - "src": "12037:6:18" + "src": "4480:5:18" }, { "kind": "number", - "nativeSrc": "12045:18:18", + "nativeSrc": "4487:4:18", "nodeType": "YulLiteral", - "src": "12045:18:18", + "src": "4487:4:18", "type": "", - "value": "0xffffffffffffffff" + "value": "0x20" } ], "functionName": { - "name": "gt", - "nativeSrc": "12034:2:18", + "name": "add", + "nativeSrc": "4476:3:18", "nodeType": "YulIdentifier", - "src": "12034:2:18" + "src": "4476:3:18" }, - "nativeSrc": "12034:30:18", + "nativeSrc": "4476:16:18", "nodeType": "YulFunctionCall", - "src": "12034:30:18" + "src": "4476:16:18" }, - "nativeSrc": "12031:117:18", - "nodeType": "YulIf", - "src": "12031:117:18" - }, - { - "nativeSrc": "12162:88:18", - "nodeType": "YulAssignment", - "src": "12162:88:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "12222:9:18", - "nodeType": "YulIdentifier", - "src": "12222:9:18" - }, - { - "name": "offset", - "nativeSrc": "12233:6:18", - "nodeType": "YulIdentifier", - "src": "12233:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12218:3:18", - "nodeType": "YulIdentifier", - "src": "12218:3:18" - }, - "nativeSrc": "12218:22:18", - "nodeType": "YulFunctionCall", - "src": "12218:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "12242:7:18", - "nodeType": "YulIdentifier", - "src": "12242:7:18" - } - ], - "functionName": { - "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "12172:45:18", - "nodeType": "YulIdentifier", - "src": "12172:45:18" - }, - "nativeSrc": "12172:78:18", - "nodeType": "YulFunctionCall", - "src": "12172:78:18" + { + "name": "pos", + "nativeSrc": "4494:3:18", + "nodeType": "YulIdentifier", + "src": "4494:3:18" }, - "variableNames": [ - { - "name": "value2", - "nativeSrc": "12162:6:18", - "nodeType": "YulIdentifier", - "src": "12162:6:18" - } - ] - } - ] + { + "name": "length", + "nativeSrc": "4499:6:18", + "nodeType": "YulIdentifier", + "src": "4499:6:18" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "4441:34:18", + "nodeType": "YulIdentifier", + "src": "4441:34:18" + }, + "nativeSrc": "4441:65:18", + "nodeType": "YulFunctionCall", + "src": "4441:65:18" + }, + "nativeSrc": "4441:65:18", + "nodeType": "YulExpressionStatement", + "src": "4441:65:18" }, { - "nativeSrc": "12270:303:18", - "nodeType": "YulBlock", - "src": "12270:303:18", - "statements": [ - { - "nativeSrc": "12285:46:18", - "nodeType": "YulVariableDeclaration", - "src": "12285:46:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "12316:9:18", - "nodeType": "YulIdentifier", - "src": "12316:9:18" - }, - { - "kind": "number", - "nativeSrc": "12327:2:18", - "nodeType": "YulLiteral", - "src": "12327:2:18", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12312:3:18", - "nodeType": "YulIdentifier", - "src": "12312:3:18" - }, - "nativeSrc": "12312:18:18", - "nodeType": "YulFunctionCall", - "src": "12312:18:18" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "12299:12:18", - "nodeType": "YulIdentifier", - "src": "12299:12:18" - }, - "nativeSrc": "12299:32:18", - "nodeType": "YulFunctionCall", - "src": "12299:32:18" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "12289:6:18", - "nodeType": "YulTypedName", - "src": "12289:6:18", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "12378:83:18", - "nodeType": "YulBlock", - "src": "12378:83:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "12380:77:18", - "nodeType": "YulIdentifier", - "src": "12380:77:18" - }, - "nativeSrc": "12380:79:18", - "nodeType": "YulFunctionCall", - "src": "12380:79:18" - }, - "nativeSrc": "12380:79:18", - "nodeType": "YulExpressionStatement", - "src": "12380:79:18" - } - ] + "nativeSrc": "4515:46:18", + "nodeType": "YulAssignment", + "src": "4515:46:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "4526:3:18", + "nodeType": "YulIdentifier", + "src": "4526:3:18" }, - "condition": { + { "arguments": [ { - "name": "offset", - "nativeSrc": "12350:6:18", + "name": "length", + "nativeSrc": "4553:6:18", "nodeType": "YulIdentifier", - "src": "12350:6:18" - }, - { - "kind": "number", - "nativeSrc": "12358:18:18", - "nodeType": "YulLiteral", - "src": "12358:18:18", - "type": "", - "value": "0xffffffffffffffff" + "src": "4553:6:18" } ], "functionName": { - "name": "gt", - "nativeSrc": "12347:2:18", + "name": "round_up_to_mul_of_32", + "nativeSrc": "4531:21:18", "nodeType": "YulIdentifier", - "src": "12347:2:18" + "src": "4531:21:18" }, - "nativeSrc": "12347:30:18", + "nativeSrc": "4531:29:18", "nodeType": "YulFunctionCall", - "src": "12347:30:18" - }, - "nativeSrc": "12344:117:18", - "nodeType": "YulIf", - "src": "12344:117:18" + "src": "4531:29:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4522:3:18", + "nodeType": "YulIdentifier", + "src": "4522:3:18" }, + "nativeSrc": "4522:39:18", + "nodeType": "YulFunctionCall", + "src": "4522:39:18" + }, + "variableNames": [ { - "nativeSrc": "12475:88:18", - "nodeType": "YulAssignment", - "src": "12475:88:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "12535:9:18", - "nodeType": "YulIdentifier", - "src": "12535:9:18" - }, - { - "name": "offset", - "nativeSrc": "12546:6:18", - "nodeType": "YulIdentifier", - "src": "12546:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12531:3:18", - "nodeType": "YulIdentifier", - "src": "12531:3:18" - }, - "nativeSrc": "12531:22:18", - "nodeType": "YulFunctionCall", - "src": "12531:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "12555:7:18", - "nodeType": "YulIdentifier", - "src": "12555:7:18" - } - ], - "functionName": { - "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "12485:45:18", - "nodeType": "YulIdentifier", - "src": "12485:45:18" - }, - "nativeSrc": "12485:78:18", - "nodeType": "YulFunctionCall", - "src": "12485:78:18" + "name": "end", + "nativeSrc": "4515:3:18", + "nodeType": "YulIdentifier", + "src": "4515:3:18" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "4190:377:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4263:5:18", + "nodeType": "YulTypedName", + "src": "4263:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "4270:3:18", + "nodeType": "YulTypedName", + "src": "4270:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "4278:3:18", + "nodeType": "YulTypedName", + "src": "4278:3:18", + "type": "" + } + ], + "src": "4190:377:18" + }, + { + "body": { + "nativeSrc": "4691:195:18", + "nodeType": "YulBlock", + "src": "4691:195:18", + "statements": [ + { + "nativeSrc": "4701:26:18", + "nodeType": "YulAssignment", + "src": "4701:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4713:9:18", + "nodeType": "YulIdentifier", + "src": "4713:9:18" }, - "variableNames": [ - { - "name": "value3", - "nativeSrc": "12475:6:18", - "nodeType": "YulIdentifier", - "src": "12475:6:18" - } - ] + { + "kind": "number", + "nativeSrc": "4724:2:18", + "nodeType": "YulLiteral", + "src": "4724:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4709:3:18", + "nodeType": "YulIdentifier", + "src": "4709:3:18" + }, + "nativeSrc": "4709:18:18", + "nodeType": "YulFunctionCall", + "src": "4709:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "4701:4:18", + "nodeType": "YulIdentifier", + "src": "4701:4:18" } ] }, { - "nativeSrc": "12583:288:18", - "nodeType": "YulBlock", - "src": "12583:288:18", - "statements": [ - { - "nativeSrc": "12598:47:18", - "nodeType": "YulVariableDeclaration", - "src": "12598:47:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "12629:9:18", - "nodeType": "YulIdentifier", - "src": "12629:9:18" - }, - { - "kind": "number", - "nativeSrc": "12640:3:18", - "nodeType": "YulLiteral", - "src": "12640:3:18", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12625:3:18", - "nodeType": "YulIdentifier", - "src": "12625:3:18" - }, - "nativeSrc": "12625:19:18", - "nodeType": "YulFunctionCall", - "src": "12625:19:18" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "12612:12:18", - "nodeType": "YulIdentifier", - "src": "12612:12:18" - }, - "nativeSrc": "12612:33:18", - "nodeType": "YulFunctionCall", - "src": "12612:33:18" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "12602:6:18", - "nodeType": "YulTypedName", - "src": "12602:6:18", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "12692:83:18", - "nodeType": "YulBlock", - "src": "12692:83:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "12694:77:18", - "nodeType": "YulIdentifier", - "src": "12694:77:18" - }, - "nativeSrc": "12694:79:18", - "nodeType": "YulFunctionCall", - "src": "12694:79:18" - }, - "nativeSrc": "12694:79:18", - "nodeType": "YulExpressionStatement", - "src": "12694:79:18" - } - ] - }, - "condition": { + "expression": { + "arguments": [ + { "arguments": [ { - "name": "offset", - "nativeSrc": "12664:6:18", + "name": "headStart", + "nativeSrc": "4748:9:18", "nodeType": "YulIdentifier", - "src": "12664:6:18" + "src": "4748:9:18" }, { "kind": "number", - "nativeSrc": "12672:18:18", + "nativeSrc": "4759:1:18", "nodeType": "YulLiteral", - "src": "12672:18:18", + "src": "4759:1:18", "type": "", - "value": "0xffffffffffffffff" + "value": "0" } ], "functionName": { - "name": "gt", - "nativeSrc": "12661:2:18", + "name": "add", + "nativeSrc": "4744:3:18", "nodeType": "YulIdentifier", - "src": "12661:2:18" + "src": "4744:3:18" }, - "nativeSrc": "12661:30:18", + "nativeSrc": "4744:17:18", "nodeType": "YulFunctionCall", - "src": "12661:30:18" + "src": "4744:17:18" }, - "nativeSrc": "12658:117:18", - "nodeType": "YulIf", - "src": "12658:117:18" - }, - { - "nativeSrc": "12789:72:18", - "nodeType": "YulAssignment", - "src": "12789:72:18", - "value": { + { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "12833:9:18", - "nodeType": "YulIdentifier", - "src": "12833:9:18" - }, - { - "name": "offset", - "nativeSrc": "12844:6:18", - "nodeType": "YulIdentifier", - "src": "12844:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12829:3:18", - "nodeType": "YulIdentifier", - "src": "12829:3:18" - }, - "nativeSrc": "12829:22:18", - "nodeType": "YulFunctionCall", - "src": "12829:22:18" + "name": "tail", + "nativeSrc": "4767:4:18", + "nodeType": "YulIdentifier", + "src": "4767:4:18" }, { - "name": "dataEnd", - "nativeSrc": "12853:7:18", + "name": "headStart", + "nativeSrc": "4773:9:18", "nodeType": "YulIdentifier", - "src": "12853:7:18" + "src": "4773:9:18" } ], "functionName": { - "name": "abi_decode_t_bytes_memory_ptr", - "nativeSrc": "12799:29:18", + "name": "sub", + "nativeSrc": "4763:3:18", "nodeType": "YulIdentifier", - "src": "12799:29:18" + "src": "4763:3:18" }, - "nativeSrc": "12799:62:18", + "nativeSrc": "4763:20:18", "nodeType": "YulFunctionCall", - "src": "12799:62:18" + "src": "4763:20:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4737:6:18", + "nodeType": "YulIdentifier", + "src": "4737:6:18" + }, + "nativeSrc": "4737:47:18", + "nodeType": "YulFunctionCall", + "src": "4737:47:18" + }, + "nativeSrc": "4737:47:18", + "nodeType": "YulExpressionStatement", + "src": "4737:47:18" + }, + { + "nativeSrc": "4793:86:18", + "nodeType": "YulAssignment", + "src": "4793:86:18", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "4865:6:18", + "nodeType": "YulIdentifier", + "src": "4865:6:18" }, - "variableNames": [ - { - "name": "value4", - "nativeSrc": "12789:6:18", - "nodeType": "YulIdentifier", - "src": "12789:6:18" - } - ] + { + "name": "tail", + "nativeSrc": "4874:4:18", + "nodeType": "YulIdentifier", + "src": "4874:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "4801:63:18", + "nodeType": "YulIdentifier", + "src": "4801:63:18" + }, + "nativeSrc": "4801:78:18", + "nodeType": "YulFunctionCall", + "src": "4801:78:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "4793:4:18", + "nodeType": "YulIdentifier", + "src": "4793:4:18" } ] } ] }, - "name": "abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr", - "nativeSrc": "11369:1509:18", + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "4573:313:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", - "nativeSrc": "11500:9:18", + "nativeSrc": "4663:9:18", "nodeType": "YulTypedName", - "src": "11500:9:18", + "src": "4663:9:18", "type": "" }, { - "name": "dataEnd", - "nativeSrc": "11511:7:18", + "name": "value0", + "nativeSrc": "4675:6:18", "nodeType": "YulTypedName", - "src": "11511:7:18", + "src": "4675:6:18", "type": "" } ], "returnVariables": [ { - "name": "value0", - "nativeSrc": "11523:6:18", - "nodeType": "YulTypedName", - "src": "11523:6:18", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "11531:6:18", - "nodeType": "YulTypedName", - "src": "11531:6:18", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "11539:6:18", + "name": "tail", + "nativeSrc": "4686:4:18", "nodeType": "YulTypedName", - "src": "11539:6:18", + "src": "4686:4:18", "type": "" - }, + } + ], + "src": "4573:313:18" + }, + { + "body": { + "nativeSrc": "4937:32:18", + "nodeType": "YulBlock", + "src": "4937:32:18", + "statements": [ + { + "nativeSrc": "4947:16:18", + "nodeType": "YulAssignment", + "src": "4947:16:18", + "value": { + "name": "value", + "nativeSrc": "4958:5:18", + "nodeType": "YulIdentifier", + "src": "4958:5:18" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "4947:7:18", + "nodeType": "YulIdentifier", + "src": "4947:7:18" + } + ] + } + ] + }, + "name": "cleanup_t_bytes32", + "nativeSrc": "4892:77:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ { - "name": "value3", - "nativeSrc": "11547:6:18", + "name": "value", + "nativeSrc": "4919:5:18", "nodeType": "YulTypedName", - "src": "11547:6:18", + "src": "4919:5:18", "type": "" - }, + } + ], + "returnVariables": [ { - "name": "value4", - "nativeSrc": "11555:6:18", + "name": "cleaned", + "nativeSrc": "4929:7:18", "nodeType": "YulTypedName", - "src": "11555:6:18", + "src": "4929:7:18", "type": "" } ], - "src": "11369:1509:18" + "src": "4892:77:18" }, { "body": { - "nativeSrc": "12967:391:18", + "nativeSrc": "5018:79:18", "nodeType": "YulBlock", - "src": "12967:391:18", + "src": "5018:79:18", "statements": [ { "body": { - "nativeSrc": "13013:83:18", + "nativeSrc": "5075:16:18", "nodeType": "YulBlock", - "src": "13013:83:18", + "src": "5075:16:18", "statements": [ { "expression": { - "arguments": [], + "arguments": [ + { + "kind": "number", + "nativeSrc": "5084:1:18", + "nodeType": "YulLiteral", + "src": "5084:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5087:1:18", + "nodeType": "YulLiteral", + "src": "5087:1:18", + "type": "", + "value": "0" + } + ], "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "13015:77:18", + "name": "revert", + "nativeSrc": "5077:6:18", "nodeType": "YulIdentifier", - "src": "13015:77:18" + "src": "5077:6:18" }, - "nativeSrc": "13015:79:18", + "nativeSrc": "5077:12:18", "nodeType": "YulFunctionCall", - "src": "13015:79:18" + "src": "5077:12:18" }, - "nativeSrc": "13015:79:18", + "nativeSrc": "5077:12:18", "nodeType": "YulExpressionStatement", - "src": "13015:79:18" + "src": "5077:12:18" } ] }, @@ -67968,290 +67654,194 @@ { "arguments": [ { - "name": "dataEnd", - "nativeSrc": "12988:7:18", + "name": "value", + "nativeSrc": "5041:5:18", "nodeType": "YulIdentifier", - "src": "12988:7:18" + "src": "5041:5:18" }, { - "name": "headStart", - "nativeSrc": "12997:9:18", - "nodeType": "YulIdentifier", - "src": "12997:9:18" + "arguments": [ + { + "name": "value", + "nativeSrc": "5066:5:18", + "nodeType": "YulIdentifier", + "src": "5066:5:18" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nativeSrc": "5048:17:18", + "nodeType": "YulIdentifier", + "src": "5048:17:18" + }, + "nativeSrc": "5048:24:18", + "nodeType": "YulFunctionCall", + "src": "5048:24:18" } ], "functionName": { - "name": "sub", - "nativeSrc": "12984:3:18", + "name": "eq", + "nativeSrc": "5038:2:18", "nodeType": "YulIdentifier", - "src": "12984:3:18" + "src": "5038:2:18" }, - "nativeSrc": "12984:23:18", + "nativeSrc": "5038:35:18", "nodeType": "YulFunctionCall", - "src": "12984:23:18" - }, - { - "kind": "number", - "nativeSrc": "13009:2:18", - "nodeType": "YulLiteral", - "src": "13009:2:18", - "type": "", - "value": "64" + "src": "5038:35:18" } ], "functionName": { - "name": "slt", - "nativeSrc": "12980:3:18", + "name": "iszero", + "nativeSrc": "5031:6:18", "nodeType": "YulIdentifier", - "src": "12980:3:18" + "src": "5031:6:18" }, - "nativeSrc": "12980:32:18", + "nativeSrc": "5031:43:18", "nodeType": "YulFunctionCall", - "src": "12980:32:18" + "src": "5031:43:18" }, - "nativeSrc": "12977:119:18", + "nativeSrc": "5028:63:18", "nodeType": "YulIf", - "src": "12977:119:18" - }, + "src": "5028:63:18" + } + ] + }, + "name": "validator_revert_t_bytes32", + "nativeSrc": "4975:122:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5011:5:18", + "nodeType": "YulTypedName", + "src": "5011:5:18", + "type": "" + } + ], + "src": "4975:122:18" + }, + { + "body": { + "nativeSrc": "5155:87:18", + "nodeType": "YulBlock", + "src": "5155:87:18", + "statements": [ { - "nativeSrc": "13106:117:18", - "nodeType": "YulBlock", - "src": "13106:117:18", - "statements": [ - { - "nativeSrc": "13121:15:18", - "nodeType": "YulVariableDeclaration", - "src": "13121:15:18", - "value": { - "kind": "number", - "nativeSrc": "13135:1:18", - "nodeType": "YulLiteral", - "src": "13135:1:18", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "13125:6:18", - "nodeType": "YulTypedName", - "src": "13125:6:18", - "type": "" - } - ] + "nativeSrc": "5165:29:18", + "nodeType": "YulAssignment", + "src": "5165:29:18", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "5187:6:18", + "nodeType": "YulIdentifier", + "src": "5187:6:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "5174:12:18", + "nodeType": "YulIdentifier", + "src": "5174:12:18" }, + "nativeSrc": "5174:20:18", + "nodeType": "YulFunctionCall", + "src": "5174:20:18" + }, + "variableNames": [ { - "nativeSrc": "13150:63:18", - "nodeType": "YulAssignment", - "src": "13150:63:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "13185:9:18", - "nodeType": "YulIdentifier", - "src": "13185:9:18" - }, - { - "name": "offset", - "nativeSrc": "13196:6:18", - "nodeType": "YulIdentifier", - "src": "13196:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "13181:3:18", - "nodeType": "YulIdentifier", - "src": "13181:3:18" - }, - "nativeSrc": "13181:22:18", - "nodeType": "YulFunctionCall", - "src": "13181:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "13205:7:18", - "nodeType": "YulIdentifier", - "src": "13205:7:18" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "13160:20:18", - "nodeType": "YulIdentifier", - "src": "13160:20:18" - }, - "nativeSrc": "13160:53:18", - "nodeType": "YulFunctionCall", - "src": "13160:53:18" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "13150:6:18", - "nodeType": "YulIdentifier", - "src": "13150:6:18" - } - ] + "name": "value", + "nativeSrc": "5165:5:18", + "nodeType": "YulIdentifier", + "src": "5165:5:18" } ] }, { - "nativeSrc": "13233:118:18", - "nodeType": "YulBlock", - "src": "13233:118:18", - "statements": [ - { - "nativeSrc": "13248:16:18", - "nodeType": "YulVariableDeclaration", - "src": "13248:16:18", - "value": { - "kind": "number", - "nativeSrc": "13262:2:18", - "nodeType": "YulLiteral", - "src": "13262:2:18", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "13252:6:18", - "nodeType": "YulTypedName", - "src": "13252:6:18", - "type": "" - } - ] + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "5230:5:18", + "nodeType": "YulIdentifier", + "src": "5230:5:18" + } + ], + "functionName": { + "name": "validator_revert_t_bytes32", + "nativeSrc": "5203:26:18", + "nodeType": "YulIdentifier", + "src": "5203:26:18" }, - { - "nativeSrc": "13278:63:18", - "nodeType": "YulAssignment", - "src": "13278:63:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "13313:9:18", - "nodeType": "YulIdentifier", - "src": "13313:9:18" - }, - { - "name": "offset", - "nativeSrc": "13324:6:18", - "nodeType": "YulIdentifier", - "src": "13324:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "13309:3:18", - "nodeType": "YulIdentifier", - "src": "13309:3:18" - }, - "nativeSrc": "13309:22:18", - "nodeType": "YulFunctionCall", - "src": "13309:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "13333:7:18", - "nodeType": "YulIdentifier", - "src": "13333:7:18" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "13288:20:18", - "nodeType": "YulIdentifier", - "src": "13288:20:18" - }, - "nativeSrc": "13288:53:18", - "nodeType": "YulFunctionCall", - "src": "13288:53:18" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "13278:6:18", - "nodeType": "YulIdentifier", - "src": "13278:6:18" - } - ] - } - ] + "nativeSrc": "5203:33:18", + "nodeType": "YulFunctionCall", + "src": "5203:33:18" + }, + "nativeSrc": "5203:33:18", + "nodeType": "YulExpressionStatement", + "src": "5203:33:18" } ] }, - "name": "abi_decode_tuple_t_bytes32t_address", - "nativeSrc": "12884:474:18", + "name": "abi_decode_t_bytes32", + "nativeSrc": "5103:139:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nativeSrc": "12929:9:18", + "name": "offset", + "nativeSrc": "5133:6:18", "nodeType": "YulTypedName", - "src": "12929:9:18", + "src": "5133:6:18", "type": "" }, { - "name": "dataEnd", - "nativeSrc": "12940:7:18", + "name": "end", + "nativeSrc": "5141:3:18", "nodeType": "YulTypedName", - "src": "12940:7:18", + "src": "5141:3:18", "type": "" } ], "returnVariables": [ { - "name": "value0", - "nativeSrc": "12952:6:18", - "nodeType": "YulTypedName", - "src": "12952:6:18", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "12960:6:18", + "name": "value", + "nativeSrc": "5149:5:18", "nodeType": "YulTypedName", - "src": "12960:6:18", + "src": "5149:5:18", "type": "" } ], - "src": "12884:474:18" + "src": "5103:139:18" }, { "body": { - "nativeSrc": "13440:433:18", + "nativeSrc": "5314:263:18", "nodeType": "YulBlock", - "src": "13440:433:18", + "src": "5314:263:18", "statements": [ { "body": { - "nativeSrc": "13486:83:18", + "nativeSrc": "5360:83:18", "nodeType": "YulBlock", - "src": "13486:83:18", + "src": "5360:83:18", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "13488:77:18", + "nativeSrc": "5362:77:18", "nodeType": "YulIdentifier", - "src": "13488:77:18" + "src": "5362:77:18" }, - "nativeSrc": "13488:79:18", + "nativeSrc": "5362:79:18", "nodeType": "YulFunctionCall", - "src": "13488:79:18" + "src": "5362:79:18" }, - "nativeSrc": "13488:79:18", + "nativeSrc": "5362:79:18", "nodeType": "YulExpressionStatement", - "src": "13488:79:18" + "src": "5362:79:18" } ] }, @@ -68261,219 +67851,131 @@ "arguments": [ { "name": "dataEnd", - "nativeSrc": "13461:7:18", + "nativeSrc": "5335:7:18", "nodeType": "YulIdentifier", - "src": "13461:7:18" + "src": "5335:7:18" }, { "name": "headStart", - "nativeSrc": "13470:9:18", + "nativeSrc": "5344:9:18", "nodeType": "YulIdentifier", - "src": "13470:9:18" + "src": "5344:9:18" } ], "functionName": { "name": "sub", - "nativeSrc": "13457:3:18", - "nodeType": "YulIdentifier", - "src": "13457:3:18" - }, - "nativeSrc": "13457:23:18", - "nodeType": "YulFunctionCall", - "src": "13457:23:18" - }, - { - "kind": "number", - "nativeSrc": "13482:2:18", - "nodeType": "YulLiteral", - "src": "13482:2:18", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "13453:3:18", - "nodeType": "YulIdentifier", - "src": "13453:3:18" - }, - "nativeSrc": "13453:32:18", - "nodeType": "YulFunctionCall", - "src": "13453:32:18" - }, - "nativeSrc": "13450:119:18", - "nodeType": "YulIf", - "src": "13450:119:18" - }, - { - "nativeSrc": "13579:287:18", - "nodeType": "YulBlock", - "src": "13579:287:18", - "statements": [ - { - "nativeSrc": "13594:45:18", - "nodeType": "YulVariableDeclaration", - "src": "13594:45:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "13625:9:18", - "nodeType": "YulIdentifier", - "src": "13625:9:18" - }, - { - "kind": "number", - "nativeSrc": "13636:1:18", - "nodeType": "YulLiteral", - "src": "13636:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "13621:3:18", - "nodeType": "YulIdentifier", - "src": "13621:3:18" - }, - "nativeSrc": "13621:17:18", - "nodeType": "YulFunctionCall", - "src": "13621:17:18" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "13608:12:18", + "nativeSrc": "5331:3:18", "nodeType": "YulIdentifier", - "src": "13608:12:18" + "src": "5331:3:18" }, - "nativeSrc": "13608:31:18", + "nativeSrc": "5331:23:18", "nodeType": "YulFunctionCall", - "src": "13608:31:18" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "13598:6:18", - "nodeType": "YulTypedName", - "src": "13598:6:18", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "13686:83:18", - "nodeType": "YulBlock", - "src": "13686:83:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "13688:77:18", - "nodeType": "YulIdentifier", - "src": "13688:77:18" - }, - "nativeSrc": "13688:79:18", - "nodeType": "YulFunctionCall", - "src": "13688:79:18" - }, - "nativeSrc": "13688:79:18", - "nodeType": "YulExpressionStatement", - "src": "13688:79:18" - } - ] + "src": "5331:23:18" }, - "condition": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "13658:6:18", - "nodeType": "YulIdentifier", - "src": "13658:6:18" - }, - { - "kind": "number", - "nativeSrc": "13666:18:18", - "nodeType": "YulLiteral", - "src": "13666:18:18", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "13655:2:18", - "nodeType": "YulIdentifier", - "src": "13655:2:18" - }, - "nativeSrc": "13655:30:18", - "nodeType": "YulFunctionCall", - "src": "13655:30:18" + { + "kind": "number", + "nativeSrc": "5356:2:18", + "nodeType": "YulLiteral", + "src": "5356:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "5327:3:18", + "nodeType": "YulIdentifier", + "src": "5327:3:18" + }, + "nativeSrc": "5327:32:18", + "nodeType": "YulFunctionCall", + "src": "5327:32:18" + }, + "nativeSrc": "5324:119:18", + "nodeType": "YulIf", + "src": "5324:119:18" + }, + { + "nativeSrc": "5453:117:18", + "nodeType": "YulBlock", + "src": "5453:117:18", + "statements": [ + { + "nativeSrc": "5468:15:18", + "nodeType": "YulVariableDeclaration", + "src": "5468:15:18", + "value": { + "kind": "number", + "nativeSrc": "5482:1:18", + "nodeType": "YulLiteral", + "src": "5482:1:18", + "type": "", + "value": "0" }, - "nativeSrc": "13652:117:18", - "nodeType": "YulIf", - "src": "13652:117:18" + "variables": [ + { + "name": "offset", + "nativeSrc": "5472:6:18", + "nodeType": "YulTypedName", + "src": "5472:6:18", + "type": "" + } + ] }, { - "nativeSrc": "13783:73:18", + "nativeSrc": "5497:63:18", "nodeType": "YulAssignment", - "src": "13783:73:18", + "src": "5497:63:18", "value": { "arguments": [ { "arguments": [ { "name": "headStart", - "nativeSrc": "13828:9:18", + "nativeSrc": "5532:9:18", "nodeType": "YulIdentifier", - "src": "13828:9:18" + "src": "5532:9:18" }, { "name": "offset", - "nativeSrc": "13839:6:18", + "nativeSrc": "5543:6:18", "nodeType": "YulIdentifier", - "src": "13839:6:18" + "src": "5543:6:18" } ], "functionName": { "name": "add", - "nativeSrc": "13824:3:18", + "nativeSrc": "5528:3:18", "nodeType": "YulIdentifier", - "src": "13824:3:18" + "src": "5528:3:18" }, - "nativeSrc": "13824:22:18", + "nativeSrc": "5528:22:18", "nodeType": "YulFunctionCall", - "src": "13824:22:18" + "src": "5528:22:18" }, { "name": "dataEnd", - "nativeSrc": "13848:7:18", + "nativeSrc": "5552:7:18", "nodeType": "YulIdentifier", - "src": "13848:7:18" + "src": "5552:7:18" } ], "functionName": { - "name": "abi_decode_t_string_memory_ptr", - "nativeSrc": "13793:30:18", + "name": "abi_decode_t_bytes32", + "nativeSrc": "5507:20:18", "nodeType": "YulIdentifier", - "src": "13793:30:18" + "src": "5507:20:18" }, - "nativeSrc": "13793:63:18", + "nativeSrc": "5507:53:18", "nodeType": "YulFunctionCall", - "src": "13793:63:18" + "src": "5507:53:18" }, "variableNames": [ { "name": "value0", - "nativeSrc": "13783:6:18", + "nativeSrc": "5497:6:18", "nodeType": "YulIdentifier", - "src": "13783:6:18" + "src": "5497:6:18" } ] } @@ -68481,745 +67983,479 @@ } ] }, - "name": "abi_decode_tuple_t_string_memory_ptr", - "nativeSrc": "13364:509:18", + "name": "abi_decode_tuple_t_bytes32", + "nativeSrc": "5248:329:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", - "nativeSrc": "13410:9:18", + "nativeSrc": "5284:9:18", "nodeType": "YulTypedName", - "src": "13410:9:18", + "src": "5284:9:18", "type": "" }, { "name": "dataEnd", - "nativeSrc": "13421:7:18", + "nativeSrc": "5295:7:18", "nodeType": "YulTypedName", - "src": "13421:7:18", + "src": "5295:7:18", "type": "" } ], "returnVariables": [ { "name": "value0", - "nativeSrc": "13433:6:18", + "nativeSrc": "5307:6:18", "nodeType": "YulTypedName", - "src": "13433:6:18", + "src": "5307:6:18", "type": "" } ], - "src": "13364:509:18" + "src": "5248:329:18" }, { "body": { - "nativeSrc": "13961:229:18", + "nativeSrc": "5648:53:18", "nodeType": "YulBlock", - "src": "13961:229:18", + "src": "5648:53:18", "statements": [ { - "body": { - "nativeSrc": "14066:22:18", - "nodeType": "YulBlock", - "src": "14066:22:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "14068:16:18", - "nodeType": "YulIdentifier", - "src": "14068:16:18" - }, - "nativeSrc": "14068:18:18", - "nodeType": "YulFunctionCall", - "src": "14068:18:18" - }, - "nativeSrc": "14068:18:18", - "nodeType": "YulExpressionStatement", - "src": "14068:18:18" - } - ] - }, - "condition": { + "expression": { "arguments": [ { - "name": "length", - "nativeSrc": "14038:6:18", + "name": "pos", + "nativeSrc": "5665:3:18", "nodeType": "YulIdentifier", - "src": "14038:6:18" + "src": "5665:3:18" }, { - "kind": "number", - "nativeSrc": "14046:18:18", - "nodeType": "YulLiteral", - "src": "14046:18:18", - "type": "", - "value": "0xffffffffffffffff" + "arguments": [ + { + "name": "value", + "nativeSrc": "5688:5:18", + "nodeType": "YulIdentifier", + "src": "5688:5:18" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nativeSrc": "5670:17:18", + "nodeType": "YulIdentifier", + "src": "5670:17:18" + }, + "nativeSrc": "5670:24:18", + "nodeType": "YulFunctionCall", + "src": "5670:24:18" } ], "functionName": { - "name": "gt", - "nativeSrc": "14035:2:18", + "name": "mstore", + "nativeSrc": "5658:6:18", "nodeType": "YulIdentifier", - "src": "14035:2:18" + "src": "5658:6:18" }, - "nativeSrc": "14035:30:18", + "nativeSrc": "5658:37:18", "nodeType": "YulFunctionCall", - "src": "14035:30:18" + "src": "5658:37:18" }, - "nativeSrc": "14032:56:18", - "nodeType": "YulIf", - "src": "14032:56:18" - }, + "nativeSrc": "5658:37:18", + "nodeType": "YulExpressionStatement", + "src": "5658:37:18" + } + ] + }, + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "5583:118:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5636:5:18", + "nodeType": "YulTypedName", + "src": "5636:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "5643:3:18", + "nodeType": "YulTypedName", + "src": "5643:3:18", + "type": "" + } + ], + "src": "5583:118:18" + }, + { + "body": { + "nativeSrc": "5805:124:18", + "nodeType": "YulBlock", + "src": "5805:124:18", + "statements": [ { - "nativeSrc": "14098:25:18", + "nativeSrc": "5815:26:18", "nodeType": "YulAssignment", - "src": "14098:25:18", + "src": "5815:26:18", "value": { "arguments": [ { - "name": "length", - "nativeSrc": "14110:6:18", + "name": "headStart", + "nativeSrc": "5827:9:18", "nodeType": "YulIdentifier", - "src": "14110:6:18" + "src": "5827:9:18" }, { "kind": "number", - "nativeSrc": "14118:4:18", + "nativeSrc": "5838:2:18", "nodeType": "YulLiteral", - "src": "14118:4:18", + "src": "5838:2:18", "type": "", - "value": "0x20" + "value": "32" } ], "functionName": { - "name": "mul", - "nativeSrc": "14106:3:18", + "name": "add", + "nativeSrc": "5823:3:18", "nodeType": "YulIdentifier", - "src": "14106:3:18" + "src": "5823:3:18" }, - "nativeSrc": "14106:17:18", + "nativeSrc": "5823:18:18", "nodeType": "YulFunctionCall", - "src": "14106:17:18" + "src": "5823:18:18" }, "variableNames": [ { - "name": "size", - "nativeSrc": "14098:4:18", + "name": "tail", + "nativeSrc": "5815:4:18", "nodeType": "YulIdentifier", - "src": "14098:4:18" + "src": "5815:4:18" } ] }, { - "nativeSrc": "14160:23:18", - "nodeType": "YulAssignment", - "src": "14160:23:18", - "value": { + "expression": { "arguments": [ { - "name": "size", - "nativeSrc": "14172:4:18", + "name": "value0", + "nativeSrc": "5895:6:18", "nodeType": "YulIdentifier", - "src": "14172:4:18" + "src": "5895:6:18" }, { - "kind": "number", - "nativeSrc": "14178:4:18", - "nodeType": "YulLiteral", - "src": "14178:4:18", - "type": "", - "value": "0x20" + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5908:9:18", + "nodeType": "YulIdentifier", + "src": "5908:9:18" + }, + { + "kind": "number", + "nativeSrc": "5919:1:18", + "nodeType": "YulLiteral", + "src": "5919:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5904:3:18", + "nodeType": "YulIdentifier", + "src": "5904:3:18" + }, + "nativeSrc": "5904:17:18", + "nodeType": "YulFunctionCall", + "src": "5904:17:18" } ], "functionName": { - "name": "add", - "nativeSrc": "14168:3:18", + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "5851:43:18", "nodeType": "YulIdentifier", - "src": "14168:3:18" + "src": "5851:43:18" }, - "nativeSrc": "14168:15:18", + "nativeSrc": "5851:71:18", "nodeType": "YulFunctionCall", - "src": "14168:15:18" + "src": "5851:71:18" }, - "variableNames": [ - { - "name": "size", - "nativeSrc": "14160:4:18", - "nodeType": "YulIdentifier", - "src": "14160:4:18" - } - ] + "nativeSrc": "5851:71:18", + "nodeType": "YulExpressionStatement", + "src": "5851:71:18" } ] }, - "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", - "nativeSrc": "13879:311:18", + "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", + "nativeSrc": "5707:222:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "length", - "nativeSrc": "13945:6:18", + "name": "headStart", + "nativeSrc": "5777:9:18", + "nodeType": "YulTypedName", + "src": "5777:9:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "5789:6:18", "nodeType": "YulTypedName", - "src": "13945:6:18", + "src": "5789:6:18", "type": "" } ], "returnVariables": [ { - "name": "size", - "nativeSrc": "13956:4:18", + "name": "tail", + "nativeSrc": "5800:4:18", "nodeType": "YulTypedName", - "src": "13956:4:18", + "src": "5800:4:18", "type": "" } ], - "src": "13879:311:18" + "src": "5707:222:18" }, { "body": { - "nativeSrc": "14315:608:18", + "nativeSrc": "6024:28:18", "nodeType": "YulBlock", - "src": "14315:608:18", + "src": "6024:28:18", "statements": [ - { - "nativeSrc": "14325:90:18", - "nodeType": "YulAssignment", - "src": "14325:90:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nativeSrc": "14407:6:18", - "nodeType": "YulIdentifier", - "src": "14407:6:18" - } - ], - "functionName": { - "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", - "nativeSrc": "14350:56:18", - "nodeType": "YulIdentifier", - "src": "14350:56:18" - }, - "nativeSrc": "14350:64:18", - "nodeType": "YulFunctionCall", - "src": "14350:64:18" - } - ], - "functionName": { - "name": "allocate_memory", - "nativeSrc": "14334:15:18", - "nodeType": "YulIdentifier", - "src": "14334:15:18" - }, - "nativeSrc": "14334:81:18", - "nodeType": "YulFunctionCall", - "src": "14334:81:18" - }, - "variableNames": [ - { - "name": "array", - "nativeSrc": "14325:5:18", - "nodeType": "YulIdentifier", - "src": "14325:5:18" - } - ] - }, - { - "nativeSrc": "14424:16:18", - "nodeType": "YulVariableDeclaration", - "src": "14424:16:18", - "value": { - "name": "array", - "nativeSrc": "14435:5:18", - "nodeType": "YulIdentifier", - "src": "14435:5:18" - }, - "variables": [ - { - "name": "dst", - "nativeSrc": "14428:3:18", - "nodeType": "YulTypedName", - "src": "14428:3:18", - "type": "" - } - ] - }, { "expression": { "arguments": [ { - "name": "array", - "nativeSrc": "14457:5:18", - "nodeType": "YulIdentifier", - "src": "14457:5:18" + "kind": "number", + "nativeSrc": "6041:1:18", + "nodeType": "YulLiteral", + "src": "6041:1:18", + "type": "", + "value": "0" }, { - "name": "length", - "nativeSrc": "14464:6:18", - "nodeType": "YulIdentifier", - "src": "14464:6:18" + "kind": "number", + "nativeSrc": "6044:1:18", + "nodeType": "YulLiteral", + "src": "6044:1:18", + "type": "", + "value": "0" } ], "functionName": { - "name": "mstore", - "nativeSrc": "14450:6:18", + "name": "revert", + "nativeSrc": "6034:6:18", "nodeType": "YulIdentifier", - "src": "14450:6:18" + "src": "6034:6:18" }, - "nativeSrc": "14450:21:18", + "nativeSrc": "6034:12:18", "nodeType": "YulFunctionCall", - "src": "14450:21:18" + "src": "6034:12:18" }, - "nativeSrc": "14450:21:18", + "nativeSrc": "6034:12:18", "nodeType": "YulExpressionStatement", - "src": "14450:21:18" - }, + "src": "6034:12:18" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "5935:117:18", + "nodeType": "YulFunctionDefinition", + "src": "5935:117:18" + }, + { + "body": { + "nativeSrc": "6086:152:18", + "nodeType": "YulBlock", + "src": "6086:152:18", + "statements": [ { - "nativeSrc": "14480:23:18", - "nodeType": "YulAssignment", - "src": "14480:23:18", - "value": { + "expression": { "arguments": [ { - "name": "array", - "nativeSrc": "14491:5:18", - "nodeType": "YulIdentifier", - "src": "14491:5:18" + "kind": "number", + "nativeSrc": "6103:1:18", + "nodeType": "YulLiteral", + "src": "6103:1:18", + "type": "", + "value": "0" }, { "kind": "number", - "nativeSrc": "14498:4:18", + "nativeSrc": "6106:77:18", "nodeType": "YulLiteral", - "src": "14498:4:18", + "src": "6106:77:18", "type": "", - "value": "0x20" + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { - "name": "add", - "nativeSrc": "14487:3:18", + "name": "mstore", + "nativeSrc": "6096:6:18", "nodeType": "YulIdentifier", - "src": "14487:3:18" + "src": "6096:6:18" }, - "nativeSrc": "14487:16:18", + "nativeSrc": "6096:88:18", "nodeType": "YulFunctionCall", - "src": "14487:16:18" + "src": "6096:88:18" }, - "variableNames": [ - { - "name": "dst", - "nativeSrc": "14480:3:18", - "nodeType": "YulIdentifier", - "src": "14480:3:18" - } - ] + "nativeSrc": "6096:88:18", + "nodeType": "YulExpressionStatement", + "src": "6096:88:18" }, { - "nativeSrc": "14513:44:18", - "nodeType": "YulVariableDeclaration", - "src": "14513:44:18", - "value": { + "expression": { "arguments": [ { - "name": "offset", - "nativeSrc": "14531:6:18", - "nodeType": "YulIdentifier", - "src": "14531:6:18" + "kind": "number", + "nativeSrc": "6200:1:18", + "nodeType": "YulLiteral", + "src": "6200:1:18", + "type": "", + "value": "4" }, { - "arguments": [ - { - "name": "length", - "nativeSrc": "14543:6:18", - "nodeType": "YulIdentifier", - "src": "14543:6:18" - }, - { - "kind": "number", - "nativeSrc": "14551:4:18", - "nodeType": "YulLiteral", - "src": "14551:4:18", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "mul", - "nativeSrc": "14539:3:18", - "nodeType": "YulIdentifier", - "src": "14539:3:18" - }, - "nativeSrc": "14539:17:18", - "nodeType": "YulFunctionCall", - "src": "14539:17:18" + "kind": "number", + "nativeSrc": "6203:4:18", + "nodeType": "YulLiteral", + "src": "6203:4:18", + "type": "", + "value": "0x41" } ], "functionName": { - "name": "add", - "nativeSrc": "14527:3:18", + "name": "mstore", + "nativeSrc": "6193:6:18", "nodeType": "YulIdentifier", - "src": "14527:3:18" + "src": "6193:6:18" }, - "nativeSrc": "14527:30:18", + "nativeSrc": "6193:15:18", "nodeType": "YulFunctionCall", - "src": "14527:30:18" + "src": "6193:15:18" }, - "variables": [ - { - "name": "srcEnd", - "nativeSrc": "14517:6:18", - "nodeType": "YulTypedName", - "src": "14517:6:18", - "type": "" - } - ] + "nativeSrc": "6193:15:18", + "nodeType": "YulExpressionStatement", + "src": "6193:15:18" }, { - "body": { - "nativeSrc": "14585:103:18", - "nodeType": "YulBlock", - "src": "14585:103:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", - "nativeSrc": "14599:77:18", - "nodeType": "YulIdentifier", - "src": "14599:77:18" - }, - "nativeSrc": "14599:79:18", - "nodeType": "YulFunctionCall", - "src": "14599:79:18" - }, - "nativeSrc": "14599:79:18", - "nodeType": "YulExpressionStatement", - "src": "14599:79:18" - } - ] - }, - "condition": { + "expression": { "arguments": [ { - "name": "srcEnd", - "nativeSrc": "14572:6:18", - "nodeType": "YulIdentifier", - "src": "14572:6:18" + "kind": "number", + "nativeSrc": "6224:1:18", + "nodeType": "YulLiteral", + "src": "6224:1:18", + "type": "", + "value": "0" }, { - "name": "end", - "nativeSrc": "14580:3:18", - "nodeType": "YulIdentifier", - "src": "14580:3:18" + "kind": "number", + "nativeSrc": "6227:4:18", + "nodeType": "YulLiteral", + "src": "6227:4:18", + "type": "", + "value": "0x24" } ], "functionName": { - "name": "gt", - "nativeSrc": "14569:2:18", + "name": "revert", + "nativeSrc": "6217:6:18", "nodeType": "YulIdentifier", - "src": "14569:2:18" + "src": "6217:6:18" }, - "nativeSrc": "14569:15:18", + "nativeSrc": "6217:15:18", "nodeType": "YulFunctionCall", - "src": "14569:15:18" + "src": "6217:15:18" }, - "nativeSrc": "14566:122:18", - "nodeType": "YulIf", - "src": "14566:122:18" - }, + "nativeSrc": "6217:15:18", + "nodeType": "YulExpressionStatement", + "src": "6217:15:18" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "6058:180:18", + "nodeType": "YulFunctionDefinition", + "src": "6058:180:18" + }, + { + "body": { + "nativeSrc": "6287:238:18", + "nodeType": "YulBlock", + "src": "6287:238:18", + "statements": [ { - "body": { - "nativeSrc": "14773:144:18", - "nodeType": "YulBlock", - "src": "14773:144:18", - "statements": [ - { - "nativeSrc": "14788:21:18", - "nodeType": "YulVariableDeclaration", - "src": "14788:21:18", - "value": { - "name": "src", - "nativeSrc": "14806:3:18", - "nodeType": "YulIdentifier", - "src": "14806:3:18" - }, - "variables": [ - { - "name": "elementPos", - "nativeSrc": "14792:10:18", - "nodeType": "YulTypedName", - "src": "14792:10:18", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "dst", - "nativeSrc": "14830:3:18", - "nodeType": "YulIdentifier", - "src": "14830:3:18" - }, - { - "arguments": [ - { - "name": "elementPos", - "nativeSrc": "14856:10:18", - "nodeType": "YulIdentifier", - "src": "14856:10:18" - }, - { - "name": "end", - "nativeSrc": "14868:3:18", - "nodeType": "YulIdentifier", - "src": "14868:3:18" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "14835:20:18", - "nodeType": "YulIdentifier", - "src": "14835:20:18" - }, - "nativeSrc": "14835:37:18", - "nodeType": "YulFunctionCall", - "src": "14835:37:18" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "14823:6:18", - "nodeType": "YulIdentifier", - "src": "14823:6:18" - }, - "nativeSrc": "14823:50:18", - "nodeType": "YulFunctionCall", - "src": "14823:50:18" - }, - "nativeSrc": "14823:50:18", - "nodeType": "YulExpressionStatement", - "src": "14823:50:18" - }, - { - "nativeSrc": "14886:21:18", - "nodeType": "YulAssignment", - "src": "14886:21:18", - "value": { - "arguments": [ - { - "name": "dst", - "nativeSrc": "14897:3:18", - "nodeType": "YulIdentifier", - "src": "14897:3:18" - }, - { - "kind": "number", - "nativeSrc": "14902:4:18", - "nodeType": "YulLiteral", - "src": "14902:4:18", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "14893:3:18", - "nodeType": "YulIdentifier", - "src": "14893:3:18" - }, - "nativeSrc": "14893:14:18", - "nodeType": "YulFunctionCall", - "src": "14893:14:18" - }, - "variableNames": [ - { - "name": "dst", - "nativeSrc": "14886:3:18", - "nodeType": "YulIdentifier", - "src": "14886:3:18" - } - ] - } - ] - }, - "condition": { + "nativeSrc": "6297:58:18", + "nodeType": "YulVariableDeclaration", + "src": "6297:58:18", + "value": { "arguments": [ { - "name": "src", - "nativeSrc": "14726:3:18", + "name": "memPtr", + "nativeSrc": "6319:6:18", "nodeType": "YulIdentifier", - "src": "14726:3:18" + "src": "6319:6:18" }, { - "name": "srcEnd", - "nativeSrc": "14731:6:18", - "nodeType": "YulIdentifier", - "src": "14731:6:18" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "14723:2:18", - "nodeType": "YulIdentifier", - "src": "14723:2:18" - }, - "nativeSrc": "14723:15:18", - "nodeType": "YulFunctionCall", - "src": "14723:15:18" - }, - "nativeSrc": "14697:220:18", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "14739:25:18", - "nodeType": "YulBlock", - "src": "14739:25:18", - "statements": [ - { - "nativeSrc": "14741:21:18", - "nodeType": "YulAssignment", - "src": "14741:21:18", - "value": { - "arguments": [ - { - "name": "src", - "nativeSrc": "14752:3:18", - "nodeType": "YulIdentifier", - "src": "14752:3:18" - }, - { - "kind": "number", - "nativeSrc": "14757:4:18", - "nodeType": "YulLiteral", - "src": "14757:4:18", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "14748:3:18", - "nodeType": "YulIdentifier", - "src": "14748:3:18" - }, - "nativeSrc": "14748:14:18", - "nodeType": "YulFunctionCall", - "src": "14748:14:18" - }, - "variableNames": [ + "arguments": [ { - "name": "src", - "nativeSrc": "14741:3:18", + "name": "size", + "nativeSrc": "6349:4:18", "nodeType": "YulIdentifier", - "src": "14741:3:18" + "src": "6349:4:18" } - ] - } - ] - }, - "pre": { - "nativeSrc": "14701:21:18", - "nodeType": "YulBlock", - "src": "14701:21:18", - "statements": [ - { - "nativeSrc": "14703:17:18", - "nodeType": "YulVariableDeclaration", - "src": "14703:17:18", - "value": { - "name": "offset", - "nativeSrc": "14714:6:18", + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "6327:21:18", "nodeType": "YulIdentifier", - "src": "14714:6:18" + "src": "6327:21:18" }, - "variables": [ - { - "name": "src", - "nativeSrc": "14707:3:18", - "nodeType": "YulTypedName", - "src": "14707:3:18", - "type": "" - } - ] + "nativeSrc": "6327:27:18", + "nodeType": "YulFunctionCall", + "src": "6327:27:18" } - ] - }, - "src": "14697:220:18" - } - ] - }, - "name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr", - "nativeSrc": "14213:710:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "14285:6:18", - "nodeType": "YulTypedName", - "src": "14285:6:18", - "type": "" - }, - { - "name": "length", - "nativeSrc": "14293:6:18", - "nodeType": "YulTypedName", - "src": "14293:6:18", - "type": "" - }, - { - "name": "end", - "nativeSrc": "14301:3:18", - "nodeType": "YulTypedName", - "src": "14301:3:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nativeSrc": "14309:5:18", - "nodeType": "YulTypedName", - "src": "14309:5:18", - "type": "" - } - ], - "src": "14213:710:18" - }, - { - "body": { - "nativeSrc": "15023:293:18", - "nodeType": "YulBlock", - "src": "15023:293:18", - "statements": [ + ], + "functionName": { + "name": "add", + "nativeSrc": "6315:3:18", + "nodeType": "YulIdentifier", + "src": "6315:3:18" + }, + "nativeSrc": "6315:40:18", + "nodeType": "YulFunctionCall", + "src": "6315:40:18" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "6301:10:18", + "nodeType": "YulTypedName", + "src": "6301:10:18", + "type": "" + } + ] + }, { "body": { - "nativeSrc": "15072:83:18", + "nativeSrc": "6466:22:18", "nodeType": "YulBlock", - "src": "15072:83:18", + "src": "6466:22:18", "statements": [ { "expression": { "arguments": [], "functionName": { - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "15074:77:18", + "name": "panic_error_0x41", + "nativeSrc": "6468:16:18", "nodeType": "YulIdentifier", - "src": "15074:77:18" + "src": "6468:16:18" }, - "nativeSrc": "15074:79:18", + "nativeSrc": "6468:18:18", "nodeType": "YulFunctionCall", - "src": "15074:79:18" + "src": "6468:18:18" }, - "nativeSrc": "15074:79:18", + "nativeSrc": "6468:18:18", "nodeType": "YulExpressionStatement", - "src": "15074:79:18" + "src": "6468:18:18" } ] }, @@ -69228,1785 +68464,2014 @@ { "arguments": [ { - "arguments": [ - { - "name": "offset", - "nativeSrc": "15051:6:18", - "nodeType": "YulIdentifier", - "src": "15051:6:18" - }, - { - "kind": "number", - "nativeSrc": "15059:4:18", - "nodeType": "YulLiteral", - "src": "15059:4:18", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "15047:3:18", - "nodeType": "YulIdentifier", - "src": "15047:3:18" - }, - "nativeSrc": "15047:17:18", - "nodeType": "YulFunctionCall", - "src": "15047:17:18" + "name": "newFreePtr", + "nativeSrc": "6409:10:18", + "nodeType": "YulIdentifier", + "src": "6409:10:18" }, { - "name": "end", - "nativeSrc": "15066:3:18", + "kind": "number", + "nativeSrc": "6421:18:18", + "nodeType": "YulLiteral", + "src": "6421:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "6406:2:18", + "nodeType": "YulIdentifier", + "src": "6406:2:18" + }, + "nativeSrc": "6406:34:18", + "nodeType": "YulFunctionCall", + "src": "6406:34:18" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "6445:10:18", + "nodeType": "YulIdentifier", + "src": "6445:10:18" + }, + { + "name": "memPtr", + "nativeSrc": "6457:6:18", "nodeType": "YulIdentifier", - "src": "15066:3:18" + "src": "6457:6:18" } ], "functionName": { - "name": "slt", - "nativeSrc": "15043:3:18", + "name": "lt", + "nativeSrc": "6442:2:18", "nodeType": "YulIdentifier", - "src": "15043:3:18" + "src": "6442:2:18" }, - "nativeSrc": "15043:27:18", + "nativeSrc": "6442:22:18", "nodeType": "YulFunctionCall", - "src": "15043:27:18" + "src": "6442:22:18" } ], "functionName": { - "name": "iszero", - "nativeSrc": "15036:6:18", + "name": "or", + "nativeSrc": "6403:2:18", "nodeType": "YulIdentifier", - "src": "15036:6:18" + "src": "6403:2:18" }, - "nativeSrc": "15036:35:18", + "nativeSrc": "6403:62:18", "nodeType": "YulFunctionCall", - "src": "15036:35:18" + "src": "6403:62:18" }, - "nativeSrc": "15033:122:18", + "nativeSrc": "6400:88:18", "nodeType": "YulIf", - "src": "15033:122:18" + "src": "6400:88:18" }, { - "nativeSrc": "15164:34:18", - "nodeType": "YulVariableDeclaration", - "src": "15164:34:18", - "value": { + "expression": { "arguments": [ { - "name": "offset", - "nativeSrc": "15191:6:18", + "kind": "number", + "nativeSrc": "6504:2:18", + "nodeType": "YulLiteral", + "src": "6504:2:18", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "6508:10:18", "nodeType": "YulIdentifier", - "src": "15191:6:18" + "src": "6508:10:18" } ], "functionName": { - "name": "calldataload", - "nativeSrc": "15178:12:18", + "name": "mstore", + "nativeSrc": "6497:6:18", "nodeType": "YulIdentifier", - "src": "15178:12:18" + "src": "6497:6:18" }, - "nativeSrc": "15178:20:18", + "nativeSrc": "6497:22:18", "nodeType": "YulFunctionCall", - "src": "15178:20:18" + "src": "6497:22:18" }, - "variables": [ + "nativeSrc": "6497:22:18", + "nodeType": "YulExpressionStatement", + "src": "6497:22:18" + } + ] + }, + "name": "finalize_allocation", + "nativeSrc": "6244:281:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "6273:6:18", + "nodeType": "YulTypedName", + "src": "6273:6:18", + "type": "" + }, + { + "name": "size", + "nativeSrc": "6281:4:18", + "nodeType": "YulTypedName", + "src": "6281:4:18", + "type": "" + } + ], + "src": "6244:281:18" + }, + { + "body": { + "nativeSrc": "6572:88:18", + "nodeType": "YulBlock", + "src": "6572:88:18", + "statements": [ + { + "nativeSrc": "6582:30:18", + "nodeType": "YulAssignment", + "src": "6582:30:18", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nativeSrc": "6592:18:18", + "nodeType": "YulIdentifier", + "src": "6592:18:18" + }, + "nativeSrc": "6592:20:18", + "nodeType": "YulFunctionCall", + "src": "6592:20:18" + }, + "variableNames": [ { - "name": "length", - "nativeSrc": "15168:6:18", - "nodeType": "YulTypedName", - "src": "15168:6:18", - "type": "" + "name": "memPtr", + "nativeSrc": "6582:6:18", + "nodeType": "YulIdentifier", + "src": "6582:6:18" } ] }, { - "nativeSrc": "15207:103:18", - "nodeType": "YulAssignment", - "src": "15207:103:18", - "value": { + "expression": { "arguments": [ { - "arguments": [ - { - "name": "offset", - "nativeSrc": "15283:6:18", - "nodeType": "YulIdentifier", - "src": "15283:6:18" - }, - { - "kind": "number", - "nativeSrc": "15291:4:18", - "nodeType": "YulLiteral", - "src": "15291:4:18", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "15279:3:18", - "nodeType": "YulIdentifier", - "src": "15279:3:18" - }, - "nativeSrc": "15279:17:18", - "nodeType": "YulFunctionCall", - "src": "15279:17:18" - }, - { - "name": "length", - "nativeSrc": "15298:6:18", + "name": "memPtr", + "nativeSrc": "6641:6:18", "nodeType": "YulIdentifier", - "src": "15298:6:18" + "src": "6641:6:18" }, { - "name": "end", - "nativeSrc": "15306:3:18", + "name": "size", + "nativeSrc": "6649:4:18", "nodeType": "YulIdentifier", - "src": "15306:3:18" + "src": "6649:4:18" } ], "functionName": { - "name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr", - "nativeSrc": "15216:62:18", + "name": "finalize_allocation", + "nativeSrc": "6621:19:18", "nodeType": "YulIdentifier", - "src": "15216:62:18" + "src": "6621:19:18" }, - "nativeSrc": "15216:94:18", + "nativeSrc": "6621:33:18", "nodeType": "YulFunctionCall", - "src": "15216:94:18" + "src": "6621:33:18" }, - "variableNames": [ - { - "name": "array", - "nativeSrc": "15207:5:18", - "nodeType": "YulIdentifier", - "src": "15207:5:18" - } - ] + "nativeSrc": "6621:33:18", + "nodeType": "YulExpressionStatement", + "src": "6621:33:18" } ] }, - "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr", - "nativeSrc": "14946:370:18", + "name": "allocate_memory", + "nativeSrc": "6531:129:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", - "nativeSrc": "15001:6:18", - "nodeType": "YulTypedName", - "src": "15001:6:18", - "type": "" - }, - { - "name": "end", - "nativeSrc": "15009:3:18", + "name": "size", + "nativeSrc": "6556:4:18", "nodeType": "YulTypedName", - "src": "15009:3:18", + "src": "6556:4:18", "type": "" } ], "returnVariables": [ { - "name": "array", - "nativeSrc": "15017:5:18", + "name": "memPtr", + "nativeSrc": "6565:6:18", "nodeType": "YulTypedName", - "src": "15017:5:18", + "src": "6565:6:18", "type": "" } ], - "src": "14946:370:18" + "src": "6531:129:18" }, { "body": { - "nativeSrc": "15455:761:18", + "nativeSrc": "6748:229:18", "nodeType": "YulBlock", - "src": "15455:761:18", + "src": "6748:229:18", "statements": [ { "body": { - "nativeSrc": "15501:83:18", + "nativeSrc": "6853:22:18", "nodeType": "YulBlock", - "src": "15501:83:18", + "src": "6853:22:18", "statements": [ { "expression": { "arguments": [], "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "15503:77:18", + "name": "panic_error_0x41", + "nativeSrc": "6855:16:18", "nodeType": "YulIdentifier", - "src": "15503:77:18" + "src": "6855:16:18" }, - "nativeSrc": "15503:79:18", + "nativeSrc": "6855:18:18", "nodeType": "YulFunctionCall", - "src": "15503:79:18" + "src": "6855:18:18" }, - "nativeSrc": "15503:79:18", + "nativeSrc": "6855:18:18", "nodeType": "YulExpressionStatement", - "src": "15503:79:18" + "src": "6855:18:18" } ] }, "condition": { "arguments": [ { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "15476:7:18", - "nodeType": "YulIdentifier", - "src": "15476:7:18" - }, - { - "name": "headStart", - "nativeSrc": "15485:9:18", - "nodeType": "YulIdentifier", - "src": "15485:9:18" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "15472:3:18", - "nodeType": "YulIdentifier", - "src": "15472:3:18" - }, - "nativeSrc": "15472:23:18", - "nodeType": "YulFunctionCall", - "src": "15472:23:18" + "name": "length", + "nativeSrc": "6825:6:18", + "nodeType": "YulIdentifier", + "src": "6825:6:18" }, { "kind": "number", - "nativeSrc": "15497:2:18", + "nativeSrc": "6833:18:18", "nodeType": "YulLiteral", - "src": "15497:2:18", + "src": "6833:18:18", "type": "", - "value": "64" + "value": "0xffffffffffffffff" } ], "functionName": { - "name": "slt", - "nativeSrc": "15468:3:18", + "name": "gt", + "nativeSrc": "6822:2:18", "nodeType": "YulIdentifier", - "src": "15468:3:18" + "src": "6822:2:18" }, - "nativeSrc": "15468:32:18", + "nativeSrc": "6822:30:18", "nodeType": "YulFunctionCall", - "src": "15468:32:18" + "src": "6822:30:18" }, - "nativeSrc": "15465:119:18", + "nativeSrc": "6819:56:18", "nodeType": "YulIf", - "src": "15465:119:18" + "src": "6819:56:18" }, { - "nativeSrc": "15594:302:18", - "nodeType": "YulBlock", - "src": "15594:302:18", - "statements": [ - { - "nativeSrc": "15609:45:18", - "nodeType": "YulVariableDeclaration", - "src": "15609:45:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "15640:9:18", - "nodeType": "YulIdentifier", - "src": "15640:9:18" - }, - { - "kind": "number", - "nativeSrc": "15651:1:18", - "nodeType": "YulLiteral", - "src": "15651:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "15636:3:18", - "nodeType": "YulIdentifier", - "src": "15636:3:18" - }, - "nativeSrc": "15636:17:18", - "nodeType": "YulFunctionCall", - "src": "15636:17:18" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "15623:12:18", - "nodeType": "YulIdentifier", - "src": "15623:12:18" - }, - "nativeSrc": "15623:31:18", - "nodeType": "YulFunctionCall", - "src": "15623:31:18" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "15613:6:18", - "nodeType": "YulTypedName", - "src": "15613:6:18", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "15701:83:18", - "nodeType": "YulBlock", - "src": "15701:83:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "15703:77:18", - "nodeType": "YulIdentifier", - "src": "15703:77:18" - }, - "nativeSrc": "15703:79:18", - "nodeType": "YulFunctionCall", - "src": "15703:79:18" - }, - "nativeSrc": "15703:79:18", - "nodeType": "YulExpressionStatement", - "src": "15703:79:18" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "15673:6:18", - "nodeType": "YulIdentifier", - "src": "15673:6:18" - }, - { - "kind": "number", - "nativeSrc": "15681:18:18", - "nodeType": "YulLiteral", - "src": "15681:18:18", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "15670:2:18", - "nodeType": "YulIdentifier", - "src": "15670:2:18" - }, - "nativeSrc": "15670:30:18", - "nodeType": "YulFunctionCall", - "src": "15670:30:18" + "nativeSrc": "6885:25:18", + "nodeType": "YulAssignment", + "src": "6885:25:18", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "6897:6:18", + "nodeType": "YulIdentifier", + "src": "6897:6:18" }, - "nativeSrc": "15667:117:18", - "nodeType": "YulIf", - "src": "15667:117:18" + { + "kind": "number", + "nativeSrc": "6905:4:18", + "nodeType": "YulLiteral", + "src": "6905:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "6893:3:18", + "nodeType": "YulIdentifier", + "src": "6893:3:18" }, + "nativeSrc": "6893:17:18", + "nodeType": "YulFunctionCall", + "src": "6893:17:18" + }, + "variableNames": [ { - "nativeSrc": "15798:88:18", - "nodeType": "YulAssignment", - "src": "15798:88:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "15858:9:18", - "nodeType": "YulIdentifier", - "src": "15858:9:18" - }, - { - "name": "offset", - "nativeSrc": "15869:6:18", - "nodeType": "YulIdentifier", - "src": "15869:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "15854:3:18", - "nodeType": "YulIdentifier", - "src": "15854:3:18" - }, - "nativeSrc": "15854:22:18", - "nodeType": "YulFunctionCall", - "src": "15854:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "15878:7:18", - "nodeType": "YulIdentifier", - "src": "15878:7:18" - } - ], - "functionName": { - "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr", - "nativeSrc": "15808:45:18", - "nodeType": "YulIdentifier", - "src": "15808:45:18" - }, - "nativeSrc": "15808:78:18", - "nodeType": "YulFunctionCall", - "src": "15808:78:18" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "15798:6:18", - "nodeType": "YulIdentifier", - "src": "15798:6:18" - } - ] + "name": "size", + "nativeSrc": "6885:4:18", + "nodeType": "YulIdentifier", + "src": "6885:4:18" } ] }, { - "nativeSrc": "15906:303:18", - "nodeType": "YulBlock", - "src": "15906:303:18", - "statements": [ - { - "nativeSrc": "15921:46:18", - "nodeType": "YulVariableDeclaration", - "src": "15921:46:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "15952:9:18", - "nodeType": "YulIdentifier", - "src": "15952:9:18" - }, - { - "kind": "number", - "nativeSrc": "15963:2:18", - "nodeType": "YulLiteral", - "src": "15963:2:18", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "15948:3:18", - "nodeType": "YulIdentifier", - "src": "15948:3:18" - }, - "nativeSrc": "15948:18:18", - "nodeType": "YulFunctionCall", - "src": "15948:18:18" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "15935:12:18", - "nodeType": "YulIdentifier", - "src": "15935:12:18" - }, - "nativeSrc": "15935:32:18", - "nodeType": "YulFunctionCall", - "src": "15935:32:18" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "15925:6:18", - "nodeType": "YulTypedName", - "src": "15925:6:18", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "16014:83:18", - "nodeType": "YulBlock", - "src": "16014:83:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "16016:77:18", - "nodeType": "YulIdentifier", - "src": "16016:77:18" - }, - "nativeSrc": "16016:79:18", - "nodeType": "YulFunctionCall", - "src": "16016:79:18" - }, - "nativeSrc": "16016:79:18", - "nodeType": "YulExpressionStatement", - "src": "16016:79:18" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "15986:6:18", - "nodeType": "YulIdentifier", - "src": "15986:6:18" - }, - { - "kind": "number", - "nativeSrc": "15994:18:18", - "nodeType": "YulLiteral", - "src": "15994:18:18", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "15983:2:18", - "nodeType": "YulIdentifier", - "src": "15983:2:18" - }, - "nativeSrc": "15983:30:18", - "nodeType": "YulFunctionCall", - "src": "15983:30:18" + "nativeSrc": "6947:23:18", + "nodeType": "YulAssignment", + "src": "6947:23:18", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "6959:4:18", + "nodeType": "YulIdentifier", + "src": "6959:4:18" }, - "nativeSrc": "15980:117:18", - "nodeType": "YulIf", - "src": "15980:117:18" + { + "kind": "number", + "nativeSrc": "6965:4:18", + "nodeType": "YulLiteral", + "src": "6965:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6955:3:18", + "nodeType": "YulIdentifier", + "src": "6955:3:18" }, + "nativeSrc": "6955:15:18", + "nodeType": "YulFunctionCall", + "src": "6955:15:18" + }, + "variableNames": [ { - "nativeSrc": "16111:88:18", - "nodeType": "YulAssignment", - "src": "16111:88:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "16171:9:18", - "nodeType": "YulIdentifier", - "src": "16171:9:18" - }, - { - "name": "offset", - "nativeSrc": "16182:6:18", - "nodeType": "YulIdentifier", - "src": "16182:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "16167:3:18", - "nodeType": "YulIdentifier", - "src": "16167:3:18" - }, - "nativeSrc": "16167:22:18", - "nodeType": "YulFunctionCall", - "src": "16167:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "16191:7:18", - "nodeType": "YulIdentifier", - "src": "16191:7:18" - } - ], - "functionName": { - "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "16121:45:18", - "nodeType": "YulIdentifier", - "src": "16121:45:18" - }, - "nativeSrc": "16121:78:18", - "nodeType": "YulFunctionCall", - "src": "16121:78:18" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "16111:6:18", - "nodeType": "YulIdentifier", - "src": "16111:6:18" - } - ] + "name": "size", + "nativeSrc": "6947:4:18", + "nodeType": "YulIdentifier", + "src": "6947:4:18" } ] } ] }, - "name": "abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "15322:894:18", + "name": "array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "6666:311:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nativeSrc": "15417:9:18", - "nodeType": "YulTypedName", - "src": "15417:9:18", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "15428:7:18", + "name": "length", + "nativeSrc": "6732:6:18", "nodeType": "YulTypedName", - "src": "15428:7:18", + "src": "6732:6:18", "type": "" } ], "returnVariables": [ { - "name": "value0", - "nativeSrc": "15440:6:18", - "nodeType": "YulTypedName", - "src": "15440:6:18", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "15448:6:18", + "name": "size", + "nativeSrc": "6743:4:18", "nodeType": "YulTypedName", - "src": "15448:6:18", + "src": "6743:4:18", "type": "" } ], - "src": "15322:894:18" + "src": "6666:311:18" + }, + { + "body": { + "nativeSrc": "7072:28:18", + "nodeType": "YulBlock", + "src": "7072:28:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7089:1:18", + "nodeType": "YulLiteral", + "src": "7089:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "7092:1:18", + "nodeType": "YulLiteral", + "src": "7092:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "7082:6:18", + "nodeType": "YulIdentifier", + "src": "7082:6:18" + }, + "nativeSrc": "7082:12:18", + "nodeType": "YulFunctionCall", + "src": "7082:12:18" + }, + "nativeSrc": "7082:12:18", + "nodeType": "YulExpressionStatement", + "src": "7082:12:18" + } + ] + }, + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nativeSrc": "6983:117:18", + "nodeType": "YulFunctionDefinition", + "src": "6983:117:18" }, { "body": { - "nativeSrc": "16296:40:18", + "nativeSrc": "7225:608:18", "nodeType": "YulBlock", - "src": "16296:40:18", + "src": "7225:608:18", "statements": [ { - "nativeSrc": "16307:22:18", + "nativeSrc": "7235:90:18", "nodeType": "YulAssignment", - "src": "16307:22:18", + "src": "7235:90:18", "value": { "arguments": [ { - "name": "value", - "nativeSrc": "16323:5:18", - "nodeType": "YulIdentifier", - "src": "16323:5:18" + "arguments": [ + { + "name": "length", + "nativeSrc": "7317:6:18", + "nodeType": "YulIdentifier", + "src": "7317:6:18" + } + ], + "functionName": { + "name": "array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "7260:56:18", + "nodeType": "YulIdentifier", + "src": "7260:56:18" + }, + "nativeSrc": "7260:64:18", + "nodeType": "YulFunctionCall", + "src": "7260:64:18" } ], "functionName": { - "name": "mload", - "nativeSrc": "16317:5:18", + "name": "allocate_memory", + "nativeSrc": "7244:15:18", "nodeType": "YulIdentifier", - "src": "16317:5:18" + "src": "7244:15:18" }, - "nativeSrc": "16317:12:18", + "nativeSrc": "7244:81:18", "nodeType": "YulFunctionCall", - "src": "16317:12:18" + "src": "7244:81:18" }, "variableNames": [ { - "name": "length", - "nativeSrc": "16307:6:18", + "name": "array", + "nativeSrc": "7235:5:18", "nodeType": "YulIdentifier", - "src": "16307:6:18" + "src": "7235:5:18" } ] - } - ] - }, - "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "16222:114:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "16279:5:18", - "nodeType": "YulTypedName", - "src": "16279:5:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nativeSrc": "16289:6:18", - "nodeType": "YulTypedName", - "src": "16289:6:18", - "type": "" - } - ], - "src": "16222:114:18" - }, - { - "body": { - "nativeSrc": "16453:73:18", - "nodeType": "YulBlock", - "src": "16453:73:18", - "statements": [ + }, + { + "nativeSrc": "7334:16:18", + "nodeType": "YulVariableDeclaration", + "src": "7334:16:18", + "value": { + "name": "array", + "nativeSrc": "7345:5:18", + "nodeType": "YulIdentifier", + "src": "7345:5:18" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "7338:3:18", + "nodeType": "YulTypedName", + "src": "7338:3:18", + "type": "" + } + ] + }, { "expression": { "arguments": [ { - "name": "pos", - "nativeSrc": "16470:3:18", + "name": "array", + "nativeSrc": "7367:5:18", "nodeType": "YulIdentifier", - "src": "16470:3:18" + "src": "7367:5:18" }, { "name": "length", - "nativeSrc": "16475:6:18", + "nativeSrc": "7374:6:18", "nodeType": "YulIdentifier", - "src": "16475:6:18" + "src": "7374:6:18" } ], "functionName": { "name": "mstore", - "nativeSrc": "16463:6:18", + "nativeSrc": "7360:6:18", "nodeType": "YulIdentifier", - "src": "16463:6:18" + "src": "7360:6:18" }, - "nativeSrc": "16463:19:18", + "nativeSrc": "7360:21:18", "nodeType": "YulFunctionCall", - "src": "16463:19:18" + "src": "7360:21:18" }, - "nativeSrc": "16463:19:18", + "nativeSrc": "7360:21:18", "nodeType": "YulExpressionStatement", - "src": "16463:19:18" + "src": "7360:21:18" }, { - "nativeSrc": "16491:29:18", + "nativeSrc": "7390:23:18", "nodeType": "YulAssignment", - "src": "16491:29:18", + "src": "7390:23:18", "value": { "arguments": [ { - "name": "pos", - "nativeSrc": "16510:3:18", + "name": "array", + "nativeSrc": "7401:5:18", "nodeType": "YulIdentifier", - "src": "16510:3:18" + "src": "7401:5:18" }, { "kind": "number", - "nativeSrc": "16515:4:18", + "nativeSrc": "7408:4:18", "nodeType": "YulLiteral", - "src": "16515:4:18", + "src": "7408:4:18", "type": "", "value": "0x20" } ], "functionName": { "name": "add", - "nativeSrc": "16506:3:18", + "nativeSrc": "7397:3:18", "nodeType": "YulIdentifier", - "src": "16506:3:18" + "src": "7397:3:18" }, - "nativeSrc": "16506:14:18", + "nativeSrc": "7397:16:18", "nodeType": "YulFunctionCall", - "src": "16506:14:18" + "src": "7397:16:18" }, "variableNames": [ { - "name": "updated_pos", - "nativeSrc": "16491:11:18", + "name": "dst", + "nativeSrc": "7390:3:18", + "nodeType": "YulIdentifier", + "src": "7390:3:18" + } + ] + }, + { + "nativeSrc": "7423:44:18", + "nodeType": "YulVariableDeclaration", + "src": "7423:44:18", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "7441:6:18", + "nodeType": "YulIdentifier", + "src": "7441:6:18" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "7453:6:18", + "nodeType": "YulIdentifier", + "src": "7453:6:18" + }, + { + "kind": "number", + "nativeSrc": "7461:4:18", + "nodeType": "YulLiteral", + "src": "7461:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "7449:3:18", + "nodeType": "YulIdentifier", + "src": "7449:3:18" + }, + "nativeSrc": "7449:17:18", + "nodeType": "YulFunctionCall", + "src": "7449:17:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7437:3:18", "nodeType": "YulIdentifier", - "src": "16491:11:18" + "src": "7437:3:18" + }, + "nativeSrc": "7437:30:18", + "nodeType": "YulFunctionCall", + "src": "7437:30:18" + }, + "variables": [ + { + "name": "srcEnd", + "nativeSrc": "7427:6:18", + "nodeType": "YulTypedName", + "src": "7427:6:18", + "type": "" } ] + }, + { + "body": { + "nativeSrc": "7495:103:18", + "nodeType": "YulBlock", + "src": "7495:103:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nativeSrc": "7509:77:18", + "nodeType": "YulIdentifier", + "src": "7509:77:18" + }, + "nativeSrc": "7509:79:18", + "nodeType": "YulFunctionCall", + "src": "7509:79:18" + }, + "nativeSrc": "7509:79:18", + "nodeType": "YulExpressionStatement", + "src": "7509:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "srcEnd", + "nativeSrc": "7482:6:18", + "nodeType": "YulIdentifier", + "src": "7482:6:18" + }, + { + "name": "end", + "nativeSrc": "7490:3:18", + "nodeType": "YulIdentifier", + "src": "7490:3:18" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7479:2:18", + "nodeType": "YulIdentifier", + "src": "7479:2:18" + }, + "nativeSrc": "7479:15:18", + "nodeType": "YulFunctionCall", + "src": "7479:15:18" + }, + "nativeSrc": "7476:122:18", + "nodeType": "YulIf", + "src": "7476:122:18" + }, + { + "body": { + "nativeSrc": "7683:144:18", + "nodeType": "YulBlock", + "src": "7683:144:18", + "statements": [ + { + "nativeSrc": "7698:21:18", + "nodeType": "YulVariableDeclaration", + "src": "7698:21:18", + "value": { + "name": "src", + "nativeSrc": "7716:3:18", + "nodeType": "YulIdentifier", + "src": "7716:3:18" + }, + "variables": [ + { + "name": "elementPos", + "nativeSrc": "7702:10:18", + "nodeType": "YulTypedName", + "src": "7702:10:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "7740:3:18", + "nodeType": "YulIdentifier", + "src": "7740:3:18" + }, + { + "arguments": [ + { + "name": "elementPos", + "nativeSrc": "7766:10:18", + "nodeType": "YulIdentifier", + "src": "7766:10:18" + }, + { + "name": "end", + "nativeSrc": "7778:3:18", + "nodeType": "YulIdentifier", + "src": "7778:3:18" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "7745:20:18", + "nodeType": "YulIdentifier", + "src": "7745:20:18" + }, + "nativeSrc": "7745:37:18", + "nodeType": "YulFunctionCall", + "src": "7745:37:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7733:6:18", + "nodeType": "YulIdentifier", + "src": "7733:6:18" + }, + "nativeSrc": "7733:50:18", + "nodeType": "YulFunctionCall", + "src": "7733:50:18" + }, + "nativeSrc": "7733:50:18", + "nodeType": "YulExpressionStatement", + "src": "7733:50:18" + }, + { + "nativeSrc": "7796:21:18", + "nodeType": "YulAssignment", + "src": "7796:21:18", + "value": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "7807:3:18", + "nodeType": "YulIdentifier", + "src": "7807:3:18" + }, + { + "kind": "number", + "nativeSrc": "7812:4:18", + "nodeType": "YulLiteral", + "src": "7812:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7803:3:18", + "nodeType": "YulIdentifier", + "src": "7803:3:18" + }, + "nativeSrc": "7803:14:18", + "nodeType": "YulFunctionCall", + "src": "7803:14:18" + }, + "variableNames": [ + { + "name": "dst", + "nativeSrc": "7796:3:18", + "nodeType": "YulIdentifier", + "src": "7796:3:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "src", + "nativeSrc": "7636:3:18", + "nodeType": "YulIdentifier", + "src": "7636:3:18" + }, + { + "name": "srcEnd", + "nativeSrc": "7641:6:18", + "nodeType": "YulIdentifier", + "src": "7641:6:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "7633:2:18", + "nodeType": "YulIdentifier", + "src": "7633:2:18" + }, + "nativeSrc": "7633:15:18", + "nodeType": "YulFunctionCall", + "src": "7633:15:18" + }, + "nativeSrc": "7607:220:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "7649:25:18", + "nodeType": "YulBlock", + "src": "7649:25:18", + "statements": [ + { + "nativeSrc": "7651:21:18", + "nodeType": "YulAssignment", + "src": "7651:21:18", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "7662:3:18", + "nodeType": "YulIdentifier", + "src": "7662:3:18" + }, + { + "kind": "number", + "nativeSrc": "7667:4:18", + "nodeType": "YulLiteral", + "src": "7667:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7658:3:18", + "nodeType": "YulIdentifier", + "src": "7658:3:18" + }, + "nativeSrc": "7658:14:18", + "nodeType": "YulFunctionCall", + "src": "7658:14:18" + }, + "variableNames": [ + { + "name": "src", + "nativeSrc": "7651:3:18", + "nodeType": "YulIdentifier", + "src": "7651:3:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "7611:21:18", + "nodeType": "YulBlock", + "src": "7611:21:18", + "statements": [ + { + "nativeSrc": "7613:17:18", + "nodeType": "YulVariableDeclaration", + "src": "7613:17:18", + "value": { + "name": "offset", + "nativeSrc": "7624:6:18", + "nodeType": "YulIdentifier", + "src": "7624:6:18" + }, + "variables": [ + { + "name": "src", + "nativeSrc": "7617:3:18", + "nodeType": "YulTypedName", + "src": "7617:3:18", + "type": "" + } + ] + } + ] + }, + "src": "7607:220:18" } ] }, - "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", - "nativeSrc": "16342:184:18", + "name": "abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "7123:710:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", - "nativeSrc": "16425:3:18", + "name": "offset", + "nativeSrc": "7195:6:18", "nodeType": "YulTypedName", - "src": "16425:3:18", + "src": "7195:6:18", "type": "" }, { "name": "length", - "nativeSrc": "16430:6:18", + "nativeSrc": "7203:6:18", + "nodeType": "YulTypedName", + "src": "7203:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "7211:3:18", "nodeType": "YulTypedName", - "src": "16430:6:18", + "src": "7211:3:18", "type": "" } ], "returnVariables": [ { - "name": "updated_pos", - "nativeSrc": "16441:11:18", + "name": "array", + "nativeSrc": "7219:5:18", "nodeType": "YulTypedName", - "src": "16441:11:18", + "src": "7219:5:18", "type": "" } ], - "src": "16342:184:18" + "src": "7123:710:18" }, { "body": { - "nativeSrc": "16604:60:18", + "nativeSrc": "7933:293:18", "nodeType": "YulBlock", - "src": "16604:60:18", + "src": "7933:293:18", "statements": [ { - "nativeSrc": "16614:11:18", - "nodeType": "YulAssignment", - "src": "16614:11:18", + "body": { + "nativeSrc": "7982:83:18", + "nodeType": "YulBlock", + "src": "7982:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "7984:77:18", + "nodeType": "YulIdentifier", + "src": "7984:77:18" + }, + "nativeSrc": "7984:79:18", + "nodeType": "YulFunctionCall", + "src": "7984:79:18" + }, + "nativeSrc": "7984:79:18", + "nodeType": "YulExpressionStatement", + "src": "7984:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "7961:6:18", + "nodeType": "YulIdentifier", + "src": "7961:6:18" + }, + { + "kind": "number", + "nativeSrc": "7969:4:18", + "nodeType": "YulLiteral", + "src": "7969:4:18", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7957:3:18", + "nodeType": "YulIdentifier", + "src": "7957:3:18" + }, + "nativeSrc": "7957:17:18", + "nodeType": "YulFunctionCall", + "src": "7957:17:18" + }, + { + "name": "end", + "nativeSrc": "7976:3:18", + "nodeType": "YulIdentifier", + "src": "7976:3:18" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "7953:3:18", + "nodeType": "YulIdentifier", + "src": "7953:3:18" + }, + "nativeSrc": "7953:27:18", + "nodeType": "YulFunctionCall", + "src": "7953:27:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "7946:6:18", + "nodeType": "YulIdentifier", + "src": "7946:6:18" + }, + "nativeSrc": "7946:35:18", + "nodeType": "YulFunctionCall", + "src": "7946:35:18" + }, + "nativeSrc": "7943:122:18", + "nodeType": "YulIf", + "src": "7943:122:18" + }, + { + "nativeSrc": "8074:34:18", + "nodeType": "YulVariableDeclaration", + "src": "8074:34:18", "value": { - "name": "ptr", - "nativeSrc": "16622:3:18", - "nodeType": "YulIdentifier", - "src": "16622:3:18" + "arguments": [ + { + "name": "offset", + "nativeSrc": "8101:6:18", + "nodeType": "YulIdentifier", + "src": "8101:6:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8088:12:18", + "nodeType": "YulIdentifier", + "src": "8088:12:18" + }, + "nativeSrc": "8088:20:18", + "nodeType": "YulFunctionCall", + "src": "8088:20:18" }, - "variableNames": [ + "variables": [ { - "name": "data", - "nativeSrc": "16614:4:18", - "nodeType": "YulIdentifier", - "src": "16614:4:18" + "name": "length", + "nativeSrc": "8078:6:18", + "nodeType": "YulTypedName", + "src": "8078:6:18", + "type": "" } ] }, { - "nativeSrc": "16635:22:18", + "nativeSrc": "8117:103:18", "nodeType": "YulAssignment", - "src": "16635:22:18", + "src": "8117:103:18", "value": { "arguments": [ { - "name": "ptr", - "nativeSrc": "16647:3:18", + "arguments": [ + { + "name": "offset", + "nativeSrc": "8193:6:18", + "nodeType": "YulIdentifier", + "src": "8193:6:18" + }, + { + "kind": "number", + "nativeSrc": "8201:4:18", + "nodeType": "YulLiteral", + "src": "8201:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8189:3:18", + "nodeType": "YulIdentifier", + "src": "8189:3:18" + }, + "nativeSrc": "8189:17:18", + "nodeType": "YulFunctionCall", + "src": "8189:17:18" + }, + { + "name": "length", + "nativeSrc": "8208:6:18", "nodeType": "YulIdentifier", - "src": "16647:3:18" + "src": "8208:6:18" }, { - "kind": "number", - "nativeSrc": "16652:4:18", - "nodeType": "YulLiteral", - "src": "16652:4:18", - "type": "", - "value": "0x20" + "name": "end", + "nativeSrc": "8216:3:18", + "nodeType": "YulIdentifier", + "src": "8216:3:18" } ], "functionName": { - "name": "add", - "nativeSrc": "16643:3:18", + "name": "abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "8126:62:18", "nodeType": "YulIdentifier", - "src": "16643:3:18" + "src": "8126:62:18" }, - "nativeSrc": "16643:14:18", + "nativeSrc": "8126:94:18", "nodeType": "YulFunctionCall", - "src": "16643:14:18" + "src": "8126:94:18" }, "variableNames": [ { - "name": "data", - "nativeSrc": "16635:4:18", + "name": "array", + "nativeSrc": "8117:5:18", "nodeType": "YulIdentifier", - "src": "16635:4:18" + "src": "8117:5:18" } ] } ] }, - "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "16532:132:18", + "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "7856:370:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "ptr", - "nativeSrc": "16591:3:18", + "name": "offset", + "nativeSrc": "7911:6:18", + "nodeType": "YulTypedName", + "src": "7911:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "7919:3:18", "nodeType": "YulTypedName", - "src": "16591:3:18", + "src": "7919:3:18", "type": "" } ], "returnVariables": [ { - "name": "data", - "nativeSrc": "16599:4:18", + "name": "array", + "nativeSrc": "7927:5:18", "nodeType": "YulTypedName", - "src": "16599:4:18", + "src": "7927:5:18", "type": "" } ], - "src": "16532:132:18" + "src": "7856:370:18" }, { "body": { - "nativeSrc": "16725:53:18", + "nativeSrc": "8321:28:18", "nodeType": "YulBlock", - "src": "16725:53:18", + "src": "8321:28:18", "statements": [ { "expression": { "arguments": [ { - "name": "pos", - "nativeSrc": "16742:3:18", - "nodeType": "YulIdentifier", - "src": "16742:3:18" + "kind": "number", + "nativeSrc": "8338:1:18", + "nodeType": "YulLiteral", + "src": "8338:1:18", + "type": "", + "value": "0" }, { - "arguments": [ - { - "name": "value", - "nativeSrc": "16765:5:18", - "nodeType": "YulIdentifier", - "src": "16765:5:18" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "16747:17:18", - "nodeType": "YulIdentifier", - "src": "16747:17:18" - }, - "nativeSrc": "16747:24:18", - "nodeType": "YulFunctionCall", - "src": "16747:24:18" + "kind": "number", + "nativeSrc": "8341:1:18", + "nodeType": "YulLiteral", + "src": "8341:1:18", + "type": "", + "value": "0" } ], "functionName": { - "name": "mstore", - "nativeSrc": "16735:6:18", + "name": "revert", + "nativeSrc": "8331:6:18", "nodeType": "YulIdentifier", - "src": "16735:6:18" + "src": "8331:6:18" }, - "nativeSrc": "16735:37:18", + "nativeSrc": "8331:12:18", "nodeType": "YulFunctionCall", - "src": "16735:37:18" + "src": "8331:12:18" }, - "nativeSrc": "16735:37:18", + "nativeSrc": "8331:12:18", "nodeType": "YulExpressionStatement", - "src": "16735:37:18" + "src": "8331:12:18" } ] }, - "name": "abi_encode_t_uint256_to_t_uint256", - "nativeSrc": "16670:108:18", + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "8232:117:18", "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "16713:5:18", - "nodeType": "YulTypedName", - "src": "16713:5:18", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "16720:3:18", - "nodeType": "YulTypedName", - "src": "16720:3:18", - "type": "" - } - ], - "src": "16670:108:18" + "src": "8232:117:18" }, { "body": { - "nativeSrc": "16864:99:18", + "nativeSrc": "8421:241:18", "nodeType": "YulBlock", - "src": "16864:99:18", + "src": "8421:241:18", "statements": [ { - "expression": { + "body": { + "nativeSrc": "8526:22:18", + "nodeType": "YulBlock", + "src": "8526:22:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "8528:16:18", + "nodeType": "YulIdentifier", + "src": "8528:16:18" + }, + "nativeSrc": "8528:18:18", + "nodeType": "YulFunctionCall", + "src": "8528:18:18" + }, + "nativeSrc": "8528:18:18", + "nodeType": "YulExpressionStatement", + "src": "8528:18:18" + } + ] + }, + "condition": { "arguments": [ { - "name": "value0", - "nativeSrc": "16908:6:18", + "name": "length", + "nativeSrc": "8498:6:18", "nodeType": "YulIdentifier", - "src": "16908:6:18" + "src": "8498:6:18" }, { - "name": "pos", - "nativeSrc": "16916:3:18", + "kind": "number", + "nativeSrc": "8506:18:18", + "nodeType": "YulLiteral", + "src": "8506:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "8495:2:18", + "nodeType": "YulIdentifier", + "src": "8495:2:18" + }, + "nativeSrc": "8495:30:18", + "nodeType": "YulFunctionCall", + "src": "8495:30:18" + }, + "nativeSrc": "8492:56:18", + "nodeType": "YulIf", + "src": "8492:56:18" + }, + { + "nativeSrc": "8558:37:18", + "nodeType": "YulAssignment", + "src": "8558:37:18", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "8588:6:18", "nodeType": "YulIdentifier", - "src": "16916:3:18" + "src": "8588:6:18" } ], "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256", - "nativeSrc": "16874:33:18", + "name": "round_up_to_mul_of_32", + "nativeSrc": "8566:21:18", "nodeType": "YulIdentifier", - "src": "16874:33:18" + "src": "8566:21:18" }, - "nativeSrc": "16874:46:18", + "nativeSrc": "8566:29:18", "nodeType": "YulFunctionCall", - "src": "16874:46:18" + "src": "8566:29:18" }, - "nativeSrc": "16874:46:18", - "nodeType": "YulExpressionStatement", - "src": "16874:46:18" + "variableNames": [ + { + "name": "size", + "nativeSrc": "8558:4:18", + "nodeType": "YulIdentifier", + "src": "8558:4:18" + } + ] }, { - "nativeSrc": "16929:28:18", + "nativeSrc": "8632:23:18", "nodeType": "YulAssignment", - "src": "16929:28:18", + "src": "8632:23:18", "value": { "arguments": [ { - "name": "pos", - "nativeSrc": "16947:3:18", + "name": "size", + "nativeSrc": "8644:4:18", "nodeType": "YulIdentifier", - "src": "16947:3:18" + "src": "8644:4:18" }, { "kind": "number", - "nativeSrc": "16952:4:18", + "nativeSrc": "8650:4:18", "nodeType": "YulLiteral", - "src": "16952:4:18", + "src": "8650:4:18", "type": "", "value": "0x20" } ], "functionName": { "name": "add", - "nativeSrc": "16943:3:18", + "nativeSrc": "8640:3:18", "nodeType": "YulIdentifier", - "src": "16943:3:18" + "src": "8640:3:18" }, - "nativeSrc": "16943:14:18", + "nativeSrc": "8640:15:18", "nodeType": "YulFunctionCall", - "src": "16943:14:18" + "src": "8640:15:18" }, "variableNames": [ { - "name": "updatedPos", - "nativeSrc": "16929:10:18", + "name": "size", + "nativeSrc": "8632:4:18", "nodeType": "YulIdentifier", - "src": "16929:10:18" + "src": "8632:4:18" } ] } ] }, - "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", - "nativeSrc": "16784:179:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value0", - "nativeSrc": "16837:6:18", - "nodeType": "YulTypedName", - "src": "16837:6:18", - "type": "" - }, + "name": "array_allocation_size_t_bytes_memory_ptr", + "nativeSrc": "8355:307:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ { - "name": "pos", - "nativeSrc": "16845:3:18", + "name": "length", + "nativeSrc": "8405:6:18", "nodeType": "YulTypedName", - "src": "16845:3:18", + "src": "8405:6:18", "type": "" } ], "returnVariables": [ { - "name": "updatedPos", - "nativeSrc": "16853:10:18", + "name": "size", + "nativeSrc": "8416:4:18", "nodeType": "YulTypedName", - "src": "16853:10:18", + "src": "8416:4:18", "type": "" } ], - "src": "16784:179:18" + "src": "8355:307:18" }, { "body": { - "nativeSrc": "17044:38:18", + "nativeSrc": "8732:84:18", "nodeType": "YulBlock", - "src": "17044:38:18", + "src": "8732:84:18", "statements": [ { - "nativeSrc": "17054:22:18", - "nodeType": "YulAssignment", - "src": "17054:22:18", - "value": { + "expression": { "arguments": [ { - "name": "ptr", - "nativeSrc": "17066:3:18", + "name": "dst", + "nativeSrc": "8756:3:18", + "nodeType": "YulIdentifier", + "src": "8756:3:18" + }, + { + "name": "src", + "nativeSrc": "8761:3:18", "nodeType": "YulIdentifier", - "src": "17066:3:18" + "src": "8761:3:18" + }, + { + "name": "length", + "nativeSrc": "8766:6:18", + "nodeType": "YulIdentifier", + "src": "8766:6:18" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "8743:12:18", + "nodeType": "YulIdentifier", + "src": "8743:12:18" + }, + "nativeSrc": "8743:30:18", + "nodeType": "YulFunctionCall", + "src": "8743:30:18" + }, + "nativeSrc": "8743:30:18", + "nodeType": "YulExpressionStatement", + "src": "8743:30:18" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "8793:3:18", + "nodeType": "YulIdentifier", + "src": "8793:3:18" + }, + { + "name": "length", + "nativeSrc": "8798:6:18", + "nodeType": "YulIdentifier", + "src": "8798:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8789:3:18", + "nodeType": "YulIdentifier", + "src": "8789:3:18" + }, + "nativeSrc": "8789:16:18", + "nodeType": "YulFunctionCall", + "src": "8789:16:18" }, { "kind": "number", - "nativeSrc": "17071:4:18", + "nativeSrc": "8807:1:18", "nodeType": "YulLiteral", - "src": "17071:4:18", + "src": "8807:1:18", "type": "", - "value": "0x20" + "value": "0" } ], "functionName": { - "name": "add", - "nativeSrc": "17062:3:18", + "name": "mstore", + "nativeSrc": "8782:6:18", "nodeType": "YulIdentifier", - "src": "17062:3:18" + "src": "8782:6:18" }, - "nativeSrc": "17062:14:18", + "nativeSrc": "8782:27:18", "nodeType": "YulFunctionCall", - "src": "17062:14:18" + "src": "8782:27:18" }, - "variableNames": [ - { - "name": "next", - "nativeSrc": "17054:4:18", - "nodeType": "YulIdentifier", - "src": "17054:4:18" - } - ] + "nativeSrc": "8782:27:18", + "nodeType": "YulExpressionStatement", + "src": "8782:27:18" } ] }, - "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "16969:113:18", + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "8668:148:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "ptr", - "nativeSrc": "17031:3:18", + "name": "src", + "nativeSrc": "8714:3:18", "nodeType": "YulTypedName", - "src": "17031:3:18", + "src": "8714:3:18", "type": "" - } - ], - "returnVariables": [ + }, { - "name": "next", - "nativeSrc": "17039:4:18", + "name": "dst", + "nativeSrc": "8719:3:18", + "nodeType": "YulTypedName", + "src": "8719:3:18", + "type": "" + }, + { + "name": "length", + "nativeSrc": "8724:6:18", "nodeType": "YulTypedName", - "src": "17039:4:18", + "src": "8724:6:18", "type": "" } ], - "src": "16969:113:18" + "src": "8668:148:18" }, { "body": { - "nativeSrc": "17242:608:18", + "nativeSrc": "8905:340:18", "nodeType": "YulBlock", - "src": "17242:608:18", + "src": "8905:340:18", "statements": [ { - "nativeSrc": "17252:68:18", - "nodeType": "YulVariableDeclaration", - "src": "17252:68:18", + "nativeSrc": "8915:74:18", + "nodeType": "YulAssignment", + "src": "8915:74:18", "value": { "arguments": [ { - "name": "value", - "nativeSrc": "17314:5:18", - "nodeType": "YulIdentifier", - "src": "17314:5:18" + "arguments": [ + { + "name": "length", + "nativeSrc": "8981:6:18", + "nodeType": "YulIdentifier", + "src": "8981:6:18" + } + ], + "functionName": { + "name": "array_allocation_size_t_bytes_memory_ptr", + "nativeSrc": "8940:40:18", + "nodeType": "YulIdentifier", + "src": "8940:40:18" + }, + "nativeSrc": "8940:48:18", + "nodeType": "YulFunctionCall", + "src": "8940:48:18" } ], "functionName": { - "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "17266:47:18", + "name": "allocate_memory", + "nativeSrc": "8924:15:18", "nodeType": "YulIdentifier", - "src": "17266:47:18" + "src": "8924:15:18" }, - "nativeSrc": "17266:54:18", + "nativeSrc": "8924:65:18", "nodeType": "YulFunctionCall", - "src": "17266:54:18" + "src": "8924:65:18" }, - "variables": [ + "variableNames": [ { - "name": "length", - "nativeSrc": "17256:6:18", - "nodeType": "YulTypedName", - "src": "17256:6:18", - "type": "" + "name": "array", + "nativeSrc": "8915:5:18", + "nodeType": "YulIdentifier", + "src": "8915:5:18" } ] }, { - "nativeSrc": "17329:93:18", - "nodeType": "YulAssignment", - "src": "17329:93:18", - "value": { + "expression": { "arguments": [ { - "name": "pos", - "nativeSrc": "17410:3:18", + "name": "array", + "nativeSrc": "9005:5:18", "nodeType": "YulIdentifier", - "src": "17410:3:18" + "src": "9005:5:18" }, { "name": "length", - "nativeSrc": "17415:6:18", + "nativeSrc": "9012:6:18", "nodeType": "YulIdentifier", - "src": "17415:6:18" + "src": "9012:6:18" } ], "functionName": { - "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", - "nativeSrc": "17336:73:18", + "name": "mstore", + "nativeSrc": "8998:6:18", "nodeType": "YulIdentifier", - "src": "17336:73:18" + "src": "8998:6:18" }, - "nativeSrc": "17336:86:18", + "nativeSrc": "8998:21:18", "nodeType": "YulFunctionCall", - "src": "17336:86:18" + "src": "8998:21:18" }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "17329:3:18", - "nodeType": "YulIdentifier", - "src": "17329:3:18" - } - ] + "nativeSrc": "8998:21:18", + "nodeType": "YulExpressionStatement", + "src": "8998:21:18" }, { - "nativeSrc": "17431:71:18", + "nativeSrc": "9028:27:18", "nodeType": "YulVariableDeclaration", - "src": "17431:71:18", + "src": "9028:27:18", "value": { "arguments": [ { - "name": "value", - "nativeSrc": "17496:5:18", + "name": "array", + "nativeSrc": "9043:5:18", "nodeType": "YulIdentifier", - "src": "17496:5:18" + "src": "9043:5:18" + }, + { + "kind": "number", + "nativeSrc": "9050:4:18", + "nodeType": "YulLiteral", + "src": "9050:4:18", + "type": "", + "value": "0x20" } ], "functionName": { - "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "17446:49:18", + "name": "add", + "nativeSrc": "9039:3:18", "nodeType": "YulIdentifier", - "src": "17446:49:18" + "src": "9039:3:18" }, - "nativeSrc": "17446:56:18", + "nativeSrc": "9039:16:18", "nodeType": "YulFunctionCall", - "src": "17446:56:18" - }, - "variables": [ - { - "name": "baseRef", - "nativeSrc": "17435:7:18", - "nodeType": "YulTypedName", - "src": "17435:7:18", - "type": "" - } - ] - }, - { - "nativeSrc": "17511:21:18", - "nodeType": "YulVariableDeclaration", - "src": "17511:21:18", - "value": { - "name": "baseRef", - "nativeSrc": "17525:7:18", - "nodeType": "YulIdentifier", - "src": "17525:7:18" + "src": "9039:16:18" }, "variables": [ { - "name": "srcPtr", - "nativeSrc": "17515:6:18", + "name": "dst", + "nativeSrc": "9032:3:18", "nodeType": "YulTypedName", - "src": "17515:6:18", + "src": "9032:3:18", "type": "" } ] }, { "body": { - "nativeSrc": "17601:224:18", + "nativeSrc": "9093:83:18", "nodeType": "YulBlock", - "src": "17601:224:18", + "src": "9093:83:18", "statements": [ { - "nativeSrc": "17615:34:18", - "nodeType": "YulVariableDeclaration", - "src": "17615:34:18", - "value": { - "arguments": [ - { - "name": "srcPtr", - "nativeSrc": "17642:6:18", - "nodeType": "YulIdentifier", - "src": "17642:6:18" - } - ], + "expression": { + "arguments": [], "functionName": { - "name": "mload", - "nativeSrc": "17636:5:18", + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "9095:77:18", "nodeType": "YulIdentifier", - "src": "17636:5:18" + "src": "9095:77:18" }, - "nativeSrc": "17636:13:18", + "nativeSrc": "9095:79:18", "nodeType": "YulFunctionCall", - "src": "17636:13:18" + "src": "9095:79:18" }, - "variables": [ - { - "name": "elementValue0", - "nativeSrc": "17619:13:18", - "nodeType": "YulTypedName", - "src": "17619:13:18", - "type": "" - } - ] - }, + "nativeSrc": "9095:79:18", + "nodeType": "YulExpressionStatement", + "src": "9095:79:18" + } + ] + }, + "condition": { + "arguments": [ { - "nativeSrc": "17662:70:18", - "nodeType": "YulAssignment", - "src": "17662:70:18", - "value": { - "arguments": [ - { - "name": "elementValue0", - "nativeSrc": "17713:13:18", - "nodeType": "YulIdentifier", - "src": "17713:13:18" - }, - { - "name": "pos", - "nativeSrc": "17728:3:18", - "nodeType": "YulIdentifier", - "src": "17728:3:18" - } - ], - "functionName": { - "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", - "nativeSrc": "17669:43:18", + "arguments": [ + { + "name": "src", + "nativeSrc": "9074:3:18", "nodeType": "YulIdentifier", - "src": "17669:43:18" + "src": "9074:3:18" }, - "nativeSrc": "17669:63:18", - "nodeType": "YulFunctionCall", - "src": "17669:63:18" - }, - "variableNames": [ { - "name": "pos", - "nativeSrc": "17662:3:18", + "name": "length", + "nativeSrc": "9079:6:18", "nodeType": "YulIdentifier", - "src": "17662:3:18" + "src": "9079:6:18" } - ] + ], + "functionName": { + "name": "add", + "nativeSrc": "9070:3:18", + "nodeType": "YulIdentifier", + "src": "9070:3:18" + }, + "nativeSrc": "9070:16:18", + "nodeType": "YulFunctionCall", + "src": "9070:16:18" }, { - "nativeSrc": "17745:70:18", - "nodeType": "YulAssignment", - "src": "17745:70:18", - "value": { - "arguments": [ - { - "name": "srcPtr", - "nativeSrc": "17808:6:18", - "nodeType": "YulIdentifier", - "src": "17808:6:18" - } - ], - "functionName": { - "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "17755:52:18", - "nodeType": "YulIdentifier", - "src": "17755:52:18" - }, - "nativeSrc": "17755:60:18", - "nodeType": "YulFunctionCall", - "src": "17755:60:18" - }, - "variableNames": [ - { - "name": "srcPtr", - "nativeSrc": "17745:6:18", - "nodeType": "YulIdentifier", - "src": "17745:6:18" - } - ] + "name": "end", + "nativeSrc": "9088:3:18", + "nodeType": "YulIdentifier", + "src": "9088:3:18" } - ] + ], + "functionName": { + "name": "gt", + "nativeSrc": "9067:2:18", + "nodeType": "YulIdentifier", + "src": "9067:2:18" + }, + "nativeSrc": "9067:25:18", + "nodeType": "YulFunctionCall", + "src": "9067:25:18" }, - "condition": { + "nativeSrc": "9064:112:18", + "nodeType": "YulIf", + "src": "9064:112:18" + }, + { + "expression": { "arguments": [ { - "name": "i", - "nativeSrc": "17563:1:18", + "name": "src", + "nativeSrc": "9222:3:18", + "nodeType": "YulIdentifier", + "src": "9222:3:18" + }, + { + "name": "dst", + "nativeSrc": "9227:3:18", "nodeType": "YulIdentifier", - "src": "17563:1:18" + "src": "9227:3:18" }, { "name": "length", - "nativeSrc": "17566:6:18", + "nativeSrc": "9232:6:18", "nodeType": "YulIdentifier", - "src": "17566:6:18" + "src": "9232:6:18" } ], "functionName": { - "name": "lt", - "nativeSrc": "17560:2:18", + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "9185:36:18", "nodeType": "YulIdentifier", - "src": "17560:2:18" + "src": "9185:36:18" }, - "nativeSrc": "17560:13:18", + "nativeSrc": "9185:54:18", "nodeType": "YulFunctionCall", - "src": "17560:13:18" - }, - "nativeSrc": "17541:284:18", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "17574:18:18", - "nodeType": "YulBlock", - "src": "17574:18:18", - "statements": [ - { - "nativeSrc": "17576:14:18", - "nodeType": "YulAssignment", - "src": "17576:14:18", - "value": { - "arguments": [ - { - "name": "i", - "nativeSrc": "17585:1:18", - "nodeType": "YulIdentifier", - "src": "17585:1:18" - }, - { - "kind": "number", - "nativeSrc": "17588:1:18", - "nodeType": "YulLiteral", - "src": "17588:1:18", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "17581:3:18", - "nodeType": "YulIdentifier", - "src": "17581:3:18" - }, - "nativeSrc": "17581:9:18", - "nodeType": "YulFunctionCall", - "src": "17581:9:18" - }, - "variableNames": [ - { - "name": "i", - "nativeSrc": "17576:1:18", - "nodeType": "YulIdentifier", - "src": "17576:1:18" - } - ] - } - ] - }, - "pre": { - "nativeSrc": "17545:14:18", - "nodeType": "YulBlock", - "src": "17545:14:18", - "statements": [ - { - "nativeSrc": "17547:10:18", - "nodeType": "YulVariableDeclaration", - "src": "17547:10:18", - "value": { - "kind": "number", - "nativeSrc": "17556:1:18", - "nodeType": "YulLiteral", - "src": "17556:1:18", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nativeSrc": "17551:1:18", - "nodeType": "YulTypedName", - "src": "17551:1:18", - "type": "" - } - ] - } - ] - }, - "src": "17541:284:18" - }, - { - "nativeSrc": "17834:10:18", - "nodeType": "YulAssignment", - "src": "17834:10:18", - "value": { - "name": "pos", - "nativeSrc": "17841:3:18", - "nodeType": "YulIdentifier", - "src": "17841:3:18" + "src": "9185:54:18" }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "17834:3:18", - "nodeType": "YulIdentifier", - "src": "17834:3:18" - } - ] + "nativeSrc": "9185:54:18", + "nodeType": "YulExpressionStatement", + "src": "9185:54:18" } ] }, - "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", - "nativeSrc": "17118:732:18", + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nativeSrc": "8822:423:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", - "nativeSrc": "17221:5:18", + "name": "src", + "nativeSrc": "8878:3:18", "nodeType": "YulTypedName", - "src": "17221:5:18", + "src": "8878:3:18", "type": "" }, { - "name": "pos", - "nativeSrc": "17228:3:18", + "name": "length", + "nativeSrc": "8883:6:18", + "nodeType": "YulTypedName", + "src": "8883:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "8891:3:18", "nodeType": "YulTypedName", - "src": "17228:3:18", + "src": "8891:3:18", "type": "" } ], "returnVariables": [ { - "name": "end", - "nativeSrc": "17237:3:18", + "name": "array", + "nativeSrc": "8899:5:18", "nodeType": "YulTypedName", - "src": "17237:3:18", + "src": "8899:5:18", "type": "" } ], - "src": "17118:732:18" + "src": "8822:423:18" }, { "body": { - "nativeSrc": "18004:225:18", + "nativeSrc": "9325:277:18", "nodeType": "YulBlock", - "src": "18004:225:18", + "src": "9325:277:18", "statements": [ { - "nativeSrc": "18014:26:18", - "nodeType": "YulAssignment", - "src": "18014:26:18", + "body": { + "nativeSrc": "9374:83:18", + "nodeType": "YulBlock", + "src": "9374:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "9376:77:18", + "nodeType": "YulIdentifier", + "src": "9376:77:18" + }, + "nativeSrc": "9376:79:18", + "nodeType": "YulFunctionCall", + "src": "9376:79:18" + }, + "nativeSrc": "9376:79:18", + "nodeType": "YulExpressionStatement", + "src": "9376:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "9353:6:18", + "nodeType": "YulIdentifier", + "src": "9353:6:18" + }, + { + "kind": "number", + "nativeSrc": "9361:4:18", + "nodeType": "YulLiteral", + "src": "9361:4:18", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9349:3:18", + "nodeType": "YulIdentifier", + "src": "9349:3:18" + }, + "nativeSrc": "9349:17:18", + "nodeType": "YulFunctionCall", + "src": "9349:17:18" + }, + { + "name": "end", + "nativeSrc": "9368:3:18", + "nodeType": "YulIdentifier", + "src": "9368:3:18" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "9345:3:18", + "nodeType": "YulIdentifier", + "src": "9345:3:18" + }, + "nativeSrc": "9345:27:18", + "nodeType": "YulFunctionCall", + "src": "9345:27:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "9338:6:18", + "nodeType": "YulIdentifier", + "src": "9338:6:18" + }, + "nativeSrc": "9338:35:18", + "nodeType": "YulFunctionCall", + "src": "9338:35:18" + }, + "nativeSrc": "9335:122:18", + "nodeType": "YulIf", + "src": "9335:122:18" + }, + { + "nativeSrc": "9466:34:18", + "nodeType": "YulVariableDeclaration", + "src": "9466:34:18", "value": { "arguments": [ { - "name": "headStart", - "nativeSrc": "18026:9:18", + "name": "offset", + "nativeSrc": "9493:6:18", "nodeType": "YulIdentifier", - "src": "18026:9:18" - }, - { - "kind": "number", - "nativeSrc": "18037:2:18", - "nodeType": "YulLiteral", - "src": "18037:2:18", - "type": "", - "value": "32" + "src": "9493:6:18" } ], "functionName": { - "name": "add", - "nativeSrc": "18022:3:18", + "name": "calldataload", + "nativeSrc": "9480:12:18", "nodeType": "YulIdentifier", - "src": "18022:3:18" + "src": "9480:12:18" }, - "nativeSrc": "18022:18:18", + "nativeSrc": "9480:20:18", "nodeType": "YulFunctionCall", - "src": "18022:18:18" + "src": "9480:20:18" }, - "variableNames": [ + "variables": [ { - "name": "tail", - "nativeSrc": "18014:4:18", - "nodeType": "YulIdentifier", - "src": "18014:4:18" + "name": "length", + "nativeSrc": "9470:6:18", + "nodeType": "YulTypedName", + "src": "9470:6:18", + "type": "" } ] }, { - "expression": { + "nativeSrc": "9509:87:18", + "nodeType": "YulAssignment", + "src": "9509:87:18", + "value": { "arguments": [ { "arguments": [ { - "name": "headStart", - "nativeSrc": "18061:9:18", + "name": "offset", + "nativeSrc": "9569:6:18", "nodeType": "YulIdentifier", - "src": "18061:9:18" + "src": "9569:6:18" }, { "kind": "number", - "nativeSrc": "18072:1:18", + "nativeSrc": "9577:4:18", "nodeType": "YulLiteral", - "src": "18072:1:18", + "src": "9577:4:18", "type": "", - "value": "0" + "value": "0x20" } ], "functionName": { "name": "add", - "nativeSrc": "18057:3:18", + "nativeSrc": "9565:3:18", "nodeType": "YulIdentifier", - "src": "18057:3:18" + "src": "9565:3:18" }, - "nativeSrc": "18057:17:18", + "nativeSrc": "9565:17:18", "nodeType": "YulFunctionCall", - "src": "18057:17:18" + "src": "9565:17:18" }, { - "arguments": [ - { - "name": "tail", - "nativeSrc": "18080:4:18", - "nodeType": "YulIdentifier", - "src": "18080:4:18" - }, - { - "name": "headStart", - "nativeSrc": "18086:9:18", - "nodeType": "YulIdentifier", - "src": "18086:9:18" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "18076:3:18", - "nodeType": "YulIdentifier", - "src": "18076:3:18" - }, - "nativeSrc": "18076:20:18", - "nodeType": "YulFunctionCall", - "src": "18076:20:18" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "18050:6:18", - "nodeType": "YulIdentifier", - "src": "18050:6:18" - }, - "nativeSrc": "18050:47:18", - "nodeType": "YulFunctionCall", - "src": "18050:47:18" - }, - "nativeSrc": "18050:47:18", - "nodeType": "YulExpressionStatement", - "src": "18050:47:18" - }, - { - "nativeSrc": "18106:116:18", - "nodeType": "YulAssignment", - "src": "18106:116:18", - "value": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "18208:6:18", + "name": "length", + "nativeSrc": "9584:6:18", "nodeType": "YulIdentifier", - "src": "18208:6:18" + "src": "9584:6:18" }, { - "name": "tail", - "nativeSrc": "18217:4:18", + "name": "end", + "nativeSrc": "9592:3:18", "nodeType": "YulIdentifier", - "src": "18217:4:18" + "src": "9592:3:18" } ], "functionName": { - "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", - "nativeSrc": "18114:93:18", + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nativeSrc": "9518:46:18", "nodeType": "YulIdentifier", - "src": "18114:93:18" + "src": "9518:46:18" }, - "nativeSrc": "18114:108:18", + "nativeSrc": "9518:78:18", "nodeType": "YulFunctionCall", - "src": "18114:108:18" + "src": "9518:78:18" }, "variableNames": [ { - "name": "tail", - "nativeSrc": "18106:4:18", + "name": "array", + "nativeSrc": "9509:5:18", "nodeType": "YulIdentifier", - "src": "18106:4:18" + "src": "9509:5:18" } ] } ] }, - "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", - "nativeSrc": "17856:373:18", + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "9264:338:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nativeSrc": "17976:9:18", + "name": "offset", + "nativeSrc": "9303:6:18", "nodeType": "YulTypedName", - "src": "17976:9:18", + "src": "9303:6:18", "type": "" }, { - "name": "value0", - "nativeSrc": "17988:6:18", + "name": "end", + "nativeSrc": "9311:3:18", "nodeType": "YulTypedName", - "src": "17988:6:18", + "src": "9311:3:18", "type": "" } ], "returnVariables": [ { - "name": "tail", - "nativeSrc": "17999:4:18", + "name": "array", + "nativeSrc": "9319:5:18", "nodeType": "YulTypedName", - "src": "17999:4:18", + "src": "9319:5:18", "type": "" } ], - "src": "17856:373:18" + "src": "9264:338:18" }, { "body": { - "nativeSrc": "18361:817:18", + "nativeSrc": "9801:1316:18", "nodeType": "YulBlock", - "src": "18361:817:18", + "src": "9801:1316:18", "statements": [ { "body": { - "nativeSrc": "18408:83:18", + "nativeSrc": "9848:83:18", "nodeType": "YulBlock", - "src": "18408:83:18", + "src": "9848:83:18", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "18410:77:18", + "nativeSrc": "9850:77:18", "nodeType": "YulIdentifier", - "src": "18410:77:18" + "src": "9850:77:18" }, - "nativeSrc": "18410:79:18", + "nativeSrc": "9850:79:18", "nodeType": "YulFunctionCall", - "src": "18410:79:18" + "src": "9850:79:18" }, - "nativeSrc": "18410:79:18", + "nativeSrc": "9850:79:18", "nodeType": "YulExpressionStatement", - "src": "18410:79:18" + "src": "9850:79:18" } ] }, @@ -71016,389 +70481,303 @@ "arguments": [ { "name": "dataEnd", - "nativeSrc": "18382:7:18", + "nativeSrc": "9822:7:18", "nodeType": "YulIdentifier", - "src": "18382:7:18" + "src": "9822:7:18" }, { "name": "headStart", - "nativeSrc": "18391:9:18", + "nativeSrc": "9831:9:18", "nodeType": "YulIdentifier", - "src": "18391:9:18" + "src": "9831:9:18" } ], "functionName": { "name": "sub", - "nativeSrc": "18378:3:18", + "nativeSrc": "9818:3:18", "nodeType": "YulIdentifier", - "src": "18378:3:18" + "src": "9818:3:18" }, - "nativeSrc": "18378:23:18", + "nativeSrc": "9818:23:18", "nodeType": "YulFunctionCall", - "src": "18378:23:18" + "src": "9818:23:18" }, { "kind": "number", - "nativeSrc": "18403:3:18", + "nativeSrc": "9843:3:18", "nodeType": "YulLiteral", - "src": "18403:3:18", + "src": "9843:3:18", "type": "", - "value": "128" + "value": "160" } ], "functionName": { "name": "slt", - "nativeSrc": "18374:3:18", + "nativeSrc": "9814:3:18", "nodeType": "YulIdentifier", - "src": "18374:3:18" + "src": "9814:3:18" }, - "nativeSrc": "18374:33:18", + "nativeSrc": "9814:33:18", "nodeType": "YulFunctionCall", - "src": "18374:33:18" + "src": "9814:33:18" }, - "nativeSrc": "18371:120:18", + "nativeSrc": "9811:120:18", "nodeType": "YulIf", - "src": "18371:120:18" + "src": "9811:120:18" }, { - "nativeSrc": "18501:117:18", + "nativeSrc": "9941:117:18", "nodeType": "YulBlock", - "src": "18501:117:18", + "src": "9941:117:18", "statements": [ { - "nativeSrc": "18516:15:18", + "nativeSrc": "9956:15:18", "nodeType": "YulVariableDeclaration", - "src": "18516:15:18", + "src": "9956:15:18", "value": { "kind": "number", - "nativeSrc": "18530:1:18", + "nativeSrc": "9970:1:18", "nodeType": "YulLiteral", - "src": "18530:1:18", + "src": "9970:1:18", "type": "", "value": "0" }, "variables": [ { "name": "offset", - "nativeSrc": "18520:6:18", + "nativeSrc": "9960:6:18", "nodeType": "YulTypedName", - "src": "18520:6:18", + "src": "9960:6:18", "type": "" } ] }, { - "nativeSrc": "18545:63:18", + "nativeSrc": "9985:63:18", "nodeType": "YulAssignment", - "src": "18545:63:18", + "src": "9985:63:18", "value": { "arguments": [ { "arguments": [ { "name": "headStart", - "nativeSrc": "18580:9:18", + "nativeSrc": "10020:9:18", "nodeType": "YulIdentifier", - "src": "18580:9:18" + "src": "10020:9:18" }, { "name": "offset", - "nativeSrc": "18591:6:18", + "nativeSrc": "10031:6:18", "nodeType": "YulIdentifier", - "src": "18591:6:18" + "src": "10031:6:18" } ], "functionName": { "name": "add", - "nativeSrc": "18576:3:18", + "nativeSrc": "10016:3:18", "nodeType": "YulIdentifier", - "src": "18576:3:18" + "src": "10016:3:18" }, - "nativeSrc": "18576:22:18", + "nativeSrc": "10016:22:18", "nodeType": "YulFunctionCall", - "src": "18576:22:18" + "src": "10016:22:18" }, { "name": "dataEnd", - "nativeSrc": "18600:7:18", + "nativeSrc": "10040:7:18", "nodeType": "YulIdentifier", - "src": "18600:7:18" + "src": "10040:7:18" } ], "functionName": { "name": "abi_decode_t_address", - "nativeSrc": "18555:20:18", + "nativeSrc": "9995:20:18", "nodeType": "YulIdentifier", - "src": "18555:20:18" + "src": "9995:20:18" }, - "nativeSrc": "18555:53:18", + "nativeSrc": "9995:53:18", "nodeType": "YulFunctionCall", - "src": "18555:53:18" + "src": "9995:53:18" }, "variableNames": [ { "name": "value0", - "nativeSrc": "18545:6:18", - "nodeType": "YulIdentifier", - "src": "18545:6:18" - } - ] - } - ] - }, - { - "nativeSrc": "18628:118:18", - "nodeType": "YulBlock", - "src": "18628:118:18", - "statements": [ - { - "nativeSrc": "18643:16:18", - "nodeType": "YulVariableDeclaration", - "src": "18643:16:18", - "value": { - "kind": "number", - "nativeSrc": "18657:2:18", - "nodeType": "YulLiteral", - "src": "18657:2:18", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "18647:6:18", - "nodeType": "YulTypedName", - "src": "18647:6:18", - "type": "" - } - ] - }, - { - "nativeSrc": "18673:63:18", - "nodeType": "YulAssignment", - "src": "18673:63:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "18708:9:18", - "nodeType": "YulIdentifier", - "src": "18708:9:18" - }, - { - "name": "offset", - "nativeSrc": "18719:6:18", - "nodeType": "YulIdentifier", - "src": "18719:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "18704:3:18", - "nodeType": "YulIdentifier", - "src": "18704:3:18" - }, - "nativeSrc": "18704:22:18", - "nodeType": "YulFunctionCall", - "src": "18704:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "18728:7:18", - "nodeType": "YulIdentifier", - "src": "18728:7:18" - } - ], - "functionName": { - "name": "abi_decode_t_uint256", - "nativeSrc": "18683:20:18", - "nodeType": "YulIdentifier", - "src": "18683:20:18" - }, - "nativeSrc": "18683:53:18", - "nodeType": "YulFunctionCall", - "src": "18683:53:18" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "18673:6:18", + "nativeSrc": "9985:6:18", "nodeType": "YulIdentifier", - "src": "18673:6:18" + "src": "9985:6:18" } ] } ] }, { - "nativeSrc": "18756:118:18", + "nativeSrc": "10068:118:18", "nodeType": "YulBlock", - "src": "18756:118:18", + "src": "10068:118:18", "statements": [ { - "nativeSrc": "18771:16:18", + "nativeSrc": "10083:16:18", "nodeType": "YulVariableDeclaration", - "src": "18771:16:18", + "src": "10083:16:18", "value": { "kind": "number", - "nativeSrc": "18785:2:18", + "nativeSrc": "10097:2:18", "nodeType": "YulLiteral", - "src": "18785:2:18", + "src": "10097:2:18", "type": "", - "value": "64" + "value": "32" }, "variables": [ { "name": "offset", - "nativeSrc": "18775:6:18", + "nativeSrc": "10087:6:18", "nodeType": "YulTypedName", - "src": "18775:6:18", + "src": "10087:6:18", "type": "" } ] }, { - "nativeSrc": "18801:63:18", + "nativeSrc": "10113:63:18", "nodeType": "YulAssignment", - "src": "18801:63:18", + "src": "10113:63:18", "value": { "arguments": [ { "arguments": [ { "name": "headStart", - "nativeSrc": "18836:9:18", + "nativeSrc": "10148:9:18", "nodeType": "YulIdentifier", - "src": "18836:9:18" + "src": "10148:9:18" }, { "name": "offset", - "nativeSrc": "18847:6:18", + "nativeSrc": "10159:6:18", "nodeType": "YulIdentifier", - "src": "18847:6:18" + "src": "10159:6:18" } ], "functionName": { "name": "add", - "nativeSrc": "18832:3:18", + "nativeSrc": "10144:3:18", "nodeType": "YulIdentifier", - "src": "18832:3:18" + "src": "10144:3:18" }, - "nativeSrc": "18832:22:18", + "nativeSrc": "10144:22:18", "nodeType": "YulFunctionCall", - "src": "18832:22:18" + "src": "10144:22:18" }, { "name": "dataEnd", - "nativeSrc": "18856:7:18", + "nativeSrc": "10168:7:18", "nodeType": "YulIdentifier", - "src": "18856:7:18" + "src": "10168:7:18" } ], "functionName": { - "name": "abi_decode_t_uint256", - "nativeSrc": "18811:20:18", + "name": "abi_decode_t_address", + "nativeSrc": "10123:20:18", "nodeType": "YulIdentifier", - "src": "18811:20:18" + "src": "10123:20:18" }, - "nativeSrc": "18811:53:18", + "nativeSrc": "10123:53:18", "nodeType": "YulFunctionCall", - "src": "18811:53:18" + "src": "10123:53:18" }, "variableNames": [ { - "name": "value2", - "nativeSrc": "18801:6:18", + "name": "value1", + "nativeSrc": "10113:6:18", "nodeType": "YulIdentifier", - "src": "18801:6:18" + "src": "10113:6:18" } ] } ] }, { - "nativeSrc": "18884:287:18", + "nativeSrc": "10196:303:18", "nodeType": "YulBlock", - "src": "18884:287:18", + "src": "10196:303:18", "statements": [ { - "nativeSrc": "18899:46:18", + "nativeSrc": "10211:46:18", "nodeType": "YulVariableDeclaration", - "src": "18899:46:18", + "src": "10211:46:18", "value": { "arguments": [ { "arguments": [ { "name": "headStart", - "nativeSrc": "18930:9:18", + "nativeSrc": "10242:9:18", "nodeType": "YulIdentifier", - "src": "18930:9:18" + "src": "10242:9:18" }, { "kind": "number", - "nativeSrc": "18941:2:18", + "nativeSrc": "10253:2:18", "nodeType": "YulLiteral", - "src": "18941:2:18", + "src": "10253:2:18", "type": "", - "value": "96" + "value": "64" } ], "functionName": { "name": "add", - "nativeSrc": "18926:3:18", + "nativeSrc": "10238:3:18", "nodeType": "YulIdentifier", - "src": "18926:3:18" + "src": "10238:3:18" }, - "nativeSrc": "18926:18:18", + "nativeSrc": "10238:18:18", "nodeType": "YulFunctionCall", - "src": "18926:18:18" + "src": "10238:18:18" } ], "functionName": { "name": "calldataload", - "nativeSrc": "18913:12:18", + "nativeSrc": "10225:12:18", "nodeType": "YulIdentifier", - "src": "18913:12:18" + "src": "10225:12:18" }, - "nativeSrc": "18913:32:18", + "nativeSrc": "10225:32:18", "nodeType": "YulFunctionCall", - "src": "18913:32:18" + "src": "10225:32:18" }, "variables": [ { "name": "offset", - "nativeSrc": "18903:6:18", + "nativeSrc": "10215:6:18", "nodeType": "YulTypedName", - "src": "18903:6:18", + "src": "10215:6:18", "type": "" } ] }, { "body": { - "nativeSrc": "18992:83:18", + "nativeSrc": "10304:83:18", "nodeType": "YulBlock", - "src": "18992:83:18", + "src": "10304:83:18", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "18994:77:18", + "nativeSrc": "10306:77:18", "nodeType": "YulIdentifier", - "src": "18994:77:18" + "src": "10306:77:18" }, - "nativeSrc": "18994:79:18", + "nativeSrc": "10306:79:18", "nodeType": "YulFunctionCall", - "src": "18994:79:18" + "src": "10306:79:18" }, - "nativeSrc": "18994:79:18", + "nativeSrc": "10306:79:18", "nodeType": "YulExpressionStatement", - "src": "18994:79:18" + "src": "10306:79:18" } ] }, @@ -71406,606 +70785,435 @@ "arguments": [ { "name": "offset", - "nativeSrc": "18964:6:18", + "nativeSrc": "10276:6:18", "nodeType": "YulIdentifier", - "src": "18964:6:18" + "src": "10276:6:18" }, { "kind": "number", - "nativeSrc": "18972:18:18", + "nativeSrc": "10284:18:18", "nodeType": "YulLiteral", - "src": "18972:18:18", + "src": "10284:18:18", "type": "", "value": "0xffffffffffffffff" } ], "functionName": { "name": "gt", - "nativeSrc": "18961:2:18", + "nativeSrc": "10273:2:18", "nodeType": "YulIdentifier", - "src": "18961:2:18" + "src": "10273:2:18" }, - "nativeSrc": "18961:30:18", + "nativeSrc": "10273:30:18", "nodeType": "YulFunctionCall", - "src": "18961:30:18" + "src": "10273:30:18" }, - "nativeSrc": "18958:117:18", + "nativeSrc": "10270:117:18", "nodeType": "YulIf", - "src": "18958:117:18" + "src": "10270:117:18" }, { - "nativeSrc": "19089:72:18", + "nativeSrc": "10401:88:18", "nodeType": "YulAssignment", - "src": "19089:72:18", + "src": "10401:88:18", "value": { "arguments": [ { "arguments": [ { "name": "headStart", - "nativeSrc": "19133:9:18", + "nativeSrc": "10461:9:18", "nodeType": "YulIdentifier", - "src": "19133:9:18" + "src": "10461:9:18" }, { "name": "offset", - "nativeSrc": "19144:6:18", + "nativeSrc": "10472:6:18", "nodeType": "YulIdentifier", - "src": "19144:6:18" + "src": "10472:6:18" } ], "functionName": { "name": "add", - "nativeSrc": "19129:3:18", + "nativeSrc": "10457:3:18", "nodeType": "YulIdentifier", - "src": "19129:3:18" + "src": "10457:3:18" }, - "nativeSrc": "19129:22:18", + "nativeSrc": "10457:22:18", "nodeType": "YulFunctionCall", - "src": "19129:22:18" + "src": "10457:22:18" }, { "name": "dataEnd", - "nativeSrc": "19153:7:18", + "nativeSrc": "10481:7:18", "nodeType": "YulIdentifier", - "src": "19153:7:18" + "src": "10481:7:18" } ], "functionName": { - "name": "abi_decode_t_bytes_memory_ptr", - "nativeSrc": "19099:29:18", + "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "10411:45:18", "nodeType": "YulIdentifier", - "src": "19099:29:18" + "src": "10411:45:18" }, - "nativeSrc": "19099:62:18", + "nativeSrc": "10411:78:18", "nodeType": "YulFunctionCall", - "src": "19099:62:18" + "src": "10411:78:18" }, "variableNames": [ { - "name": "value3", - "nativeSrc": "19089:6:18", + "name": "value2", + "nativeSrc": "10401:6:18", "nodeType": "YulIdentifier", - "src": "19089:6:18" + "src": "10401:6:18" } ] } ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_uint256t_uint256t_bytes_memory_ptr", - "nativeSrc": "18235:943:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "18307:9:18", - "nodeType": "YulTypedName", - "src": "18307:9:18", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "18318:7:18", - "nodeType": "YulTypedName", - "src": "18318:7:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "18330:6:18", - "nodeType": "YulTypedName", - "src": "18330:6:18", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "18338:6:18", - "nodeType": "YulTypedName", - "src": "18338:6:18", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "18346:6:18", - "nodeType": "YulTypedName", - "src": "18346:6:18", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "18354:6:18", - "nodeType": "YulTypedName", - "src": "18354:6:18", - "type": "" - } - ], - "src": "18235:943:18" - }, - { - "body": { - "nativeSrc": "19224:76:18", - "nodeType": "YulBlock", - "src": "19224:76:18", - "statements": [ + }, { - "body": { - "nativeSrc": "19278:16:18", - "nodeType": "YulBlock", - "src": "19278:16:18", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "19287:1:18", - "nodeType": "YulLiteral", - "src": "19287:1:18", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "19290:1:18", - "nodeType": "YulLiteral", - "src": "19290:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "19280:6:18", - "nodeType": "YulIdentifier", - "src": "19280:6:18" - }, - "nativeSrc": "19280:12:18", - "nodeType": "YulFunctionCall", - "src": "19280:12:18" - }, - "nativeSrc": "19280:12:18", - "nodeType": "YulExpressionStatement", - "src": "19280:12:18" - } - ] - }, - "condition": { - "arguments": [ - { + "nativeSrc": "10509:303:18", + "nodeType": "YulBlock", + "src": "10509:303:18", + "statements": [ + { + "nativeSrc": "10524:46:18", + "nodeType": "YulVariableDeclaration", + "src": "10524:46:18", + "value": { "arguments": [ - { - "name": "value", - "nativeSrc": "19247:5:18", - "nodeType": "YulIdentifier", - "src": "19247:5:18" - }, { "arguments": [ { - "name": "value", - "nativeSrc": "19269:5:18", + "name": "headStart", + "nativeSrc": "10555:9:18", "nodeType": "YulIdentifier", - "src": "19269:5:18" + "src": "10555:9:18" + }, + { + "kind": "number", + "nativeSrc": "10566:2:18", + "nodeType": "YulLiteral", + "src": "10566:2:18", + "type": "", + "value": "96" } ], "functionName": { - "name": "cleanup_t_bool", - "nativeSrc": "19254:14:18", + "name": "add", + "nativeSrc": "10551:3:18", "nodeType": "YulIdentifier", - "src": "19254:14:18" + "src": "10551:3:18" }, - "nativeSrc": "19254:21:18", + "nativeSrc": "10551:18:18", "nodeType": "YulFunctionCall", - "src": "19254:21:18" + "src": "10551:18:18" } ], "functionName": { - "name": "eq", - "nativeSrc": "19244:2:18", + "name": "calldataload", + "nativeSrc": "10538:12:18", "nodeType": "YulIdentifier", - "src": "19244:2:18" + "src": "10538:12:18" }, - "nativeSrc": "19244:32:18", + "nativeSrc": "10538:32:18", "nodeType": "YulFunctionCall", - "src": "19244:32:18" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "19237:6:18", - "nodeType": "YulIdentifier", - "src": "19237:6:18" - }, - "nativeSrc": "19237:40:18", - "nodeType": "YulFunctionCall", - "src": "19237:40:18" - }, - "nativeSrc": "19234:60:18", - "nodeType": "YulIf", - "src": "19234:60:18" - } - ] - }, - "name": "validator_revert_t_bool", - "nativeSrc": "19184:116:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "19217:5:18", - "nodeType": "YulTypedName", - "src": "19217:5:18", - "type": "" - } - ], - "src": "19184:116:18" - }, - { - "body": { - "nativeSrc": "19355:84:18", - "nodeType": "YulBlock", - "src": "19355:84:18", - "statements": [ - { - "nativeSrc": "19365:29:18", - "nodeType": "YulAssignment", - "src": "19365:29:18", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "19387:6:18", - "nodeType": "YulIdentifier", - "src": "19387:6:18" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "19374:12:18", - "nodeType": "YulIdentifier", - "src": "19374:12:18" + "src": "10538:32:18" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "10528:6:18", + "nodeType": "YulTypedName", + "src": "10528:6:18", + "type": "" + } + ] }, - "nativeSrc": "19374:20:18", - "nodeType": "YulFunctionCall", - "src": "19374:20:18" - }, - "variableNames": [ { - "name": "value", - "nativeSrc": "19365:5:18", - "nodeType": "YulIdentifier", - "src": "19365:5:18" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "19427:5:18", - "nodeType": "YulIdentifier", - "src": "19427:5:18" - } - ], - "functionName": { - "name": "validator_revert_t_bool", - "nativeSrc": "19403:23:18", - "nodeType": "YulIdentifier", - "src": "19403:23:18" - }, - "nativeSrc": "19403:30:18", - "nodeType": "YulFunctionCall", - "src": "19403:30:18" - }, - "nativeSrc": "19403:30:18", - "nodeType": "YulExpressionStatement", - "src": "19403:30:18" - } - ] - }, - "name": "abi_decode_t_bool", - "nativeSrc": "19306:133:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "19333:6:18", - "nodeType": "YulTypedName", - "src": "19333:6:18", - "type": "" - }, - { - "name": "end", - "nativeSrc": "19341:3:18", - "nodeType": "YulTypedName", - "src": "19341:3:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "19349:5:18", - "nodeType": "YulTypedName", - "src": "19349:5:18", - "type": "" - } - ], - "src": "19306:133:18" - }, - { - "body": { - "nativeSrc": "19525:388:18", - "nodeType": "YulBlock", - "src": "19525:388:18", - "statements": [ - { - "body": { - "nativeSrc": "19571:83:18", - "nodeType": "YulBlock", - "src": "19571:83:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "19573:77:18", - "nodeType": "YulIdentifier", - "src": "19573:77:18" - }, - "nativeSrc": "19573:79:18", - "nodeType": "YulFunctionCall", - "src": "19573:79:18" - }, - "nativeSrc": "19573:79:18", - "nodeType": "YulExpressionStatement", - "src": "19573:79:18" - } - ] - }, - "condition": { - "arguments": [ - { + "body": { + "nativeSrc": "10617:83:18", + "nodeType": "YulBlock", + "src": "10617:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "10619:77:18", + "nodeType": "YulIdentifier", + "src": "10619:77:18" + }, + "nativeSrc": "10619:79:18", + "nodeType": "YulFunctionCall", + "src": "10619:79:18" + }, + "nativeSrc": "10619:79:18", + "nodeType": "YulExpressionStatement", + "src": "10619:79:18" + } + ] + }, + "condition": { "arguments": [ { - "name": "dataEnd", - "nativeSrc": "19546:7:18", + "name": "offset", + "nativeSrc": "10589:6:18", "nodeType": "YulIdentifier", - "src": "19546:7:18" + "src": "10589:6:18" }, { - "name": "headStart", - "nativeSrc": "19555:9:18", - "nodeType": "YulIdentifier", - "src": "19555:9:18" + "kind": "number", + "nativeSrc": "10597:18:18", + "nodeType": "YulLiteral", + "src": "10597:18:18", + "type": "", + "value": "0xffffffffffffffff" } ], "functionName": { - "name": "sub", - "nativeSrc": "19542:3:18", + "name": "gt", + "nativeSrc": "10586:2:18", "nodeType": "YulIdentifier", - "src": "19542:3:18" + "src": "10586:2:18" }, - "nativeSrc": "19542:23:18", + "nativeSrc": "10586:30:18", "nodeType": "YulFunctionCall", - "src": "19542:23:18" - }, - { - "kind": "number", - "nativeSrc": "19567:2:18", - "nodeType": "YulLiteral", - "src": "19567:2:18", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "19538:3:18", - "nodeType": "YulIdentifier", - "src": "19538:3:18" - }, - "nativeSrc": "19538:32:18", - "nodeType": "YulFunctionCall", - "src": "19538:32:18" - }, - "nativeSrc": "19535:119:18", - "nodeType": "YulIf", - "src": "19535:119:18" - }, - { - "nativeSrc": "19664:117:18", - "nodeType": "YulBlock", - "src": "19664:117:18", - "statements": [ - { - "nativeSrc": "19679:15:18", - "nodeType": "YulVariableDeclaration", - "src": "19679:15:18", - "value": { - "kind": "number", - "nativeSrc": "19693:1:18", - "nodeType": "YulLiteral", - "src": "19693:1:18", - "type": "", - "value": "0" + "src": "10586:30:18" }, - "variables": [ - { - "name": "offset", - "nativeSrc": "19683:6:18", - "nodeType": "YulTypedName", - "src": "19683:6:18", - "type": "" - } - ] + "nativeSrc": "10583:117:18", + "nodeType": "YulIf", + "src": "10583:117:18" }, { - "nativeSrc": "19708:63:18", + "nativeSrc": "10714:88:18", "nodeType": "YulAssignment", - "src": "19708:63:18", + "src": "10714:88:18", "value": { "arguments": [ { "arguments": [ { "name": "headStart", - "nativeSrc": "19743:9:18", + "nativeSrc": "10774:9:18", "nodeType": "YulIdentifier", - "src": "19743:9:18" + "src": "10774:9:18" }, { "name": "offset", - "nativeSrc": "19754:6:18", + "nativeSrc": "10785:6:18", "nodeType": "YulIdentifier", - "src": "19754:6:18" + "src": "10785:6:18" } ], "functionName": { "name": "add", - "nativeSrc": "19739:3:18", + "nativeSrc": "10770:3:18", "nodeType": "YulIdentifier", - "src": "19739:3:18" + "src": "10770:3:18" }, - "nativeSrc": "19739:22:18", + "nativeSrc": "10770:22:18", "nodeType": "YulFunctionCall", - "src": "19739:22:18" + "src": "10770:22:18" }, { "name": "dataEnd", - "nativeSrc": "19763:7:18", + "nativeSrc": "10794:7:18", "nodeType": "YulIdentifier", - "src": "19763:7:18" + "src": "10794:7:18" } ], "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "19718:20:18", + "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "10724:45:18", "nodeType": "YulIdentifier", - "src": "19718:20:18" + "src": "10724:45:18" }, - "nativeSrc": "19718:53:18", + "nativeSrc": "10724:78:18", "nodeType": "YulFunctionCall", - "src": "19718:53:18" + "src": "10724:78:18" }, "variableNames": [ { - "name": "value0", - "nativeSrc": "19708:6:18", + "name": "value3", + "nativeSrc": "10714:6:18", "nodeType": "YulIdentifier", - "src": "19708:6:18" + "src": "10714:6:18" } ] } ] }, { - "nativeSrc": "19791:115:18", + "nativeSrc": "10822:288:18", "nodeType": "YulBlock", - "src": "19791:115:18", + "src": "10822:288:18", "statements": [ { - "nativeSrc": "19806:16:18", + "nativeSrc": "10837:47:18", "nodeType": "YulVariableDeclaration", - "src": "19806:16:18", + "src": "10837:47:18", "value": { - "kind": "number", - "nativeSrc": "19820:2:18", - "nodeType": "YulLiteral", - "src": "19820:2:18", - "type": "", - "value": "32" + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10868:9:18", + "nodeType": "YulIdentifier", + "src": "10868:9:18" + }, + { + "kind": "number", + "nativeSrc": "10879:3:18", + "nodeType": "YulLiteral", + "src": "10879:3:18", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10864:3:18", + "nodeType": "YulIdentifier", + "src": "10864:3:18" + }, + "nativeSrc": "10864:19:18", + "nodeType": "YulFunctionCall", + "src": "10864:19:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "10851:12:18", + "nodeType": "YulIdentifier", + "src": "10851:12:18" + }, + "nativeSrc": "10851:33:18", + "nodeType": "YulFunctionCall", + "src": "10851:33:18" }, "variables": [ { "name": "offset", - "nativeSrc": "19810:6:18", + "nativeSrc": "10841:6:18", "nodeType": "YulTypedName", - "src": "19810:6:18", + "src": "10841:6:18", "type": "" } ] }, { - "nativeSrc": "19836:60:18", + "body": { + "nativeSrc": "10931:83:18", + "nodeType": "YulBlock", + "src": "10931:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "10933:77:18", + "nodeType": "YulIdentifier", + "src": "10933:77:18" + }, + "nativeSrc": "10933:79:18", + "nodeType": "YulFunctionCall", + "src": "10933:79:18" + }, + "nativeSrc": "10933:79:18", + "nodeType": "YulExpressionStatement", + "src": "10933:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "10903:6:18", + "nodeType": "YulIdentifier", + "src": "10903:6:18" + }, + { + "kind": "number", + "nativeSrc": "10911:18:18", + "nodeType": "YulLiteral", + "src": "10911:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "10900:2:18", + "nodeType": "YulIdentifier", + "src": "10900:2:18" + }, + "nativeSrc": "10900:30:18", + "nodeType": "YulFunctionCall", + "src": "10900:30:18" + }, + "nativeSrc": "10897:117:18", + "nodeType": "YulIf", + "src": "10897:117:18" + }, + { + "nativeSrc": "11028:72:18", "nodeType": "YulAssignment", - "src": "19836:60:18", + "src": "11028:72:18", "value": { "arguments": [ { "arguments": [ { "name": "headStart", - "nativeSrc": "19868:9:18", + "nativeSrc": "11072:9:18", "nodeType": "YulIdentifier", - "src": "19868:9:18" + "src": "11072:9:18" }, { "name": "offset", - "nativeSrc": "19879:6:18", + "nativeSrc": "11083:6:18", "nodeType": "YulIdentifier", - "src": "19879:6:18" + "src": "11083:6:18" } ], "functionName": { "name": "add", - "nativeSrc": "19864:3:18", + "nativeSrc": "11068:3:18", "nodeType": "YulIdentifier", - "src": "19864:3:18" + "src": "11068:3:18" }, - "nativeSrc": "19864:22:18", + "nativeSrc": "11068:22:18", "nodeType": "YulFunctionCall", - "src": "19864:22:18" + "src": "11068:22:18" }, { "name": "dataEnd", - "nativeSrc": "19888:7:18", + "nativeSrc": "11092:7:18", "nodeType": "YulIdentifier", - "src": "19888:7:18" + "src": "11092:7:18" } ], "functionName": { - "name": "abi_decode_t_bool", - "nativeSrc": "19846:17:18", + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "11038:29:18", "nodeType": "YulIdentifier", - "src": "19846:17:18" + "src": "11038:29:18" }, - "nativeSrc": "19846:50:18", + "nativeSrc": "11038:62:18", "nodeType": "YulFunctionCall", - "src": "19846:50:18" + "src": "11038:62:18" }, "variableNames": [ { - "name": "value1", - "nativeSrc": "19836:6:18", + "name": "value4", + "nativeSrc": "11028:6:18", "nodeType": "YulIdentifier", - "src": "19836:6:18" + "src": "11028:6:18" } ] } @@ -72013,71 +71221,92 @@ } ] }, - "name": "abi_decode_tuple_t_addresst_bool", - "nativeSrc": "19445:468:18", + "name": "abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr", + "nativeSrc": "9608:1509:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", - "nativeSrc": "19487:9:18", + "nativeSrc": "9739:9:18", "nodeType": "YulTypedName", - "src": "19487:9:18", + "src": "9739:9:18", "type": "" }, { "name": "dataEnd", - "nativeSrc": "19498:7:18", + "nativeSrc": "9750:7:18", "nodeType": "YulTypedName", - "src": "19498:7:18", + "src": "9750:7:18", "type": "" } ], "returnVariables": [ { "name": "value0", - "nativeSrc": "19510:6:18", + "nativeSrc": "9762:6:18", "nodeType": "YulTypedName", - "src": "19510:6:18", + "src": "9762:6:18", "type": "" }, { "name": "value1", - "nativeSrc": "19518:6:18", + "nativeSrc": "9770:6:18", + "nodeType": "YulTypedName", + "src": "9770:6:18", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "9778:6:18", + "nodeType": "YulTypedName", + "src": "9778:6:18", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "9786:6:18", + "nodeType": "YulTypedName", + "src": "9786:6:18", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "9794:6:18", "nodeType": "YulTypedName", - "src": "19518:6:18", + "src": "9794:6:18", "type": "" } ], - "src": "19445:468:18" + "src": "9608:1509:18" }, { "body": { - "nativeSrc": "20029:689:18", + "nativeSrc": "11206:391:18", "nodeType": "YulBlock", - "src": "20029:689:18", + "src": "11206:391:18", "statements": [ { "body": { - "nativeSrc": "20075:83:18", + "nativeSrc": "11252:83:18", "nodeType": "YulBlock", - "src": "20075:83:18", + "src": "11252:83:18", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "20077:77:18", + "nativeSrc": "11254:77:18", "nodeType": "YulIdentifier", - "src": "20077:77:18" + "src": "11254:77:18" }, - "nativeSrc": "20077:79:18", + "nativeSrc": "11254:79:18", "nodeType": "YulFunctionCall", - "src": "20077:79:18" + "src": "11254:79:18" }, - "nativeSrc": "20077:79:18", + "nativeSrc": "11254:79:18", "nodeType": "YulExpressionStatement", - "src": "20077:79:18" + "src": "11254:79:18" } ] }, @@ -72087,391 +71316,217 @@ "arguments": [ { "name": "dataEnd", - "nativeSrc": "20050:7:18", + "nativeSrc": "11227:7:18", "nodeType": "YulIdentifier", - "src": "20050:7:18" + "src": "11227:7:18" }, { "name": "headStart", - "nativeSrc": "20059:9:18", + "nativeSrc": "11236:9:18", "nodeType": "YulIdentifier", - "src": "20059:9:18" + "src": "11236:9:18" } ], "functionName": { "name": "sub", - "nativeSrc": "20046:3:18", + "nativeSrc": "11223:3:18", "nodeType": "YulIdentifier", - "src": "20046:3:18" + "src": "11223:3:18" }, - "nativeSrc": "20046:23:18", + "nativeSrc": "11223:23:18", "nodeType": "YulFunctionCall", - "src": "20046:23:18" + "src": "11223:23:18" }, { "kind": "number", - "nativeSrc": "20071:2:18", + "nativeSrc": "11248:2:18", "nodeType": "YulLiteral", - "src": "20071:2:18", + "src": "11248:2:18", "type": "", - "value": "96" + "value": "64" } ], "functionName": { "name": "slt", - "nativeSrc": "20042:3:18", + "nativeSrc": "11219:3:18", "nodeType": "YulIdentifier", - "src": "20042:3:18" + "src": "11219:3:18" }, - "nativeSrc": "20042:32:18", + "nativeSrc": "11219:32:18", "nodeType": "YulFunctionCall", - "src": "20042:32:18" + "src": "11219:32:18" }, - "nativeSrc": "20039:119:18", + "nativeSrc": "11216:119:18", "nodeType": "YulIf", - "src": "20039:119:18" + "src": "11216:119:18" }, { - "nativeSrc": "20168:117:18", + "nativeSrc": "11345:117:18", "nodeType": "YulBlock", - "src": "20168:117:18", + "src": "11345:117:18", "statements": [ { - "nativeSrc": "20183:15:18", + "nativeSrc": "11360:15:18", "nodeType": "YulVariableDeclaration", - "src": "20183:15:18", + "src": "11360:15:18", "value": { "kind": "number", - "nativeSrc": "20197:1:18", + "nativeSrc": "11374:1:18", "nodeType": "YulLiteral", - "src": "20197:1:18", + "src": "11374:1:18", "type": "", "value": "0" }, "variables": [ { "name": "offset", - "nativeSrc": "20187:6:18", + "nativeSrc": "11364:6:18", "nodeType": "YulTypedName", - "src": "20187:6:18", + "src": "11364:6:18", "type": "" } ] }, { - "nativeSrc": "20212:63:18", + "nativeSrc": "11389:63:18", "nodeType": "YulAssignment", - "src": "20212:63:18", + "src": "11389:63:18", "value": { "arguments": [ { "arguments": [ { "name": "headStart", - "nativeSrc": "20247:9:18", + "nativeSrc": "11424:9:18", "nodeType": "YulIdentifier", - "src": "20247:9:18" + "src": "11424:9:18" }, { "name": "offset", - "nativeSrc": "20258:6:18", + "nativeSrc": "11435:6:18", "nodeType": "YulIdentifier", - "src": "20258:6:18" + "src": "11435:6:18" } ], "functionName": { "name": "add", - "nativeSrc": "20243:3:18", + "nativeSrc": "11420:3:18", "nodeType": "YulIdentifier", - "src": "20243:3:18" + "src": "11420:3:18" }, - "nativeSrc": "20243:22:18", + "nativeSrc": "11420:22:18", "nodeType": "YulFunctionCall", - "src": "20243:22:18" + "src": "11420:22:18" }, { "name": "dataEnd", - "nativeSrc": "20267:7:18", + "nativeSrc": "11444:7:18", "nodeType": "YulIdentifier", - "src": "20267:7:18" + "src": "11444:7:18" } ], "functionName": { - "name": "abi_decode_t_uint256", - "nativeSrc": "20222:20:18", + "name": "abi_decode_t_bytes32", + "nativeSrc": "11399:20:18", "nodeType": "YulIdentifier", - "src": "20222:20:18" + "src": "11399:20:18" }, - "nativeSrc": "20222:53:18", + "nativeSrc": "11399:53:18", "nodeType": "YulFunctionCall", - "src": "20222:53:18" + "src": "11399:53:18" }, "variableNames": [ { "name": "value0", - "nativeSrc": "20212:6:18", + "nativeSrc": "11389:6:18", "nodeType": "YulIdentifier", - "src": "20212:6:18" + "src": "11389:6:18" } ] } ] }, { - "nativeSrc": "20295:118:18", + "nativeSrc": "11472:118:18", "nodeType": "YulBlock", - "src": "20295:118:18", + "src": "11472:118:18", "statements": [ { - "nativeSrc": "20310:16:18", + "nativeSrc": "11487:16:18", "nodeType": "YulVariableDeclaration", - "src": "20310:16:18", + "src": "11487:16:18", "value": { "kind": "number", - "nativeSrc": "20324:2:18", + "nativeSrc": "11501:2:18", "nodeType": "YulLiteral", - "src": "20324:2:18", + "src": "11501:2:18", "type": "", "value": "32" }, "variables": [ - { - "name": "offset", - "nativeSrc": "20314:6:18", - "nodeType": "YulTypedName", - "src": "20314:6:18", - "type": "" - } - ] - }, - { - "nativeSrc": "20340:63:18", - "nodeType": "YulAssignment", - "src": "20340:63:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "20375:9:18", - "nodeType": "YulIdentifier", - "src": "20375:9:18" - }, - { - "name": "offset", - "nativeSrc": "20386:6:18", - "nodeType": "YulIdentifier", - "src": "20386:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "20371:3:18", - "nodeType": "YulIdentifier", - "src": "20371:3:18" - }, - "nativeSrc": "20371:22:18", - "nodeType": "YulFunctionCall", - "src": "20371:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "20395:7:18", - "nodeType": "YulIdentifier", - "src": "20395:7:18" - } - ], - "functionName": { - "name": "abi_decode_t_uint256", - "nativeSrc": "20350:20:18", - "nodeType": "YulIdentifier", - "src": "20350:20:18" - }, - "nativeSrc": "20350:53:18", - "nodeType": "YulFunctionCall", - "src": "20350:53:18" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "20340:6:18", - "nodeType": "YulIdentifier", - "src": "20340:6:18" - } - ] - } - ] - }, - { - "nativeSrc": "20423:288:18", - "nodeType": "YulBlock", - "src": "20423:288:18", - "statements": [ - { - "nativeSrc": "20438:46:18", - "nodeType": "YulVariableDeclaration", - "src": "20438:46:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "20469:9:18", - "nodeType": "YulIdentifier", - "src": "20469:9:18" - }, - { - "kind": "number", - "nativeSrc": "20480:2:18", - "nodeType": "YulLiteral", - "src": "20480:2:18", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "20465:3:18", - "nodeType": "YulIdentifier", - "src": "20465:3:18" - }, - "nativeSrc": "20465:18:18", - "nodeType": "YulFunctionCall", - "src": "20465:18:18" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "20452:12:18", - "nodeType": "YulIdentifier", - "src": "20452:12:18" - }, - "nativeSrc": "20452:32:18", - "nodeType": "YulFunctionCall", - "src": "20452:32:18" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "20442:6:18", - "nodeType": "YulTypedName", - "src": "20442:6:18", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "20531:83:18", - "nodeType": "YulBlock", - "src": "20531:83:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "20533:77:18", - "nodeType": "YulIdentifier", - "src": "20533:77:18" - }, - "nativeSrc": "20533:79:18", - "nodeType": "YulFunctionCall", - "src": "20533:79:18" - }, - "nativeSrc": "20533:79:18", - "nodeType": "YulExpressionStatement", - "src": "20533:79:18" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "20503:6:18", - "nodeType": "YulIdentifier", - "src": "20503:6:18" - }, - { - "kind": "number", - "nativeSrc": "20511:18:18", - "nodeType": "YulLiteral", - "src": "20511:18:18", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "20500:2:18", - "nodeType": "YulIdentifier", - "src": "20500:2:18" - }, - "nativeSrc": "20500:30:18", - "nodeType": "YulFunctionCall", - "src": "20500:30:18" - }, - "nativeSrc": "20497:117:18", - "nodeType": "YulIf", - "src": "20497:117:18" + { + "name": "offset", + "nativeSrc": "11491:6:18", + "nodeType": "YulTypedName", + "src": "11491:6:18", + "type": "" + } + ] }, { - "nativeSrc": "20628:73:18", + "nativeSrc": "11517:63:18", "nodeType": "YulAssignment", - "src": "20628:73:18", + "src": "11517:63:18", "value": { "arguments": [ { "arguments": [ { "name": "headStart", - "nativeSrc": "20673:9:18", + "nativeSrc": "11552:9:18", "nodeType": "YulIdentifier", - "src": "20673:9:18" + "src": "11552:9:18" }, { "name": "offset", - "nativeSrc": "20684:6:18", + "nativeSrc": "11563:6:18", "nodeType": "YulIdentifier", - "src": "20684:6:18" + "src": "11563:6:18" } ], "functionName": { "name": "add", - "nativeSrc": "20669:3:18", + "nativeSrc": "11548:3:18", "nodeType": "YulIdentifier", - "src": "20669:3:18" + "src": "11548:3:18" }, - "nativeSrc": "20669:22:18", + "nativeSrc": "11548:22:18", "nodeType": "YulFunctionCall", - "src": "20669:22:18" + "src": "11548:22:18" }, { "name": "dataEnd", - "nativeSrc": "20693:7:18", + "nativeSrc": "11572:7:18", "nodeType": "YulIdentifier", - "src": "20693:7:18" + "src": "11572:7:18" } ], "functionName": { - "name": "abi_decode_t_string_memory_ptr", - "nativeSrc": "20638:30:18", + "name": "abi_decode_t_address", + "nativeSrc": "11527:20:18", "nodeType": "YulIdentifier", - "src": "20638:30:18" + "src": "11527:20:18" }, - "nativeSrc": "20638:63:18", + "nativeSrc": "11527:53:18", "nodeType": "YulFunctionCall", - "src": "20638:63:18" + "src": "11527:53:18" }, "variableNames": [ { - "name": "value2", - "nativeSrc": "20628:6:18", + "name": "value1", + "nativeSrc": "11517:6:18", "nodeType": "YulIdentifier", - "src": "20628:6:18" + "src": "11517:6:18" } ] } @@ -72479,370 +71534,976 @@ } ] }, - "name": "abi_decode_tuple_t_uint256t_uint256t_string_memory_ptr", - "nativeSrc": "19919:799:18", + "name": "abi_decode_tuple_t_bytes32t_address", + "nativeSrc": "11123:474:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", - "nativeSrc": "19983:9:18", + "nativeSrc": "11168:9:18", "nodeType": "YulTypedName", - "src": "19983:9:18", + "src": "11168:9:18", "type": "" }, { "name": "dataEnd", - "nativeSrc": "19994:7:18", + "nativeSrc": "11179:7:18", "nodeType": "YulTypedName", - "src": "19994:7:18", + "src": "11179:7:18", "type": "" } ], "returnVariables": [ { "name": "value0", - "nativeSrc": "20006:6:18", + "nativeSrc": "11191:6:18", "nodeType": "YulTypedName", - "src": "20006:6:18", + "src": "11191:6:18", "type": "" }, { "name": "value1", - "nativeSrc": "20014:6:18", - "nodeType": "YulTypedName", - "src": "20014:6:18", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "20022:6:18", + "nativeSrc": "11199:6:18", "nodeType": "YulTypedName", - "src": "20022:6:18", + "src": "11199:6:18", "type": "" } ], - "src": "19919:799:18" + "src": "11123:474:18" }, { "body": { - "nativeSrc": "20807:391:18", + "nativeSrc": "11685:229:18", "nodeType": "YulBlock", - "src": "20807:391:18", + "src": "11685:229:18", "statements": [ { "body": { - "nativeSrc": "20853:83:18", + "nativeSrc": "11790:22:18", "nodeType": "YulBlock", - "src": "20853:83:18", + "src": "11790:22:18", "statements": [ { "expression": { "arguments": [], "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "20855:77:18", + "name": "panic_error_0x41", + "nativeSrc": "11792:16:18", "nodeType": "YulIdentifier", - "src": "20855:77:18" + "src": "11792:16:18" }, - "nativeSrc": "20855:79:18", + "nativeSrc": "11792:18:18", "nodeType": "YulFunctionCall", - "src": "20855:79:18" + "src": "11792:18:18" }, - "nativeSrc": "20855:79:18", + "nativeSrc": "11792:18:18", "nodeType": "YulExpressionStatement", - "src": "20855:79:18" + "src": "11792:18:18" } ] }, "condition": { "arguments": [ { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "20828:7:18", - "nodeType": "YulIdentifier", - "src": "20828:7:18" - }, - { - "name": "headStart", - "nativeSrc": "20837:9:18", - "nodeType": "YulIdentifier", - "src": "20837:9:18" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "20824:3:18", - "nodeType": "YulIdentifier", - "src": "20824:3:18" - }, - "nativeSrc": "20824:23:18", - "nodeType": "YulFunctionCall", - "src": "20824:23:18" + "name": "length", + "nativeSrc": "11762:6:18", + "nodeType": "YulIdentifier", + "src": "11762:6:18" }, { "kind": "number", - "nativeSrc": "20849:2:18", + "nativeSrc": "11770:18:18", "nodeType": "YulLiteral", - "src": "20849:2:18", + "src": "11770:18:18", "type": "", - "value": "64" + "value": "0xffffffffffffffff" } ], "functionName": { - "name": "slt", - "nativeSrc": "20820:3:18", + "name": "gt", + "nativeSrc": "11759:2:18", "nodeType": "YulIdentifier", - "src": "20820:3:18" + "src": "11759:2:18" }, - "nativeSrc": "20820:32:18", + "nativeSrc": "11759:30:18", "nodeType": "YulFunctionCall", - "src": "20820:32:18" + "src": "11759:30:18" }, - "nativeSrc": "20817:119:18", + "nativeSrc": "11756:56:18", "nodeType": "YulIf", - "src": "20817:119:18" + "src": "11756:56:18" }, { - "nativeSrc": "20946:117:18", - "nodeType": "YulBlock", - "src": "20946:117:18", - "statements": [ - { - "nativeSrc": "20961:15:18", - "nodeType": "YulVariableDeclaration", - "src": "20961:15:18", - "value": { + "nativeSrc": "11822:25:18", + "nodeType": "YulAssignment", + "src": "11822:25:18", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "11834:6:18", + "nodeType": "YulIdentifier", + "src": "11834:6:18" + }, + { "kind": "number", - "nativeSrc": "20975:1:18", + "nativeSrc": "11842:4:18", "nodeType": "YulLiteral", - "src": "20975:1:18", + "src": "11842:4:18", "type": "", - "value": "0" + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "11830:3:18", + "nodeType": "YulIdentifier", + "src": "11830:3:18" + }, + "nativeSrc": "11830:17:18", + "nodeType": "YulFunctionCall", + "src": "11830:17:18" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "11822:4:18", + "nodeType": "YulIdentifier", + "src": "11822:4:18" + } + ] + }, + { + "nativeSrc": "11884:23:18", + "nodeType": "YulAssignment", + "src": "11884:23:18", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "11896:4:18", + "nodeType": "YulIdentifier", + "src": "11896:4:18" }, - "variables": [ - { - "name": "offset", - "nativeSrc": "20965:6:18", - "nodeType": "YulTypedName", - "src": "20965:6:18", - "type": "" - } - ] + { + "kind": "number", + "nativeSrc": "11902:4:18", + "nodeType": "YulLiteral", + "src": "11902:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11892:3:18", + "nodeType": "YulIdentifier", + "src": "11892:3:18" }, + "nativeSrc": "11892:15:18", + "nodeType": "YulFunctionCall", + "src": "11892:15:18" + }, + "variableNames": [ { - "nativeSrc": "20990:63:18", - "nodeType": "YulAssignment", - "src": "20990:63:18", - "value": { + "name": "size", + "nativeSrc": "11884:4:18", + "nodeType": "YulIdentifier", + "src": "11884:4:18" + } + ] + } + ] + }, + "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "11603:311:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "11669:6:18", + "nodeType": "YulTypedName", + "src": "11669:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "11680:4:18", + "nodeType": "YulTypedName", + "src": "11680:4:18", + "type": "" + } + ], + "src": "11603:311:18" + }, + { + "body": { + "nativeSrc": "12039:608:18", + "nodeType": "YulBlock", + "src": "12039:608:18", + "statements": [ + { + "nativeSrc": "12049:90:18", + "nodeType": "YulAssignment", + "src": "12049:90:18", + "value": { + "arguments": [ + { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "21025:9:18", - "nodeType": "YulIdentifier", - "src": "21025:9:18" - }, - { - "name": "offset", - "nativeSrc": "21036:6:18", - "nodeType": "YulIdentifier", - "src": "21036:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "21021:3:18", - "nodeType": "YulIdentifier", - "src": "21021:3:18" - }, - "nativeSrc": "21021:22:18", - "nodeType": "YulFunctionCall", - "src": "21021:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "21045:7:18", + "name": "length", + "nativeSrc": "12131:6:18", "nodeType": "YulIdentifier", - "src": "21045:7:18" + "src": "12131:6:18" } ], "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "21000:20:18", + "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "12074:56:18", "nodeType": "YulIdentifier", - "src": "21000:20:18" + "src": "12074:56:18" }, - "nativeSrc": "21000:53:18", + "nativeSrc": "12074:64:18", "nodeType": "YulFunctionCall", - "src": "21000:53:18" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "20990:6:18", - "nodeType": "YulIdentifier", - "src": "20990:6:18" - } - ] + "src": "12074:64:18" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "12058:15:18", + "nodeType": "YulIdentifier", + "src": "12058:15:18" + }, + "nativeSrc": "12058:81:18", + "nodeType": "YulFunctionCall", + "src": "12058:81:18" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "12049:5:18", + "nodeType": "YulIdentifier", + "src": "12049:5:18" } ] }, { - "nativeSrc": "21073:118:18", - "nodeType": "YulBlock", - "src": "21073:118:18", - "statements": [ + "nativeSrc": "12148:16:18", + "nodeType": "YulVariableDeclaration", + "src": "12148:16:18", + "value": { + "name": "array", + "nativeSrc": "12159:5:18", + "nodeType": "YulIdentifier", + "src": "12159:5:18" + }, + "variables": [ { - "nativeSrc": "21088:16:18", - "nodeType": "YulVariableDeclaration", - "src": "21088:16:18", - "value": { + "name": "dst", + "nativeSrc": "12152:3:18", + "nodeType": "YulTypedName", + "src": "12152:3:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "12181:5:18", + "nodeType": "YulIdentifier", + "src": "12181:5:18" + }, + { + "name": "length", + "nativeSrc": "12188:6:18", + "nodeType": "YulIdentifier", + "src": "12188:6:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12174:6:18", + "nodeType": "YulIdentifier", + "src": "12174:6:18" + }, + "nativeSrc": "12174:21:18", + "nodeType": "YulFunctionCall", + "src": "12174:21:18" + }, + "nativeSrc": "12174:21:18", + "nodeType": "YulExpressionStatement", + "src": "12174:21:18" + }, + { + "nativeSrc": "12204:23:18", + "nodeType": "YulAssignment", + "src": "12204:23:18", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "12215:5:18", + "nodeType": "YulIdentifier", + "src": "12215:5:18" + }, + { "kind": "number", - "nativeSrc": "21102:2:18", + "nativeSrc": "12222:4:18", "nodeType": "YulLiteral", - "src": "21102:2:18", + "src": "12222:4:18", "type": "", - "value": "32" + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12211:3:18", + "nodeType": "YulIdentifier", + "src": "12211:3:18" + }, + "nativeSrc": "12211:16:18", + "nodeType": "YulFunctionCall", + "src": "12211:16:18" + }, + "variableNames": [ + { + "name": "dst", + "nativeSrc": "12204:3:18", + "nodeType": "YulIdentifier", + "src": "12204:3:18" + } + ] + }, + { + "nativeSrc": "12237:44:18", + "nodeType": "YulVariableDeclaration", + "src": "12237:44:18", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "12255:6:18", + "nodeType": "YulIdentifier", + "src": "12255:6:18" }, - "variables": [ - { - "name": "offset", - "nativeSrc": "21092:6:18", - "nodeType": "YulTypedName", - "src": "21092:6:18", - "type": "" - } - ] + { + "arguments": [ + { + "name": "length", + "nativeSrc": "12267:6:18", + "nodeType": "YulIdentifier", + "src": "12267:6:18" + }, + { + "kind": "number", + "nativeSrc": "12275:4:18", + "nodeType": "YulLiteral", + "src": "12275:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "12263:3:18", + "nodeType": "YulIdentifier", + "src": "12263:3:18" + }, + "nativeSrc": "12263:17:18", + "nodeType": "YulFunctionCall", + "src": "12263:17:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12251:3:18", + "nodeType": "YulIdentifier", + "src": "12251:3:18" }, + "nativeSrc": "12251:30:18", + "nodeType": "YulFunctionCall", + "src": "12251:30:18" + }, + "variables": [ { - "nativeSrc": "21118:63:18", - "nodeType": "YulAssignment", - "src": "21118:63:18", - "value": { + "name": "srcEnd", + "nativeSrc": "12241:6:18", + "nodeType": "YulTypedName", + "src": "12241:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "12309:103:18", + "nodeType": "YulBlock", + "src": "12309:103:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nativeSrc": "12323:77:18", + "nodeType": "YulIdentifier", + "src": "12323:77:18" + }, + "nativeSrc": "12323:79:18", + "nodeType": "YulFunctionCall", + "src": "12323:79:18" + }, + "nativeSrc": "12323:79:18", + "nodeType": "YulExpressionStatement", + "src": "12323:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "srcEnd", + "nativeSrc": "12296:6:18", + "nodeType": "YulIdentifier", + "src": "12296:6:18" + }, + { + "name": "end", + "nativeSrc": "12304:3:18", + "nodeType": "YulIdentifier", + "src": "12304:3:18" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "12293:2:18", + "nodeType": "YulIdentifier", + "src": "12293:2:18" + }, + "nativeSrc": "12293:15:18", + "nodeType": "YulFunctionCall", + "src": "12293:15:18" + }, + "nativeSrc": "12290:122:18", + "nodeType": "YulIf", + "src": "12290:122:18" + }, + { + "body": { + "nativeSrc": "12497:144:18", + "nodeType": "YulBlock", + "src": "12497:144:18", + "statements": [ + { + "nativeSrc": "12512:21:18", + "nodeType": "YulVariableDeclaration", + "src": "12512:21:18", + "value": { + "name": "src", + "nativeSrc": "12530:3:18", + "nodeType": "YulIdentifier", + "src": "12530:3:18" + }, + "variables": [ + { + "name": "elementPos", + "nativeSrc": "12516:10:18", + "nodeType": "YulTypedName", + "src": "12516:10:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "12554:3:18", + "nodeType": "YulIdentifier", + "src": "12554:3:18" + }, + { + "arguments": [ + { + "name": "elementPos", + "nativeSrc": "12580:10:18", + "nodeType": "YulIdentifier", + "src": "12580:10:18" + }, + { + "name": "end", + "nativeSrc": "12592:3:18", + "nodeType": "YulIdentifier", + "src": "12592:3:18" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "12559:20:18", + "nodeType": "YulIdentifier", + "src": "12559:20:18" + }, + "nativeSrc": "12559:37:18", + "nodeType": "YulFunctionCall", + "src": "12559:37:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12547:6:18", + "nodeType": "YulIdentifier", + "src": "12547:6:18" + }, + "nativeSrc": "12547:50:18", + "nodeType": "YulFunctionCall", + "src": "12547:50:18" + }, + "nativeSrc": "12547:50:18", + "nodeType": "YulExpressionStatement", + "src": "12547:50:18" + }, + { + "nativeSrc": "12610:21:18", + "nodeType": "YulAssignment", + "src": "12610:21:18", + "value": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "12621:3:18", + "nodeType": "YulIdentifier", + "src": "12621:3:18" + }, + { + "kind": "number", + "nativeSrc": "12626:4:18", + "nodeType": "YulLiteral", + "src": "12626:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12617:3:18", + "nodeType": "YulIdentifier", + "src": "12617:3:18" + }, + "nativeSrc": "12617:14:18", + "nodeType": "YulFunctionCall", + "src": "12617:14:18" + }, + "variableNames": [ + { + "name": "dst", + "nativeSrc": "12610:3:18", + "nodeType": "YulIdentifier", + "src": "12610:3:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "src", + "nativeSrc": "12450:3:18", + "nodeType": "YulIdentifier", + "src": "12450:3:18" + }, + { + "name": "srcEnd", + "nativeSrc": "12455:6:18", + "nodeType": "YulIdentifier", + "src": "12455:6:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "12447:2:18", + "nodeType": "YulIdentifier", + "src": "12447:2:18" + }, + "nativeSrc": "12447:15:18", + "nodeType": "YulFunctionCall", + "src": "12447:15:18" + }, + "nativeSrc": "12421:220:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "12463:25:18", + "nodeType": "YulBlock", + "src": "12463:25:18", + "statements": [ + { + "nativeSrc": "12465:21:18", + "nodeType": "YulAssignment", + "src": "12465:21:18", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "12476:3:18", + "nodeType": "YulIdentifier", + "src": "12476:3:18" + }, + { + "kind": "number", + "nativeSrc": "12481:4:18", + "nodeType": "YulLiteral", + "src": "12481:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12472:3:18", + "nodeType": "YulIdentifier", + "src": "12472:3:18" + }, + "nativeSrc": "12472:14:18", + "nodeType": "YulFunctionCall", + "src": "12472:14:18" + }, + "variableNames": [ + { + "name": "src", + "nativeSrc": "12465:3:18", + "nodeType": "YulIdentifier", + "src": "12465:3:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "12425:21:18", + "nodeType": "YulBlock", + "src": "12425:21:18", + "statements": [ + { + "nativeSrc": "12427:17:18", + "nodeType": "YulVariableDeclaration", + "src": "12427:17:18", + "value": { + "name": "offset", + "nativeSrc": "12438:6:18", + "nodeType": "YulIdentifier", + "src": "12438:6:18" + }, + "variables": [ + { + "name": "src", + "nativeSrc": "12431:3:18", + "nodeType": "YulTypedName", + "src": "12431:3:18", + "type": "" + } + ] + } + ] + }, + "src": "12421:220:18" + } + ] + }, + "name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "11937:710:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "12009:6:18", + "nodeType": "YulTypedName", + "src": "12009:6:18", + "type": "" + }, + { + "name": "length", + "nativeSrc": "12017:6:18", + "nodeType": "YulTypedName", + "src": "12017:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "12025:3:18", + "nodeType": "YulTypedName", + "src": "12025:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "12033:5:18", + "nodeType": "YulTypedName", + "src": "12033:5:18", + "type": "" + } + ], + "src": "11937:710:18" + }, + { + "body": { + "nativeSrc": "12747:293:18", + "nodeType": "YulBlock", + "src": "12747:293:18", + "statements": [ + { + "body": { + "nativeSrc": "12796:83:18", + "nodeType": "YulBlock", + "src": "12796:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "12798:77:18", + "nodeType": "YulIdentifier", + "src": "12798:77:18" + }, + "nativeSrc": "12798:79:18", + "nodeType": "YulFunctionCall", + "src": "12798:79:18" + }, + "nativeSrc": "12798:79:18", + "nodeType": "YulExpressionStatement", + "src": "12798:79:18" + } + ] + }, + "condition": { + "arguments": [ + { "arguments": [ { "arguments": [ { - "name": "headStart", - "nativeSrc": "21153:9:18", + "name": "offset", + "nativeSrc": "12775:6:18", "nodeType": "YulIdentifier", - "src": "21153:9:18" + "src": "12775:6:18" }, { - "name": "offset", - "nativeSrc": "21164:6:18", - "nodeType": "YulIdentifier", - "src": "21164:6:18" + "kind": "number", + "nativeSrc": "12783:4:18", + "nodeType": "YulLiteral", + "src": "12783:4:18", + "type": "", + "value": "0x1f" } ], "functionName": { "name": "add", - "nativeSrc": "21149:3:18", + "nativeSrc": "12771:3:18", "nodeType": "YulIdentifier", - "src": "21149:3:18" + "src": "12771:3:18" }, - "nativeSrc": "21149:22:18", + "nativeSrc": "12771:17:18", "nodeType": "YulFunctionCall", - "src": "21149:22:18" + "src": "12771:17:18" }, { - "name": "dataEnd", - "nativeSrc": "21173:7:18", + "name": "end", + "nativeSrc": "12790:3:18", "nodeType": "YulIdentifier", - "src": "21173:7:18" + "src": "12790:3:18" } ], "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "21128:20:18", + "name": "slt", + "nativeSrc": "12767:3:18", "nodeType": "YulIdentifier", - "src": "21128:20:18" + "src": "12767:3:18" }, - "nativeSrc": "21128:53:18", + "nativeSrc": "12767:27:18", "nodeType": "YulFunctionCall", - "src": "21128:53:18" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "21118:6:18", + "src": "12767:27:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "12760:6:18", + "nodeType": "YulIdentifier", + "src": "12760:6:18" + }, + "nativeSrc": "12760:35:18", + "nodeType": "YulFunctionCall", + "src": "12760:35:18" + }, + "nativeSrc": "12757:122:18", + "nodeType": "YulIf", + "src": "12757:122:18" + }, + { + "nativeSrc": "12888:34:18", + "nodeType": "YulVariableDeclaration", + "src": "12888:34:18", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "12915:6:18", + "nodeType": "YulIdentifier", + "src": "12915:6:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "12902:12:18", + "nodeType": "YulIdentifier", + "src": "12902:12:18" + }, + "nativeSrc": "12902:20:18", + "nodeType": "YulFunctionCall", + "src": "12902:20:18" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "12892:6:18", + "nodeType": "YulTypedName", + "src": "12892:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "12931:103:18", + "nodeType": "YulAssignment", + "src": "12931:103:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "13007:6:18", + "nodeType": "YulIdentifier", + "src": "13007:6:18" + }, + { + "kind": "number", + "nativeSrc": "13015:4:18", + "nodeType": "YulLiteral", + "src": "13015:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13003:3:18", "nodeType": "YulIdentifier", - "src": "21118:6:18" - } - ] + "src": "13003:3:18" + }, + "nativeSrc": "13003:17:18", + "nodeType": "YulFunctionCall", + "src": "13003:17:18" + }, + { + "name": "length", + "nativeSrc": "13022:6:18", + "nodeType": "YulIdentifier", + "src": "13022:6:18" + }, + { + "name": "end", + "nativeSrc": "13030:3:18", + "nodeType": "YulIdentifier", + "src": "13030:3:18" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "12940:62:18", + "nodeType": "YulIdentifier", + "src": "12940:62:18" + }, + "nativeSrc": "12940:94:18", + "nodeType": "YulFunctionCall", + "src": "12940:94:18" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "12931:5:18", + "nodeType": "YulIdentifier", + "src": "12931:5:18" } ] } ] }, - "name": "abi_decode_tuple_t_addresst_address", - "nativeSrc": "20724:474:18", + "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "12670:370:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nativeSrc": "20769:9:18", + "name": "offset", + "nativeSrc": "12725:6:18", "nodeType": "YulTypedName", - "src": "20769:9:18", + "src": "12725:6:18", "type": "" }, { - "name": "dataEnd", - "nativeSrc": "20780:7:18", + "name": "end", + "nativeSrc": "12733:3:18", "nodeType": "YulTypedName", - "src": "20780:7:18", + "src": "12733:3:18", "type": "" } ], "returnVariables": [ { - "name": "value0", - "nativeSrc": "20792:6:18", - "nodeType": "YulTypedName", - "src": "20792:6:18", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "20800:6:18", + "name": "array", + "nativeSrc": "12741:5:18", "nodeType": "YulTypedName", - "src": "20800:6:18", + "src": "12741:5:18", "type": "" } ], - "src": "20724:474:18" + "src": "12670:370:18" }, { "body": { - "nativeSrc": "21347:946:18", + "nativeSrc": "13179:761:18", "nodeType": "YulBlock", - "src": "21347:946:18", + "src": "13179:761:18", "statements": [ { "body": { - "nativeSrc": "21394:83:18", + "nativeSrc": "13225:83:18", "nodeType": "YulBlock", - "src": "21394:83:18", + "src": "13225:83:18", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "21396:77:18", + "nativeSrc": "13227:77:18", "nodeType": "YulIdentifier", - "src": "21396:77:18" + "src": "13227:77:18" }, - "nativeSrc": "21396:79:18", + "nativeSrc": "13227:79:18", "nodeType": "YulFunctionCall", - "src": "21396:79:18" + "src": "13227:79:18" }, - "nativeSrc": "21396:79:18", + "nativeSrc": "13227:79:18", "nodeType": "YulExpressionStatement", - "src": "21396:79:18" + "src": "13227:79:18" } ] }, @@ -72852,475 +72513,131 @@ "arguments": [ { "name": "dataEnd", - "nativeSrc": "21368:7:18", + "nativeSrc": "13200:7:18", "nodeType": "YulIdentifier", - "src": "21368:7:18" + "src": "13200:7:18" }, { "name": "headStart", - "nativeSrc": "21377:9:18", + "nativeSrc": "13209:9:18", "nodeType": "YulIdentifier", - "src": "21377:9:18" + "src": "13209:9:18" } ], "functionName": { "name": "sub", - "nativeSrc": "21364:3:18", + "nativeSrc": "13196:3:18", "nodeType": "YulIdentifier", - "src": "21364:3:18" + "src": "13196:3:18" }, - "nativeSrc": "21364:23:18", + "nativeSrc": "13196:23:18", "nodeType": "YulFunctionCall", - "src": "21364:23:18" + "src": "13196:23:18" }, { "kind": "number", - "nativeSrc": "21389:3:18", + "nativeSrc": "13221:2:18", "nodeType": "YulLiteral", - "src": "21389:3:18", + "src": "13221:2:18", "type": "", - "value": "160" + "value": "64" } ], "functionName": { "name": "slt", - "nativeSrc": "21360:3:18", + "nativeSrc": "13192:3:18", "nodeType": "YulIdentifier", - "src": "21360:3:18" + "src": "13192:3:18" }, - "nativeSrc": "21360:33:18", + "nativeSrc": "13192:32:18", "nodeType": "YulFunctionCall", - "src": "21360:33:18" + "src": "13192:32:18" }, - "nativeSrc": "21357:120:18", + "nativeSrc": "13189:119:18", "nodeType": "YulIf", - "src": "21357:120:18" - }, - { - "nativeSrc": "21487:117:18", - "nodeType": "YulBlock", - "src": "21487:117:18", - "statements": [ - { - "nativeSrc": "21502:15:18", - "nodeType": "YulVariableDeclaration", - "src": "21502:15:18", - "value": { - "kind": "number", - "nativeSrc": "21516:1:18", - "nodeType": "YulLiteral", - "src": "21516:1:18", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "21506:6:18", - "nodeType": "YulTypedName", - "src": "21506:6:18", - "type": "" - } - ] - }, - { - "nativeSrc": "21531:63:18", - "nodeType": "YulAssignment", - "src": "21531:63:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "21566:9:18", - "nodeType": "YulIdentifier", - "src": "21566:9:18" - }, - { - "name": "offset", - "nativeSrc": "21577:6:18", - "nodeType": "YulIdentifier", - "src": "21577:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "21562:3:18", - "nodeType": "YulIdentifier", - "src": "21562:3:18" - }, - "nativeSrc": "21562:22:18", - "nodeType": "YulFunctionCall", - "src": "21562:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "21586:7:18", - "nodeType": "YulIdentifier", - "src": "21586:7:18" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "21541:20:18", - "nodeType": "YulIdentifier", - "src": "21541:20:18" - }, - "nativeSrc": "21541:53:18", - "nodeType": "YulFunctionCall", - "src": "21541:53:18" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "21531:6:18", - "nodeType": "YulIdentifier", - "src": "21531:6:18" - } - ] - } - ] - }, - { - "nativeSrc": "21614:118:18", - "nodeType": "YulBlock", - "src": "21614:118:18", - "statements": [ - { - "nativeSrc": "21629:16:18", - "nodeType": "YulVariableDeclaration", - "src": "21629:16:18", - "value": { - "kind": "number", - "nativeSrc": "21643:2:18", - "nodeType": "YulLiteral", - "src": "21643:2:18", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "21633:6:18", - "nodeType": "YulTypedName", - "src": "21633:6:18", - "type": "" - } - ] - }, - { - "nativeSrc": "21659:63:18", - "nodeType": "YulAssignment", - "src": "21659:63:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "21694:9:18", - "nodeType": "YulIdentifier", - "src": "21694:9:18" - }, - { - "name": "offset", - "nativeSrc": "21705:6:18", - "nodeType": "YulIdentifier", - "src": "21705:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "21690:3:18", - "nodeType": "YulIdentifier", - "src": "21690:3:18" - }, - "nativeSrc": "21690:22:18", - "nodeType": "YulFunctionCall", - "src": "21690:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "21714:7:18", - "nodeType": "YulIdentifier", - "src": "21714:7:18" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "21669:20:18", - "nodeType": "YulIdentifier", - "src": "21669:20:18" - }, - "nativeSrc": "21669:53:18", - "nodeType": "YulFunctionCall", - "src": "21669:53:18" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "21659:6:18", - "nodeType": "YulIdentifier", - "src": "21659:6:18" - } - ] - } - ] - }, - { - "nativeSrc": "21742:118:18", - "nodeType": "YulBlock", - "src": "21742:118:18", - "statements": [ - { - "nativeSrc": "21757:16:18", - "nodeType": "YulVariableDeclaration", - "src": "21757:16:18", - "value": { - "kind": "number", - "nativeSrc": "21771:2:18", - "nodeType": "YulLiteral", - "src": "21771:2:18", - "type": "", - "value": "64" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "21761:6:18", - "nodeType": "YulTypedName", - "src": "21761:6:18", - "type": "" - } - ] - }, - { - "nativeSrc": "21787:63:18", - "nodeType": "YulAssignment", - "src": "21787:63:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "21822:9:18", - "nodeType": "YulIdentifier", - "src": "21822:9:18" - }, - { - "name": "offset", - "nativeSrc": "21833:6:18", - "nodeType": "YulIdentifier", - "src": "21833:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "21818:3:18", - "nodeType": "YulIdentifier", - "src": "21818:3:18" - }, - "nativeSrc": "21818:22:18", - "nodeType": "YulFunctionCall", - "src": "21818:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "21842:7:18", - "nodeType": "YulIdentifier", - "src": "21842:7:18" - } - ], - "functionName": { - "name": "abi_decode_t_uint256", - "nativeSrc": "21797:20:18", - "nodeType": "YulIdentifier", - "src": "21797:20:18" - }, - "nativeSrc": "21797:53:18", - "nodeType": "YulFunctionCall", - "src": "21797:53:18" - }, - "variableNames": [ - { - "name": "value2", - "nativeSrc": "21787:6:18", - "nodeType": "YulIdentifier", - "src": "21787:6:18" - } - ] - } - ] - }, - { - "nativeSrc": "21870:118:18", - "nodeType": "YulBlock", - "src": "21870:118:18", - "statements": [ - { - "nativeSrc": "21885:16:18", - "nodeType": "YulVariableDeclaration", - "src": "21885:16:18", - "value": { - "kind": "number", - "nativeSrc": "21899:2:18", - "nodeType": "YulLiteral", - "src": "21899:2:18", - "type": "", - "value": "96" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "21889:6:18", - "nodeType": "YulTypedName", - "src": "21889:6:18", - "type": "" - } - ] - }, - { - "nativeSrc": "21915:63:18", - "nodeType": "YulAssignment", - "src": "21915:63:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "21950:9:18", - "nodeType": "YulIdentifier", - "src": "21950:9:18" - }, - { - "name": "offset", - "nativeSrc": "21961:6:18", - "nodeType": "YulIdentifier", - "src": "21961:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "21946:3:18", - "nodeType": "YulIdentifier", - "src": "21946:3:18" - }, - "nativeSrc": "21946:22:18", - "nodeType": "YulFunctionCall", - "src": "21946:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "21970:7:18", - "nodeType": "YulIdentifier", - "src": "21970:7:18" - } - ], - "functionName": { - "name": "abi_decode_t_uint256", - "nativeSrc": "21925:20:18", - "nodeType": "YulIdentifier", - "src": "21925:20:18" - }, - "nativeSrc": "21925:53:18", - "nodeType": "YulFunctionCall", - "src": "21925:53:18" - }, - "variableNames": [ - { - "name": "value3", - "nativeSrc": "21915:6:18", - "nodeType": "YulIdentifier", - "src": "21915:6:18" - } - ] - } - ] + "src": "13189:119:18" }, { - "nativeSrc": "21998:288:18", + "nativeSrc": "13318:302:18", "nodeType": "YulBlock", - "src": "21998:288:18", + "src": "13318:302:18", "statements": [ { - "nativeSrc": "22013:47:18", + "nativeSrc": "13333:45:18", "nodeType": "YulVariableDeclaration", - "src": "22013:47:18", + "src": "13333:45:18", "value": { "arguments": [ { "arguments": [ { "name": "headStart", - "nativeSrc": "22044:9:18", + "nativeSrc": "13364:9:18", "nodeType": "YulIdentifier", - "src": "22044:9:18" + "src": "13364:9:18" }, { "kind": "number", - "nativeSrc": "22055:3:18", + "nativeSrc": "13375:1:18", "nodeType": "YulLiteral", - "src": "22055:3:18", + "src": "13375:1:18", "type": "", - "value": "128" + "value": "0" } ], "functionName": { "name": "add", - "nativeSrc": "22040:3:18", + "nativeSrc": "13360:3:18", "nodeType": "YulIdentifier", - "src": "22040:3:18" + "src": "13360:3:18" }, - "nativeSrc": "22040:19:18", + "nativeSrc": "13360:17:18", "nodeType": "YulFunctionCall", - "src": "22040:19:18" + "src": "13360:17:18" } ], "functionName": { "name": "calldataload", - "nativeSrc": "22027:12:18", + "nativeSrc": "13347:12:18", "nodeType": "YulIdentifier", - "src": "22027:12:18" + "src": "13347:12:18" }, - "nativeSrc": "22027:33:18", + "nativeSrc": "13347:31:18", "nodeType": "YulFunctionCall", - "src": "22027:33:18" + "src": "13347:31:18" }, "variables": [ { "name": "offset", - "nativeSrc": "22017:6:18", + "nativeSrc": "13337:6:18", "nodeType": "YulTypedName", - "src": "22017:6:18", + "src": "13337:6:18", "type": "" } ] }, { "body": { - "nativeSrc": "22107:83:18", + "nativeSrc": "13425:83:18", "nodeType": "YulBlock", - "src": "22107:83:18", + "src": "13425:83:18", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "22109:77:18", + "nativeSrc": "13427:77:18", "nodeType": "YulIdentifier", - "src": "22109:77:18" + "src": "13427:77:18" }, - "nativeSrc": "22109:79:18", + "nativeSrc": "13427:79:18", "nodeType": "YulFunctionCall", - "src": "22109:79:18" + "src": "13427:79:18" }, - "nativeSrc": "22109:79:18", + "nativeSrc": "13427:79:18", "nodeType": "YulExpressionStatement", - "src": "22109:79:18" + "src": "13427:79:18" } ] }, @@ -73328,486 +72645,261 @@ "arguments": [ { "name": "offset", - "nativeSrc": "22079:6:18", + "nativeSrc": "13397:6:18", "nodeType": "YulIdentifier", - "src": "22079:6:18" + "src": "13397:6:18" }, { "kind": "number", - "nativeSrc": "22087:18:18", + "nativeSrc": "13405:18:18", "nodeType": "YulLiteral", - "src": "22087:18:18", + "src": "13405:18:18", "type": "", "value": "0xffffffffffffffff" } ], "functionName": { "name": "gt", - "nativeSrc": "22076:2:18", - "nodeType": "YulIdentifier", - "src": "22076:2:18" - }, - "nativeSrc": "22076:30:18", - "nodeType": "YulFunctionCall", - "src": "22076:30:18" - }, - "nativeSrc": "22073:117:18", - "nodeType": "YulIf", - "src": "22073:117:18" - }, - { - "nativeSrc": "22204:72:18", - "nodeType": "YulAssignment", - "src": "22204:72:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "22248:9:18", - "nodeType": "YulIdentifier", - "src": "22248:9:18" - }, - { - "name": "offset", - "nativeSrc": "22259:6:18", - "nodeType": "YulIdentifier", - "src": "22259:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "22244:3:18", - "nodeType": "YulIdentifier", - "src": "22244:3:18" - }, - "nativeSrc": "22244:22:18", - "nodeType": "YulFunctionCall", - "src": "22244:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "22268:7:18", - "nodeType": "YulIdentifier", - "src": "22268:7:18" - } - ], - "functionName": { - "name": "abi_decode_t_bytes_memory_ptr", - "nativeSrc": "22214:29:18", - "nodeType": "YulIdentifier", - "src": "22214:29:18" - }, - "nativeSrc": "22214:62:18", - "nodeType": "YulFunctionCall", - "src": "22214:62:18" - }, - "variableNames": [ - { - "name": "value4", - "nativeSrc": "22204:6:18", - "nodeType": "YulIdentifier", - "src": "22204:6:18" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr", - "nativeSrc": "21204:1089:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "21285:9:18", - "nodeType": "YulTypedName", - "src": "21285:9:18", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "21296:7:18", - "nodeType": "YulTypedName", - "src": "21296:7:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "21308:6:18", - "nodeType": "YulTypedName", - "src": "21308:6:18", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "21316:6:18", - "nodeType": "YulTypedName", - "src": "21316:6:18", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "21324:6:18", - "nodeType": "YulTypedName", - "src": "21324:6:18", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "21332:6:18", - "nodeType": "YulTypedName", - "src": "21332:6:18", - "type": "" - }, - { - "name": "value4", - "nativeSrc": "21340:6:18", - "nodeType": "YulTypedName", - "src": "21340:6:18", - "type": "" - } - ], - "src": "21204:1089:18" - }, - { - "body": { - "nativeSrc": "22399:519:18", - "nodeType": "YulBlock", - "src": "22399:519:18", - "statements": [ - { - "body": { - "nativeSrc": "22445:83:18", - "nodeType": "YulBlock", - "src": "22445:83:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "22447:77:18", - "nodeType": "YulIdentifier", - "src": "22447:77:18" - }, - "nativeSrc": "22447:79:18", - "nodeType": "YulFunctionCall", - "src": "22447:79:18" - }, - "nativeSrc": "22447:79:18", - "nodeType": "YulExpressionStatement", - "src": "22447:79:18" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "22420:7:18", - "nodeType": "YulIdentifier", - "src": "22420:7:18" - }, - { - "name": "headStart", - "nativeSrc": "22429:9:18", - "nodeType": "YulIdentifier", - "src": "22429:9:18" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "22416:3:18", + "nativeSrc": "13394:2:18", "nodeType": "YulIdentifier", - "src": "22416:3:18" + "src": "13394:2:18" }, - "nativeSrc": "22416:23:18", + "nativeSrc": "13394:30:18", "nodeType": "YulFunctionCall", - "src": "22416:23:18" - }, - { - "kind": "number", - "nativeSrc": "22441:2:18", - "nodeType": "YulLiteral", - "src": "22441:2:18", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "22412:3:18", - "nodeType": "YulIdentifier", - "src": "22412:3:18" - }, - "nativeSrc": "22412:32:18", - "nodeType": "YulFunctionCall", - "src": "22412:32:18" - }, - "nativeSrc": "22409:119:18", - "nodeType": "YulIf", - "src": "22409:119:18" - }, - { - "nativeSrc": "22538:117:18", - "nodeType": "YulBlock", - "src": "22538:117:18", - "statements": [ - { - "nativeSrc": "22553:15:18", - "nodeType": "YulVariableDeclaration", - "src": "22553:15:18", - "value": { - "kind": "number", - "nativeSrc": "22567:1:18", - "nodeType": "YulLiteral", - "src": "22567:1:18", - "type": "", - "value": "0" + "src": "13394:30:18" }, - "variables": [ - { - "name": "offset", - "nativeSrc": "22557:6:18", - "nodeType": "YulTypedName", - "src": "22557:6:18", - "type": "" - } - ] + "nativeSrc": "13391:117:18", + "nodeType": "YulIf", + "src": "13391:117:18" }, { - "nativeSrc": "22582:63:18", + "nativeSrc": "13522:88:18", "nodeType": "YulAssignment", - "src": "22582:63:18", + "src": "13522:88:18", "value": { "arguments": [ { "arguments": [ { "name": "headStart", - "nativeSrc": "22617:9:18", + "nativeSrc": "13582:9:18", "nodeType": "YulIdentifier", - "src": "22617:9:18" + "src": "13582:9:18" }, { "name": "offset", - "nativeSrc": "22628:6:18", + "nativeSrc": "13593:6:18", "nodeType": "YulIdentifier", - "src": "22628:6:18" + "src": "13593:6:18" } ], "functionName": { "name": "add", - "nativeSrc": "22613:3:18", + "nativeSrc": "13578:3:18", "nodeType": "YulIdentifier", - "src": "22613:3:18" + "src": "13578:3:18" }, - "nativeSrc": "22613:22:18", + "nativeSrc": "13578:22:18", "nodeType": "YulFunctionCall", - "src": "22613:22:18" + "src": "13578:22:18" }, { "name": "dataEnd", - "nativeSrc": "22637:7:18", + "nativeSrc": "13602:7:18", "nodeType": "YulIdentifier", - "src": "22637:7:18" + "src": "13602:7:18" } ], "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "22592:20:18", + "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "13532:45:18", "nodeType": "YulIdentifier", - "src": "22592:20:18" + "src": "13532:45:18" }, - "nativeSrc": "22592:53:18", + "nativeSrc": "13532:78:18", "nodeType": "YulFunctionCall", - "src": "22592:53:18" + "src": "13532:78:18" }, "variableNames": [ { "name": "value0", - "nativeSrc": "22582:6:18", + "nativeSrc": "13522:6:18", "nodeType": "YulIdentifier", - "src": "22582:6:18" + "src": "13522:6:18" } ] } ] }, { - "nativeSrc": "22665:118:18", + "nativeSrc": "13630:303:18", "nodeType": "YulBlock", - "src": "22665:118:18", + "src": "13630:303:18", "statements": [ { - "nativeSrc": "22680:16:18", + "nativeSrc": "13645:46:18", "nodeType": "YulVariableDeclaration", - "src": "22680:16:18", - "value": { - "kind": "number", - "nativeSrc": "22694:2:18", - "nodeType": "YulLiteral", - "src": "22694:2:18", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "22684:6:18", - "nodeType": "YulTypedName", - "src": "22684:6:18", - "type": "" - } - ] - }, - { - "nativeSrc": "22710:63:18", - "nodeType": "YulAssignment", - "src": "22710:63:18", + "src": "13645:46:18", "value": { "arguments": [ { "arguments": [ { "name": "headStart", - "nativeSrc": "22745:9:18", + "nativeSrc": "13676:9:18", "nodeType": "YulIdentifier", - "src": "22745:9:18" + "src": "13676:9:18" }, { - "name": "offset", - "nativeSrc": "22756:6:18", - "nodeType": "YulIdentifier", - "src": "22756:6:18" + "kind": "number", + "nativeSrc": "13687:2:18", + "nodeType": "YulLiteral", + "src": "13687:2:18", + "type": "", + "value": "32" } ], "functionName": { "name": "add", - "nativeSrc": "22741:3:18", + "nativeSrc": "13672:3:18", "nodeType": "YulIdentifier", - "src": "22741:3:18" + "src": "13672:3:18" }, - "nativeSrc": "22741:22:18", + "nativeSrc": "13672:18:18", "nodeType": "YulFunctionCall", - "src": "22741:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "22765:7:18", - "nodeType": "YulIdentifier", - "src": "22765:7:18" + "src": "13672:18:18" } ], "functionName": { - "name": "abi_decode_t_uint256", - "nativeSrc": "22720:20:18", + "name": "calldataload", + "nativeSrc": "13659:12:18", "nodeType": "YulIdentifier", - "src": "22720:20:18" + "src": "13659:12:18" }, - "nativeSrc": "22720:53:18", + "nativeSrc": "13659:32:18", "nodeType": "YulFunctionCall", - "src": "22720:53:18" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "22710:6:18", - "nodeType": "YulIdentifier", - "src": "22710:6:18" - } - ] - } - ] - }, - { - "nativeSrc": "22793:118:18", - "nodeType": "YulBlock", - "src": "22793:118:18", - "statements": [ - { - "nativeSrc": "22808:16:18", - "nodeType": "YulVariableDeclaration", - "src": "22808:16:18", - "value": { - "kind": "number", - "nativeSrc": "22822:2:18", - "nodeType": "YulLiteral", - "src": "22822:2:18", - "type": "", - "value": "64" + "src": "13659:32:18" }, "variables": [ { "name": "offset", - "nativeSrc": "22812:6:18", + "nativeSrc": "13649:6:18", "nodeType": "YulTypedName", - "src": "22812:6:18", + "src": "13649:6:18", "type": "" } ] }, { - "nativeSrc": "22838:63:18", + "body": { + "nativeSrc": "13738:83:18", + "nodeType": "YulBlock", + "src": "13738:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "13740:77:18", + "nodeType": "YulIdentifier", + "src": "13740:77:18" + }, + "nativeSrc": "13740:79:18", + "nodeType": "YulFunctionCall", + "src": "13740:79:18" + }, + "nativeSrc": "13740:79:18", + "nodeType": "YulExpressionStatement", + "src": "13740:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "13710:6:18", + "nodeType": "YulIdentifier", + "src": "13710:6:18" + }, + { + "kind": "number", + "nativeSrc": "13718:18:18", + "nodeType": "YulLiteral", + "src": "13718:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "13707:2:18", + "nodeType": "YulIdentifier", + "src": "13707:2:18" + }, + "nativeSrc": "13707:30:18", + "nodeType": "YulFunctionCall", + "src": "13707:30:18" + }, + "nativeSrc": "13704:117:18", + "nodeType": "YulIf", + "src": "13704:117:18" + }, + { + "nativeSrc": "13835:88:18", "nodeType": "YulAssignment", - "src": "22838:63:18", + "src": "13835:88:18", "value": { "arguments": [ { "arguments": [ { "name": "headStart", - "nativeSrc": "22873:9:18", + "nativeSrc": "13895:9:18", "nodeType": "YulIdentifier", - "src": "22873:9:18" + "src": "13895:9:18" }, { "name": "offset", - "nativeSrc": "22884:6:18", + "nativeSrc": "13906:6:18", "nodeType": "YulIdentifier", - "src": "22884:6:18" + "src": "13906:6:18" } ], "functionName": { "name": "add", - "nativeSrc": "22869:3:18", + "nativeSrc": "13891:3:18", "nodeType": "YulIdentifier", - "src": "22869:3:18" + "src": "13891:3:18" }, - "nativeSrc": "22869:22:18", + "nativeSrc": "13891:22:18", "nodeType": "YulFunctionCall", - "src": "22869:22:18" + "src": "13891:22:18" }, { "name": "dataEnd", - "nativeSrc": "22893:7:18", + "nativeSrc": "13915:7:18", "nodeType": "YulIdentifier", - "src": "22893:7:18" + "src": "13915:7:18" } ], "functionName": { - "name": "abi_decode_t_uint256", - "nativeSrc": "22848:20:18", + "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "13845:45:18", "nodeType": "YulIdentifier", - "src": "22848:20:18" + "src": "13845:45:18" }, - "nativeSrc": "22848:53:18", + "nativeSrc": "13845:78:18", "nodeType": "YulFunctionCall", - "src": "22848:53:18" + "src": "13845:78:18" }, "variableNames": [ { - "name": "value2", - "nativeSrc": "22838:6:18", + "name": "value1", + "nativeSrc": "13835:6:18", "nodeType": "YulIdentifier", - "src": "22838:6:18" + "src": "13835:6:18" } ] } @@ -73815,2685 +72907,3178 @@ } ] }, - "name": "abi_decode_tuple_t_addresst_uint256t_uint256", - "nativeSrc": "22299:619:18", + "name": "abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "13046:894:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", - "nativeSrc": "22353:9:18", + "nativeSrc": "13141:9:18", "nodeType": "YulTypedName", - "src": "22353:9:18", + "src": "13141:9:18", "type": "" }, { "name": "dataEnd", - "nativeSrc": "22364:7:18", + "nativeSrc": "13152:7:18", "nodeType": "YulTypedName", - "src": "22364:7:18", + "src": "13152:7:18", "type": "" } ], "returnVariables": [ { "name": "value0", - "nativeSrc": "22376:6:18", + "nativeSrc": "13164:6:18", "nodeType": "YulTypedName", - "src": "22376:6:18", + "src": "13164:6:18", "type": "" }, { "name": "value1", - "nativeSrc": "22384:6:18", - "nodeType": "YulTypedName", - "src": "22384:6:18", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "22392:6:18", + "nativeSrc": "13172:6:18", "nodeType": "YulTypedName", - "src": "22392:6:18", + "src": "13172:6:18", "type": "" } ], - "src": "22299:619:18" + "src": "13046:894:18" }, { "body": { - "nativeSrc": "23038:34:18", + "nativeSrc": "14020:40:18", "nodeType": "YulBlock", - "src": "23038:34:18", + "src": "14020:40:18", "statements": [ { - "nativeSrc": "23048:18:18", + "nativeSrc": "14031:22:18", "nodeType": "YulAssignment", - "src": "23048:18:18", + "src": "14031:22:18", "value": { - "name": "pos", - "nativeSrc": "23063:3:18", - "nodeType": "YulIdentifier", - "src": "23063:3:18" + "arguments": [ + { + "name": "value", + "nativeSrc": "14047:5:18", + "nodeType": "YulIdentifier", + "src": "14047:5:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "14041:5:18", + "nodeType": "YulIdentifier", + "src": "14041:5:18" + }, + "nativeSrc": "14041:12:18", + "nodeType": "YulFunctionCall", + "src": "14041:12:18" }, "variableNames": [ { - "name": "updated_pos", - "nativeSrc": "23048:11:18", + "name": "length", + "nativeSrc": "14031:6:18", "nodeType": "YulIdentifier", - "src": "23048:11:18" + "src": "14031:6:18" } ] } ] }, - "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "22924:148:18", + "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "13946:114:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", - "nativeSrc": "23010:3:18", - "nodeType": "YulTypedName", - "src": "23010:3:18", - "type": "" - }, - { - "name": "length", - "nativeSrc": "23015:6:18", + "name": "value", + "nativeSrc": "14003:5:18", "nodeType": "YulTypedName", - "src": "23015:6:18", + "src": "14003:5:18", "type": "" } ], "returnVariables": [ { - "name": "updated_pos", - "nativeSrc": "23026:11:18", + "name": "length", + "nativeSrc": "14013:6:18", "nodeType": "YulTypedName", - "src": "23026:11:18", + "src": "14013:6:18", "type": "" } ], - "src": "22924:148:18" + "src": "13946:114:18" }, { "body": { - "nativeSrc": "23184:55:18", + "nativeSrc": "14177:73:18", "nodeType": "YulBlock", - "src": "23184:55:18", + "src": "14177:73:18", "statements": [ { "expression": { "arguments": [ { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "23206:6:18", - "nodeType": "YulIdentifier", - "src": "23206:6:18" - }, - { - "kind": "number", - "nativeSrc": "23214:1:18", - "nodeType": "YulLiteral", - "src": "23214:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "23202:3:18", - "nodeType": "YulIdentifier", - "src": "23202:3:18" - }, - "nativeSrc": "23202:14:18", - "nodeType": "YulFunctionCall", - "src": "23202:14:18" + "name": "pos", + "nativeSrc": "14194:3:18", + "nodeType": "YulIdentifier", + "src": "14194:3:18" }, { - "hexValue": "697066733a2f2f", - "kind": "string", - "nativeSrc": "23218:9:18", - "nodeType": "YulLiteral", - "src": "23218:9:18", - "type": "", - "value": "ipfs://" + "name": "length", + "nativeSrc": "14199:6:18", + "nodeType": "YulIdentifier", + "src": "14199:6:18" } ], "functionName": { "name": "mstore", - "nativeSrc": "23195:6:18", + "nativeSrc": "14187:6:18", "nodeType": "YulIdentifier", - "src": "23195:6:18" + "src": "14187:6:18" }, - "nativeSrc": "23195:33:18", + "nativeSrc": "14187:19:18", "nodeType": "YulFunctionCall", - "src": "23195:33:18" + "src": "14187:19:18" }, - "nativeSrc": "23195:33:18", + "nativeSrc": "14187:19:18", "nodeType": "YulExpressionStatement", - "src": "23195:33:18" - } - ] - }, - "name": "store_literal_in_memory_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe", - "nativeSrc": "23078:161:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nativeSrc": "23176:6:18", - "nodeType": "YulTypedName", - "src": "23176:6:18", - "type": "" - } - ], - "src": "23078:161:18" - }, - { - "body": { - "nativeSrc": "23413:252:18", - "nodeType": "YulBlock", - "src": "23413:252:18", - "statements": [ + "src": "14187:19:18" + }, { - "nativeSrc": "23427:91:18", + "nativeSrc": "14215:29:18", "nodeType": "YulAssignment", - "src": "23427:91:18", + "src": "14215:29:18", "value": { "arguments": [ { "name": "pos", - "nativeSrc": "23511:3:18", + "nativeSrc": "14234:3:18", "nodeType": "YulIdentifier", - "src": "23511:3:18" + "src": "14234:3:18" }, { "kind": "number", - "nativeSrc": "23516:1:18", + "nativeSrc": "14239:4:18", "nodeType": "YulLiteral", - "src": "23516:1:18", + "src": "14239:4:18", "type": "", - "value": "7" + "value": "0x20" } ], "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "23434:76:18", + "name": "add", + "nativeSrc": "14230:3:18", "nodeType": "YulIdentifier", - "src": "23434:76:18" + "src": "14230:3:18" }, - "nativeSrc": "23434:84:18", + "nativeSrc": "14230:14:18", "nodeType": "YulFunctionCall", - "src": "23434:84:18" + "src": "14230:14:18" }, "variableNames": [ { - "name": "pos", - "nativeSrc": "23427:3:18", + "name": "updated_pos", + "nativeSrc": "14215:11:18", "nodeType": "YulIdentifier", - "src": "23427:3:18" + "src": "14215:11:18" } ] - }, + } + ] + }, + "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nativeSrc": "14066:184:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "14149:3:18", + "nodeType": "YulTypedName", + "src": "14149:3:18", + "type": "" + }, + { + "name": "length", + "nativeSrc": "14154:6:18", + "nodeType": "YulTypedName", + "src": "14154:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "14165:11:18", + "nodeType": "YulTypedName", + "src": "14165:11:18", + "type": "" + } + ], + "src": "14066:184:18" + }, + { + "body": { + "nativeSrc": "14328:60:18", + "nodeType": "YulBlock", + "src": "14328:60:18", + "statements": [ { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "23620:3:18", - "nodeType": "YulIdentifier", - "src": "23620:3:18" - } - ], - "functionName": { - "name": "store_literal_in_memory_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe", - "nativeSrc": "23531:88:18", - "nodeType": "YulIdentifier", - "src": "23531:88:18" - }, - "nativeSrc": "23531:93:18", - "nodeType": "YulFunctionCall", - "src": "23531:93:18" + "nativeSrc": "14338:11:18", + "nodeType": "YulAssignment", + "src": "14338:11:18", + "value": { + "name": "ptr", + "nativeSrc": "14346:3:18", + "nodeType": "YulIdentifier", + "src": "14346:3:18" }, - "nativeSrc": "23531:93:18", - "nodeType": "YulExpressionStatement", - "src": "23531:93:18" + "variableNames": [ + { + "name": "data", + "nativeSrc": "14338:4:18", + "nodeType": "YulIdentifier", + "src": "14338:4:18" + } + ] }, { - "nativeSrc": "23637:18:18", + "nativeSrc": "14359:22:18", "nodeType": "YulAssignment", - "src": "23637:18:18", + "src": "14359:22:18", "value": { "arguments": [ { - "name": "pos", - "nativeSrc": "23648:3:18", + "name": "ptr", + "nativeSrc": "14371:3:18", "nodeType": "YulIdentifier", - "src": "23648:3:18" + "src": "14371:3:18" }, { "kind": "number", - "nativeSrc": "23653:1:18", + "nativeSrc": "14376:4:18", "nodeType": "YulLiteral", - "src": "23653:1:18", + "src": "14376:4:18", "type": "", - "value": "7" + "value": "0x20" } ], "functionName": { "name": "add", - "nativeSrc": "23644:3:18", + "nativeSrc": "14367:3:18", "nodeType": "YulIdentifier", - "src": "23644:3:18" + "src": "14367:3:18" }, - "nativeSrc": "23644:11:18", + "nativeSrc": "14367:14:18", "nodeType": "YulFunctionCall", - "src": "23644:11:18" + "src": "14367:14:18" }, "variableNames": [ { - "name": "end", - "nativeSrc": "23637:3:18", + "name": "data", + "nativeSrc": "14359:4:18", "nodeType": "YulIdentifier", - "src": "23637:3:18" + "src": "14359:4:18" } ] } ] }, - "name": "abi_encode_t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "23249:416:18", + "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "14256:132:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", - "nativeSrc": "23401:3:18", + "name": "ptr", + "nativeSrc": "14315:3:18", "nodeType": "YulTypedName", - "src": "23401:3:18", + "src": "14315:3:18", "type": "" } ], "returnVariables": [ { - "name": "end", - "nativeSrc": "23409:3:18", + "name": "data", + "nativeSrc": "14323:4:18", "nodeType": "YulTypedName", - "src": "23409:3:18", + "src": "14323:4:18", "type": "" } ], - "src": "23249:416:18" + "src": "14256:132:18" }, { "body": { - "nativeSrc": "23703:168:18", + "nativeSrc": "14449:53:18", "nodeType": "YulBlock", - "src": "23703:168:18", + "src": "14449:53:18", "statements": [ { "expression": { "arguments": [ { - "kind": "number", - "nativeSrc": "23724:1:18", - "nodeType": "YulLiteral", - "src": "23724:1:18", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "23727:77:18", - "nodeType": "YulLiteral", - "src": "23727:77:18", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "23717:6:18", - "nodeType": "YulIdentifier", - "src": "23717:6:18" - }, - "nativeSrc": "23717:88:18", - "nodeType": "YulFunctionCall", - "src": "23717:88:18" - }, - "nativeSrc": "23717:88:18", - "nodeType": "YulExpressionStatement", - "src": "23717:88:18" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "23825:1:18", - "nodeType": "YulLiteral", - "src": "23825:1:18", - "type": "", - "value": "4" + "name": "pos", + "nativeSrc": "14466:3:18", + "nodeType": "YulIdentifier", + "src": "14466:3:18" }, { - "kind": "number", - "nativeSrc": "23828:4:18", - "nodeType": "YulLiteral", - "src": "23828:4:18", - "type": "", - "value": "0x22" + "arguments": [ + { + "name": "value", + "nativeSrc": "14489:5:18", + "nodeType": "YulIdentifier", + "src": "14489:5:18" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "14471:17:18", + "nodeType": "YulIdentifier", + "src": "14471:17:18" + }, + "nativeSrc": "14471:24:18", + "nodeType": "YulFunctionCall", + "src": "14471:24:18" } ], "functionName": { "name": "mstore", - "nativeSrc": "23818:6:18", - "nodeType": "YulIdentifier", - "src": "23818:6:18" - }, - "nativeSrc": "23818:15:18", - "nodeType": "YulFunctionCall", - "src": "23818:15:18" - }, - "nativeSrc": "23818:15:18", - "nodeType": "YulExpressionStatement", - "src": "23818:15:18" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "23853:1:18", - "nodeType": "YulLiteral", - "src": "23853:1:18", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "23856:4:18", - "nodeType": "YulLiteral", - "src": "23856:4:18", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "23846:6:18", + "nativeSrc": "14459:6:18", "nodeType": "YulIdentifier", - "src": "23846:6:18" + "src": "14459:6:18" }, - "nativeSrc": "23846:15:18", + "nativeSrc": "14459:37:18", "nodeType": "YulFunctionCall", - "src": "23846:15:18" + "src": "14459:37:18" }, - "nativeSrc": "23846:15:18", + "nativeSrc": "14459:37:18", "nodeType": "YulExpressionStatement", - "src": "23846:15:18" + "src": "14459:37:18" } ] }, - "name": "panic_error_0x22", - "nativeSrc": "23675:196:18", + "name": "abi_encode_t_uint256_to_t_uint256", + "nativeSrc": "14394:108:18", "nodeType": "YulFunctionDefinition", - "src": "23675:196:18" + "parameters": [ + { + "name": "value", + "nativeSrc": "14437:5:18", + "nodeType": "YulTypedName", + "src": "14437:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "14444:3:18", + "nodeType": "YulTypedName", + "src": "14444:3:18", + "type": "" + } + ], + "src": "14394:108:18" }, { "body": { - "nativeSrc": "23932:305:18", + "nativeSrc": "14588:99:18", "nodeType": "YulBlock", - "src": "23932:305:18", + "src": "14588:99:18", "statements": [ { - "nativeSrc": "23946:22:18", - "nodeType": "YulAssignment", - "src": "23946:22:18", - "value": { + "expression": { "arguments": [ { - "name": "data", - "nativeSrc": "23960:4:18", + "name": "value0", + "nativeSrc": "14632:6:18", "nodeType": "YulIdentifier", - "src": "23960:4:18" + "src": "14632:6:18" }, { - "kind": "number", - "nativeSrc": "23966:1:18", - "nodeType": "YulLiteral", - "src": "23966:1:18", - "type": "", - "value": "2" + "name": "pos", + "nativeSrc": "14640:3:18", + "nodeType": "YulIdentifier", + "src": "14640:3:18" } ], "functionName": { - "name": "div", - "nativeSrc": "23956:3:18", + "name": "abi_encode_t_uint256_to_t_uint256", + "nativeSrc": "14598:33:18", "nodeType": "YulIdentifier", - "src": "23956:3:18" + "src": "14598:33:18" }, - "nativeSrc": "23956:12:18", + "nativeSrc": "14598:46:18", "nodeType": "YulFunctionCall", - "src": "23956:12:18" + "src": "14598:46:18" }, - "variableNames": [ - { - "name": "length", - "nativeSrc": "23946:6:18", - "nodeType": "YulIdentifier", - "src": "23946:6:18" - } - ] + "nativeSrc": "14598:46:18", + "nodeType": "YulExpressionStatement", + "src": "14598:46:18" }, { - "nativeSrc": "23981:38:18", - "nodeType": "YulVariableDeclaration", - "src": "23981:38:18", + "nativeSrc": "14653:28:18", + "nodeType": "YulAssignment", + "src": "14653:28:18", "value": { "arguments": [ { - "name": "data", - "nativeSrc": "24011:4:18", + "name": "pos", + "nativeSrc": "14671:3:18", "nodeType": "YulIdentifier", - "src": "24011:4:18" + "src": "14671:3:18" }, { "kind": "number", - "nativeSrc": "24017:1:18", + "nativeSrc": "14676:4:18", "nodeType": "YulLiteral", - "src": "24017:1:18", + "src": "14676:4:18", "type": "", - "value": "1" + "value": "0x20" } ], "functionName": { - "name": "and", - "nativeSrc": "24007:3:18", + "name": "add", + "nativeSrc": "14667:3:18", "nodeType": "YulIdentifier", - "src": "24007:3:18" + "src": "14667:3:18" }, - "nativeSrc": "24007:12:18", + "nativeSrc": "14667:14:18", "nodeType": "YulFunctionCall", - "src": "24007:12:18" + "src": "14667:14:18" }, - "variables": [ + "variableNames": [ { - "name": "outOfPlaceEncoding", - "nativeSrc": "23985:18:18", - "nodeType": "YulTypedName", - "src": "23985:18:18", - "type": "" + "name": "updatedPos", + "nativeSrc": "14653:10:18", + "nodeType": "YulIdentifier", + "src": "14653:10:18" } ] - }, - { - "body": { - "nativeSrc": "24062:59:18", - "nodeType": "YulBlock", - "src": "24062:59:18", - "statements": [ - { - "nativeSrc": "24080:27:18", - "nodeType": "YulAssignment", - "src": "24080:27:18", - "value": { - "arguments": [ - { - "name": "length", - "nativeSrc": "24094:6:18", - "nodeType": "YulIdentifier", - "src": "24094:6:18" - }, - { - "kind": "number", - "nativeSrc": "24102:4:18", - "nodeType": "YulLiteral", - "src": "24102:4:18", - "type": "", - "value": "0x7f" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "24090:3:18", - "nodeType": "YulIdentifier", - "src": "24090:3:18" - }, - "nativeSrc": "24090:17:18", - "nodeType": "YulFunctionCall", - "src": "24090:17:18" - }, - "variableNames": [ - { - "name": "length", - "nativeSrc": "24080:6:18", - "nodeType": "YulIdentifier", - "src": "24080:6:18" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "outOfPlaceEncoding", - "nativeSrc": "24042:18:18", - "nodeType": "YulIdentifier", - "src": "24042:18:18" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "24035:6:18", - "nodeType": "YulIdentifier", - "src": "24035:6:18" - }, - "nativeSrc": "24035:26:18", - "nodeType": "YulFunctionCall", - "src": "24035:26:18" - }, - "nativeSrc": "24032:89:18", - "nodeType": "YulIf", - "src": "24032:89:18" - }, - { - "body": { - "nativeSrc": "24177:50:18", - "nodeType": "YulBlock", - "src": "24177:50:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x22", - "nativeSrc": "24195:16:18", - "nodeType": "YulIdentifier", - "src": "24195:16:18" - }, - "nativeSrc": "24195:18:18", - "nodeType": "YulFunctionCall", - "src": "24195:18:18" - }, - "nativeSrc": "24195:18:18", - "nodeType": "YulExpressionStatement", - "src": "24195:18:18" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "outOfPlaceEncoding", - "nativeSrc": "24141:18:18", - "nodeType": "YulIdentifier", - "src": "24141:18:18" - }, - { - "arguments": [ - { - "name": "length", - "nativeSrc": "24164:6:18", - "nodeType": "YulIdentifier", - "src": "24164:6:18" - }, - { - "kind": "number", - "nativeSrc": "24172:2:18", - "nodeType": "YulLiteral", - "src": "24172:2:18", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "24161:2:18", - "nodeType": "YulIdentifier", - "src": "24161:2:18" - }, - "nativeSrc": "24161:14:18", - "nodeType": "YulFunctionCall", - "src": "24161:14:18" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "24138:2:18", - "nodeType": "YulIdentifier", - "src": "24138:2:18" - }, - "nativeSrc": "24138:38:18", - "nodeType": "YulFunctionCall", - "src": "24138:38:18" - }, - "nativeSrc": "24135:92:18", - "nodeType": "YulIf", - "src": "24135:92:18" } ] }, - "name": "extract_byte_array_length", - "nativeSrc": "23881:356:18", + "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", + "nativeSrc": "14508:179:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "data", - "nativeSrc": "23916:4:18", + "name": "value0", + "nativeSrc": "14561:6:18", "nodeType": "YulTypedName", - "src": "23916:4:18", + "src": "14561:6:18", "type": "" - } - ], - "returnVariables": [ + }, { - "name": "length", - "nativeSrc": "23925:6:18", + "name": "pos", + "nativeSrc": "14569:3:18", "nodeType": "YulTypedName", - "src": "23925:6:18", + "src": "14569:3:18", "type": "" } ], - "src": "23881:356:18" - }, - { - "body": { - "nativeSrc": "24301:103:18", - "nodeType": "YulBlock", - "src": "24301:103:18", - "statements": [ - { - "nativeSrc": "24315:11:18", - "nodeType": "YulAssignment", - "src": "24315:11:18", - "value": { - "name": "ptr", - "nativeSrc": "24323:3:18", - "nodeType": "YulIdentifier", - "src": "24323:3:18" - }, - "variableNames": [ - { - "name": "data", - "nativeSrc": "24315:4:18", - "nodeType": "YulIdentifier", - "src": "24315:4:18" - } - ] - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "24347:1:18", - "nodeType": "YulLiteral", - "src": "24347:1:18", - "type": "", - "value": "0" - }, - { - "name": "ptr", - "nativeSrc": "24350:3:18", - "nodeType": "YulIdentifier", - "src": "24350:3:18" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "24340:6:18", - "nodeType": "YulIdentifier", - "src": "24340:6:18" - }, - "nativeSrc": "24340:14:18", - "nodeType": "YulFunctionCall", - "src": "24340:14:18" - }, - "nativeSrc": "24340:14:18", - "nodeType": "YulExpressionStatement", - "src": "24340:14:18" - }, + "returnVariables": [ + { + "name": "updatedPos", + "nativeSrc": "14577:10:18", + "nodeType": "YulTypedName", + "src": "14577:10:18", + "type": "" + } + ], + "src": "14508:179:18" + }, + { + "body": { + "nativeSrc": "14768:38:18", + "nodeType": "YulBlock", + "src": "14768:38:18", + "statements": [ { - "nativeSrc": "24367:26:18", + "nativeSrc": "14778:22:18", "nodeType": "YulAssignment", - "src": "24367:26:18", + "src": "14778:22:18", "value": { "arguments": [ { - "kind": "number", - "nativeSrc": "24385:1:18", - "nodeType": "YulLiteral", - "src": "24385:1:18", - "type": "", - "value": "0" + "name": "ptr", + "nativeSrc": "14790:3:18", + "nodeType": "YulIdentifier", + "src": "14790:3:18" }, { "kind": "number", - "nativeSrc": "24388:4:18", + "nativeSrc": "14795:4:18", "nodeType": "YulLiteral", - "src": "24388:4:18", + "src": "14795:4:18", "type": "", "value": "0x20" } ], "functionName": { - "name": "keccak256", - "nativeSrc": "24375:9:18", + "name": "add", + "nativeSrc": "14786:3:18", "nodeType": "YulIdentifier", - "src": "24375:9:18" + "src": "14786:3:18" }, - "nativeSrc": "24375:18:18", + "nativeSrc": "14786:14:18", "nodeType": "YulFunctionCall", - "src": "24375:18:18" + "src": "14786:14:18" }, "variableNames": [ { - "name": "data", - "nativeSrc": "24367:4:18", + "name": "next", + "nativeSrc": "14778:4:18", "nodeType": "YulIdentifier", - "src": "24367:4:18" + "src": "14778:4:18" } ] } ] }, - "name": "array_dataslot_t_string_storage", - "nativeSrc": "24247:157:18", + "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "14693:113:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "ptr", - "nativeSrc": "24288:3:18", + "nativeSrc": "14755:3:18", "nodeType": "YulTypedName", - "src": "24288:3:18", + "src": "14755:3:18", "type": "" } ], "returnVariables": [ { - "name": "data", - "nativeSrc": "24296:4:18", + "name": "next", + "nativeSrc": "14763:4:18", "nodeType": "YulTypedName", - "src": "24296:4:18", + "src": "14763:4:18", "type": "" } ], - "src": "24247:157:18" + "src": "14693:113:18" }, { "body": { - "nativeSrc": "24549:847:18", + "nativeSrc": "14966:608:18", "nodeType": "YulBlock", - "src": "24549:847:18", + "src": "14966:608:18", "statements": [ { - "nativeSrc": "24563:29:18", + "nativeSrc": "14976:68:18", "nodeType": "YulVariableDeclaration", - "src": "24563:29:18", + "src": "14976:68:18", "value": { "arguments": [ { "name": "value", - "nativeSrc": "24586:5:18", + "nativeSrc": "15038:5:18", "nodeType": "YulIdentifier", - "src": "24586:5:18" + "src": "15038:5:18" } ], "functionName": { - "name": "sload", - "nativeSrc": "24580:5:18", + "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "14990:47:18", "nodeType": "YulIdentifier", - "src": "24580:5:18" + "src": "14990:47:18" }, - "nativeSrc": "24580:12:18", + "nativeSrc": "14990:54:18", "nodeType": "YulFunctionCall", - "src": "24580:12:18" + "src": "14990:54:18" }, "variables": [ { - "name": "slotValue", - "nativeSrc": "24567:9:18", + "name": "length", + "nativeSrc": "14980:6:18", "nodeType": "YulTypedName", - "src": "24567:9:18", + "src": "14980:6:18", "type": "" } ] }, { - "nativeSrc": "24605:50:18", - "nodeType": "YulVariableDeclaration", - "src": "24605:50:18", + "nativeSrc": "15053:93:18", + "nodeType": "YulAssignment", + "src": "15053:93:18", "value": { "arguments": [ { - "name": "slotValue", - "nativeSrc": "24645:9:18", + "name": "pos", + "nativeSrc": "15134:3:18", + "nodeType": "YulIdentifier", + "src": "15134:3:18" + }, + { + "name": "length", + "nativeSrc": "15139:6:18", "nodeType": "YulIdentifier", - "src": "24645:9:18" + "src": "15139:6:18" } ], "functionName": { - "name": "extract_byte_array_length", - "nativeSrc": "24619:25:18", + "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nativeSrc": "15060:73:18", "nodeType": "YulIdentifier", - "src": "24619:25:18" + "src": "15060:73:18" }, - "nativeSrc": "24619:36:18", + "nativeSrc": "15060:86:18", "nodeType": "YulFunctionCall", - "src": "24619:36:18" + "src": "15060:86:18" }, - "variables": [ + "variableNames": [ { - "name": "length", - "nativeSrc": "24609:6:18", - "nodeType": "YulTypedName", - "src": "24609:6:18", - "type": "" + "name": "pos", + "nativeSrc": "15053:3:18", + "nodeType": "YulIdentifier", + "src": "15053:3:18" } ] }, { - "nativeSrc": "24668:96:18", - "nodeType": "YulAssignment", - "src": "24668:96:18", + "nativeSrc": "15155:71:18", + "nodeType": "YulVariableDeclaration", + "src": "15155:71:18", "value": { "arguments": [ { - "name": "pos", - "nativeSrc": "24752:3:18", - "nodeType": "YulIdentifier", - "src": "24752:3:18" - }, - { - "name": "length", - "nativeSrc": "24757:6:18", + "name": "value", + "nativeSrc": "15220:5:18", "nodeType": "YulIdentifier", - "src": "24757:6:18" + "src": "15220:5:18" } ], "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "24675:76:18", + "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "15170:49:18", "nodeType": "YulIdentifier", - "src": "24675:76:18" + "src": "15170:49:18" }, - "nativeSrc": "24675:89:18", + "nativeSrc": "15170:56:18", "nodeType": "YulFunctionCall", - "src": "24675:89:18" + "src": "15170:56:18" }, - "variableNames": [ + "variables": [ { - "name": "pos", - "nativeSrc": "24668:3:18", - "nodeType": "YulIdentifier", - "src": "24668:3:18" + "name": "baseRef", + "nativeSrc": "15159:7:18", + "nodeType": "YulTypedName", + "src": "15159:7:18", + "type": "" } ] }, { - "cases": [ + "nativeSrc": "15235:21:18", + "nodeType": "YulVariableDeclaration", + "src": "15235:21:18", + "value": { + "name": "baseRef", + "nativeSrc": "15249:7:18", + "nodeType": "YulIdentifier", + "src": "15249:7:18" + }, + "variables": [ { - "body": { - "nativeSrc": "24821:175:18", - "nodeType": "YulBlock", - "src": "24821:175:18", - "statements": [ + "name": "srcPtr", + "nativeSrc": "15239:6:18", + "nodeType": "YulTypedName", + "src": "15239:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "15325:224:18", + "nodeType": "YulBlock", + "src": "15325:224:18", + "statements": [ + { + "nativeSrc": "15339:34:18", + "nodeType": "YulVariableDeclaration", + "src": "15339:34:18", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "15366:6:18", + "nodeType": "YulIdentifier", + "src": "15366:6:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "15360:5:18", + "nodeType": "YulIdentifier", + "src": "15360:5:18" + }, + "nativeSrc": "15360:13:18", + "nodeType": "YulFunctionCall", + "src": "15360:13:18" + }, + "variables": [ { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "24882:3:18", - "nodeType": "YulIdentifier", - "src": "24882:3:18" - }, - { - "arguments": [ - { - "name": "slotValue", - "nativeSrc": "24891:9:18", - "nodeType": "YulIdentifier", - "src": "24891:9:18" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "24906:4:18", - "nodeType": "YulLiteral", - "src": "24906:4:18", - "type": "", - "value": "0xff" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "24902:3:18", - "nodeType": "YulIdentifier", - "src": "24902:3:18" - }, - "nativeSrc": "24902:9:18", - "nodeType": "YulFunctionCall", - "src": "24902:9:18" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "24887:3:18", - "nodeType": "YulIdentifier", - "src": "24887:3:18" - }, - "nativeSrc": "24887:25:18", - "nodeType": "YulFunctionCall", - "src": "24887:25:18" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "24875:6:18", - "nodeType": "YulIdentifier", - "src": "24875:6:18" - }, - "nativeSrc": "24875:38:18", - "nodeType": "YulFunctionCall", - "src": "24875:38:18" + "name": "elementValue0", + "nativeSrc": "15343:13:18", + "nodeType": "YulTypedName", + "src": "15343:13:18", + "type": "" + } + ] + }, + { + "nativeSrc": "15386:70:18", + "nodeType": "YulAssignment", + "src": "15386:70:18", + "value": { + "arguments": [ + { + "name": "elementValue0", + "nativeSrc": "15437:13:18", + "nodeType": "YulIdentifier", + "src": "15437:13:18" }, - "nativeSrc": "24875:38:18", - "nodeType": "YulExpressionStatement", - "src": "24875:38:18" + { + "name": "pos", + "nativeSrc": "15452:3:18", + "nodeType": "YulIdentifier", + "src": "15452:3:18" + } + ], + "functionName": { + "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", + "nativeSrc": "15393:43:18", + "nodeType": "YulIdentifier", + "src": "15393:43:18" }, + "nativeSrc": "15393:63:18", + "nodeType": "YulFunctionCall", + "src": "15393:63:18" + }, + "variableNames": [ { - "nativeSrc": "24930:52:18", - "nodeType": "YulAssignment", - "src": "24930:52:18", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "24941:3:18", - "nodeType": "YulIdentifier", - "src": "24941:3:18" - }, - { - "arguments": [ - { - "name": "length", - "nativeSrc": "24950:6:18", - "nodeType": "YulIdentifier", - "src": "24950:6:18" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nativeSrc": "24972:6:18", - "nodeType": "YulIdentifier", - "src": "24972:6:18" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "24965:6:18", - "nodeType": "YulIdentifier", - "src": "24965:6:18" - }, - "nativeSrc": "24965:14:18", - "nodeType": "YulFunctionCall", - "src": "24965:14:18" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "24958:6:18", - "nodeType": "YulIdentifier", - "src": "24958:6:18" - }, - "nativeSrc": "24958:22:18", - "nodeType": "YulFunctionCall", - "src": "24958:22:18" - } - ], - "functionName": { - "name": "mul", - "nativeSrc": "24946:3:18", - "nodeType": "YulIdentifier", - "src": "24946:3:18" - }, - "nativeSrc": "24946:35:18", - "nodeType": "YulFunctionCall", - "src": "24946:35:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "24937:3:18", - "nodeType": "YulIdentifier", - "src": "24937:3:18" - }, - "nativeSrc": "24937:45:18", - "nodeType": "YulFunctionCall", - "src": "24937:45:18" - }, - "variableNames": [ - { - "name": "ret", - "nativeSrc": "24930:3:18", - "nodeType": "YulIdentifier", - "src": "24930:3:18" - } - ] + "name": "pos", + "nativeSrc": "15386:3:18", + "nodeType": "YulIdentifier", + "src": "15386:3:18" } ] }, - "nativeSrc": "24814:182:18", - "nodeType": "YulCase", - "src": "24814:182:18", - "value": { - "kind": "number", - "nativeSrc": "24819:1:18", - "nodeType": "YulLiteral", - "src": "24819:1:18", - "type": "", - "value": "0" + { + "nativeSrc": "15469:70:18", + "nodeType": "YulAssignment", + "src": "15469:70:18", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "15532:6:18", + "nodeType": "YulIdentifier", + "src": "15532:6:18" + } + ], + "functionName": { + "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "15479:52:18", + "nodeType": "YulIdentifier", + "src": "15479:52:18" + }, + "nativeSrc": "15479:60:18", + "nodeType": "YulFunctionCall", + "src": "15479:60:18" + }, + "variableNames": [ + { + "name": "srcPtr", + "nativeSrc": "15469:6:18", + "nodeType": "YulIdentifier", + "src": "15469:6:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "15287:1:18", + "nodeType": "YulIdentifier", + "src": "15287:1:18" + }, + { + "name": "length", + "nativeSrc": "15290:6:18", + "nodeType": "YulIdentifier", + "src": "15290:6:18" } + ], + "functionName": { + "name": "lt", + "nativeSrc": "15284:2:18", + "nodeType": "YulIdentifier", + "src": "15284:2:18" }, - { - "body": { - "nativeSrc": "25016:370:18", - "nodeType": "YulBlock", - "src": "25016:370:18", - "statements": [ - { - "nativeSrc": "25069:53:18", - "nodeType": "YulVariableDeclaration", - "src": "25069:53:18", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "25116:5:18", - "nodeType": "YulIdentifier", - "src": "25116:5:18" - } - ], - "functionName": { - "name": "array_dataslot_t_string_storage", - "nativeSrc": "25084:31:18", - "nodeType": "YulIdentifier", - "src": "25084:31:18" - }, - "nativeSrc": "25084:38:18", - "nodeType": "YulFunctionCall", - "src": "25084:38:18" + "nativeSrc": "15284:13:18", + "nodeType": "YulFunctionCall", + "src": "15284:13:18" + }, + "nativeSrc": "15265:284:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "15298:18:18", + "nodeType": "YulBlock", + "src": "15298:18:18", + "statements": [ + { + "nativeSrc": "15300:14:18", + "nodeType": "YulAssignment", + "src": "15300:14:18", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "15309:1:18", + "nodeType": "YulIdentifier", + "src": "15309:1:18" }, - "variables": [ - { - "name": "dataPos", - "nativeSrc": "25073:7:18", - "nodeType": "YulTypedName", - "src": "25073:7:18", - "type": "" - } - ] - }, - { - "nativeSrc": "25139:10:18", - "nodeType": "YulVariableDeclaration", - "src": "25139:10:18", - "value": { + { "kind": "number", - "nativeSrc": "25148:1:18", + "nativeSrc": "15312:1:18", "nodeType": "YulLiteral", - "src": "25148:1:18", + "src": "15312:1:18", "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nativeSrc": "25143:1:18", - "nodeType": "YulTypedName", - "src": "25143:1:18", - "type": "" - } - ] + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15305:3:18", + "nodeType": "YulIdentifier", + "src": "15305:3:18" }, + "nativeSrc": "15305:9:18", + "nodeType": "YulFunctionCall", + "src": "15305:9:18" + }, + "variableNames": [ { - "body": { - "nativeSrc": "25210:122:18", - "nodeType": "YulBlock", - "src": "25210:122:18", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nativeSrc": "25243:3:18", - "nodeType": "YulIdentifier", - "src": "25243:3:18" - }, - { - "name": "i", - "nativeSrc": "25248:1:18", - "nodeType": "YulIdentifier", - "src": "25248:1:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "25239:3:18", - "nodeType": "YulIdentifier", - "src": "25239:3:18" - }, - "nativeSrc": "25239:11:18", - "nodeType": "YulFunctionCall", - "src": "25239:11:18" - }, - { - "arguments": [ - { - "name": "dataPos", - "nativeSrc": "25258:7:18", - "nodeType": "YulIdentifier", - "src": "25258:7:18" - } - ], - "functionName": { - "name": "sload", - "nativeSrc": "25252:5:18", - "nodeType": "YulIdentifier", - "src": "25252:5:18" - }, - "nativeSrc": "25252:14:18", - "nodeType": "YulFunctionCall", - "src": "25252:14:18" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "25232:6:18", - "nodeType": "YulIdentifier", - "src": "25232:6:18" - }, - "nativeSrc": "25232:35:18", - "nodeType": "YulFunctionCall", - "src": "25232:35:18" - }, - "nativeSrc": "25232:35:18", - "nodeType": "YulExpressionStatement", - "src": "25232:35:18" - }, - { - "nativeSrc": "25288:26:18", - "nodeType": "YulAssignment", - "src": "25288:26:18", - "value": { - "arguments": [ - { - "name": "dataPos", - "nativeSrc": "25303:7:18", - "nodeType": "YulIdentifier", - "src": "25303:7:18" - }, - { - "kind": "number", - "nativeSrc": "25312:1:18", - "nodeType": "YulLiteral", - "src": "25312:1:18", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "25299:3:18", - "nodeType": "YulIdentifier", - "src": "25299:3:18" - }, - "nativeSrc": "25299:15:18", - "nodeType": "YulFunctionCall", - "src": "25299:15:18" - }, - "variableNames": [ - { - "name": "dataPos", - "nativeSrc": "25288:7:18", - "nodeType": "YulIdentifier", - "src": "25288:7:18" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nativeSrc": "25177:1:18", - "nodeType": "YulIdentifier", - "src": "25177:1:18" - }, - { - "name": "length", - "nativeSrc": "25180:6:18", - "nodeType": "YulIdentifier", - "src": "25180:6:18" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "25174:2:18", - "nodeType": "YulIdentifier", - "src": "25174:2:18" - }, - "nativeSrc": "25174:13:18", - "nodeType": "YulFunctionCall", - "src": "25174:13:18" - }, - "nativeSrc": "25166:166:18", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "25188:21:18", - "nodeType": "YulBlock", - "src": "25188:21:18", - "statements": [ - { - "nativeSrc": "25190:17:18", - "nodeType": "YulAssignment", - "src": "25190:17:18", - "value": { - "arguments": [ - { - "name": "i", - "nativeSrc": "25199:1:18", - "nodeType": "YulIdentifier", - "src": "25199:1:18" - }, - { - "kind": "number", - "nativeSrc": "25202:4:18", - "nodeType": "YulLiteral", - "src": "25202:4:18", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "25195:3:18", - "nodeType": "YulIdentifier", - "src": "25195:3:18" - }, - "nativeSrc": "25195:12:18", - "nodeType": "YulFunctionCall", - "src": "25195:12:18" - }, - "variableNames": [ - { - "name": "i", - "nativeSrc": "25190:1:18", - "nodeType": "YulIdentifier", - "src": "25190:1:18" - } - ] - } - ] - }, - "pre": { - "nativeSrc": "25170:3:18", - "nodeType": "YulBlock", - "src": "25170:3:18", - "statements": [] - }, - "src": "25166:166:18" - }, + "name": "i", + "nativeSrc": "15300:1:18", + "nodeType": "YulIdentifier", + "src": "15300:1:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "15269:14:18", + "nodeType": "YulBlock", + "src": "15269:14:18", + "statements": [ + { + "nativeSrc": "15271:10:18", + "nodeType": "YulVariableDeclaration", + "src": "15271:10:18", + "value": { + "kind": "number", + "nativeSrc": "15280:1:18", + "nodeType": "YulLiteral", + "src": "15280:1:18", + "type": "", + "value": "0" + }, + "variables": [ { - "nativeSrc": "25349:23:18", - "nodeType": "YulAssignment", - "src": "25349:23:18", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "25360:3:18", - "nodeType": "YulIdentifier", - "src": "25360:3:18" - }, - { - "name": "length", - "nativeSrc": "25365:6:18", - "nodeType": "YulIdentifier", - "src": "25365:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "25356:3:18", - "nodeType": "YulIdentifier", - "src": "25356:3:18" - }, - "nativeSrc": "25356:16:18", - "nodeType": "YulFunctionCall", - "src": "25356:16:18" - }, - "variableNames": [ - { - "name": "ret", - "nativeSrc": "25349:3:18", - "nodeType": "YulIdentifier", - "src": "25349:3:18" - } - ] + "name": "i", + "nativeSrc": "15275:1:18", + "nodeType": "YulTypedName", + "src": "15275:1:18", + "type": "" } ] + } + ] + }, + "src": "15265:284:18" + }, + { + "nativeSrc": "15558:10:18", + "nodeType": "YulAssignment", + "src": "15558:10:18", + "value": { + "name": "pos", + "nativeSrc": "15565:3:18", + "nodeType": "YulIdentifier", + "src": "15565:3:18" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "15558:3:18", + "nodeType": "YulIdentifier", + "src": "15558:3:18" + } + ] + } + ] + }, + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nativeSrc": "14842:732:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "14945:5:18", + "nodeType": "YulTypedName", + "src": "14945:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "14952:3:18", + "nodeType": "YulTypedName", + "src": "14952:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "14961:3:18", + "nodeType": "YulTypedName", + "src": "14961:3:18", + "type": "" + } + ], + "src": "14842:732:18" + }, + { + "body": { + "nativeSrc": "15728:225:18", + "nodeType": "YulBlock", + "src": "15728:225:18", + "statements": [ + { + "nativeSrc": "15738:26:18", + "nodeType": "YulAssignment", + "src": "15738:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15750:9:18", + "nodeType": "YulIdentifier", + "src": "15750:9:18" }, - "nativeSrc": "25009:377:18", - "nodeType": "YulCase", - "src": "25009:377:18", - "value": { + { "kind": "number", - "nativeSrc": "25014:1:18", + "nativeSrc": "15761:2:18", "nodeType": "YulLiteral", - "src": "25014:1:18", + "src": "15761:2:18", "type": "", - "value": "1" + "value": "32" } + ], + "functionName": { + "name": "add", + "nativeSrc": "15746:3:18", + "nodeType": "YulIdentifier", + "src": "15746:3:18" + }, + "nativeSrc": "15746:18:18", + "nodeType": "YulFunctionCall", + "src": "15746:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "15738:4:18", + "nodeType": "YulIdentifier", + "src": "15738:4:18" } - ], + ] + }, + { "expression": { "arguments": [ { - "name": "slotValue", - "nativeSrc": "24788:9:18", + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15785:9:18", + "nodeType": "YulIdentifier", + "src": "15785:9:18" + }, + { + "kind": "number", + "nativeSrc": "15796:1:18", + "nodeType": "YulLiteral", + "src": "15796:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15781:3:18", + "nodeType": "YulIdentifier", + "src": "15781:3:18" + }, + "nativeSrc": "15781:17:18", + "nodeType": "YulFunctionCall", + "src": "15781:17:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "15804:4:18", + "nodeType": "YulIdentifier", + "src": "15804:4:18" + }, + { + "name": "headStart", + "nativeSrc": "15810:9:18", + "nodeType": "YulIdentifier", + "src": "15810:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "15800:3:18", + "nodeType": "YulIdentifier", + "src": "15800:3:18" + }, + "nativeSrc": "15800:20:18", + "nodeType": "YulFunctionCall", + "src": "15800:20:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15774:6:18", + "nodeType": "YulIdentifier", + "src": "15774:6:18" + }, + "nativeSrc": "15774:47:18", + "nodeType": "YulFunctionCall", + "src": "15774:47:18" + }, + "nativeSrc": "15774:47:18", + "nodeType": "YulExpressionStatement", + "src": "15774:47:18" + }, + { + "nativeSrc": "15830:116:18", + "nodeType": "YulAssignment", + "src": "15830:116:18", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "15932:6:18", "nodeType": "YulIdentifier", - "src": "24788:9:18" + "src": "15932:6:18" }, { - "kind": "number", - "nativeSrc": "24799:1:18", - "nodeType": "YulLiteral", - "src": "24799:1:18", - "type": "", - "value": "1" + "name": "tail", + "nativeSrc": "15941:4:18", + "nodeType": "YulIdentifier", + "src": "15941:4:18" } ], "functionName": { - "name": "and", - "nativeSrc": "24784:3:18", + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nativeSrc": "15838:93:18", "nodeType": "YulIdentifier", - "src": "24784:3:18" + "src": "15838:93:18" }, - "nativeSrc": "24784:17:18", + "nativeSrc": "15838:108:18", "nodeType": "YulFunctionCall", - "src": "24784:17:18" + "src": "15838:108:18" }, - "nativeSrc": "24777:609:18", - "nodeType": "YulSwitch", - "src": "24777:609:18" + "variableNames": [ + { + "name": "tail", + "nativeSrc": "15830:4:18", + "nodeType": "YulIdentifier", + "src": "15830:4:18" + } + ] } ] }, - "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "24442:954:18", + "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", + "nativeSrc": "15580:373:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", - "nativeSrc": "24530:5:18", + "name": "headStart", + "nativeSrc": "15700:9:18", "nodeType": "YulTypedName", - "src": "24530:5:18", + "src": "15700:9:18", "type": "" }, { - "name": "pos", - "nativeSrc": "24537:3:18", + "name": "value0", + "nativeSrc": "15712:6:18", "nodeType": "YulTypedName", - "src": "24537:3:18", + "src": "15712:6:18", "type": "" } ], "returnVariables": [ { - "name": "ret", - "nativeSrc": "24545:3:18", + "name": "tail", + "nativeSrc": "15723:4:18", "nodeType": "YulTypedName", - "src": "24545:3:18", + "src": "15723:4:18", "type": "" } ], - "src": "24442:954:18" + "src": "15580:373:18" }, { "body": { - "nativeSrc": "25512:57:18", + "nativeSrc": "16085:817:18", "nodeType": "YulBlock", - "src": "25512:57:18", + "src": "16085:817:18", "statements": [ { - "expression": { + "body": { + "nativeSrc": "16132:83:18", + "nodeType": "YulBlock", + "src": "16132:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "16134:77:18", + "nodeType": "YulIdentifier", + "src": "16134:77:18" + }, + "nativeSrc": "16134:79:18", + "nodeType": "YulFunctionCall", + "src": "16134:79:18" + }, + "nativeSrc": "16134:79:18", + "nodeType": "YulExpressionStatement", + "src": "16134:79:18" + } + ] + }, + "condition": { "arguments": [ { "arguments": [ { - "name": "memPtr", - "nativeSrc": "25538:6:18", + "name": "dataEnd", + "nativeSrc": "16106:7:18", "nodeType": "YulIdentifier", - "src": "25538:6:18" + "src": "16106:7:18" }, { - "kind": "number", - "nativeSrc": "25546:1:18", - "nodeType": "YulLiteral", - "src": "25546:1:18", - "type": "", - "value": "0" + "name": "headStart", + "nativeSrc": "16115:9:18", + "nodeType": "YulIdentifier", + "src": "16115:9:18" } ], "functionName": { - "name": "add", - "nativeSrc": "25534:3:18", + "name": "sub", + "nativeSrc": "16102:3:18", "nodeType": "YulIdentifier", - "src": "25534:3:18" + "src": "16102:3:18" }, - "nativeSrc": "25534:14:18", + "nativeSrc": "16102:23:18", "nodeType": "YulFunctionCall", - "src": "25534:14:18" + "src": "16102:23:18" }, { - "hexValue": "2e6a736f6e", - "kind": "string", - "nativeSrc": "25550:7:18", + "kind": "number", + "nativeSrc": "16127:3:18", "nodeType": "YulLiteral", - "src": "25550:7:18", + "src": "16127:3:18", "type": "", - "value": ".json" + "value": "128" } ], "functionName": { - "name": "mstore", - "nativeSrc": "25527:6:18", + "name": "slt", + "nativeSrc": "16098:3:18", "nodeType": "YulIdentifier", - "src": "25527:6:18" + "src": "16098:3:18" }, - "nativeSrc": "25527:31:18", + "nativeSrc": "16098:33:18", "nodeType": "YulFunctionCall", - "src": "25527:31:18" + "src": "16098:33:18" }, - "nativeSrc": "25527:31:18", - "nodeType": "YulExpressionStatement", - "src": "25527:31:18" + "nativeSrc": "16095:120:18", + "nodeType": "YulIf", + "src": "16095:120:18" + }, + { + "nativeSrc": "16225:117:18", + "nodeType": "YulBlock", + "src": "16225:117:18", + "statements": [ + { + "nativeSrc": "16240:15:18", + "nodeType": "YulVariableDeclaration", + "src": "16240:15:18", + "value": { + "kind": "number", + "nativeSrc": "16254:1:18", + "nodeType": "YulLiteral", + "src": "16254:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "16244:6:18", + "nodeType": "YulTypedName", + "src": "16244:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "16269:63:18", + "nodeType": "YulAssignment", + "src": "16269:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16304:9:18", + "nodeType": "YulIdentifier", + "src": "16304:9:18" + }, + { + "name": "offset", + "nativeSrc": "16315:6:18", + "nodeType": "YulIdentifier", + "src": "16315:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16300:3:18", + "nodeType": "YulIdentifier", + "src": "16300:3:18" + }, + "nativeSrc": "16300:22:18", + "nodeType": "YulFunctionCall", + "src": "16300:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "16324:7:18", + "nodeType": "YulIdentifier", + "src": "16324:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "16279:20:18", + "nodeType": "YulIdentifier", + "src": "16279:20:18" + }, + "nativeSrc": "16279:53:18", + "nodeType": "YulFunctionCall", + "src": "16279:53:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "16269:6:18", + "nodeType": "YulIdentifier", + "src": "16269:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "16352:118:18", + "nodeType": "YulBlock", + "src": "16352:118:18", + "statements": [ + { + "nativeSrc": "16367:16:18", + "nodeType": "YulVariableDeclaration", + "src": "16367:16:18", + "value": { + "kind": "number", + "nativeSrc": "16381:2:18", + "nodeType": "YulLiteral", + "src": "16381:2:18", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "16371:6:18", + "nodeType": "YulTypedName", + "src": "16371:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "16397:63:18", + "nodeType": "YulAssignment", + "src": "16397:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16432:9:18", + "nodeType": "YulIdentifier", + "src": "16432:9:18" + }, + { + "name": "offset", + "nativeSrc": "16443:6:18", + "nodeType": "YulIdentifier", + "src": "16443:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16428:3:18", + "nodeType": "YulIdentifier", + "src": "16428:3:18" + }, + "nativeSrc": "16428:22:18", + "nodeType": "YulFunctionCall", + "src": "16428:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "16452:7:18", + "nodeType": "YulIdentifier", + "src": "16452:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "16407:20:18", + "nodeType": "YulIdentifier", + "src": "16407:20:18" + }, + "nativeSrc": "16407:53:18", + "nodeType": "YulFunctionCall", + "src": "16407:53:18" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "16397:6:18", + "nodeType": "YulIdentifier", + "src": "16397:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "16480:118:18", + "nodeType": "YulBlock", + "src": "16480:118:18", + "statements": [ + { + "nativeSrc": "16495:16:18", + "nodeType": "YulVariableDeclaration", + "src": "16495:16:18", + "value": { + "kind": "number", + "nativeSrc": "16509:2:18", + "nodeType": "YulLiteral", + "src": "16509:2:18", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "16499:6:18", + "nodeType": "YulTypedName", + "src": "16499:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "16525:63:18", + "nodeType": "YulAssignment", + "src": "16525:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16560:9:18", + "nodeType": "YulIdentifier", + "src": "16560:9:18" + }, + { + "name": "offset", + "nativeSrc": "16571:6:18", + "nodeType": "YulIdentifier", + "src": "16571:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16556:3:18", + "nodeType": "YulIdentifier", + "src": "16556:3:18" + }, + "nativeSrc": "16556:22:18", + "nodeType": "YulFunctionCall", + "src": "16556:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "16580:7:18", + "nodeType": "YulIdentifier", + "src": "16580:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "16535:20:18", + "nodeType": "YulIdentifier", + "src": "16535:20:18" + }, + "nativeSrc": "16535:53:18", + "nodeType": "YulFunctionCall", + "src": "16535:53:18" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "16525:6:18", + "nodeType": "YulIdentifier", + "src": "16525:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "16608:287:18", + "nodeType": "YulBlock", + "src": "16608:287:18", + "statements": [ + { + "nativeSrc": "16623:46:18", + "nodeType": "YulVariableDeclaration", + "src": "16623:46:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16654:9:18", + "nodeType": "YulIdentifier", + "src": "16654:9:18" + }, + { + "kind": "number", + "nativeSrc": "16665:2:18", + "nodeType": "YulLiteral", + "src": "16665:2:18", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16650:3:18", + "nodeType": "YulIdentifier", + "src": "16650:3:18" + }, + "nativeSrc": "16650:18:18", + "nodeType": "YulFunctionCall", + "src": "16650:18:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "16637:12:18", + "nodeType": "YulIdentifier", + "src": "16637:12:18" + }, + "nativeSrc": "16637:32:18", + "nodeType": "YulFunctionCall", + "src": "16637:32:18" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "16627:6:18", + "nodeType": "YulTypedName", + "src": "16627:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "16716:83:18", + "nodeType": "YulBlock", + "src": "16716:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "16718:77:18", + "nodeType": "YulIdentifier", + "src": "16718:77:18" + }, + "nativeSrc": "16718:79:18", + "nodeType": "YulFunctionCall", + "src": "16718:79:18" + }, + "nativeSrc": "16718:79:18", + "nodeType": "YulExpressionStatement", + "src": "16718:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "16688:6:18", + "nodeType": "YulIdentifier", + "src": "16688:6:18" + }, + { + "kind": "number", + "nativeSrc": "16696:18:18", + "nodeType": "YulLiteral", + "src": "16696:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "16685:2:18", + "nodeType": "YulIdentifier", + "src": "16685:2:18" + }, + "nativeSrc": "16685:30:18", + "nodeType": "YulFunctionCall", + "src": "16685:30:18" + }, + "nativeSrc": "16682:117:18", + "nodeType": "YulIf", + "src": "16682:117:18" + }, + { + "nativeSrc": "16813:72:18", + "nodeType": "YulAssignment", + "src": "16813:72:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16857:9:18", + "nodeType": "YulIdentifier", + "src": "16857:9:18" + }, + { + "name": "offset", + "nativeSrc": "16868:6:18", + "nodeType": "YulIdentifier", + "src": "16868:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16853:3:18", + "nodeType": "YulIdentifier", + "src": "16853:3:18" + }, + "nativeSrc": "16853:22:18", + "nodeType": "YulFunctionCall", + "src": "16853:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "16877:7:18", + "nodeType": "YulIdentifier", + "src": "16877:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "16823:29:18", + "nodeType": "YulIdentifier", + "src": "16823:29:18" + }, + "nativeSrc": "16823:62:18", + "nodeType": "YulFunctionCall", + "src": "16823:62:18" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "16813:6:18", + "nodeType": "YulIdentifier", + "src": "16813:6:18" + } + ] + } + ] } ] }, - "name": "store_literal_in_memory_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972", - "nativeSrc": "25406:163:18", + "name": "abi_decode_tuple_t_addresst_uint256t_uint256t_bytes_memory_ptr", + "nativeSrc": "15959:943:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "memPtr", - "nativeSrc": "25504:6:18", + "name": "headStart", + "nativeSrc": "16031:9:18", + "nodeType": "YulTypedName", + "src": "16031:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "16042:7:18", + "nodeType": "YulTypedName", + "src": "16042:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "16054:6:18", + "nodeType": "YulTypedName", + "src": "16054:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "16062:6:18", + "nodeType": "YulTypedName", + "src": "16062:6:18", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "16070:6:18", + "nodeType": "YulTypedName", + "src": "16070:6:18", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "16078:6:18", "nodeType": "YulTypedName", - "src": "25504:6:18", + "src": "16078:6:18", "type": "" } ], - "src": "25406:163:18" + "src": "15959:943:18" }, { "body": { - "nativeSrc": "25743:252:18", + "nativeSrc": "16975:241:18", "nodeType": "YulBlock", - "src": "25743:252:18", + "src": "16975:241:18", "statements": [ { - "nativeSrc": "25757:91:18", - "nodeType": "YulAssignment", - "src": "25757:91:18", - "value": { + "body": { + "nativeSrc": "17080:22:18", + "nodeType": "YulBlock", + "src": "17080:22:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "17082:16:18", + "nodeType": "YulIdentifier", + "src": "17082:16:18" + }, + "nativeSrc": "17082:18:18", + "nodeType": "YulFunctionCall", + "src": "17082:18:18" + }, + "nativeSrc": "17082:18:18", + "nodeType": "YulExpressionStatement", + "src": "17082:18:18" + } + ] + }, + "condition": { "arguments": [ { - "name": "pos", - "nativeSrc": "25841:3:18", + "name": "length", + "nativeSrc": "17052:6:18", "nodeType": "YulIdentifier", - "src": "25841:3:18" + "src": "17052:6:18" }, { "kind": "number", - "nativeSrc": "25846:1:18", + "nativeSrc": "17060:18:18", "nodeType": "YulLiteral", - "src": "25846:1:18", + "src": "17060:18:18", "type": "", - "value": "5" + "value": "0xffffffffffffffff" } ], "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "25764:76:18", + "name": "gt", + "nativeSrc": "17049:2:18", "nodeType": "YulIdentifier", - "src": "25764:76:18" + "src": "17049:2:18" }, - "nativeSrc": "25764:84:18", + "nativeSrc": "17049:30:18", "nodeType": "YulFunctionCall", - "src": "25764:84:18" + "src": "17049:30:18" }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "25757:3:18", - "nodeType": "YulIdentifier", - "src": "25757:3:18" - } - ] + "nativeSrc": "17046:56:18", + "nodeType": "YulIf", + "src": "17046:56:18" }, { - "expression": { + "nativeSrc": "17112:37:18", + "nodeType": "YulAssignment", + "src": "17112:37:18", + "value": { "arguments": [ { - "name": "pos", - "nativeSrc": "25950:3:18", + "name": "length", + "nativeSrc": "17142:6:18", "nodeType": "YulIdentifier", - "src": "25950:3:18" + "src": "17142:6:18" } ], "functionName": { - "name": "store_literal_in_memory_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972", - "nativeSrc": "25861:88:18", + "name": "round_up_to_mul_of_32", + "nativeSrc": "17120:21:18", "nodeType": "YulIdentifier", - "src": "25861:88:18" + "src": "17120:21:18" }, - "nativeSrc": "25861:93:18", + "nativeSrc": "17120:29:18", "nodeType": "YulFunctionCall", - "src": "25861:93:18" + "src": "17120:29:18" }, - "nativeSrc": "25861:93:18", - "nodeType": "YulExpressionStatement", - "src": "25861:93:18" + "variableNames": [ + { + "name": "size", + "nativeSrc": "17112:4:18", + "nodeType": "YulIdentifier", + "src": "17112:4:18" + } + ] }, { - "nativeSrc": "25967:18:18", + "nativeSrc": "17186:23:18", "nodeType": "YulAssignment", - "src": "25967:18:18", + "src": "17186:23:18", "value": { "arguments": [ { - "name": "pos", - "nativeSrc": "25978:3:18", + "name": "size", + "nativeSrc": "17198:4:18", "nodeType": "YulIdentifier", - "src": "25978:3:18" + "src": "17198:4:18" }, { "kind": "number", - "nativeSrc": "25983:1:18", + "nativeSrc": "17204:4:18", "nodeType": "YulLiteral", - "src": "25983:1:18", + "src": "17204:4:18", "type": "", - "value": "5" + "value": "0x20" } ], "functionName": { "name": "add", - "nativeSrc": "25974:3:18", + "nativeSrc": "17194:3:18", "nodeType": "YulIdentifier", - "src": "25974:3:18" + "src": "17194:3:18" }, - "nativeSrc": "25974:11:18", + "nativeSrc": "17194:15:18", "nodeType": "YulFunctionCall", - "src": "25974:11:18" + "src": "17194:15:18" }, "variableNames": [ { - "name": "end", - "nativeSrc": "25967:3:18", + "name": "size", + "nativeSrc": "17186:4:18", "nodeType": "YulIdentifier", - "src": "25967:3:18" + "src": "17186:4:18" } ] } ] }, - "name": "abi_encode_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "25579:416:18", + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "16908:308:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", - "nativeSrc": "25731:3:18", + "name": "length", + "nativeSrc": "16959:6:18", "nodeType": "YulTypedName", - "src": "25731:3:18", + "src": "16959:6:18", "type": "" } ], "returnVariables": [ { - "name": "end", - "nativeSrc": "25739:3:18", + "name": "size", + "nativeSrc": "16970:4:18", "nodeType": "YulTypedName", - "src": "25739:3:18", + "src": "16970:4:18", "type": "" } ], - "src": "25579:416:18" + "src": "16908:308:18" }, { "body": { - "nativeSrc": "26340:486:18", + "nativeSrc": "17306:341:18", "nodeType": "YulBlock", - "src": "26340:486:18", + "src": "17306:341:18", "statements": [ { - "nativeSrc": "26355:155:18", + "nativeSrc": "17316:75:18", "nodeType": "YulAssignment", - "src": "26355:155:18", + "src": "17316:75:18", "value": { "arguments": [ { - "name": "pos", - "nativeSrc": "26506:3:18", - "nodeType": "YulIdentifier", - "src": "26506:3:18" + "arguments": [ + { + "name": "length", + "nativeSrc": "17383:6:18", + "nodeType": "YulIdentifier", + "src": "17383:6:18" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "17341:41:18", + "nodeType": "YulIdentifier", + "src": "17341:41:18" + }, + "nativeSrc": "17341:49:18", + "nodeType": "YulFunctionCall", + "src": "17341:49:18" } ], "functionName": { - "name": "abi_encode_t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "26362:142:18", + "name": "allocate_memory", + "nativeSrc": "17325:15:18", "nodeType": "YulIdentifier", - "src": "26362:142:18" + "src": "17325:15:18" }, - "nativeSrc": "26362:148:18", + "nativeSrc": "17325:66:18", "nodeType": "YulFunctionCall", - "src": "26362:148:18" + "src": "17325:66:18" }, "variableNames": [ { - "name": "pos", - "nativeSrc": "26355:3:18", + "name": "array", + "nativeSrc": "17316:5:18", "nodeType": "YulIdentifier", - "src": "26355:3:18" + "src": "17316:5:18" } ] }, { - "nativeSrc": "26524:99:18", - "nodeType": "YulAssignment", - "src": "26524:99:18", - "value": { + "expression": { "arguments": [ { - "name": "value0", - "nativeSrc": "26610:6:18", + "name": "array", + "nativeSrc": "17407:5:18", "nodeType": "YulIdentifier", - "src": "26610:6:18" + "src": "17407:5:18" }, { - "name": "pos", - "nativeSrc": "26619:3:18", + "name": "length", + "nativeSrc": "17414:6:18", "nodeType": "YulIdentifier", - "src": "26619:3:18" + "src": "17414:6:18" } ], "functionName": { - "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "26531:78:18", + "name": "mstore", + "nativeSrc": "17400:6:18", "nodeType": "YulIdentifier", - "src": "26531:78:18" + "src": "17400:6:18" }, - "nativeSrc": "26531:92:18", + "nativeSrc": "17400:21:18", "nodeType": "YulFunctionCall", - "src": "26531:92:18" + "src": "17400:21:18" }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "26524:3:18", - "nodeType": "YulIdentifier", - "src": "26524:3:18" - } - ] + "nativeSrc": "17400:21:18", + "nodeType": "YulExpressionStatement", + "src": "17400:21:18" }, { - "nativeSrc": "26637:155:18", - "nodeType": "YulAssignment", - "src": "26637:155:18", + "nativeSrc": "17430:27:18", + "nodeType": "YulVariableDeclaration", + "src": "17430:27:18", "value": { "arguments": [ { - "name": "pos", - "nativeSrc": "26788:3:18", + "name": "array", + "nativeSrc": "17445:5:18", "nodeType": "YulIdentifier", - "src": "26788:3:18" + "src": "17445:5:18" + }, + { + "kind": "number", + "nativeSrc": "17452:4:18", + "nodeType": "YulLiteral", + "src": "17452:4:18", + "type": "", + "value": "0x20" } ], "functionName": { - "name": "abi_encode_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "26644:142:18", + "name": "add", + "nativeSrc": "17441:3:18", "nodeType": "YulIdentifier", - "src": "26644:142:18" + "src": "17441:3:18" }, - "nativeSrc": "26644:148:18", + "nativeSrc": "17441:16:18", "nodeType": "YulFunctionCall", - "src": "26644:148:18" + "src": "17441:16:18" }, - "variableNames": [ + "variables": [ { - "name": "pos", - "nativeSrc": "26637:3:18", - "nodeType": "YulIdentifier", - "src": "26637:3:18" + "name": "dst", + "nativeSrc": "17434:3:18", + "nodeType": "YulTypedName", + "src": "17434:3:18", + "type": "" } ] }, { - "nativeSrc": "26806:10:18", - "nodeType": "YulAssignment", - "src": "26806:10:18", - "value": { - "name": "pos", - "nativeSrc": "26813:3:18", - "nodeType": "YulIdentifier", - "src": "26813:3:18" + "body": { + "nativeSrc": "17495:83:18", + "nodeType": "YulBlock", + "src": "17495:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "17497:77:18", + "nodeType": "YulIdentifier", + "src": "17497:77:18" + }, + "nativeSrc": "17497:79:18", + "nodeType": "YulFunctionCall", + "src": "17497:79:18" + }, + "nativeSrc": "17497:79:18", + "nodeType": "YulExpressionStatement", + "src": "17497:79:18" + } + ] }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "26806:3:18", + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "17476:3:18", + "nodeType": "YulIdentifier", + "src": "17476:3:18" + }, + { + "name": "length", + "nativeSrc": "17481:6:18", + "nodeType": "YulIdentifier", + "src": "17481:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17472:3:18", + "nodeType": "YulIdentifier", + "src": "17472:3:18" + }, + "nativeSrc": "17472:16:18", + "nodeType": "YulFunctionCall", + "src": "17472:16:18" + }, + { + "name": "end", + "nativeSrc": "17490:3:18", + "nodeType": "YulIdentifier", + "src": "17490:3:18" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "17469:2:18", "nodeType": "YulIdentifier", - "src": "26806:3:18" - } - ] + "src": "17469:2:18" + }, + "nativeSrc": "17469:25:18", + "nodeType": "YulFunctionCall", + "src": "17469:25:18" + }, + "nativeSrc": "17466:112:18", + "nodeType": "YulIf", + "src": "17466:112:18" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nativeSrc": "17624:3:18", + "nodeType": "YulIdentifier", + "src": "17624:3:18" + }, + { + "name": "dst", + "nativeSrc": "17629:3:18", + "nodeType": "YulIdentifier", + "src": "17629:3:18" + }, + { + "name": "length", + "nativeSrc": "17634:6:18", + "nodeType": "YulIdentifier", + "src": "17634:6:18" + } + ], + "functionName": { + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "17587:36:18", + "nodeType": "YulIdentifier", + "src": "17587:36:18" + }, + "nativeSrc": "17587:54:18", + "nodeType": "YulFunctionCall", + "src": "17587:54:18" + }, + "nativeSrc": "17587:54:18", + "nodeType": "YulExpressionStatement", + "src": "17587:54:18" } ] }, - "name": "abi_encode_tuple_packed_t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe_t_string_storage_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", - "nativeSrc": "26005:821:18", + "name": "abi_decode_available_length_t_string_memory_ptr", + "nativeSrc": "17222:425:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", - "nativeSrc": "26319:3:18", + "name": "src", + "nativeSrc": "17279:3:18", "nodeType": "YulTypedName", - "src": "26319:3:18", + "src": "17279:3:18", "type": "" }, { - "name": "value0", - "nativeSrc": "26325:6:18", + "name": "length", + "nativeSrc": "17284:6:18", "nodeType": "YulTypedName", - "src": "26325:6:18", + "src": "17284:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "17292:3:18", + "nodeType": "YulTypedName", + "src": "17292:3:18", "type": "" } ], "returnVariables": [ { - "name": "end", - "nativeSrc": "26336:3:18", + "name": "array", + "nativeSrc": "17300:5:18", "nodeType": "YulTypedName", - "src": "26336:3:18", + "src": "17300:5:18", "type": "" } ], - "src": "26005:821:18" + "src": "17222:425:18" }, { "body": { - "nativeSrc": "26880:57:18", + "nativeSrc": "17729:278:18", "nodeType": "YulBlock", - "src": "26880:57:18", + "src": "17729:278:18", "statements": [ { - "nativeSrc": "26894:33:18", + "body": { + "nativeSrc": "17778:83:18", + "nodeType": "YulBlock", + "src": "17778:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "17780:77:18", + "nodeType": "YulIdentifier", + "src": "17780:77:18" + }, + "nativeSrc": "17780:79:18", + "nodeType": "YulFunctionCall", + "src": "17780:79:18" + }, + "nativeSrc": "17780:79:18", + "nodeType": "YulExpressionStatement", + "src": "17780:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "17757:6:18", + "nodeType": "YulIdentifier", + "src": "17757:6:18" + }, + { + "kind": "number", + "nativeSrc": "17765:4:18", + "nodeType": "YulLiteral", + "src": "17765:4:18", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17753:3:18", + "nodeType": "YulIdentifier", + "src": "17753:3:18" + }, + "nativeSrc": "17753:17:18", + "nodeType": "YulFunctionCall", + "src": "17753:17:18" + }, + { + "name": "end", + "nativeSrc": "17772:3:18", + "nodeType": "YulIdentifier", + "src": "17772:3:18" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "17749:3:18", + "nodeType": "YulIdentifier", + "src": "17749:3:18" + }, + "nativeSrc": "17749:27:18", + "nodeType": "YulFunctionCall", + "src": "17749:27:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "17742:6:18", + "nodeType": "YulIdentifier", + "src": "17742:6:18" + }, + "nativeSrc": "17742:35:18", + "nodeType": "YulFunctionCall", + "src": "17742:35:18" + }, + "nativeSrc": "17739:122:18", + "nodeType": "YulIf", + "src": "17739:122:18" + }, + { + "nativeSrc": "17870:34:18", + "nodeType": "YulVariableDeclaration", + "src": "17870:34:18", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "17897:6:18", + "nodeType": "YulIdentifier", + "src": "17897:6:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "17884:12:18", + "nodeType": "YulIdentifier", + "src": "17884:12:18" + }, + "nativeSrc": "17884:20:18", + "nodeType": "YulFunctionCall", + "src": "17884:20:18" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "17874:6:18", + "nodeType": "YulTypedName", + "src": "17874:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "17913:88:18", "nodeType": "YulAssignment", - "src": "26894:33:18", + "src": "17913:88:18", "value": { "arguments": [ { "arguments": [ { - "name": "value", - "nativeSrc": "26912:5:18", + "name": "offset", + "nativeSrc": "17974:6:18", "nodeType": "YulIdentifier", - "src": "26912:5:18" + "src": "17974:6:18" }, { "kind": "number", - "nativeSrc": "26919:2:18", + "nativeSrc": "17982:4:18", "nodeType": "YulLiteral", - "src": "26919:2:18", + "src": "17982:4:18", "type": "", - "value": "31" + "value": "0x20" } ], "functionName": { "name": "add", - "nativeSrc": "26908:3:18", + "nativeSrc": "17970:3:18", "nodeType": "YulIdentifier", - "src": "26908:3:18" + "src": "17970:3:18" }, - "nativeSrc": "26908:14:18", + "nativeSrc": "17970:17:18", "nodeType": "YulFunctionCall", - "src": "26908:14:18" + "src": "17970:17:18" }, { - "kind": "number", - "nativeSrc": "26924:2:18", - "nodeType": "YulLiteral", - "src": "26924:2:18", - "type": "", - "value": "32" + "name": "length", + "nativeSrc": "17989:6:18", + "nodeType": "YulIdentifier", + "src": "17989:6:18" + }, + { + "name": "end", + "nativeSrc": "17997:3:18", + "nodeType": "YulIdentifier", + "src": "17997:3:18" } ], "functionName": { - "name": "div", - "nativeSrc": "26904:3:18", + "name": "abi_decode_available_length_t_string_memory_ptr", + "nativeSrc": "17922:47:18", "nodeType": "YulIdentifier", - "src": "26904:3:18" + "src": "17922:47:18" }, - "nativeSrc": "26904:23:18", + "nativeSrc": "17922:79:18", "nodeType": "YulFunctionCall", - "src": "26904:23:18" + "src": "17922:79:18" }, "variableNames": [ { - "name": "result", - "nativeSrc": "26894:6:18", + "name": "array", + "nativeSrc": "17913:5:18", "nodeType": "YulIdentifier", - "src": "26894:6:18" + "src": "17913:5:18" } ] } ] }, - "name": "divide_by_32_ceil", - "nativeSrc": "26836:101:18", + "name": "abi_decode_t_string_memory_ptr", + "nativeSrc": "17667:340:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", - "nativeSrc": "26863:5:18", + "name": "offset", + "nativeSrc": "17707:6:18", "nodeType": "YulTypedName", - "src": "26863:5:18", + "src": "17707:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "17715:3:18", + "nodeType": "YulTypedName", + "src": "17715:3:18", "type": "" } ], "returnVariables": [ { - "name": "result", - "nativeSrc": "26873:6:18", + "name": "array", + "nativeSrc": "17723:5:18", "nodeType": "YulTypedName", - "src": "26873:6:18", + "src": "17723:5:18", "type": "" } ], - "src": "26836:101:18" + "src": "17667:340:18" }, { "body": { - "nativeSrc": "27000:66:18", + "nativeSrc": "18106:561:18", "nodeType": "YulBlock", - "src": "27000:66:18", + "src": "18106:561:18", "statements": [ { - "nativeSrc": "27014:41:18", - "nodeType": "YulAssignment", - "src": "27014:41:18", - "value": { + "body": { + "nativeSrc": "18152:83:18", + "nodeType": "YulBlock", + "src": "18152:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "18154:77:18", + "nodeType": "YulIdentifier", + "src": "18154:77:18" + }, + "nativeSrc": "18154:79:18", + "nodeType": "YulFunctionCall", + "src": "18154:79:18" + }, + "nativeSrc": "18154:79:18", + "nodeType": "YulExpressionStatement", + "src": "18154:79:18" + } + ] + }, + "condition": { "arguments": [ { - "name": "bits", - "nativeSrc": "27043:4:18", - "nodeType": "YulIdentifier", - "src": "27043:4:18" + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "18127:7:18", + "nodeType": "YulIdentifier", + "src": "18127:7:18" + }, + { + "name": "headStart", + "nativeSrc": "18136:9:18", + "nodeType": "YulIdentifier", + "src": "18136:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "18123:3:18", + "nodeType": "YulIdentifier", + "src": "18123:3:18" + }, + "nativeSrc": "18123:23:18", + "nodeType": "YulFunctionCall", + "src": "18123:23:18" + }, + { + "kind": "number", + "nativeSrc": "18148:2:18", + "nodeType": "YulLiteral", + "src": "18148:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "18119:3:18", + "nodeType": "YulIdentifier", + "src": "18119:3:18" + }, + "nativeSrc": "18119:32:18", + "nodeType": "YulFunctionCall", + "src": "18119:32:18" + }, + "nativeSrc": "18116:119:18", + "nodeType": "YulIf", + "src": "18116:119:18" + }, + { + "nativeSrc": "18245:117:18", + "nodeType": "YulBlock", + "src": "18245:117:18", + "statements": [ + { + "nativeSrc": "18260:15:18", + "nodeType": "YulVariableDeclaration", + "src": "18260:15:18", + "value": { + "kind": "number", + "nativeSrc": "18274:1:18", + "nodeType": "YulLiteral", + "src": "18274:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "18264:6:18", + "nodeType": "YulTypedName", + "src": "18264:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "18289:63:18", + "nodeType": "YulAssignment", + "src": "18289:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18324:9:18", + "nodeType": "YulIdentifier", + "src": "18324:9:18" + }, + { + "name": "offset", + "nativeSrc": "18335:6:18", + "nodeType": "YulIdentifier", + "src": "18335:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18320:3:18", + "nodeType": "YulIdentifier", + "src": "18320:3:18" + }, + "nativeSrc": "18320:22:18", + "nodeType": "YulFunctionCall", + "src": "18320:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "18344:7:18", + "nodeType": "YulIdentifier", + "src": "18344:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "18299:20:18", + "nodeType": "YulIdentifier", + "src": "18299:20:18" + }, + "nativeSrc": "18299:53:18", + "nodeType": "YulFunctionCall", + "src": "18299:53:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "18289:6:18", + "nodeType": "YulIdentifier", + "src": "18289:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "18372:288:18", + "nodeType": "YulBlock", + "src": "18372:288:18", + "statements": [ + { + "nativeSrc": "18387:46:18", + "nodeType": "YulVariableDeclaration", + "src": "18387:46:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18418:9:18", + "nodeType": "YulIdentifier", + "src": "18418:9:18" + }, + { + "kind": "number", + "nativeSrc": "18429:2:18", + "nodeType": "YulLiteral", + "src": "18429:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18414:3:18", + "nodeType": "YulIdentifier", + "src": "18414:3:18" + }, + "nativeSrc": "18414:18:18", + "nodeType": "YulFunctionCall", + "src": "18414:18:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "18401:12:18", + "nodeType": "YulIdentifier", + "src": "18401:12:18" + }, + "nativeSrc": "18401:32:18", + "nodeType": "YulFunctionCall", + "src": "18401:32:18" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "18391:6:18", + "nodeType": "YulTypedName", + "src": "18391:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "18480:83:18", + "nodeType": "YulBlock", + "src": "18480:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "18482:77:18", + "nodeType": "YulIdentifier", + "src": "18482:77:18" + }, + "nativeSrc": "18482:79:18", + "nodeType": "YulFunctionCall", + "src": "18482:79:18" + }, + "nativeSrc": "18482:79:18", + "nodeType": "YulExpressionStatement", + "src": "18482:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "18452:6:18", + "nodeType": "YulIdentifier", + "src": "18452:6:18" + }, + { + "kind": "number", + "nativeSrc": "18460:18:18", + "nodeType": "YulLiteral", + "src": "18460:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "18449:2:18", + "nodeType": "YulIdentifier", + "src": "18449:2:18" + }, + "nativeSrc": "18449:30:18", + "nodeType": "YulFunctionCall", + "src": "18449:30:18" + }, + "nativeSrc": "18446:117:18", + "nodeType": "YulIf", + "src": "18446:117:18" + }, + { + "nativeSrc": "18577:73:18", + "nodeType": "YulAssignment", + "src": "18577:73:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18622:9:18", + "nodeType": "YulIdentifier", + "src": "18622:9:18" + }, + { + "name": "offset", + "nativeSrc": "18633:6:18", + "nodeType": "YulIdentifier", + "src": "18633:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18618:3:18", + "nodeType": "YulIdentifier", + "src": "18618:3:18" + }, + "nativeSrc": "18618:22:18", + "nodeType": "YulFunctionCall", + "src": "18618:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "18642:7:18", + "nodeType": "YulIdentifier", + "src": "18642:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nativeSrc": "18587:30:18", + "nodeType": "YulIdentifier", + "src": "18587:30:18" + }, + "nativeSrc": "18587:63:18", + "nodeType": "YulFunctionCall", + "src": "18587:63:18" }, - { - "name": "value", - "nativeSrc": "27049:5:18", - "nodeType": "YulIdentifier", - "src": "27049:5:18" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "27039:3:18", - "nodeType": "YulIdentifier", - "src": "27039:3:18" - }, - "nativeSrc": "27039:16:18", - "nodeType": "YulFunctionCall", - "src": "27039:16:18" - }, - "variableNames": [ - { - "name": "newValue", - "nativeSrc": "27014:8:18", - "nodeType": "YulIdentifier", - "src": "27014:8:18" + "variableNames": [ + { + "name": "value1", + "nativeSrc": "18577:6:18", + "nodeType": "YulIdentifier", + "src": "18577:6:18" + } + ] } ] } ] }, - "name": "shift_left_dynamic", - "nativeSrc": "26947:119:18", + "name": "abi_decode_tuple_t_uint256t_string_memory_ptr", + "nativeSrc": "18013:654:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "bits", - "nativeSrc": "26975:4:18", + "name": "headStart", + "nativeSrc": "18068:9:18", "nodeType": "YulTypedName", - "src": "26975:4:18", + "src": "18068:9:18", "type": "" }, { - "name": "value", - "nativeSrc": "26981:5:18", + "name": "dataEnd", + "nativeSrc": "18079:7:18", "nodeType": "YulTypedName", - "src": "26981:5:18", + "src": "18079:7:18", "type": "" } ], "returnVariables": [ { - "name": "newValue", - "nativeSrc": "26991:8:18", + "name": "value0", + "nativeSrc": "18091:6:18", + "nodeType": "YulTypedName", + "src": "18091:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "18099:6:18", "nodeType": "YulTypedName", - "src": "26991:8:18", + "src": "18099:6:18", "type": "" } ], - "src": "26947:119:18" + "src": "18013:654:18" }, { "body": { - "nativeSrc": "27152:341:18", + "nativeSrc": "18749:433:18", "nodeType": "YulBlock", - "src": "27152:341:18", + "src": "18749:433:18", "statements": [ { - "nativeSrc": "27166:35:18", - "nodeType": "YulVariableDeclaration", - "src": "27166:35:18", - "value": { - "arguments": [ - { - "name": "shiftBytes", - "nativeSrc": "27187:10:18", - "nodeType": "YulIdentifier", - "src": "27187:10:18" - }, + "body": { + "nativeSrc": "18795:83:18", + "nodeType": "YulBlock", + "src": "18795:83:18", + "statements": [ { - "kind": "number", - "nativeSrc": "27199:1:18", - "nodeType": "YulLiteral", - "src": "27199:1:18", - "type": "", - "value": "8" + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "18797:77:18", + "nodeType": "YulIdentifier", + "src": "18797:77:18" + }, + "nativeSrc": "18797:79:18", + "nodeType": "YulFunctionCall", + "src": "18797:79:18" + }, + "nativeSrc": "18797:79:18", + "nodeType": "YulExpressionStatement", + "src": "18797:79:18" } - ], - "functionName": { - "name": "mul", - "nativeSrc": "27183:3:18", - "nodeType": "YulIdentifier", - "src": "27183:3:18" - }, - "nativeSrc": "27183:18:18", - "nodeType": "YulFunctionCall", - "src": "27183:18:18" + ] }, - "variables": [ - { - "name": "shiftBits", - "nativeSrc": "27170:9:18", - "nodeType": "YulTypedName", - "src": "27170:9:18", - "type": "" - } - ] - }, - { - "nativeSrc": "27214:109:18", - "nodeType": "YulVariableDeclaration", - "src": "27214:109:18", - "value": { + "condition": { "arguments": [ { - "name": "shiftBits", - "nativeSrc": "27245:9:18", - "nodeType": "YulIdentifier", - "src": "27245:9:18" + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "18770:7:18", + "nodeType": "YulIdentifier", + "src": "18770:7:18" + }, + { + "name": "headStart", + "nativeSrc": "18779:9:18", + "nodeType": "YulIdentifier", + "src": "18779:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "18766:3:18", + "nodeType": "YulIdentifier", + "src": "18766:3:18" + }, + "nativeSrc": "18766:23:18", + "nodeType": "YulFunctionCall", + "src": "18766:23:18" }, { "kind": "number", - "nativeSrc": "27256:66:18", + "nativeSrc": "18791:2:18", "nodeType": "YulLiteral", - "src": "27256:66:18", + "src": "18791:2:18", "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + "value": "32" } ], "functionName": { - "name": "shift_left_dynamic", - "nativeSrc": "27226:18:18", + "name": "slt", + "nativeSrc": "18762:3:18", "nodeType": "YulIdentifier", - "src": "27226:18:18" + "src": "18762:3:18" }, - "nativeSrc": "27226:97:18", + "nativeSrc": "18762:32:18", "nodeType": "YulFunctionCall", - "src": "27226:97:18" + "src": "18762:32:18" }, - "variables": [ - { - "name": "mask", - "nativeSrc": "27218:4:18", - "nodeType": "YulTypedName", - "src": "27218:4:18", - "type": "" - } - ] + "nativeSrc": "18759:119:18", + "nodeType": "YulIf", + "src": "18759:119:18" }, { - "nativeSrc": "27336:51:18", - "nodeType": "YulAssignment", - "src": "27336:51:18", - "value": { - "arguments": [ - { - "name": "shiftBits", - "nativeSrc": "27367:9:18", - "nodeType": "YulIdentifier", - "src": "27367:9:18" - }, - { - "name": "toInsert", - "nativeSrc": "27378:8:18", - "nodeType": "YulIdentifier", - "src": "27378:8:18" - } - ], - "functionName": { - "name": "shift_left_dynamic", - "nativeSrc": "27348:18:18", - "nodeType": "YulIdentifier", - "src": "27348:18:18" - }, - "nativeSrc": "27348:39:18", - "nodeType": "YulFunctionCall", - "src": "27348:39:18" - }, - "variableNames": [ + "nativeSrc": "18888:287:18", + "nodeType": "YulBlock", + "src": "18888:287:18", + "statements": [ { - "name": "toInsert", - "nativeSrc": "27336:8:18", - "nodeType": "YulIdentifier", - "src": "27336:8:18" - } - ] - }, - { - "nativeSrc": "27400:30:18", - "nodeType": "YulAssignment", - "src": "27400:30:18", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "27413:5:18", - "nodeType": "YulIdentifier", - "src": "27413:5:18" - }, - { + "nativeSrc": "18903:45:18", + "nodeType": "YulVariableDeclaration", + "src": "18903:45:18", + "value": { "arguments": [ { - "name": "mask", - "nativeSrc": "27424:4:18", - "nodeType": "YulIdentifier", - "src": "27424:4:18" + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18934:9:18", + "nodeType": "YulIdentifier", + "src": "18934:9:18" + }, + { + "kind": "number", + "nativeSrc": "18945:1:18", + "nodeType": "YulLiteral", + "src": "18945:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18930:3:18", + "nodeType": "YulIdentifier", + "src": "18930:3:18" + }, + "nativeSrc": "18930:17:18", + "nodeType": "YulFunctionCall", + "src": "18930:17:18" } ], "functionName": { - "name": "not", - "nativeSrc": "27420:3:18", + "name": "calldataload", + "nativeSrc": "18917:12:18", "nodeType": "YulIdentifier", - "src": "27420:3:18" + "src": "18917:12:18" }, - "nativeSrc": "27420:9:18", + "nativeSrc": "18917:31:18", "nodeType": "YulFunctionCall", - "src": "27420:9:18" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "27409:3:18", - "nodeType": "YulIdentifier", - "src": "27409:3:18" + "src": "18917:31:18" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "18907:6:18", + "nodeType": "YulTypedName", + "src": "18907:6:18", + "type": "" + } + ] }, - "nativeSrc": "27409:21:18", - "nodeType": "YulFunctionCall", - "src": "27409:21:18" - }, - "variableNames": [ { - "name": "value", - "nativeSrc": "27400:5:18", - "nodeType": "YulIdentifier", - "src": "27400:5:18" - } - ] - }, - { - "nativeSrc": "27443:40:18", - "nodeType": "YulAssignment", - "src": "27443:40:18", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "27456:5:18", - "nodeType": "YulIdentifier", - "src": "27456:5:18" + "body": { + "nativeSrc": "18995:83:18", + "nodeType": "YulBlock", + "src": "18995:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "18997:77:18", + "nodeType": "YulIdentifier", + "src": "18997:77:18" + }, + "nativeSrc": "18997:79:18", + "nodeType": "YulFunctionCall", + "src": "18997:79:18" + }, + "nativeSrc": "18997:79:18", + "nodeType": "YulExpressionStatement", + "src": "18997:79:18" + } + ] }, - { + "condition": { "arguments": [ { - "name": "toInsert", - "nativeSrc": "27467:8:18", + "name": "offset", + "nativeSrc": "18967:6:18", "nodeType": "YulIdentifier", - "src": "27467:8:18" + "src": "18967:6:18" }, { - "name": "mask", - "nativeSrc": "27477:4:18", - "nodeType": "YulIdentifier", - "src": "27477:4:18" + "kind": "number", + "nativeSrc": "18975:18:18", + "nodeType": "YulLiteral", + "src": "18975:18:18", + "type": "", + "value": "0xffffffffffffffff" } ], "functionName": { - "name": "and", - "nativeSrc": "27463:3:18", + "name": "gt", + "nativeSrc": "18964:2:18", "nodeType": "YulIdentifier", - "src": "27463:3:18" + "src": "18964:2:18" }, - "nativeSrc": "27463:19:18", + "nativeSrc": "18964:30:18", "nodeType": "YulFunctionCall", - "src": "27463:19:18" - } - ], - "functionName": { - "name": "or", - "nativeSrc": "27453:2:18", - "nodeType": "YulIdentifier", - "src": "27453:2:18" + "src": "18964:30:18" + }, + "nativeSrc": "18961:117:18", + "nodeType": "YulIf", + "src": "18961:117:18" }, - "nativeSrc": "27453:30:18", - "nodeType": "YulFunctionCall", - "src": "27453:30:18" - }, - "variableNames": [ - { - "name": "result", - "nativeSrc": "27443:6:18", - "nodeType": "YulIdentifier", - "src": "27443:6:18" - } - ] - } - ] - }, - "name": "update_byte_slice_dynamic32", - "nativeSrc": "27076:417:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "27113:5:18", - "nodeType": "YulTypedName", - "src": "27113:5:18", - "type": "" - }, - { - "name": "shiftBytes", - "nativeSrc": "27120:10:18", - "nodeType": "YulTypedName", - "src": "27120:10:18", - "type": "" - }, - { - "name": "toInsert", - "nativeSrc": "27132:8:18", - "nodeType": "YulTypedName", - "src": "27132:8:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "result", - "nativeSrc": "27145:6:18", - "nodeType": "YulTypedName", - "src": "27145:6:18", - "type": "" - } - ], - "src": "27076:417:18" - }, - { - "body": { - "nativeSrc": "27535:36:18", - "nodeType": "YulBlock", - "src": "27535:36:18", - "statements": [ - { - "nativeSrc": "27549:12:18", - "nodeType": "YulAssignment", - "src": "27549:12:18", - "value": { - "name": "value", - "nativeSrc": "27556:5:18", - "nodeType": "YulIdentifier", - "src": "27556:5:18" - }, - "variableNames": [ { - "name": "ret", - "nativeSrc": "27549:3:18", - "nodeType": "YulIdentifier", - "src": "27549:3:18" - } - ] - } - ] - }, - "name": "identity", - "nativeSrc": "27503:68:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "27521:5:18", - "nodeType": "YulTypedName", - "src": "27521:5:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "ret", - "nativeSrc": "27531:3:18", - "nodeType": "YulTypedName", - "src": "27531:3:18", - "type": "" - } - ], - "src": "27503:68:18" - }, - { - "body": { - "nativeSrc": "27641:90:18", - "nodeType": "YulBlock", - "src": "27641:90:18", - "statements": [ - { - "nativeSrc": "27655:66:18", - "nodeType": "YulAssignment", - "src": "27655:66:18", - "value": { - "arguments": [ - { + "nativeSrc": "19092:73:18", + "nodeType": "YulAssignment", + "src": "19092:73:18", + "value": { "arguments": [ { "arguments": [ { - "name": "value", - "nativeSrc": "27713:5:18", + "name": "headStart", + "nativeSrc": "19137:9:18", + "nodeType": "YulIdentifier", + "src": "19137:9:18" + }, + { + "name": "offset", + "nativeSrc": "19148:6:18", "nodeType": "YulIdentifier", - "src": "27713:5:18" + "src": "19148:6:18" } ], "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "27695:17:18", + "name": "add", + "nativeSrc": "19133:3:18", "nodeType": "YulIdentifier", - "src": "27695:17:18" + "src": "19133:3:18" }, - "nativeSrc": "27695:24:18", + "nativeSrc": "19133:22:18", "nodeType": "YulFunctionCall", - "src": "27695:24:18" + "src": "19133:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "19157:7:18", + "nodeType": "YulIdentifier", + "src": "19157:7:18" } ], "functionName": { - "name": "identity", - "nativeSrc": "27686:8:18", + "name": "abi_decode_t_string_memory_ptr", + "nativeSrc": "19102:30:18", "nodeType": "YulIdentifier", - "src": "27686:8:18" + "src": "19102:30:18" }, - "nativeSrc": "27686:34:18", + "nativeSrc": "19102:63:18", "nodeType": "YulFunctionCall", - "src": "27686:34:18" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "27668:17:18", - "nodeType": "YulIdentifier", - "src": "27668:17:18" - }, - "nativeSrc": "27668:53:18", - "nodeType": "YulFunctionCall", - "src": "27668:53:18" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "27655:9:18", - "nodeType": "YulIdentifier", - "src": "27655:9:18" + "src": "19102:63:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "19092:6:18", + "nodeType": "YulIdentifier", + "src": "19092:6:18" + } + ] } ] } ] }, - "name": "convert_t_uint256_to_t_uint256", - "nativeSrc": "27581:150:18", + "name": "abi_decode_tuple_t_string_memory_ptr", + "nativeSrc": "18673:509:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", - "nativeSrc": "27621:5:18", - "nodeType": "YulTypedName", - "src": "27621:5:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "27631:9:18", + "name": "headStart", + "nativeSrc": "18719:9:18", "nodeType": "YulTypedName", - "src": "27631:9:18", + "src": "18719:9:18", "type": "" - } - ], - "src": "27581:150:18" - }, - { - "body": { - "nativeSrc": "27788:36:18", - "nodeType": "YulBlock", - "src": "27788:36:18", - "statements": [ - { - "nativeSrc": "27802:12:18", - "nodeType": "YulAssignment", - "src": "27802:12:18", - "value": { - "name": "value", - "nativeSrc": "27809:5:18", - "nodeType": "YulIdentifier", - "src": "27809:5:18" - }, - "variableNames": [ - { - "name": "ret", - "nativeSrc": "27802:3:18", - "nodeType": "YulIdentifier", - "src": "27802:3:18" - } - ] - } - ] - }, - "name": "prepare_store_t_uint256", - "nativeSrc": "27741:83:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ + }, { - "name": "value", - "nativeSrc": "27774:5:18", + "name": "dataEnd", + "nativeSrc": "18730:7:18", "nodeType": "YulTypedName", - "src": "27774:5:18", + "src": "18730:7:18", "type": "" } ], "returnVariables": [ { - "name": "ret", - "nativeSrc": "27784:3:18", + "name": "value0", + "nativeSrc": "18742:6:18", "nodeType": "YulTypedName", - "src": "27784:3:18", + "src": "18742:6:18", "type": "" } ], - "src": "27741:83:18" + "src": "18673:509:18" }, { "body": { - "nativeSrc": "27910:205:18", + "nativeSrc": "19228:76:18", "nodeType": "YulBlock", - "src": "27910:205:18", + "src": "19228:76:18", "statements": [ { - "nativeSrc": "27924:63:18", - "nodeType": "YulVariableDeclaration", - "src": "27924:63:18", - "value": { - "arguments": [ + "body": { + "nativeSrc": "19282:16:18", + "nodeType": "YulBlock", + "src": "19282:16:18", + "statements": [ { - "name": "value_0", - "nativeSrc": "27979:7:18", - "nodeType": "YulIdentifier", - "src": "27979:7:18" + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19291:1:18", + "nodeType": "YulLiteral", + "src": "19291:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "19294:1:18", + "nodeType": "YulLiteral", + "src": "19294:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "19284:6:18", + "nodeType": "YulIdentifier", + "src": "19284:6:18" + }, + "nativeSrc": "19284:12:18", + "nodeType": "YulFunctionCall", + "src": "19284:12:18" + }, + "nativeSrc": "19284:12:18", + "nodeType": "YulExpressionStatement", + "src": "19284:12:18" } - ], - "functionName": { - "name": "convert_t_uint256_to_t_uint256", - "nativeSrc": "27948:30:18", - "nodeType": "YulIdentifier", - "src": "27948:30:18" - }, - "nativeSrc": "27948:39:18", - "nodeType": "YulFunctionCall", - "src": "27948:39:18" + ] }, - "variables": [ - { - "name": "convertedValue_0", - "nativeSrc": "27928:16:18", - "nodeType": "YulTypedName", - "src": "27928:16:18", - "type": "" - } - ] - }, - { - "expression": { + "condition": { "arguments": [ - { - "name": "slot", - "nativeSrc": "28007:4:18", - "nodeType": "YulIdentifier", - "src": "28007:4:18" - }, { "arguments": [ { - "arguments": [ - { - "name": "slot", - "nativeSrc": "28047:4:18", - "nodeType": "YulIdentifier", - "src": "28047:4:18" - } - ], - "functionName": { - "name": "sload", - "nativeSrc": "28041:5:18", - "nodeType": "YulIdentifier", - "src": "28041:5:18" - }, - "nativeSrc": "28041:11:18", - "nodeType": "YulFunctionCall", - "src": "28041:11:18" - }, - { - "name": "offset", - "nativeSrc": "28054:6:18", + "name": "value", + "nativeSrc": "19251:5:18", "nodeType": "YulIdentifier", - "src": "28054:6:18" + "src": "19251:5:18" }, { "arguments": [ { - "name": "convertedValue_0", - "nativeSrc": "28086:16:18", + "name": "value", + "nativeSrc": "19273:5:18", "nodeType": "YulIdentifier", - "src": "28086:16:18" + "src": "19273:5:18" } ], "functionName": { - "name": "prepare_store_t_uint256", - "nativeSrc": "28062:23:18", + "name": "cleanup_t_bool", + "nativeSrc": "19258:14:18", "nodeType": "YulIdentifier", - "src": "28062:23:18" + "src": "19258:14:18" }, - "nativeSrc": "28062:41:18", + "nativeSrc": "19258:21:18", "nodeType": "YulFunctionCall", - "src": "28062:41:18" + "src": "19258:21:18" } ], "functionName": { - "name": "update_byte_slice_dynamic32", - "nativeSrc": "28013:27:18", + "name": "eq", + "nativeSrc": "19248:2:18", "nodeType": "YulIdentifier", - "src": "28013:27:18" + "src": "19248:2:18" }, - "nativeSrc": "28013:91:18", + "nativeSrc": "19248:32:18", "nodeType": "YulFunctionCall", - "src": "28013:91:18" + "src": "19248:32:18" } ], "functionName": { - "name": "sstore", - "nativeSrc": "28000:6:18", + "name": "iszero", + "nativeSrc": "19241:6:18", "nodeType": "YulIdentifier", - "src": "28000:6:18" + "src": "19241:6:18" }, - "nativeSrc": "28000:105:18", + "nativeSrc": "19241:40:18", "nodeType": "YulFunctionCall", - "src": "28000:105:18" + "src": "19241:40:18" }, - "nativeSrc": "28000:105:18", - "nodeType": "YulExpressionStatement", - "src": "28000:105:18" + "nativeSrc": "19238:60:18", + "nodeType": "YulIf", + "src": "19238:60:18" } ] }, - "name": "update_storage_value_t_uint256_to_t_uint256", - "nativeSrc": "27834:281:18", + "name": "validator_revert_t_bool", + "nativeSrc": "19188:116:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "slot", - "nativeSrc": "27887:4:18", - "nodeType": "YulTypedName", - "src": "27887:4:18", - "type": "" - }, - { - "name": "offset", - "nativeSrc": "27893:6:18", - "nodeType": "YulTypedName", - "src": "27893:6:18", - "type": "" - }, - { - "name": "value_0", - "nativeSrc": "27901:7:18", + "name": "value", + "nativeSrc": "19221:5:18", "nodeType": "YulTypedName", - "src": "27901:7:18", + "src": "19221:5:18", "type": "" } ], - "src": "27834:281:18" + "src": "19188:116:18" }, { "body": { - "nativeSrc": "28174:32:18", + "nativeSrc": "19359:84:18", "nodeType": "YulBlock", - "src": "28174:32:18", + "src": "19359:84:18", "statements": [ { - "nativeSrc": "28188:8:18", + "nativeSrc": "19369:29:18", "nodeType": "YulAssignment", - "src": "28188:8:18", - "value": { - "kind": "number", - "nativeSrc": "28195:1:18", - "nodeType": "YulLiteral", - "src": "28195:1:18", - "type": "", - "value": "0" - }, - "variableNames": [ - { - "name": "ret", - "nativeSrc": "28188:3:18", - "nodeType": "YulIdentifier", - "src": "28188:3:18" - } - ] - } - ] - }, - "name": "zero_value_for_split_t_uint256", - "nativeSrc": "28125:81:18", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "ret", - "nativeSrc": "28170:3:18", - "nodeType": "YulTypedName", - "src": "28170:3:18", - "type": "" - } - ], - "src": "28125:81:18" - }, - { - "body": { - "nativeSrc": "28269:148:18", - "nodeType": "YulBlock", - "src": "28269:148:18", - "statements": [ - { - "nativeSrc": "28283:46:18", - "nodeType": "YulVariableDeclaration", - "src": "28283:46:18", + "src": "19369:29:18", "value": { - "arguments": [], + "arguments": [ + { + "name": "offset", + "nativeSrc": "19391:6:18", + "nodeType": "YulIdentifier", + "src": "19391:6:18" + } + ], "functionName": { - "name": "zero_value_for_split_t_uint256", - "nativeSrc": "28297:30:18", + "name": "calldataload", + "nativeSrc": "19378:12:18", "nodeType": "YulIdentifier", - "src": "28297:30:18" + "src": "19378:12:18" }, - "nativeSrc": "28297:32:18", + "nativeSrc": "19378:20:18", "nodeType": "YulFunctionCall", - "src": "28297:32:18" + "src": "19378:20:18" }, - "variables": [ + "variableNames": [ { - "name": "zero_0", - "nativeSrc": "28287:6:18", - "nodeType": "YulTypedName", - "src": "28287:6:18", - "type": "" + "name": "value", + "nativeSrc": "19369:5:18", + "nodeType": "YulIdentifier", + "src": "19369:5:18" } ] }, @@ -76501,2004 +76086,2174 @@ "expression": { "arguments": [ { - "name": "slot", - "nativeSrc": "28386:4:18", - "nodeType": "YulIdentifier", - "src": "28386:4:18" - }, - { - "name": "offset", - "nativeSrc": "28392:6:18", - "nodeType": "YulIdentifier", - "src": "28392:6:18" - }, - { - "name": "zero_0", - "nativeSrc": "28400:6:18", + "name": "value", + "nativeSrc": "19431:5:18", "nodeType": "YulIdentifier", - "src": "28400:6:18" + "src": "19431:5:18" } ], "functionName": { - "name": "update_storage_value_t_uint256_to_t_uint256", - "nativeSrc": "28342:43:18", + "name": "validator_revert_t_bool", + "nativeSrc": "19407:23:18", "nodeType": "YulIdentifier", - "src": "28342:43:18" + "src": "19407:23:18" }, - "nativeSrc": "28342:65:18", + "nativeSrc": "19407:30:18", "nodeType": "YulFunctionCall", - "src": "28342:65:18" + "src": "19407:30:18" }, - "nativeSrc": "28342:65:18", + "nativeSrc": "19407:30:18", "nodeType": "YulExpressionStatement", - "src": "28342:65:18" + "src": "19407:30:18" } ] }, - "name": "storage_set_to_zero_t_uint256", - "nativeSrc": "28216:201:18", + "name": "abi_decode_t_bool", + "nativeSrc": "19310:133:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "slot", - "nativeSrc": "28255:4:18", + "name": "offset", + "nativeSrc": "19337:6:18", "nodeType": "YulTypedName", - "src": "28255:4:18", + "src": "19337:6:18", "type": "" }, { - "name": "offset", - "nativeSrc": "28261:6:18", + "name": "end", + "nativeSrc": "19345:3:18", + "nodeType": "YulTypedName", + "src": "19345:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "19353:5:18", "nodeType": "YulTypedName", - "src": "28261:6:18", + "src": "19353:5:18", "type": "" } ], - "src": "28216:201:18" + "src": "19310:133:18" }, { "body": { - "nativeSrc": "28477:156:18", + "nativeSrc": "19529:388:18", "nodeType": "YulBlock", - "src": "28477:156:18", + "src": "19529:388:18", "statements": [ { "body": { - "nativeSrc": "28552:71:18", + "nativeSrc": "19575:83:18", "nodeType": "YulBlock", - "src": "28552:71:18", + "src": "19575:83:18", "statements": [ { "expression": { - "arguments": [ - { - "name": "start", - "nativeSrc": "28600:5:18", - "nodeType": "YulIdentifier", - "src": "28600:5:18" - }, - { - "kind": "number", - "nativeSrc": "28607:1:18", - "nodeType": "YulLiteral", - "src": "28607:1:18", - "type": "", - "value": "0" - } - ], + "arguments": [], "functionName": { - "name": "storage_set_to_zero_t_uint256", - "nativeSrc": "28570:29:18", + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "19577:77:18", "nodeType": "YulIdentifier", - "src": "28570:29:18" + "src": "19577:77:18" }, - "nativeSrc": "28570:39:18", + "nativeSrc": "19577:79:18", "nodeType": "YulFunctionCall", - "src": "28570:39:18" + "src": "19577:79:18" }, - "nativeSrc": "28570:39:18", + "nativeSrc": "19577:79:18", "nodeType": "YulExpressionStatement", - "src": "28570:39:18" + "src": "19577:79:18" } ] }, "condition": { "arguments": [ { - "name": "start", - "nativeSrc": "28501:5:18", - "nodeType": "YulIdentifier", - "src": "28501:5:18" + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "19550:7:18", + "nodeType": "YulIdentifier", + "src": "19550:7:18" + }, + { + "name": "headStart", + "nativeSrc": "19559:9:18", + "nodeType": "YulIdentifier", + "src": "19559:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "19546:3:18", + "nodeType": "YulIdentifier", + "src": "19546:3:18" + }, + "nativeSrc": "19546:23:18", + "nodeType": "YulFunctionCall", + "src": "19546:23:18" }, { - "name": "end", - "nativeSrc": "28508:3:18", - "nodeType": "YulIdentifier", - "src": "28508:3:18" + "kind": "number", + "nativeSrc": "19571:2:18", + "nodeType": "YulLiteral", + "src": "19571:2:18", + "type": "", + "value": "64" } ], "functionName": { - "name": "lt", - "nativeSrc": "28498:2:18", + "name": "slt", + "nativeSrc": "19542:3:18", "nodeType": "YulIdentifier", - "src": "28498:2:18" + "src": "19542:3:18" }, - "nativeSrc": "28498:14:18", + "nativeSrc": "19542:32:18", "nodeType": "YulFunctionCall", - "src": "28498:14:18" + "src": "19542:32:18" }, - "nativeSrc": "28491:132:18", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "28513:26:18", - "nodeType": "YulBlock", - "src": "28513:26:18", - "statements": [ - { - "nativeSrc": "28515:22:18", - "nodeType": "YulAssignment", - "src": "28515:22:18", - "value": { - "arguments": [ - { - "name": "start", - "nativeSrc": "28528:5:18", + "nativeSrc": "19539:119:18", + "nodeType": "YulIf", + "src": "19539:119:18" + }, + { + "nativeSrc": "19668:117:18", + "nodeType": "YulBlock", + "src": "19668:117:18", + "statements": [ + { + "nativeSrc": "19683:15:18", + "nodeType": "YulVariableDeclaration", + "src": "19683:15:18", + "value": { + "kind": "number", + "nativeSrc": "19697:1:18", + "nodeType": "YulLiteral", + "src": "19697:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "19687:6:18", + "nodeType": "YulTypedName", + "src": "19687:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "19712:63:18", + "nodeType": "YulAssignment", + "src": "19712:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19747:9:18", + "nodeType": "YulIdentifier", + "src": "19747:9:18" + }, + { + "name": "offset", + "nativeSrc": "19758:6:18", + "nodeType": "YulIdentifier", + "src": "19758:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19743:3:18", "nodeType": "YulIdentifier", - "src": "28528:5:18" + "src": "19743:3:18" }, - { - "kind": "number", - "nativeSrc": "28535:1:18", - "nodeType": "YulLiteral", - "src": "28535:1:18", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "28524:3:18", - "nodeType": "YulIdentifier", - "src": "28524:3:18" + "nativeSrc": "19743:22:18", + "nodeType": "YulFunctionCall", + "src": "19743:22:18" }, - "nativeSrc": "28524:13:18", - "nodeType": "YulFunctionCall", - "src": "28524:13:18" + { + "name": "dataEnd", + "nativeSrc": "19767:7:18", + "nodeType": "YulIdentifier", + "src": "19767:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "19722:20:18", + "nodeType": "YulIdentifier", + "src": "19722:20:18" }, - "variableNames": [ + "nativeSrc": "19722:53:18", + "nodeType": "YulFunctionCall", + "src": "19722:53:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "19712:6:18", + "nodeType": "YulIdentifier", + "src": "19712:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "19795:115:18", + "nodeType": "YulBlock", + "src": "19795:115:18", + "statements": [ + { + "nativeSrc": "19810:16:18", + "nodeType": "YulVariableDeclaration", + "src": "19810:16:18", + "value": { + "kind": "number", + "nativeSrc": "19824:2:18", + "nodeType": "YulLiteral", + "src": "19824:2:18", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "19814:6:18", + "nodeType": "YulTypedName", + "src": "19814:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "19840:60:18", + "nodeType": "YulAssignment", + "src": "19840:60:18", + "value": { + "arguments": [ { - "name": "start", - "nativeSrc": "28515:5:18", + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19872:9:18", + "nodeType": "YulIdentifier", + "src": "19872:9:18" + }, + { + "name": "offset", + "nativeSrc": "19883:6:18", + "nodeType": "YulIdentifier", + "src": "19883:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19868:3:18", + "nodeType": "YulIdentifier", + "src": "19868:3:18" + }, + "nativeSrc": "19868:22:18", + "nodeType": "YulFunctionCall", + "src": "19868:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "19892:7:18", "nodeType": "YulIdentifier", - "src": "28515:5:18" + "src": "19892:7:18" } - ] - } - ] - }, - "pre": { - "nativeSrc": "28495:2:18", - "nodeType": "YulBlock", - "src": "28495:2:18", - "statements": [] - }, - "src": "28491:132:18" + ], + "functionName": { + "name": "abi_decode_t_bool", + "nativeSrc": "19850:17:18", + "nodeType": "YulIdentifier", + "src": "19850:17:18" + }, + "nativeSrc": "19850:50:18", + "nodeType": "YulFunctionCall", + "src": "19850:50:18" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "19840:6:18", + "nodeType": "YulIdentifier", + "src": "19840:6:18" + } + ] + } + ] } ] }, - "name": "clear_storage_range_t_bytes1", - "nativeSrc": "28427:206:18", + "name": "abi_decode_tuple_t_addresst_bool", + "nativeSrc": "19449:468:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "start", - "nativeSrc": "28465:5:18", + "name": "headStart", + "nativeSrc": "19491:9:18", "nodeType": "YulTypedName", - "src": "28465:5:18", + "src": "19491:9:18", "type": "" }, { - "name": "end", - "nativeSrc": "28472:3:18", + "name": "dataEnd", + "nativeSrc": "19502:7:18", + "nodeType": "YulTypedName", + "src": "19502:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "19514:6:18", + "nodeType": "YulTypedName", + "src": "19514:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "19522:6:18", "nodeType": "YulTypedName", - "src": "28472:3:18", + "src": "19522:6:18", "type": "" } ], - "src": "28427:206:18" + "src": "19449:468:18" }, { "body": { - "nativeSrc": "28722:496:18", + "nativeSrc": "20006:391:18", "nodeType": "YulBlock", - "src": "28722:496:18", + "src": "20006:391:18", "statements": [ { "body": { - "nativeSrc": "28752:455:18", + "nativeSrc": "20052:83:18", "nodeType": "YulBlock", - "src": "28752:455:18", + "src": "20052:83:18", "statements": [ - { - "nativeSrc": "28770:54:18", - "nodeType": "YulVariableDeclaration", - "src": "28770:54:18", - "value": { - "arguments": [ - { - "name": "array", - "nativeSrc": "28818:5:18", - "nodeType": "YulIdentifier", - "src": "28818:5:18" - } - ], - "functionName": { - "name": "array_dataslot_t_string_storage", - "nativeSrc": "28786:31:18", - "nodeType": "YulIdentifier", - "src": "28786:31:18" - }, - "nativeSrc": "28786:38:18", - "nodeType": "YulFunctionCall", - "src": "28786:38:18" - }, - "variables": [ - { - "name": "dataArea", - "nativeSrc": "28774:8:18", - "nodeType": "YulTypedName", - "src": "28774:8:18", - "type": "" - } - ] - }, - { - "nativeSrc": "28841:63:18", - "nodeType": "YulVariableDeclaration", - "src": "28841:63:18", - "value": { - "arguments": [ - { - "name": "dataArea", - "nativeSrc": "28864:8:18", - "nodeType": "YulIdentifier", - "src": "28864:8:18" - }, - { - "arguments": [ - { - "name": "startIndex", - "nativeSrc": "28892:10:18", - "nodeType": "YulIdentifier", - "src": "28892:10:18" - } - ], - "functionName": { - "name": "divide_by_32_ceil", - "nativeSrc": "28874:17:18", - "nodeType": "YulIdentifier", - "src": "28874:17:18" - }, - "nativeSrc": "28874:29:18", - "nodeType": "YulFunctionCall", - "src": "28874:29:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "28860:3:18", - "nodeType": "YulIdentifier", - "src": "28860:3:18" - }, - "nativeSrc": "28860:44:18", - "nodeType": "YulFunctionCall", - "src": "28860:44:18" - }, - "variables": [ - { - "name": "deleteStart", - "nativeSrc": "28845:11:18", - "nodeType": "YulTypedName", - "src": "28845:11:18", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "29069:27:18", - "nodeType": "YulBlock", - "src": "29069:27:18", - "statements": [ - { - "nativeSrc": "29071:23:18", - "nodeType": "YulAssignment", - "src": "29071:23:18", - "value": { - "name": "dataArea", - "nativeSrc": "29086:8:18", - "nodeType": "YulIdentifier", - "src": "29086:8:18" - }, - "variableNames": [ - { - "name": "deleteStart", - "nativeSrc": "29071:11:18", - "nodeType": "YulIdentifier", - "src": "29071:11:18" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "startIndex", - "nativeSrc": "29053:10:18", - "nodeType": "YulIdentifier", - "src": "29053:10:18" - }, - { - "kind": "number", - "nativeSrc": "29065:2:18", - "nodeType": "YulLiteral", - "src": "29065:2:18", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "29050:2:18", - "nodeType": "YulIdentifier", - "src": "29050:2:18" - }, - "nativeSrc": "29050:18:18", - "nodeType": "YulFunctionCall", - "src": "29050:18:18" - }, - "nativeSrc": "29047:49:18", - "nodeType": "YulIf", - "src": "29047:49:18" - }, { "expression": { - "arguments": [ - { - "name": "deleteStart", - "nativeSrc": "29142:11:18", - "nodeType": "YulIdentifier", - "src": "29142:11:18" - }, - { - "arguments": [ - { - "name": "dataArea", - "nativeSrc": "29159:8:18", - "nodeType": "YulIdentifier", - "src": "29159:8:18" - }, - { - "arguments": [ - { - "name": "len", - "nativeSrc": "29187:3:18", - "nodeType": "YulIdentifier", - "src": "29187:3:18" - } - ], - "functionName": { - "name": "divide_by_32_ceil", - "nativeSrc": "29169:17:18", - "nodeType": "YulIdentifier", - "src": "29169:17:18" - }, - "nativeSrc": "29169:22:18", - "nodeType": "YulFunctionCall", - "src": "29169:22:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "29155:3:18", - "nodeType": "YulIdentifier", - "src": "29155:3:18" - }, - "nativeSrc": "29155:37:18", - "nodeType": "YulFunctionCall", - "src": "29155:37:18" - } - ], + "arguments": [], "functionName": { - "name": "clear_storage_range_t_bytes1", - "nativeSrc": "29113:28:18", + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "20054:77:18", "nodeType": "YulIdentifier", - "src": "29113:28:18" + "src": "20054:77:18" }, - "nativeSrc": "29113:80:18", + "nativeSrc": "20054:79:18", "nodeType": "YulFunctionCall", - "src": "29113:80:18" + "src": "20054:79:18" }, - "nativeSrc": "29113:80:18", + "nativeSrc": "20054:79:18", "nodeType": "YulExpressionStatement", - "src": "29113:80:18" + "src": "20054:79:18" } ] }, "condition": { "arguments": [ { - "name": "len", - "nativeSrc": "28743:3:18", - "nodeType": "YulIdentifier", - "src": "28743:3:18" + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "20027:7:18", + "nodeType": "YulIdentifier", + "src": "20027:7:18" + }, + { + "name": "headStart", + "nativeSrc": "20036:9:18", + "nodeType": "YulIdentifier", + "src": "20036:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "20023:3:18", + "nodeType": "YulIdentifier", + "src": "20023:3:18" + }, + "nativeSrc": "20023:23:18", + "nodeType": "YulFunctionCall", + "src": "20023:23:18" }, { "kind": "number", - "nativeSrc": "28748:2:18", + "nativeSrc": "20048:2:18", "nodeType": "YulLiteral", - "src": "28748:2:18", + "src": "20048:2:18", "type": "", - "value": "31" + "value": "64" } ], "functionName": { - "name": "gt", - "nativeSrc": "28740:2:18", + "name": "slt", + "nativeSrc": "20019:3:18", "nodeType": "YulIdentifier", - "src": "28740:2:18" + "src": "20019:3:18" }, - "nativeSrc": "28740:11:18", + "nativeSrc": "20019:32:18", "nodeType": "YulFunctionCall", - "src": "28740:11:18" + "src": "20019:32:18" }, - "nativeSrc": "28737:470:18", + "nativeSrc": "20016:119:18", "nodeType": "YulIf", - "src": "28737:470:18" + "src": "20016:119:18" + }, + { + "nativeSrc": "20145:117:18", + "nodeType": "YulBlock", + "src": "20145:117:18", + "statements": [ + { + "nativeSrc": "20160:15:18", + "nodeType": "YulVariableDeclaration", + "src": "20160:15:18", + "value": { + "kind": "number", + "nativeSrc": "20174:1:18", + "nodeType": "YulLiteral", + "src": "20174:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "20164:6:18", + "nodeType": "YulTypedName", + "src": "20164:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "20189:63:18", + "nodeType": "YulAssignment", + "src": "20189:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20224:9:18", + "nodeType": "YulIdentifier", + "src": "20224:9:18" + }, + { + "name": "offset", + "nativeSrc": "20235:6:18", + "nodeType": "YulIdentifier", + "src": "20235:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20220:3:18", + "nodeType": "YulIdentifier", + "src": "20220:3:18" + }, + "nativeSrc": "20220:22:18", + "nodeType": "YulFunctionCall", + "src": "20220:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "20244:7:18", + "nodeType": "YulIdentifier", + "src": "20244:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "20199:20:18", + "nodeType": "YulIdentifier", + "src": "20199:20:18" + }, + "nativeSrc": "20199:53:18", + "nodeType": "YulFunctionCall", + "src": "20199:53:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "20189:6:18", + "nodeType": "YulIdentifier", + "src": "20189:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "20272:118:18", + "nodeType": "YulBlock", + "src": "20272:118:18", + "statements": [ + { + "nativeSrc": "20287:16:18", + "nodeType": "YulVariableDeclaration", + "src": "20287:16:18", + "value": { + "kind": "number", + "nativeSrc": "20301:2:18", + "nodeType": "YulLiteral", + "src": "20301:2:18", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "20291:6:18", + "nodeType": "YulTypedName", + "src": "20291:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "20317:63:18", + "nodeType": "YulAssignment", + "src": "20317:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20352:9:18", + "nodeType": "YulIdentifier", + "src": "20352:9:18" + }, + { + "name": "offset", + "nativeSrc": "20363:6:18", + "nodeType": "YulIdentifier", + "src": "20363:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20348:3:18", + "nodeType": "YulIdentifier", + "src": "20348:3:18" + }, + "nativeSrc": "20348:22:18", + "nodeType": "YulFunctionCall", + "src": "20348:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "20372:7:18", + "nodeType": "YulIdentifier", + "src": "20372:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "20327:20:18", + "nodeType": "YulIdentifier", + "src": "20327:20:18" + }, + "nativeSrc": "20327:53:18", + "nodeType": "YulFunctionCall", + "src": "20327:53:18" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "20317:6:18", + "nodeType": "YulIdentifier", + "src": "20317:6:18" + } + ] + } + ] } ] }, - "name": "clean_up_bytearray_end_slots_t_string_storage", - "nativeSrc": "28643:575:18", + "name": "abi_decode_tuple_t_addresst_address", + "nativeSrc": "19923:474:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "array", - "nativeSrc": "28698:5:18", + "name": "headStart", + "nativeSrc": "19968:9:18", "nodeType": "YulTypedName", - "src": "28698:5:18", + "src": "19968:9:18", "type": "" }, { - "name": "len", - "nativeSrc": "28705:3:18", + "name": "dataEnd", + "nativeSrc": "19979:7:18", + "nodeType": "YulTypedName", + "src": "19979:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "19991:6:18", "nodeType": "YulTypedName", - "src": "28705:3:18", + "src": "19991:6:18", "type": "" }, { - "name": "startIndex", - "nativeSrc": "28710:10:18", + "name": "value1", + "nativeSrc": "19999:6:18", "nodeType": "YulTypedName", - "src": "28710:10:18", + "src": "19999:6:18", "type": "" } ], - "src": "28643:575:18" + "src": "19923:474:18" }, { "body": { - "nativeSrc": "29291:66:18", + "nativeSrc": "20546:946:18", "nodeType": "YulBlock", - "src": "29291:66:18", + "src": "20546:946:18", "statements": [ { - "nativeSrc": "29305:41:18", - "nodeType": "YulAssignment", - "src": "29305:41:18", - "value": { + "body": { + "nativeSrc": "20593:83:18", + "nodeType": "YulBlock", + "src": "20593:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "20595:77:18", + "nodeType": "YulIdentifier", + "src": "20595:77:18" + }, + "nativeSrc": "20595:79:18", + "nodeType": "YulFunctionCall", + "src": "20595:79:18" + }, + "nativeSrc": "20595:79:18", + "nodeType": "YulExpressionStatement", + "src": "20595:79:18" + } + ] + }, + "condition": { "arguments": [ { - "name": "bits", - "nativeSrc": "29334:4:18", - "nodeType": "YulIdentifier", - "src": "29334:4:18" + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "20567:7:18", + "nodeType": "YulIdentifier", + "src": "20567:7:18" + }, + { + "name": "headStart", + "nativeSrc": "20576:9:18", + "nodeType": "YulIdentifier", + "src": "20576:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "20563:3:18", + "nodeType": "YulIdentifier", + "src": "20563:3:18" + }, + "nativeSrc": "20563:23:18", + "nodeType": "YulFunctionCall", + "src": "20563:23:18" }, { - "name": "value", - "nativeSrc": "29340:5:18", - "nodeType": "YulIdentifier", - "src": "29340:5:18" + "kind": "number", + "nativeSrc": "20588:3:18", + "nodeType": "YulLiteral", + "src": "20588:3:18", + "type": "", + "value": "160" } ], "functionName": { - "name": "shr", - "nativeSrc": "29330:3:18", + "name": "slt", + "nativeSrc": "20559:3:18", "nodeType": "YulIdentifier", - "src": "29330:3:18" + "src": "20559:3:18" }, - "nativeSrc": "29330:16:18", + "nativeSrc": "20559:33:18", "nodeType": "YulFunctionCall", - "src": "29330:16:18" + "src": "20559:33:18" }, - "variableNames": [ - { - "name": "newValue", - "nativeSrc": "29305:8:18", - "nodeType": "YulIdentifier", - "src": "29305:8:18" - } - ] - } - ] - }, - "name": "shift_right_unsigned_dynamic", - "nativeSrc": "29228:129:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "bits", - "nativeSrc": "29266:4:18", - "nodeType": "YulTypedName", - "src": "29266:4:18", - "type": "" - }, - { - "name": "value", - "nativeSrc": "29272:5:18", - "nodeType": "YulTypedName", - "src": "29272:5:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "newValue", - "nativeSrc": "29282:8:18", - "nodeType": "YulTypedName", - "src": "29282:8:18", - "type": "" - } - ], - "src": "29228:129:18" - }, - { - "body": { - "nativeSrc": "29418:130:18", - "nodeType": "YulBlock", - "src": "29418:130:18", - "statements": [ + "nativeSrc": "20556:120:18", + "nodeType": "YulIf", + "src": "20556:120:18" + }, { - "nativeSrc": "29432:68:18", - "nodeType": "YulVariableDeclaration", - "src": "29432:68:18", - "value": { - "arguments": [ - { + "nativeSrc": "20686:117:18", + "nodeType": "YulBlock", + "src": "20686:117:18", + "statements": [ + { + "nativeSrc": "20701:15:18", + "nodeType": "YulVariableDeclaration", + "src": "20701:15:18", + "value": { + "kind": "number", + "nativeSrc": "20715:1:18", + "nodeType": "YulLiteral", + "src": "20715:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "20705:6:18", + "nodeType": "YulTypedName", + "src": "20705:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "20730:63:18", + "nodeType": "YulAssignment", + "src": "20730:63:18", + "value": { "arguments": [ { "arguments": [ { - "kind": "number", - "nativeSrc": "29481:1:18", - "nodeType": "YulLiteral", - "src": "29481:1:18", - "type": "", - "value": "8" + "name": "headStart", + "nativeSrc": "20765:9:18", + "nodeType": "YulIdentifier", + "src": "20765:9:18" }, { - "name": "bytes", - "nativeSrc": "29484:5:18", + "name": "offset", + "nativeSrc": "20776:6:18", "nodeType": "YulIdentifier", - "src": "29484:5:18" + "src": "20776:6:18" } ], "functionName": { - "name": "mul", - "nativeSrc": "29477:3:18", + "name": "add", + "nativeSrc": "20761:3:18", "nodeType": "YulIdentifier", - "src": "29477:3:18" + "src": "20761:3:18" }, - "nativeSrc": "29477:13:18", + "nativeSrc": "20761:22:18", "nodeType": "YulFunctionCall", - "src": "29477:13:18" + "src": "20761:22:18" }, + { + "name": "dataEnd", + "nativeSrc": "20785:7:18", + "nodeType": "YulIdentifier", + "src": "20785:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "20740:20:18", + "nodeType": "YulIdentifier", + "src": "20740:20:18" + }, + "nativeSrc": "20740:53:18", + "nodeType": "YulFunctionCall", + "src": "20740:53:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "20730:6:18", + "nodeType": "YulIdentifier", + "src": "20730:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "20813:118:18", + "nodeType": "YulBlock", + "src": "20813:118:18", + "statements": [ + { + "nativeSrc": "20828:16:18", + "nodeType": "YulVariableDeclaration", + "src": "20828:16:18", + "value": { + "kind": "number", + "nativeSrc": "20842:2:18", + "nodeType": "YulLiteral", + "src": "20842:2:18", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "20832:6:18", + "nodeType": "YulTypedName", + "src": "20832:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "20858:63:18", + "nodeType": "YulAssignment", + "src": "20858:63:18", + "value": { + "arguments": [ { "arguments": [ { - "kind": "number", - "nativeSrc": "29496:1:18", - "nodeType": "YulLiteral", - "src": "29496:1:18", - "type": "", - "value": "0" + "name": "headStart", + "nativeSrc": "20893:9:18", + "nodeType": "YulIdentifier", + "src": "20893:9:18" + }, + { + "name": "offset", + "nativeSrc": "20904:6:18", + "nodeType": "YulIdentifier", + "src": "20904:6:18" } ], "functionName": { - "name": "not", - "nativeSrc": "29492:3:18", + "name": "add", + "nativeSrc": "20889:3:18", "nodeType": "YulIdentifier", - "src": "29492:3:18" + "src": "20889:3:18" }, - "nativeSrc": "29492:6:18", + "nativeSrc": "20889:22:18", "nodeType": "YulFunctionCall", - "src": "29492:6:18" + "src": "20889:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "20913:7:18", + "nodeType": "YulIdentifier", + "src": "20913:7:18" } ], "functionName": { - "name": "shift_right_unsigned_dynamic", - "nativeSrc": "29448:28:18", + "name": "abi_decode_t_address", + "nativeSrc": "20868:20:18", "nodeType": "YulIdentifier", - "src": "29448:28:18" + "src": "20868:20:18" }, - "nativeSrc": "29448:51:18", + "nativeSrc": "20868:53:18", "nodeType": "YulFunctionCall", - "src": "29448:51:18" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "29444:3:18", - "nodeType": "YulIdentifier", - "src": "29444:3:18" - }, - "nativeSrc": "29444:56:18", - "nodeType": "YulFunctionCall", - "src": "29444:56:18" - }, - "variables": [ - { - "name": "mask", - "nativeSrc": "29436:4:18", - "nodeType": "YulTypedName", - "src": "29436:4:18", - "type": "" + "src": "20868:53:18" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "20858:6:18", + "nodeType": "YulIdentifier", + "src": "20858:6:18" + } + ] } ] }, { - "nativeSrc": "29513:25:18", - "nodeType": "YulAssignment", - "src": "29513:25:18", - "value": { - "arguments": [ - { - "name": "data", - "nativeSrc": "29527:4:18", - "nodeType": "YulIdentifier", - "src": "29527:4:18" + "nativeSrc": "20941:118:18", + "nodeType": "YulBlock", + "src": "20941:118:18", + "statements": [ + { + "nativeSrc": "20956:16:18", + "nodeType": "YulVariableDeclaration", + "src": "20956:16:18", + "value": { + "kind": "number", + "nativeSrc": "20970:2:18", + "nodeType": "YulLiteral", + "src": "20970:2:18", + "type": "", + "value": "64" }, - { - "name": "mask", - "nativeSrc": "29533:4:18", - "nodeType": "YulIdentifier", - "src": "29533:4:18" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "29523:3:18", - "nodeType": "YulIdentifier", - "src": "29523:3:18" + "variables": [ + { + "name": "offset", + "nativeSrc": "20960:6:18", + "nodeType": "YulTypedName", + "src": "20960:6:18", + "type": "" + } + ] }, - "nativeSrc": "29523:15:18", - "nodeType": "YulFunctionCall", - "src": "29523:15:18" - }, - "variableNames": [ { - "name": "result", - "nativeSrc": "29513:6:18", - "nodeType": "YulIdentifier", - "src": "29513:6:18" + "nativeSrc": "20986:63:18", + "nodeType": "YulAssignment", + "src": "20986:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21021:9:18", + "nodeType": "YulIdentifier", + "src": "21021:9:18" + }, + { + "name": "offset", + "nativeSrc": "21032:6:18", + "nodeType": "YulIdentifier", + "src": "21032:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21017:3:18", + "nodeType": "YulIdentifier", + "src": "21017:3:18" + }, + "nativeSrc": "21017:22:18", + "nodeType": "YulFunctionCall", + "src": "21017:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "21041:7:18", + "nodeType": "YulIdentifier", + "src": "21041:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "20996:20:18", + "nodeType": "YulIdentifier", + "src": "20996:20:18" + }, + "nativeSrc": "20996:53:18", + "nodeType": "YulFunctionCall", + "src": "20996:53:18" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "20986:6:18", + "nodeType": "YulIdentifier", + "src": "20986:6:18" + } + ] } ] - } - ] - }, - "name": "mask_bytes_dynamic", - "nativeSrc": "29367:181:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "data", - "nativeSrc": "29395:4:18", - "nodeType": "YulTypedName", - "src": "29395:4:18", - "type": "" - }, - { - "name": "bytes", - "nativeSrc": "29401:5:18", - "nodeType": "YulTypedName", - "src": "29401:5:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "result", - "nativeSrc": "29411:6:18", - "nodeType": "YulTypedName", - "src": "29411:6:18", - "type": "" - } - ], - "src": "29367:181:18" - }, - { - "body": { - "nativeSrc": "29638:234:18", - "nodeType": "YulBlock", - "src": "29638:234:18", - "statements": [ + }, { - "nativeSrc": "29783:37:18", - "nodeType": "YulAssignment", - "src": "29783:37:18", - "value": { - "arguments": [ - { - "name": "data", - "nativeSrc": "29810:4:18", - "nodeType": "YulIdentifier", - "src": "29810:4:18" + "nativeSrc": "21069:118:18", + "nodeType": "YulBlock", + "src": "21069:118:18", + "statements": [ + { + "nativeSrc": "21084:16:18", + "nodeType": "YulVariableDeclaration", + "src": "21084:16:18", + "value": { + "kind": "number", + "nativeSrc": "21098:2:18", + "nodeType": "YulLiteral", + "src": "21098:2:18", + "type": "", + "value": "96" }, - { - "name": "len", - "nativeSrc": "29816:3:18", - "nodeType": "YulIdentifier", - "src": "29816:3:18" - } - ], - "functionName": { - "name": "mask_bytes_dynamic", - "nativeSrc": "29791:18:18", - "nodeType": "YulIdentifier", - "src": "29791:18:18" + "variables": [ + { + "name": "offset", + "nativeSrc": "21088:6:18", + "nodeType": "YulTypedName", + "src": "21088:6:18", + "type": "" + } + ] }, - "nativeSrc": "29791:29:18", - "nodeType": "YulFunctionCall", - "src": "29791:29:18" - }, - "variableNames": [ { - "name": "data", - "nativeSrc": "29783:4:18", - "nodeType": "YulIdentifier", - "src": "29783:4:18" + "nativeSrc": "21114:63:18", + "nodeType": "YulAssignment", + "src": "21114:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21149:9:18", + "nodeType": "YulIdentifier", + "src": "21149:9:18" + }, + { + "name": "offset", + "nativeSrc": "21160:6:18", + "nodeType": "YulIdentifier", + "src": "21160:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21145:3:18", + "nodeType": "YulIdentifier", + "src": "21145:3:18" + }, + "nativeSrc": "21145:22:18", + "nodeType": "YulFunctionCall", + "src": "21145:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "21169:7:18", + "nodeType": "YulIdentifier", + "src": "21169:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "21124:20:18", + "nodeType": "YulIdentifier", + "src": "21124:20:18" + }, + "nativeSrc": "21124:53:18", + "nodeType": "YulFunctionCall", + "src": "21124:53:18" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "21114:6:18", + "nodeType": "YulIdentifier", + "src": "21114:6:18" + } + ] } ] }, { - "nativeSrc": "29833:29:18", - "nodeType": "YulAssignment", - "src": "29833:29:18", - "value": { - "arguments": [ - { - "name": "data", - "nativeSrc": "29844:4:18", - "nodeType": "YulIdentifier", - "src": "29844:4:18" + "nativeSrc": "21197:288:18", + "nodeType": "YulBlock", + "src": "21197:288:18", + "statements": [ + { + "nativeSrc": "21212:47:18", + "nodeType": "YulVariableDeclaration", + "src": "21212:47:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21243:9:18", + "nodeType": "YulIdentifier", + "src": "21243:9:18" + }, + { + "kind": "number", + "nativeSrc": "21254:3:18", + "nodeType": "YulLiteral", + "src": "21254:3:18", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21239:3:18", + "nodeType": "YulIdentifier", + "src": "21239:3:18" + }, + "nativeSrc": "21239:19:18", + "nodeType": "YulFunctionCall", + "src": "21239:19:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "21226:12:18", + "nodeType": "YulIdentifier", + "src": "21226:12:18" + }, + "nativeSrc": "21226:33:18", + "nodeType": "YulFunctionCall", + "src": "21226:33:18" }, - { + "variables": [ + { + "name": "offset", + "nativeSrc": "21216:6:18", + "nodeType": "YulTypedName", + "src": "21216:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "21306:83:18", + "nodeType": "YulBlock", + "src": "21306:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "21308:77:18", + "nodeType": "YulIdentifier", + "src": "21308:77:18" + }, + "nativeSrc": "21308:79:18", + "nodeType": "YulFunctionCall", + "src": "21308:79:18" + }, + "nativeSrc": "21308:79:18", + "nodeType": "YulExpressionStatement", + "src": "21308:79:18" + } + ] + }, + "condition": { "arguments": [ + { + "name": "offset", + "nativeSrc": "21278:6:18", + "nodeType": "YulIdentifier", + "src": "21278:6:18" + }, { "kind": "number", - "nativeSrc": "29854:1:18", + "nativeSrc": "21286:18:18", "nodeType": "YulLiteral", - "src": "29854:1:18", + "src": "21286:18:18", "type": "", - "value": "2" + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "21275:2:18", + "nodeType": "YulIdentifier", + "src": "21275:2:18" + }, + "nativeSrc": "21275:30:18", + "nodeType": "YulFunctionCall", + "src": "21275:30:18" + }, + "nativeSrc": "21272:117:18", + "nodeType": "YulIf", + "src": "21272:117:18" + }, + { + "nativeSrc": "21403:72:18", + "nodeType": "YulAssignment", + "src": "21403:72:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21447:9:18", + "nodeType": "YulIdentifier", + "src": "21447:9:18" + }, + { + "name": "offset", + "nativeSrc": "21458:6:18", + "nodeType": "YulIdentifier", + "src": "21458:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21443:3:18", + "nodeType": "YulIdentifier", + "src": "21443:3:18" + }, + "nativeSrc": "21443:22:18", + "nodeType": "YulFunctionCall", + "src": "21443:22:18" }, { - "name": "len", - "nativeSrc": "29857:3:18", + "name": "dataEnd", + "nativeSrc": "21467:7:18", "nodeType": "YulIdentifier", - "src": "29857:3:18" + "src": "21467:7:18" } ], "functionName": { - "name": "mul", - "nativeSrc": "29850:3:18", + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "21413:29:18", "nodeType": "YulIdentifier", - "src": "29850:3:18" + "src": "21413:29:18" }, - "nativeSrc": "29850:11:18", + "nativeSrc": "21413:62:18", "nodeType": "YulFunctionCall", - "src": "29850:11:18" - } - ], - "functionName": { - "name": "or", - "nativeSrc": "29841:2:18", - "nodeType": "YulIdentifier", - "src": "29841:2:18" - }, - "nativeSrc": "29841:21:18", - "nodeType": "YulFunctionCall", - "src": "29841:21:18" - }, - "variableNames": [ - { - "name": "used", - "nativeSrc": "29833:4:18", - "nodeType": "YulIdentifier", - "src": "29833:4:18" + "src": "21413:62:18" + }, + "variableNames": [ + { + "name": "value4", + "nativeSrc": "21403:6:18", + "nodeType": "YulIdentifier", + "src": "21403:6:18" + } + ] } ] } ] }, - "name": "extract_used_part_and_set_length_of_short_byte_array", - "nativeSrc": "29557:315:18", + "name": "abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr", + "nativeSrc": "20403:1089:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "data", - "nativeSrc": "29619:4:18", + "name": "headStart", + "nativeSrc": "20484:9:18", "nodeType": "YulTypedName", - "src": "29619:4:18", + "src": "20484:9:18", "type": "" }, { - "name": "len", - "nativeSrc": "29625:3:18", + "name": "dataEnd", + "nativeSrc": "20495:7:18", "nodeType": "YulTypedName", - "src": "29625:3:18", + "src": "20495:7:18", "type": "" } ], "returnVariables": [ { - "name": "used", - "nativeSrc": "29633:4:18", + "name": "value0", + "nativeSrc": "20507:6:18", + "nodeType": "YulTypedName", + "src": "20507:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "20515:6:18", + "nodeType": "YulTypedName", + "src": "20515:6:18", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "20523:6:18", + "nodeType": "YulTypedName", + "src": "20523:6:18", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "20531:6:18", + "nodeType": "YulTypedName", + "src": "20531:6:18", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "20539:6:18", "nodeType": "YulTypedName", - "src": "29633:4:18", + "src": "20539:6:18", "type": "" } ], - "src": "29557:315:18" + "src": "20403:1089:18" }, { "body": { - "nativeSrc": "29973:1431:18", + "nativeSrc": "21598:519:18", "nodeType": "YulBlock", - "src": "29973:1431:18", + "src": "21598:519:18", "statements": [ - { - "nativeSrc": "29988:51:18", - "nodeType": "YulVariableDeclaration", - "src": "29988:51:18", - "value": { - "arguments": [ - { - "name": "src", - "nativeSrc": "30035:3:18", - "nodeType": "YulIdentifier", - "src": "30035:3:18" - } - ], - "functionName": { - "name": "array_length_t_string_memory_ptr", - "nativeSrc": "30002:32:18", - "nodeType": "YulIdentifier", - "src": "30002:32:18" - }, - "nativeSrc": "30002:37:18", - "nodeType": "YulFunctionCall", - "src": "30002:37:18" - }, - "variables": [ - { - "name": "newLen", - "nativeSrc": "29992:6:18", - "nodeType": "YulTypedName", - "src": "29992:6:18", - "type": "" - } - ] - }, { "body": { - "nativeSrc": "30132:22:18", + "nativeSrc": "21644:83:18", "nodeType": "YulBlock", - "src": "30132:22:18", + "src": "21644:83:18", "statements": [ { "expression": { "arguments": [], "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "30134:16:18", + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "21646:77:18", "nodeType": "YulIdentifier", - "src": "30134:16:18" + "src": "21646:77:18" }, - "nativeSrc": "30134:18:18", + "nativeSrc": "21646:79:18", "nodeType": "YulFunctionCall", - "src": "30134:18:18" + "src": "21646:79:18" }, - "nativeSrc": "30134:18:18", + "nativeSrc": "21646:79:18", "nodeType": "YulExpressionStatement", - "src": "30134:18:18" + "src": "21646:79:18" } ] }, "condition": { - "arguments": [ - { - "name": "newLen", - "nativeSrc": "30104:6:18", - "nodeType": "YulIdentifier", - "src": "30104:6:18" - }, - { - "kind": "number", - "nativeSrc": "30112:18:18", - "nodeType": "YulLiteral", - "src": "30112:18:18", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "30101:2:18", - "nodeType": "YulIdentifier", - "src": "30101:2:18" - }, - "nativeSrc": "30101:30:18", - "nodeType": "YulFunctionCall", - "src": "30101:30:18" - }, - "nativeSrc": "30098:56:18", - "nodeType": "YulIf", - "src": "30098:56:18" - }, - { - "nativeSrc": "30168:52:18", - "nodeType": "YulVariableDeclaration", - "src": "30168:52:18", - "value": { "arguments": [ { "arguments": [ { - "name": "slot", - "nativeSrc": "30214:4:18", + "name": "dataEnd", + "nativeSrc": "21619:7:18", + "nodeType": "YulIdentifier", + "src": "21619:7:18" + }, + { + "name": "headStart", + "nativeSrc": "21628:9:18", "nodeType": "YulIdentifier", - "src": "30214:4:18" + "src": "21628:9:18" } ], "functionName": { - "name": "sload", - "nativeSrc": "30208:5:18", + "name": "sub", + "nativeSrc": "21615:3:18", "nodeType": "YulIdentifier", - "src": "30208:5:18" + "src": "21615:3:18" }, - "nativeSrc": "30208:11:18", + "nativeSrc": "21615:23:18", "nodeType": "YulFunctionCall", - "src": "30208:11:18" - } - ], - "functionName": { - "name": "extract_byte_array_length", - "nativeSrc": "30182:25:18", - "nodeType": "YulIdentifier", - "src": "30182:25:18" - }, - "nativeSrc": "30182:38:18", - "nodeType": "YulFunctionCall", - "src": "30182:38:18" - }, - "variables": [ - { - "name": "oldLen", - "nativeSrc": "30172:6:18", - "nodeType": "YulTypedName", - "src": "30172:6:18", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "slot", - "nativeSrc": "30321:4:18", - "nodeType": "YulIdentifier", - "src": "30321:4:18" - }, - { - "name": "oldLen", - "nativeSrc": "30327:6:18", - "nodeType": "YulIdentifier", - "src": "30327:6:18" + "src": "21615:23:18" }, { - "name": "newLen", - "nativeSrc": "30335:6:18", - "nodeType": "YulIdentifier", - "src": "30335:6:18" + "kind": "number", + "nativeSrc": "21640:2:18", + "nodeType": "YulLiteral", + "src": "21640:2:18", + "type": "", + "value": "96" } ], "functionName": { - "name": "clean_up_bytearray_end_slots_t_string_storage", - "nativeSrc": "30275:45:18", + "name": "slt", + "nativeSrc": "21611:3:18", "nodeType": "YulIdentifier", - "src": "30275:45:18" + "src": "21611:3:18" }, - "nativeSrc": "30275:67:18", + "nativeSrc": "21611:32:18", "nodeType": "YulFunctionCall", - "src": "30275:67:18" - }, - "nativeSrc": "30275:67:18", - "nodeType": "YulExpressionStatement", - "src": "30275:67:18" - }, - { - "nativeSrc": "30356:18:18", - "nodeType": "YulVariableDeclaration", - "src": "30356:18:18", - "value": { - "kind": "number", - "nativeSrc": "30373:1:18", - "nodeType": "YulLiteral", - "src": "30373:1:18", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "srcOffset", - "nativeSrc": "30360:9:18", - "nodeType": "YulTypedName", - "src": "30360:9:18", - "type": "" - } - ] - }, - { - "nativeSrc": "30388:17:18", - "nodeType": "YulAssignment", - "src": "30388:17:18", - "value": { - "kind": "number", - "nativeSrc": "30401:4:18", - "nodeType": "YulLiteral", - "src": "30401:4:18", - "type": "", - "value": "0x20" + "src": "21611:32:18" }, - "variableNames": [ - { - "name": "srcOffset", - "nativeSrc": "30388:9:18", - "nodeType": "YulIdentifier", - "src": "30388:9:18" - } - ] + "nativeSrc": "21608:119:18", + "nodeType": "YulIf", + "src": "21608:119:18" }, { - "cases": [ + "nativeSrc": "21737:117:18", + "nodeType": "YulBlock", + "src": "21737:117:18", + "statements": [ { - "body": { - "nativeSrc": "30460:667:18", - "nodeType": "YulBlock", - "src": "30460:667:18", - "statements": [ - { - "nativeSrc": "30478:37:18", - "nodeType": "YulVariableDeclaration", - "src": "30478:37:18", - "value": { - "arguments": [ - { - "name": "newLen", - "nativeSrc": "30497:6:18", - "nodeType": "YulIdentifier", - "src": "30497:6:18" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "30509:4:18", - "nodeType": "YulLiteral", - "src": "30509:4:18", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "30505:3:18", - "nodeType": "YulIdentifier", - "src": "30505:3:18" - }, - "nativeSrc": "30505:9:18", - "nodeType": "YulFunctionCall", - "src": "30505:9:18" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "30493:3:18", - "nodeType": "YulIdentifier", - "src": "30493:3:18" - }, - "nativeSrc": "30493:22:18", - "nodeType": "YulFunctionCall", - "src": "30493:22:18" - }, - "variables": [ - { - "name": "loopEnd", - "nativeSrc": "30482:7:18", - "nodeType": "YulTypedName", - "src": "30482:7:18", - "type": "" - } - ] - }, - { - "nativeSrc": "30533:51:18", - "nodeType": "YulVariableDeclaration", - "src": "30533:51:18", - "value": { - "arguments": [ - { - "name": "slot", - "nativeSrc": "30579:4:18", - "nodeType": "YulIdentifier", - "src": "30579:4:18" - } - ], - "functionName": { - "name": "array_dataslot_t_string_storage", - "nativeSrc": "30547:31:18", - "nodeType": "YulIdentifier", - "src": "30547:31:18" - }, - "nativeSrc": "30547:37:18", - "nodeType": "YulFunctionCall", - "src": "30547:37:18" - }, - "variables": [ - { - "name": "dstPtr", - "nativeSrc": "30537:6:18", - "nodeType": "YulTypedName", - "src": "30537:6:18", - "type": "" - } - ] - }, - { - "nativeSrc": "30601:10:18", - "nodeType": "YulVariableDeclaration", - "src": "30601:10:18", - "value": { - "kind": "number", - "nativeSrc": "30610:1:18", - "nodeType": "YulLiteral", - "src": "30610:1:18", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nativeSrc": "30605:1:18", - "nodeType": "YulTypedName", - "src": "30605:1:18", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "30673:179:18", - "nodeType": "YulBlock", - "src": "30673:179:18", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "dstPtr", - "nativeSrc": "30702:6:18", - "nodeType": "YulIdentifier", - "src": "30702:6:18" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "30720:3:18", - "nodeType": "YulIdentifier", - "src": "30720:3:18" - }, - { - "name": "srcOffset", - "nativeSrc": "30725:9:18", - "nodeType": "YulIdentifier", - "src": "30725:9:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "30716:3:18", - "nodeType": "YulIdentifier", - "src": "30716:3:18" - }, - "nativeSrc": "30716:19:18", - "nodeType": "YulFunctionCall", - "src": "30716:19:18" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "30710:5:18", - "nodeType": "YulIdentifier", - "src": "30710:5:18" - }, - "nativeSrc": "30710:26:18", - "nodeType": "YulFunctionCall", - "src": "30710:26:18" - } - ], - "functionName": { - "name": "sstore", - "nativeSrc": "30695:6:18", - "nodeType": "YulIdentifier", - "src": "30695:6:18" - }, - "nativeSrc": "30695:42:18", - "nodeType": "YulFunctionCall", - "src": "30695:42:18" - }, - "nativeSrc": "30695:42:18", - "nodeType": "YulExpressionStatement", - "src": "30695:42:18" - }, - { - "nativeSrc": "30758:24:18", - "nodeType": "YulAssignment", - "src": "30758:24:18", - "value": { - "arguments": [ - { - "name": "dstPtr", - "nativeSrc": "30772:6:18", - "nodeType": "YulIdentifier", - "src": "30772:6:18" - }, - { - "kind": "number", - "nativeSrc": "30780:1:18", - "nodeType": "YulLiteral", - "src": "30780:1:18", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "30768:3:18", - "nodeType": "YulIdentifier", - "src": "30768:3:18" - }, - "nativeSrc": "30768:14:18", - "nodeType": "YulFunctionCall", - "src": "30768:14:18" - }, - "variableNames": [ - { - "name": "dstPtr", - "nativeSrc": "30758:6:18", - "nodeType": "YulIdentifier", - "src": "30758:6:18" - } - ] - }, - { - "nativeSrc": "30803:31:18", - "nodeType": "YulAssignment", - "src": "30803:31:18", - "value": { - "arguments": [ - { - "name": "srcOffset", - "nativeSrc": "30820:9:18", - "nodeType": "YulIdentifier", - "src": "30820:9:18" - }, - { - "kind": "number", - "nativeSrc": "30831:2:18", - "nodeType": "YulLiteral", - "src": "30831:2:18", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "30816:3:18", - "nodeType": "YulIdentifier", - "src": "30816:3:18" - }, - "nativeSrc": "30816:18:18", - "nodeType": "YulFunctionCall", - "src": "30816:18:18" - }, - "variableNames": [ - { - "name": "srcOffset", - "nativeSrc": "30803:9:18", - "nodeType": "YulIdentifier", - "src": "30803:9:18" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nativeSrc": "30639:1:18", - "nodeType": "YulIdentifier", - "src": "30639:1:18" - }, - { - "name": "loopEnd", - "nativeSrc": "30642:7:18", - "nodeType": "YulIdentifier", - "src": "30642:7:18" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "30636:2:18", - "nodeType": "YulIdentifier", - "src": "30636:2:18" - }, - "nativeSrc": "30636:14:18", - "nodeType": "YulFunctionCall", - "src": "30636:14:18" - }, - "nativeSrc": "30628:224:18", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "30651:21:18", - "nodeType": "YulBlock", - "src": "30651:21:18", - "statements": [ - { - "nativeSrc": "30653:17:18", - "nodeType": "YulAssignment", - "src": "30653:17:18", - "value": { - "arguments": [ - { - "name": "i", - "nativeSrc": "30662:1:18", - "nodeType": "YulIdentifier", - "src": "30662:1:18" - }, - { - "kind": "number", - "nativeSrc": "30665:4:18", - "nodeType": "YulLiteral", - "src": "30665:4:18", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "30658:3:18", - "nodeType": "YulIdentifier", - "src": "30658:3:18" - }, - "nativeSrc": "30658:12:18", - "nodeType": "YulFunctionCall", - "src": "30658:12:18" - }, - "variableNames": [ - { - "name": "i", - "nativeSrc": "30653:1:18", - "nodeType": "YulIdentifier", - "src": "30653:1:18" - } - ] - } - ] - }, - "pre": { - "nativeSrc": "30632:3:18", - "nodeType": "YulBlock", - "src": "30632:3:18", - "statements": [] - }, - "src": "30628:224:18" - }, - { - "body": { - "nativeSrc": "30892:168:18", - "nodeType": "YulBlock", - "src": "30892:168:18", - "statements": [ - { - "nativeSrc": "30914:43:18", - "nodeType": "YulVariableDeclaration", - "src": "30914:43:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "30941:3:18", - "nodeType": "YulIdentifier", - "src": "30941:3:18" - }, - { - "name": "srcOffset", - "nativeSrc": "30946:9:18", - "nodeType": "YulIdentifier", - "src": "30946:9:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "30937:3:18", - "nodeType": "YulIdentifier", - "src": "30937:3:18" - }, - "nativeSrc": "30937:19:18", - "nodeType": "YulFunctionCall", - "src": "30937:19:18" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "30931:5:18", - "nodeType": "YulIdentifier", - "src": "30931:5:18" - }, - "nativeSrc": "30931:26:18", - "nodeType": "YulFunctionCall", - "src": "30931:26:18" - }, - "variables": [ - { - "name": "lastValue", - "nativeSrc": "30918:9:18", - "nodeType": "YulTypedName", - "src": "30918:9:18", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "dstPtr", - "nativeSrc": "30985:6:18", - "nodeType": "YulIdentifier", - "src": "30985:6:18" - }, - { - "arguments": [ - { - "name": "lastValue", - "nativeSrc": "31012:9:18", - "nodeType": "YulIdentifier", - "src": "31012:9:18" - }, - { - "arguments": [ - { - "name": "newLen", - "nativeSrc": "31027:6:18", - "nodeType": "YulIdentifier", - "src": "31027:6:18" - }, - { - "kind": "number", - "nativeSrc": "31035:4:18", - "nodeType": "YulLiteral", - "src": "31035:4:18", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "31023:3:18", - "nodeType": "YulIdentifier", - "src": "31023:3:18" - }, - "nativeSrc": "31023:17:18", - "nodeType": "YulFunctionCall", - "src": "31023:17:18" - } - ], - "functionName": { - "name": "mask_bytes_dynamic", - "nativeSrc": "30993:18:18", - "nodeType": "YulIdentifier", - "src": "30993:18:18" - }, - "nativeSrc": "30993:48:18", - "nodeType": "YulFunctionCall", - "src": "30993:48:18" - } - ], - "functionName": { - "name": "sstore", - "nativeSrc": "30978:6:18", - "nodeType": "YulIdentifier", - "src": "30978:6:18" - }, - "nativeSrc": "30978:64:18", - "nodeType": "YulFunctionCall", - "src": "30978:64:18" - }, - "nativeSrc": "30978:64:18", - "nodeType": "YulExpressionStatement", - "src": "30978:64:18" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "loopEnd", - "nativeSrc": "30875:7:18", - "nodeType": "YulIdentifier", - "src": "30875:7:18" - }, - { - "name": "newLen", - "nativeSrc": "30884:6:18", - "nodeType": "YulIdentifier", - "src": "30884:6:18" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "30872:2:18", + "nativeSrc": "21752:15:18", + "nodeType": "YulVariableDeclaration", + "src": "21752:15:18", + "value": { + "kind": "number", + "nativeSrc": "21766:1:18", + "nodeType": "YulLiteral", + "src": "21766:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "21756:6:18", + "nodeType": "YulTypedName", + "src": "21756:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "21781:63:18", + "nodeType": "YulAssignment", + "src": "21781:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21816:9:18", "nodeType": "YulIdentifier", - "src": "30872:2:18" + "src": "21816:9:18" }, - "nativeSrc": "30872:19:18", - "nodeType": "YulFunctionCall", - "src": "30872:19:18" + { + "name": "offset", + "nativeSrc": "21827:6:18", + "nodeType": "YulIdentifier", + "src": "21827:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21812:3:18", + "nodeType": "YulIdentifier", + "src": "21812:3:18" }, - "nativeSrc": "30869:191:18", - "nodeType": "YulIf", - "src": "30869:191:18" + "nativeSrc": "21812:22:18", + "nodeType": "YulFunctionCall", + "src": "21812:22:18" }, { - "expression": { - "arguments": [ - { - "name": "slot", - "nativeSrc": "31084:4:18", - "nodeType": "YulIdentifier", - "src": "31084:4:18" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "newLen", - "nativeSrc": "31098:6:18", - "nodeType": "YulIdentifier", - "src": "31098:6:18" - }, - { - "kind": "number", - "nativeSrc": "31106:1:18", - "nodeType": "YulLiteral", - "src": "31106:1:18", - "type": "", - "value": "2" - } - ], - "functionName": { - "name": "mul", - "nativeSrc": "31094:3:18", - "nodeType": "YulIdentifier", - "src": "31094:3:18" - }, - "nativeSrc": "31094:14:18", - "nodeType": "YulFunctionCall", - "src": "31094:14:18" - }, - { - "kind": "number", - "nativeSrc": "31110:1:18", - "nodeType": "YulLiteral", - "src": "31110:1:18", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "31090:3:18", - "nodeType": "YulIdentifier", - "src": "31090:3:18" - }, - "nativeSrc": "31090:22:18", - "nodeType": "YulFunctionCall", - "src": "31090:22:18" - } - ], - "functionName": { - "name": "sstore", - "nativeSrc": "31077:6:18", - "nodeType": "YulIdentifier", - "src": "31077:6:18" - }, - "nativeSrc": "31077:36:18", - "nodeType": "YulFunctionCall", - "src": "31077:36:18" - }, - "nativeSrc": "31077:36:18", - "nodeType": "YulExpressionStatement", - "src": "31077:36:18" + "name": "dataEnd", + "nativeSrc": "21836:7:18", + "nodeType": "YulIdentifier", + "src": "21836:7:18" } - ] + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "21791:20:18", + "nodeType": "YulIdentifier", + "src": "21791:20:18" + }, + "nativeSrc": "21791:53:18", + "nodeType": "YulFunctionCall", + "src": "21791:53:18" }, - "nativeSrc": "30453:674:18", - "nodeType": "YulCase", - "src": "30453:674:18", + "variableNames": [ + { + "name": "value0", + "nativeSrc": "21781:6:18", + "nodeType": "YulIdentifier", + "src": "21781:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "21864:118:18", + "nodeType": "YulBlock", + "src": "21864:118:18", + "statements": [ + { + "nativeSrc": "21879:16:18", + "nodeType": "YulVariableDeclaration", + "src": "21879:16:18", "value": { "kind": "number", - "nativeSrc": "30458:1:18", + "nativeSrc": "21893:2:18", "nodeType": "YulLiteral", - "src": "30458:1:18", + "src": "21893:2:18", "type": "", - "value": "1" - } + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "21883:6:18", + "nodeType": "YulTypedName", + "src": "21883:6:18", + "type": "" + } + ] }, { - "body": { - "nativeSrc": "31148:246:18", - "nodeType": "YulBlock", - "src": "31148:246:18", - "statements": [ + "nativeSrc": "21909:63:18", + "nodeType": "YulAssignment", + "src": "21909:63:18", + "value": { + "arguments": [ { - "nativeSrc": "31166:14:18", - "nodeType": "YulVariableDeclaration", - "src": "31166:14:18", - "value": { - "kind": "number", - "nativeSrc": "31179:1:18", - "nodeType": "YulLiteral", - "src": "31179:1:18", - "type": "", - "value": "0" - }, - "variables": [ + "arguments": [ { - "name": "value", - "nativeSrc": "31170:5:18", - "nodeType": "YulTypedName", - "src": "31170:5:18", - "type": "" + "name": "headStart", + "nativeSrc": "21944:9:18", + "nodeType": "YulIdentifier", + "src": "21944:9:18" + }, + { + "name": "offset", + "nativeSrc": "21955:6:18", + "nodeType": "YulIdentifier", + "src": "21955:6:18" } - ] - }, - { - "body": { - "nativeSrc": "31207:75:18", - "nodeType": "YulBlock", - "src": "31207:75:18", - "statements": [ - { - "nativeSrc": "31229:35:18", - "nodeType": "YulAssignment", - "src": "31229:35:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "31248:3:18", - "nodeType": "YulIdentifier", - "src": "31248:3:18" - }, - { - "name": "srcOffset", - "nativeSrc": "31253:9:18", - "nodeType": "YulIdentifier", - "src": "31253:9:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "31244:3:18", - "nodeType": "YulIdentifier", - "src": "31244:3:18" - }, - "nativeSrc": "31244:19:18", - "nodeType": "YulFunctionCall", - "src": "31244:19:18" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "31238:5:18", - "nodeType": "YulIdentifier", - "src": "31238:5:18" - }, - "nativeSrc": "31238:26:18", - "nodeType": "YulFunctionCall", - "src": "31238:26:18" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "31229:5:18", - "nodeType": "YulIdentifier", - "src": "31229:5:18" - } - ] - } - ] - }, - "condition": { - "name": "newLen", - "nativeSrc": "31200:6:18", + ], + "functionName": { + "name": "add", + "nativeSrc": "21940:3:18", "nodeType": "YulIdentifier", - "src": "31200:6:18" + "src": "21940:3:18" }, - "nativeSrc": "31197:85:18", - "nodeType": "YulIf", - "src": "31197:85:18" + "nativeSrc": "21940:22:18", + "nodeType": "YulFunctionCall", + "src": "21940:22:18" }, { - "expression": { - "arguments": [ - { - "name": "slot", - "nativeSrc": "31306:4:18", - "nodeType": "YulIdentifier", - "src": "31306:4:18" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "31365:5:18", - "nodeType": "YulIdentifier", - "src": "31365:5:18" - }, - { - "name": "newLen", - "nativeSrc": "31372:6:18", - "nodeType": "YulIdentifier", - "src": "31372:6:18" - } - ], - "functionName": { - "name": "extract_used_part_and_set_length_of_short_byte_array", - "nativeSrc": "31312:52:18", - "nodeType": "YulIdentifier", - "src": "31312:52:18" - }, - "nativeSrc": "31312:67:18", - "nodeType": "YulFunctionCall", - "src": "31312:67:18" - } - ], - "functionName": { - "name": "sstore", - "nativeSrc": "31299:6:18", + "name": "dataEnd", + "nativeSrc": "21964:7:18", + "nodeType": "YulIdentifier", + "src": "21964:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "21919:20:18", + "nodeType": "YulIdentifier", + "src": "21919:20:18" + }, + "nativeSrc": "21919:53:18", + "nodeType": "YulFunctionCall", + "src": "21919:53:18" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "21909:6:18", + "nodeType": "YulIdentifier", + "src": "21909:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "21992:118:18", + "nodeType": "YulBlock", + "src": "21992:118:18", + "statements": [ + { + "nativeSrc": "22007:16:18", + "nodeType": "YulVariableDeclaration", + "src": "22007:16:18", + "value": { + "kind": "number", + "nativeSrc": "22021:2:18", + "nodeType": "YulLiteral", + "src": "22021:2:18", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "22011:6:18", + "nodeType": "YulTypedName", + "src": "22011:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "22037:63:18", + "nodeType": "YulAssignment", + "src": "22037:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22072:9:18", "nodeType": "YulIdentifier", - "src": "31299:6:18" + "src": "22072:9:18" }, - "nativeSrc": "31299:81:18", - "nodeType": "YulFunctionCall", - "src": "31299:81:18" + { + "name": "offset", + "nativeSrc": "22083:6:18", + "nodeType": "YulIdentifier", + "src": "22083:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22068:3:18", + "nodeType": "YulIdentifier", + "src": "22068:3:18" }, - "nativeSrc": "31299:81:18", - "nodeType": "YulExpressionStatement", - "src": "31299:81:18" + "nativeSrc": "22068:22:18", + "nodeType": "YulFunctionCall", + "src": "22068:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "22092:7:18", + "nodeType": "YulIdentifier", + "src": "22092:7:18" } - ] + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "22047:20:18", + "nodeType": "YulIdentifier", + "src": "22047:20:18" + }, + "nativeSrc": "22047:53:18", + "nodeType": "YulFunctionCall", + "src": "22047:53:18" }, - "nativeSrc": "31140:254:18", - "nodeType": "YulCase", - "src": "31140:254:18", - "value": "default" + "variableNames": [ + { + "name": "value2", + "nativeSrc": "22037:6:18", + "nodeType": "YulIdentifier", + "src": "22037:6:18" + } + ] } - ], + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256t_uint256", + "nativeSrc": "21498:619:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "21552:9:18", + "nodeType": "YulTypedName", + "src": "21552:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "21563:7:18", + "nodeType": "YulTypedName", + "src": "21563:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "21575:6:18", + "nodeType": "YulTypedName", + "src": "21575:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "21583:6:18", + "nodeType": "YulTypedName", + "src": "21583:6:18", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "21591:6:18", + "nodeType": "YulTypedName", + "src": "21591:6:18", + "type": "" + } + ], + "src": "21498:619:18" + }, + { + "body": { + "nativeSrc": "22151:152:18", + "nodeType": "YulBlock", + "src": "22151:152:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22168:1:18", + "nodeType": "YulLiteral", + "src": "22168:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "22171:77:18", + "nodeType": "YulLiteral", + "src": "22171:77:18", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22161:6:18", + "nodeType": "YulIdentifier", + "src": "22161:6:18" + }, + "nativeSrc": "22161:88:18", + "nodeType": "YulFunctionCall", + "src": "22161:88:18" + }, + "nativeSrc": "22161:88:18", + "nodeType": "YulExpressionStatement", + "src": "22161:88:18" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22265:1:18", + "nodeType": "YulLiteral", + "src": "22265:1:18", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "22268:4:18", + "nodeType": "YulLiteral", + "src": "22268:4:18", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22258:6:18", + "nodeType": "YulIdentifier", + "src": "22258:6:18" + }, + "nativeSrc": "22258:15:18", + "nodeType": "YulFunctionCall", + "src": "22258:15:18" + }, + "nativeSrc": "22258:15:18", + "nodeType": "YulExpressionStatement", + "src": "22258:15:18" + }, + { "expression": { "arguments": [ { - "name": "newLen", - "nativeSrc": "30429:6:18", + "kind": "number", + "nativeSrc": "22289:1:18", + "nodeType": "YulLiteral", + "src": "22289:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "22292:4:18", + "nodeType": "YulLiteral", + "src": "22292:4:18", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "22282:6:18", + "nodeType": "YulIdentifier", + "src": "22282:6:18" + }, + "nativeSrc": "22282:15:18", + "nodeType": "YulFunctionCall", + "src": "22282:15:18" + }, + "nativeSrc": "22282:15:18", + "nodeType": "YulExpressionStatement", + "src": "22282:15:18" + } + ] + }, + "name": "panic_error_0x22", + "nativeSrc": "22123:180:18", + "nodeType": "YulFunctionDefinition", + "src": "22123:180:18" + }, + { + "body": { + "nativeSrc": "22360:269:18", + "nodeType": "YulBlock", + "src": "22360:269:18", + "statements": [ + { + "nativeSrc": "22370:22:18", + "nodeType": "YulAssignment", + "src": "22370:22:18", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "22384:4:18", + "nodeType": "YulIdentifier", + "src": "22384:4:18" + }, + { + "kind": "number", + "nativeSrc": "22390:1:18", + "nodeType": "YulLiteral", + "src": "22390:1:18", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "22380:3:18", + "nodeType": "YulIdentifier", + "src": "22380:3:18" + }, + "nativeSrc": "22380:12:18", + "nodeType": "YulFunctionCall", + "src": "22380:12:18" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "22370:6:18", + "nodeType": "YulIdentifier", + "src": "22370:6:18" + } + ] + }, + { + "nativeSrc": "22401:38:18", + "nodeType": "YulVariableDeclaration", + "src": "22401:38:18", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "22431:4:18", + "nodeType": "YulIdentifier", + "src": "22431:4:18" + }, + { + "kind": "number", + "nativeSrc": "22437:1:18", + "nodeType": "YulLiteral", + "src": "22437:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "22427:3:18", + "nodeType": "YulIdentifier", + "src": "22427:3:18" + }, + "nativeSrc": "22427:12:18", + "nodeType": "YulFunctionCall", + "src": "22427:12:18" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "22405:18:18", + "nodeType": "YulTypedName", + "src": "22405:18:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "22478:51:18", + "nodeType": "YulBlock", + "src": "22478:51:18", + "statements": [ + { + "nativeSrc": "22492:27:18", + "nodeType": "YulAssignment", + "src": "22492:27:18", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "22506:6:18", + "nodeType": "YulIdentifier", + "src": "22506:6:18" + }, + { + "kind": "number", + "nativeSrc": "22514:4:18", + "nodeType": "YulLiteral", + "src": "22514:4:18", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "22502:3:18", + "nodeType": "YulIdentifier", + "src": "22502:3:18" + }, + "nativeSrc": "22502:17:18", + "nodeType": "YulFunctionCall", + "src": "22502:17:18" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "22492:6:18", + "nodeType": "YulIdentifier", + "src": "22492:6:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "22458:18:18", + "nodeType": "YulIdentifier", + "src": "22458:18:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "22451:6:18", + "nodeType": "YulIdentifier", + "src": "22451:6:18" + }, + "nativeSrc": "22451:26:18", + "nodeType": "YulFunctionCall", + "src": "22451:26:18" + }, + "nativeSrc": "22448:81:18", + "nodeType": "YulIf", + "src": "22448:81:18" + }, + { + "body": { + "nativeSrc": "22581:42:18", + "nodeType": "YulBlock", + "src": "22581:42:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nativeSrc": "22595:16:18", + "nodeType": "YulIdentifier", + "src": "22595:16:18" + }, + "nativeSrc": "22595:18:18", + "nodeType": "YulFunctionCall", + "src": "22595:18:18" + }, + "nativeSrc": "22595:18:18", + "nodeType": "YulExpressionStatement", + "src": "22595:18:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "22545:18:18", "nodeType": "YulIdentifier", - "src": "30429:6:18" + "src": "22545:18:18" }, { - "kind": "number", - "nativeSrc": "30437:2:18", - "nodeType": "YulLiteral", - "src": "30437:2:18", - "type": "", - "value": "31" + "arguments": [ + { + "name": "length", + "nativeSrc": "22568:6:18", + "nodeType": "YulIdentifier", + "src": "22568:6:18" + }, + { + "kind": "number", + "nativeSrc": "22576:2:18", + "nodeType": "YulLiteral", + "src": "22576:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "22565:2:18", + "nodeType": "YulIdentifier", + "src": "22565:2:18" + }, + "nativeSrc": "22565:14:18", + "nodeType": "YulFunctionCall", + "src": "22565:14:18" } ], "functionName": { - "name": "gt", - "nativeSrc": "30426:2:18", + "name": "eq", + "nativeSrc": "22542:2:18", "nodeType": "YulIdentifier", - "src": "30426:2:18" + "src": "22542:2:18" }, - "nativeSrc": "30426:14:18", + "nativeSrc": "22542:38:18", "nodeType": "YulFunctionCall", - "src": "30426:14:18" + "src": "22542:38:18" }, - "nativeSrc": "30419:975:18", - "nodeType": "YulSwitch", - "src": "30419:975:18" + "nativeSrc": "22539:84:18", + "nodeType": "YulIf", + "src": "22539:84:18" } ] }, - "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", - "nativeSrc": "29881:1523:18", + "name": "extract_byte_array_length", + "nativeSrc": "22309:320:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "slot", - "nativeSrc": "29962:4:18", + "name": "data", + "nativeSrc": "22344:4:18", "nodeType": "YulTypedName", - "src": "29962:4:18", + "src": "22344:4:18", "type": "" - }, + } + ], + "returnVariables": [ { - "name": "src", - "nativeSrc": "29968:3:18", + "name": "length", + "nativeSrc": "22353:6:18", "nodeType": "YulTypedName", - "src": "29968:3:18", + "src": "22353:6:18", "type": "" } ], - "src": "29881:1523:18" + "src": "22309:320:18" }, { "body": { - "nativeSrc": "31479:61:18", + "nativeSrc": "22700:53:18", "nodeType": "YulBlock", - "src": "31479:61:18", + "src": "22700:53:18", "statements": [ { "expression": { "arguments": [ { "name": "pos", - "nativeSrc": "31500:3:18", + "nativeSrc": "22717:3:18", "nodeType": "YulIdentifier", - "src": "31500:3:18" + "src": "22717:3:18" }, { "arguments": [ { "name": "value", - "nativeSrc": "31523:5:18", + "nativeSrc": "22740:5:18", "nodeType": "YulIdentifier", - "src": "31523:5:18" + "src": "22740:5:18" } ], "functionName": { "name": "cleanup_t_address", - "nativeSrc": "31505:17:18", + "nativeSrc": "22722:17:18", "nodeType": "YulIdentifier", - "src": "31505:17:18" + "src": "22722:17:18" }, - "nativeSrc": "31505:24:18", + "nativeSrc": "22722:24:18", "nodeType": "YulFunctionCall", - "src": "31505:24:18" + "src": "22722:24:18" } ], "functionName": { "name": "mstore", - "nativeSrc": "31493:6:18", + "nativeSrc": "22710:6:18", "nodeType": "YulIdentifier", - "src": "31493:6:18" + "src": "22710:6:18" }, - "nativeSrc": "31493:37:18", + "nativeSrc": "22710:37:18", "nodeType": "YulFunctionCall", - "src": "31493:37:18" + "src": "22710:37:18" }, - "nativeSrc": "31493:37:18", + "nativeSrc": "22710:37:18", "nodeType": "YulExpressionStatement", - "src": "31493:37:18" + "src": "22710:37:18" } ] }, "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "31414:126:18", + "nativeSrc": "22635:118:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", - "nativeSrc": "31467:5:18", + "nativeSrc": "22688:5:18", "nodeType": "YulTypedName", - "src": "31467:5:18", + "src": "22688:5:18", "type": "" }, { "name": "pos", - "nativeSrc": "31474:3:18", + "nativeSrc": "22695:3:18", "nodeType": "YulTypedName", - "src": "31474:3:18", + "src": "22695:3:18", "type": "" } ], - "src": "31414:126:18" + "src": "22635:118:18" }, { "body": { - "nativeSrc": "31676:222:18", + "nativeSrc": "22885:206:18", "nodeType": "YulBlock", - "src": "31676:222:18", + "src": "22885:206:18", "statements": [ { - "nativeSrc": "31690:26:18", + "nativeSrc": "22895:26:18", "nodeType": "YulAssignment", - "src": "31690:26:18", + "src": "22895:26:18", "value": { "arguments": [ { "name": "headStart", - "nativeSrc": "31702:9:18", + "nativeSrc": "22907:9:18", "nodeType": "YulIdentifier", - "src": "31702:9:18" + "src": "22907:9:18" }, { "kind": "number", - "nativeSrc": "31713:2:18", + "nativeSrc": "22918:2:18", "nodeType": "YulLiteral", - "src": "31713:2:18", + "src": "22918:2:18", "type": "", "value": "64" } ], "functionName": { "name": "add", - "nativeSrc": "31698:3:18", + "nativeSrc": "22903:3:18", "nodeType": "YulIdentifier", - "src": "31698:3:18" + "src": "22903:3:18" }, - "nativeSrc": "31698:18:18", + "nativeSrc": "22903:18:18", "nodeType": "YulFunctionCall", - "src": "31698:18:18" + "src": "22903:18:18" }, "variableNames": [ { "name": "tail", - "nativeSrc": "31690:4:18", + "nativeSrc": "22895:4:18", "nodeType": "YulIdentifier", - "src": "31690:4:18" + "src": "22895:4:18" } ] }, @@ -78507,459 +78262,185 @@ "arguments": [ { "name": "value0", - "nativeSrc": "31774:6:18", + "nativeSrc": "22975:6:18", "nodeType": "YulIdentifier", - "src": "31774:6:18" + "src": "22975:6:18" }, { "arguments": [ { "name": "headStart", - "nativeSrc": "31787:9:18", + "nativeSrc": "22988:9:18", "nodeType": "YulIdentifier", - "src": "31787:9:18" + "src": "22988:9:18" }, { "kind": "number", - "nativeSrc": "31798:1:18", + "nativeSrc": "22999:1:18", "nodeType": "YulLiteral", - "src": "31798:1:18", + "src": "22999:1:18", "type": "", "value": "0" } ], "functionName": { "name": "add", - "nativeSrc": "31783:3:18", + "nativeSrc": "22984:3:18", "nodeType": "YulIdentifier", - "src": "31783:3:18" + "src": "22984:3:18" }, - "nativeSrc": "31783:17:18", + "nativeSrc": "22984:17:18", "nodeType": "YulFunctionCall", - "src": "31783:17:18" + "src": "22984:17:18" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "31730:43:18", + "nativeSrc": "22931:43:18", "nodeType": "YulIdentifier", - "src": "31730:43:18" + "src": "22931:43:18" }, - "nativeSrc": "31730:71:18", + "nativeSrc": "22931:71:18", "nodeType": "YulFunctionCall", - "src": "31730:71:18" + "src": "22931:71:18" }, - "nativeSrc": "31730:71:18", + "nativeSrc": "22931:71:18", "nodeType": "YulExpressionStatement", - "src": "31730:71:18" + "src": "22931:71:18" }, { "expression": { "arguments": [ { "name": "value1", - "nativeSrc": "31859:6:18", + "nativeSrc": "23056:6:18", "nodeType": "YulIdentifier", - "src": "31859:6:18" + "src": "23056:6:18" }, { "arguments": [ { "name": "headStart", - "nativeSrc": "31872:9:18", + "nativeSrc": "23069:9:18", "nodeType": "YulIdentifier", - "src": "31872:9:18" + "src": "23069:9:18" }, { "kind": "number", - "nativeSrc": "31883:2:18", + "nativeSrc": "23080:2:18", "nodeType": "YulLiteral", - "src": "31883:2:18", + "src": "23080:2:18", "type": "", "value": "32" } ], "functionName": { "name": "add", - "nativeSrc": "31868:3:18", + "nativeSrc": "23065:3:18", "nodeType": "YulIdentifier", - "src": "31868:3:18" + "src": "23065:3:18" }, - "nativeSrc": "31868:18:18", + "nativeSrc": "23065:18:18", "nodeType": "YulFunctionCall", - "src": "31868:18:18" + "src": "23065:18:18" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "31815:43:18", + "nativeSrc": "23012:43:18", "nodeType": "YulIdentifier", - "src": "31815:43:18" + "src": "23012:43:18" }, - "nativeSrc": "31815:72:18", + "nativeSrc": "23012:72:18", "nodeType": "YulFunctionCall", - "src": "31815:72:18" + "src": "23012:72:18" }, - "nativeSrc": "31815:72:18", + "nativeSrc": "23012:72:18", "nodeType": "YulExpressionStatement", - "src": "31815:72:18" + "src": "23012:72:18" } ] }, "name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed", - "nativeSrc": "31550:348:18", + "nativeSrc": "22759:332:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", - "nativeSrc": "31640:9:18", + "nativeSrc": "22849:9:18", "nodeType": "YulTypedName", - "src": "31640:9:18", + "src": "22849:9:18", "type": "" }, { "name": "value1", - "nativeSrc": "31652:6:18", + "nativeSrc": "22861:6:18", "nodeType": "YulTypedName", - "src": "31652:6:18", + "src": "22861:6:18", "type": "" }, { "name": "value0", - "nativeSrc": "31660:6:18", + "nativeSrc": "22869:6:18", "nodeType": "YulTypedName", - "src": "31660:6:18", + "src": "22869:6:18", "type": "" } ], "returnVariables": [ { "name": "tail", - "nativeSrc": "31671:4:18", - "nodeType": "YulTypedName", - "src": "31671:4:18", - "type": "" - } - ], - "src": "31550:348:18" - }, - { - "body": { - "nativeSrc": "31936:168:18", - "nodeType": "YulBlock", - "src": "31936:168:18", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "31957:1:18", - "nodeType": "YulLiteral", - "src": "31957:1:18", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "31960:77:18", - "nodeType": "YulLiteral", - "src": "31960:77:18", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "31950:6:18", - "nodeType": "YulIdentifier", - "src": "31950:6:18" - }, - "nativeSrc": "31950:88:18", - "nodeType": "YulFunctionCall", - "src": "31950:88:18" - }, - "nativeSrc": "31950:88:18", - "nodeType": "YulExpressionStatement", - "src": "31950:88:18" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "32058:1:18", - "nodeType": "YulLiteral", - "src": "32058:1:18", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "32061:4:18", - "nodeType": "YulLiteral", - "src": "32061:4:18", - "type": "", - "value": "0x11" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "32051:6:18", - "nodeType": "YulIdentifier", - "src": "32051:6:18" - }, - "nativeSrc": "32051:15:18", - "nodeType": "YulFunctionCall", - "src": "32051:15:18" - }, - "nativeSrc": "32051:15:18", - "nodeType": "YulExpressionStatement", - "src": "32051:15:18" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "32086:1:18", - "nodeType": "YulLiteral", - "src": "32086:1:18", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "32089:4:18", - "nodeType": "YulLiteral", - "src": "32089:4:18", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "32079:6:18", - "nodeType": "YulIdentifier", - "src": "32079:6:18" - }, - "nativeSrc": "32079:15:18", - "nodeType": "YulFunctionCall", - "src": "32079:15:18" - }, - "nativeSrc": "32079:15:18", - "nodeType": "YulExpressionStatement", - "src": "32079:15:18" - } - ] - }, - "name": "panic_error_0x11", - "nativeSrc": "31908:196:18", - "nodeType": "YulFunctionDefinition", - "src": "31908:196:18" - }, - { - "body": { - "nativeSrc": "32157:206:18", - "nodeType": "YulBlock", - "src": "32157:206:18", - "statements": [ - { - "nativeSrc": "32171:33:18", - "nodeType": "YulAssignment", - "src": "32171:33:18", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "32198:5:18", - "nodeType": "YulIdentifier", - "src": "32198:5:18" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "32180:17:18", - "nodeType": "YulIdentifier", - "src": "32180:17:18" - }, - "nativeSrc": "32180:24:18", - "nodeType": "YulFunctionCall", - "src": "32180:24:18" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "32171:5:18", - "nodeType": "YulIdentifier", - "src": "32171:5:18" - } - ] - }, - { - "body": { - "nativeSrc": "32298:22:18", - "nodeType": "YulBlock", - "src": "32298:22:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nativeSrc": "32300:16:18", - "nodeType": "YulIdentifier", - "src": "32300:16:18" - }, - "nativeSrc": "32300:18:18", - "nodeType": "YulFunctionCall", - "src": "32300:18:18" - }, - "nativeSrc": "32300:18:18", - "nodeType": "YulExpressionStatement", - "src": "32300:18:18" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "value", - "nativeSrc": "32223:5:18", - "nodeType": "YulIdentifier", - "src": "32223:5:18" - }, - { - "kind": "number", - "nativeSrc": "32230:66:18", - "nodeType": "YulLiteral", - "src": "32230:66:18", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "32220:2:18", - "nodeType": "YulIdentifier", - "src": "32220:2:18" - }, - "nativeSrc": "32220:77:18", - "nodeType": "YulFunctionCall", - "src": "32220:77:18" - }, - "nativeSrc": "32217:103:18", - "nodeType": "YulIf", - "src": "32217:103:18" - }, - { - "nativeSrc": "32333:20:18", - "nodeType": "YulAssignment", - "src": "32333:20:18", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "32344:5:18", - "nodeType": "YulIdentifier", - "src": "32344:5:18" - }, - { - "kind": "number", - "nativeSrc": "32351:1:18", - "nodeType": "YulLiteral", - "src": "32351:1:18", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "32340:3:18", - "nodeType": "YulIdentifier", - "src": "32340:3:18" - }, - "nativeSrc": "32340:13:18", - "nodeType": "YulFunctionCall", - "src": "32340:13:18" - }, - "variableNames": [ - { - "name": "ret", - "nativeSrc": "32333:3:18", - "nodeType": "YulIdentifier", - "src": "32333:3:18" - } - ] - } - ] - }, - "name": "increment_t_uint256", - "nativeSrc": "32114:249:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "32143:5:18", - "nodeType": "YulTypedName", - "src": "32143:5:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "ret", - "nativeSrc": "32153:3:18", + "nativeSrc": "22880:4:18", "nodeType": "YulTypedName", - "src": "32153:3:18", + "src": "22880:4:18", "type": "" } ], - "src": "32114:249:18" + "src": "22759:332:18" }, { "body": { - "nativeSrc": "32499:222:18", + "nativeSrc": "23223:206:18", "nodeType": "YulBlock", - "src": "32499:222:18", + "src": "23223:206:18", "statements": [ { - "nativeSrc": "32513:26:18", + "nativeSrc": "23233:26:18", "nodeType": "YulAssignment", - "src": "32513:26:18", + "src": "23233:26:18", "value": { "arguments": [ { "name": "headStart", - "nativeSrc": "32525:9:18", + "nativeSrc": "23245:9:18", "nodeType": "YulIdentifier", - "src": "32525:9:18" + "src": "23245:9:18" }, { "kind": "number", - "nativeSrc": "32536:2:18", + "nativeSrc": "23256:2:18", "nodeType": "YulLiteral", - "src": "32536:2:18", + "src": "23256:2:18", "type": "", "value": "64" } ], "functionName": { "name": "add", - "nativeSrc": "32521:3:18", + "nativeSrc": "23241:3:18", "nodeType": "YulIdentifier", - "src": "32521:3:18" + "src": "23241:3:18" }, - "nativeSrc": "32521:18:18", + "nativeSrc": "23241:18:18", "nodeType": "YulFunctionCall", - "src": "32521:18:18" + "src": "23241:18:18" }, "variableNames": [ { "name": "tail", - "nativeSrc": "32513:4:18", + "nativeSrc": "23233:4:18", "nodeType": "YulIdentifier", - "src": "32513:4:18" + "src": "23233:4:18" } ] }, @@ -78968,300 +78449,300 @@ "arguments": [ { "name": "value0", - "nativeSrc": "32597:6:18", + "nativeSrc": "23313:6:18", "nodeType": "YulIdentifier", - "src": "32597:6:18" + "src": "23313:6:18" }, { "arguments": [ { "name": "headStart", - "nativeSrc": "32610:9:18", + "nativeSrc": "23326:9:18", "nodeType": "YulIdentifier", - "src": "32610:9:18" + "src": "23326:9:18" }, { "kind": "number", - "nativeSrc": "32621:1:18", + "nativeSrc": "23337:1:18", "nodeType": "YulLiteral", - "src": "32621:1:18", + "src": "23337:1:18", "type": "", "value": "0" } ], "functionName": { "name": "add", - "nativeSrc": "32606:3:18", + "nativeSrc": "23322:3:18", "nodeType": "YulIdentifier", - "src": "32606:3:18" + "src": "23322:3:18" }, - "nativeSrc": "32606:17:18", + "nativeSrc": "23322:17:18", "nodeType": "YulFunctionCall", - "src": "32606:17:18" + "src": "23322:17:18" } ], "functionName": { "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "32553:43:18", + "nativeSrc": "23269:43:18", "nodeType": "YulIdentifier", - "src": "32553:43:18" + "src": "23269:43:18" }, - "nativeSrc": "32553:71:18", + "nativeSrc": "23269:71:18", "nodeType": "YulFunctionCall", - "src": "32553:71:18" + "src": "23269:71:18" }, - "nativeSrc": "32553:71:18", + "nativeSrc": "23269:71:18", "nodeType": "YulExpressionStatement", - "src": "32553:71:18" + "src": "23269:71:18" }, { "expression": { "arguments": [ { "name": "value1", - "nativeSrc": "32682:6:18", + "nativeSrc": "23394:6:18", "nodeType": "YulIdentifier", - "src": "32682:6:18" + "src": "23394:6:18" }, { "arguments": [ { "name": "headStart", - "nativeSrc": "32695:9:18", + "nativeSrc": "23407:9:18", "nodeType": "YulIdentifier", - "src": "32695:9:18" + "src": "23407:9:18" }, { "kind": "number", - "nativeSrc": "32706:2:18", + "nativeSrc": "23418:2:18", "nodeType": "YulLiteral", - "src": "32706:2:18", + "src": "23418:2:18", "type": "", "value": "32" } ], "functionName": { "name": "add", - "nativeSrc": "32691:3:18", + "nativeSrc": "23403:3:18", "nodeType": "YulIdentifier", - "src": "32691:3:18" + "src": "23403:3:18" }, - "nativeSrc": "32691:18:18", + "nativeSrc": "23403:18:18", "nodeType": "YulFunctionCall", - "src": "32691:18:18" + "src": "23403:18:18" } ], "functionName": { "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "32638:43:18", + "nativeSrc": "23350:43:18", "nodeType": "YulIdentifier", - "src": "32638:43:18" + "src": "23350:43:18" }, - "nativeSrc": "32638:72:18", + "nativeSrc": "23350:72:18", "nodeType": "YulFunctionCall", - "src": "32638:72:18" + "src": "23350:72:18" }, - "nativeSrc": "32638:72:18", + "nativeSrc": "23350:72:18", "nodeType": "YulExpressionStatement", - "src": "32638:72:18" + "src": "23350:72:18" } ] }, "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed", - "nativeSrc": "32373:348:18", + "nativeSrc": "23097:332:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", - "nativeSrc": "32463:9:18", + "nativeSrc": "23187:9:18", "nodeType": "YulTypedName", - "src": "32463:9:18", + "src": "23187:9:18", "type": "" }, { "name": "value1", - "nativeSrc": "32475:6:18", + "nativeSrc": "23199:6:18", "nodeType": "YulTypedName", - "src": "32475:6:18", + "src": "23199:6:18", "type": "" }, { "name": "value0", - "nativeSrc": "32483:6:18", + "nativeSrc": "23207:6:18", "nodeType": "YulTypedName", - "src": "32483:6:18", + "src": "23207:6:18", "type": "" } ], "returnVariables": [ { "name": "tail", - "nativeSrc": "32494:4:18", + "nativeSrc": "23218:4:18", "nodeType": "YulTypedName", - "src": "32494:4:18", + "src": "23218:4:18", "type": "" } ], - "src": "32373:348:18" + "src": "23097:332:18" }, { "body": { - "nativeSrc": "32759:168:18", + "nativeSrc": "23463:152:18", "nodeType": "YulBlock", - "src": "32759:168:18", + "src": "23463:152:18", "statements": [ { "expression": { "arguments": [ { "kind": "number", - "nativeSrc": "32780:1:18", + "nativeSrc": "23480:1:18", "nodeType": "YulLiteral", - "src": "32780:1:18", + "src": "23480:1:18", "type": "", "value": "0" }, { "kind": "number", - "nativeSrc": "32783:77:18", + "nativeSrc": "23483:77:18", "nodeType": "YulLiteral", - "src": "32783:77:18", + "src": "23483:77:18", "type": "", "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { "name": "mstore", - "nativeSrc": "32773:6:18", + "nativeSrc": "23473:6:18", "nodeType": "YulIdentifier", - "src": "32773:6:18" + "src": "23473:6:18" }, - "nativeSrc": "32773:88:18", + "nativeSrc": "23473:88:18", "nodeType": "YulFunctionCall", - "src": "32773:88:18" + "src": "23473:88:18" }, - "nativeSrc": "32773:88:18", + "nativeSrc": "23473:88:18", "nodeType": "YulExpressionStatement", - "src": "32773:88:18" + "src": "23473:88:18" }, { "expression": { "arguments": [ { "kind": "number", - "nativeSrc": "32881:1:18", + "nativeSrc": "23577:1:18", "nodeType": "YulLiteral", - "src": "32881:1:18", + "src": "23577:1:18", "type": "", "value": "4" }, { "kind": "number", - "nativeSrc": "32884:4:18", + "nativeSrc": "23580:4:18", "nodeType": "YulLiteral", - "src": "32884:4:18", + "src": "23580:4:18", "type": "", "value": "0x32" } ], "functionName": { "name": "mstore", - "nativeSrc": "32874:6:18", + "nativeSrc": "23570:6:18", "nodeType": "YulIdentifier", - "src": "32874:6:18" + "src": "23570:6:18" }, - "nativeSrc": "32874:15:18", + "nativeSrc": "23570:15:18", "nodeType": "YulFunctionCall", - "src": "32874:15:18" + "src": "23570:15:18" }, - "nativeSrc": "32874:15:18", + "nativeSrc": "23570:15:18", "nodeType": "YulExpressionStatement", - "src": "32874:15:18" + "src": "23570:15:18" }, { "expression": { "arguments": [ { "kind": "number", - "nativeSrc": "32909:1:18", + "nativeSrc": "23601:1:18", "nodeType": "YulLiteral", - "src": "32909:1:18", + "src": "23601:1:18", "type": "", "value": "0" }, { "kind": "number", - "nativeSrc": "32912:4:18", + "nativeSrc": "23604:4:18", "nodeType": "YulLiteral", - "src": "32912:4:18", + "src": "23604:4:18", "type": "", "value": "0x24" } ], "functionName": { "name": "revert", - "nativeSrc": "32902:6:18", + "nativeSrc": "23594:6:18", "nodeType": "YulIdentifier", - "src": "32902:6:18" + "src": "23594:6:18" }, - "nativeSrc": "32902:15:18", + "nativeSrc": "23594:15:18", "nodeType": "YulFunctionCall", - "src": "32902:15:18" + "src": "23594:15:18" }, - "nativeSrc": "32902:15:18", + "nativeSrc": "23594:15:18", "nodeType": "YulExpressionStatement", - "src": "32902:15:18" + "src": "23594:15:18" } ] }, "name": "panic_error_0x32", - "nativeSrc": "32731:196:18", + "nativeSrc": "23435:180:18", "nodeType": "YulFunctionDefinition", - "src": "32731:196:18" + "src": "23435:180:18" }, { "body": { - "nativeSrc": "33063:222:18", + "nativeSrc": "23747:206:18", "nodeType": "YulBlock", - "src": "33063:222:18", + "src": "23747:206:18", "statements": [ { - "nativeSrc": "33077:26:18", + "nativeSrc": "23757:26:18", "nodeType": "YulAssignment", - "src": "33077:26:18", + "src": "23757:26:18", "value": { "arguments": [ { "name": "headStart", - "nativeSrc": "33089:9:18", + "nativeSrc": "23769:9:18", "nodeType": "YulIdentifier", - "src": "33089:9:18" + "src": "23769:9:18" }, { "kind": "number", - "nativeSrc": "33100:2:18", + "nativeSrc": "23780:2:18", "nodeType": "YulLiteral", - "src": "33100:2:18", + "src": "23780:2:18", "type": "", "value": "64" } ], "functionName": { "name": "add", - "nativeSrc": "33085:3:18", + "nativeSrc": "23765:3:18", "nodeType": "YulIdentifier", - "src": "33085:3:18" + "src": "23765:3:18" }, - "nativeSrc": "33085:18:18", + "nativeSrc": "23765:18:18", "nodeType": "YulFunctionCall", - "src": "33085:18:18" + "src": "23765:18:18" }, "variableNames": [ { "name": "tail", - "nativeSrc": "33077:4:18", + "nativeSrc": "23757:4:18", "nodeType": "YulIdentifier", - "src": "33077:4:18" + "src": "23757:4:18" } ] }, @@ -79270,202 +78751,252 @@ "arguments": [ { "name": "value0", - "nativeSrc": "33161:6:18", + "nativeSrc": "23837:6:18", "nodeType": "YulIdentifier", - "src": "33161:6:18" + "src": "23837:6:18" }, { "arguments": [ { "name": "headStart", - "nativeSrc": "33174:9:18", + "nativeSrc": "23850:9:18", "nodeType": "YulIdentifier", - "src": "33174:9:18" + "src": "23850:9:18" }, { "kind": "number", - "nativeSrc": "33185:1:18", + "nativeSrc": "23861:1:18", "nodeType": "YulLiteral", - "src": "33185:1:18", + "src": "23861:1:18", "type": "", "value": "0" } ], "functionName": { "name": "add", - "nativeSrc": "33170:3:18", + "nativeSrc": "23846:3:18", "nodeType": "YulIdentifier", - "src": "33170:3:18" + "src": "23846:3:18" }, - "nativeSrc": "33170:17:18", + "nativeSrc": "23846:17:18", "nodeType": "YulFunctionCall", - "src": "33170:17:18" + "src": "23846:17:18" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "33117:43:18", + "nativeSrc": "23793:43:18", "nodeType": "YulIdentifier", - "src": "33117:43:18" + "src": "23793:43:18" }, - "nativeSrc": "33117:71:18", + "nativeSrc": "23793:71:18", "nodeType": "YulFunctionCall", - "src": "33117:71:18" + "src": "23793:71:18" }, - "nativeSrc": "33117:71:18", + "nativeSrc": "23793:71:18", "nodeType": "YulExpressionStatement", - "src": "33117:71:18" + "src": "23793:71:18" }, { "expression": { "arguments": [ { "name": "value1", - "nativeSrc": "33246:6:18", + "nativeSrc": "23918:6:18", "nodeType": "YulIdentifier", - "src": "33246:6:18" + "src": "23918:6:18" }, { "arguments": [ { "name": "headStart", - "nativeSrc": "33259:9:18", + "nativeSrc": "23931:9:18", "nodeType": "YulIdentifier", - "src": "33259:9:18" + "src": "23931:9:18" }, { "kind": "number", - "nativeSrc": "33270:2:18", + "nativeSrc": "23942:2:18", "nodeType": "YulLiteral", - "src": "33270:2:18", + "src": "23942:2:18", "type": "", "value": "32" } ], "functionName": { "name": "add", - "nativeSrc": "33255:3:18", + "nativeSrc": "23927:3:18", "nodeType": "YulIdentifier", - "src": "33255:3:18" + "src": "23927:3:18" }, - "nativeSrc": "33255:18:18", + "nativeSrc": "23927:18:18", "nodeType": "YulFunctionCall", - "src": "33255:18:18" + "src": "23927:18:18" } ], "functionName": { "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "33202:43:18", + "nativeSrc": "23874:43:18", "nodeType": "YulIdentifier", - "src": "33202:43:18" + "src": "23874:43:18" }, - "nativeSrc": "33202:72:18", + "nativeSrc": "23874:72:18", "nodeType": "YulFunctionCall", - "src": "33202:72:18" + "src": "23874:72:18" }, - "nativeSrc": "33202:72:18", + "nativeSrc": "23874:72:18", "nodeType": "YulExpressionStatement", - "src": "33202:72:18" + "src": "23874:72:18" } ] }, "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", - "nativeSrc": "32937:348:18", + "nativeSrc": "23621:332:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", - "nativeSrc": "33027:9:18", + "nativeSrc": "23711:9:18", "nodeType": "YulTypedName", - "src": "33027:9:18", + "src": "23711:9:18", "type": "" }, { "name": "value1", - "nativeSrc": "33039:6:18", + "nativeSrc": "23723:6:18", "nodeType": "YulTypedName", - "src": "33039:6:18", + "src": "23723:6:18", "type": "" }, { "name": "value0", - "nativeSrc": "33047:6:18", + "nativeSrc": "23731:6:18", "nodeType": "YulTypedName", - "src": "33047:6:18", + "src": "23731:6:18", "type": "" } ], "returnVariables": [ { "name": "tail", - "nativeSrc": "33058:4:18", + "nativeSrc": "23742:4:18", "nodeType": "YulTypedName", - "src": "33058:4:18", + "src": "23742:4:18", "type": "" } ], - "src": "32937:348:18" + "src": "23621:332:18" }, { "body": { - "nativeSrc": "33348:40:18", + "nativeSrc": "24012:32:18", "nodeType": "YulBlock", - "src": "33348:40:18", + "src": "24012:32:18", "statements": [ { - "nativeSrc": "33362:16:18", + "nativeSrc": "24022:16:18", "nodeType": "YulAssignment", - "src": "33362:16:18", + "src": "24022:16:18", "value": { "name": "value", - "nativeSrc": "33373:5:18", + "nativeSrc": "24033:5:18", "nodeType": "YulIdentifier", - "src": "33373:5:18" + "src": "24033:5:18" }, "variableNames": [ { "name": "cleaned", - "nativeSrc": "33362:7:18", + "nativeSrc": "24022:7:18", "nodeType": "YulIdentifier", - "src": "33362:7:18" + "src": "24022:7:18" } ] } ] }, "name": "cleanup_t_rational_1_by_1", - "nativeSrc": "33295:93:18", + "nativeSrc": "23959:85:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", - "nativeSrc": "33330:5:18", + "nativeSrc": "23994:5:18", "nodeType": "YulTypedName", - "src": "33330:5:18", + "src": "23994:5:18", "type": "" } ], "returnVariables": [ { "name": "cleaned", - "nativeSrc": "33340:7:18", + "nativeSrc": "24004:7:18", + "nodeType": "YulTypedName", + "src": "24004:7:18", + "type": "" + } + ], + "src": "23959:85:18" + }, + { + "body": { + "nativeSrc": "24082:28:18", + "nodeType": "YulBlock", + "src": "24082:28:18", + "statements": [ + { + "nativeSrc": "24092:12:18", + "nodeType": "YulAssignment", + "src": "24092:12:18", + "value": { + "name": "value", + "nativeSrc": "24099:5:18", + "nodeType": "YulIdentifier", + "src": "24099:5:18" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "24092:3:18", + "nodeType": "YulIdentifier", + "src": "24092:3:18" + } + ] + } + ] + }, + "name": "identity", + "nativeSrc": "24050:60:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "24068:5:18", "nodeType": "YulTypedName", - "src": "33340:7:18", + "src": "24068:5:18", "type": "" } ], - "src": "33295:93:18" + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "24078:3:18", + "nodeType": "YulTypedName", + "src": "24078:3:18", + "type": "" + } + ], + "src": "24050:60:18" }, { "body": { - "nativeSrc": "33466:98:18", + "nativeSrc": "24184:90:18", "nodeType": "YulBlock", - "src": "33466:98:18", + "src": "24184:90:18", "statements": [ { - "nativeSrc": "33480:74:18", + "nativeSrc": "24194:74:18", "nodeType": "YulAssignment", - "src": "33480:74:18", + "src": "24194:74:18", "value": { "arguments": [ { @@ -79474,397 +79005,741 @@ "arguments": [ { "name": "value", - "nativeSrc": "33546:5:18", + "nativeSrc": "24260:5:18", "nodeType": "YulIdentifier", - "src": "33546:5:18" + "src": "24260:5:18" } ], "functionName": { "name": "cleanup_t_rational_1_by_1", - "nativeSrc": "33520:25:18", + "nativeSrc": "24234:25:18", "nodeType": "YulIdentifier", - "src": "33520:25:18" + "src": "24234:25:18" }, - "nativeSrc": "33520:32:18", + "nativeSrc": "24234:32:18", "nodeType": "YulFunctionCall", - "src": "33520:32:18" + "src": "24234:32:18" } ], "functionName": { "name": "identity", - "nativeSrc": "33511:8:18", + "nativeSrc": "24225:8:18", "nodeType": "YulIdentifier", - "src": "33511:8:18" + "src": "24225:8:18" }, - "nativeSrc": "33511:42:18", + "nativeSrc": "24225:42:18", "nodeType": "YulFunctionCall", - "src": "33511:42:18" + "src": "24225:42:18" } ], "functionName": { "name": "cleanup_t_uint256", - "nativeSrc": "33493:17:18", + "nativeSrc": "24207:17:18", "nodeType": "YulIdentifier", - "src": "33493:17:18" + "src": "24207:17:18" }, - "nativeSrc": "33493:61:18", + "nativeSrc": "24207:61:18", "nodeType": "YulFunctionCall", - "src": "33493:61:18" + "src": "24207:61:18" }, "variableNames": [ { "name": "converted", - "nativeSrc": "33480:9:18", + "nativeSrc": "24194:9:18", "nodeType": "YulIdentifier", - "src": "33480:9:18" + "src": "24194:9:18" } ] } ] }, "name": "convert_t_rational_1_by_1_to_t_uint256", - "nativeSrc": "33398:166:18", + "nativeSrc": "24116:158:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", - "nativeSrc": "33446:5:18", + "nativeSrc": "24164:5:18", "nodeType": "YulTypedName", - "src": "33446:5:18", + "src": "24164:5:18", "type": "" } ], "returnVariables": [ { "name": "converted", - "nativeSrc": "33456:9:18", + "nativeSrc": "24174:9:18", "nodeType": "YulTypedName", - "src": "33456:9:18", + "src": "24174:9:18", "type": "" } ], - "src": "33398:166:18" + "src": "24116:158:18" }, { "body": { - "nativeSrc": "33647:82:18", + "nativeSrc": "24353:74:18", "nodeType": "YulBlock", - "src": "33647:82:18", + "src": "24353:74:18", "statements": [ { "expression": { "arguments": [ { "name": "pos", - "nativeSrc": "33668:3:18", + "nativeSrc": "24370:3:18", "nodeType": "YulIdentifier", - "src": "33668:3:18" + "src": "24370:3:18" }, { "arguments": [ { "name": "value", - "nativeSrc": "33712:5:18", + "nativeSrc": "24414:5:18", "nodeType": "YulIdentifier", - "src": "33712:5:18" + "src": "24414:5:18" } ], "functionName": { "name": "convert_t_rational_1_by_1_to_t_uint256", - "nativeSrc": "33673:38:18", + "nativeSrc": "24375:38:18", + "nodeType": "YulIdentifier", + "src": "24375:38:18" + }, + "nativeSrc": "24375:45:18", + "nodeType": "YulFunctionCall", + "src": "24375:45:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24363:6:18", + "nodeType": "YulIdentifier", + "src": "24363:6:18" + }, + "nativeSrc": "24363:58:18", + "nodeType": "YulFunctionCall", + "src": "24363:58:18" + }, + "nativeSrc": "24363:58:18", + "nodeType": "YulExpressionStatement", + "src": "24363:58:18" + } + ] + }, + "name": "abi_encode_t_rational_1_by_1_to_t_uint256_fromStack", + "nativeSrc": "24280:147:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "24341:5:18", + "nodeType": "YulTypedName", + "src": "24341:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "24348:3:18", + "nodeType": "YulTypedName", + "src": "24348:3:18", + "type": "" + } + ], + "src": "24280:147:18" + }, + { + "body": { + "nativeSrc": "24539:132:18", + "nodeType": "YulBlock", + "src": "24539:132:18", + "statements": [ + { + "nativeSrc": "24549:26:18", + "nodeType": "YulAssignment", + "src": "24549:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "24561:9:18", + "nodeType": "YulIdentifier", + "src": "24561:9:18" + }, + { + "kind": "number", + "nativeSrc": "24572:2:18", + "nodeType": "YulLiteral", + "src": "24572:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24557:3:18", + "nodeType": "YulIdentifier", + "src": "24557:3:18" + }, + "nativeSrc": "24557:18:18", + "nodeType": "YulFunctionCall", + "src": "24557:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "24549:4:18", + "nodeType": "YulIdentifier", + "src": "24549:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "24637:6:18", + "nodeType": "YulIdentifier", + "src": "24637:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "24650:9:18", + "nodeType": "YulIdentifier", + "src": "24650:9:18" + }, + { + "kind": "number", + "nativeSrc": "24661:1:18", + "nodeType": "YulLiteral", + "src": "24661:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24646:3:18", + "nodeType": "YulIdentifier", + "src": "24646:3:18" + }, + "nativeSrc": "24646:17:18", + "nodeType": "YulFunctionCall", + "src": "24646:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_rational_1_by_1_to_t_uint256_fromStack", + "nativeSrc": "24585:51:18", + "nodeType": "YulIdentifier", + "src": "24585:51:18" + }, + "nativeSrc": "24585:79:18", + "nodeType": "YulFunctionCall", + "src": "24585:79:18" + }, + "nativeSrc": "24585:79:18", + "nodeType": "YulExpressionStatement", + "src": "24585:79:18" + } + ] + }, + "name": "abi_encode_tuple_t_rational_1_by_1__to_t_uint256__fromStack_reversed", + "nativeSrc": "24433:238:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "24511:9:18", + "nodeType": "YulTypedName", + "src": "24511:9:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "24523:6:18", + "nodeType": "YulTypedName", + "src": "24523:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "24534:4:18", + "nodeType": "YulTypedName", + "src": "24534:4:18", + "type": "" + } + ], + "src": "24433:238:18" + }, + { + "body": { + "nativeSrc": "24783:67:18", + "nodeType": "YulBlock", + "src": "24783:67:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "24805:6:18", + "nodeType": "YulIdentifier", + "src": "24805:6:18" + }, + { + "kind": "number", + "nativeSrc": "24813:1:18", + "nodeType": "YulLiteral", + "src": "24813:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24801:3:18", "nodeType": "YulIdentifier", - "src": "33673:38:18" + "src": "24801:3:18" }, - "nativeSrc": "33673:45:18", + "nativeSrc": "24801:14:18", "nodeType": "YulFunctionCall", - "src": "33673:45:18" + "src": "24801:14:18" + }, + { + "hexValue": "4163636f756e742063616e6e6f7420626520656d707479", + "kind": "string", + "nativeSrc": "24817:25:18", + "nodeType": "YulLiteral", + "src": "24817:25:18", + "type": "", + "value": "Account cannot be empty" } ], "functionName": { "name": "mstore", - "nativeSrc": "33661:6:18", + "nativeSrc": "24794:6:18", + "nodeType": "YulIdentifier", + "src": "24794:6:18" + }, + "nativeSrc": "24794:49:18", + "nodeType": "YulFunctionCall", + "src": "24794:49:18" + }, + "nativeSrc": "24794:49:18", + "nodeType": "YulExpressionStatement", + "src": "24794:49:18" + } + ] + }, + "name": "store_literal_in_memory_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619", + "nativeSrc": "24677:173:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "24775:6:18", + "nodeType": "YulTypedName", + "src": "24775:6:18", + "type": "" + } + ], + "src": "24677:173:18" + }, + { + "body": { + "nativeSrc": "25002:220:18", + "nodeType": "YulBlock", + "src": "25002:220:18", + "statements": [ + { + "nativeSrc": "25012:74:18", + "nodeType": "YulAssignment", + "src": "25012:74:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25078:3:18", + "nodeType": "YulIdentifier", + "src": "25078:3:18" + }, + { + "kind": "number", + "nativeSrc": "25083:2:18", + "nodeType": "YulLiteral", + "src": "25083:2:18", + "type": "", + "value": "23" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "25019:58:18", + "nodeType": "YulIdentifier", + "src": "25019:58:18" + }, + "nativeSrc": "25019:67:18", + "nodeType": "YulFunctionCall", + "src": "25019:67:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "25012:3:18", + "nodeType": "YulIdentifier", + "src": "25012:3:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25184:3:18", + "nodeType": "YulIdentifier", + "src": "25184:3:18" + } + ], + "functionName": { + "name": "store_literal_in_memory_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619", + "nativeSrc": "25095:88:18", "nodeType": "YulIdentifier", - "src": "33661:6:18" + "src": "25095:88:18" }, - "nativeSrc": "33661:58:18", + "nativeSrc": "25095:93:18", "nodeType": "YulFunctionCall", - "src": "33661:58:18" + "src": "25095:93:18" }, - "nativeSrc": "33661:58:18", + "nativeSrc": "25095:93:18", "nodeType": "YulExpressionStatement", - "src": "33661:58:18" + "src": "25095:93:18" + }, + { + "nativeSrc": "25197:19:18", + "nodeType": "YulAssignment", + "src": "25197:19:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25208:3:18", + "nodeType": "YulIdentifier", + "src": "25208:3:18" + }, + { + "kind": "number", + "nativeSrc": "25213:2:18", + "nodeType": "YulLiteral", + "src": "25213:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25204:3:18", + "nodeType": "YulIdentifier", + "src": "25204:3:18" + }, + "nativeSrc": "25204:12:18", + "nodeType": "YulFunctionCall", + "src": "25204:12:18" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "25197:3:18", + "nodeType": "YulIdentifier", + "src": "25197:3:18" + } + ] } ] }, - "name": "abi_encode_t_rational_1_by_1_to_t_uint256_fromStack", - "nativeSrc": "33574:155:18", + "name": "abi_encode_t_stringliteral_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619_to_t_string_memory_ptr_fromStack", + "nativeSrc": "24856:366:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", - "nativeSrc": "33635:5:18", + "name": "pos", + "nativeSrc": "24990:3:18", "nodeType": "YulTypedName", - "src": "33635:5:18", + "src": "24990:3:18", "type": "" - }, + } + ], + "returnVariables": [ { - "name": "pos", - "nativeSrc": "33642:3:18", + "name": "end", + "nativeSrc": "24998:3:18", "nodeType": "YulTypedName", - "src": "33642:3:18", + "src": "24998:3:18", "type": "" } ], - "src": "33574:155:18" + "src": "24856:366:18" }, { "body": { - "nativeSrc": "33845:144:18", + "nativeSrc": "25399:248:18", "nodeType": "YulBlock", - "src": "33845:144:18", + "src": "25399:248:18", "statements": [ { - "nativeSrc": "33859:26:18", + "nativeSrc": "25409:26:18", "nodeType": "YulAssignment", - "src": "33859:26:18", + "src": "25409:26:18", "value": { "arguments": [ { "name": "headStart", - "nativeSrc": "33871:9:18", + "nativeSrc": "25421:9:18", "nodeType": "YulIdentifier", - "src": "33871:9:18" + "src": "25421:9:18" }, { "kind": "number", - "nativeSrc": "33882:2:18", + "nativeSrc": "25432:2:18", "nodeType": "YulLiteral", - "src": "33882:2:18", + "src": "25432:2:18", "type": "", "value": "32" } ], "functionName": { "name": "add", - "nativeSrc": "33867:3:18", + "nativeSrc": "25417:3:18", "nodeType": "YulIdentifier", - "src": "33867:3:18" + "src": "25417:3:18" }, - "nativeSrc": "33867:18:18", + "nativeSrc": "25417:18:18", "nodeType": "YulFunctionCall", - "src": "33867:18:18" + "src": "25417:18:18" }, "variableNames": [ { "name": "tail", - "nativeSrc": "33859:4:18", + "nativeSrc": "25409:4:18", "nodeType": "YulIdentifier", - "src": "33859:4:18" + "src": "25409:4:18" } ] }, { "expression": { "arguments": [ - { - "name": "value0", - "nativeSrc": "33951:6:18", - "nodeType": "YulIdentifier", - "src": "33951:6:18" - }, { "arguments": [ { "name": "headStart", - "nativeSrc": "33964:9:18", + "nativeSrc": "25456:9:18", "nodeType": "YulIdentifier", - "src": "33964:9:18" + "src": "25456:9:18" }, { "kind": "number", - "nativeSrc": "33975:1:18", + "nativeSrc": "25467:1:18", "nodeType": "YulLiteral", - "src": "33975:1:18", + "src": "25467:1:18", "type": "", "value": "0" } ], "functionName": { "name": "add", - "nativeSrc": "33960:3:18", + "nativeSrc": "25452:3:18", + "nodeType": "YulIdentifier", + "src": "25452:3:18" + }, + "nativeSrc": "25452:17:18", + "nodeType": "YulFunctionCall", + "src": "25452:17:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "25475:4:18", + "nodeType": "YulIdentifier", + "src": "25475:4:18" + }, + { + "name": "headStart", + "nativeSrc": "25481:9:18", + "nodeType": "YulIdentifier", + "src": "25481:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "25471:3:18", "nodeType": "YulIdentifier", - "src": "33960:3:18" + "src": "25471:3:18" }, - "nativeSrc": "33960:17:18", + "nativeSrc": "25471:20:18", "nodeType": "YulFunctionCall", - "src": "33960:17:18" + "src": "25471:20:18" } ], "functionName": { - "name": "abi_encode_t_rational_1_by_1_to_t_uint256_fromStack", - "nativeSrc": "33899:51:18", + "name": "mstore", + "nativeSrc": "25445:6:18", "nodeType": "YulIdentifier", - "src": "33899:51:18" + "src": "25445:6:18" }, - "nativeSrc": "33899:79:18", + "nativeSrc": "25445:47:18", "nodeType": "YulFunctionCall", - "src": "33899:79:18" + "src": "25445:47:18" }, - "nativeSrc": "33899:79:18", + "nativeSrc": "25445:47:18", "nodeType": "YulExpressionStatement", - "src": "33899:79:18" + "src": "25445:47:18" + }, + { + "nativeSrc": "25501:139:18", + "nodeType": "YulAssignment", + "src": "25501:139:18", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "25635:4:18", + "nodeType": "YulIdentifier", + "src": "25635:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619_to_t_string_memory_ptr_fromStack", + "nativeSrc": "25509:124:18", + "nodeType": "YulIdentifier", + "src": "25509:124:18" + }, + "nativeSrc": "25509:131:18", + "nodeType": "YulFunctionCall", + "src": "25509:131:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "25501:4:18", + "nodeType": "YulIdentifier", + "src": "25501:4:18" + } + ] } ] }, - "name": "abi_encode_tuple_t_rational_1_by_1__to_t_uint256__fromStack_reversed", - "nativeSrc": "33739:250:18", + "name": "abi_encode_tuple_t_stringliteral_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "25228:419:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", - "nativeSrc": "33817:9:18", - "nodeType": "YulTypedName", - "src": "33817:9:18", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "33829:6:18", + "nativeSrc": "25379:9:18", "nodeType": "YulTypedName", - "src": "33829:6:18", + "src": "25379:9:18", "type": "" } ], "returnVariables": [ { "name": "tail", - "nativeSrc": "33840:4:18", + "nativeSrc": "25394:4:18", "nodeType": "YulTypedName", - "src": "33840:4:18", + "src": "25394:4:18", "type": "" } ], - "src": "33739:250:18" + "src": "25228:419:18" }, { "body": { - "nativeSrc": "34105:53:18", + "nativeSrc": "25767:34:18", "nodeType": "YulBlock", - "src": "34105:53:18", + "src": "25767:34:18", "statements": [ { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "34131:6:18", - "nodeType": "YulIdentifier", - "src": "34131:6:18" - }, - { - "kind": "number", - "nativeSrc": "34139:1:18", - "nodeType": "YulLiteral", - "src": "34139:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "34127:3:18", - "nodeType": "YulIdentifier", - "src": "34127:3:18" - }, - "nativeSrc": "34127:14:18", - "nodeType": "YulFunctionCall", - "src": "34127:14:18" - }, - { - "hexValue": "2f", - "kind": "string", - "nativeSrc": "34143:3:18", - "nodeType": "YulLiteral", - "src": "34143:3:18", - "type": "", - "value": "/" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "34120:6:18", - "nodeType": "YulIdentifier", - "src": "34120:6:18" - }, - "nativeSrc": "34120:27:18", - "nodeType": "YulFunctionCall", - "src": "34120:27:18" + "nativeSrc": "25777:18:18", + "nodeType": "YulAssignment", + "src": "25777:18:18", + "value": { + "name": "pos", + "nativeSrc": "25792:3:18", + "nodeType": "YulIdentifier", + "src": "25792:3:18" }, - "nativeSrc": "34120:27:18", - "nodeType": "YulExpressionStatement", - "src": "34120:27:18" + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "25777:11:18", + "nodeType": "YulIdentifier", + "src": "25777:11:18" + } + ] } ] }, - "name": "store_literal_in_memory_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527", - "nativeSrc": "33999:159:18", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "25653:148:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "memPtr", - "nativeSrc": "34097:6:18", + "name": "pos", + "nativeSrc": "25739:3:18", + "nodeType": "YulTypedName", + "src": "25739:3:18", + "type": "" + }, + { + "name": "length", + "nativeSrc": "25744:6:18", + "nodeType": "YulTypedName", + "src": "25744:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "25755:11:18", "nodeType": "YulTypedName", - "src": "34097:6:18", + "src": "25755:11:18", "type": "" } ], - "src": "33999:159:18" + "src": "25653:148:18" }, { "body": { - "nativeSrc": "34332:252:18", + "nativeSrc": "25861:87:18", "nodeType": "YulBlock", - "src": "34332:252:18", + "src": "25861:87:18", "statements": [ { - "nativeSrc": "34346:91:18", + "nativeSrc": "25871:11:18", "nodeType": "YulAssignment", - "src": "34346:91:18", + "src": "25871:11:18", "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "34430:3:18", - "nodeType": "YulIdentifier", - "src": "34430:3:18" - }, - { - "kind": "number", - "nativeSrc": "34435:1:18", - "nodeType": "YulLiteral", - "src": "34435:1:18", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "34353:76:18", - "nodeType": "YulIdentifier", - "src": "34353:76:18" - }, - "nativeSrc": "34353:84:18", - "nodeType": "YulFunctionCall", - "src": "34353:84:18" + "name": "ptr", + "nativeSrc": "25879:3:18", + "nodeType": "YulIdentifier", + "src": "25879:3:18" }, "variableNames": [ { - "name": "pos", - "nativeSrc": "34346:3:18", + "name": "data", + "nativeSrc": "25871:4:18", "nodeType": "YulIdentifier", - "src": "34346:3:18" + "src": "25871:4:18" } ] }, @@ -79872,1687 +79747,1494 @@ "expression": { "arguments": [ { - "name": "pos", - "nativeSrc": "34539:3:18", + "kind": "number", + "nativeSrc": "25899:1:18", + "nodeType": "YulLiteral", + "src": "25899:1:18", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nativeSrc": "25902:3:18", "nodeType": "YulIdentifier", - "src": "34539:3:18" + "src": "25902:3:18" } ], "functionName": { - "name": "store_literal_in_memory_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527", - "nativeSrc": "34450:88:18", + "name": "mstore", + "nativeSrc": "25892:6:18", "nodeType": "YulIdentifier", - "src": "34450:88:18" + "src": "25892:6:18" }, - "nativeSrc": "34450:93:18", + "nativeSrc": "25892:14:18", "nodeType": "YulFunctionCall", - "src": "34450:93:18" + "src": "25892:14:18" }, - "nativeSrc": "34450:93:18", + "nativeSrc": "25892:14:18", "nodeType": "YulExpressionStatement", - "src": "34450:93:18" + "src": "25892:14:18" }, { - "nativeSrc": "34556:18:18", + "nativeSrc": "25915:26:18", "nodeType": "YulAssignment", - "src": "34556:18:18", + "src": "25915:26:18", "value": { "arguments": [ { - "name": "pos", - "nativeSrc": "34567:3:18", - "nodeType": "YulIdentifier", - "src": "34567:3:18" + "kind": "number", + "nativeSrc": "25933:1:18", + "nodeType": "YulLiteral", + "src": "25933:1:18", + "type": "", + "value": "0" }, { "kind": "number", - "nativeSrc": "34572:1:18", + "nativeSrc": "25936:4:18", "nodeType": "YulLiteral", - "src": "34572:1:18", + "src": "25936:4:18", "type": "", - "value": "1" + "value": "0x20" } ], "functionName": { - "name": "add", - "nativeSrc": "34563:3:18", + "name": "keccak256", + "nativeSrc": "25923:9:18", "nodeType": "YulIdentifier", - "src": "34563:3:18" + "src": "25923:9:18" }, - "nativeSrc": "34563:11:18", + "nativeSrc": "25923:18:18", "nodeType": "YulFunctionCall", - "src": "34563:11:18" + "src": "25923:18:18" }, "variableNames": [ { - "name": "end", - "nativeSrc": "34556:3:18", + "name": "data", + "nativeSrc": "25915:4:18", "nodeType": "YulIdentifier", - "src": "34556:3:18" + "src": "25915:4:18" } ] } ] }, - "name": "abi_encode_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "34168:416:18", + "name": "array_dataslot_t_string_storage", + "nativeSrc": "25807:141:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", - "nativeSrc": "34320:3:18", + "name": "ptr", + "nativeSrc": "25848:3:18", "nodeType": "YulTypedName", - "src": "34320:3:18", + "src": "25848:3:18", "type": "" } ], "returnVariables": [ { - "name": "end", - "nativeSrc": "34328:3:18", + "name": "data", + "nativeSrc": "25856:4:18", "nodeType": "YulTypedName", - "src": "34328:3:18", + "src": "25856:4:18", "type": "" } ], - "src": "34168:416:18" + "src": "25807:141:18" }, { "body": { - "nativeSrc": "34704:300:18", + "nativeSrc": "26085:767:18", "nodeType": "YulBlock", - "src": "34704:300:18", + "src": "26085:767:18", "statements": [ { - "nativeSrc": "34718:53:18", + "nativeSrc": "26095:29:18", "nodeType": "YulVariableDeclaration", - "src": "34718:53:18", + "src": "26095:29:18", "value": { "arguments": [ { "name": "value", - "nativeSrc": "34765:5:18", + "nativeSrc": "26118:5:18", "nodeType": "YulIdentifier", - "src": "34765:5:18" + "src": "26118:5:18" } ], "functionName": { - "name": "array_length_t_string_memory_ptr", - "nativeSrc": "34732:32:18", + "name": "sload", + "nativeSrc": "26112:5:18", + "nodeType": "YulIdentifier", + "src": "26112:5:18" + }, + "nativeSrc": "26112:12:18", + "nodeType": "YulFunctionCall", + "src": "26112:12:18" + }, + "variables": [ + { + "name": "slotValue", + "nativeSrc": "26099:9:18", + "nodeType": "YulTypedName", + "src": "26099:9:18", + "type": "" + } + ] + }, + { + "nativeSrc": "26133:50:18", + "nodeType": "YulVariableDeclaration", + "src": "26133:50:18", + "value": { + "arguments": [ + { + "name": "slotValue", + "nativeSrc": "26173:9:18", + "nodeType": "YulIdentifier", + "src": "26173:9:18" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "26147:25:18", "nodeType": "YulIdentifier", - "src": "34732:32:18" + "src": "26147:25:18" }, - "nativeSrc": "34732:39:18", + "nativeSrc": "26147:36:18", "nodeType": "YulFunctionCall", - "src": "34732:39:18" + "src": "26147:36:18" }, "variables": [ { "name": "length", - "nativeSrc": "34722:6:18", + "nativeSrc": "26137:6:18", "nodeType": "YulTypedName", - "src": "34722:6:18", + "src": "26137:6:18", "type": "" } ] }, { - "nativeSrc": "34784:96:18", + "nativeSrc": "26192:96:18", "nodeType": "YulAssignment", - "src": "34784:96:18", + "src": "26192:96:18", "value": { "arguments": [ { "name": "pos", - "nativeSrc": "34868:3:18", + "nativeSrc": "26276:3:18", "nodeType": "YulIdentifier", - "src": "34868:3:18" + "src": "26276:3:18" }, { "name": "length", - "nativeSrc": "34873:6:18", + "nativeSrc": "26281:6:18", "nodeType": "YulIdentifier", - "src": "34873:6:18" + "src": "26281:6:18" } ], "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "34791:76:18", + "nativeSrc": "26199:76:18", "nodeType": "YulIdentifier", - "src": "34791:76:18" + "src": "26199:76:18" }, - "nativeSrc": "34791:89:18", + "nativeSrc": "26199:89:18", "nodeType": "YulFunctionCall", - "src": "34791:89:18" + "src": "26199:89:18" }, "variableNames": [ { "name": "pos", - "nativeSrc": "34784:3:18", + "nativeSrc": "26192:3:18", "nodeType": "YulIdentifier", - "src": "34784:3:18" + "src": "26192:3:18" } ] }, { - "expression": { - "arguments": [ - { - "arguments": [ + "cases": [ + { + "body": { + "nativeSrc": "26337:159:18", + "nodeType": "YulBlock", + "src": "26337:159:18", + "statements": [ { - "name": "value", - "nativeSrc": "34932:5:18", - "nodeType": "YulIdentifier", - "src": "34932:5:18" + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "26390:3:18", + "nodeType": "YulIdentifier", + "src": "26390:3:18" + }, + { + "arguments": [ + { + "name": "slotValue", + "nativeSrc": "26399:9:18", + "nodeType": "YulIdentifier", + "src": "26399:9:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "26414:4:18", + "nodeType": "YulLiteral", + "src": "26414:4:18", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "26410:3:18", + "nodeType": "YulIdentifier", + "src": "26410:3:18" + }, + "nativeSrc": "26410:9:18", + "nodeType": "YulFunctionCall", + "src": "26410:9:18" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "26395:3:18", + "nodeType": "YulIdentifier", + "src": "26395:3:18" + }, + "nativeSrc": "26395:25:18", + "nodeType": "YulFunctionCall", + "src": "26395:25:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "26383:6:18", + "nodeType": "YulIdentifier", + "src": "26383:6:18" + }, + "nativeSrc": "26383:38:18", + "nodeType": "YulFunctionCall", + "src": "26383:38:18" + }, + "nativeSrc": "26383:38:18", + "nodeType": "YulExpressionStatement", + "src": "26383:38:18" }, { - "kind": "number", - "nativeSrc": "34939:4:18", - "nodeType": "YulLiteral", - "src": "34939:4:18", - "type": "", - "value": "0x20" + "nativeSrc": "26434:52:18", + "nodeType": "YulAssignment", + "src": "26434:52:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "26445:3:18", + "nodeType": "YulIdentifier", + "src": "26445:3:18" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "26454:6:18", + "nodeType": "YulIdentifier", + "src": "26454:6:18" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "26476:6:18", + "nodeType": "YulIdentifier", + "src": "26476:6:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "26469:6:18", + "nodeType": "YulIdentifier", + "src": "26469:6:18" + }, + "nativeSrc": "26469:14:18", + "nodeType": "YulFunctionCall", + "src": "26469:14:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "26462:6:18", + "nodeType": "YulIdentifier", + "src": "26462:6:18" + }, + "nativeSrc": "26462:22:18", + "nodeType": "YulFunctionCall", + "src": "26462:22:18" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "26450:3:18", + "nodeType": "YulIdentifier", + "src": "26450:3:18" + }, + "nativeSrc": "26450:35:18", + "nodeType": "YulFunctionCall", + "src": "26450:35:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26441:3:18", + "nodeType": "YulIdentifier", + "src": "26441:3:18" + }, + "nativeSrc": "26441:45:18", + "nodeType": "YulFunctionCall", + "src": "26441:45:18" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "26434:3:18", + "nodeType": "YulIdentifier", + "src": "26434:3:18" + } + ] + } + ] + }, + "nativeSrc": "26330:166:18", + "nodeType": "YulCase", + "src": "26330:166:18", + "value": { + "kind": "number", + "nativeSrc": "26335:1:18", + "nodeType": "YulLiteral", + "src": "26335:1:18", + "type": "", + "value": "0" + } + }, + { + "body": { + "nativeSrc": "26512:334:18", + "nodeType": "YulBlock", + "src": "26512:334:18", + "statements": [ + { + "nativeSrc": "26557:53:18", + "nodeType": "YulVariableDeclaration", + "src": "26557:53:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "26604:5:18", + "nodeType": "YulIdentifier", + "src": "26604:5:18" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "26572:31:18", + "nodeType": "YulIdentifier", + "src": "26572:31:18" + }, + "nativeSrc": "26572:38:18", + "nodeType": "YulFunctionCall", + "src": "26572:38:18" + }, + "variables": [ + { + "name": "dataPos", + "nativeSrc": "26561:7:18", + "nodeType": "YulTypedName", + "src": "26561:7:18", + "type": "" + } + ] + }, + { + "nativeSrc": "26623:10:18", + "nodeType": "YulVariableDeclaration", + "src": "26623:10:18", + "value": { + "kind": "number", + "nativeSrc": "26632:1:18", + "nodeType": "YulLiteral", + "src": "26632:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "26627:1:18", + "nodeType": "YulTypedName", + "src": "26627:1:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "26690:110:18", + "nodeType": "YulBlock", + "src": "26690:110:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "26719:3:18", + "nodeType": "YulIdentifier", + "src": "26719:3:18" + }, + { + "name": "i", + "nativeSrc": "26724:1:18", + "nodeType": "YulIdentifier", + "src": "26724:1:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26715:3:18", + "nodeType": "YulIdentifier", + "src": "26715:3:18" + }, + "nativeSrc": "26715:11:18", + "nodeType": "YulFunctionCall", + "src": "26715:11:18" + }, + { + "arguments": [ + { + "name": "dataPos", + "nativeSrc": "26734:7:18", + "nodeType": "YulIdentifier", + "src": "26734:7:18" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "26728:5:18", + "nodeType": "YulIdentifier", + "src": "26728:5:18" + }, + "nativeSrc": "26728:14:18", + "nodeType": "YulFunctionCall", + "src": "26728:14:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "26708:6:18", + "nodeType": "YulIdentifier", + "src": "26708:6:18" + }, + "nativeSrc": "26708:35:18", + "nodeType": "YulFunctionCall", + "src": "26708:35:18" + }, + "nativeSrc": "26708:35:18", + "nodeType": "YulExpressionStatement", + "src": "26708:35:18" + }, + { + "nativeSrc": "26760:26:18", + "nodeType": "YulAssignment", + "src": "26760:26:18", + "value": { + "arguments": [ + { + "name": "dataPos", + "nativeSrc": "26775:7:18", + "nodeType": "YulIdentifier", + "src": "26775:7:18" + }, + { + "kind": "number", + "nativeSrc": "26784:1:18", + "nodeType": "YulLiteral", + "src": "26784:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26771:3:18", + "nodeType": "YulIdentifier", + "src": "26771:3:18" + }, + "nativeSrc": "26771:15:18", + "nodeType": "YulFunctionCall", + "src": "26771:15:18" + }, + "variableNames": [ + { + "name": "dataPos", + "nativeSrc": "26760:7:18", + "nodeType": "YulIdentifier", + "src": "26760:7:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "26657:1:18", + "nodeType": "YulIdentifier", + "src": "26657:1:18" + }, + { + "name": "length", + "nativeSrc": "26660:6:18", + "nodeType": "YulIdentifier", + "src": "26660:6:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "26654:2:18", + "nodeType": "YulIdentifier", + "src": "26654:2:18" + }, + "nativeSrc": "26654:13:18", + "nodeType": "YulFunctionCall", + "src": "26654:13:18" + }, + "nativeSrc": "26646:154:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "26668:21:18", + "nodeType": "YulBlock", + "src": "26668:21:18", + "statements": [ + { + "nativeSrc": "26670:17:18", + "nodeType": "YulAssignment", + "src": "26670:17:18", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "26679:1:18", + "nodeType": "YulIdentifier", + "src": "26679:1:18" + }, + { + "kind": "number", + "nativeSrc": "26682:4:18", + "nodeType": "YulLiteral", + "src": "26682:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26675:3:18", + "nodeType": "YulIdentifier", + "src": "26675:3:18" + }, + "nativeSrc": "26675:12:18", + "nodeType": "YulFunctionCall", + "src": "26675:12:18" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "26670:1:18", + "nodeType": "YulIdentifier", + "src": "26670:1:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "26650:3:18", + "nodeType": "YulBlock", + "src": "26650:3:18", + "statements": [] + }, + "src": "26646:154:18" + }, + { + "nativeSrc": "26813:23:18", + "nodeType": "YulAssignment", + "src": "26813:23:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "26824:3:18", + "nodeType": "YulIdentifier", + "src": "26824:3:18" + }, + { + "name": "length", + "nativeSrc": "26829:6:18", + "nodeType": "YulIdentifier", + "src": "26829:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26820:3:18", + "nodeType": "YulIdentifier", + "src": "26820:3:18" + }, + "nativeSrc": "26820:16:18", + "nodeType": "YulFunctionCall", + "src": "26820:16:18" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "26813:3:18", + "nodeType": "YulIdentifier", + "src": "26813:3:18" + } + ] } - ], - "functionName": { - "name": "add", - "nativeSrc": "34928:3:18", - "nodeType": "YulIdentifier", - "src": "34928:3:18" - }, - "nativeSrc": "34928:16:18", - "nodeType": "YulFunctionCall", - "src": "34928:16:18" - }, - { - "name": "pos", - "nativeSrc": "34946:3:18", - "nodeType": "YulIdentifier", - "src": "34946:3:18" + ] }, - { - "name": "length", - "nativeSrc": "34951:6:18", - "nodeType": "YulIdentifier", - "src": "34951:6:18" + "nativeSrc": "26505:341:18", + "nodeType": "YulCase", + "src": "26505:341:18", + "value": { + "kind": "number", + "nativeSrc": "26510:1:18", + "nodeType": "YulLiteral", + "src": "26510:1:18", + "type": "", + "value": "1" } - ], - "functionName": { - "name": "copy_memory_to_memory_with_cleanup", - "nativeSrc": "34893:34:18", - "nodeType": "YulIdentifier", - "src": "34893:34:18" - }, - "nativeSrc": "34893:65:18", - "nodeType": "YulFunctionCall", - "src": "34893:65:18" - }, - "nativeSrc": "34893:65:18", - "nodeType": "YulExpressionStatement", - "src": "34893:65:18" - }, - { - "nativeSrc": "34971:23:18", - "nodeType": "YulAssignment", - "src": "34971:23:18", - "value": { + } + ], + "expression": { "arguments": [ { - "name": "pos", - "nativeSrc": "34982:3:18", + "name": "slotValue", + "nativeSrc": "26308:9:18", "nodeType": "YulIdentifier", - "src": "34982:3:18" + "src": "26308:9:18" }, { - "name": "length", - "nativeSrc": "34987:6:18", - "nodeType": "YulIdentifier", - "src": "34987:6:18" + "kind": "number", + "nativeSrc": "26319:1:18", + "nodeType": "YulLiteral", + "src": "26319:1:18", + "type": "", + "value": "1" } ], "functionName": { - "name": "add", - "nativeSrc": "34978:3:18", + "name": "and", + "nativeSrc": "26304:3:18", "nodeType": "YulIdentifier", - "src": "34978:3:18" + "src": "26304:3:18" }, - "nativeSrc": "34978:16:18", + "nativeSrc": "26304:17:18", "nodeType": "YulFunctionCall", - "src": "34978:16:18" + "src": "26304:17:18" }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "34971:3:18", - "nodeType": "YulIdentifier", - "src": "34971:3:18" - } - ] + "nativeSrc": "26297:549:18", + "nodeType": "YulSwitch", + "src": "26297:549:18" } ] }, - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "34594:410:18", + "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "25978:874:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", - "nativeSrc": "34685:5:18", + "nativeSrc": "26066:5:18", "nodeType": "YulTypedName", - "src": "34685:5:18", + "src": "26066:5:18", "type": "" }, { "name": "pos", - "nativeSrc": "34692:3:18", - "nodeType": "YulTypedName", - "src": "34692:3:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "34700:3:18", - "nodeType": "YulTypedName", - "src": "34700:3:18", - "type": "" - } - ], - "src": "34594:410:18" - }, - { - "body": { - "nativeSrc": "35647:1056:18", - "nodeType": "YulBlock", - "src": "35647:1056:18", - "statements": [ - { - "nativeSrc": "35662:155:18", - "nodeType": "YulAssignment", - "src": "35662:155:18", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "35813:3:18", - "nodeType": "YulIdentifier", - "src": "35813:3:18" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "35669:142:18", - "nodeType": "YulIdentifier", - "src": "35669:142:18" - }, - "nativeSrc": "35669:148:18", - "nodeType": "YulFunctionCall", - "src": "35669:148:18" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "35662:3:18", - "nodeType": "YulIdentifier", - "src": "35662:3:18" - } - ] - }, - { - "nativeSrc": "35831:99:18", - "nodeType": "YulAssignment", - "src": "35831:99:18", - "value": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "35917:6:18", - "nodeType": "YulIdentifier", - "src": "35917:6:18" - }, - { - "name": "pos", - "nativeSrc": "35926:3:18", - "nodeType": "YulIdentifier", - "src": "35926:3:18" - } - ], - "functionName": { - "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "35838:78:18", - "nodeType": "YulIdentifier", - "src": "35838:78:18" - }, - "nativeSrc": "35838:92:18", - "nodeType": "YulFunctionCall", - "src": "35838:92:18" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "35831:3:18", - "nodeType": "YulIdentifier", - "src": "35831:3:18" - } - ] - }, - { - "nativeSrc": "35944:155:18", - "nodeType": "YulAssignment", - "src": "35944:155:18", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "36095:3:18", - "nodeType": "YulIdentifier", - "src": "36095:3:18" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "35951:142:18", - "nodeType": "YulIdentifier", - "src": "35951:142:18" - }, - "nativeSrc": "35951:148:18", - "nodeType": "YulFunctionCall", - "src": "35951:148:18" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "35944:3:18", - "nodeType": "YulIdentifier", - "src": "35944:3:18" - } - ] - }, - { - "nativeSrc": "36113:102:18", - "nodeType": "YulAssignment", - "src": "36113:102:18", - "value": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "36202:6:18", - "nodeType": "YulIdentifier", - "src": "36202:6:18" - }, - { - "name": "pos", - "nativeSrc": "36211:3:18", - "nodeType": "YulIdentifier", - "src": "36211:3:18" - } - ], - "functionName": { - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "36120:81:18", - "nodeType": "YulIdentifier", - "src": "36120:81:18" - }, - "nativeSrc": "36120:95:18", - "nodeType": "YulFunctionCall", - "src": "36120:95:18" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "36113:3:18", - "nodeType": "YulIdentifier", - "src": "36113:3:18" - } - ] - }, - { - "nativeSrc": "36229:155:18", - "nodeType": "YulAssignment", - "src": "36229:155:18", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "36380:3:18", - "nodeType": "YulIdentifier", - "src": "36380:3:18" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "36236:142:18", - "nodeType": "YulIdentifier", - "src": "36236:142:18" - }, - "nativeSrc": "36236:148:18", - "nodeType": "YulFunctionCall", - "src": "36236:148:18" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "36229:3:18", - "nodeType": "YulIdentifier", - "src": "36229:3:18" - } - ] - }, - { - "nativeSrc": "36398:102:18", - "nodeType": "YulAssignment", - "src": "36398:102:18", - "value": { - "arguments": [ - { - "name": "value2", - "nativeSrc": "36487:6:18", - "nodeType": "YulIdentifier", - "src": "36487:6:18" - }, - { - "name": "pos", - "nativeSrc": "36496:3:18", - "nodeType": "YulIdentifier", - "src": "36496:3:18" - } - ], - "functionName": { - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "36405:81:18", - "nodeType": "YulIdentifier", - "src": "36405:81:18" - }, - "nativeSrc": "36405:95:18", - "nodeType": "YulFunctionCall", - "src": "36405:95:18" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "36398:3:18", - "nodeType": "YulIdentifier", - "src": "36398:3:18" - } - ] - }, - { - "nativeSrc": "36514:155:18", - "nodeType": "YulAssignment", - "src": "36514:155:18", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "36665:3:18", - "nodeType": "YulIdentifier", - "src": "36665:3:18" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "36521:142:18", - "nodeType": "YulIdentifier", - "src": "36521:142:18" - }, - "nativeSrc": "36521:148:18", - "nodeType": "YulFunctionCall", - "src": "36521:148:18" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "36514:3:18", - "nodeType": "YulIdentifier", - "src": "36514:3:18" - } - ] - }, - { - "nativeSrc": "36683:10:18", - "nodeType": "YulAssignment", - "src": "36683:10:18", - "value": { - "name": "pos", - "nativeSrc": "36690:3:18", - "nodeType": "YulIdentifier", - "src": "36690:3:18" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "36683:3:18", - "nodeType": "YulIdentifier", - "src": "36683:3:18" - } - ] - } - ] - }, - "name": "abi_encode_tuple_packed_t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe_t_string_storage_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_t_string_memory_ptr_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_t_string_memory_ptr_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", - "nativeSrc": "35014:1689:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "35610:3:18", - "nodeType": "YulTypedName", - "src": "35610:3:18", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "35616:6:18", - "nodeType": "YulTypedName", - "src": "35616:6:18", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "35624:6:18", - "nodeType": "YulTypedName", - "src": "35624:6:18", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "35632:6:18", + "nativeSrc": "26073:3:18", "nodeType": "YulTypedName", - "src": "35632:6:18", + "src": "26073:3:18", "type": "" } ], "returnVariables": [ { - "name": "end", - "nativeSrc": "35643:3:18", + "name": "ret", + "nativeSrc": "26081:3:18", "nodeType": "YulTypedName", - "src": "35643:3:18", + "src": "26081:3:18", "type": "" } ], - "src": "35014:1689:18" + "src": "25978:874:18" }, { "body": { - "nativeSrc": "36811:136:18", + "nativeSrc": "26964:56:18", "nodeType": "YulBlock", - "src": "36811:136:18", + "src": "26964:56:18", "statements": [ - { - "nativeSrc": "36825:26:18", - "nodeType": "YulAssignment", - "src": "36825:26:18", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "36837:9:18", - "nodeType": "YulIdentifier", - "src": "36837:9:18" - }, - { - "kind": "number", - "nativeSrc": "36848:2:18", - "nodeType": "YulLiteral", - "src": "36848:2:18", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "36833:3:18", - "nodeType": "YulIdentifier", - "src": "36833:3:18" - }, - "nativeSrc": "36833:18:18", - "nodeType": "YulFunctionCall", - "src": "36833:18:18" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "36825:4:18", - "nodeType": "YulIdentifier", - "src": "36825:4:18" - } - ] - }, { "expression": { "arguments": [ - { - "name": "value0", - "nativeSrc": "36909:6:18", - "nodeType": "YulIdentifier", - "src": "36909:6:18" - }, { "arguments": [ { - "name": "headStart", - "nativeSrc": "36922:9:18", + "name": "memPtr", + "nativeSrc": "26986:6:18", "nodeType": "YulIdentifier", - "src": "36922:9:18" + "src": "26986:6:18" }, { "kind": "number", - "nativeSrc": "36933:1:18", + "nativeSrc": "26994:1:18", "nodeType": "YulLiteral", - "src": "36933:1:18", + "src": "26994:1:18", "type": "", "value": "0" } ], "functionName": { "name": "add", - "nativeSrc": "36918:3:18", + "nativeSrc": "26982:3:18", "nodeType": "YulIdentifier", - "src": "36918:3:18" + "src": "26982:3:18" }, - "nativeSrc": "36918:17:18", + "nativeSrc": "26982:14:18", "nodeType": "YulFunctionCall", - "src": "36918:17:18" + "src": "26982:14:18" + }, + { + "hexValue": "2f6170692f76312f6e66742f", + "kind": "string", + "nativeSrc": "26998:14:18", + "nodeType": "YulLiteral", + "src": "26998:14:18", + "type": "", + "value": "/api/v1/nft/" } ], "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "36865:43:18", + "name": "mstore", + "nativeSrc": "26975:6:18", "nodeType": "YulIdentifier", - "src": "36865:43:18" + "src": "26975:6:18" }, - "nativeSrc": "36865:71:18", + "nativeSrc": "26975:38:18", "nodeType": "YulFunctionCall", - "src": "36865:71:18" + "src": "26975:38:18" }, - "nativeSrc": "36865:71:18", + "nativeSrc": "26975:38:18", "nodeType": "YulExpressionStatement", - "src": "36865:71:18" + "src": "26975:38:18" } ] }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nativeSrc": "36713:234:18", + "name": "store_literal_in_memory_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7", + "nativeSrc": "26858:162:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nativeSrc": "36783:9:18", - "nodeType": "YulTypedName", - "src": "36783:9:18", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "36795:6:18", - "nodeType": "YulTypedName", - "src": "36795:6:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "36806:4:18", + "name": "memPtr", + "nativeSrc": "26956:6:18", "nodeType": "YulTypedName", - "src": "36806:4:18", + "src": "26956:6:18", "type": "" } ], - "src": "36713:234:18" + "src": "26858:162:18" }, { "body": { - "nativeSrc": "36985:168:18", + "nativeSrc": "27190:238:18", "nodeType": "YulBlock", - "src": "36985:168:18", + "src": "27190:238:18", "statements": [ { - "expression": { + "nativeSrc": "27200:92:18", + "nodeType": "YulAssignment", + "src": "27200:92:18", + "value": { "arguments": [ { - "kind": "number", - "nativeSrc": "37006:1:18", - "nodeType": "YulLiteral", - "src": "37006:1:18", - "type": "", - "value": "0" + "name": "pos", + "nativeSrc": "27284:3:18", + "nodeType": "YulIdentifier", + "src": "27284:3:18" }, { "kind": "number", - "nativeSrc": "37009:77:18", + "nativeSrc": "27289:2:18", "nodeType": "YulLiteral", - "src": "37009:77:18", + "src": "27289:2:18", "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + "value": "12" } ], "functionName": { - "name": "mstore", - "nativeSrc": "36999:6:18", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "27207:76:18", "nodeType": "YulIdentifier", - "src": "36999:6:18" + "src": "27207:76:18" }, - "nativeSrc": "36999:88:18", + "nativeSrc": "27207:85:18", "nodeType": "YulFunctionCall", - "src": "36999:88:18" + "src": "27207:85:18" }, - "nativeSrc": "36999:88:18", - "nodeType": "YulExpressionStatement", - "src": "36999:88:18" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "37107:1:18", - "nodeType": "YulLiteral", - "src": "37107:1:18", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "37110:4:18", - "nodeType": "YulLiteral", - "src": "37110:4:18", - "type": "", - "value": "0x12" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "37100:6:18", + "variableNames": [ + { + "name": "pos", + "nativeSrc": "27200:3:18", "nodeType": "YulIdentifier", - "src": "37100:6:18" - }, - "nativeSrc": "37100:15:18", - "nodeType": "YulFunctionCall", - "src": "37100:15:18" - }, - "nativeSrc": "37100:15:18", - "nodeType": "YulExpressionStatement", - "src": "37100:15:18" + "src": "27200:3:18" + } + ] }, { "expression": { "arguments": [ { - "kind": "number", - "nativeSrc": "37135:1:18", - "nodeType": "YulLiteral", - "src": "37135:1:18", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "37138:4:18", - "nodeType": "YulLiteral", - "src": "37138:4:18", - "type": "", - "value": "0x24" + "name": "pos", + "nativeSrc": "27390:3:18", + "nodeType": "YulIdentifier", + "src": "27390:3:18" } ], "functionName": { - "name": "revert", - "nativeSrc": "37128:6:18", + "name": "store_literal_in_memory_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7", + "nativeSrc": "27301:88:18", "nodeType": "YulIdentifier", - "src": "37128:6:18" + "src": "27301:88:18" }, - "nativeSrc": "37128:15:18", + "nativeSrc": "27301:93:18", "nodeType": "YulFunctionCall", - "src": "37128:15:18" + "src": "27301:93:18" }, - "nativeSrc": "37128:15:18", + "nativeSrc": "27301:93:18", "nodeType": "YulExpressionStatement", - "src": "37128:15:18" - } - ] - }, - "name": "panic_error_0x12", - "nativeSrc": "36957:196:18", - "nodeType": "YulFunctionDefinition", - "src": "36957:196:18" - }, - { - "body": { - "nativeSrc": "37289:222:18", - "nodeType": "YulBlock", - "src": "37289:222:18", - "statements": [ + "src": "27301:93:18" + }, { - "nativeSrc": "37303:26:18", + "nativeSrc": "27403:19:18", "nodeType": "YulAssignment", - "src": "37303:26:18", + "src": "27403:19:18", "value": { "arguments": [ { - "name": "headStart", - "nativeSrc": "37315:9:18", + "name": "pos", + "nativeSrc": "27414:3:18", "nodeType": "YulIdentifier", - "src": "37315:9:18" + "src": "27414:3:18" }, { "kind": "number", - "nativeSrc": "37326:2:18", + "nativeSrc": "27419:2:18", "nodeType": "YulLiteral", - "src": "37326:2:18", + "src": "27419:2:18", "type": "", - "value": "64" + "value": "12" } ], "functionName": { "name": "add", - "nativeSrc": "37311:3:18", + "nativeSrc": "27410:3:18", "nodeType": "YulIdentifier", - "src": "37311:3:18" + "src": "27410:3:18" }, - "nativeSrc": "37311:18:18", + "nativeSrc": "27410:12:18", "nodeType": "YulFunctionCall", - "src": "37311:18:18" + "src": "27410:12:18" }, "variableNames": [ { - "name": "tail", - "nativeSrc": "37303:4:18", + "name": "end", + "nativeSrc": "27403:3:18", "nodeType": "YulIdentifier", - "src": "37303:4:18" + "src": "27403:3:18" } ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "37387:6:18", - "nodeType": "YulIdentifier", - "src": "37387:6:18" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "37400:9:18", - "nodeType": "YulIdentifier", - "src": "37400:9:18" - }, - { - "kind": "number", - "nativeSrc": "37411:1:18", - "nodeType": "YulLiteral", - "src": "37411:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "37396:3:18", - "nodeType": "YulIdentifier", - "src": "37396:3:18" - }, - "nativeSrc": "37396:17:18", - "nodeType": "YulFunctionCall", - "src": "37396:17:18" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "37343:43:18", - "nodeType": "YulIdentifier", - "src": "37343:43:18" - }, - "nativeSrc": "37343:71:18", - "nodeType": "YulFunctionCall", - "src": "37343:71:18" - }, - "nativeSrc": "37343:71:18", - "nodeType": "YulExpressionStatement", - "src": "37343:71:18" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "37472:6:18", - "nodeType": "YulIdentifier", - "src": "37472:6:18" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "37485:9:18", - "nodeType": "YulIdentifier", - "src": "37485:9:18" - }, - { - "kind": "number", - "nativeSrc": "37496:2:18", - "nodeType": "YulLiteral", - "src": "37496:2:18", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "37481:3:18", - "nodeType": "YulIdentifier", - "src": "37481:3:18" - }, - "nativeSrc": "37481:18:18", - "nodeType": "YulFunctionCall", - "src": "37481:18:18" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "37428:43:18", - "nodeType": "YulIdentifier", - "src": "37428:43:18" - }, - "nativeSrc": "37428:72:18", - "nodeType": "YulFunctionCall", - "src": "37428:72:18" - }, - "nativeSrc": "37428:72:18", - "nodeType": "YulExpressionStatement", - "src": "37428:72:18" } ] }, - "name": "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed", - "nativeSrc": "37163:348:18", + "name": "abi_encode_t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "27026:402:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nativeSrc": "37253:9:18", - "nodeType": "YulTypedName", - "src": "37253:9:18", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "37265:6:18", - "nodeType": "YulTypedName", - "src": "37265:6:18", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "37273:6:18", + "name": "pos", + "nativeSrc": "27178:3:18", "nodeType": "YulTypedName", - "src": "37273:6:18", + "src": "27178:3:18", "type": "" } ], "returnVariables": [ { - "name": "tail", - "nativeSrc": "37284:4:18", + "name": "end", + "nativeSrc": "27186:3:18", "nodeType": "YulTypedName", - "src": "37284:4:18", + "src": "27186:3:18", "type": "" } ], - "src": "37163:348:18" + "src": "27026:402:18" }, { "body": { - "nativeSrc": "37703:395:18", + "nativeSrc": "27544:280:18", "nodeType": "YulBlock", - "src": "37703:395:18", + "src": "27544:280:18", "statements": [ { - "nativeSrc": "37717:27:18", - "nodeType": "YulAssignment", - "src": "37717:27:18", + "nativeSrc": "27554:53:18", + "nodeType": "YulVariableDeclaration", + "src": "27554:53:18", "value": { "arguments": [ { - "name": "headStart", - "nativeSrc": "37729:9:18", + "name": "value", + "nativeSrc": "27601:5:18", "nodeType": "YulIdentifier", - "src": "37729:9:18" - }, - { - "kind": "number", - "nativeSrc": "37740:3:18", - "nodeType": "YulLiteral", - "src": "37740:3:18", - "type": "", - "value": "128" + "src": "27601:5:18" } ], "functionName": { - "name": "add", - "nativeSrc": "37725:3:18", + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "27568:32:18", "nodeType": "YulIdentifier", - "src": "37725:3:18" + "src": "27568:32:18" }, - "nativeSrc": "37725:19:18", + "nativeSrc": "27568:39:18", "nodeType": "YulFunctionCall", - "src": "37725:19:18" + "src": "27568:39:18" }, - "variableNames": [ + "variables": [ { - "name": "tail", - "nativeSrc": "37717:4:18", - "nodeType": "YulIdentifier", - "src": "37717:4:18" + "name": "length", + "nativeSrc": "27558:6:18", + "nodeType": "YulTypedName", + "src": "27558:6:18", + "type": "" } ] }, { - "expression": { + "nativeSrc": "27616:96:18", + "nodeType": "YulAssignment", + "src": "27616:96:18", + "value": { "arguments": [ { - "name": "value0", - "nativeSrc": "37802:6:18", + "name": "pos", + "nativeSrc": "27700:3:18", "nodeType": "YulIdentifier", - "src": "37802:6:18" + "src": "27700:3:18" }, { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "37815:9:18", - "nodeType": "YulIdentifier", - "src": "37815:9:18" - }, - { - "kind": "number", - "nativeSrc": "37826:1:18", - "nodeType": "YulLiteral", - "src": "37826:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "37811:3:18", - "nodeType": "YulIdentifier", - "src": "37811:3:18" - }, - "nativeSrc": "37811:17:18", - "nodeType": "YulFunctionCall", - "src": "37811:17:18" + "name": "length", + "nativeSrc": "27705:6:18", + "nodeType": "YulIdentifier", + "src": "27705:6:18" } ], "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "37758:43:18", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "27623:76:18", "nodeType": "YulIdentifier", - "src": "37758:43:18" + "src": "27623:76:18" }, - "nativeSrc": "37758:71:18", + "nativeSrc": "27623:89:18", "nodeType": "YulFunctionCall", - "src": "37758:71:18" + "src": "27623:89:18" }, - "nativeSrc": "37758:71:18", - "nodeType": "YulExpressionStatement", - "src": "37758:71:18" + "variableNames": [ + { + "name": "pos", + "nativeSrc": "27616:3:18", + "nodeType": "YulIdentifier", + "src": "27616:3:18" + } + ] }, { "expression": { "arguments": [ - { - "name": "value1", - "nativeSrc": "37887:6:18", - "nodeType": "YulIdentifier", - "src": "37887:6:18" - }, { "arguments": [ { - "name": "headStart", - "nativeSrc": "37900:9:18", + "name": "value", + "nativeSrc": "27760:5:18", "nodeType": "YulIdentifier", - "src": "37900:9:18" + "src": "27760:5:18" }, { "kind": "number", - "nativeSrc": "37911:2:18", + "nativeSrc": "27767:4:18", "nodeType": "YulLiteral", - "src": "37911:2:18", + "src": "27767:4:18", "type": "", - "value": "32" + "value": "0x20" } ], "functionName": { "name": "add", - "nativeSrc": "37896:3:18", + "nativeSrc": "27756:3:18", "nodeType": "YulIdentifier", - "src": "37896:3:18" + "src": "27756:3:18" }, - "nativeSrc": "37896:18:18", + "nativeSrc": "27756:16:18", "nodeType": "YulFunctionCall", - "src": "37896:18:18" + "src": "27756:16:18" + }, + { + "name": "pos", + "nativeSrc": "27774:3:18", + "nodeType": "YulIdentifier", + "src": "27774:3:18" + }, + { + "name": "length", + "nativeSrc": "27779:6:18", + "nodeType": "YulIdentifier", + "src": "27779:6:18" } ], "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "37843:43:18", + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "27721:34:18", "nodeType": "YulIdentifier", - "src": "37843:43:18" + "src": "27721:34:18" }, - "nativeSrc": "37843:72:18", + "nativeSrc": "27721:65:18", "nodeType": "YulFunctionCall", - "src": "37843:72:18" + "src": "27721:65:18" }, - "nativeSrc": "37843:72:18", + "nativeSrc": "27721:65:18", "nodeType": "YulExpressionStatement", - "src": "37843:72:18" + "src": "27721:65:18" }, { - "expression": { + "nativeSrc": "27795:23:18", + "nodeType": "YulAssignment", + "src": "27795:23:18", + "value": { "arguments": [ { - "name": "value2", - "nativeSrc": "37973:6:18", + "name": "pos", + "nativeSrc": "27806:3:18", "nodeType": "YulIdentifier", - "src": "37973:6:18" + "src": "27806:3:18" }, { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "37986:9:18", - "nodeType": "YulIdentifier", - "src": "37986:9:18" - }, - { - "kind": "number", - "nativeSrc": "37997:2:18", - "nodeType": "YulLiteral", - "src": "37997:2:18", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "37982:3:18", - "nodeType": "YulIdentifier", - "src": "37982:3:18" - }, - "nativeSrc": "37982:18:18", - "nodeType": "YulFunctionCall", - "src": "37982:18:18" + "name": "length", + "nativeSrc": "27811:6:18", + "nodeType": "YulIdentifier", + "src": "27811:6:18" } ], "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "37929:43:18", + "name": "add", + "nativeSrc": "27802:3:18", "nodeType": "YulIdentifier", - "src": "37929:43:18" + "src": "27802:3:18" }, - "nativeSrc": "37929:72:18", + "nativeSrc": "27802:16:18", "nodeType": "YulFunctionCall", - "src": "37929:72:18" + "src": "27802:16:18" }, - "nativeSrc": "37929:72:18", - "nodeType": "YulExpressionStatement", - "src": "37929:72:18" - }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "27795:3:18", + "nodeType": "YulIdentifier", + "src": "27795:3:18" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "27434:390:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "27525:5:18", + "nodeType": "YulTypedName", + "src": "27525:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "27532:3:18", + "nodeType": "YulTypedName", + "src": "27532:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "27540:3:18", + "nodeType": "YulTypedName", + "src": "27540:3:18", + "type": "" + } + ], + "src": "27434:390:18" + }, + { + "body": { + "nativeSrc": "27936:45:18", + "nodeType": "YulBlock", + "src": "27936:45:18", + "statements": [ { "expression": { "arguments": [ - { - "name": "value3", - "nativeSrc": "38059:6:18", - "nodeType": "YulIdentifier", - "src": "38059:6:18" - }, { "arguments": [ { - "name": "headStart", - "nativeSrc": "38072:9:18", + "name": "memPtr", + "nativeSrc": "27958:6:18", "nodeType": "YulIdentifier", - "src": "38072:9:18" + "src": "27958:6:18" }, { "kind": "number", - "nativeSrc": "38083:2:18", + "nativeSrc": "27966:1:18", "nodeType": "YulLiteral", - "src": "38083:2:18", + "src": "27966:1:18", "type": "", - "value": "96" + "value": "0" } ], "functionName": { "name": "add", - "nativeSrc": "38068:3:18", + "nativeSrc": "27954:3:18", "nodeType": "YulIdentifier", - "src": "38068:3:18" + "src": "27954:3:18" }, - "nativeSrc": "38068:18:18", + "nativeSrc": "27954:14:18", "nodeType": "YulFunctionCall", - "src": "38068:18:18" + "src": "27954:14:18" + }, + { + "hexValue": "2f", + "kind": "string", + "nativeSrc": "27970:3:18", + "nodeType": "YulLiteral", + "src": "27970:3:18", + "type": "", + "value": "/" } ], "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "38015:43:18", + "name": "mstore", + "nativeSrc": "27947:6:18", "nodeType": "YulIdentifier", - "src": "38015:43:18" + "src": "27947:6:18" }, - "nativeSrc": "38015:72:18", + "nativeSrc": "27947:27:18", "nodeType": "YulFunctionCall", - "src": "38015:72:18" + "src": "27947:27:18" }, - "nativeSrc": "38015:72:18", + "nativeSrc": "27947:27:18", "nodeType": "YulExpressionStatement", - "src": "38015:72:18" + "src": "27947:27:18" } ] }, - "name": "abi_encode_tuple_t_address_t_uint256_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256__fromStack_reversed", - "nativeSrc": "37521:577:18", + "name": "store_literal_in_memory_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527", + "nativeSrc": "27830:151:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nativeSrc": "37651:9:18", - "nodeType": "YulTypedName", - "src": "37651:9:18", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "37663:6:18", - "nodeType": "YulTypedName", - "src": "37663:6:18", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "37671:6:18", - "nodeType": "YulTypedName", - "src": "37671:6:18", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "37679:6:18", - "nodeType": "YulTypedName", - "src": "37679:6:18", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "37687:6:18", - "nodeType": "YulTypedName", - "src": "37687:6:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "37698:4:18", + "name": "memPtr", + "nativeSrc": "27928:6:18", "nodeType": "YulTypedName", - "src": "37698:4:18", + "src": "27928:6:18", "type": "" } ], - "src": "37521:577:18" + "src": "27830:151:18" }, { "body": { - "nativeSrc": "38152:167:18", + "nativeSrc": "28151:236:18", "nodeType": "YulBlock", - "src": "38152:167:18", + "src": "28151:236:18", "statements": [ { - "nativeSrc": "38166:25:18", + "nativeSrc": "28161:91:18", "nodeType": "YulAssignment", - "src": "38166:25:18", + "src": "28161:91:18", "value": { "arguments": [ { - "name": "x", - "nativeSrc": "38189:1:18", + "name": "pos", + "nativeSrc": "28245:3:18", "nodeType": "YulIdentifier", - "src": "38189:1:18" + "src": "28245:3:18" + }, + { + "kind": "number", + "nativeSrc": "28250:1:18", + "nodeType": "YulLiteral", + "src": "28250:1:18", + "type": "", + "value": "1" } ], "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "38171:17:18", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "28168:76:18", "nodeType": "YulIdentifier", - "src": "38171:17:18" + "src": "28168:76:18" }, - "nativeSrc": "38171:20:18", + "nativeSrc": "28168:84:18", "nodeType": "YulFunctionCall", - "src": "38171:20:18" + "src": "28168:84:18" }, "variableNames": [ { - "name": "x", - "nativeSrc": "38166:1:18", + "name": "pos", + "nativeSrc": "28161:3:18", "nodeType": "YulIdentifier", - "src": "38166:1:18" + "src": "28161:3:18" } ] }, { - "nativeSrc": "38204:25:18", - "nodeType": "YulAssignment", - "src": "38204:25:18", - "value": { + "expression": { "arguments": [ { - "name": "y", - "nativeSrc": "38227:1:18", + "name": "pos", + "nativeSrc": "28350:3:18", "nodeType": "YulIdentifier", - "src": "38227:1:18" + "src": "28350:3:18" } ], "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "38209:17:18", + "name": "store_literal_in_memory_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527", + "nativeSrc": "28261:88:18", "nodeType": "YulIdentifier", - "src": "38209:17:18" + "src": "28261:88:18" }, - "nativeSrc": "38209:20:18", + "nativeSrc": "28261:93:18", "nodeType": "YulFunctionCall", - "src": "38209:20:18" + "src": "28261:93:18" }, - "variableNames": [ - { - "name": "y", - "nativeSrc": "38204:1:18", - "nodeType": "YulIdentifier", - "src": "38204:1:18" - } - ] + "nativeSrc": "28261:93:18", + "nodeType": "YulExpressionStatement", + "src": "28261:93:18" }, { - "nativeSrc": "38242:16:18", + "nativeSrc": "28363:18:18", "nodeType": "YulAssignment", - "src": "38242:16:18", + "src": "28363:18:18", "value": { "arguments": [ { - "name": "x", - "nativeSrc": "38253:1:18", + "name": "pos", + "nativeSrc": "28374:3:18", "nodeType": "YulIdentifier", - "src": "38253:1:18" + "src": "28374:3:18" }, { - "name": "y", - "nativeSrc": "38256:1:18", - "nodeType": "YulIdentifier", - "src": "38256:1:18" + "kind": "number", + "nativeSrc": "28379:1:18", + "nodeType": "YulLiteral", + "src": "28379:1:18", + "type": "", + "value": "1" } ], "functionName": { "name": "add", - "nativeSrc": "38249:3:18", + "nativeSrc": "28370:3:18", "nodeType": "YulIdentifier", - "src": "38249:3:18" + "src": "28370:3:18" }, - "nativeSrc": "38249:9:18", + "nativeSrc": "28370:11:18", "nodeType": "YulFunctionCall", - "src": "38249:9:18" + "src": "28370:11:18" }, "variableNames": [ { - "name": "sum", - "nativeSrc": "38242:3:18", + "name": "end", + "nativeSrc": "28363:3:18", "nodeType": "YulIdentifier", - "src": "38242:3:18" + "src": "28363:3:18" } ] - }, - { - "body": { - "nativeSrc": "38286:22:18", - "nodeType": "YulBlock", - "src": "38286:22:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nativeSrc": "38288:16:18", - "nodeType": "YulIdentifier", - "src": "38288:16:18" - }, - "nativeSrc": "38288:18:18", - "nodeType": "YulFunctionCall", - "src": "38288:18:18" - }, - "nativeSrc": "38288:18:18", - "nodeType": "YulExpressionStatement", - "src": "38288:18:18" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "x", - "nativeSrc": "38278:1:18", - "nodeType": "YulIdentifier", - "src": "38278:1:18" - }, - { - "name": "sum", - "nativeSrc": "38281:3:18", - "nodeType": "YulIdentifier", - "src": "38281:3:18" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "38275:2:18", - "nodeType": "YulIdentifier", - "src": "38275:2:18" - }, - "nativeSrc": "38275:10:18", - "nodeType": "YulFunctionCall", - "src": "38275:10:18" - }, - "nativeSrc": "38272:36:18", - "nodeType": "YulIf", - "src": "38272:36:18" } ] }, - "name": "checked_add_t_uint256", - "nativeSrc": "38108:211:18", + "name": "abi_encode_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "27987:400:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "x", - "nativeSrc": "38139:1:18", - "nodeType": "YulTypedName", - "src": "38139:1:18", - "type": "" - }, - { - "name": "y", - "nativeSrc": "38142:1:18", + "name": "pos", + "nativeSrc": "28139:3:18", "nodeType": "YulTypedName", - "src": "38142:1:18", + "src": "28139:3:18", "type": "" } ], "returnVariables": [ { - "name": "sum", - "nativeSrc": "38148:3:18", + "name": "end", + "nativeSrc": "28147:3:18", "nodeType": "YulTypedName", - "src": "38148:3:18", + "src": "28147:3:18", "type": "" } ], - "src": "38108:211:18" + "src": "27987:400:18" }, { "body": { - "nativeSrc": "38555:432:18", + "nativeSrc": "28499:61:18", "nodeType": "YulBlock", - "src": "38555:432:18", + "src": "28499:61:18", "statements": [ - { - "nativeSrc": "38569:26:18", - "nodeType": "YulAssignment", - "src": "38569:26:18", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "38581:9:18", - "nodeType": "YulIdentifier", - "src": "38581:9:18" - }, - { - "kind": "number", - "nativeSrc": "38592:2:18", - "nodeType": "YulLiteral", - "src": "38592:2:18", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "38577:3:18", - "nodeType": "YulIdentifier", - "src": "38577:3:18" - }, - "nativeSrc": "38577:18:18", - "nodeType": "YulFunctionCall", - "src": "38577:18:18" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "38569:4:18", - "nodeType": "YulIdentifier", - "src": "38569:4:18" - } - ] - }, { "expression": { "arguments": [ { "arguments": [ { - "name": "headStart", - "nativeSrc": "38620:9:18", + "name": "memPtr", + "nativeSrc": "28521:6:18", "nodeType": "YulIdentifier", - "src": "38620:9:18" + "src": "28521:6:18" }, { "kind": "number", - "nativeSrc": "38631:1:18", + "nativeSrc": "28529:1:18", "nodeType": "YulLiteral", - "src": "38631:1:18", + "src": "28529:1:18", "type": "", "value": "0" } ], "functionName": { "name": "add", - "nativeSrc": "38616:3:18", + "nativeSrc": "28517:3:18", "nodeType": "YulIdentifier", - "src": "38616:3:18" + "src": "28517:3:18" }, - "nativeSrc": "38616:17:18", + "nativeSrc": "28517:14:18", "nodeType": "YulFunctionCall", - "src": "38616:17:18" + "src": "28517:14:18" }, { - "arguments": [ - { - "name": "tail", - "nativeSrc": "38639:4:18", - "nodeType": "YulIdentifier", - "src": "38639:4:18" - }, - { - "name": "headStart", - "nativeSrc": "38645:9:18", - "nodeType": "YulIdentifier", - "src": "38645:9:18" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "38635:3:18", - "nodeType": "YulIdentifier", - "src": "38635:3:18" - }, - "nativeSrc": "38635:20:18", - "nodeType": "YulFunctionCall", - "src": "38635:20:18" + "hexValue": "2f72657075746174696f6e2d73636f7265", + "kind": "string", + "nativeSrc": "28533:19:18", + "nodeType": "YulLiteral", + "src": "28533:19:18", + "type": "", + "value": "/reputation-score" } ], "functionName": { "name": "mstore", - "nativeSrc": "38609:6:18", + "nativeSrc": "28510:6:18", "nodeType": "YulIdentifier", - "src": "38609:6:18" + "src": "28510:6:18" }, - "nativeSrc": "38609:47:18", + "nativeSrc": "28510:43:18", "nodeType": "YulFunctionCall", - "src": "38609:47:18" + "src": "28510:43:18" }, - "nativeSrc": "38609:47:18", + "nativeSrc": "28510:43:18", "nodeType": "YulExpressionStatement", - "src": "38609:47:18" - }, + "src": "28510:43:18" + } + ] + }, + "name": "store_literal_in_memory_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55", + "nativeSrc": "28393:167:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "28491:6:18", + "nodeType": "YulTypedName", + "src": "28491:6:18", + "type": "" + } + ], + "src": "28393:167:18" + }, + { + "body": { + "nativeSrc": "28730:238:18", + "nodeType": "YulBlock", + "src": "28730:238:18", + "statements": [ { - "nativeSrc": "38669:116:18", + "nativeSrc": "28740:92:18", "nodeType": "YulAssignment", - "src": "38669:116:18", + "src": "28740:92:18", "value": { "arguments": [ { - "name": "value0", - "nativeSrc": "38771:6:18", + "name": "pos", + "nativeSrc": "28824:3:18", "nodeType": "YulIdentifier", - "src": "38771:6:18" + "src": "28824:3:18" }, { - "name": "tail", - "nativeSrc": "38780:4:18", - "nodeType": "YulIdentifier", - "src": "38780:4:18" + "kind": "number", + "nativeSrc": "28829:2:18", + "nodeType": "YulLiteral", + "src": "28829:2:18", + "type": "", + "value": "17" } ], "functionName": { - "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", - "nativeSrc": "38677:93:18", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "28747:76:18", "nodeType": "YulIdentifier", - "src": "38677:93:18" + "src": "28747:76:18" }, - "nativeSrc": "38677:108:18", + "nativeSrc": "28747:85:18", "nodeType": "YulFunctionCall", - "src": "38677:108:18" + "src": "28747:85:18" }, "variableNames": [ { - "name": "tail", - "nativeSrc": "38669:4:18", + "name": "pos", + "nativeSrc": "28740:3:18", "nodeType": "YulIdentifier", - "src": "38669:4:18" + "src": "28740:3:18" } ] }, @@ -81560,786 +81242,1175 @@ "expression": { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "38810:9:18", - "nodeType": "YulIdentifier", - "src": "38810:9:18" - }, - { - "kind": "number", - "nativeSrc": "38821:2:18", - "nodeType": "YulLiteral", - "src": "38821:2:18", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "38806:3:18", - "nodeType": "YulIdentifier", - "src": "38806:3:18" - }, - "nativeSrc": "38806:18:18", - "nodeType": "YulFunctionCall", - "src": "38806:18:18" - }, - { - "arguments": [ - { - "name": "tail", - "nativeSrc": "38830:4:18", - "nodeType": "YulIdentifier", - "src": "38830:4:18" - }, - { - "name": "headStart", - "nativeSrc": "38836:9:18", - "nodeType": "YulIdentifier", - "src": "38836:9:18" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "38826:3:18", - "nodeType": "YulIdentifier", - "src": "38826:3:18" - }, - "nativeSrc": "38826:20:18", - "nodeType": "YulFunctionCall", - "src": "38826:20:18" + "name": "pos", + "nativeSrc": "28930:3:18", + "nodeType": "YulIdentifier", + "src": "28930:3:18" } ], "functionName": { - "name": "mstore", - "nativeSrc": "38799:6:18", + "name": "store_literal_in_memory_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55", + "nativeSrc": "28841:88:18", "nodeType": "YulIdentifier", - "src": "38799:6:18" + "src": "28841:88:18" }, - "nativeSrc": "38799:48:18", + "nativeSrc": "28841:93:18", "nodeType": "YulFunctionCall", - "src": "38799:48:18" + "src": "28841:93:18" }, - "nativeSrc": "38799:48:18", + "nativeSrc": "28841:93:18", "nodeType": "YulExpressionStatement", - "src": "38799:48:18" + "src": "28841:93:18" }, { - "nativeSrc": "38860:116:18", + "nativeSrc": "28943:19:18", "nodeType": "YulAssignment", - "src": "38860:116:18", + "src": "28943:19:18", "value": { "arguments": [ { - "name": "value1", - "nativeSrc": "38962:6:18", + "name": "pos", + "nativeSrc": "28954:3:18", "nodeType": "YulIdentifier", - "src": "38962:6:18" + "src": "28954:3:18" }, { - "name": "tail", - "nativeSrc": "38971:4:18", - "nodeType": "YulIdentifier", - "src": "38971:4:18" + "kind": "number", + "nativeSrc": "28959:2:18", + "nodeType": "YulLiteral", + "src": "28959:2:18", + "type": "", + "value": "17" } ], "functionName": { - "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", - "nativeSrc": "38868:93:18", + "name": "add", + "nativeSrc": "28950:3:18", "nodeType": "YulIdentifier", - "src": "38868:93:18" + "src": "28950:3:18" }, - "nativeSrc": "38868:108:18", + "nativeSrc": "28950:12:18", "nodeType": "YulFunctionCall", - "src": "38868:108:18" + "src": "28950:12:18" }, "variableNames": [ { - "name": "tail", - "nativeSrc": "38860:4:18", + "name": "end", + "nativeSrc": "28943:3:18", "nodeType": "YulIdentifier", - "src": "38860:4:18" + "src": "28943:3:18" } ] } ] }, - "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", - "nativeSrc": "38329:658:18", + "name": "abi_encode_t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "28566:402:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nativeSrc": "38519:9:18", - "nodeType": "YulTypedName", - "src": "38519:9:18", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "38531:6:18", - "nodeType": "YulTypedName", - "src": "38531:6:18", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "38539:6:18", + "name": "pos", + "nativeSrc": "28718:3:18", "nodeType": "YulTypedName", - "src": "38539:6:18", + "src": "28718:3:18", "type": "" } ], "returnVariables": [ { - "name": "tail", - "nativeSrc": "38550:4:18", + "name": "end", + "nativeSrc": "28726:3:18", "nodeType": "YulTypedName", - "src": "38550:4:18", + "src": "28726:3:18", "type": "" } ], - "src": "38329:658:18" + "src": "28566:402:18" }, { "body": { - "nativeSrc": "39055:48:18", + "nativeSrc": "29506:855:18", "nodeType": "YulBlock", - "src": "39055:48:18", + "src": "29506:855:18", "statements": [ { - "nativeSrc": "39070:22:18", + "nativeSrc": "29517:99:18", "nodeType": "YulAssignment", - "src": "39070:22:18", + "src": "29517:99:18", "value": { "arguments": [ { - "name": "value", - "nativeSrc": "39086:5:18", + "name": "value0", + "nativeSrc": "29603:6:18", + "nodeType": "YulIdentifier", + "src": "29603:6:18" + }, + { + "name": "pos", + "nativeSrc": "29612:3:18", "nodeType": "YulIdentifier", - "src": "39086:5:18" + "src": "29612:3:18" } ], "functionName": { - "name": "mload", - "nativeSrc": "39080:5:18", + "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "29524:78:18", "nodeType": "YulIdentifier", - "src": "39080:5:18" + "src": "29524:78:18" }, - "nativeSrc": "39080:12:18", + "nativeSrc": "29524:92:18", "nodeType": "YulFunctionCall", - "src": "39080:12:18" + "src": "29524:92:18" }, "variableNames": [ { - "name": "length", - "nativeSrc": "39070:6:18", + "name": "pos", + "nativeSrc": "29517:3:18", "nodeType": "YulIdentifier", - "src": "39070:6:18" + "src": "29517:3:18" } ] - } - ] - }, - "name": "array_length_t_bytes_memory_ptr", - "nativeSrc": "38997:106:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "39038:5:18", - "nodeType": "YulTypedName", - "src": "39038:5:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nativeSrc": "39048:6:18", - "nodeType": "YulTypedName", - "src": "39048:6:18", - "type": "" - } - ], - "src": "38997:106:18" - }, - { - "body": { - "nativeSrc": "39208:85:18", - "nodeType": "YulBlock", - "src": "39208:85:18", - "statements": [ + }, { - "expression": { + "nativeSrc": "29626:155:18", + "nodeType": "YulAssignment", + "src": "29626:155:18", + "value": { "arguments": [ { "name": "pos", - "nativeSrc": "39229:3:18", + "nativeSrc": "29777:3:18", + "nodeType": "YulIdentifier", + "src": "29777:3:18" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "29633:142:18", + "nodeType": "YulIdentifier", + "src": "29633:142:18" + }, + "nativeSrc": "29633:148:18", + "nodeType": "YulFunctionCall", + "src": "29633:148:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "29626:3:18", + "nodeType": "YulIdentifier", + "src": "29626:3:18" + } + ] + }, + { + "nativeSrc": "29791:102:18", + "nodeType": "YulAssignment", + "src": "29791:102:18", + "value": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "29880:6:18", "nodeType": "YulIdentifier", - "src": "39229:3:18" + "src": "29880:6:18" }, { - "name": "length", - "nativeSrc": "39234:6:18", + "name": "pos", + "nativeSrc": "29889:3:18", "nodeType": "YulIdentifier", - "src": "39234:6:18" + "src": "29889:3:18" } ], "functionName": { - "name": "mstore", - "nativeSrc": "39222:6:18", + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "29798:81:18", "nodeType": "YulIdentifier", - "src": "39222:6:18" + "src": "29798:81:18" }, - "nativeSrc": "39222:19:18", + "nativeSrc": "29798:95:18", "nodeType": "YulFunctionCall", - "src": "39222:19:18" + "src": "29798:95:18" }, - "nativeSrc": "39222:19:18", - "nodeType": "YulExpressionStatement", - "src": "39222:19:18" + "variableNames": [ + { + "name": "pos", + "nativeSrc": "29791:3:18", + "nodeType": "YulIdentifier", + "src": "29791:3:18" + } + ] }, { - "nativeSrc": "39254:29:18", + "nativeSrc": "29903:155:18", "nodeType": "YulAssignment", - "src": "39254:29:18", + "src": "29903:155:18", "value": { "arguments": [ { "name": "pos", - "nativeSrc": "39273:3:18", + "nativeSrc": "30054:3:18", + "nodeType": "YulIdentifier", + "src": "30054:3:18" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "29910:142:18", + "nodeType": "YulIdentifier", + "src": "29910:142:18" + }, + "nativeSrc": "29910:148:18", + "nodeType": "YulFunctionCall", + "src": "29910:148:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "29903:3:18", + "nodeType": "YulIdentifier", + "src": "29903:3:18" + } + ] + }, + { + "nativeSrc": "30068:102:18", + "nodeType": "YulAssignment", + "src": "30068:102:18", + "value": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "30157:6:18", "nodeType": "YulIdentifier", - "src": "39273:3:18" + "src": "30157:6:18" }, { - "kind": "number", - "nativeSrc": "39278:4:18", - "nodeType": "YulLiteral", - "src": "39278:4:18", - "type": "", - "value": "0x20" + "name": "pos", + "nativeSrc": "30166:3:18", + "nodeType": "YulIdentifier", + "src": "30166:3:18" } ], "functionName": { - "name": "add", - "nativeSrc": "39269:3:18", + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "30075:81:18", + "nodeType": "YulIdentifier", + "src": "30075:81:18" + }, + "nativeSrc": "30075:95:18", + "nodeType": "YulFunctionCall", + "src": "30075:95:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "30068:3:18", + "nodeType": "YulIdentifier", + "src": "30068:3:18" + } + ] + }, + { + "nativeSrc": "30180:155:18", + "nodeType": "YulAssignment", + "src": "30180:155:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "30331:3:18", + "nodeType": "YulIdentifier", + "src": "30331:3:18" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "30187:142:18", "nodeType": "YulIdentifier", - "src": "39269:3:18" + "src": "30187:142:18" }, - "nativeSrc": "39269:14:18", + "nativeSrc": "30187:148:18", "nodeType": "YulFunctionCall", - "src": "39269:14:18" + "src": "30187:148:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "30180:3:18", + "nodeType": "YulIdentifier", + "src": "30180:3:18" + } + ] + }, + { + "nativeSrc": "30345:10:18", + "nodeType": "YulAssignment", + "src": "30345:10:18", + "value": { + "name": "pos", + "nativeSrc": "30352:3:18", + "nodeType": "YulIdentifier", + "src": "30352:3:18" }, "variableNames": [ { - "name": "updated_pos", - "nativeSrc": "39254:11:18", + "name": "end", + "nativeSrc": "30345:3:18", "nodeType": "YulIdentifier", - "src": "39254:11:18" + "src": "30345:3:18" } ] } ] }, - "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", - "nativeSrc": "39113:180:18", + "name": "abi_encode_tuple_packed_t_string_storage_t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7_t_string_memory_ptr_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_t_string_memory_ptr_t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "28974:1387:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", - "nativeSrc": "39180:3:18", + "nativeSrc": "29469:3:18", "nodeType": "YulTypedName", - "src": "39180:3:18", + "src": "29469:3:18", "type": "" }, { - "name": "length", - "nativeSrc": "39185:6:18", + "name": "value2", + "nativeSrc": "29475:6:18", + "nodeType": "YulTypedName", + "src": "29475:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "29483:6:18", + "nodeType": "YulTypedName", + "src": "29483:6:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "29491:6:18", "nodeType": "YulTypedName", - "src": "39185:6:18", + "src": "29491:6:18", "type": "" } ], "returnVariables": [ { - "name": "updated_pos", - "nativeSrc": "39196:11:18", + "name": "end", + "nativeSrc": "29502:3:18", "nodeType": "YulTypedName", - "src": "39196:11:18", + "src": "29502:3:18", "type": "" } ], - "src": "39113:180:18" + "src": "28974:1387:18" }, { "body": { - "nativeSrc": "39393:303:18", + "nativeSrc": "30480:742:18", "nodeType": "YulBlock", - "src": "39393:303:18", + "src": "30480:742:18", "statements": [ { - "nativeSrc": "39407:52:18", + "nativeSrc": "30490:29:18", "nodeType": "YulVariableDeclaration", - "src": "39407:52:18", + "src": "30490:29:18", "value": { "arguments": [ { "name": "value", - "nativeSrc": "39453:5:18", + "nativeSrc": "30513:5:18", "nodeType": "YulIdentifier", - "src": "39453:5:18" + "src": "30513:5:18" } ], "functionName": { - "name": "array_length_t_bytes_memory_ptr", - "nativeSrc": "39421:31:18", + "name": "sload", + "nativeSrc": "30507:5:18", "nodeType": "YulIdentifier", - "src": "39421:31:18" + "src": "30507:5:18" }, - "nativeSrc": "39421:38:18", + "nativeSrc": "30507:12:18", "nodeType": "YulFunctionCall", - "src": "39421:38:18" + "src": "30507:12:18" }, "variables": [ { - "name": "length", - "nativeSrc": "39411:6:18", + "name": "slotValue", + "nativeSrc": "30494:9:18", "nodeType": "YulTypedName", - "src": "39411:6:18", + "src": "30494:9:18", "type": "" } ] }, { - "nativeSrc": "39472:77:18", - "nodeType": "YulAssignment", - "src": "39472:77:18", + "nativeSrc": "30528:50:18", + "nodeType": "YulVariableDeclaration", + "src": "30528:50:18", "value": { "arguments": [ { - "name": "pos", - "nativeSrc": "39537:3:18", - "nodeType": "YulIdentifier", - "src": "39537:3:18" - }, - { - "name": "length", - "nativeSrc": "39542:6:18", + "name": "slotValue", + "nativeSrc": "30568:9:18", "nodeType": "YulIdentifier", - "src": "39542:6:18" + "src": "30568:9:18" } ], "functionName": { - "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", - "nativeSrc": "39479:57:18", + "name": "extract_byte_array_length", + "nativeSrc": "30542:25:18", "nodeType": "YulIdentifier", - "src": "39479:57:18" + "src": "30542:25:18" }, - "nativeSrc": "39479:70:18", + "nativeSrc": "30542:36:18", "nodeType": "YulFunctionCall", - "src": "39479:70:18" + "src": "30542:36:18" }, - "variableNames": [ + "variables": [ { - "name": "pos", - "nativeSrc": "39472:3:18", - "nodeType": "YulIdentifier", - "src": "39472:3:18" + "name": "length", + "nativeSrc": "30532:6:18", + "nodeType": "YulTypedName", + "src": "30532:6:18", + "type": "" } ] }, { - "expression": { + "nativeSrc": "30587:78:18", + "nodeType": "YulAssignment", + "src": "30587:78:18", + "value": { "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "39601:5:18", - "nodeType": "YulIdentifier", - "src": "39601:5:18" - }, - { - "kind": "number", - "nativeSrc": "39608:4:18", - "nodeType": "YulLiteral", - "src": "39608:4:18", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "39597:3:18", - "nodeType": "YulIdentifier", - "src": "39597:3:18" - }, - "nativeSrc": "39597:16:18", - "nodeType": "YulFunctionCall", - "src": "39597:16:18" - }, { "name": "pos", - "nativeSrc": "39615:3:18", + "nativeSrc": "30653:3:18", "nodeType": "YulIdentifier", - "src": "39615:3:18" + "src": "30653:3:18" }, { "name": "length", - "nativeSrc": "39620:6:18", + "nativeSrc": "30658:6:18", "nodeType": "YulIdentifier", - "src": "39620:6:18" + "src": "30658:6:18" } ], "functionName": { - "name": "copy_memory_to_memory_with_cleanup", - "nativeSrc": "39562:34:18", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "30594:58:18", "nodeType": "YulIdentifier", - "src": "39562:34:18" + "src": "30594:58:18" }, - "nativeSrc": "39562:65:18", + "nativeSrc": "30594:71:18", "nodeType": "YulFunctionCall", - "src": "39562:65:18" + "src": "30594:71:18" }, - "nativeSrc": "39562:65:18", - "nodeType": "YulExpressionStatement", - "src": "39562:65:18" + "variableNames": [ + { + "name": "pos", + "nativeSrc": "30587:3:18", + "nodeType": "YulIdentifier", + "src": "30587:3:18" + } + ] }, { - "nativeSrc": "39640:46:18", - "nodeType": "YulAssignment", - "src": "39640:46:18", - "value": { + "cases": [ + { + "body": { + "nativeSrc": "30714:157:18", + "nodeType": "YulBlock", + "src": "30714:157:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "30767:3:18", + "nodeType": "YulIdentifier", + "src": "30767:3:18" + }, + { + "arguments": [ + { + "name": "slotValue", + "nativeSrc": "30776:9:18", + "nodeType": "YulIdentifier", + "src": "30776:9:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "30791:4:18", + "nodeType": "YulLiteral", + "src": "30791:4:18", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "30787:3:18", + "nodeType": "YulIdentifier", + "src": "30787:3:18" + }, + "nativeSrc": "30787:9:18", + "nodeType": "YulFunctionCall", + "src": "30787:9:18" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "30772:3:18", + "nodeType": "YulIdentifier", + "src": "30772:3:18" + }, + "nativeSrc": "30772:25:18", + "nodeType": "YulFunctionCall", + "src": "30772:25:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "30760:6:18", + "nodeType": "YulIdentifier", + "src": "30760:6:18" + }, + "nativeSrc": "30760:38:18", + "nodeType": "YulFunctionCall", + "src": "30760:38:18" + }, + "nativeSrc": "30760:38:18", + "nodeType": "YulExpressionStatement", + "src": "30760:38:18" + }, + { + "nativeSrc": "30811:50:18", + "nodeType": "YulAssignment", + "src": "30811:50:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "30822:3:18", + "nodeType": "YulIdentifier", + "src": "30822:3:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "30831:4:18", + "nodeType": "YulLiteral", + "src": "30831:4:18", + "type": "", + "value": "0x20" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "30851:6:18", + "nodeType": "YulIdentifier", + "src": "30851:6:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "30844:6:18", + "nodeType": "YulIdentifier", + "src": "30844:6:18" + }, + "nativeSrc": "30844:14:18", + "nodeType": "YulFunctionCall", + "src": "30844:14:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "30837:6:18", + "nodeType": "YulIdentifier", + "src": "30837:6:18" + }, + "nativeSrc": "30837:22:18", + "nodeType": "YulFunctionCall", + "src": "30837:22:18" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "30827:3:18", + "nodeType": "YulIdentifier", + "src": "30827:3:18" + }, + "nativeSrc": "30827:33:18", + "nodeType": "YulFunctionCall", + "src": "30827:33:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30818:3:18", + "nodeType": "YulIdentifier", + "src": "30818:3:18" + }, + "nativeSrc": "30818:43:18", + "nodeType": "YulFunctionCall", + "src": "30818:43:18" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "30811:3:18", + "nodeType": "YulIdentifier", + "src": "30811:3:18" + } + ] + } + ] + }, + "nativeSrc": "30707:164:18", + "nodeType": "YulCase", + "src": "30707:164:18", + "value": { + "kind": "number", + "nativeSrc": "30712:1:18", + "nodeType": "YulLiteral", + "src": "30712:1:18", + "type": "", + "value": "0" + } + }, + { + "body": { + "nativeSrc": "30887:329:18", + "nodeType": "YulBlock", + "src": "30887:329:18", + "statements": [ + { + "nativeSrc": "30932:53:18", + "nodeType": "YulVariableDeclaration", + "src": "30932:53:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "30979:5:18", + "nodeType": "YulIdentifier", + "src": "30979:5:18" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "30947:31:18", + "nodeType": "YulIdentifier", + "src": "30947:31:18" + }, + "nativeSrc": "30947:38:18", + "nodeType": "YulFunctionCall", + "src": "30947:38:18" + }, + "variables": [ + { + "name": "dataPos", + "nativeSrc": "30936:7:18", + "nodeType": "YulTypedName", + "src": "30936:7:18", + "type": "" + } + ] + }, + { + "nativeSrc": "30998:10:18", + "nodeType": "YulVariableDeclaration", + "src": "30998:10:18", + "value": { + "kind": "number", + "nativeSrc": "31007:1:18", + "nodeType": "YulLiteral", + "src": "31007:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "31002:1:18", + "nodeType": "YulTypedName", + "src": "31002:1:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "31065:110:18", + "nodeType": "YulBlock", + "src": "31065:110:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "31094:3:18", + "nodeType": "YulIdentifier", + "src": "31094:3:18" + }, + { + "name": "i", + "nativeSrc": "31099:1:18", + "nodeType": "YulIdentifier", + "src": "31099:1:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31090:3:18", + "nodeType": "YulIdentifier", + "src": "31090:3:18" + }, + "nativeSrc": "31090:11:18", + "nodeType": "YulFunctionCall", + "src": "31090:11:18" + }, + { + "arguments": [ + { + "name": "dataPos", + "nativeSrc": "31109:7:18", + "nodeType": "YulIdentifier", + "src": "31109:7:18" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "31103:5:18", + "nodeType": "YulIdentifier", + "src": "31103:5:18" + }, + "nativeSrc": "31103:14:18", + "nodeType": "YulFunctionCall", + "src": "31103:14:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "31083:6:18", + "nodeType": "YulIdentifier", + "src": "31083:6:18" + }, + "nativeSrc": "31083:35:18", + "nodeType": "YulFunctionCall", + "src": "31083:35:18" + }, + "nativeSrc": "31083:35:18", + "nodeType": "YulExpressionStatement", + "src": "31083:35:18" + }, + { + "nativeSrc": "31135:26:18", + "nodeType": "YulAssignment", + "src": "31135:26:18", + "value": { + "arguments": [ + { + "name": "dataPos", + "nativeSrc": "31150:7:18", + "nodeType": "YulIdentifier", + "src": "31150:7:18" + }, + { + "kind": "number", + "nativeSrc": "31159:1:18", + "nodeType": "YulLiteral", + "src": "31159:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31146:3:18", + "nodeType": "YulIdentifier", + "src": "31146:3:18" + }, + "nativeSrc": "31146:15:18", + "nodeType": "YulFunctionCall", + "src": "31146:15:18" + }, + "variableNames": [ + { + "name": "dataPos", + "nativeSrc": "31135:7:18", + "nodeType": "YulIdentifier", + "src": "31135:7:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "31032:1:18", + "nodeType": "YulIdentifier", + "src": "31032:1:18" + }, + { + "name": "length", + "nativeSrc": "31035:6:18", + "nodeType": "YulIdentifier", + "src": "31035:6:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "31029:2:18", + "nodeType": "YulIdentifier", + "src": "31029:2:18" + }, + "nativeSrc": "31029:13:18", + "nodeType": "YulFunctionCall", + "src": "31029:13:18" + }, + "nativeSrc": "31021:154:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "31043:21:18", + "nodeType": "YulBlock", + "src": "31043:21:18", + "statements": [ + { + "nativeSrc": "31045:17:18", + "nodeType": "YulAssignment", + "src": "31045:17:18", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "31054:1:18", + "nodeType": "YulIdentifier", + "src": "31054:1:18" + }, + { + "kind": "number", + "nativeSrc": "31057:4:18", + "nodeType": "YulLiteral", + "src": "31057:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31050:3:18", + "nodeType": "YulIdentifier", + "src": "31050:3:18" + }, + "nativeSrc": "31050:12:18", + "nodeType": "YulFunctionCall", + "src": "31050:12:18" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "31045:1:18", + "nodeType": "YulIdentifier", + "src": "31045:1:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "31025:3:18", + "nodeType": "YulBlock", + "src": "31025:3:18", + "statements": [] + }, + "src": "31021:154:18" + }, + { + "nativeSrc": "31188:18:18", + "nodeType": "YulAssignment", + "src": "31188:18:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "31199:3:18", + "nodeType": "YulIdentifier", + "src": "31199:3:18" + }, + { + "name": "i", + "nativeSrc": "31204:1:18", + "nodeType": "YulIdentifier", + "src": "31204:1:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31195:3:18", + "nodeType": "YulIdentifier", + "src": "31195:3:18" + }, + "nativeSrc": "31195:11:18", + "nodeType": "YulFunctionCall", + "src": "31195:11:18" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "31188:3:18", + "nodeType": "YulIdentifier", + "src": "31188:3:18" + } + ] + } + ] + }, + "nativeSrc": "30880:336:18", + "nodeType": "YulCase", + "src": "30880:336:18", + "value": { + "kind": "number", + "nativeSrc": "30885:1:18", + "nodeType": "YulLiteral", + "src": "30885:1:18", + "type": "", + "value": "1" + } + } + ], + "expression": { "arguments": [ { - "name": "pos", - "nativeSrc": "39651:3:18", + "name": "slotValue", + "nativeSrc": "30685:9:18", "nodeType": "YulIdentifier", - "src": "39651:3:18" + "src": "30685:9:18" }, { - "arguments": [ - { - "name": "length", - "nativeSrc": "39678:6:18", - "nodeType": "YulIdentifier", - "src": "39678:6:18" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nativeSrc": "39656:21:18", - "nodeType": "YulIdentifier", - "src": "39656:21:18" - }, - "nativeSrc": "39656:29:18", - "nodeType": "YulFunctionCall", - "src": "39656:29:18" + "kind": "number", + "nativeSrc": "30696:1:18", + "nodeType": "YulLiteral", + "src": "30696:1:18", + "type": "", + "value": "1" } ], "functionName": { - "name": "add", - "nativeSrc": "39647:3:18", + "name": "and", + "nativeSrc": "30681:3:18", "nodeType": "YulIdentifier", - "src": "39647:3:18" + "src": "30681:3:18" }, - "nativeSrc": "39647:39:18", + "nativeSrc": "30681:17:18", "nodeType": "YulFunctionCall", - "src": "39647:39:18" + "src": "30681:17:18" }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "39640:3:18", - "nodeType": "YulIdentifier", - "src": "39640:3:18" - } - ] + "nativeSrc": "30674:542:18", + "nodeType": "YulSwitch", + "src": "30674:542:18" } ] }, - "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", - "nativeSrc": "39303:393:18", + "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack", + "nativeSrc": "30391:831:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", - "nativeSrc": "39374:5:18", + "nativeSrc": "30461:5:18", "nodeType": "YulTypedName", - "src": "39374:5:18", + "src": "30461:5:18", "type": "" }, { "name": "pos", - "nativeSrc": "39381:3:18", + "nativeSrc": "30468:3:18", "nodeType": "YulTypedName", - "src": "39381:3:18", + "src": "30468:3:18", "type": "" } ], "returnVariables": [ { - "name": "end", - "nativeSrc": "39389:3:18", + "name": "ret", + "nativeSrc": "30476:3:18", "nodeType": "YulTypedName", - "src": "39389:3:18", + "src": "30476:3:18", "type": "" } ], - "src": "39303:393:18" + "src": "30391:831:18" }, { "body": { - "nativeSrc": "39934:555:18", + "nativeSrc": "31391:345:18", "nodeType": "YulBlock", - "src": "39934:555:18", + "src": "31391:345:18", "statements": [ { - "nativeSrc": "39948:27:18", + "nativeSrc": "31401:26:18", "nodeType": "YulAssignment", - "src": "39948:27:18", + "src": "31401:26:18", "value": { "arguments": [ { "name": "headStart", - "nativeSrc": "39960:9:18", + "nativeSrc": "31413:9:18", "nodeType": "YulIdentifier", - "src": "39960:9:18" + "src": "31413:9:18" }, { "kind": "number", - "nativeSrc": "39971:3:18", + "nativeSrc": "31424:2:18", "nodeType": "YulLiteral", - "src": "39971:3:18", + "src": "31424:2:18", "type": "", - "value": "160" + "value": "64" } ], "functionName": { "name": "add", - "nativeSrc": "39956:3:18", + "nativeSrc": "31409:3:18", "nodeType": "YulIdentifier", - "src": "39956:3:18" + "src": "31409:3:18" }, - "nativeSrc": "39956:19:18", + "nativeSrc": "31409:18:18", "nodeType": "YulFunctionCall", - "src": "39956:19:18" + "src": "31409:18:18" }, "variableNames": [ { "name": "tail", - "nativeSrc": "39948:4:18", + "nativeSrc": "31401:4:18", "nodeType": "YulIdentifier", - "src": "39948:4:18" + "src": "31401:4:18" } ] }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "40033:6:18", - "nodeType": "YulIdentifier", - "src": "40033:6:18" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "40046:9:18", - "nodeType": "YulIdentifier", - "src": "40046:9:18" - }, - { - "kind": "number", - "nativeSrc": "40057:1:18", - "nodeType": "YulLiteral", - "src": "40057:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "40042:3:18", - "nodeType": "YulIdentifier", - "src": "40042:3:18" - }, - "nativeSrc": "40042:17:18", - "nodeType": "YulFunctionCall", - "src": "40042:17:18" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "39989:43:18", - "nodeType": "YulIdentifier", - "src": "39989:43:18" - }, - "nativeSrc": "39989:71:18", - "nodeType": "YulFunctionCall", - "src": "39989:71:18" - }, - "nativeSrc": "39989:71:18", - "nodeType": "YulExpressionStatement", - "src": "39989:71:18" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "40118:6:18", - "nodeType": "YulIdentifier", - "src": "40118:6:18" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "40131:9:18", - "nodeType": "YulIdentifier", - "src": "40131:9:18" - }, - { - "kind": "number", - "nativeSrc": "40142:2:18", - "nodeType": "YulLiteral", - "src": "40142:2:18", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "40127:3:18", - "nodeType": "YulIdentifier", - "src": "40127:3:18" - }, - "nativeSrc": "40127:18:18", - "nodeType": "YulFunctionCall", - "src": "40127:18:18" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "40074:43:18", - "nodeType": "YulIdentifier", - "src": "40074:43:18" - }, - "nativeSrc": "40074:72:18", - "nodeType": "YulFunctionCall", - "src": "40074:72:18" - }, - "nativeSrc": "40074:72:18", - "nodeType": "YulExpressionStatement", - "src": "40074:72:18" - }, - { - "expression": { - "arguments": [ - { - "name": "value2", - "nativeSrc": "40204:6:18", - "nodeType": "YulIdentifier", - "src": "40204:6:18" - }, + { + "expression": { + "arguments": [ { "arguments": [ { "name": "headStart", - "nativeSrc": "40217:9:18", + "nativeSrc": "31448:9:18", "nodeType": "YulIdentifier", - "src": "40217:9:18" + "src": "31448:9:18" }, { "kind": "number", - "nativeSrc": "40228:2:18", + "nativeSrc": "31459:1:18", "nodeType": "YulLiteral", - "src": "40228:2:18", + "src": "31459:1:18", "type": "", - "value": "64" + "value": "0" } ], "functionName": { "name": "add", - "nativeSrc": "40213:3:18", + "nativeSrc": "31444:3:18", + "nodeType": "YulIdentifier", + "src": "31444:3:18" + }, + "nativeSrc": "31444:17:18", + "nodeType": "YulFunctionCall", + "src": "31444:17:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "31467:4:18", + "nodeType": "YulIdentifier", + "src": "31467:4:18" + }, + { + "name": "headStart", + "nativeSrc": "31473:9:18", + "nodeType": "YulIdentifier", + "src": "31473:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "31463:3:18", "nodeType": "YulIdentifier", - "src": "40213:3:18" + "src": "31463:3:18" }, - "nativeSrc": "40213:18:18", + "nativeSrc": "31463:20:18", "nodeType": "YulFunctionCall", - "src": "40213:18:18" + "src": "31463:20:18" } ], "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "40160:43:18", + "name": "mstore", + "nativeSrc": "31437:6:18", "nodeType": "YulIdentifier", - "src": "40160:43:18" + "src": "31437:6:18" }, - "nativeSrc": "40160:72:18", + "nativeSrc": "31437:47:18", "nodeType": "YulFunctionCall", - "src": "40160:72:18" + "src": "31437:47:18" }, - "nativeSrc": "40160:72:18", + "nativeSrc": "31437:47:18", "nodeType": "YulExpressionStatement", - "src": "40160:72:18" + "src": "31437:47:18" }, { - "expression": { + "nativeSrc": "31493:83:18", + "nodeType": "YulAssignment", + "src": "31493:83:18", + "value": { "arguments": [ { - "name": "value3", - "nativeSrc": "40290:6:18", + "name": "value0", + "nativeSrc": "31562:6:18", "nodeType": "YulIdentifier", - "src": "40290:6:18" + "src": "31562:6:18" }, { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "40303:9:18", - "nodeType": "YulIdentifier", - "src": "40303:9:18" - }, - { - "kind": "number", - "nativeSrc": "40314:2:18", - "nodeType": "YulLiteral", - "src": "40314:2:18", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "40299:3:18", - "nodeType": "YulIdentifier", - "src": "40299:3:18" - }, - "nativeSrc": "40299:18:18", - "nodeType": "YulFunctionCall", - "src": "40299:18:18" + "name": "tail", + "nativeSrc": "31571:4:18", + "nodeType": "YulIdentifier", + "src": "31571:4:18" } ], "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "40246:43:18", + "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack", + "nativeSrc": "31501:60:18", "nodeType": "YulIdentifier", - "src": "40246:43:18" + "src": "31501:60:18" }, - "nativeSrc": "40246:72:18", + "nativeSrc": "31501:75:18", "nodeType": "YulFunctionCall", - "src": "40246:72:18" + "src": "31501:75:18" }, - "nativeSrc": "40246:72:18", - "nodeType": "YulExpressionStatement", - "src": "40246:72:18" + "variableNames": [ + { + "name": "tail", + "nativeSrc": "31493:4:18", + "nodeType": "YulIdentifier", + "src": "31493:4:18" + } + ] }, { "expression": { @@ -82348,713 +82419,948 @@ "arguments": [ { "name": "headStart", - "nativeSrc": "40343:9:18", + "nativeSrc": "31597:9:18", "nodeType": "YulIdentifier", - "src": "40343:9:18" + "src": "31597:9:18" }, { "kind": "number", - "nativeSrc": "40354:3:18", + "nativeSrc": "31608:2:18", "nodeType": "YulLiteral", - "src": "40354:3:18", + "src": "31608:2:18", "type": "", - "value": "128" + "value": "32" } ], "functionName": { "name": "add", - "nativeSrc": "40339:3:18", + "nativeSrc": "31593:3:18", "nodeType": "YulIdentifier", - "src": "40339:3:18" + "src": "31593:3:18" }, - "nativeSrc": "40339:19:18", + "nativeSrc": "31593:18:18", "nodeType": "YulFunctionCall", - "src": "40339:19:18" + "src": "31593:18:18" }, { "arguments": [ { "name": "tail", - "nativeSrc": "40364:4:18", + "nativeSrc": "31617:4:18", "nodeType": "YulIdentifier", - "src": "40364:4:18" + "src": "31617:4:18" }, { "name": "headStart", - "nativeSrc": "40370:9:18", + "nativeSrc": "31623:9:18", "nodeType": "YulIdentifier", - "src": "40370:9:18" + "src": "31623:9:18" } ], "functionName": { "name": "sub", - "nativeSrc": "40360:3:18", + "nativeSrc": "31613:3:18", "nodeType": "YulIdentifier", - "src": "40360:3:18" + "src": "31613:3:18" }, - "nativeSrc": "40360:20:18", + "nativeSrc": "31613:20:18", "nodeType": "YulFunctionCall", - "src": "40360:20:18" + "src": "31613:20:18" } ], "functionName": { "name": "mstore", - "nativeSrc": "40332:6:18", + "nativeSrc": "31586:6:18", "nodeType": "YulIdentifier", - "src": "40332:6:18" + "src": "31586:6:18" }, - "nativeSrc": "40332:49:18", + "nativeSrc": "31586:48:18", "nodeType": "YulFunctionCall", - "src": "40332:49:18" + "src": "31586:48:18" }, - "nativeSrc": "40332:49:18", + "nativeSrc": "31586:48:18", "nodeType": "YulExpressionStatement", - "src": "40332:49:18" + "src": "31586:48:18" }, { - "nativeSrc": "40394:84:18", + "nativeSrc": "31643:86:18", "nodeType": "YulAssignment", - "src": "40394:84:18", + "src": "31643:86:18", "value": { "arguments": [ { - "name": "value4", - "nativeSrc": "40464:6:18", + "name": "value1", + "nativeSrc": "31715:6:18", "nodeType": "YulIdentifier", - "src": "40464:6:18" + "src": "31715:6:18" }, { "name": "tail", - "nativeSrc": "40473:4:18", + "nativeSrc": "31724:4:18", "nodeType": "YulIdentifier", - "src": "40473:4:18" + "src": "31724:4:18" } ], "functionName": { - "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", - "nativeSrc": "40402:61:18", + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "31651:63:18", "nodeType": "YulIdentifier", - "src": "40402:61:18" + "src": "31651:63:18" }, - "nativeSrc": "40402:76:18", + "nativeSrc": "31651:78:18", "nodeType": "YulFunctionCall", - "src": "40402:76:18" + "src": "31651:78:18" }, "variableNames": [ { "name": "tail", - "nativeSrc": "40394:4:18", + "nativeSrc": "31643:4:18", "nodeType": "YulIdentifier", - "src": "40394:4:18" + "src": "31643:4:18" } ] } ] }, - "name": "abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed", - "nativeSrc": "39706:783:18", + "name": "abi_encode_tuple_t_string_storage_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "31228:508:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", - "nativeSrc": "39874:9:18", - "nodeType": "YulTypedName", - "src": "39874:9:18", - "type": "" - }, - { - "name": "value4", - "nativeSrc": "39886:6:18", - "nodeType": "YulTypedName", - "src": "39886:6:18", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "39894:6:18", - "nodeType": "YulTypedName", - "src": "39894:6:18", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "39902:6:18", + "nativeSrc": "31355:9:18", "nodeType": "YulTypedName", - "src": "39902:6:18", + "src": "31355:9:18", "type": "" }, { "name": "value1", - "nativeSrc": "39910:6:18", + "nativeSrc": "31367:6:18", "nodeType": "YulTypedName", - "src": "39910:6:18", + "src": "31367:6:18", "type": "" }, { "name": "value0", - "nativeSrc": "39918:6:18", + "nativeSrc": "31375:6:18", "nodeType": "YulTypedName", - "src": "39918:6:18", + "src": "31375:6:18", "type": "" } ], "returnVariables": [ { "name": "tail", - "nativeSrc": "39929:4:18", + "nativeSrc": "31386:4:18", "nodeType": "YulTypedName", - "src": "39929:4:18", + "src": "31386:4:18", "type": "" } ], - "src": "39706:783:18" + "src": "31228:508:18" }, { "body": { - "nativeSrc": "40561:91:18", + "nativeSrc": "31786:49:18", "nodeType": "YulBlock", - "src": "40561:91:18", + "src": "31786:49:18", "statements": [ { - "nativeSrc": "40575:22:18", + "nativeSrc": "31796:33:18", "nodeType": "YulAssignment", - "src": "40575:22:18", + "src": "31796:33:18", "value": { "arguments": [ { - "name": "offset", - "nativeSrc": "40590:6:18", - "nodeType": "YulIdentifier", - "src": "40590:6:18" + "arguments": [ + { + "name": "value", + "nativeSrc": "31814:5:18", + "nodeType": "YulIdentifier", + "src": "31814:5:18" + }, + { + "kind": "number", + "nativeSrc": "31821:2:18", + "nodeType": "YulLiteral", + "src": "31821:2:18", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31810:3:18", + "nodeType": "YulIdentifier", + "src": "31810:3:18" + }, + "nativeSrc": "31810:14:18", + "nodeType": "YulFunctionCall", + "src": "31810:14:18" + }, + { + "kind": "number", + "nativeSrc": "31826:2:18", + "nodeType": "YulLiteral", + "src": "31826:2:18", + "type": "", + "value": "32" } ], "functionName": { - "name": "mload", - "nativeSrc": "40584:5:18", + "name": "div", + "nativeSrc": "31806:3:18", "nodeType": "YulIdentifier", - "src": "40584:5:18" + "src": "31806:3:18" }, - "nativeSrc": "40584:13:18", + "nativeSrc": "31806:23:18", "nodeType": "YulFunctionCall", - "src": "40584:13:18" + "src": "31806:23:18" }, "variableNames": [ { - "name": "value", - "nativeSrc": "40575:5:18", + "name": "result", + "nativeSrc": "31796:6:18", "nodeType": "YulIdentifier", - "src": "40575:5:18" + "src": "31796:6:18" } ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "40636:5:18", - "nodeType": "YulIdentifier", - "src": "40636:5:18" - } - ], - "functionName": { - "name": "validator_revert_t_bytes4", - "nativeSrc": "40610:25:18", - "nodeType": "YulIdentifier", - "src": "40610:25:18" - }, - "nativeSrc": "40610:32:18", - "nodeType": "YulFunctionCall", - "src": "40610:32:18" - }, - "nativeSrc": "40610:32:18", - "nodeType": "YulExpressionStatement", - "src": "40610:32:18" } ] }, - "name": "abi_decode_t_bytes4_fromMemory", - "nativeSrc": "40499:153:18", + "name": "divide_by_32_ceil", + "nativeSrc": "31742:93:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", - "nativeSrc": "40539:6:18", - "nodeType": "YulTypedName", - "src": "40539:6:18", - "type": "" - }, - { - "name": "end", - "nativeSrc": "40547:3:18", + "name": "value", + "nativeSrc": "31769:5:18", "nodeType": "YulTypedName", - "src": "40547:3:18", + "src": "31769:5:18", "type": "" } ], "returnVariables": [ { - "name": "value", - "nativeSrc": "40555:5:18", + "name": "result", + "nativeSrc": "31779:6:18", "nodeType": "YulTypedName", - "src": "40555:5:18", + "src": "31779:6:18", "type": "" } ], - "src": "40499:153:18" + "src": "31742:93:18" }, { "body": { - "nativeSrc": "40738:297:18", + "nativeSrc": "31894:54:18", "nodeType": "YulBlock", - "src": "40738:297:18", + "src": "31894:54:18", "statements": [ { - "body": { - "nativeSrc": "40788:83:18", - "nodeType": "YulBlock", - "src": "40788:83:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "40790:77:18", - "nodeType": "YulIdentifier", - "src": "40790:77:18" - }, - "nativeSrc": "40790:79:18", - "nodeType": "YulFunctionCall", - "src": "40790:79:18" - }, - "nativeSrc": "40790:79:18", - "nodeType": "YulExpressionStatement", - "src": "40790:79:18" - } - ] - }, - "condition": { + "nativeSrc": "31904:37:18", + "nodeType": "YulAssignment", + "src": "31904:37:18", + "value": { "arguments": [ { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "40763:7:18", - "nodeType": "YulIdentifier", - "src": "40763:7:18" - }, - { - "name": "headStart", - "nativeSrc": "40772:9:18", - "nodeType": "YulIdentifier", - "src": "40772:9:18" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "40759:3:18", - "nodeType": "YulIdentifier", - "src": "40759:3:18" - }, - "nativeSrc": "40759:23:18", - "nodeType": "YulFunctionCall", - "src": "40759:23:18" + "name": "bits", + "nativeSrc": "31929:4:18", + "nodeType": "YulIdentifier", + "src": "31929:4:18" }, { - "kind": "number", - "nativeSrc": "40784:2:18", - "nodeType": "YulLiteral", - "src": "40784:2:18", - "type": "", - "value": "32" + "name": "value", + "nativeSrc": "31935:5:18", + "nodeType": "YulIdentifier", + "src": "31935:5:18" } ], "functionName": { - "name": "slt", - "nativeSrc": "40755:3:18", + "name": "shl", + "nativeSrc": "31925:3:18", "nodeType": "YulIdentifier", - "src": "40755:3:18" + "src": "31925:3:18" }, - "nativeSrc": "40755:32:18", + "nativeSrc": "31925:16:18", "nodeType": "YulFunctionCall", - "src": "40755:32:18" + "src": "31925:16:18" }, - "nativeSrc": "40752:119:18", - "nodeType": "YulIf", - "src": "40752:119:18" - }, - { - "nativeSrc": "40885:139:18", - "nodeType": "YulBlock", - "src": "40885:139:18", - "statements": [ - { - "nativeSrc": "40904:15:18", - "nodeType": "YulVariableDeclaration", - "src": "40904:15:18", - "value": { - "kind": "number", - "nativeSrc": "40918:1:18", - "nodeType": "YulLiteral", - "src": "40918:1:18", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "40908:6:18", - "nodeType": "YulTypedName", - "src": "40908:6:18", - "type": "" - } - ] - }, + "variableNames": [ { - "nativeSrc": "40937:73:18", - "nodeType": "YulAssignment", - "src": "40937:73:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "40982:9:18", - "nodeType": "YulIdentifier", - "src": "40982:9:18" - }, - { - "name": "offset", - "nativeSrc": "40993:6:18", - "nodeType": "YulIdentifier", - "src": "40993:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "40978:3:18", - "nodeType": "YulIdentifier", - "src": "40978:3:18" - }, - "nativeSrc": "40978:22:18", - "nodeType": "YulFunctionCall", - "src": "40978:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "41002:7:18", - "nodeType": "YulIdentifier", - "src": "41002:7:18" - } - ], - "functionName": { - "name": "abi_decode_t_bytes4_fromMemory", - "nativeSrc": "40947:30:18", - "nodeType": "YulIdentifier", - "src": "40947:30:18" - }, - "nativeSrc": "40947:63:18", - "nodeType": "YulFunctionCall", - "src": "40947:63:18" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "40937:6:18", - "nodeType": "YulIdentifier", - "src": "40937:6:18" - } - ] + "name": "newValue", + "nativeSrc": "31904:8:18", + "nodeType": "YulIdentifier", + "src": "31904:8:18" } ] } ] }, - "name": "abi_decode_tuple_t_bytes4_fromMemory", - "nativeSrc": "40662:373:18", + "name": "shift_left_dynamic", + "nativeSrc": "31841:107:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nativeSrc": "40708:9:18", + "name": "bits", + "nativeSrc": "31869:4:18", "nodeType": "YulTypedName", - "src": "40708:9:18", + "src": "31869:4:18", "type": "" }, { - "name": "dataEnd", - "nativeSrc": "40719:7:18", + "name": "value", + "nativeSrc": "31875:5:18", "nodeType": "YulTypedName", - "src": "40719:7:18", + "src": "31875:5:18", "type": "" } ], "returnVariables": [ { - "name": "value0", - "nativeSrc": "40731:6:18", + "name": "newValue", + "nativeSrc": "31885:8:18", "nodeType": "YulTypedName", - "src": "40731:6:18", + "src": "31885:8:18", "type": "" } ], - "src": "40662:373:18" + "src": "31841:107:18" }, { "body": { - "nativeSrc": "41373:765:18", + "nativeSrc": "32030:317:18", "nodeType": "YulBlock", - "src": "41373:765:18", + "src": "32030:317:18", "statements": [ { - "nativeSrc": "41387:27:18", - "nodeType": "YulAssignment", - "src": "41387:27:18", + "nativeSrc": "32040:35:18", + "nodeType": "YulVariableDeclaration", + "src": "32040:35:18", "value": { "arguments": [ { - "name": "headStart", - "nativeSrc": "41399:9:18", + "name": "shiftBytes", + "nativeSrc": "32061:10:18", "nodeType": "YulIdentifier", - "src": "41399:9:18" + "src": "32061:10:18" }, { "kind": "number", - "nativeSrc": "41410:3:18", + "nativeSrc": "32073:1:18", "nodeType": "YulLiteral", - "src": "41410:3:18", + "src": "32073:1:18", "type": "", - "value": "160" + "value": "8" } ], "functionName": { - "name": "add", - "nativeSrc": "41395:3:18", + "name": "mul", + "nativeSrc": "32057:3:18", + "nodeType": "YulIdentifier", + "src": "32057:3:18" + }, + "nativeSrc": "32057:18:18", + "nodeType": "YulFunctionCall", + "src": "32057:18:18" + }, + "variables": [ + { + "name": "shiftBits", + "nativeSrc": "32044:9:18", + "nodeType": "YulTypedName", + "src": "32044:9:18", + "type": "" + } + ] + }, + { + "nativeSrc": "32084:109:18", + "nodeType": "YulVariableDeclaration", + "src": "32084:109:18", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "32115:9:18", + "nodeType": "YulIdentifier", + "src": "32115:9:18" + }, + { + "kind": "number", + "nativeSrc": "32126:66:18", + "nodeType": "YulLiteral", + "src": "32126:66:18", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "32096:18:18", + "nodeType": "YulIdentifier", + "src": "32096:18:18" + }, + "nativeSrc": "32096:97:18", + "nodeType": "YulFunctionCall", + "src": "32096:97:18" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "32088:4:18", + "nodeType": "YulTypedName", + "src": "32088:4:18", + "type": "" + } + ] + }, + { + "nativeSrc": "32202:51:18", + "nodeType": "YulAssignment", + "src": "32202:51:18", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "32233:9:18", + "nodeType": "YulIdentifier", + "src": "32233:9:18" + }, + { + "name": "toInsert", + "nativeSrc": "32244:8:18", + "nodeType": "YulIdentifier", + "src": "32244:8:18" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "32214:18:18", "nodeType": "YulIdentifier", - "src": "41395:3:18" + "src": "32214:18:18" }, - "nativeSrc": "41395:19:18", + "nativeSrc": "32214:39:18", "nodeType": "YulFunctionCall", - "src": "41395:19:18" + "src": "32214:39:18" }, "variableNames": [ { - "name": "tail", - "nativeSrc": "41387:4:18", + "name": "toInsert", + "nativeSrc": "32202:8:18", "nodeType": "YulIdentifier", - "src": "41387:4:18" + "src": "32202:8:18" } ] }, { - "expression": { + "nativeSrc": "32262:30:18", + "nodeType": "YulAssignment", + "src": "32262:30:18", + "value": { "arguments": [ { - "name": "value0", - "nativeSrc": "41472:6:18", + "name": "value", + "nativeSrc": "32275:5:18", "nodeType": "YulIdentifier", - "src": "41472:6:18" + "src": "32275:5:18" }, { "arguments": [ { - "name": "headStart", - "nativeSrc": "41485:9:18", + "name": "mask", + "nativeSrc": "32286:4:18", "nodeType": "YulIdentifier", - "src": "41485:9:18" - }, - { - "kind": "number", - "nativeSrc": "41496:1:18", - "nodeType": "YulLiteral", - "src": "41496:1:18", - "type": "", - "value": "0" + "src": "32286:4:18" } ], "functionName": { - "name": "add", - "nativeSrc": "41481:3:18", + "name": "not", + "nativeSrc": "32282:3:18", "nodeType": "YulIdentifier", - "src": "41481:3:18" + "src": "32282:3:18" }, - "nativeSrc": "41481:17:18", + "nativeSrc": "32282:9:18", "nodeType": "YulFunctionCall", - "src": "41481:17:18" + "src": "32282:9:18" } ], "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "41428:43:18", + "name": "and", + "nativeSrc": "32271:3:18", "nodeType": "YulIdentifier", - "src": "41428:43:18" + "src": "32271:3:18" }, - "nativeSrc": "41428:71:18", + "nativeSrc": "32271:21:18", "nodeType": "YulFunctionCall", - "src": "41428:71:18" + "src": "32271:21:18" }, - "nativeSrc": "41428:71:18", - "nodeType": "YulExpressionStatement", - "src": "41428:71:18" + "variableNames": [ + { + "name": "value", + "nativeSrc": "32262:5:18", + "nodeType": "YulIdentifier", + "src": "32262:5:18" + } + ] }, { - "expression": { + "nativeSrc": "32301:40:18", + "nodeType": "YulAssignment", + "src": "32301:40:18", + "value": { "arguments": [ { - "name": "value1", - "nativeSrc": "41557:6:18", + "name": "value", + "nativeSrc": "32314:5:18", "nodeType": "YulIdentifier", - "src": "41557:6:18" + "src": "32314:5:18" }, { "arguments": [ { - "name": "headStart", - "nativeSrc": "41570:9:18", + "name": "toInsert", + "nativeSrc": "32325:8:18", "nodeType": "YulIdentifier", - "src": "41570:9:18" + "src": "32325:8:18" }, { - "kind": "number", - "nativeSrc": "41581:2:18", - "nodeType": "YulLiteral", - "src": "41581:2:18", - "type": "", - "value": "32" + "name": "mask", + "nativeSrc": "32335:4:18", + "nodeType": "YulIdentifier", + "src": "32335:4:18" } ], "functionName": { - "name": "add", - "nativeSrc": "41566:3:18", + "name": "and", + "nativeSrc": "32321:3:18", "nodeType": "YulIdentifier", - "src": "41566:3:18" + "src": "32321:3:18" }, - "nativeSrc": "41566:18:18", + "nativeSrc": "32321:19:18", "nodeType": "YulFunctionCall", - "src": "41566:18:18" + "src": "32321:19:18" } ], "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "41513:43:18", + "name": "or", + "nativeSrc": "32311:2:18", "nodeType": "YulIdentifier", - "src": "41513:43:18" + "src": "32311:2:18" }, - "nativeSrc": "41513:72:18", + "nativeSrc": "32311:30:18", "nodeType": "YulFunctionCall", - "src": "41513:72:18" + "src": "32311:30:18" }, - "nativeSrc": "41513:72:18", - "nodeType": "YulExpressionStatement", - "src": "41513:72:18" - }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "32301:6:18", + "nodeType": "YulIdentifier", + "src": "32301:6:18" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nativeSrc": "31954:393:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "31991:5:18", + "nodeType": "YulTypedName", + "src": "31991:5:18", + "type": "" + }, + { + "name": "shiftBytes", + "nativeSrc": "31998:10:18", + "nodeType": "YulTypedName", + "src": "31998:10:18", + "type": "" + }, + { + "name": "toInsert", + "nativeSrc": "32010:8:18", + "nodeType": "YulTypedName", + "src": "32010:8:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "32023:6:18", + "nodeType": "YulTypedName", + "src": "32023:6:18", + "type": "" + } + ], + "src": "31954:393:18" + }, + { + "body": { + "nativeSrc": "32413:82:18", + "nodeType": "YulBlock", + "src": "32413:82:18", + "statements": [ { - "expression": { + "nativeSrc": "32423:66:18", + "nodeType": "YulAssignment", + "src": "32423:66:18", + "value": { "arguments": [ { "arguments": [ { - "name": "headStart", - "nativeSrc": "41610:9:18", - "nodeType": "YulIdentifier", - "src": "41610:9:18" - }, - { - "kind": "number", - "nativeSrc": "41621:2:18", - "nodeType": "YulLiteral", - "src": "41621:2:18", - "type": "", - "value": "64" + "arguments": [ + { + "name": "value", + "nativeSrc": "32481:5:18", + "nodeType": "YulIdentifier", + "src": "32481:5:18" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "32463:17:18", + "nodeType": "YulIdentifier", + "src": "32463:17:18" + }, + "nativeSrc": "32463:24:18", + "nodeType": "YulFunctionCall", + "src": "32463:24:18" } ], "functionName": { - "name": "add", - "nativeSrc": "41606:3:18", + "name": "identity", + "nativeSrc": "32454:8:18", "nodeType": "YulIdentifier", - "src": "41606:3:18" + "src": "32454:8:18" }, - "nativeSrc": "41606:18:18", + "nativeSrc": "32454:34:18", "nodeType": "YulFunctionCall", - "src": "41606:18:18" + "src": "32454:34:18" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "32436:17:18", + "nodeType": "YulIdentifier", + "src": "32436:17:18" + }, + "nativeSrc": "32436:53:18", + "nodeType": "YulFunctionCall", + "src": "32436:53:18" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "32423:9:18", + "nodeType": "YulIdentifier", + "src": "32423:9:18" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "32353:142:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "32393:5:18", + "nodeType": "YulTypedName", + "src": "32393:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "32403:9:18", + "nodeType": "YulTypedName", + "src": "32403:9:18", + "type": "" + } + ], + "src": "32353:142:18" + }, + { + "body": { + "nativeSrc": "32548:28:18", + "nodeType": "YulBlock", + "src": "32548:28:18", + "statements": [ + { + "nativeSrc": "32558:12:18", + "nodeType": "YulAssignment", + "src": "32558:12:18", + "value": { + "name": "value", + "nativeSrc": "32565:5:18", + "nodeType": "YulIdentifier", + "src": "32565:5:18" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "32558:3:18", + "nodeType": "YulIdentifier", + "src": "32558:3:18" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nativeSrc": "32501:75:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "32534:5:18", + "nodeType": "YulTypedName", + "src": "32534:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "32544:3:18", + "nodeType": "YulTypedName", + "src": "32544:3:18", + "type": "" + } + ], + "src": "32501:75:18" + }, + { + "body": { + "nativeSrc": "32658:193:18", + "nodeType": "YulBlock", + "src": "32658:193:18", + "statements": [ + { + "nativeSrc": "32668:63:18", + "nodeType": "YulVariableDeclaration", + "src": "32668:63:18", + "value": { + "arguments": [ + { + "name": "value_0", + "nativeSrc": "32723:7:18", + "nodeType": "YulIdentifier", + "src": "32723:7:18" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "32692:30:18", + "nodeType": "YulIdentifier", + "src": "32692:30:18" + }, + "nativeSrc": "32692:39:18", + "nodeType": "YulFunctionCall", + "src": "32692:39:18" + }, + "variables": [ + { + "name": "convertedValue_0", + "nativeSrc": "32672:16:18", + "nodeType": "YulTypedName", + "src": "32672:16:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "32747:4:18", + "nodeType": "YulIdentifier", + "src": "32747:4:18" }, { "arguments": [ { - "name": "tail", - "nativeSrc": "41630:4:18", - "nodeType": "YulIdentifier", - "src": "41630:4:18" + "arguments": [ + { + "name": "slot", + "nativeSrc": "32787:4:18", + "nodeType": "YulIdentifier", + "src": "32787:4:18" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "32781:5:18", + "nodeType": "YulIdentifier", + "src": "32781:5:18" + }, + "nativeSrc": "32781:11:18", + "nodeType": "YulFunctionCall", + "src": "32781:11:18" }, { - "name": "headStart", - "nativeSrc": "41636:9:18", + "name": "offset", + "nativeSrc": "32794:6:18", "nodeType": "YulIdentifier", - "src": "41636:9:18" + "src": "32794:6:18" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nativeSrc": "32826:16:18", + "nodeType": "YulIdentifier", + "src": "32826:16:18" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nativeSrc": "32802:23:18", + "nodeType": "YulIdentifier", + "src": "32802:23:18" + }, + "nativeSrc": "32802:41:18", + "nodeType": "YulFunctionCall", + "src": "32802:41:18" } ], "functionName": { - "name": "sub", - "nativeSrc": "41626:3:18", + "name": "update_byte_slice_dynamic32", + "nativeSrc": "32753:27:18", "nodeType": "YulIdentifier", - "src": "41626:3:18" + "src": "32753:27:18" }, - "nativeSrc": "41626:20:18", + "nativeSrc": "32753:91:18", "nodeType": "YulFunctionCall", - "src": "41626:20:18" + "src": "32753:91:18" } ], "functionName": { - "name": "mstore", - "nativeSrc": "41599:6:18", + "name": "sstore", + "nativeSrc": "32740:6:18", "nodeType": "YulIdentifier", - "src": "41599:6:18" + "src": "32740:6:18" }, - "nativeSrc": "41599:48:18", + "nativeSrc": "32740:105:18", "nodeType": "YulFunctionCall", - "src": "41599:48:18" + "src": "32740:105:18" }, - "nativeSrc": "41599:48:18", + "nativeSrc": "32740:105:18", "nodeType": "YulExpressionStatement", - "src": "41599:48:18" - }, + "src": "32740:105:18" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "32582:269:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "32635:4:18", + "nodeType": "YulTypedName", + "src": "32635:4:18", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "32641:6:18", + "nodeType": "YulTypedName", + "src": "32641:6:18", + "type": "" + }, + { + "name": "value_0", + "nativeSrc": "32649:7:18", + "nodeType": "YulTypedName", + "src": "32649:7:18", + "type": "" + } + ], + "src": "32582:269:18" + }, + { + "body": { + "nativeSrc": "32906:24:18", + "nodeType": "YulBlock", + "src": "32906:24:18", + "statements": [ { - "nativeSrc": "41660:116:18", + "nativeSrc": "32916:8:18", "nodeType": "YulAssignment", - "src": "41660:116:18", + "src": "32916:8:18", "value": { - "arguments": [ - { - "name": "value2", - "nativeSrc": "41762:6:18", - "nodeType": "YulIdentifier", - "src": "41762:6:18" - }, - { - "name": "tail", - "nativeSrc": "41771:4:18", - "nodeType": "YulIdentifier", - "src": "41771:4:18" - } - ], + "kind": "number", + "nativeSrc": "32923:1:18", + "nodeType": "YulLiteral", + "src": "32923:1:18", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "32916:3:18", + "nodeType": "YulIdentifier", + "src": "32916:3:18" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "32857:73:18", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "32902:3:18", + "nodeType": "YulTypedName", + "src": "32902:3:18", + "type": "" + } + ], + "src": "32857:73:18" + }, + { + "body": { + "nativeSrc": "32989:136:18", + "nodeType": "YulBlock", + "src": "32989:136:18", + "statements": [ + { + "nativeSrc": "32999:46:18", + "nodeType": "YulVariableDeclaration", + "src": "32999:46:18", + "value": { + "arguments": [], "functionName": { - "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", - "nativeSrc": "41668:93:18", + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "33013:30:18", "nodeType": "YulIdentifier", - "src": "41668:93:18" + "src": "33013:30:18" }, - "nativeSrc": "41668:108:18", + "nativeSrc": "33013:32:18", "nodeType": "YulFunctionCall", - "src": "41668:108:18" + "src": "33013:32:18" }, - "variableNames": [ + "variables": [ { - "name": "tail", - "nativeSrc": "41660:4:18", - "nodeType": "YulIdentifier", - "src": "41660:4:18" + "name": "zero_0", + "nativeSrc": "33003:6:18", + "nodeType": "YulTypedName", + "src": "33003:6:18", + "type": "" } ] }, @@ -83062,1544 +83368,2448 @@ "expression": { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "41801:9:18", - "nodeType": "YulIdentifier", - "src": "41801:9:18" - }, - { - "kind": "number", - "nativeSrc": "41812:2:18", - "nodeType": "YulLiteral", - "src": "41812:2:18", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "41797:3:18", - "nodeType": "YulIdentifier", - "src": "41797:3:18" - }, - "nativeSrc": "41797:18:18", - "nodeType": "YulFunctionCall", - "src": "41797:18:18" + "name": "slot", + "nativeSrc": "33098:4:18", + "nodeType": "YulIdentifier", + "src": "33098:4:18" }, { - "arguments": [ - { - "name": "tail", - "nativeSrc": "41821:4:18", - "nodeType": "YulIdentifier", - "src": "41821:4:18" - }, - { - "name": "headStart", - "nativeSrc": "41827:9:18", - "nodeType": "YulIdentifier", - "src": "41827:9:18" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "41817:3:18", - "nodeType": "YulIdentifier", - "src": "41817:3:18" - }, - "nativeSrc": "41817:20:18", - "nodeType": "YulFunctionCall", - "src": "41817:20:18" + "name": "offset", + "nativeSrc": "33104:6:18", + "nodeType": "YulIdentifier", + "src": "33104:6:18" + }, + { + "name": "zero_0", + "nativeSrc": "33112:6:18", + "nodeType": "YulIdentifier", + "src": "33112:6:18" } ], "functionName": { - "name": "mstore", - "nativeSrc": "41790:6:18", + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "33054:43:18", "nodeType": "YulIdentifier", - "src": "41790:6:18" + "src": "33054:43:18" }, - "nativeSrc": "41790:48:18", + "nativeSrc": "33054:65:18", "nodeType": "YulFunctionCall", - "src": "41790:48:18" + "src": "33054:65:18" }, - "nativeSrc": "41790:48:18", + "nativeSrc": "33054:65:18", "nodeType": "YulExpressionStatement", - "src": "41790:48:18" - }, + "src": "33054:65:18" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "32936:189:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "32975:4:18", + "nodeType": "YulTypedName", + "src": "32975:4:18", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "32981:6:18", + "nodeType": "YulTypedName", + "src": "32981:6:18", + "type": "" + } + ], + "src": "32936:189:18" + }, + { + "body": { + "nativeSrc": "33181:136:18", + "nodeType": "YulBlock", + "src": "33181:136:18", + "statements": [ { - "nativeSrc": "41851:116:18", - "nodeType": "YulAssignment", - "src": "41851:116:18", - "value": { + "body": { + "nativeSrc": "33248:63:18", + "nodeType": "YulBlock", + "src": "33248:63:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nativeSrc": "33292:5:18", + "nodeType": "YulIdentifier", + "src": "33292:5:18" + }, + { + "kind": "number", + "nativeSrc": "33299:1:18", + "nodeType": "YulLiteral", + "src": "33299:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "33262:29:18", + "nodeType": "YulIdentifier", + "src": "33262:29:18" + }, + "nativeSrc": "33262:39:18", + "nodeType": "YulFunctionCall", + "src": "33262:39:18" + }, + "nativeSrc": "33262:39:18", + "nodeType": "YulExpressionStatement", + "src": "33262:39:18" + } + ] + }, + "condition": { "arguments": [ { - "name": "value3", - "nativeSrc": "41953:6:18", + "name": "start", + "nativeSrc": "33201:5:18", "nodeType": "YulIdentifier", - "src": "41953:6:18" + "src": "33201:5:18" }, { - "name": "tail", - "nativeSrc": "41962:4:18", + "name": "end", + "nativeSrc": "33208:3:18", "nodeType": "YulIdentifier", - "src": "41962:4:18" + "src": "33208:3:18" } ], "functionName": { - "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", - "nativeSrc": "41859:93:18", + "name": "lt", + "nativeSrc": "33198:2:18", "nodeType": "YulIdentifier", - "src": "41859:93:18" + "src": "33198:2:18" }, - "nativeSrc": "41859:108:18", + "nativeSrc": "33198:14:18", "nodeType": "YulFunctionCall", - "src": "41859:108:18" + "src": "33198:14:18" }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "41851:4:18", - "nodeType": "YulIdentifier", - "src": "41851:4:18" - } - ] - }, - { - "expression": { - "arguments": [ + "nativeSrc": "33191:120:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "33213:26:18", + "nodeType": "YulBlock", + "src": "33213:26:18", + "statements": [ { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "41992:9:18", + "nativeSrc": "33215:22:18", + "nodeType": "YulAssignment", + "src": "33215:22:18", + "value": { + "arguments": [ + { + "name": "start", + "nativeSrc": "33228:5:18", + "nodeType": "YulIdentifier", + "src": "33228:5:18" + }, + { + "kind": "number", + "nativeSrc": "33235:1:18", + "nodeType": "YulLiteral", + "src": "33235:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "33224:3:18", "nodeType": "YulIdentifier", - "src": "41992:9:18" + "src": "33224:3:18" }, + "nativeSrc": "33224:13:18", + "nodeType": "YulFunctionCall", + "src": "33224:13:18" + }, + "variableNames": [ { - "kind": "number", - "nativeSrc": "42003:3:18", - "nodeType": "YulLiteral", - "src": "42003:3:18", - "type": "", - "value": "128" + "name": "start", + "nativeSrc": "33215:5:18", + "nodeType": "YulIdentifier", + "src": "33215:5:18" } - ], - "functionName": { - "name": "add", - "nativeSrc": "41988:3:18", - "nodeType": "YulIdentifier", - "src": "41988:3:18" + ] + } + ] + }, + "pre": { + "nativeSrc": "33195:2:18", + "nodeType": "YulBlock", + "src": "33195:2:18", + "statements": [] + }, + "src": "33191:120:18" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "33131:186:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nativeSrc": "33169:5:18", + "nodeType": "YulTypedName", + "src": "33169:5:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "33176:3:18", + "nodeType": "YulTypedName", + "src": "33176:3:18", + "type": "" + } + ], + "src": "33131:186:18" + }, + { + "body": { + "nativeSrc": "33402:464:18", + "nodeType": "YulBlock", + "src": "33402:464:18", + "statements": [ + { + "body": { + "nativeSrc": "33428:431:18", + "nodeType": "YulBlock", + "src": "33428:431:18", + "statements": [ + { + "nativeSrc": "33442:54:18", + "nodeType": "YulVariableDeclaration", + "src": "33442:54:18", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "33490:5:18", + "nodeType": "YulIdentifier", + "src": "33490:5:18" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "33458:31:18", + "nodeType": "YulIdentifier", + "src": "33458:31:18" + }, + "nativeSrc": "33458:38:18", + "nodeType": "YulFunctionCall", + "src": "33458:38:18" }, - "nativeSrc": "41988:19:18", - "nodeType": "YulFunctionCall", - "src": "41988:19:18" + "variables": [ + { + "name": "dataArea", + "nativeSrc": "33446:8:18", + "nodeType": "YulTypedName", + "src": "33446:8:18", + "type": "" + } + ] }, { - "arguments": [ - { - "name": "tail", - "nativeSrc": "42013:4:18", + "nativeSrc": "33509:63:18", + "nodeType": "YulVariableDeclaration", + "src": "33509:63:18", + "value": { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "33532:8:18", + "nodeType": "YulIdentifier", + "src": "33532:8:18" + }, + { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "33560:10:18", + "nodeType": "YulIdentifier", + "src": "33560:10:18" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "33542:17:18", + "nodeType": "YulIdentifier", + "src": "33542:17:18" + }, + "nativeSrc": "33542:29:18", + "nodeType": "YulFunctionCall", + "src": "33542:29:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "33528:3:18", "nodeType": "YulIdentifier", - "src": "42013:4:18" + "src": "33528:3:18" }, + "nativeSrc": "33528:44:18", + "nodeType": "YulFunctionCall", + "src": "33528:44:18" + }, + "variables": [ { - "name": "headStart", - "nativeSrc": "42019:9:18", - "nodeType": "YulIdentifier", - "src": "42019:9:18" + "name": "deleteStart", + "nativeSrc": "33513:11:18", + "nodeType": "YulTypedName", + "src": "33513:11:18", + "type": "" } - ], - "functionName": { - "name": "sub", - "nativeSrc": "42009:3:18", - "nodeType": "YulIdentifier", - "src": "42009:3:18" + ] + }, + { + "body": { + "nativeSrc": "33729:27:18", + "nodeType": "YulBlock", + "src": "33729:27:18", + "statements": [ + { + "nativeSrc": "33731:23:18", + "nodeType": "YulAssignment", + "src": "33731:23:18", + "value": { + "name": "dataArea", + "nativeSrc": "33746:8:18", + "nodeType": "YulIdentifier", + "src": "33746:8:18" + }, + "variableNames": [ + { + "name": "deleteStart", + "nativeSrc": "33731:11:18", + "nodeType": "YulIdentifier", + "src": "33731:11:18" + } + ] + } + ] }, - "nativeSrc": "42009:20:18", - "nodeType": "YulFunctionCall", - "src": "42009:20:18" + "condition": { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "33713:10:18", + "nodeType": "YulIdentifier", + "src": "33713:10:18" + }, + { + "kind": "number", + "nativeSrc": "33725:2:18", + "nodeType": "YulLiteral", + "src": "33725:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "33710:2:18", + "nodeType": "YulIdentifier", + "src": "33710:2:18" + }, + "nativeSrc": "33710:18:18", + "nodeType": "YulFunctionCall", + "src": "33710:18:18" + }, + "nativeSrc": "33707:49:18", + "nodeType": "YulIf", + "src": "33707:49:18" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nativeSrc": "33798:11:18", + "nodeType": "YulIdentifier", + "src": "33798:11:18" + }, + { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "33815:8:18", + "nodeType": "YulIdentifier", + "src": "33815:8:18" + }, + { + "arguments": [ + { + "name": "len", + "nativeSrc": "33843:3:18", + "nodeType": "YulIdentifier", + "src": "33843:3:18" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "33825:17:18", + "nodeType": "YulIdentifier", + "src": "33825:17:18" + }, + "nativeSrc": "33825:22:18", + "nodeType": "YulFunctionCall", + "src": "33825:22:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "33811:3:18", + "nodeType": "YulIdentifier", + "src": "33811:3:18" + }, + "nativeSrc": "33811:37:18", + "nodeType": "YulFunctionCall", + "src": "33811:37:18" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "33769:28:18", + "nodeType": "YulIdentifier", + "src": "33769:28:18" + }, + "nativeSrc": "33769:80:18", + "nodeType": "YulFunctionCall", + "src": "33769:80:18" + }, + "nativeSrc": "33769:80:18", + "nodeType": "YulExpressionStatement", + "src": "33769:80:18" } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "41981:6:18", - "nodeType": "YulIdentifier", - "src": "41981:6:18" - }, - "nativeSrc": "41981:49:18", - "nodeType": "YulFunctionCall", - "src": "41981:49:18" + ] }, - "nativeSrc": "41981:49:18", - "nodeType": "YulExpressionStatement", - "src": "41981:49:18" - }, - { - "nativeSrc": "42043:84:18", - "nodeType": "YulAssignment", - "src": "42043:84:18", - "value": { + "condition": { "arguments": [ { - "name": "value4", - "nativeSrc": "42113:6:18", + "name": "len", + "nativeSrc": "33419:3:18", "nodeType": "YulIdentifier", - "src": "42113:6:18" + "src": "33419:3:18" }, { - "name": "tail", - "nativeSrc": "42122:4:18", - "nodeType": "YulIdentifier", - "src": "42122:4:18" + "kind": "number", + "nativeSrc": "33424:2:18", + "nodeType": "YulLiteral", + "src": "33424:2:18", + "type": "", + "value": "31" } ], "functionName": { - "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", - "nativeSrc": "42051:61:18", + "name": "gt", + "nativeSrc": "33416:2:18", "nodeType": "YulIdentifier", - "src": "42051:61:18" + "src": "33416:2:18" }, - "nativeSrc": "42051:76:18", + "nativeSrc": "33416:11:18", "nodeType": "YulFunctionCall", - "src": "42051:76:18" + "src": "33416:11:18" }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "42043:4:18", - "nodeType": "YulIdentifier", - "src": "42043:4:18" - } - ] + "nativeSrc": "33413:446:18", + "nodeType": "YulIf", + "src": "33413:446:18" } ] }, - "name": "abi_encode_tuple_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed", - "nativeSrc": "41045:1093:18", + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "33323:543:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nativeSrc": "41313:9:18", - "nodeType": "YulTypedName", - "src": "41313:9:18", - "type": "" - }, - { - "name": "value4", - "nativeSrc": "41325:6:18", + "name": "array", + "nativeSrc": "33378:5:18", "nodeType": "YulTypedName", - "src": "41325:6:18", + "src": "33378:5:18", "type": "" }, { - "name": "value3", - "nativeSrc": "41333:6:18", + "name": "len", + "nativeSrc": "33385:3:18", "nodeType": "YulTypedName", - "src": "41333:6:18", + "src": "33385:3:18", "type": "" }, { - "name": "value2", - "nativeSrc": "41341:6:18", + "name": "startIndex", + "nativeSrc": "33390:10:18", "nodeType": "YulTypedName", - "src": "41341:6:18", + "src": "33390:10:18", "type": "" - }, + } + ], + "src": "33323:543:18" + }, + { + "body": { + "nativeSrc": "33935:54:18", + "nodeType": "YulBlock", + "src": "33935:54:18", + "statements": [ + { + "nativeSrc": "33945:37:18", + "nodeType": "YulAssignment", + "src": "33945:37:18", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "33970:4:18", + "nodeType": "YulIdentifier", + "src": "33970:4:18" + }, + { + "name": "value", + "nativeSrc": "33976:5:18", + "nodeType": "YulIdentifier", + "src": "33976:5:18" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "33966:3:18", + "nodeType": "YulIdentifier", + "src": "33966:3:18" + }, + "nativeSrc": "33966:16:18", + "nodeType": "YulFunctionCall", + "src": "33966:16:18" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "33945:8:18", + "nodeType": "YulIdentifier", + "src": "33945:8:18" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "33872:117:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ { - "name": "value1", - "nativeSrc": "41349:6:18", + "name": "bits", + "nativeSrc": "33910:4:18", "nodeType": "YulTypedName", - "src": "41349:6:18", + "src": "33910:4:18", "type": "" }, { - "name": "value0", - "nativeSrc": "41357:6:18", + "name": "value", + "nativeSrc": "33916:5:18", "nodeType": "YulTypedName", - "src": "41357:6:18", + "src": "33916:5:18", "type": "" } ], "returnVariables": [ { - "name": "tail", - "nativeSrc": "41368:4:18", + "name": "newValue", + "nativeSrc": "33926:8:18", "nodeType": "YulTypedName", - "src": "41368:4:18", + "src": "33926:8:18", "type": "" } ], - "src": "41045:1093:18" - } - ] - }, - "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function 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 abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n 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 function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_uint256t_string_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_allocation_size_t_array$_t_uint256_$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 // uint256[]\n function abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_uint256_$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_uint256(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // uint256[]\n function abi_decode_t_array$_t_uint256_$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_uint256_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_array$_t_uint256_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3 := abi_decode_t_array$_t_uint256_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value4 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_allocation_size_t_array$_t_address_$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 // address[]\n function abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_address_$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_address(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$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_address_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_array$_t_address_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_array$_t_uint256_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_array$_t_uint256_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encodeUpdatedPos_t_uint256_to_t_uint256(value0, pos) -> updatedPos {\n abi_encode_t_uint256_to_t_uint256(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // uint256[] -> uint256[]\n function abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_uint256_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_uint256_to_t_uint256(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_decode_tuple_t_addresst_uint256t_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256t_uint256t_string_memory_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value4 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function store_literal_in_memory_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe(memPtr) {\n\n mstore(add(memPtr, 0), \"ipfs://\")\n\n }\n\n function abi_encode_t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 7)\n store_literal_in_memory_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe(pos)\n end := add(pos, 7)\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 // string -> string\n function abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> ret {\n let slotValue := sload(value)\n let length := extract_byte_array_length(slotValue)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n switch and(slotValue, 1)\n case 0 {\n // short byte array\n mstore(pos, and(slotValue, not(0xff)))\n ret := add(pos, mul(length, iszero(iszero(length))))\n }\n case 1 {\n // long byte array\n let dataPos := array_dataslot_t_string_storage(value)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) } {\n mstore(add(pos, i), sload(dataPos))\n dataPos := add(dataPos, 1)\n }\n ret := add(pos, length)\n }\n }\n\n function store_literal_in_memory_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972(memPtr) {\n\n mstore(add(memPtr, 0), \".json\")\n\n }\n\n function abi_encode_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 5)\n store_literal_in_memory_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972(pos)\n end := add(pos, 5)\n }\n\n function abi_encode_tuple_packed_t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe_t_string_storage_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n pos := abi_encode_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n end := pos\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function cleanup_t_rational_1_by_1(value) -> cleaned {\n cleaned := value\n }\n\n function convert_t_rational_1_by_1_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_rational_1_by_1(value)))\n }\n\n function abi_encode_t_rational_1_by_1_to_t_uint256_fromStack(value, pos) {\n mstore(pos, convert_t_rational_1_by_1_to_t_uint256(value))\n }\n\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_rational_1_by_1_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function store_literal_in_memory_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527(memPtr) {\n\n mstore(add(memPtr, 0), \"/\")\n\n }\n\n function abi_encode_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 1)\n store_literal_in_memory_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527(pos)\n end := add(pos, 1)\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_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe_t_string_storage_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_t_string_memory_ptr_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_t_string_memory_ptr_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value2, value1, value0) -> end {\n\n pos := abi_encode_t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n pos := abi_encode_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value1, pos)\n\n pos := abi_encode_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value2, pos)\n\n pos := abi_encode_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n end := pos\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n }\n\n function 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 abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$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_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value4, tail)\n\n }\n\n function abi_decode_t_bytes4_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value2, tail)\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value3, tail)\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value4, tail)\n\n }\n\n }\n", - "id": 18, - "language": "Yul", - "name": "#utility.yul" - } - ], - "immutableReferences": {}, - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106101365760003560e01c80634e1273f4116100b8578063a22cb4651161007c578063a22cb4651461035d578063c5afac6614610379578063d547741f146103a9578063e985e9c5146103c5578063f242432a146103f5578063f5298aca1461041157610136565b80634e1273f4146102a557806361bc221a146102d5578063731133e9146102f357806391d148541461030f578063a217fddf1461033f57610136565b806324c20a34116100ff57806324c20a34146102175780632eb2c2d6146102355780632f2ff15d1461025157806336568abe1461026d5780633cad9b0d1461028957610136565b8062fdd58e1461013b57806301ffc9a71461016b5780630e89341c1461019b5780631c4ce135146101cb578063248a9ca3146101e7575b600080fd5b61015560048036038101906101509190611eb9565b61042d565b6040516101629190611f08565b60405180910390f35b61018560048036038101906101809190611f7b565b610487565b6040516101929190611fc3565b60405180910390f35b6101b560048036038101906101b09190611fde565b61048e565b6040516101c2919061209b565b60405180910390f35b6101e560048036038101906101e091906121f2565b6104d4565b005b61020160048036038101906101fc9190612284565b610573565b60405161020e91906122c0565b60405180910390f35b61021f610593565b60405161022c91906122c0565b60405180910390f35b61024f600480360381019061024a9190612444565b6105b7565b005b61026b60048036038101906102669190612513565b61065f565b005b61028760048036038101906102829190612513565b610681565b005b6102a3600480360381019061029e9190612553565b6106fc565b005b6102bf60048036038101906102ba919061265f565b61079e565b6040516102cc9190612795565b60405180910390f35b6102dd6108a7565b6040516102ea9190611f08565b60405180910390f35b61030d600480360381019061030891906127b7565b6108b1565b005b61032960048036038101906103249190612513565b610970565b6040516103369190611fc3565b60405180910390f35b6103476109db565b60405161035491906122c0565b60405180910390f35b61037760048036038101906103729190612866565b6109e2565b005b610393600480360381019061038e91906128a6565b6109f8565b6040516103a0919061209b565b60405180910390f35b6103c360048036038101906103be9190612513565b610a4c565b005b6103df60048036038101906103da9190612915565b610a6e565b6040516103ec9190611fc3565b60405180910390f35b61040f600480360381019061040a9190612955565b610b02565b005b61042b600480360381019061042691906129ec565b610baa565b005b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000919050565b60608161049a81610c88565b600560008481526020019081526020016000206040516020016104bd9190612bda565b604051602081830303815290604052915050919050565b7f18d9ff454de989bd126b06bd404b47ede75f9e65543e94e8d212f89d7dcbb87c6104fe81610cd1565b8160066000858152602001908152602001600020908161051e9190612d9e565b50823373ffffffffffffffffffffffffffffffffffffffff167fee5e19404a9c880f5e862aeeedfa8f4b4b427864327c17888eb6a34d549e5a5584604051610566919061209b565b60405180910390a3505050565b600060036000838152602001908152602001600020600101549050919050565b7f18d9ff454de989bd126b06bd404b47ede75f9e65543e94e8d212f89d7dcbb87c81565b60006105c1610ce5565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561060657506106048682610a6e565b155b1561064a5780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610641929190612e7f565b60405180910390fd5b6106578686868686610ced565b505050505050565b61066882610573565b61067181610cd1565b61067b8383610de5565b50505050565b610689610ce5565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146106ed576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106f78282610ed7565b505050565b80600560006004548152602001908152602001600020908161071e9190612d9e565b5061073d33600454600160405180602001604052806000815250610fca565b6004543373ffffffffffffffffffffffffffffffffffffffff167fc65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c1660405160405180910390a36004600081548092919061079690612ed7565b919050555050565b606081518351146107ea57815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016107e1929190612f1f565b60405180910390fd5b6000835167ffffffffffffffff811115610807576108066120c7565b5b6040519080825280602002602001820160405280156108355781602001602082028036833780820191505090505b50905060005b845181101561089c5761087261085a828761106390919063ffffffff16565b61086d838761107790919063ffffffff16565b61042d565b82828151811061088557610884612f48565b5b60200260200101818152505080600101905061083b565b508091505092915050565b6000600454905090565b826108bb81610c88565b60006108c7868661042d565b111561090c5784846040517f788d2556000000000000000000000000000000000000000000000000000000008152600401610903929190612f77565b60405180910390fd5b6109198585600185610fca565b838573ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f60016040516109619190612fdb565b60405180910390a35050505050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b6109f46109ed610ce5565b838361108b565b5050565b606082610a0481610c88565b60066000868152602001908152602001600020610a20856111fb565b84604051602001610a3393929190613073565b6040516020818303038152906040529150509392505050565b610a5582610573565b610a5e81610cd1565b610a688383610ed7565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000610b0c610ce5565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610b515750610b4f8682610a6e565b155b15610b955780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610b8c929190612e7f565b60405180910390fd5b610ba286868686866112c9565b505050505050565b81610bb481610c88565b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610c265783836040517f8626cc03000000000000000000000000000000000000000000000000000000008152600401610c1d929190612f77565b60405180910390fd5b610c32848460016113d4565b828473ffffffffffffffffffffffffffffffffffffffff167f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a6001604051610c7a9190612fdb565b60405180910390a350505050565b6004548110610cce57806040517fc80a970c000000000000000000000000000000000000000000000000000000008152600401610cc59190611f08565b60405180910390fd5b50565b610ce281610cdd610ce5565b61147b565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610d5f5760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610d5691906130d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610dd15760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610dc891906130d0565b60405180910390fd5b610dde85858585856114cc565b5050505050565b6000610df18383610970565b610ecc5760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610e69610ce5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610ed1565b600090505b92915050565b6000610ee38383610970565b15610fbf5760006003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610f5c610ce5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050610fc4565b600090505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361103c5760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161103391906130d0565b60405180910390fd5b600080611049858561157e565b9150915061105b6000878484876114cc565b505050505050565b600060208202602084010151905092915050565b600060208202602084010151905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110fd5760006040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016110f491906130d0565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516111ee9190611fc3565b60405180910390a3505050565b60606000600161120a846115ae565b01905060008167ffffffffffffffff811115611229576112286120c7565b5b6040519080825280601f01601f19166020018201604052801561125b5781602001600182028036833780820191505090505b509050600082602001820190505b6001156112be578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816112b2576112b16130eb565b5b04945060008503611269575b819350505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361133b5760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161133291906130d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036113ad5760006040517f01a835140000000000000000000000000000000000000000000000000000000081526004016113a491906130d0565b60405180910390fd5b6000806113ba858561157e565b915091506113cb87878484876114cc565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114465760006040517f01a8351400000000000000000000000000000000000000000000000000000000815260040161143d91906130d0565b60405180910390fd5b600080611453848461157e565b915091506114748560008484604051806020016040528060008152506114cc565b5050505050565b6114858282610970565b6114c85780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016114bf92919061311a565b60405180910390fd5b5050565b6114d885858585611701565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611577576000611516610ce5565b9050600184510361156657600061153760008661107790919063ffffffff16565b9050600061154f60008661107790919063ffffffff16565b905061155f838989858589611aa9565b5050611575565b611574818787878787611c5d565b5b505b5050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061160c577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611602576116016130eb565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611649576d04ee2d6d415b85acef8100000000838161163f5761163e6130eb565b5b0492506020810190505b662386f26fc10000831061167857662386f26fc10000838161166e5761166d6130eb565b5b0492506010810190505b6305f5e10083106116a1576305f5e1008381611697576116966130eb565b5b0492506008810190505b61271083106116c65761271083816116bc576116bb6130eb565b5b0492506004810190505b606483106116e957606483816116df576116de6130eb565b5b0492506002810190505b600a83106116f8576001810190505b80915050919050565b805182511461174b57815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401611742929190612f1f565b60405180910390fd5b6000611755610ce5565b905060005b8351811015611964576000611778828661107790919063ffffffff16565b9050600061178f838661107790919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146118bc57600080600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561186457888183856040517f03dee4c500000000000000000000000000000000000000000000000000000000815260040161185b9493929190613143565b60405180910390fd5b81810360008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611957578060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461194f9190613188565b925050819055505b505080600101905061175a565b506001835103611a2357600061198460008561107790919063ffffffff16565b9050600061199c60008561107790919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611a14929190612f1f565b60405180910390a45050611aa2565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611a999291906131bc565b60405180910390a45b5050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611c55578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611b0a959493929190613248565b6020604051808303816000875af1925050508015611b4657506040513d601f19601f82011682018060405250810190611b4391906132b7565b60015b611bca573d8060008114611b76576040519150601f19603f3d011682016040523d82523d6000602084013e611b7b565b606091505b506000815103611bc257846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611bb991906130d0565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611c5357846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611c4a91906130d0565b60405180910390fd5b505b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611e09578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611cbe9594939291906132e4565b6020604051808303816000875af1925050508015611cfa57506040513d601f19601f82011682018060405250810190611cf791906132b7565b60015b611d7e573d8060008114611d2a576040519150601f19603f3d011682016040523d82523d6000602084013e611d2f565b606091505b506000815103611d7657846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611d6d91906130d0565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611e0757846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611dfe91906130d0565b60405180910390fd5b505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611e5082611e25565b9050919050565b611e6081611e45565b8114611e6b57600080fd5b50565b600081359050611e7d81611e57565b92915050565b6000819050919050565b611e9681611e83565b8114611ea157600080fd5b50565b600081359050611eb381611e8d565b92915050565b60008060408385031215611ed057611ecf611e1b565b5b6000611ede85828601611e6e565b9250506020611eef85828601611ea4565b9150509250929050565b611f0281611e83565b82525050565b6000602082019050611f1d6000830184611ef9565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611f5881611f23565b8114611f6357600080fd5b50565b600081359050611f7581611f4f565b92915050565b600060208284031215611f9157611f90611e1b565b5b6000611f9f84828501611f66565b91505092915050565b60008115159050919050565b611fbd81611fa8565b82525050565b6000602082019050611fd86000830184611fb4565b92915050565b600060208284031215611ff457611ff3611e1b565b5b600061200284828501611ea4565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561204557808201518184015260208101905061202a565b60008484015250505050565b6000601f19601f8301169050919050565b600061206d8261200b565b6120778185612016565b9350612087818560208601612027565b61209081612051565b840191505092915050565b600060208201905081810360008301526120b58184612062565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6120ff82612051565b810181811067ffffffffffffffff8211171561211e5761211d6120c7565b5b80604052505050565b6000612131611e11565b905061213d82826120f6565b919050565b600067ffffffffffffffff82111561215d5761215c6120c7565b5b61216682612051565b9050602081019050919050565b82818337600083830152505050565b600061219561219084612142565b612127565b9050828152602081018484840111156121b1576121b06120c2565b5b6121bc848285612173565b509392505050565b600082601f8301126121d9576121d86120bd565b5b81356121e9848260208601612182565b91505092915050565b6000806040838503121561220957612208611e1b565b5b600061221785828601611ea4565b925050602083013567ffffffffffffffff81111561223857612237611e20565b5b612244858286016121c4565b9150509250929050565b6000819050919050565b6122618161224e565b811461226c57600080fd5b50565b60008135905061227e81612258565b92915050565b60006020828403121561229a57612299611e1b565b5b60006122a88482850161226f565b91505092915050565b6122ba8161224e565b82525050565b60006020820190506122d560008301846122b1565b92915050565b600067ffffffffffffffff8211156122f6576122f56120c7565b5b602082029050602081019050919050565b600080fd5b600061231f61231a846122db565b612127565b9050808382526020820190506020840283018581111561234257612341612307565b5b835b8181101561236b57806123578882611ea4565b845260208401935050602081019050612344565b5050509392505050565b600082601f83011261238a576123896120bd565b5b813561239a84826020860161230c565b91505092915050565b600067ffffffffffffffff8211156123be576123bd6120c7565b5b6123c782612051565b9050602081019050919050565b60006123e76123e2846123a3565b612127565b905082815260208101848484011115612403576124026120c2565b5b61240e848285612173565b509392505050565b600082601f83011261242b5761242a6120bd565b5b813561243b8482602086016123d4565b91505092915050565b600080600080600060a086880312156124605761245f611e1b565b5b600061246e88828901611e6e565b955050602061247f88828901611e6e565b945050604086013567ffffffffffffffff8111156124a05761249f611e20565b5b6124ac88828901612375565b935050606086013567ffffffffffffffff8111156124cd576124cc611e20565b5b6124d988828901612375565b925050608086013567ffffffffffffffff8111156124fa576124f9611e20565b5b61250688828901612416565b9150509295509295909350565b6000806040838503121561252a57612529611e1b565b5b60006125388582860161226f565b925050602061254985828601611e6e565b9150509250929050565b60006020828403121561256957612568611e1b565b5b600082013567ffffffffffffffff81111561258757612586611e20565b5b612593848285016121c4565b91505092915050565b600067ffffffffffffffff8211156125b7576125b66120c7565b5b602082029050602081019050919050565b60006125db6125d68461259c565b612127565b905080838252602082019050602084028301858111156125fe576125fd612307565b5b835b8181101561262757806126138882611e6e565b845260208401935050602081019050612600565b5050509392505050565b600082601f830112612646576126456120bd565b5b81356126568482602086016125c8565b91505092915050565b6000806040838503121561267657612675611e1b565b5b600083013567ffffffffffffffff81111561269457612693611e20565b5b6126a085828601612631565b925050602083013567ffffffffffffffff8111156126c1576126c0611e20565b5b6126cd85828601612375565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61270c81611e83565b82525050565b600061271e8383612703565b60208301905092915050565b6000602082019050919050565b6000612742826126d7565b61274c81856126e2565b9350612757836126f3565b8060005b8381101561278857815161276f8882612712565b975061277a8361272a565b92505060018101905061275b565b5085935050505092915050565b600060208201905081810360008301526127af8184612737565b905092915050565b600080600080608085870312156127d1576127d0611e1b565b5b60006127df87828801611e6e565b94505060206127f087828801611ea4565b935050604061280187828801611ea4565b925050606085013567ffffffffffffffff81111561282257612821611e20565b5b61282e87828801612416565b91505092959194509250565b61284381611fa8565b811461284e57600080fd5b50565b6000813590506128608161283a565b92915050565b6000806040838503121561287d5761287c611e1b565b5b600061288b85828601611e6e565b925050602061289c85828601612851565b9150509250929050565b6000806000606084860312156128bf576128be611e1b565b5b60006128cd86828701611ea4565b93505060206128de86828701611ea4565b925050604084013567ffffffffffffffff8111156128ff576128fe611e20565b5b61290b868287016121c4565b9150509250925092565b6000806040838503121561292c5761292b611e1b565b5b600061293a85828601611e6e565b925050602061294b85828601611e6e565b9150509250929050565b600080600080600060a0868803121561297157612970611e1b565b5b600061297f88828901611e6e565b955050602061299088828901611e6e565b94505060406129a188828901611ea4565b93505060606129b288828901611ea4565b925050608086013567ffffffffffffffff8111156129d3576129d2611e20565b5b6129df88828901612416565b9150509295509295909350565b600080600060608486031215612a0557612a04611e1b565b5b6000612a1386828701611e6e565b9350506020612a2486828701611ea4565b9250506040612a3586828701611ea4565b9150509250925092565b600081905092915050565b7f697066733a2f2f00000000000000000000000000000000000000000000000000600082015250565b6000612a80600783612a3f565b9150612a8b82612a4a565b600782019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612add57607f821691505b602082108103612af057612aef612a96565b5b50919050565b60008190508160005260206000209050919050565b60008154612b1881612ac5565b612b228186612a3f565b94506001821660008114612b3d5760018114612b5257612b85565b60ff1983168652811515820286019350612b85565b612b5b85612af6565b60005b83811015612b7d57815481890152600182019150602081019050612b5e565b838801955050505b50505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b6000612bc4600583612a3f565b9150612bcf82612b8e565b600582019050919050565b6000612be582612a73565b9150612bf18284612b0b565b9150612bfc82612bb7565b915081905092915050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612c547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612c17565b612c5e8683612c17565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612c9b612c96612c9184611e83565b612c76565b611e83565b9050919050565b6000819050919050565b612cb583612c80565b612cc9612cc182612ca2565b848454612c24565b825550505050565b600090565b612cde612cd1565b612ce9818484612cac565b505050565b5b81811015612d0d57612d02600082612cd6565b600181019050612cef565b5050565b601f821115612d5257612d2381612af6565b612d2c84612c07565b81016020851015612d3b578190505b612d4f612d4785612c07565b830182612cee565b50505b505050565b600082821c905092915050565b6000612d7560001984600802612d57565b1980831691505092915050565b6000612d8e8383612d64565b9150826002028217905092915050565b612da78261200b565b67ffffffffffffffff811115612dc057612dbf6120c7565b5b612dca8254612ac5565b612dd5828285612d11565b600060209050601f831160018114612e085760008415612df6578287015190505b612e008582612d82565b865550612e68565b601f198416612e1686612af6565b60005b82811015612e3e57848901518255600182019150602085019450602081019050612e19565b86831015612e5b5784890151612e57601f891682612d64565b8355505b6001600288020188555050505b505050505050565b612e7981611e45565b82525050565b6000604082019050612e946000830185612e70565b612ea16020830184612e70565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ee282611e83565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f1457612f13612ea8565b5b600182019050919050565b6000604082019050612f346000830185611ef9565b612f416020830184611ef9565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050612f8c6000830185612e70565b612f996020830184611ef9565b9392505050565b6000819050919050565b6000612fc5612fc0612fbb84612fa0565b612c76565b611e83565b9050919050565b612fd581612faa565b82525050565b6000602082019050612ff06000830184612fcc565b92915050565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b600061302c600183612a3f565b915061303782612ff6565b600182019050919050565b600061304d8261200b565b6130578185612a3f565b9350613067818560208601612027565b80840191505092915050565b600061307e82612a73565b915061308a8286612b0b565b91506130958261301f565b91506130a18285613042565b91506130ac8261301f565b91506130b88284613042565b91506130c382612bb7565b9150819050949350505050565b60006020820190506130e56000830184612e70565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600060408201905061312f6000830185612e70565b61313c60208301846122b1565b9392505050565b60006080820190506131586000830187612e70565b6131656020830186611ef9565b6131726040830185611ef9565b61317f6060830184611ef9565b95945050505050565b600061319382611e83565b915061319e83611e83565b92508282019050808211156131b6576131b5612ea8565b5b92915050565b600060408201905081810360008301526131d68185612737565b905081810360208301526131ea8184612737565b90509392505050565b600081519050919050565b600082825260208201905092915050565b600061321a826131f3565b61322481856131fe565b9350613234818560208601612027565b61323d81612051565b840191505092915050565b600060a08201905061325d6000830188612e70565b61326a6020830187612e70565b6132776040830186611ef9565b6132846060830185611ef9565b8181036080830152613296818461320f565b90509695505050505050565b6000815190506132b181611f4f565b92915050565b6000602082840312156132cd576132cc611e1b565b5b60006132db848285016132a2565b91505092915050565b600060a0820190506132f96000830188612e70565b6133066020830187612e70565b81810360408301526133188186612737565b9050818103606083015261332c8185612737565b90508181036080830152613340818461320f565b9050969550505050505056fea2646970667358221220294f8401608e8b44e40d642ddeddde899f8a456400db1a2f81df9ef8d59242d564736f6c63430008180033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x136 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4E1273F4 GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x35D JUMPI DUP1 PUSH4 0xC5AFAC66 EQ PUSH2 0x379 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x3A9 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x3C5 JUMPI DUP1 PUSH4 0xF242432A EQ PUSH2 0x3F5 JUMPI DUP1 PUSH4 0xF5298ACA EQ PUSH2 0x411 JUMPI PUSH2 0x136 JUMP JUMPDEST DUP1 PUSH4 0x4E1273F4 EQ PUSH2 0x2A5 JUMPI DUP1 PUSH4 0x61BC221A EQ PUSH2 0x2D5 JUMPI DUP1 PUSH4 0x731133E9 EQ PUSH2 0x2F3 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x30F JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x33F JUMPI PUSH2 0x136 JUMP JUMPDEST DUP1 PUSH4 0x24C20A34 GT PUSH2 0xFF JUMPI DUP1 PUSH4 0x24C20A34 EQ PUSH2 0x217 JUMPI DUP1 PUSH4 0x2EB2C2D6 EQ PUSH2 0x235 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x251 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x26D JUMPI DUP1 PUSH4 0x3CAD9B0D EQ PUSH2 0x289 JUMPI PUSH2 0x136 JUMP JUMPDEST DUP1 PUSH3 0xFDD58E EQ PUSH2 0x13B JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x16B JUMPI DUP1 PUSH4 0xE89341C EQ PUSH2 0x19B JUMPI DUP1 PUSH4 0x1C4CE135 EQ PUSH2 0x1CB JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x1E7 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x155 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x150 SWAP2 SWAP1 PUSH2 0x1EB9 JUMP JUMPDEST PUSH2 0x42D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x162 SWAP2 SWAP1 PUSH2 0x1F08 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x185 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x180 SWAP2 SWAP1 PUSH2 0x1F7B JUMP JUMPDEST PUSH2 0x487 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x192 SWAP2 SWAP1 PUSH2 0x1FC3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1B0 SWAP2 SWAP1 PUSH2 0x1FDE JUMP JUMPDEST PUSH2 0x48E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C2 SWAP2 SWAP1 PUSH2 0x209B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E0 SWAP2 SWAP1 PUSH2 0x21F2 JUMP JUMPDEST PUSH2 0x4D4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x201 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FC SWAP2 SWAP1 PUSH2 0x2284 JUMP JUMPDEST PUSH2 0x573 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20E SWAP2 SWAP1 PUSH2 0x22C0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x21F PUSH2 0x593 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x22C SWAP2 SWAP1 PUSH2 0x22C0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x24F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x24A SWAP2 SWAP1 PUSH2 0x2444 JUMP JUMPDEST PUSH2 0x5B7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x26B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x266 SWAP2 SWAP1 PUSH2 0x2513 JUMP JUMPDEST PUSH2 0x65F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x287 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x282 SWAP2 SWAP1 PUSH2 0x2513 JUMP JUMPDEST PUSH2 0x681 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2A3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29E SWAP2 SWAP1 PUSH2 0x2553 JUMP JUMPDEST PUSH2 0x6FC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2BF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2BA SWAP2 SWAP1 PUSH2 0x265F JUMP JUMPDEST PUSH2 0x79E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2CC SWAP2 SWAP1 PUSH2 0x2795 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2DD PUSH2 0x8A7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EA SWAP2 SWAP1 PUSH2 0x1F08 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x30D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x308 SWAP2 SWAP1 PUSH2 0x27B7 JUMP JUMPDEST PUSH2 0x8B1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x329 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x324 SWAP2 SWAP1 PUSH2 0x2513 JUMP JUMPDEST PUSH2 0x970 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x336 SWAP2 SWAP1 PUSH2 0x1FC3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x347 PUSH2 0x9DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x354 SWAP2 SWAP1 PUSH2 0x22C0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x377 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x372 SWAP2 SWAP1 PUSH2 0x2866 JUMP JUMPDEST PUSH2 0x9E2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x393 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x38E SWAP2 SWAP1 PUSH2 0x28A6 JUMP JUMPDEST PUSH2 0x9F8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3A0 SWAP2 SWAP1 PUSH2 0x209B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3C3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3BE SWAP2 SWAP1 PUSH2 0x2513 JUMP JUMPDEST PUSH2 0xA4C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3DF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3DA SWAP2 SWAP1 PUSH2 0x2915 JUMP JUMPDEST PUSH2 0xA6E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3EC SWAP2 SWAP1 PUSH2 0x1FC3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x40F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x40A SWAP2 SWAP1 PUSH2 0x2955 JUMP JUMPDEST PUSH2 0xB02 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x42B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x426 SWAP2 SWAP1 PUSH2 0x29EC JUMP JUMPDEST PUSH2 0xBAA JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0x49A DUP2 PUSH2 0xC88 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x4BD SWAP2 SWAP1 PUSH2 0x2BDA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x18D9FF454DE989BD126B06BD404B47EDE75F9E65543E94E8D212F89D7DCBB87C PUSH2 0x4FE DUP2 PUSH2 0xCD1 JUMP JUMPDEST DUP2 PUSH1 0x6 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP2 PUSH2 0x51E SWAP2 SWAP1 PUSH2 0x2D9E JUMP JUMPDEST POP DUP3 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xEE5E19404A9C880F5E862AEEEDFA8F4B4B427864327C17888EB6A34D549E5A55 DUP5 PUSH1 0x40 MLOAD PUSH2 0x566 SWAP2 SWAP1 PUSH2 0x209B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x18D9FF454DE989BD126B06BD404B47EDE75F9E65543E94E8D212F89D7DCBB87C DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C1 PUSH2 0xCE5 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x606 JUMPI POP PUSH2 0x604 DUP7 DUP3 PUSH2 0xA6E JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x64A JUMPI DUP1 DUP7 PUSH1 0x40 MLOAD PUSH32 0xE237D92200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x641 SWAP3 SWAP2 SWAP1 PUSH2 0x2E7F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x657 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0xCED JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x668 DUP3 PUSH2 0x573 JUMP JUMPDEST PUSH2 0x671 DUP2 PUSH2 0xCD1 JUMP JUMPDEST PUSH2 0x67B DUP4 DUP4 PUSH2 0xDE5 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x689 PUSH2 0xCE5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x6ED JUMPI PUSH1 0x40 MLOAD PUSH32 0x6697B23200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6F7 DUP3 DUP3 PUSH2 0xED7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP1 PUSH1 0x5 PUSH1 0x0 PUSH1 0x4 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP2 PUSH2 0x71E SWAP2 SWAP1 PUSH2 0x2D9E JUMP JUMPDEST POP PUSH2 0x73D CALLER PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xFCA JUMP JUMPDEST PUSH1 0x4 SLOAD CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC65A3F767206D2FDCEDE0B094A4840E01C0DD0BE1888B5BA800346EAA0123C16 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x4 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x796 SWAP1 PUSH2 0x2ED7 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0x7EA JUMPI DUP2 MLOAD DUP4 MLOAD PUSH1 0x40 MLOAD PUSH32 0x5B05999100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7E1 SWAP3 SWAP2 SWAP1 PUSH2 0x2F1F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x807 JUMPI PUSH2 0x806 PUSH2 0x20C7 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 0x835 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x89C JUMPI PUSH2 0x872 PUSH2 0x85A DUP3 DUP8 PUSH2 0x1063 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x86D DUP4 DUP8 PUSH2 0x1077 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x42D JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x885 JUMPI PUSH2 0x884 PUSH2 0x2F48 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x83B JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST DUP3 PUSH2 0x8BB DUP2 PUSH2 0xC88 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8C7 DUP7 DUP7 PUSH2 0x42D JUMP JUMPDEST GT ISZERO PUSH2 0x90C JUMPI DUP5 DUP5 PUSH1 0x40 MLOAD PUSH32 0x788D255600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x903 SWAP3 SWAP2 SWAP1 PUSH2 0x2F77 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x919 DUP6 DUP6 PUSH1 0x1 DUP6 PUSH2 0xFCA JUMP JUMPDEST DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4C209B5FC8AD50758F13E2E1088BA56A560DFF690A1C6FEF26394F4C03821C4F PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x961 SWAP2 SWAP1 PUSH2 0x2FDB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 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 SHL DUP2 JUMP JUMPDEST PUSH2 0x9F4 PUSH2 0x9ED PUSH2 0xCE5 JUMP JUMPDEST DUP4 DUP4 PUSH2 0x108B JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0xA04 DUP2 PUSH2 0xC88 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH2 0xA20 DUP6 PUSH2 0x11FB JUMP JUMPDEST DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xA33 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3073 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xA55 DUP3 PUSH2 0x573 JUMP JUMPDEST PUSH2 0xA5E DUP2 PUSH2 0xCD1 JUMP JUMPDEST PUSH2 0xA68 DUP4 DUP4 PUSH2 0xED7 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB0C PUSH2 0xCE5 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0xB51 JUMPI POP PUSH2 0xB4F DUP7 DUP3 PUSH2 0xA6E JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0xB95 JUMPI DUP1 DUP7 PUSH1 0x40 MLOAD PUSH32 0xE237D92200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB8C SWAP3 SWAP2 SWAP1 PUSH2 0x2E7F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBA2 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x12C9 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH2 0xBB4 DUP2 PUSH2 0xC88 JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xC26 JUMPI DUP4 DUP4 PUSH1 0x40 MLOAD PUSH32 0x8626CC0300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1D SWAP3 SWAP2 SWAP1 PUSH2 0x2F77 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC32 DUP5 DUP5 PUSH1 0x1 PUSH2 0x13D4 JUMP JUMPDEST DUP3 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x49995E5DD6158CF69AD3E9777C46755A1A826A446C6416992167462DAD033B2A PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0xC7A SWAP2 SWAP1 PUSH2 0x2FDB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 LT PUSH2 0xCCE JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0xC80A970C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCC5 SWAP2 SWAP1 PUSH2 0x1F08 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0xCE2 DUP2 PUSH2 0xCDD PUSH2 0xCE5 JUMP JUMPDEST PUSH2 0x147B JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xD5F JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD56 SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xDD1 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xDC8 SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xDDE DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0x14CC JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDF1 DUP4 DUP4 PUSH2 0x970 JUMP JUMPDEST PUSH2 0xECC JUMPI PUSH1 0x1 PUSH1 0x3 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 0xE69 PUSH2 0xCE5 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 0xED1 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEE3 DUP4 DUP4 PUSH2 0x970 JUMP JUMPDEST ISZERO PUSH2 0xFBF JUMPI PUSH1 0x0 PUSH1 0x3 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 0xF5C PUSH2 0xCE5 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 0xFC4 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x103C JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1033 SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1049 DUP6 DUP6 PUSH2 0x157E JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x105B PUSH1 0x0 DUP8 DUP5 DUP5 DUP8 PUSH2 0x14CC JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MUL PUSH1 0x20 DUP5 ADD ADD MLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MUL PUSH1 0x20 DUP5 ADD ADD MLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x10FD JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xCED3E10000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10F4 SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 DUP4 PUSH1 0x40 MLOAD PUSH2 0x11EE SWAP2 SWAP1 PUSH2 0x1FC3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH2 0x120A DUP5 PUSH2 0x15AE JUMP JUMPDEST ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1229 JUMPI PUSH2 0x1228 PUSH2 0x20C7 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x125B JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x20 ADD DUP3 ADD SWAP1 POP JUMPDEST PUSH1 0x1 ISZERO PUSH2 0x12BE JUMPI DUP1 DUP1 PUSH1 0x1 SWAP1 SUB SWAP2 POP POP PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DUP2 PUSH2 0x12B2 JUMPI PUSH2 0x12B1 PUSH2 0x30EB JUMP JUMPDEST JUMPDEST DIV SWAP5 POP PUSH1 0x0 DUP6 SUB PUSH2 0x1269 JUMPI JUMPDEST DUP2 SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x133B JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1332 SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x13AD JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x13A4 SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x13BA DUP6 DUP6 PUSH2 0x157E JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x13CB DUP8 DUP8 DUP5 DUP5 DUP8 PUSH2 0x14CC JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1446 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x143D SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1453 DUP5 DUP5 PUSH2 0x157E JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x1474 DUP6 PUSH1 0x0 DUP5 DUP5 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x14CC JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1485 DUP3 DUP3 PUSH2 0x970 JUMP JUMPDEST PUSH2 0x14C8 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH32 0xE2517D3F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14BF SWAP3 SWAP2 SWAP1 PUSH2 0x311A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x14D8 DUP6 DUP6 DUP6 DUP6 PUSH2 0x1701 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1577 JUMPI PUSH1 0x0 PUSH2 0x1516 PUSH2 0xCE5 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP5 MLOAD SUB PUSH2 0x1566 JUMPI PUSH1 0x0 PUSH2 0x1537 PUSH1 0x0 DUP7 PUSH2 0x1077 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x154F PUSH1 0x0 DUP7 PUSH2 0x1077 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH2 0x155F DUP4 DUP10 DUP10 DUP6 DUP6 DUP10 PUSH2 0x1AA9 JUMP JUMPDEST POP POP PUSH2 0x1575 JUMP JUMPDEST PUSH2 0x1574 DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x1C5D JUMP JUMPDEST JUMPDEST POP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1 DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH1 0x1 DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD PUSH1 0x40 MSTORE SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x160C JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DUP2 PUSH2 0x1602 JUMPI PUSH2 0x1601 PUSH2 0x30EB JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x40 DUP2 ADD SWAP1 POP JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x1649 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DUP2 PUSH2 0x163F JUMPI PUSH2 0x163E PUSH2 0x30EB JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x20 DUP2 ADD SWAP1 POP JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x1678 JUMPI PUSH7 0x2386F26FC10000 DUP4 DUP2 PUSH2 0x166E JUMPI PUSH2 0x166D PUSH2 0x30EB JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x10 DUP2 ADD SWAP1 POP JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x16A1 JUMPI PUSH4 0x5F5E100 DUP4 DUP2 PUSH2 0x1697 JUMPI PUSH2 0x1696 PUSH2 0x30EB JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x8 DUP2 ADD SWAP1 POP JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x16C6 JUMPI PUSH2 0x2710 DUP4 DUP2 PUSH2 0x16BC JUMPI PUSH2 0x16BB PUSH2 0x30EB JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x4 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x16E9 JUMPI PUSH1 0x64 DUP4 DUP2 PUSH2 0x16DF JUMPI PUSH2 0x16DE PUSH2 0x30EB JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x2 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x16F8 JUMPI PUSH1 0x1 DUP2 ADD SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD DUP3 MLOAD EQ PUSH2 0x174B JUMPI DUP2 MLOAD DUP2 MLOAD PUSH1 0x40 MLOAD PUSH32 0x5B05999100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1742 SWAP3 SWAP2 SWAP1 PUSH2 0x2F1F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1755 PUSH2 0xCE5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x1964 JUMPI PUSH1 0x0 PUSH2 0x1778 DUP3 DUP7 PUSH2 0x1077 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x178F DUP4 DUP7 PUSH2 0x1077 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x18BC JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x1864 JUMPI DUP9 DUP2 DUP4 DUP6 PUSH1 0x40 MLOAD PUSH32 0x3DEE4C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x185B SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3143 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1957 JUMPI DUP1 PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x194F SWAP2 SWAP1 PUSH2 0x3188 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x175A JUMP JUMPDEST POP PUSH1 0x1 DUP4 MLOAD SUB PUSH2 0x1A23 JUMPI PUSH1 0x0 PUSH2 0x1984 PUSH1 0x0 DUP6 PUSH2 0x1077 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x199C PUSH1 0x0 DUP6 PUSH2 0x1077 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x1A14 SWAP3 SWAP2 SWAP1 PUSH2 0x2F1F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP PUSH2 0x1AA2 JUMP JUMPDEST DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4A39DC06D4C0DBC64B70AF90FD698A233A518AA5D07E595D983B8C0526C8F7FB DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1A99 SWAP3 SWAP2 SWAP1 PUSH2 0x31BC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x1C55 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF23A6E61 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B0A SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3248 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1B46 JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1B43 SWAP2 SWAP1 PUSH2 0x32B7 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1BCA JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1B76 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1B7B JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x1BC2 JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BB9 SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x1C53 JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C4A SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x1E09 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xBC197C81 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CBE SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x32E4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1CFA JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1CF7 SWAP2 SWAP1 PUSH2 0x32B7 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1D7E JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1D2A JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1D2F JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x1D76 JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D6D SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x1E07 JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1DFE SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E50 DUP3 PUSH2 0x1E25 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1E60 DUP2 PUSH2 0x1E45 JUMP JUMPDEST DUP2 EQ PUSH2 0x1E6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1E7D DUP2 PUSH2 0x1E57 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1E96 DUP2 PUSH2 0x1E83 JUMP JUMPDEST DUP2 EQ PUSH2 0x1EA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1EB3 DUP2 PUSH2 0x1E8D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1ED0 JUMPI PUSH2 0x1ECF PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1EDE DUP6 DUP3 DUP7 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1EEF DUP6 DUP3 DUP7 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1F02 DUP2 PUSH2 0x1E83 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1F1D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1EF9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1F58 DUP2 PUSH2 0x1F23 JUMP JUMPDEST DUP2 EQ PUSH2 0x1F63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1F75 DUP2 PUSH2 0x1F4F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F91 JUMPI PUSH2 0x1F90 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1F9F DUP5 DUP3 DUP6 ADD PUSH2 0x1F66 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1FBD DUP2 PUSH2 0x1FA8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1FD8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1FB4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FF4 JUMPI PUSH2 0x1FF3 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2002 DUP5 DUP3 DUP6 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2045 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x202A JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x206D DUP3 PUSH2 0x200B JUMP JUMPDEST PUSH2 0x2077 DUP2 DUP6 PUSH2 0x2016 JUMP JUMPDEST SWAP4 POP PUSH2 0x2087 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2027 JUMP JUMPDEST PUSH2 0x2090 DUP2 PUSH2 0x2051 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 0x20B5 DUP2 DUP5 PUSH2 0x2062 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x20FF DUP3 PUSH2 0x2051 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x211E JUMPI PUSH2 0x211D PUSH2 0x20C7 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2131 PUSH2 0x1E11 JUMP JUMPDEST SWAP1 POP PUSH2 0x213D DUP3 DUP3 PUSH2 0x20F6 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x215D JUMPI PUSH2 0x215C PUSH2 0x20C7 JUMP JUMPDEST JUMPDEST PUSH2 0x2166 DUP3 PUSH2 0x2051 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 0x2195 PUSH2 0x2190 DUP5 PUSH2 0x2142 JUMP JUMPDEST PUSH2 0x2127 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x21B1 JUMPI PUSH2 0x21B0 PUSH2 0x20C2 JUMP JUMPDEST JUMPDEST PUSH2 0x21BC DUP5 DUP3 DUP6 PUSH2 0x2173 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x21D9 JUMPI PUSH2 0x21D8 PUSH2 0x20BD JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x21E9 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2182 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2209 JUMPI PUSH2 0x2208 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2217 DUP6 DUP3 DUP7 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2238 JUMPI PUSH2 0x2237 PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x2244 DUP6 DUP3 DUP7 ADD PUSH2 0x21C4 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2261 DUP2 PUSH2 0x224E JUMP JUMPDEST DUP2 EQ PUSH2 0x226C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x227E DUP2 PUSH2 0x2258 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x229A JUMPI PUSH2 0x2299 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x22A8 DUP5 DUP3 DUP6 ADD PUSH2 0x226F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x22BA DUP2 PUSH2 0x224E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x22D5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x22B1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x22F6 JUMPI PUSH2 0x22F5 PUSH2 0x20C7 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x231F PUSH2 0x231A DUP5 PUSH2 0x22DB JUMP JUMPDEST PUSH2 0x2127 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 0x2342 JUMPI PUSH2 0x2341 PUSH2 0x2307 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x236B JUMPI DUP1 PUSH2 0x2357 DUP9 DUP3 PUSH2 0x1EA4 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2344 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x238A JUMPI PUSH2 0x2389 PUSH2 0x20BD JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x239A DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x230C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x23BE JUMPI PUSH2 0x23BD PUSH2 0x20C7 JUMP JUMPDEST JUMPDEST PUSH2 0x23C7 DUP3 PUSH2 0x2051 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x23E7 PUSH2 0x23E2 DUP5 PUSH2 0x23A3 JUMP JUMPDEST PUSH2 0x2127 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2403 JUMPI PUSH2 0x2402 PUSH2 0x20C2 JUMP JUMPDEST JUMPDEST PUSH2 0x240E DUP5 DUP3 DUP6 PUSH2 0x2173 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x242B JUMPI PUSH2 0x242A PUSH2 0x20BD JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x243B DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x23D4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2460 JUMPI PUSH2 0x245F PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x246E DUP9 DUP3 DUP10 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x247F DUP9 DUP3 DUP10 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x24A0 JUMPI PUSH2 0x249F PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x24AC DUP9 DUP3 DUP10 ADD PUSH2 0x2375 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x24CD JUMPI PUSH2 0x24CC PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x24D9 DUP9 DUP3 DUP10 ADD PUSH2 0x2375 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x24FA JUMPI PUSH2 0x24F9 PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x2506 DUP9 DUP3 DUP10 ADD PUSH2 0x2416 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x252A JUMPI PUSH2 0x2529 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2538 DUP6 DUP3 DUP7 ADD PUSH2 0x226F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2549 DUP6 DUP3 DUP7 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2569 JUMPI PUSH2 0x2568 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2587 JUMPI PUSH2 0x2586 PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x2593 DUP5 DUP3 DUP6 ADD PUSH2 0x21C4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x25B7 JUMPI PUSH2 0x25B6 PUSH2 0x20C7 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x25DB PUSH2 0x25D6 DUP5 PUSH2 0x259C JUMP JUMPDEST PUSH2 0x2127 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 0x25FE JUMPI PUSH2 0x25FD PUSH2 0x2307 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2627 JUMPI DUP1 PUSH2 0x2613 DUP9 DUP3 PUSH2 0x1E6E JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2600 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2646 JUMPI PUSH2 0x2645 PUSH2 0x20BD JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2656 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x25C8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2676 JUMPI PUSH2 0x2675 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2694 JUMPI PUSH2 0x2693 PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x26A0 DUP6 DUP3 DUP7 ADD PUSH2 0x2631 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x26C1 JUMPI PUSH2 0x26C0 PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x26CD DUP6 DUP3 DUP7 ADD PUSH2 0x2375 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x270C DUP2 PUSH2 0x1E83 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x271E DUP4 DUP4 PUSH2 0x2703 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 0x2742 DUP3 PUSH2 0x26D7 JUMP JUMPDEST PUSH2 0x274C DUP2 DUP6 PUSH2 0x26E2 JUMP JUMPDEST SWAP4 POP PUSH2 0x2757 DUP4 PUSH2 0x26F3 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2788 JUMPI DUP2 MLOAD PUSH2 0x276F DUP9 DUP3 PUSH2 0x2712 JUMP JUMPDEST SWAP8 POP PUSH2 0x277A DUP4 PUSH2 0x272A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x275B JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x27AF DUP2 DUP5 PUSH2 0x2737 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x27D1 JUMPI PUSH2 0x27D0 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x27DF DUP8 DUP3 DUP9 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x27F0 DUP8 DUP3 DUP9 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x2801 DUP8 DUP3 DUP9 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2822 JUMPI PUSH2 0x2821 PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x282E DUP8 DUP3 DUP9 ADD PUSH2 0x2416 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH2 0x2843 DUP2 PUSH2 0x1FA8 JUMP JUMPDEST DUP2 EQ PUSH2 0x284E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2860 DUP2 PUSH2 0x283A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x287D JUMPI PUSH2 0x287C PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x288B DUP6 DUP3 DUP7 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x289C DUP6 DUP3 DUP7 ADD PUSH2 0x2851 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x28BF JUMPI PUSH2 0x28BE PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x28CD DUP7 DUP3 DUP8 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x28DE DUP7 DUP3 DUP8 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x28FF JUMPI PUSH2 0x28FE PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x290B DUP7 DUP3 DUP8 ADD PUSH2 0x21C4 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x292C JUMPI PUSH2 0x292B PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x293A DUP6 DUP3 DUP7 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x294B DUP6 DUP3 DUP7 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2971 JUMPI PUSH2 0x2970 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x297F DUP9 DUP3 DUP10 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x2990 DUP9 DUP3 DUP10 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x29A1 DUP9 DUP3 DUP10 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x29B2 DUP9 DUP3 DUP10 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x29D3 JUMPI PUSH2 0x29D2 PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x29DF DUP9 DUP3 DUP10 ADD PUSH2 0x2416 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2A05 JUMPI PUSH2 0x2A04 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2A13 DUP7 DUP3 DUP8 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x2A24 DUP7 DUP3 DUP8 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x2A35 DUP7 DUP3 DUP8 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x697066733A2F2F00000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A80 PUSH1 0x7 DUP4 PUSH2 0x2A3F JUMP JUMPDEST SWAP2 POP PUSH2 0x2A8B DUP3 PUSH2 0x2A4A JUMP JUMPDEST PUSH1 0x7 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x2ADD JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2AF0 JUMPI PUSH2 0x2AEF PUSH2 0x2A96 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 DUP2 SLOAD PUSH2 0x2B18 DUP2 PUSH2 0x2AC5 JUMP JUMPDEST PUSH2 0x2B22 DUP2 DUP7 PUSH2 0x2A3F JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0x2B3D JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x2B52 JUMPI PUSH2 0x2B85 JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE DUP2 ISZERO ISZERO DUP3 MUL DUP7 ADD SWAP4 POP PUSH2 0x2B85 JUMP JUMPDEST PUSH2 0x2B5B DUP6 PUSH2 0x2AF6 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2B7D JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2B5E JUMP JUMPDEST DUP4 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x2E6A736F6E000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2BC4 PUSH1 0x5 DUP4 PUSH2 0x2A3F JUMP JUMPDEST SWAP2 POP PUSH2 0x2BCF DUP3 PUSH2 0x2B8E JUMP JUMPDEST PUSH1 0x5 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2BE5 DUP3 PUSH2 0x2A73 JUMP JUMPDEST SWAP2 POP PUSH2 0x2BF1 DUP3 DUP5 PUSH2 0x2B0B JUMP JUMPDEST SWAP2 POP PUSH2 0x2BFC DUP3 PUSH2 0x2BB7 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP 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 0x2C54 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x2C17 JUMP JUMPDEST PUSH2 0x2C5E DUP7 DUP4 PUSH2 0x2C17 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C9B PUSH2 0x2C96 PUSH2 0x2C91 DUP5 PUSH2 0x1E83 JUMP JUMPDEST PUSH2 0x2C76 JUMP JUMPDEST PUSH2 0x1E83 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2CB5 DUP4 PUSH2 0x2C80 JUMP JUMPDEST PUSH2 0x2CC9 PUSH2 0x2CC1 DUP3 PUSH2 0x2CA2 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x2C24 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x2CDE PUSH2 0x2CD1 JUMP JUMPDEST PUSH2 0x2CE9 DUP2 DUP5 DUP5 PUSH2 0x2CAC JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2D0D JUMPI PUSH2 0x2D02 PUSH1 0x0 DUP3 PUSH2 0x2CD6 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x2CEF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x2D52 JUMPI PUSH2 0x2D23 DUP2 PUSH2 0x2AF6 JUMP JUMPDEST PUSH2 0x2D2C DUP5 PUSH2 0x2C07 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x2D3B JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x2D4F PUSH2 0x2D47 DUP6 PUSH2 0x2C07 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x2CEE 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 0x2D75 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x2D57 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D8E DUP4 DUP4 PUSH2 0x2D64 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2DA7 DUP3 PUSH2 0x200B JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2DC0 JUMPI PUSH2 0x2DBF PUSH2 0x20C7 JUMP JUMPDEST JUMPDEST PUSH2 0x2DCA DUP3 SLOAD PUSH2 0x2AC5 JUMP JUMPDEST PUSH2 0x2DD5 DUP3 DUP3 DUP6 PUSH2 0x2D11 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x2E08 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x2DF6 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x2E00 DUP6 DUP3 PUSH2 0x2D82 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x2E68 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x2E16 DUP7 PUSH2 0x2AF6 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2E3E 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 0x2E19 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x2E5B JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x2E57 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x2D64 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 0x2E79 DUP2 PUSH2 0x1E45 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2E94 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2E70 JUMP JUMPDEST PUSH2 0x2EA1 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2E70 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2EE2 DUP3 PUSH2 0x1E83 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x2F14 JUMPI PUSH2 0x2F13 PUSH2 0x2EA8 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2F34 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1EF9 JUMP JUMPDEST PUSH2 0x2F41 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1EF9 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2F8C PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2E70 JUMP JUMPDEST PUSH2 0x2F99 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1EF9 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FC5 PUSH2 0x2FC0 PUSH2 0x2FBB DUP5 PUSH2 0x2FA0 JUMP JUMPDEST PUSH2 0x2C76 JUMP JUMPDEST PUSH2 0x1E83 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2FD5 DUP2 PUSH2 0x2FAA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2FF0 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2FCC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x2F00000000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x302C PUSH1 0x1 DUP4 PUSH2 0x2A3F JUMP JUMPDEST SWAP2 POP PUSH2 0x3037 DUP3 PUSH2 0x2FF6 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x304D DUP3 PUSH2 0x200B JUMP JUMPDEST PUSH2 0x3057 DUP2 DUP6 PUSH2 0x2A3F JUMP JUMPDEST SWAP4 POP PUSH2 0x3067 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2027 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x307E DUP3 PUSH2 0x2A73 JUMP JUMPDEST SWAP2 POP PUSH2 0x308A DUP3 DUP7 PUSH2 0x2B0B JUMP JUMPDEST SWAP2 POP PUSH2 0x3095 DUP3 PUSH2 0x301F JUMP JUMPDEST SWAP2 POP PUSH2 0x30A1 DUP3 DUP6 PUSH2 0x3042 JUMP JUMPDEST SWAP2 POP PUSH2 0x30AC DUP3 PUSH2 0x301F JUMP JUMPDEST SWAP2 POP PUSH2 0x30B8 DUP3 DUP5 PUSH2 0x3042 JUMP JUMPDEST SWAP2 POP PUSH2 0x30C3 DUP3 PUSH2 0x2BB7 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x30E5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2E70 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x312F PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2E70 JUMP JUMPDEST PUSH2 0x313C PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x22B1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x3158 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x2E70 JUMP JUMPDEST PUSH2 0x3165 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1EF9 JUMP JUMPDEST PUSH2 0x3172 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x1EF9 JUMP JUMPDEST PUSH2 0x317F PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x1EF9 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3193 DUP3 PUSH2 0x1E83 JUMP JUMPDEST SWAP2 POP PUSH2 0x319E DUP4 PUSH2 0x1E83 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x31B6 JUMPI PUSH2 0x31B5 PUSH2 0x2EA8 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x31D6 DUP2 DUP6 PUSH2 0x2737 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x31EA DUP2 DUP5 PUSH2 0x2737 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 0x321A DUP3 PUSH2 0x31F3 JUMP JUMPDEST PUSH2 0x3224 DUP2 DUP6 PUSH2 0x31FE JUMP JUMPDEST SWAP4 POP PUSH2 0x3234 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2027 JUMP JUMPDEST PUSH2 0x323D DUP2 PUSH2 0x2051 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x325D PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x2E70 JUMP JUMPDEST PUSH2 0x326A PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2E70 JUMP JUMPDEST PUSH2 0x3277 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x1EF9 JUMP JUMPDEST PUSH2 0x3284 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x1EF9 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x3296 DUP2 DUP5 PUSH2 0x320F JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x32B1 DUP2 PUSH2 0x1F4F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x32CD JUMPI PUSH2 0x32CC PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x32DB DUP5 DUP3 DUP6 ADD PUSH2 0x32A2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x32F9 PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x2E70 JUMP JUMPDEST PUSH2 0x3306 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2E70 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x3318 DUP2 DUP7 PUSH2 0x2737 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x332C DUP2 DUP6 PUSH2 0x2737 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x3340 DUP2 DUP5 PUSH2 0x320F JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x29 0x4F DUP5 ADD PUSH1 0x8E DUP12 PREVRANDAO 0xE4 0xD PUSH5 0x2DDEDDDE89 SWAP16 DUP11 GASLIMIT PUSH5 0xDB1A2F81 0xDF SWAP15 0xF8 0xD5 SWAP3 TIMESTAMP 0xD5 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", - "sourceMap": "265:2624:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2247:132:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2515:123:15;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2644:243;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2307:202;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3810:120:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;361:66:15;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4014:429:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4226:136:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5328:245;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;947:200:15;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2536:552:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;861:80:15;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1153:349;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2854:136:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2187:49;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3156:144:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1821:480:15;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4642:138:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3367:157:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3591:351;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1508:307:15;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2247:132:3;2324:7;2350:9;:13;2360:2;2350:13;;;;;;;;;;;:22;2364:7;2350:22;;;;;;;;;;;;;;;;2343:29;;2247:132;;;;:::o;2515:123:15:-;2630:4;2515:123;;;:::o;2644:243::-;2737:13;2719:7;815:22;829:7;815:13;:22::i;:::-;2833:14:::1;:23;2848:7;2833:23;;;;;;;;;;;2805:61;;;;;;;;:::i;:::-;;;;;;;;;;;;;2762:118;;2644:243:::0;;;;:::o;2307:202::-;401:26;2464:16:0;2475:4;2464:10;:16::i;:::-;2449:3:15::1;2433:7;:13;2441:4;2433:13;;;;;;;;;;;:19;;;;;;:::i;:::-;;2492:4;2480:10;2467:35;;;2498:3;2467:35;;;;;;:::i;:::-;;;;;;;;2307:202:::0;;;:::o;3810:120:0:-;3875:7;3901:6;:12;3908:4;3901:12;;;;;;;;;;;:22;;;3894:29;;3810:120;;;:::o;361:66:15:-;401:26;361:66;:::o;4014:429:3:-;4208:14;4225:12;:10;:12::i;:::-;4208:29;;4259:6;4251:14;;:4;:14;;;;:49;;;;;4270:30;4287:4;4293:6;4270:16;:30::i;:::-;4269:31;4251:49;4247:129;;;4352:6;4360:4;4323:42;;;;;;;;;;;;:::i;:::-;;;;;;;;4247:129;4385:51;4408:4;4414:2;4418:3;4423:6;4431:4;4385:22;:51::i;:::-;4198:245;4014:429;;;;;:::o;4226:136:0:-;4300:18;4313:4;4300:12;:18::i;:::-;2464:16;2475:4;2464:10;:16::i;:::-;4330:25:::1;4341:4;4347:7;4330:10;:25::i;:::-;;4226:136:::0;;;:::o;5328:245::-;5443:12;:10;:12::i;:::-;5421:34;;:18;:34;;;5417:102;;5478:30;;;;;;;;;;;;;;5417:102;5529:37;5541:4;5547:18;5529:11;:37::i;:::-;;5328:245;;:::o;947:200:15:-;1029:5;1002:14;:24;1017:8;;1002:24;;;;;;;;;;;:32;;;;;;:::i;:::-;;1044:34;1050:10;1062:8;;1072:1;1044:34;;;;;;;;;;;;:5;:34::i;:::-;1111:8;;1099:10;1093:27;;;;;;;;;;;;1130:8;;:10;;;;;;;;;:::i;:::-;;;;;;947:200;:::o;2536:552:3:-;2660:16;2711:3;:10;2692:8;:15;:29;2688:121;;2770:3;:10;2782:8;:15;2744:54;;;;;;;;;;;;:::i;:::-;;;;;;;;2688:121;2819:30;2866:8;:15;2852:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2819:63;;2898:9;2893:158;2917:8;:15;2913:1;:19;2893:158;;;2972:68;2982:30;3010:1;2982:8;:27;;:30;;;;:::i;:::-;3014:25;3037:1;3014:3;:22;;:25;;;;:::i;:::-;2972:9;:68::i;:::-;2953:13;2967:1;2953:16;;;;;;;;:::i;:::-;;;;;;;:87;;;;;2934:3;;;;;2893:158;;;;3068:13;3061:20;;;2536:552;;;;:::o;861:80:15:-;903:4;926:8;;919:15;;861:80;:::o;1153:349::-;1299:7;815:22;829:7;815:13;:22::i;:::-;1352:1:::1;1322:27;1332:7;1341;1322:9;:27::i;:::-;:31;1318:96;;;1386:7;1395;1376:27;;;;;;;;;;;;:::i;:::-;;;;;;;;1318:96;1423:32;1429:7;1438;1447:1;1450:4;1423:5;:32::i;:::-;1484:7;1475;1470:25;;;1493:1;1470:25;;;;;;:::i;:::-;;;;;;;;1153:349:::0;;;;;:::o;2854:136:0:-;2931:4;2954:6;:12;2961:4;2954:12;;;;;;;;;;;:20;;:29;2975:7;2954:29;;;;;;;;;;;;;;;;;;;;;;;;;2947:36;;2854:136;;;;:::o;2187:49::-;2232:4;2187:49;;;:::o;3156:144:3:-;3241:52;3260:12;:10;:12::i;:::-;3274:8;3284;3241:18;:52::i;:::-;3156:144;;:::o;1821:480:15:-;1962:13;1949:2;815:22;829:7;815:13;:22::i;:::-;2099:7:::1;:13;2107:4;2099:13;;;;;;;;;;;2159:20;2176:2;2159:16;:20::i;:::-;2226:7;2030:250;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1987:307;;1821:480:::0;;;;;;:::o;4642:138:0:-;4717:18;4730:4;4717:12;:18::i;:::-;2464:16;2475:4;2464:10;:16::i;:::-;4747:26:::1;4759:4;4765:7;4747:11;:26::i;:::-;;4642:138:::0;;;:::o;3367:157:3:-;3457:4;3480:18;:27;3499:7;3480:27;;;;;;;;;;;;;;;:37;3508:8;3480:37;;;;;;;;;;;;;;;;;;;;;;;;;3473:44;;3367:157;;;;:::o;3591:351::-;3714:14;3731:12;:10;:12::i;:::-;3714:29;;3765:6;3757:14;;:4;:14;;;;:49;;;;;3776:30;3793:4;3799:6;3776:16;:30::i;:::-;3775:31;3757:49;3753:129;;;3858:6;3866:4;3829:42;;;;;;;;;;;;:::i;:::-;;;;;;;;3753:129;3891:44;3909:4;3915:2;3919;3923:5;3930:4;3891:17;:44::i;:::-;3704:238;3591:351;;;;;:::o;1508:307:15:-;1627:7;815:22;829:7;815:13;:22::i;:::-;1661:10:::1;1650:21;;:7;:21;;;1646:87;;1705:7;1714;1694:28;;;;;;;;;;;;:::i;:::-;;;;;;;;1646:87;1742:26;1748:7;1757;1766:1;1742:5;:26::i;:::-;1797:7;1788;1783:25;;;1806:1;1783:25;;;;;;:::i;:::-;;;;;;;;1508:307:::0;;;;:::o;623:140::-;698:8;;687:7;:19;683:74;;738:7;729:17;;;;;;;;;;;:::i;:::-;;;;;;;;683:74;623:140;:::o;3199:103:0:-;3265:30;3276:4;3282:12;:10;:12::i;:::-;3265:10;:30::i;:::-;3199:103;:::o;656:96:8:-;709:7;735:10;728:17;;656:96;:::o;9015:445:3:-;9222:1;9208:16;;:2;:16;;;9204:88;;9278:1;9247:34;;;;;;;;;;;:::i;:::-;;;;;;;;9204:88;9321:1;9305:18;;:4;:18;;;9301:88;;9375:1;9346:32;;;;;;;;;;;:::i;:::-;;;;;;;;9301:88;9398:55;9425:4;9431:2;9435:3;9440:6;9448:4;9398:26;:55::i;:::-;9015:445;;;;;:::o;6179:316:0:-;6256:4;6277:22;6285:4;6291:7;6277;:22::i;:::-;6272:217;;6347:4;6315:6;:12;6322:4;6315:12;;;;;;;;;;;:20;;:29;6336:7;6315:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;6397:12;:10;:12::i;:::-;6370:40;;6388:7;6370:40;;6382:4;6370:40;;;;;;;;;;6431:4;6424:11;;;;6272:217;6473:5;6466:12;;6179:316;;;;;:::o;6730:317::-;6808:4;6828:22;6836:4;6842:7;6828;:22::i;:::-;6824:217;;;6898:5;6866:6;:12;6873:4;6866:12;;;;;;;;;;;:20;;:29;6887:7;6866:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;6949:12;:10;:12::i;:::-;6922:40;;6940:7;6922:40;;6934:4;6922:40;;;;;;;;;;6983:4;6976:11;;;;6824:217;7025:5;7018:12;;6730:317;;;;;:::o;10746:346:3:-;10856:1;10842:16;;:2;:16;;;10838:88;;10912:1;10881:34;;;;;;;;;;;:::i;:::-;;;;;;;;10838:88;10936:20;10958:23;10985:29;11004:2;11008:5;10985:18;:29::i;:::-;10935:79;;;;11024:61;11059:1;11063:2;11067:3;11072:6;11080:4;11024:26;:61::i;:::-;10828:264;;10746:346;;;;:::o;4603:197:7:-;4689:11;4777:4;4772:3;4768:14;4761:4;4756:3;4752:14;4748:35;4742:42;4735:49;;4603:197;;;;:::o;4204:::-;4290:11;4378:4;4373:3;4369:14;4362:4;4357:3;4353:14;4349:35;4343:42;4336:49;;4204:197;;;;:::o;13268:315:3:-;13395:1;13375:22;;:8;:22;;;13371:94;;13451:1;13420:34;;;;;;;;;;;:::i;:::-;;;;;;;;13371:94;13512:8;13474:18;:25;13493:5;13474:25;;;;;;;;;;;;;;;:35;13500:8;13474:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;13557:8;13535:41;;13550:5;13535:41;;;13567:8;13535:41;;;;;;:::i;:::-;;;;;;;;13268:315;;;:::o;637:698:10:-;693:13;742:14;779:1;759:17;770:5;759:10;:17::i;:::-;:21;742:38;;794:20;828:6;817:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;794:41;;849:11;975:6;971:2;967:15;959:6;955:28;948:35;;1010:282;1017:4;1010:282;;;1041:5;;;;;;;;1180:10;1175:2;1168:5;1164:14;1159:32;1154:3;1146:46;1236:2;1227:11;;;;;;:::i;:::-;;;;;1269:1;1260:5;:10;1010:282;1256:21;1010:282;1312:6;1305:13;;;;;637:698;;;:::o;8151:463:3:-;8287:1;8273:16;;:2;:16;;;8269:88;;8343:1;8312:34;;;;;;;;;;;:::i;:::-;;;;;;;;8269:88;8386:1;8370:18;;:4;:18;;;8366:88;;8440:1;8411:32;;;;;;;;;;;:::i;:::-;;;;;;;;8366:88;8464:20;8486:23;8513:29;8532:2;8536:5;8513:18;:29::i;:::-;8463:79;;;;8552:55;8579:4;8585:2;8589:3;8594:6;8602:4;8552:26;:55::i;:::-;8259:355;;8151:463;;;;;:::o;12099:329::-;12194:1;12178:18;;:4;:18;;;12174:88;;12248:1;12219:32;;;;;;;;;;;:::i;:::-;;;;;;;;12174:88;12272:20;12294:23;12321:29;12340:2;12344:5;12321:18;:29::i;:::-;12271:79;;;;12360:61;12387:4;12401:1;12405:3;12410:6;12360:61;;;;;;;;;;;;:26;:61::i;:::-;12164:264;;12099:329;;;:::o;3432:197:0:-;3520:22;3528:4;3534:7;3520;:22::i;:::-;3515:108;;3598:7;3607:4;3565:47;;;;;;;;;;;;:::i;:::-;;;;;;;;3515:108;3432:197;;:::o;7004:690:3:-;7205:30;7213:4;7219:2;7223:3;7228:6;7205:7;:30::i;:::-;7263:1;7249:16;;:2;:16;;;7245:443;;7281:16;7300:12;:10;:12::i;:::-;7281:31;;7344:1;7330:3;:10;:15;7326:352;;7365:10;7378:25;7401:1;7378:3;:22;;:25;;;;:::i;:::-;7365:38;;7421:13;7437:28;7463:1;7437:6;:25;;:28;;;;:::i;:::-;7421:44;;7483:67;7514:8;7524:4;7530:2;7534;7538:5;7545:4;7483:30;:67::i;:::-;7347:218;;7326:352;;;7589:74;7625:8;7635:4;7641:2;7645:3;7650:6;7658:4;7589:35;:74::i;:::-;7326:352;7267:421;7245:443;7004:690;;;;;:::o;16080:849::-;16188:23;16213;16374:4;16368:11;16358:21;;16444:1;16436:6;16429:17;16582:8;16575:4;16567:6;16563:17;16556:35;16704:4;16696:6;16692:17;16682:27;;16737:1;16729:6;16722:17;16778:8;16771:4;16763:6;16759:17;16752:35;16907:4;16899:6;16895:17;16889:4;16882:31;16080:849;;;;;:::o;12214:916:13:-;12267:7;12286:14;12303:1;12286:18;;12351:8;12342:5;:17;12338:103;;12388:8;12379:17;;;;;;:::i;:::-;;;;;12424:2;12414:12;;;;12338:103;12467:8;12458:5;:17;12454:103;;12504:8;12495:17;;;;;;:::i;:::-;;;;;12540:2;12530:12;;;;12454:103;12583:8;12574:5;:17;12570:103;;12620:8;12611:17;;;;;;:::i;:::-;;;;;12656:2;12646:12;;;;12570:103;12699:7;12690:5;:16;12686:100;;12735:7;12726:16;;;;;;:::i;:::-;;;;;12770:1;12760:11;;;;12686:100;12812:7;12803:5;:16;12799:100;;12848:7;12839:16;;;;;;:::i;:::-;;;;;12883:1;12873:11;;;;12799:100;12925:7;12916:5;:16;12912:100;;12961:7;12952:16;;;;;;:::i;:::-;;;;;12996:1;12986:11;;;;12912:100;13038:7;13029:5;:16;13025:66;;13075:1;13065:11;;;;13025:66;13117:6;13110:13;;;12214:916;;;:::o;5144:1281:3:-;5279:6;:13;5265:3;:10;:27;5261:117;;5341:3;:10;5353:6;:13;5315:52;;;;;;;;;;;;:::i;:::-;;;;;;;;5261:117;5388:16;5407:12;:10;:12::i;:::-;5388:31;;5435:9;5430:691;5454:3;:10;5450:1;:14;5430:691;;;5485:10;5498:25;5521:1;5498:3;:22;;:25;;;;:::i;:::-;5485:38;;5537:13;5553:28;5579:1;5553:6;:25;;:28;;;;:::i;:::-;5537:44;;5616:1;5600:18;;:4;:18;;;5596:420;;5638:19;5660:9;:13;5670:2;5660:13;;;;;;;;;;;:19;5674:4;5660:19;;;;;;;;;;;;;;;;5638:41;;5715:5;5701:11;:19;5697:129;;;5778:4;5784:11;5797:5;5804:2;5751:56;;;;;;;;;;;;;;:::i;:::-;;;;;;;;5697:129;5978:5;5964:11;:19;5942:9;:13;5952:2;5942:13;;;;;;;;;;;:19;5956:4;5942:19;;;;;;;;;;;;;;;:41;;;;5620:396;5596:420;6048:1;6034:16;;:2;:16;;;6030:81;;6091:5;6070:9;:13;6080:2;6070:13;;;;;;;;;;;:17;6084:2;6070:17;;;;;;;;;;;;;;;;:26;;;;;;;:::i;:::-;;;;;;;;6030:81;5471:650;;5466:3;;;;;5430:691;;;;6149:1;6135:3;:10;:15;6131:288;;6166:10;6179:25;6202:1;6179:3;:22;;:25;;;;:::i;:::-;6166:38;;6218:13;6234:28;6260:1;6234:6;:25;;:28;;;;:::i;:::-;6218:44;;6312:2;6281:45;;6306:4;6281:45;;6296:8;6281:45;;;6316:2;6320:5;6281:45;;;;;;;:::i;:::-;;;;;;;;6152:185;;6131:288;;;6392:2;6362:46;;6386:4;6362:46;;6376:8;6362:46;;;6396:3;6401:6;6362:46;;;;;;;:::i;:::-;;;;;;;;6131:288;5251:1174;5144:1281;;;;:::o;13761:974::-;13984:1;13967:2;:14;;;:18;13963:766;;;14022:2;14005:38;;;14044:8;14054:4;14060:2;14064:5;14071:4;14005:71;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;14001:718;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14377:1;14360:6;:13;:18;14356:349;;14487:2;14464:26;;;;;;;;;;;:::i;:::-;;;;;;;;14356:349;14657:6;14651:13;14642:6;14638:2;14634:15;14627:38;14001:718;14137:43;;;14125:55;;;:8;:55;;;;14121:174;;14273:2;14250:26;;;;;;;;;;;:::i;:::-;;;;;;;;14121:174;14077:232;13963:766;13761:974;;;;;;:::o;14923:1041::-;15171:1;15154:2;:14;;;:18;15150:808;;;15209:2;15192:43;;;15236:8;15246:4;15252:3;15257:6;15265:4;15192:78;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;15188:760;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15606:1;15589:6;:13;:18;15585:349;;15716:2;15693:26;;;;;;;;;;;:::i;:::-;;;;;;;;15585:349;15886:6;15880:13;15871:6;15867:2;15863:15;15856:38;15188:760;15361:48;;;15349:60;;;:8;:60;;;;15345:179;;15502:2;15479:26;;;;;;;;;;;:::i;:::-;;;;;;;;15345:179;15271:267;15150:808;14923:1041;;;;;;:::o;7:75:18:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:474::-;1265:6;1273;1322:2;1310:9;1301:7;1297:23;1293:32;1290:119;;;1328:79;;:::i;:::-;1290:119;1448:1;1473:53;1518:7;1509:6;1498:9;1494:22;1473:53;:::i;:::-;1463:63;;1419:117;1575:2;1601:53;1646:7;1637:6;1626:9;1622:22;1601:53;:::i;:::-;1591:63;;1546:118;1197:474;;;;;:::o;1677:118::-;1764:24;1782:5;1764:24;:::i;:::-;1759:3;1752:37;1677:118;;:::o;1801:222::-;1894:4;1932:2;1921:9;1917:18;1909:26;;1945:71;2013:1;2002:9;1998:17;1989:6;1945:71;:::i;:::-;1801:222;;;;:::o;2029:149::-;2065:7;2105:66;2098:5;2094:78;2083:89;;2029:149;;;:::o;2184:120::-;2256:23;2273:5;2256:23;:::i;:::-;2249:5;2246:34;2236:62;;2294:1;2291;2284:12;2236:62;2184:120;:::o;2310:137::-;2355:5;2393:6;2380:20;2371:29;;2409:32;2435:5;2409:32;:::i;:::-;2310:137;;;;:::o;2453:327::-;2511:6;2560:2;2548:9;2539:7;2535:23;2531:32;2528:119;;;2566:79;;:::i;:::-;2528:119;2686:1;2711:52;2755:7;2746:6;2735:9;2731:22;2711:52;:::i;:::-;2701:62;;2657:116;2453:327;;;;:::o;2786:90::-;2820:7;2863:5;2856:13;2849:21;2838:32;;2786:90;;;:::o;2882:109::-;2963:21;2978:5;2963:21;:::i;:::-;2958:3;2951:34;2882:109;;:::o;2997:210::-;3084:4;3122:2;3111:9;3107:18;3099:26;;3135:65;3197:1;3186:9;3182:17;3173:6;3135:65;:::i;:::-;2997:210;;;;:::o;3213:329::-;3272:6;3321:2;3309:9;3300:7;3296:23;3292:32;3289:119;;;3327:79;;:::i;:::-;3289:119;3447:1;3472:53;3517:7;3508:6;3497:9;3493:22;3472:53;:::i;:::-;3462:63;;3418:117;3213:329;;;;:::o;3548:99::-;3600:6;3634:5;3628:12;3618:22;;3548:99;;;:::o;3653:169::-;3737:11;3771:6;3766:3;3759:19;3811:4;3806:3;3802:14;3787:29;;3653:169;;;;:::o;3828:246::-;3909:1;3919:113;3933:6;3930:1;3927:13;3919:113;;;4018:1;4013:3;4009:11;4003:18;3999:1;3994:3;3990:11;3983:39;3955:2;3952:1;3948:10;3943:15;;3919:113;;;4066:1;4057:6;4052:3;4048:16;4041:27;3890:184;3828:246;;;:::o;4080:102::-;4121:6;4172:2;4168:7;4163:2;4156:5;4152:14;4148:28;4138:38;;4080:102;;;:::o;4188:377::-;4276:3;4304:39;4337:5;4304:39;:::i;:::-;4359:71;4423:6;4418:3;4359:71;:::i;:::-;4352:78;;4439:65;4497:6;4492:3;4485:4;4478:5;4474:16;4439:65;:::i;:::-;4529:29;4551:6;4529:29;:::i;:::-;4524:3;4520:39;4513:46;;4280:285;4188:377;;;;:::o;4571:313::-;4684:4;4722:2;4711:9;4707:18;4699:26;;4771:9;4765:4;4761:20;4757:1;4746:9;4742:17;4735:47;4799:78;4872:4;4863:6;4799:78;:::i;:::-;4791:86;;4571:313;;;;:::o;4890:117::-;4999:1;4996;4989:12;5013:117;5122:1;5119;5112:12;5136:180;5184:77;5181:1;5174:88;5281:4;5278:1;5271:15;5305:4;5302:1;5295:15;5322:281;5405:27;5427:4;5405:27;:::i;:::-;5397:6;5393:40;5535:6;5523:10;5520:22;5499:18;5487:10;5484:34;5481:62;5478:88;;;5546:18;;:::i;:::-;5478:88;5586:10;5582:2;5575:22;5365:238;5322:281;;:::o;5609:129::-;5643:6;5670:20;;:::i;:::-;5660:30;;5699:33;5727:4;5719:6;5699:33;:::i;:::-;5609:129;;;:::o;5744:308::-;5806:4;5896:18;5888:6;5885:30;5882:56;;;5918:18;;:::i;:::-;5882:56;5956:29;5978:6;5956:29;:::i;:::-;5948:37;;6040:4;6034;6030:15;6022:23;;5744:308;;;:::o;6058:146::-;6155:6;6150:3;6145;6132:30;6196:1;6187:6;6182:3;6178:16;6171:27;6058:146;;;:::o;6210:425::-;6288:5;6313:66;6329:49;6371:6;6329:49;:::i;:::-;6313:66;:::i;:::-;6304:75;;6402:6;6395:5;6388:21;6440:4;6433:5;6429:16;6478:3;6469:6;6464:3;6460:16;6457:25;6454:112;;;6485:79;;:::i;:::-;6454:112;6575:54;6622:6;6617:3;6612;6575:54;:::i;:::-;6294:341;6210:425;;;;;:::o;6655:340::-;6711:5;6760:3;6753:4;6745:6;6741:17;6737:27;6727:122;;6768:79;;:::i;:::-;6727:122;6885:6;6872:20;6910:79;6985:3;6977:6;6970:4;6962:6;6958:17;6910:79;:::i;:::-;6901:88;;6717:278;6655:340;;;;:::o;7001:654::-;7079:6;7087;7136:2;7124:9;7115:7;7111:23;7107:32;7104:119;;;7142:79;;:::i;:::-;7104:119;7262:1;7287:53;7332:7;7323:6;7312:9;7308:22;7287:53;:::i;:::-;7277:63;;7233:117;7417:2;7406:9;7402:18;7389:32;7448:18;7440:6;7437:30;7434:117;;;7470:79;;:::i;:::-;7434:117;7575:63;7630:7;7621:6;7610:9;7606:22;7575:63;:::i;:::-;7565:73;;7360:288;7001:654;;;;;:::o;7661:77::-;7698:7;7727:5;7716:16;;7661:77;;;:::o;7744:122::-;7817:24;7835:5;7817:24;:::i;:::-;7810:5;7807:35;7797:63;;7856:1;7853;7846:12;7797:63;7744:122;:::o;7872:139::-;7918:5;7956:6;7943:20;7934:29;;7972:33;7999:5;7972:33;:::i;:::-;7872:139;;;;:::o;8017:329::-;8076:6;8125:2;8113:9;8104:7;8100:23;8096:32;8093:119;;;8131:79;;:::i;:::-;8093:119;8251:1;8276:53;8321:7;8312:6;8301:9;8297:22;8276:53;:::i;:::-;8266:63;;8222:117;8017:329;;;;:::o;8352:118::-;8439:24;8457:5;8439:24;:::i;:::-;8434:3;8427:37;8352:118;;:::o;8476:222::-;8569:4;8607:2;8596:9;8592:18;8584:26;;8620:71;8688:1;8677:9;8673:17;8664:6;8620:71;:::i;:::-;8476:222;;;;:::o;8704:311::-;8781:4;8871:18;8863:6;8860:30;8857:56;;;8893:18;;:::i;:::-;8857:56;8943:4;8935:6;8931:17;8923:25;;9003:4;8997;8993:15;8985:23;;8704:311;;;:::o;9021:117::-;9130:1;9127;9120:12;9161:710;9257:5;9282:81;9298:64;9355:6;9298:64;:::i;:::-;9282:81;:::i;:::-;9273:90;;9383:5;9412:6;9405:5;9398:21;9446:4;9439:5;9435:16;9428:23;;9499:4;9491:6;9487:17;9479:6;9475:30;9528:3;9520:6;9517:15;9514:122;;;9547:79;;:::i;:::-;9514:122;9662:6;9645:220;9679:6;9674:3;9671:15;9645:220;;;9754:3;9783:37;9816:3;9804:10;9783:37;:::i;:::-;9778:3;9771:50;9850:4;9845:3;9841:14;9834:21;;9721:144;9705:4;9700:3;9696:14;9689:21;;9645:220;;;9649:21;9263:608;;9161:710;;;;;:::o;9894:370::-;9965:5;10014:3;10007:4;9999:6;9995:17;9991:27;9981:122;;10022:79;;:::i;:::-;9981:122;10139:6;10126:20;10164:94;10254:3;10246:6;10239:4;10231:6;10227:17;10164:94;:::i;:::-;10155:103;;9971:293;9894:370;;;;:::o;10270:307::-;10331:4;10421:18;10413:6;10410:30;10407:56;;;10443:18;;:::i;:::-;10407:56;10481:29;10503:6;10481:29;:::i;:::-;10473:37;;10565:4;10559;10555:15;10547:23;;10270:307;;;:::o;10583:423::-;10660:5;10685:65;10701:48;10742:6;10701:48;:::i;:::-;10685:65;:::i;:::-;10676:74;;10773:6;10766:5;10759:21;10811:4;10804:5;10800:16;10849:3;10840:6;10835:3;10831:16;10828:25;10825:112;;;10856:79;;:::i;:::-;10825:112;10946:54;10993:6;10988:3;10983;10946:54;:::i;:::-;10666:340;10583:423;;;;;:::o;11025:338::-;11080:5;11129:3;11122:4;11114:6;11110:17;11106:27;11096:122;;11137:79;;:::i;:::-;11096:122;11254:6;11241:20;11279:78;11353:3;11345:6;11338:4;11330:6;11326:17;11279:78;:::i;:::-;11270:87;;11086:277;11025:338;;;;:::o;11369:1509::-;11523:6;11531;11539;11547;11555;11604:3;11592:9;11583:7;11579:23;11575:33;11572:120;;;11611:79;;:::i;:::-;11572:120;11731:1;11756:53;11801:7;11792:6;11781:9;11777:22;11756:53;:::i;:::-;11746:63;;11702:117;11858:2;11884:53;11929:7;11920:6;11909:9;11905:22;11884:53;:::i;:::-;11874:63;;11829:118;12014:2;12003:9;11999:18;11986:32;12045:18;12037:6;12034:30;12031:117;;;12067:79;;:::i;:::-;12031:117;12172:78;12242:7;12233:6;12222:9;12218:22;12172:78;:::i;:::-;12162:88;;11957:303;12327:2;12316:9;12312:18;12299:32;12358:18;12350:6;12347:30;12344:117;;;12380:79;;:::i;:::-;12344:117;12485:78;12555:7;12546:6;12535:9;12531:22;12485:78;:::i;:::-;12475:88;;12270:303;12640:3;12629:9;12625:19;12612:33;12672:18;12664:6;12661:30;12658:117;;;12694:79;;:::i;:::-;12658:117;12799:62;12853:7;12844:6;12833:9;12829:22;12799:62;:::i;:::-;12789:72;;12583:288;11369:1509;;;;;;;;:::o;12884:474::-;12952:6;12960;13009:2;12997:9;12988:7;12984:23;12980:32;12977:119;;;13015:79;;:::i;:::-;12977:119;13135:1;13160:53;13205:7;13196:6;13185:9;13181:22;13160:53;:::i;:::-;13150:63;;13106:117;13262:2;13288:53;13333:7;13324:6;13313:9;13309:22;13288:53;:::i;:::-;13278:63;;13233:118;12884:474;;;;;:::o;13364:509::-;13433:6;13482:2;13470:9;13461:7;13457:23;13453:32;13450:119;;;13488:79;;:::i;:::-;13450:119;13636:1;13625:9;13621:17;13608:31;13666:18;13658:6;13655:30;13652:117;;;13688:79;;:::i;:::-;13652:117;13793:63;13848:7;13839:6;13828:9;13824:22;13793:63;:::i;:::-;13783:73;;13579:287;13364:509;;;;:::o;13879:311::-;13956:4;14046:18;14038:6;14035:30;14032:56;;;14068:18;;:::i;:::-;14032:56;14118:4;14110:6;14106:17;14098:25;;14178:4;14172;14168:15;14160:23;;13879:311;;;:::o;14213:710::-;14309:5;14334:81;14350:64;14407:6;14350:64;:::i;:::-;14334:81;:::i;:::-;14325:90;;14435:5;14464:6;14457:5;14450:21;14498:4;14491:5;14487:16;14480:23;;14551:4;14543:6;14539:17;14531:6;14527:30;14580:3;14572:6;14569:15;14566:122;;;14599:79;;:::i;:::-;14566:122;14714:6;14697:220;14731:6;14726:3;14723:15;14697:220;;;14806:3;14835:37;14868:3;14856:10;14835:37;:::i;:::-;14830:3;14823:50;14902:4;14897:3;14893:14;14886:21;;14773:144;14757:4;14752:3;14748:14;14741:21;;14697:220;;;14701:21;14315:608;;14213:710;;;;;:::o;14946:370::-;15017:5;15066:3;15059:4;15051:6;15047:17;15043:27;15033:122;;15074:79;;:::i;:::-;15033:122;15191:6;15178:20;15216:94;15306:3;15298:6;15291:4;15283:6;15279:17;15216:94;:::i;:::-;15207:103;;15023:293;14946:370;;;;:::o;15322:894::-;15440:6;15448;15497:2;15485:9;15476:7;15472:23;15468:32;15465:119;;;15503:79;;:::i;:::-;15465:119;15651:1;15640:9;15636:17;15623:31;15681:18;15673:6;15670:30;15667:117;;;15703:79;;:::i;:::-;15667:117;15808:78;15878:7;15869:6;15858:9;15854:22;15808:78;:::i;:::-;15798:88;;15594:302;15963:2;15952:9;15948:18;15935:32;15994:18;15986:6;15983:30;15980:117;;;16016:79;;:::i;:::-;15980:117;16121:78;16191:7;16182:6;16171:9;16167:22;16121:78;:::i;:::-;16111:88;;15906:303;15322:894;;;;;:::o;16222:114::-;16289:6;16323:5;16317:12;16307:22;;16222:114;;;:::o;16342:184::-;16441:11;16475:6;16470:3;16463:19;16515:4;16510:3;16506:14;16491:29;;16342:184;;;;:::o;16532:132::-;16599:4;16622:3;16614:11;;16652:4;16647:3;16643:14;16635:22;;16532:132;;;:::o;16670:108::-;16747:24;16765:5;16747:24;:::i;:::-;16742:3;16735:37;16670:108;;:::o;16784:179::-;16853:10;16874:46;16916:3;16908:6;16874:46;:::i;:::-;16952:4;16947:3;16943:14;16929:28;;16784:179;;;;:::o;16969:113::-;17039:4;17071;17066:3;17062:14;17054:22;;16969:113;;;:::o;17118:732::-;17237:3;17266:54;17314:5;17266:54;:::i;:::-;17336:86;17415:6;17410:3;17336:86;:::i;:::-;17329:93;;17446:56;17496:5;17446:56;:::i;:::-;17525:7;17556:1;17541:284;17566:6;17563:1;17560:13;17541:284;;;17642:6;17636:13;17669:63;17728:3;17713:13;17669:63;:::i;:::-;17662:70;;17755:60;17808:6;17755:60;:::i;:::-;17745:70;;17601:224;17588:1;17585;17581:9;17576:14;;17541:284;;;17545:14;17841:3;17834:10;;17242:608;;;17118:732;;;;:::o;17856:373::-;17999:4;18037:2;18026:9;18022:18;18014:26;;18086:9;18080:4;18076:20;18072:1;18061:9;18057:17;18050:47;18114:108;18217:4;18208:6;18114:108;:::i;:::-;18106:116;;17856:373;;;;:::o;18235:943::-;18330:6;18338;18346;18354;18403:3;18391:9;18382:7;18378:23;18374:33;18371:120;;;18410:79;;:::i;:::-;18371:120;18530:1;18555:53;18600:7;18591:6;18580:9;18576:22;18555:53;:::i;:::-;18545:63;;18501:117;18657:2;18683:53;18728:7;18719:6;18708:9;18704:22;18683:53;:::i;:::-;18673:63;;18628:118;18785:2;18811:53;18856:7;18847:6;18836:9;18832:22;18811:53;:::i;:::-;18801:63;;18756:118;18941:2;18930:9;18926:18;18913:32;18972:18;18964:6;18961:30;18958:117;;;18994:79;;:::i;:::-;18958:117;19099:62;19153:7;19144:6;19133:9;19129:22;19099:62;:::i;:::-;19089:72;;18884:287;18235:943;;;;;;;:::o;19184:116::-;19254:21;19269:5;19254:21;:::i;:::-;19247:5;19244:32;19234:60;;19290:1;19287;19280:12;19234:60;19184:116;:::o;19306:133::-;19349:5;19387:6;19374:20;19365:29;;19403:30;19427:5;19403:30;:::i;:::-;19306:133;;;;:::o;19445:468::-;19510:6;19518;19567:2;19555:9;19546:7;19542:23;19538:32;19535:119;;;19573:79;;:::i;:::-;19535:119;19693:1;19718:53;19763:7;19754:6;19743:9;19739:22;19718:53;:::i;:::-;19708:63;;19664:117;19820:2;19846:50;19888:7;19879:6;19868:9;19864:22;19846:50;:::i;:::-;19836:60;;19791:115;19445:468;;;;;:::o;19919:799::-;20006:6;20014;20022;20071:2;20059:9;20050:7;20046:23;20042:32;20039:119;;;20077:79;;:::i;:::-;20039:119;20197:1;20222:53;20267:7;20258:6;20247:9;20243:22;20222:53;:::i;:::-;20212:63;;20168:117;20324:2;20350:53;20395:7;20386:6;20375:9;20371:22;20350:53;:::i;:::-;20340:63;;20295:118;20480:2;20469:9;20465:18;20452:32;20511:18;20503:6;20500:30;20497:117;;;20533:79;;:::i;:::-;20497:117;20638:63;20693:7;20684:6;20673:9;20669:22;20638:63;:::i;:::-;20628:73;;20423:288;19919:799;;;;;:::o;20724:474::-;20792:6;20800;20849:2;20837:9;20828:7;20824:23;20820:32;20817:119;;;20855:79;;:::i;:::-;20817:119;20975:1;21000:53;21045:7;21036:6;21025:9;21021:22;21000:53;:::i;:::-;20990:63;;20946:117;21102:2;21128:53;21173:7;21164:6;21153:9;21149:22;21128:53;:::i;:::-;21118:63;;21073:118;20724:474;;;;;:::o;21204:1089::-;21308:6;21316;21324;21332;21340;21389:3;21377:9;21368:7;21364:23;21360:33;21357:120;;;21396:79;;:::i;:::-;21357:120;21516:1;21541:53;21586:7;21577:6;21566:9;21562:22;21541:53;:::i;:::-;21531:63;;21487:117;21643:2;21669:53;21714:7;21705:6;21694:9;21690:22;21669:53;:::i;:::-;21659:63;;21614:118;21771:2;21797:53;21842:7;21833:6;21822:9;21818:22;21797:53;:::i;:::-;21787:63;;21742:118;21899:2;21925:53;21970:7;21961:6;21950:9;21946:22;21925:53;:::i;:::-;21915:63;;21870:118;22055:3;22044:9;22040:19;22027:33;22087:18;22079:6;22076:30;22073:117;;;22109:79;;:::i;:::-;22073:117;22214:62;22268:7;22259:6;22248:9;22244:22;22214:62;:::i;:::-;22204:72;;21998:288;21204:1089;;;;;;;;:::o;22299:619::-;22376:6;22384;22392;22441:2;22429:9;22420:7;22416:23;22412:32;22409:119;;;22447:79;;:::i;:::-;22409:119;22567:1;22592:53;22637:7;22628:6;22617:9;22613:22;22592:53;:::i;:::-;22582:63;;22538:117;22694:2;22720:53;22765:7;22756:6;22745:9;22741:22;22720:53;:::i;:::-;22710:63;;22665:118;22822:2;22848:53;22893:7;22884:6;22873:9;22869:22;22848:53;:::i;:::-;22838:63;;22793:118;22299:619;;;;;:::o;22924:148::-;23026:11;23063:3;23048:18;;22924:148;;;;:::o;23078:161::-;23218:9;23214:1;23206:6;23202:14;23195:33;23078:161;:::o;23249:416::-;23409:3;23434:84;23516:1;23511:3;23434:84;:::i;:::-;23427:91;;23531:93;23620:3;23531:93;:::i;:::-;23653:1;23648:3;23644:11;23637:18;;23249:416;;;:::o;23675:196::-;23727:77;23724:1;23717:88;23828:4;23825:1;23818:15;23856:4;23853:1;23846:15;23881:356;23925:6;23966:1;23960:4;23956:12;23946:22;;24017:1;24011:4;24007:12;24042:18;24032:89;;24102:4;24094:6;24090:17;24080:27;;24032:89;24172:2;24164:6;24161:14;24141:18;24138:38;24135:92;;24195:18;;:::i;:::-;24135:92;23932:305;23881:356;;;:::o;24247:157::-;24296:4;24323:3;24315:11;;24350:3;24347:1;24340:14;24388:4;24385:1;24375:18;24367:26;;24247:157;;;:::o;24442:954::-;24545:3;24586:5;24580:12;24619:36;24645:9;24619:36;:::i;:::-;24675:89;24757:6;24752:3;24675:89;:::i;:::-;24668:96;;24799:1;24788:9;24784:17;24819:1;24814:182;;;;25014:1;25009:377;;;;24777:609;;24814:182;24906:4;24902:9;24891;24887:25;24882:3;24875:38;24972:6;24965:14;24958:22;24950:6;24946:35;24941:3;24937:45;24930:52;;24814:182;;25009:377;25084:38;25116:5;25084:38;:::i;:::-;25148:1;25166:166;25180:6;25177:1;25174:13;25166:166;;;25258:7;25252:14;25248:1;25243:3;25239:11;25232:35;25312:1;25303:7;25299:15;25288:26;;25202:4;25199:1;25195:12;25190:17;;25166:166;;;25365:6;25360:3;25356:16;25349:23;;25016:370;;24777:609;;24549:847;;24442:954;;;;:::o;25406:163::-;25550:7;25546:1;25538:6;25534:14;25527:31;25406:163;:::o;25579:416::-;25739:3;25764:84;25846:1;25841:3;25764:84;:::i;:::-;25757:91;;25861:93;25950:3;25861:93;:::i;:::-;25983:1;25978:3;25974:11;25967:18;;25579:416;;;:::o;26005:821::-;26336:3;26362:148;26506:3;26362:148;:::i;:::-;26355:155;;26531:92;26619:3;26610:6;26531:92;:::i;:::-;26524:99;;26644:148;26788:3;26644:148;:::i;:::-;26637:155;;26813:3;26806:10;;26005:821;;;;:::o;26836:101::-;26873:6;26924:2;26919;26912:5;26908:14;26904:23;26894:33;;26836:101;;;:::o;26947:119::-;26991:8;27049:5;27043:4;27039:16;27014:41;;26947:119;;;;:::o;27076:417::-;27145:6;27199:1;27187:10;27183:18;27226:97;27256:66;27245:9;27226:97;:::i;:::-;27348:39;27378:8;27367:9;27348:39;:::i;:::-;27336:51;;27424:4;27420:9;27413:5;27409:21;27400:30;;27477:4;27467:8;27463:19;27456:5;27453:30;27443:40;;27152:341;;27076:417;;;;;:::o;27503:68::-;27531:3;27556:5;27549:12;;27503:68;;;:::o;27581:150::-;27631:9;27668:53;27686:34;27695:24;27713:5;27695:24;:::i;:::-;27686:34;:::i;:::-;27668:53;:::i;:::-;27655:66;;27581:150;;;:::o;27741:83::-;27784:3;27809:5;27802:12;;27741:83;;;:::o;27834:281::-;27948:39;27979:7;27948:39;:::i;:::-;28013:91;28062:41;28086:16;28062:41;:::i;:::-;28054:6;28047:4;28041:11;28013:91;:::i;:::-;28007:4;28000:105;27910:205;27834:281;;;:::o;28125:81::-;28170:3;28125:81;:::o;28216:201::-;28297:32;;:::i;:::-;28342:65;28400:6;28392;28386:4;28342:65;:::i;:::-;28269:148;28216:201;;:::o;28427:206::-;28491:132;28508:3;28501:5;28498:14;28491:132;;;28570:39;28607:1;28600:5;28570:39;:::i;:::-;28535:1;28528:5;28524:13;28515:22;;28491:132;;;28427:206;;:::o;28643:575::-;28748:2;28743:3;28740:11;28737:470;;;28786:38;28818:5;28786:38;:::i;:::-;28874:29;28892:10;28874:29;:::i;:::-;28864:8;28860:44;29065:2;29053:10;29050:18;29047:49;;;29086:8;29071:23;;29047:49;29113:80;29169:22;29187:3;29169:22;:::i;:::-;29159:8;29155:37;29142:11;29113:80;:::i;:::-;28752:455;;28737:470;28643:575;;;:::o;29228:129::-;29282:8;29340:5;29334:4;29330:16;29305:41;;29228:129;;;;:::o;29367:181::-;29411:6;29448:51;29496:1;29492:6;29484:5;29481:1;29477:13;29448:51;:::i;:::-;29444:56;29533:4;29527;29523:15;29513:25;;29418:130;29367:181;;;;:::o;29557:315::-;29633:4;29791:29;29816:3;29810:4;29791:29;:::i;:::-;29783:37;;29857:3;29854:1;29850:11;29844:4;29841:21;29833:29;;29557:315;;;;:::o;29881:1523::-;30002:37;30035:3;30002:37;:::i;:::-;30112:18;30104:6;30101:30;30098:56;;;30134:18;;:::i;:::-;30098:56;30182:38;30214:4;30208:11;30182:38;:::i;:::-;30275:67;30335:6;30327;30321:4;30275:67;:::i;:::-;30373:1;30401:4;30388:17;;30437:2;30429:6;30426:14;30458:1;30453:674;;;;31179:1;31200:6;31197:85;;;31253:9;31248:3;31244:19;31238:26;31229:35;;31197:85;31312:67;31372:6;31365:5;31312:67;:::i;:::-;31306:4;31299:81;31148:246;30419:975;;30453:674;30509:4;30505:9;30497:6;30493:22;30547:37;30579:4;30547:37;:::i;:::-;30610:1;30628:224;30642:7;30639:1;30636:14;30628:224;;;30725:9;30720:3;30716:19;30710:26;30702:6;30695:42;30780:1;30772:6;30768:14;30758:24;;30831:2;30820:9;30816:18;30803:31;;30665:4;30662:1;30658:12;30653:17;;30628:224;;;30884:6;30875:7;30872:19;30869:191;;;30946:9;30941:3;30937:19;30931:26;30993:48;31035:4;31027:6;31023:17;31012:9;30993:48;:::i;:::-;30985:6;30978:64;30892:168;30869:191;31110:1;31106;31098:6;31094:14;31090:22;31084:4;31077:36;30460:667;;;30419:975;;29973:1431;;;29881:1523;;:::o;31414:126::-;31505:24;31523:5;31505:24;:::i;:::-;31500:3;31493:37;31414:126;;:::o;31550:348::-;31671:4;31713:2;31702:9;31698:18;31690:26;;31730:71;31798:1;31787:9;31783:17;31774:6;31730:71;:::i;:::-;31815:72;31883:2;31872:9;31868:18;31859:6;31815:72;:::i;:::-;31550:348;;;;;:::o;31908:196::-;31960:77;31957:1;31950:88;32061:4;32058:1;32051:15;32089:4;32086:1;32079:15;32114:249;32153:3;32180:24;32198:5;32180:24;:::i;:::-;32171:33;;32230:66;32223:5;32220:77;32217:103;;32300:18;;:::i;:::-;32217:103;32351:1;32344:5;32340:13;32333:20;;32114:249;;;:::o;32373:348::-;32494:4;32536:2;32525:9;32521:18;32513:26;;32553:71;32621:1;32610:9;32606:17;32597:6;32553:71;:::i;:::-;32638:72;32706:2;32695:9;32691:18;32682:6;32638:72;:::i;:::-;32373:348;;;;;:::o;32731:196::-;32783:77;32780:1;32773:88;32884:4;32881:1;32874:15;32912:4;32909:1;32902:15;32937:348;33058:4;33100:2;33089:9;33085:18;33077:26;;33117:71;33185:1;33174:9;33170:17;33161:6;33117:71;:::i;:::-;33202:72;33270:2;33259:9;33255:18;33246:6;33202:72;:::i;:::-;32937:348;;;;;:::o;33295:93::-;33340:7;33373:5;33362:16;;33295:93;;;:::o;33398:166::-;33456:9;33493:61;33511:42;33520:32;33546:5;33520:32;:::i;:::-;33511:42;:::i;:::-;33493:61;:::i;:::-;33480:74;;33398:166;;;:::o;33574:155::-;33673:45;33712:5;33673:45;:::i;:::-;33668:3;33661:58;33574:155;;:::o;33739:250::-;33840:4;33882:2;33871:9;33867:18;33859:26;;33899:79;33975:1;33964:9;33960:17;33951:6;33899:79;:::i;:::-;33739:250;;;;:::o;33999:159::-;34143:3;34139:1;34131:6;34127:14;34120:27;33999:159;:::o;34168:416::-;34328:3;34353:84;34435:1;34430:3;34353:84;:::i;:::-;34346:91;;34450:93;34539:3;34450:93;:::i;:::-;34572:1;34567:3;34563:11;34556:18;;34168:416;;;:::o;34594:410::-;34700:3;34732:39;34765:5;34732:39;:::i;:::-;34791:89;34873:6;34868:3;34791:89;:::i;:::-;34784:96;;34893:65;34951:6;34946:3;34939:4;34932:5;34928:16;34893:65;:::i;:::-;34987:6;34982:3;34978:16;34971:23;;34704:300;34594:410;;;;:::o;35014:1689::-;35643:3;35669:148;35813:3;35669:148;:::i;:::-;35662:155;;35838:92;35926:3;35917:6;35838:92;:::i;:::-;35831:99;;35951:148;36095:3;35951:148;:::i;:::-;35944:155;;36120:95;36211:3;36202:6;36120:95;:::i;:::-;36113:102;;36236:148;36380:3;36236:148;:::i;:::-;36229:155;;36405:95;36496:3;36487:6;36405:95;:::i;:::-;36398:102;;36521:148;36665:3;36521:148;:::i;:::-;36514:155;;36690:3;36683:10;;35014:1689;;;;;;:::o;36713:234::-;36806:4;36848:2;36837:9;36833:18;36825:26;;36865:71;36933:1;36922:9;36918:17;36909:6;36865:71;:::i;:::-;36713:234;;;;:::o;36957:196::-;37009:77;37006:1;36999:88;37110:4;37107:1;37100:15;37138:4;37135:1;37128:15;37163:348;37284:4;37326:2;37315:9;37311:18;37303:26;;37343:71;37411:1;37400:9;37396:17;37387:6;37343:71;:::i;:::-;37428:72;37496:2;37485:9;37481:18;37472:6;37428:72;:::i;:::-;37163:348;;;;;:::o;37521:577::-;37698:4;37740:3;37729:9;37725:19;37717:27;;37758:71;37826:1;37815:9;37811:17;37802:6;37758:71;:::i;:::-;37843:72;37911:2;37900:9;37896:18;37887:6;37843:72;:::i;:::-;37929;37997:2;37986:9;37982:18;37973:6;37929:72;:::i;:::-;38015;38083:2;38072:9;38068:18;38059:6;38015:72;:::i;:::-;37521:577;;;;;;;:::o;38108:211::-;38148:3;38171:20;38189:1;38171:20;:::i;:::-;38166:25;;38209:20;38227:1;38209:20;:::i;:::-;38204:25;;38256:1;38253;38249:9;38242:16;;38281:3;38278:1;38275:10;38272:36;;;38288:18;;:::i;:::-;38272:36;38108:211;;;;:::o;38329:658::-;38550:4;38592:2;38581:9;38577:18;38569:26;;38645:9;38639:4;38635:20;38631:1;38620:9;38616:17;38609:47;38677:108;38780:4;38771:6;38677:108;:::i;:::-;38669:116;;38836:9;38830:4;38826:20;38821:2;38810:9;38806:18;38799:48;38868:108;38971:4;38962:6;38868:108;:::i;:::-;38860:116;;38329:658;;;;;:::o;38997:106::-;39048:6;39086:5;39080:12;39070:22;;38997:106;;;:::o;39113:180::-;39196:11;39234:6;39229:3;39222:19;39278:4;39273:3;39269:14;39254:29;;39113:180;;;;:::o;39303:393::-;39389:3;39421:38;39453:5;39421:38;:::i;:::-;39479:70;39542:6;39537:3;39479:70;:::i;:::-;39472:77;;39562:65;39620:6;39615:3;39608:4;39601:5;39597:16;39562:65;:::i;:::-;39656:29;39678:6;39656:29;:::i;:::-;39651:3;39647:39;39640:46;;39393:303;39303:393;;;;:::o;39706:783::-;39929:4;39971:3;39960:9;39956:19;39948:27;;39989:71;40057:1;40046:9;40042:17;40033:6;39989:71;:::i;:::-;40074:72;40142:2;40131:9;40127:18;40118:6;40074:72;:::i;:::-;40160;40228:2;40217:9;40213:18;40204:6;40160:72;:::i;:::-;40246;40314:2;40303:9;40299:18;40290:6;40246:72;:::i;:::-;40370:9;40364:4;40360:20;40354:3;40343:9;40339:19;40332:49;40402:76;40473:4;40464:6;40402:76;:::i;:::-;40394:84;;39706:783;;;;;;;;:::o;40499:153::-;40555:5;40590:6;40584:13;40575:22;;40610:32;40636:5;40610:32;:::i;:::-;40499:153;;;;:::o;40662:373::-;40731:6;40784:2;40772:9;40763:7;40759:23;40755:32;40752:119;;;40790:79;;:::i;:::-;40752:119;40918:1;40947:63;41002:7;40993:6;40982:9;40978:22;40947:63;:::i;:::-;40937:73;;40885:139;40662:373;;;;:::o;41045:1093::-;41368:4;41410:3;41399:9;41395:19;41387:27;;41428:71;41496:1;41485:9;41481:17;41472:6;41428:71;:::i;:::-;41513:72;41581:2;41570:9;41566:18;41557:6;41513:72;:::i;:::-;41636:9;41630:4;41626:20;41621:2;41610:9;41606:18;41599:48;41668:108;41771:4;41762:6;41668:108;:::i;:::-;41660:116;;41827:9;41821:4;41817:20;41812:2;41801:9;41797:18;41790:48;41859:108;41962:4;41953:6;41859:108;:::i;:::-;41851:116;;42019:9;42013:4;42009:20;42003:3;41992:9;41988:19;41981:49;42051:76;42122:4;42113:6;42051:76;:::i;:::-;42043:84;;41045:1093;;;;;;;;:::o" - }, - "methodIdentifiers": { - "DEFAULT_ADMIN_ROLE()": "a217fddf", - "PROVIDER_ROLE()": "24c20a34", - "balanceOf(address,uint256)": "00fdd58e", - "balanceOfBatch(address[],uint256[])": "4e1273f4", - "burn(address,uint256,uint256)": "f5298aca", - "counter()": "61bc221a", - "getRoleAdmin(bytes32)": "248a9ca3", - "getScores(uint256,uint256,string)": "c5afac66", - "grantRole(bytes32,address)": "2f2ff15d", - "hasRole(bytes32,address)": "91d14854", - "isApprovedForAll(address,address)": "e985e9c5", - "issue(string)": "3cad9b0d", - "mint(address,uint256,uint256,bytes)": "731133e9", - "renounceRole(bytes32,address)": "36568abe", - "revokeRole(bytes32,address)": "d547741f", - "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)": "2eb2c2d6", - "safeTransferFrom(address,address,uint256,uint256,bytes)": "f242432a", - "setApprovalForAll(address,bool)": "a22cb465", - "supportsInterface(bytes4)": "01ffc9a7", - "updateScores(uint256,string)": "1c4ce135", - "uri(uint256)": "0e89341c" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"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\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"MintLimit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"NotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"NotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Issue\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"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\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"date\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"cid\",\"type\":\"string\"}],\"name\":\"UpdateScores\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROVIDER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"counter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"date\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"account\",\"type\":\"string\"}],\"name\":\"getScores\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"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\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"hash_\",\"type\":\"string\"}],\"name\":\"issue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"date\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"cid\",\"type\":\"string\"}],\"name\":\"updateScores\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"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.\"}],\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"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`)\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers.\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`.\"},\"URI(string,uint256)\":{\"details\":\"Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. If an {URI} event was emitted for `id`, the standard https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value returned by {IERC1155MetadataURI-uri}.\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"See {IERC1155-balanceOf}.\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"See {IERC1155-balanceOfBatch}. Requirements: - `accounts` and `ids` must have the same length.\"},\"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`.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC1155-isApprovedForAll}.\"},\"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.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155-safeBatchTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC1155-setApprovalForAll}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Engagement.sol\":\"Engagement\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\":{\"keccak256\":\"0xd9b0b8ee1ac6dfee14eb1ad4383a4739dbaa0f2036594bb3a16f0408085dadde\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6309805132e519162d1134c67df22dd963323a9208b4f41344a4c13ed63c1026\",\"dweb:/ipfs/QmTBPHnf6qbtAD4NVnKVFmubUHRqMDPLkseR6apxTUpsQo\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182\",\"dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xb69597a63b202e28401128bed6a6d259e8730191274471af7303eafb247881a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://25addbda49a578b3318130585601344c5149a5549d749adf88e9685349a46b23\",\"dweb:/ipfs/Qme2DuD8gpsve1ZvaSMQpBwMdpU7yAtekDwr7gUp8dX4zX\"]},\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0xe92b5e199b963d108ad6e06feeede151ba23849e0d064956535489ff967ffe68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://280e17738a67b06dae02fec32982bd48a8ab71d8df95e9975ae03532634bc522\",\"dweb:/ipfs/QmecjsNcFgy2mMjuNfRDkLpAYMRWnh5o73fw1Bj2rCso2z\"]},\"@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x8806d620b6571932b662cfd48fbd518d4f70df1f88a23b5724cacde64a77bda1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8043304c8f9e1c1dc4a41935efa067daa77ad7abbae1fda41f015d53fbf327a5\",\"dweb:/ipfs/QmTrF2hSkRZoN9EEu8zdEhBpGNZ7RxzCdXf9ydzc2HQ3tM\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"contracts/Engagement.sol\":{\"keccak256\":\"0x6710a23a91c11354c9dcad1f5bb8d2b0fb02b67bdd2e1d6609cae5b24e4e667b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a552207837ebc876a1c6817ccd2414b3fd078ac74a9640f7099b217485c44d9a\",\"dweb:/ipfs/QmUnsX529xEnKi5MgP4GfBnYS8drS2pSuYXsGbiTgKu1Fs\"]},\"contracts/IEngagement.sol\":{\"keccak256\":\"0xac39a35729036cfb44ccdf60cbe4b888b00cd4433b220ee00a08b36dff921443\",\"urls\":[\"bzz-raw://92aadd9301b919d6593a608dc19d9f52fed7afbe07859240f412e6eaf6ea16bb\",\"dweb:/ipfs/QmVm2J1HQhcQW85m58cSAiJ6N1AyJnQ1xxWxJcR6WG2z34\"]}},\"version\":1}" - } - }, - "contracts/IEngagement.sol": { - "IEngagement": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "MintLimit", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "NotAllowed", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "NotFound", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "Burn", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Issue", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "Mint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "date", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "string", - "name": "cid", - "type": "string" - } - ], - "name": "UpdateScores", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "counter", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "date", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "string", - "name": "account", - "type": "string" - } - ], - "name": "getScores", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "hash", - "type": "string" - } - ], - "name": "issue", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "date", - "type": "uint256" - }, - { - "internalType": "string", - "name": "cid", - "type": "string" - } - ], - "name": "updateScores", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "burn(address,uint256,uint256)": "f5298aca", - "counter()": "61bc221a", - "getScores(uint256,uint256,string)": "c5afac66", - "issue(string)": "3cad9b0d", - "mint(address,uint256,uint256,bytes)": "731133e9", - "updateScores(uint256,string)": "1c4ce135" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"MintLimit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"NotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"NotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Issue\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"date\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"cid\",\"type\":\"string\"}],\"name\":\"UpdateScores\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"counter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"date\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"account\",\"type\":\"string\"}],\"name\":\"getScores\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"hash\",\"type\":\"string\"}],\"name\":\"issue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"date\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"cid\",\"type\":\"string\"}],\"name\":\"updateScores\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/IEngagement.sol\":\"IEngagement\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/IEngagement.sol\":{\"keccak256\":\"0xac39a35729036cfb44ccdf60cbe4b888b00cd4433b220ee00a08b36dff921443\",\"urls\":[\"bzz-raw://92aadd9301b919d6593a608dc19d9f52fed7afbe07859240f412e6eaf6ea16bb\",\"dweb:/ipfs/QmVm2J1HQhcQW85m58cSAiJ6N1AyJnQ1xxWxJcR6WG2z34\"]}},\"version\":1}" - } - }, - "contracts/Lock.sol": { - "Lock": { - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "_unlockTime", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "when", - "type": "uint256" - } - ], - "name": "Withdrawal", - "type": "event" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address payable", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "unlockTime", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": { - "@_3932": { - "entryPoint": null, - "id": 3932, - "parameterSlots": 1, - "returnSlots": 0 - }, - "abi_decode_t_uint256_fromMemory": { - "entryPoint": 219, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_uint256_fromMemory": { - "entryPoint": 240, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413_to_t_string_memory_ptr_fromStack": { - "entryPoint": 381, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 416, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "allocate_unbounded": { - "entryPoint": null, - "id": null, - "parameterSlots": 0, - "returnSlots": 1 - }, - "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { - "entryPoint": 285, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "cleanup_t_uint256": { - "entryPoint": 186, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { - "entryPoint": null, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { - "entryPoint": 181, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "store_literal_in_memory_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413": { - "entryPoint": 302, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "validator_revert_t_uint256": { - "entryPoint": 196, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - } - }, - "generatedSources": [ - { - "ast": { - "nativeSrc": "0:2248:18", - "nodeType": "YulBlock", - "src": "0:2248:18", - "statements": [ + "src": "33872:117:18" + }, + { + "body": { + "nativeSrc": "34046:118:18", + "nodeType": "YulBlock", + "src": "34046:118:18", + "statements": [ + { + "nativeSrc": "34056:68:18", + "nodeType": "YulVariableDeclaration", + "src": "34056:68:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "34105:1:18", + "nodeType": "YulLiteral", + "src": "34105:1:18", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nativeSrc": "34108:5:18", + "nodeType": "YulIdentifier", + "src": "34108:5:18" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "34101:3:18", + "nodeType": "YulIdentifier", + "src": "34101:3:18" + }, + "nativeSrc": "34101:13:18", + "nodeType": "YulFunctionCall", + "src": "34101:13:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "34120:1:18", + "nodeType": "YulLiteral", + "src": "34120:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "34116:3:18", + "nodeType": "YulIdentifier", + "src": "34116:3:18" + }, + "nativeSrc": "34116:6:18", + "nodeType": "YulFunctionCall", + "src": "34116:6:18" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "34072:28:18", + "nodeType": "YulIdentifier", + "src": "34072:28:18" + }, + "nativeSrc": "34072:51:18", + "nodeType": "YulFunctionCall", + "src": "34072:51:18" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "34068:3:18", + "nodeType": "YulIdentifier", + "src": "34068:3:18" + }, + "nativeSrc": "34068:56:18", + "nodeType": "YulFunctionCall", + "src": "34068:56:18" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "34060:4:18", + "nodeType": "YulTypedName", + "src": "34060:4:18", + "type": "" + } + ] + }, + { + "nativeSrc": "34133:25:18", + "nodeType": "YulAssignment", + "src": "34133:25:18", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "34147:4:18", + "nodeType": "YulIdentifier", + "src": "34147:4:18" + }, + { + "name": "mask", + "nativeSrc": "34153:4:18", + "nodeType": "YulIdentifier", + "src": "34153:4:18" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "34143:3:18", + "nodeType": "YulIdentifier", + "src": "34143:3:18" + }, + "nativeSrc": "34143:15:18", + "nodeType": "YulFunctionCall", + "src": "34143:15:18" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "34133:6:18", + "nodeType": "YulIdentifier", + "src": "34133:6:18" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nativeSrc": "33995:169:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "34023:4:18", + "nodeType": "YulTypedName", + "src": "34023:4:18", + "type": "" + }, + { + "name": "bytes", + "nativeSrc": "34029:5:18", + "nodeType": "YulTypedName", + "src": "34029:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "34039:6:18", + "nodeType": "YulTypedName", + "src": "34039:6:18", + "type": "" + } + ], + "src": "33995:169:18" + }, { "body": { - "nativeSrc": "47:35:18", + "nativeSrc": "34250:214:18", "nodeType": "YulBlock", - "src": "47:35:18", + "src": "34250:214:18", "statements": [ { - "nativeSrc": "57:19:18", + "nativeSrc": "34383:37:18", "nodeType": "YulAssignment", - "src": "57:19:18", + "src": "34383:37:18", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "34410:4:18", + "nodeType": "YulIdentifier", + "src": "34410:4:18" + }, + { + "name": "len", + "nativeSrc": "34416:3:18", + "nodeType": "YulIdentifier", + "src": "34416:3:18" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "34391:18:18", + "nodeType": "YulIdentifier", + "src": "34391:18:18" + }, + "nativeSrc": "34391:29:18", + "nodeType": "YulFunctionCall", + "src": "34391:29:18" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "34383:4:18", + "nodeType": "YulIdentifier", + "src": "34383:4:18" + } + ] + }, + { + "nativeSrc": "34429:29:18", + "nodeType": "YulAssignment", + "src": "34429:29:18", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "34440:4:18", + "nodeType": "YulIdentifier", + "src": "34440:4:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "34450:1:18", + "nodeType": "YulLiteral", + "src": "34450:1:18", + "type": "", + "value": "2" + }, + { + "name": "len", + "nativeSrc": "34453:3:18", + "nodeType": "YulIdentifier", + "src": "34453:3:18" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "34446:3:18", + "nodeType": "YulIdentifier", + "src": "34446:3:18" + }, + "nativeSrc": "34446:11:18", + "nodeType": "YulFunctionCall", + "src": "34446:11:18" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "34437:2:18", + "nodeType": "YulIdentifier", + "src": "34437:2:18" + }, + "nativeSrc": "34437:21:18", + "nodeType": "YulFunctionCall", + "src": "34437:21:18" + }, + "variableNames": [ + { + "name": "used", + "nativeSrc": "34429:4:18", + "nodeType": "YulIdentifier", + "src": "34429:4:18" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "34169:295:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "34231:4:18", + "nodeType": "YulTypedName", + "src": "34231:4:18", + "type": "" + }, + { + "name": "len", + "nativeSrc": "34237:3:18", + "nodeType": "YulTypedName", + "src": "34237:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nativeSrc": "34245:4:18", + "nodeType": "YulTypedName", + "src": "34245:4:18", + "type": "" + } + ], + "src": "34169:295:18" + }, + { + "body": { + "nativeSrc": "34561:1303:18", + "nodeType": "YulBlock", + "src": "34561:1303:18", + "statements": [ + { + "nativeSrc": "34572:51:18", + "nodeType": "YulVariableDeclaration", + "src": "34572:51:18", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "34619:3:18", + "nodeType": "YulIdentifier", + "src": "34619:3:18" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "34586:32:18", + "nodeType": "YulIdentifier", + "src": "34586:32:18" + }, + "nativeSrc": "34586:37:18", + "nodeType": "YulFunctionCall", + "src": "34586:37:18" + }, + "variables": [ + { + "name": "newLen", + "nativeSrc": "34576:6:18", + "nodeType": "YulTypedName", + "src": "34576:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "34708:22:18", + "nodeType": "YulBlock", + "src": "34708:22:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "34710:16:18", + "nodeType": "YulIdentifier", + "src": "34710:16:18" + }, + "nativeSrc": "34710:18:18", + "nodeType": "YulFunctionCall", + "src": "34710:18:18" + }, + "nativeSrc": "34710:18:18", + "nodeType": "YulExpressionStatement", + "src": "34710:18:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "34680:6:18", + "nodeType": "YulIdentifier", + "src": "34680:6:18" + }, + { + "kind": "number", + "nativeSrc": "34688:18:18", + "nodeType": "YulLiteral", + "src": "34688:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "34677:2:18", + "nodeType": "YulIdentifier", + "src": "34677:2:18" + }, + "nativeSrc": "34677:30:18", + "nodeType": "YulFunctionCall", + "src": "34677:30:18" + }, + "nativeSrc": "34674:56:18", + "nodeType": "YulIf", + "src": "34674:56:18" + }, + { + "nativeSrc": "34740:52:18", + "nodeType": "YulVariableDeclaration", + "src": "34740:52:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "34786:4:18", + "nodeType": "YulIdentifier", + "src": "34786:4:18" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "34780:5:18", + "nodeType": "YulIdentifier", + "src": "34780:5:18" + }, + "nativeSrc": "34780:11:18", + "nodeType": "YulFunctionCall", + "src": "34780:11:18" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "34754:25:18", + "nodeType": "YulIdentifier", + "src": "34754:25:18" + }, + "nativeSrc": "34754:38:18", + "nodeType": "YulFunctionCall", + "src": "34754:38:18" + }, + "variables": [ + { + "name": "oldLen", + "nativeSrc": "34744:6:18", + "nodeType": "YulTypedName", + "src": "34744:6:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "34885:4:18", + "nodeType": "YulIdentifier", + "src": "34885:4:18" + }, + { + "name": "oldLen", + "nativeSrc": "34891:6:18", + "nodeType": "YulIdentifier", + "src": "34891:6:18" + }, + { + "name": "newLen", + "nativeSrc": "34899:6:18", + "nodeType": "YulIdentifier", + "src": "34899:6:18" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "34839:45:18", + "nodeType": "YulIdentifier", + "src": "34839:45:18" + }, + "nativeSrc": "34839:67:18", + "nodeType": "YulFunctionCall", + "src": "34839:67:18" + }, + "nativeSrc": "34839:67:18", + "nodeType": "YulExpressionStatement", + "src": "34839:67:18" + }, + { + "nativeSrc": "34916:18:18", + "nodeType": "YulVariableDeclaration", + "src": "34916:18:18", + "value": { + "kind": "number", + "nativeSrc": "34933:1:18", + "nodeType": "YulLiteral", + "src": "34933:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nativeSrc": "34920:9:18", + "nodeType": "YulTypedName", + "src": "34920:9:18", + "type": "" + } + ] + }, + { + "nativeSrc": "34944:17:18", + "nodeType": "YulAssignment", + "src": "34944:17:18", "value": { + "kind": "number", + "nativeSrc": "34957:4:18", + "nodeType": "YulLiteral", + "src": "34957:4:18", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "34944:9:18", + "nodeType": "YulIdentifier", + "src": "34944:9:18" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "35008:611:18", + "nodeType": "YulBlock", + "src": "35008:611:18", + "statements": [ + { + "nativeSrc": "35022:37:18", + "nodeType": "YulVariableDeclaration", + "src": "35022:37:18", + "value": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "35041:6:18", + "nodeType": "YulIdentifier", + "src": "35041:6:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "35053:4:18", + "nodeType": "YulLiteral", + "src": "35053:4:18", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "35049:3:18", + "nodeType": "YulIdentifier", + "src": "35049:3:18" + }, + "nativeSrc": "35049:9:18", + "nodeType": "YulFunctionCall", + "src": "35049:9:18" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "35037:3:18", + "nodeType": "YulIdentifier", + "src": "35037:3:18" + }, + "nativeSrc": "35037:22:18", + "nodeType": "YulFunctionCall", + "src": "35037:22:18" + }, + "variables": [ + { + "name": "loopEnd", + "nativeSrc": "35026:7:18", + "nodeType": "YulTypedName", + "src": "35026:7:18", + "type": "" + } + ] + }, + { + "nativeSrc": "35073:51:18", + "nodeType": "YulVariableDeclaration", + "src": "35073:51:18", + "value": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "35119:4:18", + "nodeType": "YulIdentifier", + "src": "35119:4:18" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "35087:31:18", + "nodeType": "YulIdentifier", + "src": "35087:31:18" + }, + "nativeSrc": "35087:37:18", + "nodeType": "YulFunctionCall", + "src": "35087:37:18" + }, + "variables": [ + { + "name": "dstPtr", + "nativeSrc": "35077:6:18", + "nodeType": "YulTypedName", + "src": "35077:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "35137:10:18", + "nodeType": "YulVariableDeclaration", + "src": "35137:10:18", + "value": { + "kind": "number", + "nativeSrc": "35146:1:18", + "nodeType": "YulLiteral", + "src": "35146:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "35141:1:18", + "nodeType": "YulTypedName", + "src": "35141:1:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "35205:163:18", + "nodeType": "YulBlock", + "src": "35205:163:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "35230:6:18", + "nodeType": "YulIdentifier", + "src": "35230:6:18" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "35248:3:18", + "nodeType": "YulIdentifier", + "src": "35248:3:18" + }, + { + "name": "srcOffset", + "nativeSrc": "35253:9:18", + "nodeType": "YulIdentifier", + "src": "35253:9:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35244:3:18", + "nodeType": "YulIdentifier", + "src": "35244:3:18" + }, + "nativeSrc": "35244:19:18", + "nodeType": "YulFunctionCall", + "src": "35244:19:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "35238:5:18", + "nodeType": "YulIdentifier", + "src": "35238:5:18" + }, + "nativeSrc": "35238:26:18", + "nodeType": "YulFunctionCall", + "src": "35238:26:18" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "35223:6:18", + "nodeType": "YulIdentifier", + "src": "35223:6:18" + }, + "nativeSrc": "35223:42:18", + "nodeType": "YulFunctionCall", + "src": "35223:42:18" + }, + "nativeSrc": "35223:42:18", + "nodeType": "YulExpressionStatement", + "src": "35223:42:18" + }, + { + "nativeSrc": "35282:24:18", + "nodeType": "YulAssignment", + "src": "35282:24:18", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "35296:6:18", + "nodeType": "YulIdentifier", + "src": "35296:6:18" + }, + { + "kind": "number", + "nativeSrc": "35304:1:18", + "nodeType": "YulLiteral", + "src": "35304:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35292:3:18", + "nodeType": "YulIdentifier", + "src": "35292:3:18" + }, + "nativeSrc": "35292:14:18", + "nodeType": "YulFunctionCall", + "src": "35292:14:18" + }, + "variableNames": [ + { + "name": "dstPtr", + "nativeSrc": "35282:6:18", + "nodeType": "YulIdentifier", + "src": "35282:6:18" + } + ] + }, + { + "nativeSrc": "35323:31:18", + "nodeType": "YulAssignment", + "src": "35323:31:18", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nativeSrc": "35340:9:18", + "nodeType": "YulIdentifier", + "src": "35340:9:18" + }, + { + "kind": "number", + "nativeSrc": "35351:2:18", + "nodeType": "YulLiteral", + "src": "35351:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35336:3:18", + "nodeType": "YulIdentifier", + "src": "35336:3:18" + }, + "nativeSrc": "35336:18:18", + "nodeType": "YulFunctionCall", + "src": "35336:18:18" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "35323:9:18", + "nodeType": "YulIdentifier", + "src": "35323:9:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "35171:1:18", + "nodeType": "YulIdentifier", + "src": "35171:1:18" + }, + { + "name": "loopEnd", + "nativeSrc": "35174:7:18", + "nodeType": "YulIdentifier", + "src": "35174:7:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "35168:2:18", + "nodeType": "YulIdentifier", + "src": "35168:2:18" + }, + "nativeSrc": "35168:14:18", + "nodeType": "YulFunctionCall", + "src": "35168:14:18" + }, + "nativeSrc": "35160:208:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "35183:21:18", + "nodeType": "YulBlock", + "src": "35183:21:18", + "statements": [ + { + "nativeSrc": "35185:17:18", + "nodeType": "YulAssignment", + "src": "35185:17:18", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "35194:1:18", + "nodeType": "YulIdentifier", + "src": "35194:1:18" + }, + { + "kind": "number", + "nativeSrc": "35197:4:18", + "nodeType": "YulLiteral", + "src": "35197:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35190:3:18", + "nodeType": "YulIdentifier", + "src": "35190:3:18" + }, + "nativeSrc": "35190:12:18", + "nodeType": "YulFunctionCall", + "src": "35190:12:18" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "35185:1:18", + "nodeType": "YulIdentifier", + "src": "35185:1:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "35164:3:18", + "nodeType": "YulBlock", + "src": "35164:3:18", + "statements": [] + }, + "src": "35160:208:18" + }, + { + "body": { + "nativeSrc": "35404:156:18", + "nodeType": "YulBlock", + "src": "35404:156:18", + "statements": [ + { + "nativeSrc": "35422:43:18", + "nodeType": "YulVariableDeclaration", + "src": "35422:43:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "35449:3:18", + "nodeType": "YulIdentifier", + "src": "35449:3:18" + }, + { + "name": "srcOffset", + "nativeSrc": "35454:9:18", + "nodeType": "YulIdentifier", + "src": "35454:9:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35445:3:18", + "nodeType": "YulIdentifier", + "src": "35445:3:18" + }, + "nativeSrc": "35445:19:18", + "nodeType": "YulFunctionCall", + "src": "35445:19:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "35439:5:18", + "nodeType": "YulIdentifier", + "src": "35439:5:18" + }, + "nativeSrc": "35439:26:18", + "nodeType": "YulFunctionCall", + "src": "35439:26:18" + }, + "variables": [ + { + "name": "lastValue", + "nativeSrc": "35426:9:18", + "nodeType": "YulTypedName", + "src": "35426:9:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "35489:6:18", + "nodeType": "YulIdentifier", + "src": "35489:6:18" + }, + { + "arguments": [ + { + "name": "lastValue", + "nativeSrc": "35516:9:18", + "nodeType": "YulIdentifier", + "src": "35516:9:18" + }, + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "35531:6:18", + "nodeType": "YulIdentifier", + "src": "35531:6:18" + }, + { + "kind": "number", + "nativeSrc": "35539:4:18", + "nodeType": "YulLiteral", + "src": "35539:4:18", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "35527:3:18", + "nodeType": "YulIdentifier", + "src": "35527:3:18" + }, + "nativeSrc": "35527:17:18", + "nodeType": "YulFunctionCall", + "src": "35527:17:18" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "35497:18:18", + "nodeType": "YulIdentifier", + "src": "35497:18:18" + }, + "nativeSrc": "35497:48:18", + "nodeType": "YulFunctionCall", + "src": "35497:48:18" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "35482:6:18", + "nodeType": "YulIdentifier", + "src": "35482:6:18" + }, + "nativeSrc": "35482:64:18", + "nodeType": "YulFunctionCall", + "src": "35482:64:18" + }, + "nativeSrc": "35482:64:18", + "nodeType": "YulExpressionStatement", + "src": "35482:64:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nativeSrc": "35387:7:18", + "nodeType": "YulIdentifier", + "src": "35387:7:18" + }, + { + "name": "newLen", + "nativeSrc": "35396:6:18", + "nodeType": "YulIdentifier", + "src": "35396:6:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "35384:2:18", + "nodeType": "YulIdentifier", + "src": "35384:2:18" + }, + "nativeSrc": "35384:19:18", + "nodeType": "YulFunctionCall", + "src": "35384:19:18" + }, + "nativeSrc": "35381:179:18", + "nodeType": "YulIf", + "src": "35381:179:18" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "35580:4:18", + "nodeType": "YulIdentifier", + "src": "35580:4:18" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "35594:6:18", + "nodeType": "YulIdentifier", + "src": "35594:6:18" + }, + { + "kind": "number", + "nativeSrc": "35602:1:18", + "nodeType": "YulLiteral", + "src": "35602:1:18", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "35590:3:18", + "nodeType": "YulIdentifier", + "src": "35590:3:18" + }, + "nativeSrc": "35590:14:18", + "nodeType": "YulFunctionCall", + "src": "35590:14:18" + }, + { + "kind": "number", + "nativeSrc": "35606:1:18", + "nodeType": "YulLiteral", + "src": "35606:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35586:3:18", + "nodeType": "YulIdentifier", + "src": "35586:3:18" + }, + "nativeSrc": "35586:22:18", + "nodeType": "YulFunctionCall", + "src": "35586:22:18" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "35573:6:18", + "nodeType": "YulIdentifier", + "src": "35573:6:18" + }, + "nativeSrc": "35573:36:18", + "nodeType": "YulFunctionCall", + "src": "35573:36:18" + }, + "nativeSrc": "35573:36:18", + "nodeType": "YulExpressionStatement", + "src": "35573:36:18" + } + ] + }, + "nativeSrc": "35001:618:18", + "nodeType": "YulCase", + "src": "35001:618:18", + "value": { + "kind": "number", + "nativeSrc": "35006:1:18", + "nodeType": "YulLiteral", + "src": "35006:1:18", + "type": "", + "value": "1" + } + }, + { + "body": { + "nativeSrc": "35636:222:18", + "nodeType": "YulBlock", + "src": "35636:222:18", + "statements": [ + { + "nativeSrc": "35650:14:18", + "nodeType": "YulVariableDeclaration", + "src": "35650:14:18", + "value": { + "kind": "number", + "nativeSrc": "35663:1:18", + "nodeType": "YulLiteral", + "src": "35663:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "35654:5:18", + "nodeType": "YulTypedName", + "src": "35654:5:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "35687:67:18", + "nodeType": "YulBlock", + "src": "35687:67:18", + "statements": [ + { + "nativeSrc": "35705:35:18", + "nodeType": "YulAssignment", + "src": "35705:35:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "35724:3:18", + "nodeType": "YulIdentifier", + "src": "35724:3:18" + }, + { + "name": "srcOffset", + "nativeSrc": "35729:9:18", + "nodeType": "YulIdentifier", + "src": "35729:9:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35720:3:18", + "nodeType": "YulIdentifier", + "src": "35720:3:18" + }, + "nativeSrc": "35720:19:18", + "nodeType": "YulFunctionCall", + "src": "35720:19:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "35714:5:18", + "nodeType": "YulIdentifier", + "src": "35714:5:18" + }, + "nativeSrc": "35714:26:18", + "nodeType": "YulFunctionCall", + "src": "35714:26:18" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "35705:5:18", + "nodeType": "YulIdentifier", + "src": "35705:5:18" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nativeSrc": "35680:6:18", + "nodeType": "YulIdentifier", + "src": "35680:6:18" + }, + "nativeSrc": "35677:77:18", + "nodeType": "YulIf", + "src": "35677:77:18" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "35774:4:18", + "nodeType": "YulIdentifier", + "src": "35774:4:18" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "35833:5:18", + "nodeType": "YulIdentifier", + "src": "35833:5:18" + }, + { + "name": "newLen", + "nativeSrc": "35840:6:18", + "nodeType": "YulIdentifier", + "src": "35840:6:18" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "35780:52:18", + "nodeType": "YulIdentifier", + "src": "35780:52:18" + }, + "nativeSrc": "35780:67:18", + "nodeType": "YulFunctionCall", + "src": "35780:67:18" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "35767:6:18", + "nodeType": "YulIdentifier", + "src": "35767:6:18" + }, + "nativeSrc": "35767:81:18", + "nodeType": "YulFunctionCall", + "src": "35767:81:18" + }, + "nativeSrc": "35767:81:18", + "nodeType": "YulExpressionStatement", + "src": "35767:81:18" + } + ] + }, + "nativeSrc": "35628:230:18", + "nodeType": "YulCase", + "src": "35628:230:18", + "value": "default" + } + ], + "expression": { "arguments": [ + { + "name": "newLen", + "nativeSrc": "34981:6:18", + "nodeType": "YulIdentifier", + "src": "34981:6:18" + }, { "kind": "number", - "nativeSrc": "73:2:18", + "nativeSrc": "34989:2:18", "nodeType": "YulLiteral", - "src": "73:2:18", + "src": "34989:2:18", "type": "", - "value": "64" + "value": "31" } ], "functionName": { - "name": "mload", - "nativeSrc": "67:5:18", + "name": "gt", + "nativeSrc": "34978:2:18", "nodeType": "YulIdentifier", - "src": "67:5:18" + "src": "34978:2:18" }, - "nativeSrc": "67:9:18", + "nativeSrc": "34978:14:18", "nodeType": "YulFunctionCall", - "src": "67:9:18" + "src": "34978:14:18" }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "57:6:18", - "nodeType": "YulIdentifier", - "src": "57:6:18" - } - ] + "nativeSrc": "34971:887:18", + "nodeType": "YulSwitch", + "src": "34971:887:18" } ] }, - "name": "allocate_unbounded", - "nativeSrc": "7:75:18", + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nativeSrc": "34469:1395:18", "nodeType": "YulFunctionDefinition", - "returnVariables": [ + "parameters": [ { - "name": "memPtr", - "nativeSrc": "40:6:18", + "name": "slot", + "nativeSrc": "34550:4:18", "nodeType": "YulTypedName", - "src": "40:6:18", + "src": "34550:4:18", + "type": "" + }, + { + "name": "src", + "nativeSrc": "34556:3:18", + "nodeType": "YulTypedName", + "src": "34556:3:18", "type": "" } ], - "src": "7:75:18" + "src": "34469:1395:18" }, { "body": { - "nativeSrc": "177:28:18", + "nativeSrc": "35898:152:18", "nodeType": "YulBlock", - "src": "177:28:18", + "src": "35898:152:18", "statements": [ { "expression": { "arguments": [ { "kind": "number", - "nativeSrc": "194:1:18", + "nativeSrc": "35915:1:18", "nodeType": "YulLiteral", - "src": "194:1:18", + "src": "35915:1:18", "type": "", "value": "0" }, { "kind": "number", - "nativeSrc": "197:1:18", + "nativeSrc": "35918:77:18", "nodeType": "YulLiteral", - "src": "197:1:18", + "src": "35918:77:18", "type": "", - "value": "0" + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { - "name": "revert", - "nativeSrc": "187:6:18", + "name": "mstore", + "nativeSrc": "35908:6:18", "nodeType": "YulIdentifier", - "src": "187:6:18" + "src": "35908:6:18" }, - "nativeSrc": "187:12:18", + "nativeSrc": "35908:88:18", "nodeType": "YulFunctionCall", - "src": "187:12:18" + "src": "35908:88:18" }, - "nativeSrc": "187:12:18", + "nativeSrc": "35908:88:18", "nodeType": "YulExpressionStatement", - "src": "187:12:18" - } - ] - }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "88:117:18", - "nodeType": "YulFunctionDefinition", - "src": "88:117:18" - }, - { - "body": { - "nativeSrc": "300:28:18", - "nodeType": "YulBlock", - "src": "300:28:18", - "statements": [ + "src": "35908:88:18" + }, { "expression": { "arguments": [ { "kind": "number", - "nativeSrc": "317:1:18", + "nativeSrc": "36012:1:18", "nodeType": "YulLiteral", - "src": "317:1:18", + "src": "36012:1:18", "type": "", - "value": "0" + "value": "4" }, { "kind": "number", - "nativeSrc": "320:1:18", + "nativeSrc": "36015:4:18", "nodeType": "YulLiteral", - "src": "320:1:18", + "src": "36015:4:18", "type": "", - "value": "0" + "value": "0x11" } ], "functionName": { - "name": "revert", - "nativeSrc": "310:6:18", + "name": "mstore", + "nativeSrc": "36005:6:18", "nodeType": "YulIdentifier", - "src": "310:6:18" + "src": "36005:6:18" }, - "nativeSrc": "310:12:18", + "nativeSrc": "36005:15:18", "nodeType": "YulFunctionCall", - "src": "310:12:18" + "src": "36005:15:18" }, - "nativeSrc": "310:12:18", + "nativeSrc": "36005:15:18", "nodeType": "YulExpressionStatement", - "src": "310:12:18" - } - ] - }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "211:117:18", - "nodeType": "YulFunctionDefinition", - "src": "211:117:18" - }, - { - "body": { - "nativeSrc": "379:32:18", - "nodeType": "YulBlock", - "src": "379:32:18", - "statements": [ - { - "nativeSrc": "389:16:18", - "nodeType": "YulAssignment", - "src": "389:16:18", - "value": { - "name": "value", - "nativeSrc": "400:5:18", - "nodeType": "YulIdentifier", - "src": "400:5:18" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "389:7:18", - "nodeType": "YulIdentifier", - "src": "389:7:18" - } - ] - } - ] - }, - "name": "cleanup_t_uint256", - "nativeSrc": "334:77:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "361:5:18", - "nodeType": "YulTypedName", - "src": "361:5:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "371:7:18", - "nodeType": "YulTypedName", - "src": "371:7:18", - "type": "" - } - ], - "src": "334:77:18" - }, - { - "body": { - "nativeSrc": "460:79:18", - "nodeType": "YulBlock", - "src": "460:79:18", - "statements": [ + "src": "36005:15:18" + }, { - "body": { - "nativeSrc": "517:16:18", - "nodeType": "YulBlock", - "src": "517:16:18", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "526:1:18", - "nodeType": "YulLiteral", - "src": "526:1:18", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "529:1:18", - "nodeType": "YulLiteral", - "src": "529:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "519:6:18", - "nodeType": "YulIdentifier", - "src": "519:6:18" - }, - "nativeSrc": "519:12:18", - "nodeType": "YulFunctionCall", - "src": "519:12:18" - }, - "nativeSrc": "519:12:18", - "nodeType": "YulExpressionStatement", - "src": "519:12:18" - } - ] - }, - "condition": { + "expression": { "arguments": [ { - "arguments": [ - { - "name": "value", - "nativeSrc": "483:5:18", - "nodeType": "YulIdentifier", - "src": "483:5:18" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "508:5:18", - "nodeType": "YulIdentifier", - "src": "508:5:18" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "490:17:18", - "nodeType": "YulIdentifier", - "src": "490:17:18" - }, - "nativeSrc": "490:24:18", - "nodeType": "YulFunctionCall", - "src": "490:24:18" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "480:2:18", - "nodeType": "YulIdentifier", - "src": "480:2:18" - }, - "nativeSrc": "480:35:18", - "nodeType": "YulFunctionCall", - "src": "480:35:18" + "kind": "number", + "nativeSrc": "36036:1:18", + "nodeType": "YulLiteral", + "src": "36036:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "36039:4:18", + "nodeType": "YulLiteral", + "src": "36039:4:18", + "type": "", + "value": "0x24" } ], "functionName": { - "name": "iszero", - "nativeSrc": "473:6:18", + "name": "revert", + "nativeSrc": "36029:6:18", "nodeType": "YulIdentifier", - "src": "473:6:18" + "src": "36029:6:18" }, - "nativeSrc": "473:43:18", + "nativeSrc": "36029:15:18", "nodeType": "YulFunctionCall", - "src": "473:43:18" + "src": "36029:15:18" }, - "nativeSrc": "470:63:18", - "nodeType": "YulIf", - "src": "470:63:18" + "nativeSrc": "36029:15:18", + "nodeType": "YulExpressionStatement", + "src": "36029:15:18" } ] }, - "name": "validator_revert_t_uint256", - "nativeSrc": "417:122:18", + "name": "panic_error_0x11", + "nativeSrc": "35870:180:18", "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "453:5:18", - "nodeType": "YulTypedName", - "src": "453:5:18", - "type": "" - } - ], - "src": "417:122:18" + "src": "35870:180:18" }, { "body": { - "nativeSrc": "608:80:18", + "nativeSrc": "36100:147:18", "nodeType": "YulBlock", - "src": "608:80:18", + "src": "36100:147:18", "statements": [ { - "nativeSrc": "618:22:18", + "nativeSrc": "36110:25:18", "nodeType": "YulAssignment", - "src": "618:22:18", + "src": "36110:25:18", "value": { "arguments": [ { - "name": "offset", - "nativeSrc": "633:6:18", + "name": "x", + "nativeSrc": "36133:1:18", "nodeType": "YulIdentifier", - "src": "633:6:18" + "src": "36133:1:18" } ], "functionName": { - "name": "mload", - "nativeSrc": "627:5:18", + "name": "cleanup_t_uint256", + "nativeSrc": "36115:17:18", "nodeType": "YulIdentifier", - "src": "627:5:18" + "src": "36115:17:18" }, - "nativeSrc": "627:13:18", + "nativeSrc": "36115:20:18", "nodeType": "YulFunctionCall", - "src": "627:13:18" + "src": "36115:20:18" }, "variableNames": [ { - "name": "value", - "nativeSrc": "618:5:18", + "name": "x", + "nativeSrc": "36110:1:18", "nodeType": "YulIdentifier", - "src": "618:5:18" + "src": "36110:1:18" } ] }, { - "expression": { + "nativeSrc": "36144:25:18", + "nodeType": "YulAssignment", + "src": "36144:25:18", + "value": { "arguments": [ { - "name": "value", - "nativeSrc": "676:5:18", + "name": "y", + "nativeSrc": "36167:1:18", "nodeType": "YulIdentifier", - "src": "676:5:18" + "src": "36167:1:18" } ], "functionName": { - "name": "validator_revert_t_uint256", - "nativeSrc": "649:26:18", + "name": "cleanup_t_uint256", + "nativeSrc": "36149:17:18", "nodeType": "YulIdentifier", - "src": "649:26:18" + "src": "36149:17:18" }, - "nativeSrc": "649:33:18", + "nativeSrc": "36149:20:18", "nodeType": "YulFunctionCall", - "src": "649:33:18" + "src": "36149:20:18" }, - "nativeSrc": "649:33:18", - "nodeType": "YulExpressionStatement", - "src": "649:33:18" + "variableNames": [ + { + "name": "y", + "nativeSrc": "36144:1:18", + "nodeType": "YulIdentifier", + "src": "36144:1:18" + } + ] + }, + { + "nativeSrc": "36178:16:18", + "nodeType": "YulAssignment", + "src": "36178:16:18", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "36189:1:18", + "nodeType": "YulIdentifier", + "src": "36189:1:18" + }, + { + "name": "y", + "nativeSrc": "36192:1:18", + "nodeType": "YulIdentifier", + "src": "36192:1:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "36185:3:18", + "nodeType": "YulIdentifier", + "src": "36185:3:18" + }, + "nativeSrc": "36185:9:18", + "nodeType": "YulFunctionCall", + "src": "36185:9:18" + }, + "variableNames": [ + { + "name": "sum", + "nativeSrc": "36178:3:18", + "nodeType": "YulIdentifier", + "src": "36178:3:18" + } + ] + }, + { + "body": { + "nativeSrc": "36218:22:18", + "nodeType": "YulBlock", + "src": "36218:22:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "36220:16:18", + "nodeType": "YulIdentifier", + "src": "36220:16:18" + }, + "nativeSrc": "36220:18:18", + "nodeType": "YulFunctionCall", + "src": "36220:18:18" + }, + "nativeSrc": "36220:18:18", + "nodeType": "YulExpressionStatement", + "src": "36220:18:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nativeSrc": "36210:1:18", + "nodeType": "YulIdentifier", + "src": "36210:1:18" + }, + { + "name": "sum", + "nativeSrc": "36213:3:18", + "nodeType": "YulIdentifier", + "src": "36213:3:18" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "36207:2:18", + "nodeType": "YulIdentifier", + "src": "36207:2:18" + }, + "nativeSrc": "36207:10:18", + "nodeType": "YulFunctionCall", + "src": "36207:10:18" + }, + "nativeSrc": "36204:36:18", + "nodeType": "YulIf", + "src": "36204:36:18" } ] }, - "name": "abi_decode_t_uint256_fromMemory", - "nativeSrc": "545:143:18", + "name": "checked_add_t_uint256", + "nativeSrc": "36056:191:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", - "nativeSrc": "586:6:18", + "name": "x", + "nativeSrc": "36087:1:18", "nodeType": "YulTypedName", - "src": "586:6:18", + "src": "36087:1:18", "type": "" }, { - "name": "end", - "nativeSrc": "594:3:18", + "name": "y", + "nativeSrc": "36090:1:18", "nodeType": "YulTypedName", - "src": "594:3:18", + "src": "36090:1:18", "type": "" } ], "returnVariables": [ { - "name": "value", - "nativeSrc": "602:5:18", + "name": "sum", + "nativeSrc": "36096:3:18", "nodeType": "YulTypedName", - "src": "602:5:18", + "src": "36096:3:18", "type": "" } ], - "src": "545:143:18" + "src": "36056:191:18" }, { "body": { - "nativeSrc": "771:274:18", + "nativeSrc": "36351:124:18", "nodeType": "YulBlock", - "src": "771:274:18", + "src": "36351:124:18", "statements": [ { - "body": { - "nativeSrc": "817:83:18", - "nodeType": "YulBlock", - "src": "817:83:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "819:77:18", - "nodeType": "YulIdentifier", - "src": "819:77:18" - }, - "nativeSrc": "819:79:18", - "nodeType": "YulFunctionCall", - "src": "819:79:18" - }, - "nativeSrc": "819:79:18", - "nodeType": "YulExpressionStatement", - "src": "819:79:18" - } - ] - }, - "condition": { + "nativeSrc": "36361:26:18", + "nodeType": "YulAssignment", + "src": "36361:26:18", + "value": { "arguments": [ { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "792:7:18", - "nodeType": "YulIdentifier", - "src": "792:7:18" - }, - { - "name": "headStart", - "nativeSrc": "801:9:18", - "nodeType": "YulIdentifier", - "src": "801:9:18" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "788:3:18", - "nodeType": "YulIdentifier", - "src": "788:3:18" - }, - "nativeSrc": "788:23:18", - "nodeType": "YulFunctionCall", - "src": "788:23:18" + "name": "headStart", + "nativeSrc": "36373:9:18", + "nodeType": "YulIdentifier", + "src": "36373:9:18" }, { "kind": "number", - "nativeSrc": "813:2:18", + "nativeSrc": "36384:2:18", "nodeType": "YulLiteral", - "src": "813:2:18", + "src": "36384:2:18", "type": "", "value": "32" } ], "functionName": { - "name": "slt", - "nativeSrc": "784:3:18", + "name": "add", + "nativeSrc": "36369:3:18", "nodeType": "YulIdentifier", - "src": "784:3:18" + "src": "36369:3:18" }, - "nativeSrc": "784:32:18", + "nativeSrc": "36369:18:18", "nodeType": "YulFunctionCall", - "src": "784:32:18" + "src": "36369:18:18" }, - "nativeSrc": "781:119:18", - "nodeType": "YulIf", - "src": "781:119:18" + "variableNames": [ + { + "name": "tail", + "nativeSrc": "36361:4:18", + "nodeType": "YulIdentifier", + "src": "36361:4:18" + } + ] }, { - "nativeSrc": "910:128:18", - "nodeType": "YulBlock", - "src": "910:128:18", - "statements": [ - { - "nativeSrc": "925:15:18", - "nodeType": "YulVariableDeclaration", - "src": "925:15:18", - "value": { - "kind": "number", - "nativeSrc": "939:1:18", - "nodeType": "YulLiteral", - "src": "939:1:18", - "type": "", - "value": "0" + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "36441:6:18", + "nodeType": "YulIdentifier", + "src": "36441:6:18" }, - "variables": [ - { - "name": "offset", - "nativeSrc": "929:6:18", - "nodeType": "YulTypedName", - "src": "929:6:18", - "type": "" - } - ] - }, - { - "nativeSrc": "954:74:18", - "nodeType": "YulAssignment", - "src": "954:74:18", - "value": { + { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1000:9:18", - "nodeType": "YulIdentifier", - "src": "1000:9:18" - }, - { - "name": "offset", - "nativeSrc": "1011:6:18", - "nodeType": "YulIdentifier", - "src": "1011:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "996:3:18", - "nodeType": "YulIdentifier", - "src": "996:3:18" - }, - "nativeSrc": "996:22:18", - "nodeType": "YulFunctionCall", - "src": "996:22:18" + "name": "headStart", + "nativeSrc": "36454:9:18", + "nodeType": "YulIdentifier", + "src": "36454:9:18" }, { - "name": "dataEnd", - "nativeSrc": "1020:7:18", - "nodeType": "YulIdentifier", - "src": "1020:7:18" + "kind": "number", + "nativeSrc": "36465:1:18", + "nodeType": "YulLiteral", + "src": "36465:1:18", + "type": "", + "value": "0" } ], "functionName": { - "name": "abi_decode_t_uint256_fromMemory", - "nativeSrc": "964:31:18", + "name": "add", + "nativeSrc": "36450:3:18", "nodeType": "YulIdentifier", - "src": "964:31:18" + "src": "36450:3:18" }, - "nativeSrc": "964:64:18", + "nativeSrc": "36450:17:18", "nodeType": "YulFunctionCall", - "src": "964:64:18" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "954:6:18", - "nodeType": "YulIdentifier", - "src": "954:6:18" - } - ] - } - ] + "src": "36450:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "36397:43:18", + "nodeType": "YulIdentifier", + "src": "36397:43:18" + }, + "nativeSrc": "36397:71:18", + "nodeType": "YulFunctionCall", + "src": "36397:71:18" + }, + "nativeSrc": "36397:71:18", + "nodeType": "YulExpressionStatement", + "src": "36397:71:18" } ] }, - "name": "abi_decode_tuple_t_uint256_fromMemory", - "nativeSrc": "694:351:18", + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "36253:222:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", - "nativeSrc": "741:9:18", + "nativeSrc": "36323:9:18", "nodeType": "YulTypedName", - "src": "741:9:18", + "src": "36323:9:18", "type": "" }, { - "name": "dataEnd", - "nativeSrc": "752:7:18", + "name": "value0", + "nativeSrc": "36335:6:18", "nodeType": "YulTypedName", - "src": "752:7:18", + "src": "36335:6:18", "type": "" } ], "returnVariables": [ { - "name": "value0", - "nativeSrc": "764:6:18", + "name": "tail", + "nativeSrc": "36346:4:18", "nodeType": "YulTypedName", - "src": "764:6:18", + "src": "36346:4:18", "type": "" } ], - "src": "694:351:18" + "src": "36253:222:18" }, { "body": { - "nativeSrc": "1147:73:18", + "nativeSrc": "36509:152:18", "nodeType": "YulBlock", - "src": "1147:73:18", + "src": "36509:152:18", "statements": [ { "expression": { "arguments": [ { - "name": "pos", - "nativeSrc": "1164:3:18", - "nodeType": "YulIdentifier", - "src": "1164:3:18" + "kind": "number", + "nativeSrc": "36526:1:18", + "nodeType": "YulLiteral", + "src": "36526:1:18", + "type": "", + "value": "0" }, { - "name": "length", - "nativeSrc": "1169:6:18", - "nodeType": "YulIdentifier", - "src": "1169:6:18" + "kind": "number", + "nativeSrc": "36529:77:18", + "nodeType": "YulLiteral", + "src": "36529:77:18", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { "name": "mstore", - "nativeSrc": "1157:6:18", + "nativeSrc": "36519:6:18", "nodeType": "YulIdentifier", - "src": "1157:6:18" + "src": "36519:6:18" }, - "nativeSrc": "1157:19:18", + "nativeSrc": "36519:88:18", "nodeType": "YulFunctionCall", - "src": "1157:19:18" + "src": "36519:88:18" }, - "nativeSrc": "1157:19:18", + "nativeSrc": "36519:88:18", "nodeType": "YulExpressionStatement", - "src": "1157:19:18" + "src": "36519:88:18" }, { - "nativeSrc": "1185:29:18", - "nodeType": "YulAssignment", - "src": "1185:29:18", - "value": { + "expression": { "arguments": [ { - "name": "pos", - "nativeSrc": "1204:3:18", - "nodeType": "YulIdentifier", - "src": "1204:3:18" + "kind": "number", + "nativeSrc": "36623:1:18", + "nodeType": "YulLiteral", + "src": "36623:1:18", + "type": "", + "value": "4" }, { "kind": "number", - "nativeSrc": "1209:4:18", + "nativeSrc": "36626:4:18", "nodeType": "YulLiteral", - "src": "1209:4:18", + "src": "36626:4:18", "type": "", - "value": "0x20" + "value": "0x12" } ], "functionName": { - "name": "add", - "nativeSrc": "1200:3:18", + "name": "mstore", + "nativeSrc": "36616:6:18", "nodeType": "YulIdentifier", - "src": "1200:3:18" + "src": "36616:6:18" }, - "nativeSrc": "1200:14:18", + "nativeSrc": "36616:15:18", "nodeType": "YulFunctionCall", - "src": "1200:14:18" + "src": "36616:15:18" }, - "variableNames": [ - { - "name": "updated_pos", - "nativeSrc": "1185:11:18", - "nodeType": "YulIdentifier", - "src": "1185:11:18" - } - ] - } - ] - }, - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nativeSrc": "1051:169:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "1119:3:18", - "nodeType": "YulTypedName", - "src": "1119:3:18", - "type": "" - }, - { - "name": "length", - "nativeSrc": "1124:6:18", - "nodeType": "YulTypedName", - "src": "1124:6:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updated_pos", - "nativeSrc": "1135:11:18", - "nodeType": "YulTypedName", - "src": "1135:11:18", - "type": "" - } - ], - "src": "1051:169:18" - }, - { - "body": { - "nativeSrc": "1332:116:18", - "nodeType": "YulBlock", - "src": "1332:116:18", - "statements": [ + "nativeSrc": "36616:15:18", + "nodeType": "YulExpressionStatement", + "src": "36616:15:18" + }, { "expression": { "arguments": [ { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "1354:6:18", - "nodeType": "YulIdentifier", - "src": "1354:6:18" - }, - { - "kind": "number", - "nativeSrc": "1362:1:18", - "nodeType": "YulLiteral", - "src": "1362:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1350:3:18", - "nodeType": "YulIdentifier", - "src": "1350:3:18" - }, - "nativeSrc": "1350:14:18", - "nodeType": "YulFunctionCall", - "src": "1350:14:18" + "kind": "number", + "nativeSrc": "36647:1:18", + "nodeType": "YulLiteral", + "src": "36647:1:18", + "type": "", + "value": "0" }, { - "hexValue": "556e6c6f636b2074696d652073686f756c6420626520696e2074686520667574", - "kind": "string", - "nativeSrc": "1366:34:18", + "kind": "number", + "nativeSrc": "36650:4:18", "nodeType": "YulLiteral", - "src": "1366:34:18", + "src": "36650:4:18", "type": "", - "value": "Unlock time should be in the fut" + "value": "0x24" } ], "functionName": { - "name": "mstore", - "nativeSrc": "1343:6:18", + "name": "revert", + "nativeSrc": "36640:6:18", "nodeType": "YulIdentifier", - "src": "1343:6:18" + "src": "36640:6:18" }, - "nativeSrc": "1343:58:18", + "nativeSrc": "36640:15:18", "nodeType": "YulFunctionCall", - "src": "1343:58:18" + "src": "36640:15:18" }, - "nativeSrc": "1343:58:18", + "nativeSrc": "36640:15:18", "nodeType": "YulExpressionStatement", - "src": "1343:58:18" - }, + "src": "36640:15:18" + } + ] + }, + "name": "panic_error_0x12", + "nativeSrc": "36481:180:18", + "nodeType": "YulFunctionDefinition", + "src": "36481:180:18" + }, + { + "body": { + "nativeSrc": "36773:63:18", + "nodeType": "YulBlock", + "src": "36773:63:18", + "statements": [ { "expression": { "arguments": [ @@ -84607,112 +85817,112 @@ "arguments": [ { "name": "memPtr", - "nativeSrc": "1422:6:18", + "nativeSrc": "36795:6:18", "nodeType": "YulIdentifier", - "src": "1422:6:18" + "src": "36795:6:18" }, { "kind": "number", - "nativeSrc": "1430:2:18", + "nativeSrc": "36803:1:18", "nodeType": "YulLiteral", - "src": "1430:2:18", + "src": "36803:1:18", "type": "", - "value": "32" + "value": "0" } ], "functionName": { "name": "add", - "nativeSrc": "1418:3:18", + "nativeSrc": "36791:3:18", "nodeType": "YulIdentifier", - "src": "1418:3:18" + "src": "36791:3:18" }, - "nativeSrc": "1418:15:18", + "nativeSrc": "36791:14:18", "nodeType": "YulFunctionCall", - "src": "1418:15:18" + "src": "36791:14:18" }, { - "hexValue": "757265", + "hexValue": "5552492063616e6e6f7420626520656d707479", "kind": "string", - "nativeSrc": "1435:5:18", + "nativeSrc": "36807:21:18", "nodeType": "YulLiteral", - "src": "1435:5:18", + "src": "36807:21:18", "type": "", - "value": "ure" + "value": "URI cannot be empty" } ], "functionName": { "name": "mstore", - "nativeSrc": "1411:6:18", + "nativeSrc": "36784:6:18", "nodeType": "YulIdentifier", - "src": "1411:6:18" + "src": "36784:6:18" }, - "nativeSrc": "1411:30:18", + "nativeSrc": "36784:45:18", "nodeType": "YulFunctionCall", - "src": "1411:30:18" + "src": "36784:45:18" }, - "nativeSrc": "1411:30:18", + "nativeSrc": "36784:45:18", "nodeType": "YulExpressionStatement", - "src": "1411:30:18" + "src": "36784:45:18" } ] }, - "name": "store_literal_in_memory_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413", - "nativeSrc": "1226:222:18", + "name": "store_literal_in_memory_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231", + "nativeSrc": "36667:169:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "memPtr", - "nativeSrc": "1324:6:18", + "nativeSrc": "36765:6:18", "nodeType": "YulTypedName", - "src": "1324:6:18", + "src": "36765:6:18", "type": "" } ], - "src": "1226:222:18" + "src": "36667:169:18" }, { "body": { - "nativeSrc": "1600:220:18", + "nativeSrc": "36988:220:18", "nodeType": "YulBlock", - "src": "1600:220:18", + "src": "36988:220:18", "statements": [ { - "nativeSrc": "1610:74:18", + "nativeSrc": "36998:74:18", "nodeType": "YulAssignment", - "src": "1610:74:18", + "src": "36998:74:18", "value": { "arguments": [ { "name": "pos", - "nativeSrc": "1676:3:18", + "nativeSrc": "37064:3:18", "nodeType": "YulIdentifier", - "src": "1676:3:18" + "src": "37064:3:18" }, { "kind": "number", - "nativeSrc": "1681:2:18", + "nativeSrc": "37069:2:18", "nodeType": "YulLiteral", - "src": "1681:2:18", + "src": "37069:2:18", "type": "", - "value": "35" + "value": "19" } ], "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nativeSrc": "1617:58:18", + "nativeSrc": "37005:58:18", "nodeType": "YulIdentifier", - "src": "1617:58:18" + "src": "37005:58:18" }, - "nativeSrc": "1617:67:18", + "nativeSrc": "37005:67:18", "nodeType": "YulFunctionCall", - "src": "1617:67:18" + "src": "37005:67:18" }, "variableNames": [ { "name": "pos", - "nativeSrc": "1610:3:18", + "nativeSrc": "36998:3:18", "nodeType": "YulIdentifier", - "src": "1610:3:18" + "src": "36998:3:18" } ] }, @@ -84721,133 +85931,133 @@ "arguments": [ { "name": "pos", - "nativeSrc": "1782:3:18", + "nativeSrc": "37170:3:18", "nodeType": "YulIdentifier", - "src": "1782:3:18" + "src": "37170:3:18" } ], "functionName": { - "name": "store_literal_in_memory_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413", - "nativeSrc": "1693:88:18", + "name": "store_literal_in_memory_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231", + "nativeSrc": "37081:88:18", "nodeType": "YulIdentifier", - "src": "1693:88:18" + "src": "37081:88:18" }, - "nativeSrc": "1693:93:18", + "nativeSrc": "37081:93:18", "nodeType": "YulFunctionCall", - "src": "1693:93:18" + "src": "37081:93:18" }, - "nativeSrc": "1693:93:18", + "nativeSrc": "37081:93:18", "nodeType": "YulExpressionStatement", - "src": "1693:93:18" + "src": "37081:93:18" }, { - "nativeSrc": "1795:19:18", + "nativeSrc": "37183:19:18", "nodeType": "YulAssignment", - "src": "1795:19:18", + "src": "37183:19:18", "value": { "arguments": [ { "name": "pos", - "nativeSrc": "1806:3:18", + "nativeSrc": "37194:3:18", "nodeType": "YulIdentifier", - "src": "1806:3:18" + "src": "37194:3:18" }, { "kind": "number", - "nativeSrc": "1811:2:18", + "nativeSrc": "37199:2:18", "nodeType": "YulLiteral", - "src": "1811:2:18", + "src": "37199:2:18", "type": "", - "value": "64" + "value": "32" } ], "functionName": { "name": "add", - "nativeSrc": "1802:3:18", + "nativeSrc": "37190:3:18", "nodeType": "YulIdentifier", - "src": "1802:3:18" + "src": "37190:3:18" }, - "nativeSrc": "1802:12:18", + "nativeSrc": "37190:12:18", "nodeType": "YulFunctionCall", - "src": "1802:12:18" + "src": "37190:12:18" }, "variableNames": [ { "name": "end", - "nativeSrc": "1795:3:18", + "nativeSrc": "37183:3:18", "nodeType": "YulIdentifier", - "src": "1795:3:18" + "src": "37183:3:18" } ] } ] }, - "name": "abi_encode_t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413_to_t_string_memory_ptr_fromStack", - "nativeSrc": "1454:366:18", + "name": "abi_encode_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack", + "nativeSrc": "36842:366:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", - "nativeSrc": "1588:3:18", + "nativeSrc": "36976:3:18", "nodeType": "YulTypedName", - "src": "1588:3:18", + "src": "36976:3:18", "type": "" } ], "returnVariables": [ { "name": "end", - "nativeSrc": "1596:3:18", + "nativeSrc": "36984:3:18", "nodeType": "YulTypedName", - "src": "1596:3:18", + "src": "36984:3:18", "type": "" } ], - "src": "1454:366:18" + "src": "36842:366:18" }, { "body": { - "nativeSrc": "1997:248:18", + "nativeSrc": "37385:248:18", "nodeType": "YulBlock", - "src": "1997:248:18", + "src": "37385:248:18", "statements": [ { - "nativeSrc": "2007:26:18", + "nativeSrc": "37395:26:18", "nodeType": "YulAssignment", - "src": "2007:26:18", + "src": "37395:26:18", "value": { "arguments": [ { "name": "headStart", - "nativeSrc": "2019:9:18", + "nativeSrc": "37407:9:18", "nodeType": "YulIdentifier", - "src": "2019:9:18" + "src": "37407:9:18" }, { "kind": "number", - "nativeSrc": "2030:2:18", + "nativeSrc": "37418:2:18", "nodeType": "YulLiteral", - "src": "2030:2:18", + "src": "37418:2:18", "type": "", "value": "32" } ], "functionName": { "name": "add", - "nativeSrc": "2015:3:18", + "nativeSrc": "37403:3:18", "nodeType": "YulIdentifier", - "src": "2015:3:18" + "src": "37403:3:18" }, - "nativeSrc": "2015:18:18", + "nativeSrc": "37403:18:18", "nodeType": "YulFunctionCall", - "src": "2015:18:18" + "src": "37403:18:18" }, "variableNames": [ { "name": "tail", - "nativeSrc": "2007:4:18", + "nativeSrc": "37395:4:18", "nodeType": "YulIdentifier", - "src": "2007:4:18" + "src": "37395:4:18" } ] }, @@ -84855,425 +86065,244 @@ "expression": { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2054:9:18", - "nodeType": "YulIdentifier", - "src": "2054:9:18" - }, - { - "kind": "number", - "nativeSrc": "2065:1:18", - "nodeType": "YulLiteral", - "src": "2065:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2050:3:18", - "nodeType": "YulIdentifier", - "src": "2050:3:18" - }, - "nativeSrc": "2050:17:18", - "nodeType": "YulFunctionCall", - "src": "2050:17:18" - }, - { - "arguments": [ - { - "name": "tail", - "nativeSrc": "2073:4:18", - "nodeType": "YulIdentifier", - "src": "2073:4:18" - }, - { - "name": "headStart", - "nativeSrc": "2079:9:18", - "nodeType": "YulIdentifier", - "src": "2079:9:18" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "2069:3:18", - "nodeType": "YulIdentifier", - "src": "2069:3:18" - }, - "nativeSrc": "2069:20:18", - "nodeType": "YulFunctionCall", - "src": "2069:20:18" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2043:6:18", - "nodeType": "YulIdentifier", - "src": "2043:6:18" - }, - "nativeSrc": "2043:47:18", - "nodeType": "YulFunctionCall", - "src": "2043:47:18" - }, - "nativeSrc": "2043:47:18", - "nodeType": "YulExpressionStatement", - "src": "2043:47:18" - }, - { - "nativeSrc": "2099:139:18", - "nodeType": "YulAssignment", - "src": "2099:139:18", - "value": { - "arguments": [ - { - "name": "tail", - "nativeSrc": "2233:4:18", - "nodeType": "YulIdentifier", - "src": "2233:4:18" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413_to_t_string_memory_ptr_fromStack", - "nativeSrc": "2107:124:18", - "nodeType": "YulIdentifier", - "src": "2107:124:18" - }, - "nativeSrc": "2107:131:18", - "nodeType": "YulFunctionCall", - "src": "2107:131:18" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "2099:4:18", - "nodeType": "YulIdentifier", - "src": "2099:4:18" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413__to_t_string_memory_ptr__fromStack_reversed", - "nativeSrc": "1826:419:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1977:9:18", - "nodeType": "YulTypedName", - "src": "1977:9:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "1992:4:18", - "nodeType": "YulTypedName", - "src": "1992:4:18", - "type": "" - } - ], - "src": "1826:419:18" - } - ] - }, - "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function 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_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 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_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413(memPtr) {\n\n mstore(add(memPtr, 0), \"Unlock time should be in the fut\")\n\n mstore(add(memPtr, 32), \"ure\")\n\n }\n\n function abi_encode_t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n store_literal_in_memory_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", - "id": 18, - "language": "Yul", - "name": "#utility.yul" - } - ], - "linkReferences": {}, - "object": "60806040526040516105d83803806105d8833981810160405281019061002591906100f0565b804210610067576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161005e906101a0565b60405180910390fd5b8060008190555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506101c0565b600080fd5b6000819050919050565b6100cd816100ba565b81146100d857600080fd5b50565b6000815190506100ea816100c4565b92915050565b600060208284031215610106576101056100b5565b5b6000610114848285016100db565b91505092915050565b600082825260208201905092915050565b7f556e6c6f636b2074696d652073686f756c6420626520696e207468652066757460008201527f7572650000000000000000000000000000000000000000000000000000000000602082015250565b600061018a60238361011d565b91506101958261012e565b604082019050919050565b600060208201905081810360008301526101b98161017d565b9050919050565b610409806101cf6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063251c1aa3146100465780633ccfd60b146100645780638da5cb5b1461006e575b600080fd5b61004e61008c565b60405161005b919061024a565b60405180910390f35b61006c610092565b005b61007661020b565b60405161008391906102a6565b60405180910390f35b60005481565b6000544210156100d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ce9061031e565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015e9061038a565b60405180910390fd5b7fbf2ed60bd5b5965d685680c01195c9514e4382e28e3a5a2d2d5244bf59411b9347426040516101989291906103aa565b60405180910390a1600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610208573d6000803e3d6000fd5b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000819050919050565b61024481610231565b82525050565b600060208201905061025f600083018461023b565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061029082610265565b9050919050565b6102a081610285565b82525050565b60006020820190506102bb6000830184610297565b92915050565b600082825260208201905092915050565b7f596f752063616e27742077697468647261772079657400000000000000000000600082015250565b60006103086016836102c1565b9150610313826102d2565b602082019050919050565b60006020820190508181036000830152610337816102fb565b9050919050565b7f596f75206172656e277420746865206f776e6572000000000000000000000000600082015250565b60006103746014836102c1565b915061037f8261033e565b602082019050919050565b600060208201905081810360008301526103a381610367565b9050919050565b60006040820190506103bf600083018561023b565b6103cc602083018461023b565b939250505056fea264697066735822122022a2b65355af697b0725f7bcddf1c94be908ee67893e84bd3442d61fdc82585064736f6c63430008180033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x5D8 CODESIZE SUB DUP1 PUSH2 0x5D8 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x25 SWAP2 SWAP1 PUSH2 0xF0 JUMP JUMPDEST DUP1 TIMESTAMP LT PUSH2 0x67 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E SWAP1 PUSH2 0x1A0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 DUP2 SWAP1 SSTORE POP CALLER PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP PUSH2 0x1C0 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCD DUP2 PUSH2 0xBA JUMP JUMPDEST DUP2 EQ PUSH2 0xD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xEA DUP2 PUSH2 0xC4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x106 JUMPI PUSH2 0x105 PUSH2 0xB5 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x114 DUP5 DUP3 DUP6 ADD PUSH2 0xDB 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 0x556E6C6F636B2074696D652073686F756C6420626520696E2074686520667574 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7572650000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18A PUSH1 0x23 DUP4 PUSH2 0x11D JUMP JUMPDEST SWAP2 POP PUSH2 0x195 DUP3 PUSH2 0x12E JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1B9 DUP2 PUSH2 0x17D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x409 DUP1 PUSH2 0x1CF PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x251C1AA3 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x3CCFD60B EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x6E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x8C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x24A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6C PUSH2 0x92 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x76 PUSH2 0x20B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x83 SWAP2 SWAP1 PUSH2 0x2A6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD TIMESTAMP LT ISZERO PUSH2 0xD7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCE SWAP1 PUSH2 0x31E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x167 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15E SWAP1 PUSH2 0x38A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0xBF2ED60BD5B5965D685680C01195C9514E4382E28E3A5A2D2D5244BF59411B93 SELFBALANCE TIMESTAMP PUSH1 0x40 MLOAD PUSH2 0x198 SWAP3 SWAP2 SWAP1 PUSH2 0x3AA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC SELFBALANCE SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x208 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x244 DUP2 PUSH2 0x231 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x25F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x23B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x290 DUP3 PUSH2 0x265 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2A0 DUP2 PUSH2 0x285 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2BB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x297 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x596F752063616E27742077697468647261772079657400000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x308 PUSH1 0x16 DUP4 PUSH2 0x2C1 JUMP JUMPDEST SWAP2 POP PUSH2 0x313 DUP3 PUSH2 0x2D2 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x337 DUP2 PUSH2 0x2FB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x596F75206172656E277420746865206F776E6572000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x374 PUSH1 0x14 DUP4 PUSH2 0x2C1 JUMP JUMPDEST SWAP2 POP PUSH2 0x37F DUP3 PUSH2 0x33E JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3A3 DUP2 PUSH2 0x367 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3BF PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x23B JUMP JUMPDEST PUSH2 0x3CC PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x23B JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x22 LOG2 0xB6 MSTORE8 SSTORE 0xAF PUSH10 0x7B0725F7BCDDF1C94BE9 ADDMOD 0xEE PUSH8 0x893E84BD3442D61F 0xDC DUP3 PC POP PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", - "sourceMap": "141:866:17:-:0;;;271:238;;;;;;;;;;;;;;;;;;;;;:::i;:::-;358:11;340:15;:29;319:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;454:11;441:10;:24;;;;491:10;475:5;;:27;;;;;;;;;;;;;;;;;;271:238;141:866;;88:117:18;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:143::-;602:5;633:6;627:13;618:22;;649:33;676:5;649:33;:::i;:::-;545:143;;;;:::o;694:351::-;764:6;813:2;801:9;792:7;788:23;784:32;781:119;;;819:79;;:::i;:::-;781:119;939:1;964:64;1020:7;1011:6;1000:9;996:22;964:64;:::i;:::-;954:74;;910:128;694:351;;;;:::o;1051:169::-;1135:11;1169:6;1164:3;1157:19;1209:4;1204:3;1200:14;1185:29;;1051:169;;;;:::o;1226:222::-;1366:34;1362:1;1354:6;1350:14;1343:58;1435:5;1430:2;1422:6;1418:15;1411:30;1226:222;:::o;1454:366::-;1596:3;1617:67;1681:2;1676:3;1617:67;:::i;:::-;1610:74;;1693:93;1782:3;1693:93;:::i;:::-;1811:2;1806:3;1802:12;1795:19;;1454:366;;;:::o;1826:419::-;1992:4;2030:2;2019:9;2015:18;2007:26;;2079:9;2073:4;2069:20;2065:1;2054:9;2050:17;2043:47;2107:131;2233:4;2107:131;:::i;:::-;2099:139;;1826:419;;;:::o;141:866:17:-;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": { - "@owner_3900": { - "entryPoint": 523, - "id": 3900, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@unlockTime_3898": { - "entryPoint": 140, - "id": 3898, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@withdraw_3972": { - "entryPoint": 146, - "id": 3972, - "parameterSlots": 0, - "returnSlots": 0 - }, - "abi_encode_t_address_payable_to_t_address_payable_fromStack": { - "entryPoint": 663, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8_to_t_string_memory_ptr_fromStack": { - "entryPoint": 763, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a_to_t_string_memory_ptr_fromStack": { - "entryPoint": 871, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_t_uint256_to_t_uint256_fromStack": { - "entryPoint": 571, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_tuple_t_address_payable__to_t_address_payable__fromStack_reversed": { - "entryPoint": 678, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 798, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 906, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { - "entryPoint": 586, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed": { - "entryPoint": 938, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { - "entryPoint": 705, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "cleanup_t_address_payable": { - "entryPoint": 645, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_uint160": { - "entryPoint": 613, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_uint256": { - "entryPoint": 561, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "store_literal_in_memory_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8": { - "entryPoint": 722, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "store_literal_in_memory_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a": { - "entryPoint": 830, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - } - }, - "generatedSources": [ - { - "ast": { - "nativeSrc": "0:3550:18", - "nodeType": "YulBlock", - "src": "0:3550:18", - "statements": [ - { - "body": { - "nativeSrc": "52:32:18", - "nodeType": "YulBlock", - "src": "52:32:18", - "statements": [ + "arguments": [ + { + "name": "headStart", + "nativeSrc": "37442:9:18", + "nodeType": "YulIdentifier", + "src": "37442:9:18" + }, + { + "kind": "number", + "nativeSrc": "37453:1:18", + "nodeType": "YulLiteral", + "src": "37453:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "37438:3:18", + "nodeType": "YulIdentifier", + "src": "37438:3:18" + }, + "nativeSrc": "37438:17:18", + "nodeType": "YulFunctionCall", + "src": "37438:17:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "37461:4:18", + "nodeType": "YulIdentifier", + "src": "37461:4:18" + }, + { + "name": "headStart", + "nativeSrc": "37467:9:18", + "nodeType": "YulIdentifier", + "src": "37467:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "37457:3:18", + "nodeType": "YulIdentifier", + "src": "37457:3:18" + }, + "nativeSrc": "37457:20:18", + "nodeType": "YulFunctionCall", + "src": "37457:20:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "37431:6:18", + "nodeType": "YulIdentifier", + "src": "37431:6:18" + }, + "nativeSrc": "37431:47:18", + "nodeType": "YulFunctionCall", + "src": "37431:47:18" + }, + "nativeSrc": "37431:47:18", + "nodeType": "YulExpressionStatement", + "src": "37431:47:18" + }, { - "nativeSrc": "62:16:18", + "nativeSrc": "37487:139:18", "nodeType": "YulAssignment", - "src": "62:16:18", + "src": "37487:139:18", "value": { - "name": "value", - "nativeSrc": "73:5:18", - "nodeType": "YulIdentifier", - "src": "73:5:18" + "arguments": [ + { + "name": "tail", + "nativeSrc": "37621:4:18", + "nodeType": "YulIdentifier", + "src": "37621:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack", + "nativeSrc": "37495:124:18", + "nodeType": "YulIdentifier", + "src": "37495:124:18" + }, + "nativeSrc": "37495:131:18", + "nodeType": "YulFunctionCall", + "src": "37495:131:18" }, "variableNames": [ { - "name": "cleaned", - "nativeSrc": "62:7:18", + "name": "tail", + "nativeSrc": "37487:4:18", "nodeType": "YulIdentifier", - "src": "62:7:18" + "src": "37487:4:18" } ] } ] }, - "name": "cleanup_t_uint256", - "nativeSrc": "7:77:18", + "name": "abi_encode_tuple_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "37214:419:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", - "nativeSrc": "34:5:18", + "name": "headStart", + "nativeSrc": "37365:9:18", "nodeType": "YulTypedName", - "src": "34:5:18", + "src": "37365:9:18", "type": "" } ], "returnVariables": [ { - "name": "cleaned", - "nativeSrc": "44:7:18", + "name": "tail", + "nativeSrc": "37380:4:18", "nodeType": "YulTypedName", - "src": "44:7:18", + "src": "37380:4:18", "type": "" } ], - "src": "7:77:18" + "src": "37214:419:18" }, { "body": { - "nativeSrc": "155:53:18", + "nativeSrc": "37702:52:18", "nodeType": "YulBlock", - "src": "155:53:18", + "src": "37702:52:18", "statements": [ { "expression": { "arguments": [ { "name": "pos", - "nativeSrc": "172:3:18", + "nativeSrc": "37719:3:18", "nodeType": "YulIdentifier", - "src": "172:3:18" + "src": "37719:3:18" }, { "arguments": [ { "name": "value", - "nativeSrc": "195:5:18", + "nativeSrc": "37741:5:18", "nodeType": "YulIdentifier", - "src": "195:5:18" + "src": "37741:5:18" } ], "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "177:17:18", + "name": "cleanup_t_bytes4", + "nativeSrc": "37724:16:18", "nodeType": "YulIdentifier", - "src": "177:17:18" + "src": "37724:16:18" }, - "nativeSrc": "177:24:18", + "nativeSrc": "37724:23:18", "nodeType": "YulFunctionCall", - "src": "177:24:18" + "src": "37724:23:18" } ], "functionName": { "name": "mstore", - "nativeSrc": "165:6:18", + "nativeSrc": "37712:6:18", "nodeType": "YulIdentifier", - "src": "165:6:18" + "src": "37712:6:18" }, - "nativeSrc": "165:37:18", + "nativeSrc": "37712:36:18", "nodeType": "YulFunctionCall", - "src": "165:37:18" + "src": "37712:36:18" }, - "nativeSrc": "165:37:18", + "nativeSrc": "37712:36:18", "nodeType": "YulExpressionStatement", - "src": "165:37:18" + "src": "37712:36:18" } ] }, - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "90:118:18", + "name": "abi_encode_t_bytes4_to_t_bytes4_fromStack", + "nativeSrc": "37639:115:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", - "nativeSrc": "143:5:18", + "nativeSrc": "37690:5:18", "nodeType": "YulTypedName", - "src": "143:5:18", + "src": "37690:5:18", "type": "" }, { "name": "pos", - "nativeSrc": "150:3:18", + "nativeSrc": "37697:3:18", "nodeType": "YulTypedName", - "src": "150:3:18", + "src": "37697:3:18", "type": "" } ], - "src": "90:118:18" + "src": "37639:115:18" }, { "body": { - "nativeSrc": "312:124:18", + "nativeSrc": "37856:122:18", "nodeType": "YulBlock", - "src": "312:124:18", + "src": "37856:122:18", "statements": [ { - "nativeSrc": "322:26:18", + "nativeSrc": "37866:26:18", "nodeType": "YulAssignment", - "src": "322:26:18", + "src": "37866:26:18", "value": { "arguments": [ { "name": "headStart", - "nativeSrc": "334:9:18", + "nativeSrc": "37878:9:18", "nodeType": "YulIdentifier", - "src": "334:9:18" + "src": "37878:9:18" }, { "kind": "number", - "nativeSrc": "345:2:18", + "nativeSrc": "37889:2:18", "nodeType": "YulLiteral", - "src": "345:2:18", + "src": "37889:2:18", "type": "", "value": "32" } ], "functionName": { "name": "add", - "nativeSrc": "330:3:18", + "nativeSrc": "37874:3:18", "nodeType": "YulIdentifier", - "src": "330:3:18" + "src": "37874:3:18" }, - "nativeSrc": "330:18:18", + "nativeSrc": "37874:18:18", "nodeType": "YulFunctionCall", - "src": "330:18:18" + "src": "37874:18:18" }, "variableNames": [ { "name": "tail", - "nativeSrc": "322:4:18", + "nativeSrc": "37866:4:18", "nodeType": "YulIdentifier", - "src": "322:4:18" + "src": "37866:4:18" } ] }, @@ -85282,1030 +86311,1716 @@ "arguments": [ { "name": "value0", - "nativeSrc": "402:6:18", + "nativeSrc": "37944:6:18", "nodeType": "YulIdentifier", - "src": "402:6:18" + "src": "37944:6:18" }, { "arguments": [ { "name": "headStart", - "nativeSrc": "415:9:18", + "nativeSrc": "37957:9:18", "nodeType": "YulIdentifier", - "src": "415:9:18" + "src": "37957:9:18" }, { "kind": "number", - "nativeSrc": "426:1:18", + "nativeSrc": "37968:1:18", "nodeType": "YulLiteral", - "src": "426:1:18", + "src": "37968:1:18", "type": "", "value": "0" } ], "functionName": { "name": "add", - "nativeSrc": "411:3:18", + "nativeSrc": "37953:3:18", "nodeType": "YulIdentifier", - "src": "411:3:18" + "src": "37953:3:18" }, - "nativeSrc": "411:17:18", + "nativeSrc": "37953:17:18", "nodeType": "YulFunctionCall", - "src": "411:17:18" + "src": "37953:17:18" } ], "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "358:43:18", + "name": "abi_encode_t_bytes4_to_t_bytes4_fromStack", + "nativeSrc": "37902:41:18", "nodeType": "YulIdentifier", - "src": "358:43:18" + "src": "37902:41:18" }, - "nativeSrc": "358:71:18", + "nativeSrc": "37902:69:18", "nodeType": "YulFunctionCall", - "src": "358:71:18" + "src": "37902:69:18" }, - "nativeSrc": "358:71:18", + "nativeSrc": "37902:69:18", "nodeType": "YulExpressionStatement", - "src": "358:71:18" + "src": "37902:69:18" } ] }, - "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", - "nativeSrc": "214:222:18", + "name": "abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed", + "nativeSrc": "37760:218:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", - "nativeSrc": "284:9:18", + "nativeSrc": "37828:9:18", "nodeType": "YulTypedName", - "src": "284:9:18", + "src": "37828:9:18", "type": "" }, { "name": "value0", - "nativeSrc": "296:6:18", + "nativeSrc": "37840:6:18", "nodeType": "YulTypedName", - "src": "296:6:18", + "src": "37840:6:18", "type": "" } ], "returnVariables": [ { "name": "tail", - "nativeSrc": "307:4:18", + "nativeSrc": "37851:4:18", "nodeType": "YulTypedName", - "src": "307:4:18", + "src": "37851:4:18", "type": "" } ], - "src": "214:222:18" + "src": "37760:218:18" }, { "body": { - "nativeSrc": "487:81:18", + "nativeSrc": "38110:206:18", "nodeType": "YulBlock", - "src": "487:81:18", + "src": "38110:206:18", "statements": [ { - "nativeSrc": "497:65:18", + "nativeSrc": "38120:26:18", "nodeType": "YulAssignment", - "src": "497:65:18", + "src": "38120:26:18", "value": { "arguments": [ { - "name": "value", - "nativeSrc": "512:5:18", + "name": "headStart", + "nativeSrc": "38132:9:18", "nodeType": "YulIdentifier", - "src": "512:5:18" + "src": "38132:9:18" }, { "kind": "number", - "nativeSrc": "519:42:18", + "nativeSrc": "38143:2:18", "nodeType": "YulLiteral", - "src": "519:42:18", + "src": "38143:2:18", "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" + "value": "64" } ], "functionName": { - "name": "and", - "nativeSrc": "508:3:18", + "name": "add", + "nativeSrc": "38128:3:18", "nodeType": "YulIdentifier", - "src": "508:3:18" + "src": "38128:3:18" }, - "nativeSrc": "508:54:18", + "nativeSrc": "38128:18:18", "nodeType": "YulFunctionCall", - "src": "508:54:18" + "src": "38128:18:18" }, "variableNames": [ { - "name": "cleaned", - "nativeSrc": "497:7:18", + "name": "tail", + "nativeSrc": "38120:4:18", "nodeType": "YulIdentifier", - "src": "497:7:18" + "src": "38120:4:18" } ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "38200:6:18", + "nodeType": "YulIdentifier", + "src": "38200:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38213:9:18", + "nodeType": "YulIdentifier", + "src": "38213:9:18" + }, + { + "kind": "number", + "nativeSrc": "38224:1:18", + "nodeType": "YulLiteral", + "src": "38224:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38209:3:18", + "nodeType": "YulIdentifier", + "src": "38209:3:18" + }, + "nativeSrc": "38209:17:18", + "nodeType": "YulFunctionCall", + "src": "38209:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "38156:43:18", + "nodeType": "YulIdentifier", + "src": "38156:43:18" + }, + "nativeSrc": "38156:71:18", + "nodeType": "YulFunctionCall", + "src": "38156:71:18" + }, + "nativeSrc": "38156:71:18", + "nodeType": "YulExpressionStatement", + "src": "38156:71:18" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "38281:6:18", + "nodeType": "YulIdentifier", + "src": "38281:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38294:9:18", + "nodeType": "YulIdentifier", + "src": "38294:9:18" + }, + { + "kind": "number", + "nativeSrc": "38305:2:18", + "nodeType": "YulLiteral", + "src": "38305:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38290:3:18", + "nodeType": "YulIdentifier", + "src": "38290:3:18" + }, + "nativeSrc": "38290:18:18", + "nodeType": "YulFunctionCall", + "src": "38290:18:18" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "38237:43:18", + "nodeType": "YulIdentifier", + "src": "38237:43:18" + }, + "nativeSrc": "38237:72:18", + "nodeType": "YulFunctionCall", + "src": "38237:72:18" + }, + "nativeSrc": "38237:72:18", + "nodeType": "YulExpressionStatement", + "src": "38237:72:18" } ] }, - "name": "cleanup_t_uint160", - "nativeSrc": "442:126:18", + "name": "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed", + "nativeSrc": "37984:332:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", - "nativeSrc": "469:5:18", + "name": "headStart", + "nativeSrc": "38074:9:18", + "nodeType": "YulTypedName", + "src": "38074:9:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "38086:6:18", + "nodeType": "YulTypedName", + "src": "38086:6:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "38094:6:18", "nodeType": "YulTypedName", - "src": "469:5:18", + "src": "38094:6:18", "type": "" } ], "returnVariables": [ { - "name": "cleaned", - "nativeSrc": "479:7:18", + "name": "tail", + "nativeSrc": "38105:4:18", "nodeType": "YulTypedName", - "src": "479:7:18", + "src": "38105:4:18", "type": "" } ], - "src": "442:126:18" + "src": "37984:332:18" }, { "body": { - "nativeSrc": "627:51:18", + "nativeSrc": "38504:371:18", "nodeType": "YulBlock", - "src": "627:51:18", + "src": "38504:371:18", "statements": [ { - "nativeSrc": "637:35:18", + "nativeSrc": "38514:27:18", "nodeType": "YulAssignment", - "src": "637:35:18", + "src": "38514:27:18", "value": { "arguments": [ { - "name": "value", - "nativeSrc": "666:5:18", + "name": "headStart", + "nativeSrc": "38526:9:18", "nodeType": "YulIdentifier", - "src": "666:5:18" + "src": "38526:9:18" + }, + { + "kind": "number", + "nativeSrc": "38537:3:18", + "nodeType": "YulLiteral", + "src": "38537:3:18", + "type": "", + "value": "128" } ], "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "648:17:18", + "name": "add", + "nativeSrc": "38522:3:18", "nodeType": "YulIdentifier", - "src": "648:17:18" + "src": "38522:3:18" }, - "nativeSrc": "648:24:18", + "nativeSrc": "38522:19:18", "nodeType": "YulFunctionCall", - "src": "648:24:18" + "src": "38522:19:18" }, "variableNames": [ { - "name": "cleaned", - "nativeSrc": "637:7:18", + "name": "tail", + "nativeSrc": "38514:4:18", "nodeType": "YulIdentifier", - "src": "637:7:18" + "src": "38514:4:18" } ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "38595:6:18", + "nodeType": "YulIdentifier", + "src": "38595:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38608:9:18", + "nodeType": "YulIdentifier", + "src": "38608:9:18" + }, + { + "kind": "number", + "nativeSrc": "38619:1:18", + "nodeType": "YulLiteral", + "src": "38619:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38604:3:18", + "nodeType": "YulIdentifier", + "src": "38604:3:18" + }, + "nativeSrc": "38604:17:18", + "nodeType": "YulFunctionCall", + "src": "38604:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "38551:43:18", + "nodeType": "YulIdentifier", + "src": "38551:43:18" + }, + "nativeSrc": "38551:71:18", + "nodeType": "YulFunctionCall", + "src": "38551:71:18" + }, + "nativeSrc": "38551:71:18", + "nodeType": "YulExpressionStatement", + "src": "38551:71:18" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "38676:6:18", + "nodeType": "YulIdentifier", + "src": "38676:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38689:9:18", + "nodeType": "YulIdentifier", + "src": "38689:9:18" + }, + { + "kind": "number", + "nativeSrc": "38700:2:18", + "nodeType": "YulLiteral", + "src": "38700:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38685:3:18", + "nodeType": "YulIdentifier", + "src": "38685:3:18" + }, + "nativeSrc": "38685:18:18", + "nodeType": "YulFunctionCall", + "src": "38685:18:18" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "38632:43:18", + "nodeType": "YulIdentifier", + "src": "38632:43:18" + }, + "nativeSrc": "38632:72:18", + "nodeType": "YulFunctionCall", + "src": "38632:72:18" + }, + "nativeSrc": "38632:72:18", + "nodeType": "YulExpressionStatement", + "src": "38632:72:18" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "38758:6:18", + "nodeType": "YulIdentifier", + "src": "38758:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38771:9:18", + "nodeType": "YulIdentifier", + "src": "38771:9:18" + }, + { + "kind": "number", + "nativeSrc": "38782:2:18", + "nodeType": "YulLiteral", + "src": "38782:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38767:3:18", + "nodeType": "YulIdentifier", + "src": "38767:3:18" + }, + "nativeSrc": "38767:18:18", + "nodeType": "YulFunctionCall", + "src": "38767:18:18" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "38714:43:18", + "nodeType": "YulIdentifier", + "src": "38714:43:18" + }, + "nativeSrc": "38714:72:18", + "nodeType": "YulFunctionCall", + "src": "38714:72:18" + }, + "nativeSrc": "38714:72:18", + "nodeType": "YulExpressionStatement", + "src": "38714:72:18" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nativeSrc": "38840:6:18", + "nodeType": "YulIdentifier", + "src": "38840:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38853:9:18", + "nodeType": "YulIdentifier", + "src": "38853:9:18" + }, + { + "kind": "number", + "nativeSrc": "38864:2:18", + "nodeType": "YulLiteral", + "src": "38864:2:18", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38849:3:18", + "nodeType": "YulIdentifier", + "src": "38849:3:18" + }, + "nativeSrc": "38849:18:18", + "nodeType": "YulFunctionCall", + "src": "38849:18:18" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "38796:43:18", + "nodeType": "YulIdentifier", + "src": "38796:43:18" + }, + "nativeSrc": "38796:72:18", + "nodeType": "YulFunctionCall", + "src": "38796:72:18" + }, + "nativeSrc": "38796:72:18", + "nodeType": "YulExpressionStatement", + "src": "38796:72:18" } ] }, - "name": "cleanup_t_address_payable", - "nativeSrc": "574:104:18", + "name": "abi_encode_tuple_t_address_t_uint256_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256__fromStack_reversed", + "nativeSrc": "38322:553:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", - "nativeSrc": "609:5:18", + "name": "headStart", + "nativeSrc": "38452:9:18", + "nodeType": "YulTypedName", + "src": "38452:9:18", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "38464:6:18", + "nodeType": "YulTypedName", + "src": "38464:6:18", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "38472:6:18", + "nodeType": "YulTypedName", + "src": "38472:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "38480:6:18", + "nodeType": "YulTypedName", + "src": "38480:6:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "38488:6:18", "nodeType": "YulTypedName", - "src": "609:5:18", + "src": "38488:6:18", "type": "" } ], "returnVariables": [ { - "name": "cleaned", - "nativeSrc": "619:7:18", + "name": "tail", + "nativeSrc": "38499:4:18", "nodeType": "YulTypedName", - "src": "619:7:18", + "src": "38499:4:18", "type": "" } ], - "src": "574:104:18" + "src": "38322:553:18" }, { "body": { - "nativeSrc": "765:61:18", + "nativeSrc": "39107:408:18", "nodeType": "YulBlock", - "src": "765:61:18", + "src": "39107:408:18", "statements": [ + { + "nativeSrc": "39117:26:18", + "nodeType": "YulAssignment", + "src": "39117:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "39129:9:18", + "nodeType": "YulIdentifier", + "src": "39129:9:18" + }, + { + "kind": "number", + "nativeSrc": "39140:2:18", + "nodeType": "YulLiteral", + "src": "39140:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "39125:3:18", + "nodeType": "YulIdentifier", + "src": "39125:3:18" + }, + "nativeSrc": "39125:18:18", + "nodeType": "YulFunctionCall", + "src": "39125:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "39117:4:18", + "nodeType": "YulIdentifier", + "src": "39117:4:18" + } + ] + }, { "expression": { "arguments": [ { - "name": "pos", - "nativeSrc": "782:3:18", + "arguments": [ + { + "name": "headStart", + "nativeSrc": "39164:9:18", + "nodeType": "YulIdentifier", + "src": "39164:9:18" + }, + { + "kind": "number", + "nativeSrc": "39175:1:18", + "nodeType": "YulLiteral", + "src": "39175:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "39160:3:18", + "nodeType": "YulIdentifier", + "src": "39160:3:18" + }, + "nativeSrc": "39160:17:18", + "nodeType": "YulFunctionCall", + "src": "39160:17:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "39183:4:18", + "nodeType": "YulIdentifier", + "src": "39183:4:18" + }, + { + "name": "headStart", + "nativeSrc": "39189:9:18", + "nodeType": "YulIdentifier", + "src": "39189:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "39179:3:18", + "nodeType": "YulIdentifier", + "src": "39179:3:18" + }, + "nativeSrc": "39179:20:18", + "nodeType": "YulFunctionCall", + "src": "39179:20:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "39153:6:18", + "nodeType": "YulIdentifier", + "src": "39153:6:18" + }, + "nativeSrc": "39153:47:18", + "nodeType": "YulFunctionCall", + "src": "39153:47:18" + }, + "nativeSrc": "39153:47:18", + "nodeType": "YulExpressionStatement", + "src": "39153:47:18" + }, + { + "nativeSrc": "39209:116:18", + "nodeType": "YulAssignment", + "src": "39209:116:18", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "39311:6:18", "nodeType": "YulIdentifier", - "src": "782:3:18" + "src": "39311:6:18" }, + { + "name": "tail", + "nativeSrc": "39320:4:18", + "nodeType": "YulIdentifier", + "src": "39320:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nativeSrc": "39217:93:18", + "nodeType": "YulIdentifier", + "src": "39217:93:18" + }, + "nativeSrc": "39217:108:18", + "nodeType": "YulFunctionCall", + "src": "39217:108:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "39209:4:18", + "nodeType": "YulIdentifier", + "src": "39209:4:18" + } + ] + }, + { + "expression": { + "arguments": [ { "arguments": [ { - "name": "value", - "nativeSrc": "813:5:18", + "name": "headStart", + "nativeSrc": "39346:9:18", + "nodeType": "YulIdentifier", + "src": "39346:9:18" + }, + { + "kind": "number", + "nativeSrc": "39357:2:18", + "nodeType": "YulLiteral", + "src": "39357:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "39342:3:18", + "nodeType": "YulIdentifier", + "src": "39342:3:18" + }, + "nativeSrc": "39342:18:18", + "nodeType": "YulFunctionCall", + "src": "39342:18:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "39366:4:18", + "nodeType": "YulIdentifier", + "src": "39366:4:18" + }, + { + "name": "headStart", + "nativeSrc": "39372:9:18", "nodeType": "YulIdentifier", - "src": "813:5:18" + "src": "39372:9:18" } ], "functionName": { - "name": "cleanup_t_address_payable", - "nativeSrc": "787:25:18", + "name": "sub", + "nativeSrc": "39362:3:18", "nodeType": "YulIdentifier", - "src": "787:25:18" + "src": "39362:3:18" }, - "nativeSrc": "787:32:18", + "nativeSrc": "39362:20:18", "nodeType": "YulFunctionCall", - "src": "787:32:18" + "src": "39362:20:18" } ], "functionName": { "name": "mstore", - "nativeSrc": "775:6:18", + "nativeSrc": "39335:6:18", "nodeType": "YulIdentifier", - "src": "775:6:18" + "src": "39335:6:18" }, - "nativeSrc": "775:45:18", + "nativeSrc": "39335:48:18", "nodeType": "YulFunctionCall", - "src": "775:45:18" + "src": "39335:48:18" }, - "nativeSrc": "775:45:18", + "nativeSrc": "39335:48:18", "nodeType": "YulExpressionStatement", - "src": "775:45:18" + "src": "39335:48:18" + }, + { + "nativeSrc": "39392:116:18", + "nodeType": "YulAssignment", + "src": "39392:116:18", + "value": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "39494:6:18", + "nodeType": "YulIdentifier", + "src": "39494:6:18" + }, + { + "name": "tail", + "nativeSrc": "39503:4:18", + "nodeType": "YulIdentifier", + "src": "39503:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nativeSrc": "39400:93:18", + "nodeType": "YulIdentifier", + "src": "39400:93:18" + }, + "nativeSrc": "39400:108:18", + "nodeType": "YulFunctionCall", + "src": "39400:108:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "39392:4:18", + "nodeType": "YulIdentifier", + "src": "39392:4:18" + } + ] } ] }, - "name": "abi_encode_t_address_payable_to_t_address_payable_fromStack", - "nativeSrc": "684:142:18", + "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", + "nativeSrc": "38881:634:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", - "nativeSrc": "753:5:18", + "name": "headStart", + "nativeSrc": "39071:9:18", "nodeType": "YulTypedName", - "src": "753:5:18", + "src": "39071:9:18", "type": "" }, { - "name": "pos", - "nativeSrc": "760:3:18", + "name": "value1", + "nativeSrc": "39083:6:18", + "nodeType": "YulTypedName", + "src": "39083:6:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "39091:6:18", + "nodeType": "YulTypedName", + "src": "39091:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "39102:4:18", "nodeType": "YulTypedName", - "src": "760:3:18", + "src": "39102:4:18", "type": "" } ], - "src": "684:142:18" + "src": "38881:634:18" }, { "body": { - "nativeSrc": "946:140:18", + "nativeSrc": "39579:40:18", "nodeType": "YulBlock", - "src": "946:140:18", + "src": "39579:40:18", "statements": [ { - "nativeSrc": "956:26:18", + "nativeSrc": "39590:22:18", "nodeType": "YulAssignment", - "src": "956:26:18", + "src": "39590:22:18", "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "968:9:18", - "nodeType": "YulIdentifier", - "src": "968:9:18" - }, + "arguments": [ { - "kind": "number", - "nativeSrc": "979:2:18", - "nodeType": "YulLiteral", - "src": "979:2:18", - "type": "", - "value": "32" + "name": "value", + "nativeSrc": "39606:5:18", + "nodeType": "YulIdentifier", + "src": "39606:5:18" } ], "functionName": { - "name": "add", - "nativeSrc": "964:3:18", + "name": "mload", + "nativeSrc": "39600:5:18", "nodeType": "YulIdentifier", - "src": "964:3:18" + "src": "39600:5:18" }, - "nativeSrc": "964:18:18", + "nativeSrc": "39600:12:18", "nodeType": "YulFunctionCall", - "src": "964:18:18" + "src": "39600:12:18" }, "variableNames": [ { - "name": "tail", - "nativeSrc": "956:4:18", + "name": "length", + "nativeSrc": "39590:6:18", "nodeType": "YulIdentifier", - "src": "956:4:18" + "src": "39590:6:18" } ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "1052:6:18", - "nodeType": "YulIdentifier", - "src": "1052:6:18" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1065:9:18", - "nodeType": "YulIdentifier", - "src": "1065:9:18" - }, - { - "kind": "number", - "nativeSrc": "1076:1:18", - "nodeType": "YulLiteral", - "src": "1076:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1061:3:18", - "nodeType": "YulIdentifier", - "src": "1061:3:18" - }, - "nativeSrc": "1061:17:18", - "nodeType": "YulFunctionCall", - "src": "1061:17:18" - } - ], - "functionName": { - "name": "abi_encode_t_address_payable_to_t_address_payable_fromStack", - "nativeSrc": "992:59:18", - "nodeType": "YulIdentifier", - "src": "992:59:18" - }, - "nativeSrc": "992:87:18", - "nodeType": "YulFunctionCall", - "src": "992:87:18" - }, - "nativeSrc": "992:87:18", - "nodeType": "YulExpressionStatement", - "src": "992:87:18" } ] }, - "name": "abi_encode_tuple_t_address_payable__to_t_address_payable__fromStack_reversed", - "nativeSrc": "832:254:18", + "name": "array_length_t_bytes_memory_ptr", + "nativeSrc": "39521:98:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nativeSrc": "918:9:18", - "nodeType": "YulTypedName", - "src": "918:9:18", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "930:6:18", + "name": "value", + "nativeSrc": "39562:5:18", "nodeType": "YulTypedName", - "src": "930:6:18", + "src": "39562:5:18", "type": "" } ], "returnVariables": [ { - "name": "tail", - "nativeSrc": "941:4:18", + "name": "length", + "nativeSrc": "39572:6:18", "nodeType": "YulTypedName", - "src": "941:4:18", + "src": "39572:6:18", "type": "" } ], - "src": "832:254:18" + "src": "39521:98:18" }, { "body": { - "nativeSrc": "1188:73:18", + "nativeSrc": "39720:73:18", "nodeType": "YulBlock", - "src": "1188:73:18", + "src": "39720:73:18", "statements": [ { "expression": { "arguments": [ { "name": "pos", - "nativeSrc": "1205:3:18", + "nativeSrc": "39737:3:18", "nodeType": "YulIdentifier", - "src": "1205:3:18" + "src": "39737:3:18" }, { "name": "length", - "nativeSrc": "1210:6:18", + "nativeSrc": "39742:6:18", "nodeType": "YulIdentifier", - "src": "1210:6:18" + "src": "39742:6:18" } ], "functionName": { "name": "mstore", - "nativeSrc": "1198:6:18", + "nativeSrc": "39730:6:18", "nodeType": "YulIdentifier", - "src": "1198:6:18" + "src": "39730:6:18" }, - "nativeSrc": "1198:19:18", + "nativeSrc": "39730:19:18", "nodeType": "YulFunctionCall", - "src": "1198:19:18" + "src": "39730:19:18" }, - "nativeSrc": "1198:19:18", + "nativeSrc": "39730:19:18", "nodeType": "YulExpressionStatement", - "src": "1198:19:18" + "src": "39730:19:18" }, { - "nativeSrc": "1226:29:18", + "nativeSrc": "39758:29:18", "nodeType": "YulAssignment", - "src": "1226:29:18", + "src": "39758:29:18", "value": { "arguments": [ { "name": "pos", - "nativeSrc": "1245:3:18", + "nativeSrc": "39777:3:18", "nodeType": "YulIdentifier", - "src": "1245:3:18" + "src": "39777:3:18" }, { "kind": "number", - "nativeSrc": "1250:4:18", + "nativeSrc": "39782:4:18", "nodeType": "YulLiteral", - "src": "1250:4:18", + "src": "39782:4:18", "type": "", "value": "0x20" } ], "functionName": { "name": "add", - "nativeSrc": "1241:3:18", + "nativeSrc": "39773:3:18", "nodeType": "YulIdentifier", - "src": "1241:3:18" + "src": "39773:3:18" }, - "nativeSrc": "1241:14:18", + "nativeSrc": "39773:14:18", "nodeType": "YulFunctionCall", - "src": "1241:14:18" + "src": "39773:14:18" }, "variableNames": [ { "name": "updated_pos", - "nativeSrc": "1226:11:18", + "nativeSrc": "39758:11:18", "nodeType": "YulIdentifier", - "src": "1226:11:18" + "src": "39758:11:18" } ] } ] }, - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nativeSrc": "1092:169:18", + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nativeSrc": "39625:168:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", - "nativeSrc": "1160:3:18", + "nativeSrc": "39692:3:18", "nodeType": "YulTypedName", - "src": "1160:3:18", + "src": "39692:3:18", "type": "" }, { "name": "length", - "nativeSrc": "1165:6:18", + "nativeSrc": "39697:6:18", "nodeType": "YulTypedName", - "src": "1165:6:18", + "src": "39697:6:18", "type": "" } ], "returnVariables": [ { "name": "updated_pos", - "nativeSrc": "1176:11:18", + "nativeSrc": "39708:11:18", "nodeType": "YulTypedName", - "src": "1176:11:18", + "src": "39708:11:18", "type": "" } ], - "src": "1092:169:18" + "src": "39625:168:18" }, { "body": { - "nativeSrc": "1373:66:18", + "nativeSrc": "39889:283:18", "nodeType": "YulBlock", - "src": "1373:66:18", + "src": "39889:283:18", "statements": [ { - "expression": { + "nativeSrc": "39899:52:18", + "nodeType": "YulVariableDeclaration", + "src": "39899:52:18", + "value": { "arguments": [ { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "1395:6:18", - "nodeType": "YulIdentifier", - "src": "1395:6:18" - }, - { - "kind": "number", - "nativeSrc": "1403:1:18", - "nodeType": "YulLiteral", - "src": "1403:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1391:3:18", - "nodeType": "YulIdentifier", - "src": "1391:3:18" - }, - "nativeSrc": "1391:14:18", - "nodeType": "YulFunctionCall", - "src": "1391:14:18" - }, - { - "hexValue": "596f752063616e277420776974686472617720796574", - "kind": "string", - "nativeSrc": "1407:24:18", - "nodeType": "YulLiteral", - "src": "1407:24:18", - "type": "", - "value": "You can't withdraw yet" + "name": "value", + "nativeSrc": "39945:5:18", + "nodeType": "YulIdentifier", + "src": "39945:5:18" } ], "functionName": { - "name": "mstore", - "nativeSrc": "1384:6:18", + "name": "array_length_t_bytes_memory_ptr", + "nativeSrc": "39913:31:18", "nodeType": "YulIdentifier", - "src": "1384:6:18" + "src": "39913:31:18" }, - "nativeSrc": "1384:48:18", + "nativeSrc": "39913:38:18", "nodeType": "YulFunctionCall", - "src": "1384:48:18" + "src": "39913:38:18" }, - "nativeSrc": "1384:48:18", - "nodeType": "YulExpressionStatement", - "src": "1384:48:18" - } - ] - }, - "name": "store_literal_in_memory_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8", - "nativeSrc": "1267:172:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nativeSrc": "1365:6:18", - "nodeType": "YulTypedName", - "src": "1365:6:18", - "type": "" - } - ], - "src": "1267:172:18" - }, - { - "body": { - "nativeSrc": "1591:220:18", - "nodeType": "YulBlock", - "src": "1591:220:18", - "statements": [ + "variables": [ + { + "name": "length", + "nativeSrc": "39903:6:18", + "nodeType": "YulTypedName", + "src": "39903:6:18", + "type": "" + } + ] + }, { - "nativeSrc": "1601:74:18", + "nativeSrc": "39960:77:18", "nodeType": "YulAssignment", - "src": "1601:74:18", + "src": "39960:77:18", "value": { "arguments": [ { "name": "pos", - "nativeSrc": "1667:3:18", + "nativeSrc": "40025:3:18", "nodeType": "YulIdentifier", - "src": "1667:3:18" + "src": "40025:3:18" }, { - "kind": "number", - "nativeSrc": "1672:2:18", - "nodeType": "YulLiteral", - "src": "1672:2:18", - "type": "", - "value": "22" + "name": "length", + "nativeSrc": "40030:6:18", + "nodeType": "YulIdentifier", + "src": "40030:6:18" } ], "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nativeSrc": "1608:58:18", + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nativeSrc": "39967:57:18", "nodeType": "YulIdentifier", - "src": "1608:58:18" + "src": "39967:57:18" }, - "nativeSrc": "1608:67:18", + "nativeSrc": "39967:70:18", "nodeType": "YulFunctionCall", - "src": "1608:67:18" + "src": "39967:70:18" }, "variableNames": [ { "name": "pos", - "nativeSrc": "1601:3:18", + "nativeSrc": "39960:3:18", "nodeType": "YulIdentifier", - "src": "1601:3:18" + "src": "39960:3:18" } ] }, { "expression": { "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "40085:5:18", + "nodeType": "YulIdentifier", + "src": "40085:5:18" + }, + { + "kind": "number", + "nativeSrc": "40092:4:18", + "nodeType": "YulLiteral", + "src": "40092:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "40081:3:18", + "nodeType": "YulIdentifier", + "src": "40081:3:18" + }, + "nativeSrc": "40081:16:18", + "nodeType": "YulFunctionCall", + "src": "40081:16:18" + }, { "name": "pos", - "nativeSrc": "1773:3:18", + "nativeSrc": "40099:3:18", + "nodeType": "YulIdentifier", + "src": "40099:3:18" + }, + { + "name": "length", + "nativeSrc": "40104:6:18", "nodeType": "YulIdentifier", - "src": "1773:3:18" + "src": "40104:6:18" } ], "functionName": { - "name": "store_literal_in_memory_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8", - "nativeSrc": "1684:88:18", + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "40046:34:18", "nodeType": "YulIdentifier", - "src": "1684:88:18" + "src": "40046:34:18" }, - "nativeSrc": "1684:93:18", + "nativeSrc": "40046:65:18", "nodeType": "YulFunctionCall", - "src": "1684:93:18" + "src": "40046:65:18" }, - "nativeSrc": "1684:93:18", + "nativeSrc": "40046:65:18", "nodeType": "YulExpressionStatement", - "src": "1684:93:18" + "src": "40046:65:18" }, { - "nativeSrc": "1786:19:18", + "nativeSrc": "40120:46:18", "nodeType": "YulAssignment", - "src": "1786:19:18", + "src": "40120:46:18", "value": { "arguments": [ { "name": "pos", - "nativeSrc": "1797:3:18", + "nativeSrc": "40131:3:18", "nodeType": "YulIdentifier", - "src": "1797:3:18" + "src": "40131:3:18" }, { - "kind": "number", - "nativeSrc": "1802:2:18", - "nodeType": "YulLiteral", - "src": "1802:2:18", - "type": "", - "value": "32" + "arguments": [ + { + "name": "length", + "nativeSrc": "40158:6:18", + "nodeType": "YulIdentifier", + "src": "40158:6:18" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "40136:21:18", + "nodeType": "YulIdentifier", + "src": "40136:21:18" + }, + "nativeSrc": "40136:29:18", + "nodeType": "YulFunctionCall", + "src": "40136:29:18" } ], "functionName": { "name": "add", - "nativeSrc": "1793:3:18", + "nativeSrc": "40127:3:18", "nodeType": "YulIdentifier", - "src": "1793:3:18" + "src": "40127:3:18" }, - "nativeSrc": "1793:12:18", + "nativeSrc": "40127:39:18", "nodeType": "YulFunctionCall", - "src": "1793:12:18" + "src": "40127:39:18" }, "variableNames": [ { "name": "end", - "nativeSrc": "1786:3:18", + "nativeSrc": "40120:3:18", "nodeType": "YulIdentifier", - "src": "1786:3:18" + "src": "40120:3:18" } ] } ] }, - "name": "abi_encode_t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8_to_t_string_memory_ptr_fromStack", - "nativeSrc": "1445:366:18", + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "39799:373:18", "nodeType": "YulFunctionDefinition", "parameters": [ + { + "name": "value", + "nativeSrc": "39870:5:18", + "nodeType": "YulTypedName", + "src": "39870:5:18", + "type": "" + }, { "name": "pos", - "nativeSrc": "1579:3:18", + "nativeSrc": "39877:3:18", "nodeType": "YulTypedName", - "src": "1579:3:18", + "src": "39877:3:18", "type": "" } ], "returnVariables": [ { "name": "end", - "nativeSrc": "1587:3:18", + "nativeSrc": "39885:3:18", "nodeType": "YulTypedName", - "src": "1587:3:18", + "src": "39885:3:18", "type": "" } ], - "src": "1445:366:18" + "src": "39799:373:18" }, { "body": { - "nativeSrc": "1988:248:18", + "nativeSrc": "40406:523:18", "nodeType": "YulBlock", - "src": "1988:248:18", + "src": "40406:523:18", "statements": [ { - "nativeSrc": "1998:26:18", + "nativeSrc": "40416:27:18", "nodeType": "YulAssignment", - "src": "1998:26:18", + "src": "40416:27:18", "value": { "arguments": [ { "name": "headStart", - "nativeSrc": "2010:9:18", + "nativeSrc": "40428:9:18", "nodeType": "YulIdentifier", - "src": "2010:9:18" + "src": "40428:9:18" }, { "kind": "number", - "nativeSrc": "2021:2:18", + "nativeSrc": "40439:3:18", "nodeType": "YulLiteral", - "src": "2021:2:18", + "src": "40439:3:18", "type": "", - "value": "32" + "value": "160" } ], "functionName": { "name": "add", - "nativeSrc": "2006:3:18", + "nativeSrc": "40424:3:18", "nodeType": "YulIdentifier", - "src": "2006:3:18" + "src": "40424:3:18" }, - "nativeSrc": "2006:18:18", + "nativeSrc": "40424:19:18", "nodeType": "YulFunctionCall", - "src": "2006:18:18" + "src": "40424:19:18" }, "variableNames": [ { "name": "tail", - "nativeSrc": "1998:4:18", + "nativeSrc": "40416:4:18", "nodeType": "YulIdentifier", - "src": "1998:4:18" + "src": "40416:4:18" } ] }, { "expression": { "arguments": [ + { + "name": "value0", + "nativeSrc": "40497:6:18", + "nodeType": "YulIdentifier", + "src": "40497:6:18" + }, { "arguments": [ { "name": "headStart", - "nativeSrc": "2045:9:18", + "nativeSrc": "40510:9:18", "nodeType": "YulIdentifier", - "src": "2045:9:18" + "src": "40510:9:18" }, { "kind": "number", - "nativeSrc": "2056:1:18", + "nativeSrc": "40521:1:18", "nodeType": "YulLiteral", - "src": "2056:1:18", + "src": "40521:1:18", "type": "", "value": "0" } ], "functionName": { "name": "add", - "nativeSrc": "2041:3:18", + "nativeSrc": "40506:3:18", "nodeType": "YulIdentifier", - "src": "2041:3:18" + "src": "40506:3:18" }, - "nativeSrc": "2041:17:18", + "nativeSrc": "40506:17:18", "nodeType": "YulFunctionCall", - "src": "2041:17:18" + "src": "40506:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "40453:43:18", + "nodeType": "YulIdentifier", + "src": "40453:43:18" + }, + "nativeSrc": "40453:71:18", + "nodeType": "YulFunctionCall", + "src": "40453:71:18" + }, + "nativeSrc": "40453:71:18", + "nodeType": "YulExpressionStatement", + "src": "40453:71:18" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "40578:6:18", + "nodeType": "YulIdentifier", + "src": "40578:6:18" }, { "arguments": [ { - "name": "tail", - "nativeSrc": "2064:4:18", + "name": "headStart", + "nativeSrc": "40591:9:18", "nodeType": "YulIdentifier", - "src": "2064:4:18" + "src": "40591:9:18" }, + { + "kind": "number", + "nativeSrc": "40602:2:18", + "nodeType": "YulLiteral", + "src": "40602:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "40587:3:18", + "nodeType": "YulIdentifier", + "src": "40587:3:18" + }, + "nativeSrc": "40587:18:18", + "nodeType": "YulFunctionCall", + "src": "40587:18:18" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "40534:43:18", + "nodeType": "YulIdentifier", + "src": "40534:43:18" + }, + "nativeSrc": "40534:72:18", + "nodeType": "YulFunctionCall", + "src": "40534:72:18" + }, + "nativeSrc": "40534:72:18", + "nodeType": "YulExpressionStatement", + "src": "40534:72:18" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "40660:6:18", + "nodeType": "YulIdentifier", + "src": "40660:6:18" + }, + { + "arguments": [ { "name": "headStart", - "nativeSrc": "2070:9:18", + "nativeSrc": "40673:9:18", "nodeType": "YulIdentifier", - "src": "2070:9:18" + "src": "40673:9:18" + }, + { + "kind": "number", + "nativeSrc": "40684:2:18", + "nodeType": "YulLiteral", + "src": "40684:2:18", + "type": "", + "value": "64" } ], "functionName": { - "name": "sub", - "nativeSrc": "2060:3:18", + "name": "add", + "nativeSrc": "40669:3:18", "nodeType": "YulIdentifier", - "src": "2060:3:18" + "src": "40669:3:18" }, - "nativeSrc": "2060:20:18", + "nativeSrc": "40669:18:18", "nodeType": "YulFunctionCall", - "src": "2060:20:18" + "src": "40669:18:18" } ], "functionName": { - "name": "mstore", - "nativeSrc": "2034:6:18", + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "40616:43:18", "nodeType": "YulIdentifier", - "src": "2034:6:18" + "src": "40616:43:18" }, - "nativeSrc": "2034:47:18", + "nativeSrc": "40616:72:18", "nodeType": "YulFunctionCall", - "src": "2034:47:18" + "src": "40616:72:18" }, - "nativeSrc": "2034:47:18", + "nativeSrc": "40616:72:18", "nodeType": "YulExpressionStatement", - "src": "2034:47:18" + "src": "40616:72:18" }, { - "nativeSrc": "2090:139:18", - "nodeType": "YulAssignment", - "src": "2090:139:18", - "value": { + "expression": { "arguments": [ { - "name": "tail", - "nativeSrc": "2224:4:18", + "name": "value3", + "nativeSrc": "40742:6:18", "nodeType": "YulIdentifier", - "src": "2224:4:18" + "src": "40742:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "40755:9:18", + "nodeType": "YulIdentifier", + "src": "40755:9:18" + }, + { + "kind": "number", + "nativeSrc": "40766:2:18", + "nodeType": "YulLiteral", + "src": "40766:2:18", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "40751:3:18", + "nodeType": "YulIdentifier", + "src": "40751:3:18" + }, + "nativeSrc": "40751:18:18", + "nodeType": "YulFunctionCall", + "src": "40751:18:18" } ], "functionName": { - "name": "abi_encode_t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8_to_t_string_memory_ptr_fromStack", - "nativeSrc": "2098:124:18", + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "40698:43:18", "nodeType": "YulIdentifier", - "src": "2098:124:18" + "src": "40698:43:18" }, - "nativeSrc": "2098:131:18", + "nativeSrc": "40698:72:18", "nodeType": "YulFunctionCall", - "src": "2098:131:18" + "src": "40698:72:18" }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "2090:4:18", - "nodeType": "YulIdentifier", - "src": "2090:4:18" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8__to_t_string_memory_ptr__fromStack_reversed", - "nativeSrc": "1817:419:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1968:9:18", - "nodeType": "YulTypedName", - "src": "1968:9:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "1983:4:18", - "nodeType": "YulTypedName", - "src": "1983:4:18", - "type": "" - } - ], - "src": "1817:419:18" - }, - { - "body": { - "nativeSrc": "2348:64:18", - "nodeType": "YulBlock", - "src": "2348:64:18", - "statements": [ + "nativeSrc": "40698:72:18", + "nodeType": "YulExpressionStatement", + "src": "40698:72:18" + }, { "expression": { "arguments": [ { "arguments": [ { - "name": "memPtr", - "nativeSrc": "2370:6:18", + "name": "headStart", + "nativeSrc": "40791:9:18", "nodeType": "YulIdentifier", - "src": "2370:6:18" + "src": "40791:9:18" }, { "kind": "number", - "nativeSrc": "2378:1:18", + "nativeSrc": "40802:3:18", "nodeType": "YulLiteral", - "src": "2378:1:18", + "src": "40802:3:18", "type": "", - "value": "0" + "value": "128" } ], "functionName": { "name": "add", - "nativeSrc": "2366:3:18", + "nativeSrc": "40787:3:18", "nodeType": "YulIdentifier", - "src": "2366:3:18" + "src": "40787:3:18" }, - "nativeSrc": "2366:14:18", + "nativeSrc": "40787:19:18", "nodeType": "YulFunctionCall", - "src": "2366:14:18" + "src": "40787:19:18" }, { - "hexValue": "596f75206172656e277420746865206f776e6572", - "kind": "string", - "nativeSrc": "2382:22:18", - "nodeType": "YulLiteral", - "src": "2382:22:18", - "type": "", - "value": "You aren't the owner" + "arguments": [ + { + "name": "tail", + "nativeSrc": "40812:4:18", + "nodeType": "YulIdentifier", + "src": "40812:4:18" + }, + { + "name": "headStart", + "nativeSrc": "40818:9:18", + "nodeType": "YulIdentifier", + "src": "40818:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "40808:3:18", + "nodeType": "YulIdentifier", + "src": "40808:3:18" + }, + "nativeSrc": "40808:20:18", + "nodeType": "YulFunctionCall", + "src": "40808:20:18" } ], "functionName": { "name": "mstore", - "nativeSrc": "2359:6:18", + "nativeSrc": "40780:6:18", "nodeType": "YulIdentifier", - "src": "2359:6:18" + "src": "40780:6:18" }, - "nativeSrc": "2359:46:18", + "nativeSrc": "40780:49:18", "nodeType": "YulFunctionCall", - "src": "2359:46:18" + "src": "40780:49:18" }, - "nativeSrc": "2359:46:18", + "nativeSrc": "40780:49:18", "nodeType": "YulExpressionStatement", - "src": "2359:46:18" + "src": "40780:49:18" + }, + { + "nativeSrc": "40838:84:18", + "nodeType": "YulAssignment", + "src": "40838:84:18", + "value": { + "arguments": [ + { + "name": "value4", + "nativeSrc": "40908:6:18", + "nodeType": "YulIdentifier", + "src": "40908:6:18" + }, + { + "name": "tail", + "nativeSrc": "40917:4:18", + "nodeType": "YulIdentifier", + "src": "40917:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "40846:61:18", + "nodeType": "YulIdentifier", + "src": "40846:61:18" + }, + "nativeSrc": "40846:76:18", + "nodeType": "YulFunctionCall", + "src": "40846:76:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "40838:4:18", + "nodeType": "YulIdentifier", + "src": "40838:4:18" + } + ] } ] }, - "name": "store_literal_in_memory_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a", - "nativeSrc": "2242:170:18", + "name": "abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed", + "nativeSrc": "40178:751:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "memPtr", - "nativeSrc": "2340:6:18", + "name": "headStart", + "nativeSrc": "40346:9:18", + "nodeType": "YulTypedName", + "src": "40346:9:18", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "40358:6:18", + "nodeType": "YulTypedName", + "src": "40358:6:18", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "40366:6:18", + "nodeType": "YulTypedName", + "src": "40366:6:18", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "40374:6:18", + "nodeType": "YulTypedName", + "src": "40374:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "40382:6:18", + "nodeType": "YulTypedName", + "src": "40382:6:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "40390:6:18", "nodeType": "YulTypedName", - "src": "2340:6:18", + "src": "40390:6:18", "type": "" } ], - "src": "2242:170:18" + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "40401:4:18", + "nodeType": "YulTypedName", + "src": "40401:4:18", + "type": "" + } + ], + "src": "40178:751:18" }, { "body": { - "nativeSrc": "2564:220:18", + "nativeSrc": "40997:79:18", "nodeType": "YulBlock", - "src": "2564:220:18", + "src": "40997:79:18", "statements": [ { - "nativeSrc": "2574:74:18", + "nativeSrc": "41007:22:18", "nodeType": "YulAssignment", - "src": "2574:74:18", + "src": "41007:22:18", "value": { "arguments": [ { - "name": "pos", - "nativeSrc": "2640:3:18", + "name": "offset", + "nativeSrc": "41022:6:18", "nodeType": "YulIdentifier", - "src": "2640:3:18" - }, - { - "kind": "number", - "nativeSrc": "2645:2:18", - "nodeType": "YulLiteral", - "src": "2645:2:18", - "type": "", - "value": "20" + "src": "41022:6:18" } ], "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nativeSrc": "2581:58:18", + "name": "mload", + "nativeSrc": "41016:5:18", "nodeType": "YulIdentifier", - "src": "2581:58:18" + "src": "41016:5:18" }, - "nativeSrc": "2581:67:18", + "nativeSrc": "41016:13:18", "nodeType": "YulFunctionCall", - "src": "2581:67:18" + "src": "41016:13:18" }, "variableNames": [ { - "name": "pos", - "nativeSrc": "2574:3:18", + "name": "value", + "nativeSrc": "41007:5:18", "nodeType": "YulIdentifier", - "src": "2574:3:18" + "src": "41007:5:18" } ] }, @@ -86313,454 +88028,792 @@ "expression": { "arguments": [ { - "name": "pos", - "nativeSrc": "2746:3:18", + "name": "value", + "nativeSrc": "41064:5:18", "nodeType": "YulIdentifier", - "src": "2746:3:18" + "src": "41064:5:18" } ], "functionName": { - "name": "store_literal_in_memory_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a", - "nativeSrc": "2657:88:18", + "name": "validator_revert_t_bytes4", + "nativeSrc": "41038:25:18", "nodeType": "YulIdentifier", - "src": "2657:88:18" + "src": "41038:25:18" }, - "nativeSrc": "2657:93:18", + "nativeSrc": "41038:32:18", "nodeType": "YulFunctionCall", - "src": "2657:93:18" + "src": "41038:32:18" }, - "nativeSrc": "2657:93:18", + "nativeSrc": "41038:32:18", "nodeType": "YulExpressionStatement", - "src": "2657:93:18" - }, + "src": "41038:32:18" + } + ] + }, + "name": "abi_decode_t_bytes4_fromMemory", + "nativeSrc": "40935:141:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "40975:6:18", + "nodeType": "YulTypedName", + "src": "40975:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "40983:3:18", + "nodeType": "YulTypedName", + "src": "40983:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "40991:5:18", + "nodeType": "YulTypedName", + "src": "40991:5:18", + "type": "" + } + ], + "src": "40935:141:18" + }, + { + "body": { + "nativeSrc": "41158:273:18", + "nodeType": "YulBlock", + "src": "41158:273:18", + "statements": [ { - "nativeSrc": "2759:19:18", - "nodeType": "YulAssignment", - "src": "2759:19:18", - "value": { + "body": { + "nativeSrc": "41204:83:18", + "nodeType": "YulBlock", + "src": "41204:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "41206:77:18", + "nodeType": "YulIdentifier", + "src": "41206:77:18" + }, + "nativeSrc": "41206:79:18", + "nodeType": "YulFunctionCall", + "src": "41206:79:18" + }, + "nativeSrc": "41206:79:18", + "nodeType": "YulExpressionStatement", + "src": "41206:79:18" + } + ] + }, + "condition": { "arguments": [ { - "name": "pos", - "nativeSrc": "2770:3:18", - "nodeType": "YulIdentifier", - "src": "2770:3:18" + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "41179:7:18", + "nodeType": "YulIdentifier", + "src": "41179:7:18" + }, + { + "name": "headStart", + "nativeSrc": "41188:9:18", + "nodeType": "YulIdentifier", + "src": "41188:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "41175:3:18", + "nodeType": "YulIdentifier", + "src": "41175:3:18" + }, + "nativeSrc": "41175:23:18", + "nodeType": "YulFunctionCall", + "src": "41175:23:18" }, { "kind": "number", - "nativeSrc": "2775:2:18", + "nativeSrc": "41200:2:18", "nodeType": "YulLiteral", - "src": "2775:2:18", + "src": "41200:2:18", "type": "", "value": "32" } ], "functionName": { - "name": "add", - "nativeSrc": "2766:3:18", + "name": "slt", + "nativeSrc": "41171:3:18", "nodeType": "YulIdentifier", - "src": "2766:3:18" + "src": "41171:3:18" }, - "nativeSrc": "2766:12:18", + "nativeSrc": "41171:32:18", "nodeType": "YulFunctionCall", - "src": "2766:12:18" + "src": "41171:32:18" }, - "variableNames": [ + "nativeSrc": "41168:119:18", + "nodeType": "YulIf", + "src": "41168:119:18" + }, + { + "nativeSrc": "41297:127:18", + "nodeType": "YulBlock", + "src": "41297:127:18", + "statements": [ { - "name": "end", - "nativeSrc": "2759:3:18", - "nodeType": "YulIdentifier", - "src": "2759:3:18" + "nativeSrc": "41312:15:18", + "nodeType": "YulVariableDeclaration", + "src": "41312:15:18", + "value": { + "kind": "number", + "nativeSrc": "41326:1:18", + "nodeType": "YulLiteral", + "src": "41326:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "41316:6:18", + "nodeType": "YulTypedName", + "src": "41316:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "41341:73:18", + "nodeType": "YulAssignment", + "src": "41341:73:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "41386:9:18", + "nodeType": "YulIdentifier", + "src": "41386:9:18" + }, + { + "name": "offset", + "nativeSrc": "41397:6:18", + "nodeType": "YulIdentifier", + "src": "41397:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "41382:3:18", + "nodeType": "YulIdentifier", + "src": "41382:3:18" + }, + "nativeSrc": "41382:22:18", + "nodeType": "YulFunctionCall", + "src": "41382:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "41406:7:18", + "nodeType": "YulIdentifier", + "src": "41406:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4_fromMemory", + "nativeSrc": "41351:30:18", + "nodeType": "YulIdentifier", + "src": "41351:30:18" + }, + "nativeSrc": "41351:63:18", + "nodeType": "YulFunctionCall", + "src": "41351:63:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "41341:6:18", + "nodeType": "YulIdentifier", + "src": "41341:6:18" + } + ] } ] } ] }, - "name": "abi_encode_t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a_to_t_string_memory_ptr_fromStack", - "nativeSrc": "2418:366:18", + "name": "abi_decode_tuple_t_bytes4_fromMemory", + "nativeSrc": "41082:349:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", - "nativeSrc": "2552:3:18", + "name": "headStart", + "nativeSrc": "41128:9:18", + "nodeType": "YulTypedName", + "src": "41128:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "41139:7:18", "nodeType": "YulTypedName", - "src": "2552:3:18", + "src": "41139:7:18", "type": "" } ], "returnVariables": [ { - "name": "end", - "nativeSrc": "2560:3:18", + "name": "value0", + "nativeSrc": "41151:6:18", "nodeType": "YulTypedName", - "src": "2560:3:18", + "src": "41151:6:18", "type": "" } ], - "src": "2418:366:18" + "src": "41082:349:18" }, { "body": { - "nativeSrc": "2961:248:18", + "nativeSrc": "41765:725:18", "nodeType": "YulBlock", - "src": "2961:248:18", + "src": "41765:725:18", "statements": [ { - "nativeSrc": "2971:26:18", + "nativeSrc": "41775:27:18", "nodeType": "YulAssignment", - "src": "2971:26:18", + "src": "41775:27:18", "value": { "arguments": [ { "name": "headStart", - "nativeSrc": "2983:9:18", + "nativeSrc": "41787:9:18", "nodeType": "YulIdentifier", - "src": "2983:9:18" + "src": "41787:9:18" }, { "kind": "number", - "nativeSrc": "2994:2:18", + "nativeSrc": "41798:3:18", "nodeType": "YulLiteral", - "src": "2994:2:18", + "src": "41798:3:18", "type": "", - "value": "32" + "value": "160" } ], "functionName": { "name": "add", - "nativeSrc": "2979:3:18", + "nativeSrc": "41783:3:18", "nodeType": "YulIdentifier", - "src": "2979:3:18" + "src": "41783:3:18" }, - "nativeSrc": "2979:18:18", + "nativeSrc": "41783:19:18", "nodeType": "YulFunctionCall", - "src": "2979:18:18" + "src": "41783:19:18" }, "variableNames": [ { "name": "tail", - "nativeSrc": "2971:4:18", + "nativeSrc": "41775:4:18", "nodeType": "YulIdentifier", - "src": "2971:4:18" + "src": "41775:4:18" } ] }, { "expression": { "arguments": [ + { + "name": "value0", + "nativeSrc": "41856:6:18", + "nodeType": "YulIdentifier", + "src": "41856:6:18" + }, { "arguments": [ { "name": "headStart", - "nativeSrc": "3018:9:18", + "nativeSrc": "41869:9:18", "nodeType": "YulIdentifier", - "src": "3018:9:18" + "src": "41869:9:18" }, { "kind": "number", - "nativeSrc": "3029:1:18", + "nativeSrc": "41880:1:18", "nodeType": "YulLiteral", - "src": "3029:1:18", + "src": "41880:1:18", "type": "", "value": "0" } ], "functionName": { "name": "add", - "nativeSrc": "3014:3:18", + "nativeSrc": "41865:3:18", "nodeType": "YulIdentifier", - "src": "3014:3:18" + "src": "41865:3:18" }, - "nativeSrc": "3014:17:18", + "nativeSrc": "41865:17:18", "nodeType": "YulFunctionCall", - "src": "3014:17:18" + "src": "41865:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "41812:43:18", + "nodeType": "YulIdentifier", + "src": "41812:43:18" + }, + "nativeSrc": "41812:71:18", + "nodeType": "YulFunctionCall", + "src": "41812:71:18" + }, + "nativeSrc": "41812:71:18", + "nodeType": "YulExpressionStatement", + "src": "41812:71:18" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "41937:6:18", + "nodeType": "YulIdentifier", + "src": "41937:6:18" }, { "arguments": [ { - "name": "tail", - "nativeSrc": "3037:4:18", + "name": "headStart", + "nativeSrc": "41950:9:18", "nodeType": "YulIdentifier", - "src": "3037:4:18" + "src": "41950:9:18" }, { - "name": "headStart", - "nativeSrc": "3043:9:18", - "nodeType": "YulIdentifier", - "src": "3043:9:18" + "kind": "number", + "nativeSrc": "41961:2:18", + "nodeType": "YulLiteral", + "src": "41961:2:18", + "type": "", + "value": "32" } ], "functionName": { - "name": "sub", - "nativeSrc": "3033:3:18", + "name": "add", + "nativeSrc": "41946:3:18", "nodeType": "YulIdentifier", - "src": "3033:3:18" + "src": "41946:3:18" }, - "nativeSrc": "3033:20:18", + "nativeSrc": "41946:18:18", "nodeType": "YulFunctionCall", - "src": "3033:20:18" + "src": "41946:18:18" } ], "functionName": { - "name": "mstore", - "nativeSrc": "3007:6:18", + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "41893:43:18", "nodeType": "YulIdentifier", - "src": "3007:6:18" + "src": "41893:43:18" }, - "nativeSrc": "3007:47:18", + "nativeSrc": "41893:72:18", "nodeType": "YulFunctionCall", - "src": "3007:47:18" + "src": "41893:72:18" }, - "nativeSrc": "3007:47:18", + "nativeSrc": "41893:72:18", "nodeType": "YulExpressionStatement", - "src": "3007:47:18" + "src": "41893:72:18" }, { - "nativeSrc": "3063:139:18", - "nodeType": "YulAssignment", - "src": "3063:139:18", - "value": { + "expression": { "arguments": [ { - "name": "tail", - "nativeSrc": "3197:4:18", - "nodeType": "YulIdentifier", - "src": "3197:4:18" + "arguments": [ + { + "name": "headStart", + "nativeSrc": "41986:9:18", + "nodeType": "YulIdentifier", + "src": "41986:9:18" + }, + { + "kind": "number", + "nativeSrc": "41997:2:18", + "nodeType": "YulLiteral", + "src": "41997:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "41982:3:18", + "nodeType": "YulIdentifier", + "src": "41982:3:18" + }, + "nativeSrc": "41982:18:18", + "nodeType": "YulFunctionCall", + "src": "41982:18:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "42006:4:18", + "nodeType": "YulIdentifier", + "src": "42006:4:18" + }, + { + "name": "headStart", + "nativeSrc": "42012:9:18", + "nodeType": "YulIdentifier", + "src": "42012:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "42002:3:18", + "nodeType": "YulIdentifier", + "src": "42002:3:18" + }, + "nativeSrc": "42002:20:18", + "nodeType": "YulFunctionCall", + "src": "42002:20:18" } ], "functionName": { - "name": "abi_encode_t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a_to_t_string_memory_ptr_fromStack", - "nativeSrc": "3071:124:18", + "name": "mstore", + "nativeSrc": "41975:6:18", "nodeType": "YulIdentifier", - "src": "3071:124:18" + "src": "41975:6:18" }, - "nativeSrc": "3071:131:18", + "nativeSrc": "41975:48:18", "nodeType": "YulFunctionCall", - "src": "3071:131:18" + "src": "41975:48:18" }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "3063:4:18", - "nodeType": "YulIdentifier", - "src": "3063:4:18" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a__to_t_string_memory_ptr__fromStack_reversed", - "nativeSrc": "2790:419:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "2941:9:18", - "nodeType": "YulTypedName", - "src": "2941:9:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "2956:4:18", - "nodeType": "YulTypedName", - "src": "2956:4:18", - "type": "" - } - ], - "src": "2790:419:18" - }, - { - "body": { - "nativeSrc": "3341:206:18", - "nodeType": "YulBlock", - "src": "3341:206:18", - "statements": [ + "nativeSrc": "41975:48:18", + "nodeType": "YulExpressionStatement", + "src": "41975:48:18" + }, { - "nativeSrc": "3351:26:18", + "nativeSrc": "42032:116:18", "nodeType": "YulAssignment", - "src": "3351:26:18", + "src": "42032:116:18", "value": { "arguments": [ { - "name": "headStart", - "nativeSrc": "3363:9:18", + "name": "value2", + "nativeSrc": "42134:6:18", "nodeType": "YulIdentifier", - "src": "3363:9:18" + "src": "42134:6:18" }, { - "kind": "number", - "nativeSrc": "3374:2:18", - "nodeType": "YulLiteral", - "src": "3374:2:18", - "type": "", - "value": "64" + "name": "tail", + "nativeSrc": "42143:4:18", + "nodeType": "YulIdentifier", + "src": "42143:4:18" } ], "functionName": { - "name": "add", - "nativeSrc": "3359:3:18", + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nativeSrc": "42040:93:18", "nodeType": "YulIdentifier", - "src": "3359:3:18" + "src": "42040:93:18" }, - "nativeSrc": "3359:18:18", + "nativeSrc": "42040:108:18", "nodeType": "YulFunctionCall", - "src": "3359:18:18" + "src": "42040:108:18" }, "variableNames": [ { "name": "tail", - "nativeSrc": "3351:4:18", + "nativeSrc": "42032:4:18", "nodeType": "YulIdentifier", - "src": "3351:4:18" + "src": "42032:4:18" } ] }, { "expression": { "arguments": [ - { - "name": "value0", - "nativeSrc": "3431:6:18", - "nodeType": "YulIdentifier", - "src": "3431:6:18" - }, { "arguments": [ { "name": "headStart", - "nativeSrc": "3444:9:18", + "nativeSrc": "42169:9:18", "nodeType": "YulIdentifier", - "src": "3444:9:18" + "src": "42169:9:18" }, { "kind": "number", - "nativeSrc": "3455:1:18", + "nativeSrc": "42180:2:18", "nodeType": "YulLiteral", - "src": "3455:1:18", + "src": "42180:2:18", "type": "", - "value": "0" + "value": "96" } ], "functionName": { "name": "add", - "nativeSrc": "3440:3:18", + "nativeSrc": "42165:3:18", + "nodeType": "YulIdentifier", + "src": "42165:3:18" + }, + "nativeSrc": "42165:18:18", + "nodeType": "YulFunctionCall", + "src": "42165:18:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "42189:4:18", + "nodeType": "YulIdentifier", + "src": "42189:4:18" + }, + { + "name": "headStart", + "nativeSrc": "42195:9:18", + "nodeType": "YulIdentifier", + "src": "42195:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "42185:3:18", "nodeType": "YulIdentifier", - "src": "3440:3:18" + "src": "42185:3:18" }, - "nativeSrc": "3440:17:18", + "nativeSrc": "42185:20:18", "nodeType": "YulFunctionCall", - "src": "3440:17:18" + "src": "42185:20:18" } ], "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "3387:43:18", + "name": "mstore", + "nativeSrc": "42158:6:18", "nodeType": "YulIdentifier", - "src": "3387:43:18" + "src": "42158:6:18" }, - "nativeSrc": "3387:71:18", + "nativeSrc": "42158:48:18", "nodeType": "YulFunctionCall", - "src": "3387:71:18" + "src": "42158:48:18" }, - "nativeSrc": "3387:71:18", + "nativeSrc": "42158:48:18", "nodeType": "YulExpressionStatement", - "src": "3387:71:18" + "src": "42158:48:18" }, { - "expression": { + "nativeSrc": "42215:116:18", + "nodeType": "YulAssignment", + "src": "42215:116:18", + "value": { "arguments": [ { - "name": "value1", - "nativeSrc": "3512:6:18", + "name": "value3", + "nativeSrc": "42317:6:18", "nodeType": "YulIdentifier", - "src": "3512:6:18" + "src": "42317:6:18" }, + { + "name": "tail", + "nativeSrc": "42326:4:18", + "nodeType": "YulIdentifier", + "src": "42326:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nativeSrc": "42223:93:18", + "nodeType": "YulIdentifier", + "src": "42223:93:18" + }, + "nativeSrc": "42223:108:18", + "nodeType": "YulFunctionCall", + "src": "42223:108:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "42215:4:18", + "nodeType": "YulIdentifier", + "src": "42215:4:18" + } + ] + }, + { + "expression": { + "arguments": [ { "arguments": [ { "name": "headStart", - "nativeSrc": "3525:9:18", + "nativeSrc": "42352:9:18", "nodeType": "YulIdentifier", - "src": "3525:9:18" + "src": "42352:9:18" }, { "kind": "number", - "nativeSrc": "3536:2:18", + "nativeSrc": "42363:3:18", "nodeType": "YulLiteral", - "src": "3536:2:18", + "src": "42363:3:18", "type": "", - "value": "32" + "value": "128" } ], "functionName": { "name": "add", - "nativeSrc": "3521:3:18", + "nativeSrc": "42348:3:18", + "nodeType": "YulIdentifier", + "src": "42348:3:18" + }, + "nativeSrc": "42348:19:18", + "nodeType": "YulFunctionCall", + "src": "42348:19:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "42373:4:18", + "nodeType": "YulIdentifier", + "src": "42373:4:18" + }, + { + "name": "headStart", + "nativeSrc": "42379:9:18", + "nodeType": "YulIdentifier", + "src": "42379:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "42369:3:18", "nodeType": "YulIdentifier", - "src": "3521:3:18" + "src": "42369:3:18" }, - "nativeSrc": "3521:18:18", + "nativeSrc": "42369:20:18", "nodeType": "YulFunctionCall", - "src": "3521:18:18" + "src": "42369:20:18" } ], "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "3468:43:18", + "name": "mstore", + "nativeSrc": "42341:6:18", "nodeType": "YulIdentifier", - "src": "3468:43:18" + "src": "42341:6:18" }, - "nativeSrc": "3468:72:18", + "nativeSrc": "42341:49:18", "nodeType": "YulFunctionCall", - "src": "3468:72:18" + "src": "42341:49:18" }, - "nativeSrc": "3468:72:18", + "nativeSrc": "42341:49:18", "nodeType": "YulExpressionStatement", - "src": "3468:72:18" + "src": "42341:49:18" + }, + { + "nativeSrc": "42399:84:18", + "nodeType": "YulAssignment", + "src": "42399:84:18", + "value": { + "arguments": [ + { + "name": "value4", + "nativeSrc": "42469:6:18", + "nodeType": "YulIdentifier", + "src": "42469:6:18" + }, + { + "name": "tail", + "nativeSrc": "42478:4:18", + "nodeType": "YulIdentifier", + "src": "42478:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "42407:61:18", + "nodeType": "YulIdentifier", + "src": "42407:61:18" + }, + "nativeSrc": "42407:76:18", + "nodeType": "YulFunctionCall", + "src": "42407:76:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "42399:4:18", + "nodeType": "YulIdentifier", + "src": "42399:4:18" + } + ] } ] }, - "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed", - "nativeSrc": "3215:332:18", + "name": "abi_encode_tuple_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed", + "nativeSrc": "41437:1053:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", - "nativeSrc": "3305:9:18", + "nativeSrc": "41705:9:18", + "nodeType": "YulTypedName", + "src": "41705:9:18", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "41717:6:18", + "nodeType": "YulTypedName", + "src": "41717:6:18", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "41725:6:18", + "nodeType": "YulTypedName", + "src": "41725:6:18", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "41733:6:18", "nodeType": "YulTypedName", - "src": "3305:9:18", + "src": "41733:6:18", "type": "" }, { "name": "value1", - "nativeSrc": "3317:6:18", + "nativeSrc": "41741:6:18", "nodeType": "YulTypedName", - "src": "3317:6:18", + "src": "41741:6:18", "type": "" }, { "name": "value0", - "nativeSrc": "3325:6:18", + "nativeSrc": "41749:6:18", "nodeType": "YulTypedName", - "src": "3325:6:18", + "src": "41749:6:18", "type": "" } ], "returnVariables": [ { "name": "tail", - "nativeSrc": "3336:4:18", + "nativeSrc": "41760:4:18", "nodeType": "YulTypedName", - "src": "3336:4:18", + "src": "41760:4:18", "type": "" } ], - "src": "3215:332:18" + "src": "41437:1053:18" } ] }, - "contents": "{\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address_payable(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_payable_to_t_address_payable_fromStack(value, pos) {\n mstore(pos, cleanup_t_address_payable(value))\n }\n\n function abi_encode_tuple_t_address_payable__to_t_address_payable__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_payable_to_t_address_payable_fromStack(value0, add(headStart, 0))\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_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8(memPtr) {\n\n mstore(add(memPtr, 0), \"You can't withdraw yet\")\n\n }\n\n function abi_encode_t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 22)\n store_literal_in_memory_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a(memPtr) {\n\n mstore(add(memPtr, 0), \"You aren't the owner\")\n\n }\n\n function abi_encode_t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 20)\n store_literal_in_memory_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n}\n", + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function 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 abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_array$_t_uint256_$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 // uint256[]\n function abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_uint256_$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_uint256(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // uint256[]\n function abi_decode_t_array$_t_uint256_$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_uint256_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_array$_t_uint256_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3 := abi_decode_t_array$_t_uint256_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value4 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_allocation_size_t_array$_t_address_$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 // address[]\n function abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_address_$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_address(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$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_address_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_array$_t_address_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_array$_t_uint256_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_array$_t_uint256_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encodeUpdatedPos_t_uint256_to_t_uint256(value0, pos) -> updatedPos {\n abi_encode_t_uint256_to_t_uint256(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // uint256[] -> uint256[]\n function abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_uint256_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_uint256_to_t_uint256(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_decode_tuple_t_addresst_uint256t_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function 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 abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_uint256t_string_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\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 function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value4 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function cleanup_t_rational_1_by_1(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_rational_1_by_1_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_rational_1_by_1(value)))\n }\n\n function abi_encode_t_rational_1_by_1_to_t_uint256_fromStack(value, pos) {\n mstore(pos, convert_t_rational_1_by_1_to_t_uint256(value))\n }\n\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_rational_1_by_1_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function store_literal_in_memory_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619(memPtr) {\n\n mstore(add(memPtr, 0), \"Account cannot be empty\")\n\n }\n\n function abi_encode_t_stringliteral_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 23)\n store_literal_in_memory_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619_to_t_string_memory_ptr_fromStack( tail)\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 array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n // string -> string\n function abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> ret {\n let slotValue := sload(value)\n let length := extract_byte_array_length(slotValue)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n switch and(slotValue, 1)\n case 0 {\n // short byte array\n mstore(pos, and(slotValue, not(0xff)))\n ret := add(pos, mul(length, iszero(iszero(length))))\n }\n case 1 {\n // long byte array\n let dataPos := array_dataslot_t_string_storage(value)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) } {\n mstore(add(pos, i), sload(dataPos))\n dataPos := add(dataPos, 1)\n }\n ret := add(pos, length)\n }\n }\n\n function store_literal_in_memory_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7(memPtr) {\n\n mstore(add(memPtr, 0), \"/api/v1/nft/\")\n\n }\n\n function abi_encode_t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 12)\n store_literal_in_memory_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7(pos)\n end := add(pos, 12)\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function store_literal_in_memory_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527(memPtr) {\n\n mstore(add(memPtr, 0), \"/\")\n\n }\n\n function abi_encode_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 1)\n store_literal_in_memory_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527(pos)\n end := add(pos, 1)\n }\n\n function store_literal_in_memory_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55(memPtr) {\n\n mstore(add(memPtr, 0), \"/reputation-score\")\n\n }\n\n function abi_encode_t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 17)\n store_literal_in_memory_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55(pos)\n end := add(pos, 17)\n }\n\n function abi_encode_tuple_packed_t_string_storage_t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7_t_string_memory_ptr_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_t_string_memory_ptr_t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value2, value1, value0) -> end {\n\n pos := abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n pos := abi_encode_t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value1, pos)\n\n pos := abi_encode_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value2, pos)\n\n pos := abi_encode_t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n end := pos\n }\n\n // string -> string\n function abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value, pos) -> ret {\n let slotValue := sload(value)\n let length := extract_byte_array_length(slotValue)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n switch and(slotValue, 1)\n case 0 {\n // short byte array\n mstore(pos, and(slotValue, not(0xff)))\n ret := add(pos, mul(0x20, iszero(iszero(length))))\n }\n case 1 {\n // long byte array\n let dataPos := array_dataslot_t_string_storage(value)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) } {\n mstore(add(pos, i), sload(dataPos))\n dataPos := add(dataPos, 1)\n }\n ret := add(pos, i)\n }\n }\n\n function abi_encode_tuple_t_string_storage_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__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_storage_to_t_string_memory_ptr_fromStack(value0, tail)\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1, tail)\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 panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\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 abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function store_literal_in_memory_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231(memPtr) {\n\n mstore(add(memPtr, 0), \"URI cannot be empty\")\n\n }\n\n function abi_encode_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 19)\n store_literal_in_memory_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_t_bytes4_to_t_bytes4_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes4(value))\n }\n\n function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes4_to_t_bytes4_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n }\n\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$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_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value4, tail)\n\n }\n\n function abi_decode_t_bytes4_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value2, tail)\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value3, tail)\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value4, tail)\n\n }\n\n}\n", "id": 18, "language": "Yul", "name": "#utility.yul" @@ -86768,17 +88821,304 @@ ], "immutableReferences": {}, "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c8063251c1aa3146100465780633ccfd60b146100645780638da5cb5b1461006e575b600080fd5b61004e61008c565b60405161005b919061024a565b60405180910390f35b61006c610092565b005b61007661020b565b60405161008391906102a6565b60405180910390f35b60005481565b6000544210156100d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ce9061031e565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015e9061038a565b60405180910390fd5b7fbf2ed60bd5b5965d685680c01195c9514e4382e28e3a5a2d2d5244bf59411b9347426040516101989291906103aa565b60405180910390a1600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610208573d6000803e3d6000fd5b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000819050919050565b61024481610231565b82525050565b600060208201905061025f600083018461023b565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061029082610265565b9050919050565b6102a081610285565b82525050565b60006020820190506102bb6000830184610297565b92915050565b600082825260208201905092915050565b7f596f752063616e27742077697468647261772079657400000000000000000000600082015250565b60006103086016836102c1565b9150610313826102d2565b602082019050919050565b60006020820190508181036000830152610337816102fb565b9050919050565b7f596f75206172656e277420746865206f776e6572000000000000000000000000600082015250565b60006103746014836102c1565b915061037f8261033e565b602082019050919050565b600060208201905081810360008301526103a381610367565b9050919050565b60006040820190506103bf600083018561023b565b6103cc602083018461023b565b939250505056fea264697066735822122022a2b65355af697b0725f7bcddf1c94be908ee67893e84bd3442d61fdc82585064736f6c63430008180033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x251C1AA3 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x3CCFD60B EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x6E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x8C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x24A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6C PUSH2 0x92 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x76 PUSH2 0x20B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x83 SWAP2 SWAP1 PUSH2 0x2A6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD TIMESTAMP LT ISZERO PUSH2 0xD7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCE SWAP1 PUSH2 0x31E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x167 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15E SWAP1 PUSH2 0x38A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0xBF2ED60BD5B5965D685680C01195C9514E4382E28E3A5A2D2D5244BF59411B93 SELFBALANCE TIMESTAMP PUSH1 0x40 MLOAD PUSH2 0x198 SWAP3 SWAP2 SWAP1 PUSH2 0x3AA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC SELFBALANCE SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x208 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x244 DUP2 PUSH2 0x231 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x25F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x23B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x290 DUP3 PUSH2 0x265 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2A0 DUP2 PUSH2 0x285 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2BB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x297 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x596F752063616E27742077697468647261772079657400000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x308 PUSH1 0x16 DUP4 PUSH2 0x2C1 JUMP JUMPDEST SWAP2 POP PUSH2 0x313 DUP3 PUSH2 0x2D2 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x337 DUP2 PUSH2 0x2FB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x596F75206172656E277420746865206F776E6572000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x374 PUSH1 0x14 DUP4 PUSH2 0x2C1 JUMP JUMPDEST SWAP2 POP PUSH2 0x37F DUP3 PUSH2 0x33E JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3A3 DUP2 PUSH2 0x367 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3BF PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x23B JUMP JUMPDEST PUSH2 0x3CC PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x23B JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x22 LOG2 0xB6 MSTORE8 SSTORE 0xAF PUSH10 0x7B0725F7BCDDF1C94BE9 ADDMOD 0xEE PUSH8 0x893E84BD3442D61F 0xDC DUP3 PC POP PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", - "sourceMap": "141:866:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;161:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;515:490;;;:::i;:::-;;189:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;161:22;;;;:::o;515:490::-;785:10;;766:15;:29;;758:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;854:5;;;;;;;;;;;840:19;;:10;:19;;;832:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;900:50;911:21;934:15;900:50;;;;;;;:::i;:::-;;;;;;;;961:5;;;;;;;;;;;:14;;:37;976:21;961:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;515:490::o;189:28::-;;;;;;;;;;;;;:::o;7:77:18:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:126::-;479:7;519:42;512:5;508:54;497:65;;442:126;;;:::o;574:104::-;619:7;648:24;666:5;648:24;:::i;:::-;637:35;;574:104;;;:::o;684:142::-;787:32;813:5;787:32;:::i;:::-;782:3;775:45;684:142;;:::o;832:254::-;941:4;979:2;968:9;964:18;956:26;;992:87;1076:1;1065:9;1061:17;1052:6;992:87;:::i;:::-;832:254;;;;:::o;1092:169::-;1176:11;1210:6;1205:3;1198:19;1250:4;1245:3;1241:14;1226:29;;1092:169;;;;:::o;1267:172::-;1407:24;1403:1;1395:6;1391:14;1384:48;1267:172;:::o;1445:366::-;1587:3;1608:67;1672:2;1667:3;1608:67;:::i;:::-;1601:74;;1684:93;1773:3;1684:93;:::i;:::-;1802:2;1797:3;1793:12;1786:19;;1445:366;;;:::o;1817:419::-;1983:4;2021:2;2010:9;2006:18;1998:26;;2070:9;2064:4;2060:20;2056:1;2045:9;2041:17;2034:47;2098:131;2224:4;2098:131;:::i;:::-;2090:139;;1817:419;;;:::o;2242:170::-;2382:22;2378:1;2370:6;2366:14;2359:46;2242:170;:::o;2418:366::-;2560:3;2581:67;2645:2;2640:3;2581:67;:::i;:::-;2574:74;;2657:93;2746:3;2657:93;:::i;:::-;2775:2;2770:3;2766:12;2759:19;;2418:366;;;:::o;2790:419::-;2956:4;2994:2;2983:9;2979:18;2971:26;;3043:9;3037:4;3033:20;3029:1;3018:9;3014:17;3007:47;3071:131;3197:4;3071:131;:::i;:::-;3063:139;;2790:419;;;:::o;3215:332::-;3336:4;3374:2;3363:9;3359:18;3351:26;;3387:71;3455:1;3444:9;3440:17;3431:6;3387:71;:::i;:::-;3468:72;3536:2;3525:9;3521:18;3512:6;3468:72;:::i;:::-;3215:332;;;;;:::o" + "object": "608060405234801561001057600080fd5b506004361061012b5760003560e01c806376b676f1116100ad578063d383f64611610071578063d383f64614610364578063d547741f1461036e578063e985e9c51461038a578063f242432a146103ba578063f5298aca146103d65761012b565b806376b676f1146102ae57806391d14854146102de578063931688cb1461030e578063a217fddf1461032a578063a22cb465146103485761012b565b80632f2ff15d116100f45780632f2ff15d1461020c57806336568abe146102285780634e1273f41461024457806361bc221a14610274578063731133e9146102925761012b565b8062fdd58e1461013057806301ffc9a7146101605780630e89341c14610190578063248a9ca3146101c05780632eb2c2d6146101f0575b600080fd5b61014a600480360381019061014591906121b1565b6103f2565b6040516101579190612200565b60405180910390f35b61017a60048036038101906101759190612273565b61044c565b60405161018791906122bb565b60405180910390f35b6101aa60048036038101906101a591906122d6565b61048c565b6040516101b79190612393565b60405180910390f35b6101da60048036038101906101d591906123eb565b610520565b6040516101e79190612427565b60405180910390f35b61020a6004803603810190610205919061263f565b610540565b005b6102266004803603810190610221919061270e565b6105e8565b005b610242600480360381019061023d919061270e565b61060a565b005b61025e60048036038101906102599190612811565b610685565b60405161026b9190612947565b60405180910390f35b61027c61078e565b6040516102899190612200565b60405180910390f35b6102ac60048036038101906102a79190612969565b610798565b005b6102c860048036038101906102c39190612a8d565b610856565b6040516102d59190612393565b60405180910390f35b6102f860048036038101906102f3919061270e565b6108de565b60405161030591906122bb565b60405180910390f35b61032860048036038101906103239190612ae9565b610949565b005b6103326109ad565b60405161033f9190612427565b60405180910390f35b610362600480360381019061035d9190612b5e565b6109b4565b005b61036c6109ca565b005b6103886004803603810190610383919061270e565b610a47565b005b6103a4600480360381019061039f9190612b9e565b610a69565b6040516103b191906122bb565b60405180910390f35b6103d460048036038101906103cf9190612bde565b610afd565b005b6103f060048036038101906103eb9190612c75565b610ba5565b005b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061046d3073ffffffffffffffffffffffffffffffffffffffff16610c87565b156104825761047b82610cd4565b9050610487565b600090505b919050565b60606002805461049b90612cf7565b80601f01602080910402602001604051908101604052809291908181526020018280546104c790612cf7565b80156105145780601f106104e957610100808354040283529160200191610514565b820191906000526020600020905b8154815290600101906020018083116104f757829003601f168201915b50505050509050919050565b600060036000838152602001908152602001600020600101549050919050565b600061054a610d4e565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561058f575061058d8682610a69565b155b156105d35780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016105ca929190612d37565b60405180910390fd5b6105e08686868686610d56565b505050505050565b6105f182610520565b6105fa81610e4e565b6106048383610e62565b50505050565b610612610d4e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610676576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106808282610f54565b505050565b606081518351146106d157815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016106c8929190612d60565b60405180910390fd5b6000835167ffffffffffffffff8111156106ee576106ed612447565b5b60405190808252806020026020018201604052801561071c5781602001602082028036833780820191505090505b50905060005b845181101561078357610759610741828761104790919063ffffffff16565b610754838761105b90919063ffffffff16565b6103f2565b82828151811061076c5761076b612d89565b5b602002602001018181525050806001019050610722565b508091505092915050565b6000600454905090565b826107a28161106f565b60016107ae86866103f2565b106107f25784846040517f788d25560000000000000000000000000000000000000000000000000000000081526004016107e9929190612db8565b60405180910390fd5b6107ff85856001856110b8565b838573ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f60016040516108479190612e26565b60405180910390a35050505050565b6060826108628161106f565b8260008151036108a7576040517fc29f9db300000000000000000000000000000000000000000000000000000000815260040161089e90612e8d565b60405180910390fd5b60056108b286611151565b856040516020016108c593929190613065565b6040516020818303038152906040529250505092915050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b61095681610e4e565b61095f8261121f565b7f309b29ded109b9e28fb9885757b3e0096eb75c51d23aa4635d68bcd569f6adc160058360405161099192919061313b565b60405180910390a181600590816109a891906132ff565b505050565b6000801b81565b6109c66109bf610d4e565b8383611266565b5050565b600060045490506109ed33826001604051806020016040528060008152506110b8565b803373ffffffffffffffffffffffffffffffffffffffff167fc65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c1660405160405180910390a3600181610a3e9190613400565b60048190555050565b610a5082610520565b610a5981610e4e565b610a638383610f54565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000610b07610d4e565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610b4c5750610b4a8682610a69565b155b15610b905780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610b87929190612d37565b60405180910390fd5b610b9d86868686866113d6565b505050505050565b81610baf8161106f565b83833373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610c235781816040517f8626cc03000000000000000000000000000000000000000000000000000000008152600401610c1a929190612db8565b60405180910390fd5b610c2f868660016114e1565b848673ffffffffffffffffffffffffffffffffffffffff167f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a6001604051610c779190612e26565b60405180910390a3505050505050565b6000610cb3827f01ffc9a700000000000000000000000000000000000000000000000000000000611588565b8015610ccd5750610ccb8263ffffffff60e01b611588565b155b9050919050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610d475750610d4682611627565b5b9050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610dc85760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610dbf9190613434565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610e3a5760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610e319190613434565b60405180910390fd5b610e478585858585611709565b5050505050565b610e5f81610e5a610d4e565b6117bb565b50565b6000610e6e83836108de565b610f495760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610ee6610d4e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610f4e565b600090505b92915050565b6000610f6083836108de565b1561103c5760006003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610fd9610d4e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611041565b600090505b92915050565b600060208202602084010151905092915050565b600060208202602084010151905092915050565b60045481106110b557806040517fc80a970c0000000000000000000000000000000000000000000000000000000081526004016110ac9190612200565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361112a5760006040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016111219190613434565b60405180910390fd5b600080611137858561180c565b91509150611149600087848487611709565b505050505050565b6060600060016111608461183c565b01905060008167ffffffffffffffff81111561117f5761117e612447565b5b6040519080825280601f01601f1916602001820160405280156111b15781602001600182028036833780820191505090505b509050600082602001820190505b600115611214578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816112085761120761344f565b5b049450600085036111bf575b819350505050919050565b6000815103611263576040517f1897cf6600000000000000000000000000000000000000000000000000000000815260040161125a906134ca565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112d85760006040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016112cf9190613434565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516113c991906122bb565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036114485760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161143f9190613434565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036114ba5760006040517f01a835140000000000000000000000000000000000000000000000000000000081526004016114b19190613434565b60405180910390fd5b6000806114c7858561180c565b915091506114d88787848487611709565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115535760006040517f01a8351400000000000000000000000000000000000000000000000000000000815260040161154a9190613434565b60405180910390fd5b600080611560848461180c565b91509150611581856000848460405180602001604052806000815250611709565b5050505050565b6000808260405160240161159c91906134f9565b6040516020818303038152906040526301ffc9a760e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000806000602060008551602087018a617530fa92503d9150600051905082801561160f575060208210155b801561161b5750600081115b94505050505092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806116f257507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061170257506117018261198f565b5b9050919050565b611715858585856119f9565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146117b4576000611753610d4e565b905060018451036117a357600061177460008661105b90919063ffffffff16565b9050600061178c60008661105b90919063ffffffff16565b905061179c838989858589611da1565b50506117b2565b6117b1818787878787611f55565b5b505b5050505050565b6117c582826108de565b6118085780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016117ff929190613514565b60405180910390fd5b5050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061189a577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816118905761188f61344f565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106118d7576d04ee2d6d415b85acef810000000083816118cd576118cc61344f565b5b0492506020810190505b662386f26fc10000831061190657662386f26fc1000083816118fc576118fb61344f565b5b0492506010810190505b6305f5e100831061192f576305f5e10083816119255761192461344f565b5b0492506008810190505b612710831061195457612710838161194a5761194961344f565b5b0492506004810190505b60648310611977576064838161196d5761196c61344f565b5b0492506002810190505b600a8310611986576001810190505b80915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b8051825114611a4357815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401611a3a929190612d60565b60405180910390fd5b6000611a4d610d4e565b905060005b8351811015611c5c576000611a70828661105b90919063ffffffff16565b90506000611a87838661105b90919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611bb457600080600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611b5c57888183856040517f03dee4c5000000000000000000000000000000000000000000000000000000008152600401611b53949392919061353d565b60405180910390fd5b81810360008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611c4f578060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c479190613400565b925050819055505b5050806001019050611a52565b506001835103611d1b576000611c7c60008561105b90919063ffffffff16565b90506000611c9460008561105b90919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611d0c929190612d60565b60405180910390a45050611d9a565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611d91929190613582565b60405180910390a45b5050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611f4d578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611e0295949392919061360e565b6020604051808303816000875af1925050508015611e3e57506040513d601f19601f82011682018060405250810190611e3b919061367d565b60015b611ec2573d8060008114611e6e576040519150601f19603f3d011682016040523d82523d6000602084013e611e73565b606091505b506000815103611eba57846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611eb19190613434565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611f4b57846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611f429190613434565b60405180910390fd5b505b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115612101578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611fb69594939291906136aa565b6020604051808303816000875af1925050508015611ff257506040513d601f19601f82011682018060405250810190611fef919061367d565b60015b612076573d8060008114612022576040519150601f19603f3d011682016040523d82523d6000602084013e612027565b606091505b50600081510361206e57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016120659190613434565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146120ff57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016120f69190613434565b60405180910390fd5b505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121488261211d565b9050919050565b6121588161213d565b811461216357600080fd5b50565b6000813590506121758161214f565b92915050565b6000819050919050565b61218e8161217b565b811461219957600080fd5b50565b6000813590506121ab81612185565b92915050565b600080604083850312156121c8576121c7612113565b5b60006121d685828601612166565b92505060206121e78582860161219c565b9150509250929050565b6121fa8161217b565b82525050565b600060208201905061221560008301846121f1565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6122508161221b565b811461225b57600080fd5b50565b60008135905061226d81612247565b92915050565b60006020828403121561228957612288612113565b5b60006122978482850161225e565b91505092915050565b60008115159050919050565b6122b5816122a0565b82525050565b60006020820190506122d060008301846122ac565b92915050565b6000602082840312156122ec576122eb612113565b5b60006122fa8482850161219c565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561233d578082015181840152602081019050612322565b60008484015250505050565b6000601f19601f8301169050919050565b600061236582612303565b61236f818561230e565b935061237f81856020860161231f565b61238881612349565b840191505092915050565b600060208201905081810360008301526123ad818461235a565b905092915050565b6000819050919050565b6123c8816123b5565b81146123d357600080fd5b50565b6000813590506123e5816123bf565b92915050565b60006020828403121561240157612400612113565b5b600061240f848285016123d6565b91505092915050565b612421816123b5565b82525050565b600060208201905061243c6000830184612418565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61247f82612349565b810181811067ffffffffffffffff8211171561249e5761249d612447565b5b80604052505050565b60006124b1612109565b90506124bd8282612476565b919050565b600067ffffffffffffffff8211156124dd576124dc612447565b5b602082029050602081019050919050565b600080fd5b6000612506612501846124c2565b6124a7565b90508083825260208201905060208402830185811115612529576125286124ee565b5b835b81811015612552578061253e888261219c565b84526020840193505060208101905061252b565b5050509392505050565b600082601f83011261257157612570612442565b5b81356125818482602086016124f3565b91505092915050565b600080fd5b600067ffffffffffffffff8211156125aa576125a9612447565b5b6125b382612349565b9050602081019050919050565b82818337600083830152505050565b60006125e26125dd8461258f565b6124a7565b9050828152602081018484840111156125fe576125fd61258a565b5b6126098482856125c0565b509392505050565b600082601f83011261262657612625612442565b5b81356126368482602086016125cf565b91505092915050565b600080600080600060a0868803121561265b5761265a612113565b5b600061266988828901612166565b955050602061267a88828901612166565b945050604086013567ffffffffffffffff81111561269b5761269a612118565b5b6126a78882890161255c565b935050606086013567ffffffffffffffff8111156126c8576126c7612118565b5b6126d48882890161255c565b925050608086013567ffffffffffffffff8111156126f5576126f4612118565b5b61270188828901612611565b9150509295509295909350565b6000806040838503121561272557612724612113565b5b6000612733858286016123d6565b925050602061274485828601612166565b9150509250929050565b600067ffffffffffffffff82111561276957612768612447565b5b602082029050602081019050919050565b600061278d6127888461274e565b6124a7565b905080838252602082019050602084028301858111156127b0576127af6124ee565b5b835b818110156127d957806127c58882612166565b8452602084019350506020810190506127b2565b5050509392505050565b600082601f8301126127f8576127f7612442565b5b813561280884826020860161277a565b91505092915050565b6000806040838503121561282857612827612113565b5b600083013567ffffffffffffffff81111561284657612845612118565b5b612852858286016127e3565b925050602083013567ffffffffffffffff81111561287357612872612118565b5b61287f8582860161255c565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6128be8161217b565b82525050565b60006128d083836128b5565b60208301905092915050565b6000602082019050919050565b60006128f482612889565b6128fe8185612894565b9350612909836128a5565b8060005b8381101561293a57815161292188826128c4565b975061292c836128dc565b92505060018101905061290d565b5085935050505092915050565b6000602082019050818103600083015261296181846128e9565b905092915050565b6000806000806080858703121561298357612982612113565b5b600061299187828801612166565b94505060206129a28782880161219c565b93505060406129b38782880161219c565b925050606085013567ffffffffffffffff8111156129d4576129d3612118565b5b6129e087828801612611565b91505092959194509250565b600067ffffffffffffffff821115612a0757612a06612447565b5b612a1082612349565b9050602081019050919050565b6000612a30612a2b846129ec565b6124a7565b905082815260208101848484011115612a4c57612a4b61258a565b5b612a578482856125c0565b509392505050565b600082601f830112612a7457612a73612442565b5b8135612a84848260208601612a1d565b91505092915050565b60008060408385031215612aa457612aa3612113565b5b6000612ab28582860161219c565b925050602083013567ffffffffffffffff811115612ad357612ad2612118565b5b612adf85828601612a5f565b9150509250929050565b600060208284031215612aff57612afe612113565b5b600082013567ffffffffffffffff811115612b1d57612b1c612118565b5b612b2984828501612a5f565b91505092915050565b612b3b816122a0565b8114612b4657600080fd5b50565b600081359050612b5881612b32565b92915050565b60008060408385031215612b7557612b74612113565b5b6000612b8385828601612166565b9250506020612b9485828601612b49565b9150509250929050565b60008060408385031215612bb557612bb4612113565b5b6000612bc385828601612166565b9250506020612bd485828601612166565b9150509250929050565b600080600080600060a08688031215612bfa57612bf9612113565b5b6000612c0888828901612166565b9550506020612c1988828901612166565b9450506040612c2a8882890161219c565b9350506060612c3b8882890161219c565b925050608086013567ffffffffffffffff811115612c5c57612c5b612118565b5b612c6888828901612611565b9150509295509295909350565b600080600060608486031215612c8e57612c8d612113565b5b6000612c9c86828701612166565b9350506020612cad8682870161219c565b9250506040612cbe8682870161219c565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612d0f57607f821691505b602082108103612d2257612d21612cc8565b5b50919050565b612d318161213d565b82525050565b6000604082019050612d4c6000830185612d28565b612d596020830184612d28565b9392505050565b6000604082019050612d7560008301856121f1565b612d8260208301846121f1565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050612dcd6000830185612d28565b612dda60208301846121f1565b9392505050565b6000819050919050565b6000819050919050565b6000612e10612e0b612e0684612de1565b612deb565b61217b565b9050919050565b612e2081612df5565b82525050565b6000602082019050612e3b6000830184612e17565b92915050565b7f4163636f756e742063616e6e6f7420626520656d707479000000000000000000600082015250565b6000612e7760178361230e565b9150612e8282612e41565b602082019050919050565b60006020820190508181036000830152612ea681612e6a565b9050919050565b600081905092915050565b60008190508160005260206000209050919050565b60008154612eda81612cf7565b612ee48186612ead565b94506001821660008114612eff5760018114612f1457612f47565b60ff1983168652811515820286019350612f47565b612f1d85612eb8565b60005b83811015612f3f57815481890152600182019150602081019050612f20565b838801955050505b50505092915050565b7f2f6170692f76312f6e66742f0000000000000000000000000000000000000000600082015250565b6000612f86600c83612ead565b9150612f9182612f50565b600c82019050919050565b6000612fa782612303565b612fb18185612ead565b9350612fc181856020860161231f565b80840191505092915050565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b6000613003600183612ead565b915061300e82612fcd565b600182019050919050565b7f2f72657075746174696f6e2d73636f7265000000000000000000000000000000600082015250565b600061304f601183612ead565b915061305a82613019565b601182019050919050565b60006130718286612ecd565b915061307c82612f79565b91506130888285612f9c565b915061309382612ff6565b915061309f8284612f9c565b91506130aa82613042565b9150819050949350505050565b600081546130c481612cf7565b6130ce818661230e565b945060018216600081146130e957600181146130ff57613132565b60ff198316865281151560200286019350613132565b61310885612eb8565b60005b8381101561312a5781548189015260018201915060208101905061310b565b808801955050505b50505092915050565b6000604082019050818103600083015261315581856130b7565b90508181036020830152613169818461235a565b90509392505050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026131bf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613182565b6131c98683613182565b95508019841693508086168417925050509392505050565b60006131fc6131f76131f28461217b565b612deb565b61217b565b9050919050565b6000819050919050565b613216836131e1565b61322a61322282613203565b84845461318f565b825550505050565b600090565b61323f613232565b61324a81848461320d565b505050565b5b8181101561326e57613263600082613237565b600181019050613250565b5050565b601f8211156132b35761328481612eb8565b61328d84613172565b8101602085101561329c578190505b6132b06132a885613172565b83018261324f565b50505b505050565b600082821c905092915050565b60006132d6600019846008026132b8565b1980831691505092915050565b60006132ef83836132c5565b9150826002028217905092915050565b61330882612303565b67ffffffffffffffff81111561332157613320612447565b5b61332b8254612cf7565b613336828285613272565b600060209050601f8311600181146133695760008415613357578287015190505b61336185826132e3565b8655506133c9565b601f19841661337786612eb8565b60005b8281101561339f5784890151825560018201915060208501945060208101905061337a565b868310156133bc57848901516133b8601f8916826132c5565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061340b8261217b565b91506134168361217b565b925082820190508082111561342e5761342d6133d1565b5b92915050565b60006020820190506134496000830184612d28565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f5552492063616e6e6f7420626520656d70747900000000000000000000000000600082015250565b60006134b460138361230e565b91506134bf8261347e565b602082019050919050565b600060208201905081810360008301526134e3816134a7565b9050919050565b6134f38161221b565b82525050565b600060208201905061350e60008301846134ea565b92915050565b60006040820190506135296000830185612d28565b6135366020830184612418565b9392505050565b60006080820190506135526000830187612d28565b61355f60208301866121f1565b61356c60408301856121f1565b61357960608301846121f1565b95945050505050565b6000604082019050818103600083015261359c81856128e9565b905081810360208301526135b081846128e9565b90509392505050565b600081519050919050565b600082825260208201905092915050565b60006135e0826135b9565b6135ea81856135c4565b93506135fa81856020860161231f565b61360381612349565b840191505092915050565b600060a0820190506136236000830188612d28565b6136306020830187612d28565b61363d60408301866121f1565b61364a60608301856121f1565b818103608083015261365c81846135d5565b90509695505050505050565b60008151905061367781612247565b92915050565b60006020828403121561369357613692612113565b5b60006136a184828501613668565b91505092915050565b600060a0820190506136bf6000830188612d28565b6136cc6020830187612d28565b81810360408301526136de81866128e9565b905081810360608301526136f281856128e9565b9050818103608083015261370681846135d5565b9050969550505050505056fea2646970667358221220240e9a7daab5d9eba2793e75f4bbf0e9a74f133868ac14d5e9561767bb722e8264736f6c634300081a0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x12B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x76B676F1 GT PUSH2 0xAD JUMPI DUP1 PUSH4 0xD383F646 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xD383F646 EQ PUSH2 0x364 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x36E JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x38A JUMPI DUP1 PUSH4 0xF242432A EQ PUSH2 0x3BA JUMPI DUP1 PUSH4 0xF5298ACA EQ PUSH2 0x3D6 JUMPI PUSH2 0x12B JUMP JUMPDEST DUP1 PUSH4 0x76B676F1 EQ PUSH2 0x2AE JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x2DE JUMPI DUP1 PUSH4 0x931688CB EQ PUSH2 0x30E JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x32A JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x348 JUMPI PUSH2 0x12B JUMP JUMPDEST DUP1 PUSH4 0x2F2FF15D GT PUSH2 0xF4 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x228 JUMPI DUP1 PUSH4 0x4E1273F4 EQ PUSH2 0x244 JUMPI DUP1 PUSH4 0x61BC221A EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0x731133E9 EQ PUSH2 0x292 JUMPI PUSH2 0x12B JUMP JUMPDEST DUP1 PUSH3 0xFDD58E EQ PUSH2 0x130 JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x160 JUMPI DUP1 PUSH4 0xE89341C EQ PUSH2 0x190 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x1C0 JUMPI DUP1 PUSH4 0x2EB2C2D6 EQ PUSH2 0x1F0 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x145 SWAP2 SWAP1 PUSH2 0x21B1 JUMP JUMPDEST PUSH2 0x3F2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x157 SWAP2 SWAP1 PUSH2 0x2200 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x175 SWAP2 SWAP1 PUSH2 0x2273 JUMP JUMPDEST PUSH2 0x44C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x187 SWAP2 SWAP1 PUSH2 0x22BB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1AA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A5 SWAP2 SWAP1 PUSH2 0x22D6 JUMP JUMPDEST PUSH2 0x48C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B7 SWAP2 SWAP1 PUSH2 0x2393 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1DA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D5 SWAP2 SWAP1 PUSH2 0x23EB JUMP JUMPDEST PUSH2 0x520 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E7 SWAP2 SWAP1 PUSH2 0x2427 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x20A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x205 SWAP2 SWAP1 PUSH2 0x263F JUMP JUMPDEST PUSH2 0x540 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x226 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x221 SWAP2 SWAP1 PUSH2 0x270E JUMP JUMPDEST PUSH2 0x5E8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x242 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x23D SWAP2 SWAP1 PUSH2 0x270E JUMP JUMPDEST PUSH2 0x60A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x25E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x259 SWAP2 SWAP1 PUSH2 0x2811 JUMP JUMPDEST PUSH2 0x685 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x26B SWAP2 SWAP1 PUSH2 0x2947 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x27C PUSH2 0x78E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x289 SWAP2 SWAP1 PUSH2 0x2200 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2AC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A7 SWAP2 SWAP1 PUSH2 0x2969 JUMP JUMPDEST PUSH2 0x798 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2C8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2C3 SWAP2 SWAP1 PUSH2 0x2A8D JUMP JUMPDEST PUSH2 0x856 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D5 SWAP2 SWAP1 PUSH2 0x2393 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2F8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2F3 SWAP2 SWAP1 PUSH2 0x270E JUMP JUMPDEST PUSH2 0x8DE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x305 SWAP2 SWAP1 PUSH2 0x22BB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x328 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x323 SWAP2 SWAP1 PUSH2 0x2AE9 JUMP JUMPDEST PUSH2 0x949 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x332 PUSH2 0x9AD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x33F SWAP2 SWAP1 PUSH2 0x2427 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x362 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x35D SWAP2 SWAP1 PUSH2 0x2B5E JUMP JUMPDEST PUSH2 0x9B4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x36C PUSH2 0x9CA JUMP JUMPDEST STOP JUMPDEST PUSH2 0x388 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x383 SWAP2 SWAP1 PUSH2 0x270E JUMP JUMPDEST PUSH2 0xA47 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39F SWAP2 SWAP1 PUSH2 0x2B9E JUMP JUMPDEST PUSH2 0xA69 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3B1 SWAP2 SWAP1 PUSH2 0x22BB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3D4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3CF SWAP2 SWAP1 PUSH2 0x2BDE JUMP JUMPDEST PUSH2 0xAFD JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3F0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3EB SWAP2 SWAP1 PUSH2 0x2C75 JUMP JUMPDEST PUSH2 0xBA5 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x46D ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xC87 JUMP JUMPDEST ISZERO PUSH2 0x482 JUMPI PUSH2 0x47B DUP3 PUSH2 0xCD4 JUMP JUMPDEST SWAP1 POP PUSH2 0x487 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP1 SLOAD PUSH2 0x49B SWAP1 PUSH2 0x2CF7 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 0x4C7 SWAP1 PUSH2 0x2CF7 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x514 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x4E9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x514 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 0x4F7 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 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 PUSH2 0x54A PUSH2 0xD4E JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x58F JUMPI POP PUSH2 0x58D DUP7 DUP3 PUSH2 0xA69 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x5D3 JUMPI DUP1 DUP7 PUSH1 0x40 MLOAD PUSH32 0xE237D92200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CA SWAP3 SWAP2 SWAP1 PUSH2 0x2D37 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5E0 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0xD56 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x5F1 DUP3 PUSH2 0x520 JUMP JUMPDEST PUSH2 0x5FA DUP2 PUSH2 0xE4E JUMP JUMPDEST PUSH2 0x604 DUP4 DUP4 PUSH2 0xE62 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x612 PUSH2 0xD4E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x676 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6697B23200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x680 DUP3 DUP3 PUSH2 0xF54 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0x6D1 JUMPI DUP2 MLOAD DUP4 MLOAD PUSH1 0x40 MLOAD PUSH32 0x5B05999100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6C8 SWAP3 SWAP2 SWAP1 PUSH2 0x2D60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x6EE JUMPI PUSH2 0x6ED PUSH2 0x2447 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 0x71C JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x783 JUMPI PUSH2 0x759 PUSH2 0x741 DUP3 DUP8 PUSH2 0x1047 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x754 DUP4 DUP8 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x3F2 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x76C JUMPI PUSH2 0x76B PUSH2 0x2D89 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x722 JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST DUP3 PUSH2 0x7A2 DUP2 PUSH2 0x106F JUMP JUMPDEST PUSH1 0x1 PUSH2 0x7AE DUP7 DUP7 PUSH2 0x3F2 JUMP JUMPDEST LT PUSH2 0x7F2 JUMPI DUP5 DUP5 PUSH1 0x40 MLOAD PUSH32 0x788D255600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7E9 SWAP3 SWAP2 SWAP1 PUSH2 0x2DB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7FF DUP6 DUP6 PUSH1 0x1 DUP6 PUSH2 0x10B8 JUMP JUMPDEST DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4C209B5FC8AD50758F13E2E1088BA56A560DFF690A1C6FEF26394F4C03821C4F PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x847 SWAP2 SWAP1 PUSH2 0x2E26 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x862 DUP2 PUSH2 0x106F JUMP JUMPDEST DUP3 PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x8A7 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC29F9DB300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x89E SWAP1 PUSH2 0x2E8D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH2 0x8B2 DUP7 PUSH2 0x1151 JUMP JUMPDEST DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x8C5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3065 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 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 SHL PUSH2 0x956 DUP2 PUSH2 0xE4E JUMP JUMPDEST PUSH2 0x95F DUP3 PUSH2 0x121F JUMP JUMPDEST PUSH32 0x309B29DED109B9E28FB9885757B3E0096EB75C51D23AA4635D68BCD569F6ADC1 PUSH1 0x5 DUP4 PUSH1 0x40 MLOAD PUSH2 0x991 SWAP3 SWAP2 SWAP1 PUSH2 0x313B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP2 PUSH1 0x5 SWAP1 DUP2 PUSH2 0x9A8 SWAP2 SWAP1 PUSH2 0x32FF JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST PUSH2 0x9C6 PUSH2 0x9BF PUSH2 0xD4E JUMP JUMPDEST DUP4 DUP4 PUSH2 0x1266 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 SLOAD SWAP1 POP PUSH2 0x9ED CALLER DUP3 PUSH1 0x1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x10B8 JUMP JUMPDEST DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC65A3F767206D2FDCEDE0B094A4840E01C0DD0BE1888B5BA800346EAA0123C16 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 DUP2 PUSH2 0xA3E SWAP2 SWAP1 PUSH2 0x3400 JUMP JUMPDEST PUSH1 0x4 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0xA50 DUP3 PUSH2 0x520 JUMP JUMPDEST PUSH2 0xA59 DUP2 PUSH2 0xE4E JUMP JUMPDEST PUSH2 0xA63 DUP4 DUP4 PUSH2 0xF54 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB07 PUSH2 0xD4E JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0xB4C JUMPI POP PUSH2 0xB4A DUP7 DUP3 PUSH2 0xA69 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0xB90 JUMPI DUP1 DUP7 PUSH1 0x40 MLOAD PUSH32 0xE237D92200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB87 SWAP3 SWAP2 SWAP1 PUSH2 0x2D37 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB9D DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x13D6 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH2 0xBAF DUP2 PUSH2 0x106F JUMP JUMPDEST DUP4 DUP4 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xC23 JUMPI DUP2 DUP2 PUSH1 0x40 MLOAD PUSH32 0x8626CC0300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1A SWAP3 SWAP2 SWAP1 PUSH2 0x2DB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC2F DUP7 DUP7 PUSH1 0x1 PUSH2 0x14E1 JUMP JUMPDEST DUP5 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x49995E5DD6158CF69AD3E9777C46755A1A826A446C6416992167462DAD033B2A PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0xC77 SWAP2 SWAP1 PUSH2 0x2E26 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCB3 DUP3 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH2 0x1588 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xCCD JUMPI POP PUSH2 0xCCB DUP3 PUSH4 0xFFFFFFFF PUSH1 0xE0 SHL PUSH2 0x1588 JUMP JUMPDEST ISZERO JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xD47 JUMPI POP PUSH2 0xD46 DUP3 PUSH2 0x1627 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xDC8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xDBF SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xE3A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE31 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xE47 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0x1709 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0xE5F DUP2 PUSH2 0xE5A PUSH2 0xD4E JUMP JUMPDEST PUSH2 0x17BB JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE6E DUP4 DUP4 PUSH2 0x8DE JUMP JUMPDEST PUSH2 0xF49 JUMPI PUSH1 0x1 PUSH1 0x3 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 0xEE6 PUSH2 0xD4E 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 0xF4E JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF60 DUP4 DUP4 PUSH2 0x8DE JUMP JUMPDEST ISZERO PUSH2 0x103C JUMPI PUSH1 0x0 PUSH1 0x3 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 0xFD9 PUSH2 0xD4E 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 0x1041 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MUL PUSH1 0x20 DUP5 ADD ADD MLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MUL PUSH1 0x20 DUP5 ADD ADD MLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 LT PUSH2 0x10B5 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0xC80A970C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10AC SWAP2 SWAP1 PUSH2 0x2200 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x112A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1121 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1137 DUP6 DUP6 PUSH2 0x180C JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x1149 PUSH1 0x0 DUP8 DUP5 DUP5 DUP8 PUSH2 0x1709 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH2 0x1160 DUP5 PUSH2 0x183C JUMP JUMPDEST ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x117F JUMPI PUSH2 0x117E PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x11B1 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x20 ADD DUP3 ADD SWAP1 POP JUMPDEST PUSH1 0x1 ISZERO PUSH2 0x1214 JUMPI DUP1 DUP1 PUSH1 0x1 SWAP1 SUB SWAP2 POP POP PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DUP2 PUSH2 0x1208 JUMPI PUSH2 0x1207 PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP5 POP PUSH1 0x0 DUP6 SUB PUSH2 0x11BF JUMPI JUMPDEST DUP2 SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x1263 JUMPI PUSH1 0x40 MLOAD PUSH32 0x1897CF6600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x125A SWAP1 PUSH2 0x34CA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x12D8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xCED3E10000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12CF SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 DUP4 PUSH1 0x40 MLOAD PUSH2 0x13C9 SWAP2 SWAP1 PUSH2 0x22BB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1448 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x143F SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x14BA JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14B1 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x14C7 DUP6 DUP6 PUSH2 0x180C JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x14D8 DUP8 DUP8 DUP5 DUP5 DUP8 PUSH2 0x1709 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1553 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x154A SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1560 DUP5 DUP5 PUSH2 0x180C JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x1581 DUP6 PUSH1 0x0 DUP5 DUP5 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1709 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x159C SWAP2 SWAP1 PUSH2 0x34F9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x20 PUSH1 0x0 DUP6 MLOAD PUSH1 0x20 DUP8 ADD DUP11 PUSH2 0x7530 STATICCALL SWAP3 POP RETURNDATASIZE SWAP2 POP PUSH1 0x0 MLOAD SWAP1 POP DUP3 DUP1 ISZERO PUSH2 0x160F JUMPI POP PUSH1 0x20 DUP3 LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x161B JUMPI POP PUSH1 0x0 DUP2 GT JUMPDEST SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xD9B67A2600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x16F2 JUMPI POP PUSH32 0xE89341C00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x1702 JUMPI POP PUSH2 0x1701 DUP3 PUSH2 0x198F JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1715 DUP6 DUP6 DUP6 DUP6 PUSH2 0x19F9 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x17B4 JUMPI PUSH1 0x0 PUSH2 0x1753 PUSH2 0xD4E JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP5 MLOAD SUB PUSH2 0x17A3 JUMPI PUSH1 0x0 PUSH2 0x1774 PUSH1 0x0 DUP7 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x178C PUSH1 0x0 DUP7 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH2 0x179C DUP4 DUP10 DUP10 DUP6 DUP6 DUP10 PUSH2 0x1DA1 JUMP JUMPDEST POP POP PUSH2 0x17B2 JUMP JUMPDEST PUSH2 0x17B1 DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x1F55 JUMP JUMPDEST JUMPDEST POP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x17C5 DUP3 DUP3 PUSH2 0x8DE JUMP JUMPDEST PUSH2 0x1808 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH32 0xE2517D3F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x17FF SWAP3 SWAP2 SWAP1 PUSH2 0x3514 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1 DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH1 0x1 DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD PUSH1 0x40 MSTORE SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x189A JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DUP2 PUSH2 0x1890 JUMPI PUSH2 0x188F PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x40 DUP2 ADD SWAP1 POP JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x18D7 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DUP2 PUSH2 0x18CD JUMPI PUSH2 0x18CC PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x20 DUP2 ADD SWAP1 POP JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x1906 JUMPI PUSH7 0x2386F26FC10000 DUP4 DUP2 PUSH2 0x18FC JUMPI PUSH2 0x18FB PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x10 DUP2 ADD SWAP1 POP JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x192F JUMPI PUSH4 0x5F5E100 DUP4 DUP2 PUSH2 0x1925 JUMPI PUSH2 0x1924 PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x8 DUP2 ADD SWAP1 POP JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x1954 JUMPI PUSH2 0x2710 DUP4 DUP2 PUSH2 0x194A JUMPI PUSH2 0x1949 PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x4 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x1977 JUMPI PUSH1 0x64 DUP4 DUP2 PUSH2 0x196D JUMPI PUSH2 0x196C PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x2 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x1986 JUMPI PUSH1 0x1 DUP2 ADD SWAP1 POP JUMPDEST DUP1 SWAP2 POP 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 DUP1 MLOAD DUP3 MLOAD EQ PUSH2 0x1A43 JUMPI DUP2 MLOAD DUP2 MLOAD PUSH1 0x40 MLOAD PUSH32 0x5B05999100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A3A SWAP3 SWAP2 SWAP1 PUSH2 0x2D60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1A4D PUSH2 0xD4E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x1C5C JUMPI PUSH1 0x0 PUSH2 0x1A70 DUP3 DUP7 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1A87 DUP4 DUP7 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1BB4 JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x1B5C JUMPI DUP9 DUP2 DUP4 DUP6 PUSH1 0x40 MLOAD PUSH32 0x3DEE4C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B53 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x353D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1C4F JUMPI DUP1 PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1C47 SWAP2 SWAP1 PUSH2 0x3400 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x1A52 JUMP JUMPDEST POP PUSH1 0x1 DUP4 MLOAD SUB PUSH2 0x1D1B JUMPI PUSH1 0x0 PUSH2 0x1C7C PUSH1 0x0 DUP6 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1C94 PUSH1 0x0 DUP6 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x1D0C SWAP3 SWAP2 SWAP1 PUSH2 0x2D60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP PUSH2 0x1D9A JUMP JUMPDEST DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4A39DC06D4C0DBC64B70AF90FD698A233A518AA5D07E595D983B8C0526C8F7FB DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1D91 SWAP3 SWAP2 SWAP1 PUSH2 0x3582 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x1F4D JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF23A6E61 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E02 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x360E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1E3E JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1E3B SWAP2 SWAP1 PUSH2 0x367D JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1EC2 JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1E6E JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1E73 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x1EBA JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1EB1 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x1F4B JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1F42 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x2101 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xBC197C81 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1FB6 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x36AA JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1FF2 JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1FEF SWAP2 SWAP1 PUSH2 0x367D JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x2076 JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2022 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2027 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x206E JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2065 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x20FF JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x20F6 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2148 DUP3 PUSH2 0x211D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2158 DUP2 PUSH2 0x213D JUMP JUMPDEST DUP2 EQ PUSH2 0x2163 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2175 DUP2 PUSH2 0x214F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x218E DUP2 PUSH2 0x217B JUMP JUMPDEST DUP2 EQ PUSH2 0x2199 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x21AB DUP2 PUSH2 0x2185 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x21C8 JUMPI PUSH2 0x21C7 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x21D6 DUP6 DUP3 DUP7 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x21E7 DUP6 DUP3 DUP7 ADD PUSH2 0x219C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x21FA DUP2 PUSH2 0x217B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2215 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x21F1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2250 DUP2 PUSH2 0x221B JUMP JUMPDEST DUP2 EQ PUSH2 0x225B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x226D DUP2 PUSH2 0x2247 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2289 JUMPI PUSH2 0x2288 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2297 DUP5 DUP3 DUP6 ADD PUSH2 0x225E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x22B5 DUP2 PUSH2 0x22A0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x22D0 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x22AC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x22EC JUMPI PUSH2 0x22EB PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x22FA DUP5 DUP3 DUP6 ADD PUSH2 0x219C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x233D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2322 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2365 DUP3 PUSH2 0x2303 JUMP JUMPDEST PUSH2 0x236F DUP2 DUP6 PUSH2 0x230E JUMP JUMPDEST SWAP4 POP PUSH2 0x237F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x231F JUMP JUMPDEST PUSH2 0x2388 DUP2 PUSH2 0x2349 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 0x23AD DUP2 DUP5 PUSH2 0x235A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x23C8 DUP2 PUSH2 0x23B5 JUMP JUMPDEST DUP2 EQ PUSH2 0x23D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x23E5 DUP2 PUSH2 0x23BF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2401 JUMPI PUSH2 0x2400 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x240F DUP5 DUP3 DUP6 ADD PUSH2 0x23D6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2421 DUP2 PUSH2 0x23B5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x243C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2418 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x247F DUP3 PUSH2 0x2349 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x249E JUMPI PUSH2 0x249D PUSH2 0x2447 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24B1 PUSH2 0x2109 JUMP JUMPDEST SWAP1 POP PUSH2 0x24BD DUP3 DUP3 PUSH2 0x2476 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x24DD JUMPI PUSH2 0x24DC PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2506 PUSH2 0x2501 DUP5 PUSH2 0x24C2 JUMP JUMPDEST PUSH2 0x24A7 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 0x2529 JUMPI PUSH2 0x2528 PUSH2 0x24EE JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2552 JUMPI DUP1 PUSH2 0x253E DUP9 DUP3 PUSH2 0x219C JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x252B JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2571 JUMPI PUSH2 0x2570 PUSH2 0x2442 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2581 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x24F3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x25AA JUMPI PUSH2 0x25A9 PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH2 0x25B3 DUP3 PUSH2 0x2349 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 0x25E2 PUSH2 0x25DD DUP5 PUSH2 0x258F JUMP JUMPDEST PUSH2 0x24A7 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x25FE JUMPI PUSH2 0x25FD PUSH2 0x258A JUMP JUMPDEST JUMPDEST PUSH2 0x2609 DUP5 DUP3 DUP6 PUSH2 0x25C0 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2626 JUMPI PUSH2 0x2625 PUSH2 0x2442 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2636 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x25CF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x265B JUMPI PUSH2 0x265A PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2669 DUP9 DUP3 DUP10 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x267A DUP9 DUP3 DUP10 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x269B JUMPI PUSH2 0x269A PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x26A7 DUP9 DUP3 DUP10 ADD PUSH2 0x255C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x26C8 JUMPI PUSH2 0x26C7 PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x26D4 DUP9 DUP3 DUP10 ADD PUSH2 0x255C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x26F5 JUMPI PUSH2 0x26F4 PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x2701 DUP9 DUP3 DUP10 ADD PUSH2 0x2611 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2725 JUMPI PUSH2 0x2724 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2733 DUP6 DUP3 DUP7 ADD PUSH2 0x23D6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2744 DUP6 DUP3 DUP7 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2769 JUMPI PUSH2 0x2768 PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x278D PUSH2 0x2788 DUP5 PUSH2 0x274E JUMP JUMPDEST PUSH2 0x24A7 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 0x27B0 JUMPI PUSH2 0x27AF PUSH2 0x24EE JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x27D9 JUMPI DUP1 PUSH2 0x27C5 DUP9 DUP3 PUSH2 0x2166 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x27B2 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x27F8 JUMPI PUSH2 0x27F7 PUSH2 0x2442 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2808 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x277A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2828 JUMPI PUSH2 0x2827 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2846 JUMPI PUSH2 0x2845 PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x2852 DUP6 DUP3 DUP7 ADD PUSH2 0x27E3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2873 JUMPI PUSH2 0x2872 PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x287F DUP6 DUP3 DUP7 ADD PUSH2 0x255C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x28BE DUP2 PUSH2 0x217B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28D0 DUP4 DUP4 PUSH2 0x28B5 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 0x28F4 DUP3 PUSH2 0x2889 JUMP JUMPDEST PUSH2 0x28FE DUP2 DUP6 PUSH2 0x2894 JUMP JUMPDEST SWAP4 POP PUSH2 0x2909 DUP4 PUSH2 0x28A5 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x293A JUMPI DUP2 MLOAD PUSH2 0x2921 DUP9 DUP3 PUSH2 0x28C4 JUMP JUMPDEST SWAP8 POP PUSH2 0x292C DUP4 PUSH2 0x28DC JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x290D JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2961 DUP2 DUP5 PUSH2 0x28E9 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2983 JUMPI PUSH2 0x2982 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2991 DUP8 DUP3 DUP9 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x29A2 DUP8 DUP3 DUP9 ADD PUSH2 0x219C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x29B3 DUP8 DUP3 DUP9 ADD PUSH2 0x219C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x29D4 JUMPI PUSH2 0x29D3 PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x29E0 DUP8 DUP3 DUP9 ADD PUSH2 0x2611 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2A07 JUMPI PUSH2 0x2A06 PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH2 0x2A10 DUP3 PUSH2 0x2349 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A30 PUSH2 0x2A2B DUP5 PUSH2 0x29EC JUMP JUMPDEST PUSH2 0x24A7 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2A4C JUMPI PUSH2 0x2A4B PUSH2 0x258A JUMP JUMPDEST JUMPDEST PUSH2 0x2A57 DUP5 DUP3 DUP6 PUSH2 0x25C0 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2A74 JUMPI PUSH2 0x2A73 PUSH2 0x2442 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2A84 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2A1D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2AA4 JUMPI PUSH2 0x2AA3 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2AB2 DUP6 DUP3 DUP7 ADD PUSH2 0x219C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2AD3 JUMPI PUSH2 0x2AD2 PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x2ADF DUP6 DUP3 DUP7 ADD PUSH2 0x2A5F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AFF JUMPI PUSH2 0x2AFE PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2B1D JUMPI PUSH2 0x2B1C PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x2B29 DUP5 DUP3 DUP6 ADD PUSH2 0x2A5F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2B3B DUP2 PUSH2 0x22A0 JUMP JUMPDEST DUP2 EQ PUSH2 0x2B46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2B58 DUP2 PUSH2 0x2B32 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2B75 JUMPI PUSH2 0x2B74 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2B83 DUP6 DUP3 DUP7 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2B94 DUP6 DUP3 DUP7 ADD PUSH2 0x2B49 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2BB5 JUMPI PUSH2 0x2BB4 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2BC3 DUP6 DUP3 DUP7 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2BD4 DUP6 DUP3 DUP7 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2BFA JUMPI PUSH2 0x2BF9 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2C08 DUP9 DUP3 DUP10 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x2C19 DUP9 DUP3 DUP10 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x2C2A DUP9 DUP3 DUP10 ADD PUSH2 0x219C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x2C3B DUP9 DUP3 DUP10 ADD PUSH2 0x219C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2C5C JUMPI PUSH2 0x2C5B PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x2C68 DUP9 DUP3 DUP10 ADD PUSH2 0x2611 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2C8E JUMPI PUSH2 0x2C8D PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2C9C DUP7 DUP3 DUP8 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x2CAD DUP7 DUP3 DUP8 ADD PUSH2 0x219C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x2CBE DUP7 DUP3 DUP8 ADD PUSH2 0x219C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 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 0x2D0F JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2D22 JUMPI PUSH2 0x2D21 PUSH2 0x2CC8 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2D31 DUP2 PUSH2 0x213D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2D4C PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x2D59 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2D28 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2D75 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x21F1 JUMP JUMPDEST PUSH2 0x2D82 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x21F1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2DCD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x2DDA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x21F1 JUMP JUMPDEST 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 0x2E10 PUSH2 0x2E0B PUSH2 0x2E06 DUP5 PUSH2 0x2DE1 JUMP JUMPDEST PUSH2 0x2DEB JUMP JUMPDEST PUSH2 0x217B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2E20 DUP2 PUSH2 0x2DF5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2E3B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2E17 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4163636F756E742063616E6E6F7420626520656D707479000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E77 PUSH1 0x17 DUP4 PUSH2 0x230E JUMP JUMPDEST SWAP2 POP PUSH2 0x2E82 DUP3 PUSH2 0x2E41 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2EA6 DUP2 PUSH2 0x2E6A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x2EDA DUP2 PUSH2 0x2CF7 JUMP JUMPDEST PUSH2 0x2EE4 DUP2 DUP7 PUSH2 0x2EAD JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0x2EFF JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x2F14 JUMPI PUSH2 0x2F47 JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE DUP2 ISZERO ISZERO DUP3 MUL DUP7 ADD SWAP4 POP PUSH2 0x2F47 JUMP JUMPDEST PUSH2 0x2F1D DUP6 PUSH2 0x2EB8 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2F3F JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2F20 JUMP JUMPDEST DUP4 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x2F6170692F76312F6E66742F0000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F86 PUSH1 0xC DUP4 PUSH2 0x2EAD JUMP JUMPDEST SWAP2 POP PUSH2 0x2F91 DUP3 PUSH2 0x2F50 JUMP JUMPDEST PUSH1 0xC DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FA7 DUP3 PUSH2 0x2303 JUMP JUMPDEST PUSH2 0x2FB1 DUP2 DUP6 PUSH2 0x2EAD JUMP JUMPDEST SWAP4 POP PUSH2 0x2FC1 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x231F JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x2F00000000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3003 PUSH1 0x1 DUP4 PUSH2 0x2EAD JUMP JUMPDEST SWAP2 POP PUSH2 0x300E DUP3 PUSH2 0x2FCD JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x2F72657075746174696F6E2D73636F7265000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x304F PUSH1 0x11 DUP4 PUSH2 0x2EAD JUMP JUMPDEST SWAP2 POP PUSH2 0x305A DUP3 PUSH2 0x3019 JUMP JUMPDEST PUSH1 0x11 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3071 DUP3 DUP7 PUSH2 0x2ECD JUMP JUMPDEST SWAP2 POP PUSH2 0x307C DUP3 PUSH2 0x2F79 JUMP JUMPDEST SWAP2 POP PUSH2 0x3088 DUP3 DUP6 PUSH2 0x2F9C JUMP JUMPDEST SWAP2 POP PUSH2 0x3093 DUP3 PUSH2 0x2FF6 JUMP JUMPDEST SWAP2 POP PUSH2 0x309F DUP3 DUP5 PUSH2 0x2F9C JUMP JUMPDEST SWAP2 POP PUSH2 0x30AA DUP3 PUSH2 0x3042 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x30C4 DUP2 PUSH2 0x2CF7 JUMP JUMPDEST PUSH2 0x30CE DUP2 DUP7 PUSH2 0x230E JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0x30E9 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x30FF JUMPI PUSH2 0x3132 JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE DUP2 ISZERO ISZERO PUSH1 0x20 MUL DUP7 ADD SWAP4 POP PUSH2 0x3132 JUMP JUMPDEST PUSH2 0x3108 DUP6 PUSH2 0x2EB8 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x312A JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x310B JUMP JUMPDEST DUP1 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP 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 0x3155 DUP2 DUP6 PUSH2 0x30B7 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x3169 DUP2 DUP5 PUSH2 0x235A JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP 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 0x31BF PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x3182 JUMP JUMPDEST PUSH2 0x31C9 DUP7 DUP4 PUSH2 0x3182 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 0x31FC PUSH2 0x31F7 PUSH2 0x31F2 DUP5 PUSH2 0x217B JUMP JUMPDEST PUSH2 0x2DEB JUMP JUMPDEST PUSH2 0x217B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3216 DUP4 PUSH2 0x31E1 JUMP JUMPDEST PUSH2 0x322A PUSH2 0x3222 DUP3 PUSH2 0x3203 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x318F JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x323F PUSH2 0x3232 JUMP JUMPDEST PUSH2 0x324A DUP2 DUP5 DUP5 PUSH2 0x320D JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x326E JUMPI PUSH2 0x3263 PUSH1 0x0 DUP3 PUSH2 0x3237 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x3250 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x32B3 JUMPI PUSH2 0x3284 DUP2 PUSH2 0x2EB8 JUMP JUMPDEST PUSH2 0x328D DUP5 PUSH2 0x3172 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x329C JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x32B0 PUSH2 0x32A8 DUP6 PUSH2 0x3172 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x324F 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 0x32D6 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x32B8 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x32EF DUP4 DUP4 PUSH2 0x32C5 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x3308 DUP3 PUSH2 0x2303 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3321 JUMPI PUSH2 0x3320 PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH2 0x332B DUP3 SLOAD PUSH2 0x2CF7 JUMP JUMPDEST PUSH2 0x3336 DUP3 DUP3 DUP6 PUSH2 0x3272 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x3369 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x3357 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x3361 DUP6 DUP3 PUSH2 0x32E3 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x3377 DUP7 PUSH2 0x2EB8 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x339F 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 0x337A JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x33BC JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x33B8 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x32C5 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 PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x340B DUP3 PUSH2 0x217B JUMP JUMPDEST SWAP2 POP PUSH2 0x3416 DUP4 PUSH2 0x217B JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x342E JUMPI PUSH2 0x342D PUSH2 0x33D1 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3449 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2D28 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x5552492063616E6E6F7420626520656D70747900000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34B4 PUSH1 0x13 DUP4 PUSH2 0x230E JUMP JUMPDEST SWAP2 POP PUSH2 0x34BF DUP3 PUSH2 0x347E JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x34E3 DUP2 PUSH2 0x34A7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x34F3 DUP2 PUSH2 0x221B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x350E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x34EA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3529 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x3536 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2418 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x3552 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x355F PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x21F1 JUMP JUMPDEST PUSH2 0x356C PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x21F1 JUMP JUMPDEST PUSH2 0x3579 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x21F1 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x359C DUP2 DUP6 PUSH2 0x28E9 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x35B0 DUP2 DUP5 PUSH2 0x28E9 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 0x35E0 DUP3 PUSH2 0x35B9 JUMP JUMPDEST PUSH2 0x35EA DUP2 DUP6 PUSH2 0x35C4 JUMP JUMPDEST SWAP4 POP PUSH2 0x35FA DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x231F JUMP JUMPDEST PUSH2 0x3603 DUP2 PUSH2 0x2349 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x3623 PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x3630 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x363D PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x21F1 JUMP JUMPDEST PUSH2 0x364A PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x21F1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x365C DUP2 DUP5 PUSH2 0x35D5 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x3677 DUP2 PUSH2 0x2247 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3693 JUMPI PUSH2 0x3692 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x36A1 DUP5 DUP3 DUP6 ADD PUSH2 0x3668 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x36BF PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x36CC PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2D28 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x36DE DUP2 DUP7 PUSH2 0x28E9 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x36F2 DUP2 DUP6 PUSH2 0x28E9 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x3706 DUP2 DUP5 PUSH2 0x35D5 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x24 0xE SWAP11 PUSH30 0xAAB5D9EBA2793E75F4BBF0E9A74F133868AC14D5E9561767BB722E826473 PUSH16 0x6C634300081A00330000000000000000 ", + "sourceMap": "336:2840:16:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2247:132:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2368:263:16;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2084:103:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3810:120:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4014:429:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4226:136:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5328:245;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2536:552:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1468:80:16;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1762:350;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2845:329;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2854:136:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2637:202:16;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2187:49:0;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3156:144:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1554:202:16;;;:::i;:::-;;4642:138:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3367:157:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3591:351;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2118:244:16;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2247:132:3;2324:7;2350:9;:13;2360:2;2350:13;;;;;;;;;;;:22;2364:7;2350:22;;;;;;;;;;;;;;;;2343:29;;2247:132;;;;:::o;2368:263:16:-;2483:4;2503:30;2511:4;2503:28;;;:30::i;:::-;2499:104;;;2556:36;2580:11;2556:23;:36::i;:::-;2549:43;;;;2499:104;2619:5;2612:12;;2368:263;;;;:::o;2084:103:3:-;2144:13;2176:4;2169:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2084:103;;;:::o;3810:120:0:-;3875:7;3901:6;:12;3908:4;3901:12;;;;;;;;;;;:22;;;3894:29;;3810:120;;;:::o;4014:429:3:-;4208:14;4225:12;:10;:12::i;:::-;4208:29;;4259:6;4251:14;;:4;:14;;;;:49;;;;;4270:30;4287:4;4293:6;4270:16;:30::i;:::-;4269:31;4251:49;4247:129;;;4352:6;4360:4;4323:42;;;;;;;;;;;;:::i;:::-;;;;;;;;4247:129;4385:51;4408:4;4414:2;4418:3;4423:6;4431:4;4385:22;:51::i;:::-;4198:245;4014:429;;;;;:::o;4226:136:0:-;4300:18;4313:4;4300:12;:18::i;:::-;2464:16;2475:4;2464:10;:16::i;:::-;4330:25:::1;4341:4;4347:7;4330:10;:25::i;:::-;;4226:136:::0;;;:::o;5328:245::-;5443:12;:10;:12::i;:::-;5421:34;;:18;:34;;;5417:102;;5478:30;;;;;;;;;;;;;;5417:102;5529:37;5541:4;5547:18;5529:11;:37::i;:::-;;5328:245;;:::o;2536:552:3:-;2660:16;2711:3;:10;2692:8;:15;:29;2688:121;;2770:3;:10;2782:8;:15;2744:54;;;;;;;;;;;;:::i;:::-;;;;;;;;2688:121;2819:30;2866:8;:15;2852:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2819:63;;2898:9;2893:158;2917:8;:15;2913:1;:19;2893:158;;;2972:68;2982:30;3010:1;2982:8;:27;;:30;;;;:::i;:::-;3014:25;3037:1;3014:3;:22;;:25;;;;:::i;:::-;2972:9;:68::i;:::-;2953:13;2967:1;2953:16;;;;;;;;:::i;:::-;;;;;;;:87;;;;;2934:3;;;;;2893:158;;;;3068:13;3061:20;;;2536:552;;;;:::o;1468:80:16:-;1510:4;1533:8;;1526:15;;1468:80;:::o;1762:350::-;1908:7;1053:22;1067:7;1053:13;:22::i;:::-;1962:1:::1;1931:27;1941:7;1950;1931:9;:27::i;:::-;:32;1927:97;;1996:7;2005;1986:27;;;;;;;;;;;;:::i;:::-;;;;;;;;1927:97;2033:32;2039:7;2048;2057:1;2060:4;2033:5;:32::i;:::-;2094:7;2085;2080:25;;;2103:1;2080:25;;;;;;:::i;:::-;;;;;;;;1762:350:::0;;;;;:::o;2845:329::-;2985:13;2942:7;1053:22;1067:7;1053:13;:22::i;:::-;2967:7:::1;1361:1;1342:7;1336:21;:26:::0;1332:113:::1;;1385:49;;;;;;;;;;:::i;:::-;;;;;;;;1332:113;3070:9:::2;3095:25;3112:7;3095:16;:25::i;:::-;3125:7;3053:100;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3010:157;;1085:1:::1;2845:329:::0;;;;;:::o;2854:136:0:-;2931:4;2954:6;:12;2961:4;2954:12;;;;;;;;;;;:20;;:29;2975:7;2954:29;;;;;;;;;;;;;;;;;;;;;;;;;2947:36;;2854:136;;;;:::o;2637:202:16:-;2232:4:0;2700:18:16;;2464:16:0;2475:4;2464:10;:16::i;:::-;2730:26:16::1;2749:6;2730:18;:26::i;:::-;2771:33;2786:9;2797:6;2771:33;;;;;;;:::i;:::-;;;;;;;;2826:6;2814:9;:18;;;;;;:::i;:::-;;2637:202:::0;;:::o;2187:49:0:-;2232:4;2187:49;;;:::o;3156:144:3:-;3241:52;3260:12;:10;:12::i;:::-;3274:8;3284;3241:18;:52::i;:::-;3156:144;;:::o;1554:202:16:-;1590:17;1610:8;;1590:28;;1628:38;1634:10;1646:12;1660:1;1628:38;;;;;;;;;;;;:5;:38::i;:::-;1699:12;1687:10;1681:31;;;;;;;;;;;;1748:1;1733:12;:16;;;;:::i;:::-;1722:8;:27;;;;1580:176;1554:202::o;4642:138:0:-;4717:18;4730:4;4717:12;:18::i;:::-;2464:16;2475:4;2464:10;:16::i;:::-;4747:26:::1;4759:4;4765:7;4747:11;:26::i;:::-;;4642:138:::0;;;:::o;3367:157:3:-;3457:4;3480:18;:27;3499:7;3480:27;;;;;;;;;;;;;;;:37;3508:8;3480:37;;;;;;;;;;;;;;;;;;;;;;;;;3473:44;;3367:157;;;;:::o;3591:351::-;3714:14;3731:12;:10;:12::i;:::-;3714:29;;3765:6;3757:14;;:4;:14;;;;:49;;;;;3776:30;3793:4;3799:6;3776:16;:30::i;:::-;3775:31;3757:49;3753:129;;;3858:6;3866:4;3829:42;;;;;;;;;;;;:::i;:::-;;;;;;;;3753:129;3891:44;3909:4;3915:2;3919;3923:5;3930:4;3891:17;:44::i;:::-;3704:238;3591:351;;;;;:::o;2118:244:16:-;2237:7;1053:22;1067:7;1053:13;:22::i;:::-;2261:7:::1;2270;1179:10;1168:21;;:7;:21;;;1164:87;;1223:7;1232;1212:28;;;;;;;;;;;;:::i;:::-;;;;;;;;1164:87;2289:26:::2;2295:7;2304;2313:1;2289:5;:26::i;:::-;2344:7;2335;2330:25;;;2353:1;2330:25;;;;;;:::i;:::-;;;;;;;;1085:1:::1;;2118:244:::0;;;;:::o;719:426:12:-;783:4;990:68;1023:7;1032:25;990:32;:68::i;:::-;:148;;;;;1075:63;1108:7;614:10;1117:20;;1075:32;:63::i;:::-;1074:64;990:148;971:167;;719:426;;;:::o;2565:202:0:-;2650:4;2688:32;2673:47;;;:11;:47;;;;:87;;;;2724:36;2748:11;2724:23;:36::i;:::-;2673:87;2666:94;;2565:202;;;:::o;656:96:8:-;709:7;735:10;728:17;;656:96;:::o;9015:445:3:-;9222:1;9208:16;;:2;:16;;;9204:88;;9278:1;9247:34;;;;;;;;;;;:::i;:::-;;;;;;;;9204:88;9321:1;9305:18;;:4;:18;;;9301:88;;9375:1;9346:32;;;;;;;;;;;:::i;:::-;;;;;;;;9301:88;9398:55;9425:4;9431:2;9435:3;9440:6;9448:4;9398:26;:55::i;:::-;9015:445;;;;;:::o;3199:103:0:-;3265:30;3276:4;3282:12;:10;:12::i;:::-;3265:10;:30::i;:::-;3199:103;:::o;6179:316::-;6256:4;6277:22;6285:4;6291:7;6277;:22::i;:::-;6272:217;;6347:4;6315:6;:12;6322:4;6315:12;;;;;;;;;;;:20;;:29;6336:7;6315:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;6397:12;:10;:12::i;:::-;6370:40;;6388:7;6370:40;;6382:4;6370:40;;;;;;;;;;6431:4;6424:11;;;;6272:217;6473:5;6466:12;;6179:316;;;;;:::o;6730:317::-;6808:4;6828:22;6836:4;6842:7;6828;:22::i;:::-;6824:217;;;6898:5;6866:6;:12;6873:4;6866:12;;;;;;;;;;;:20;;:29;6887:7;6866:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;6949:12;:10;:12::i;:::-;6922:40;;6940:7;6922:40;;6934:4;6922:40;;;;;;;;;;6983:4;6976:11;;;;6824:217;7025:5;7018:12;;6730:317;;;;;:::o;4603:197:7:-;4689:11;4777:4;4772:3;4768:14;4761:4;4756:3;4752:14;4748:35;4742:42;4735:49;;4603:197;;;;:::o;4204:::-;4290:11;4378:4;4373:3;4369:14;4362:4;4357:3;4353:14;4349:35;4343:42;4336:49;;4204:197;;;;:::o;681:140:16:-;756:8;;745:7;:19;741:74;;796:7;787:17;;;;;;;;;;;:::i;:::-;;;;;;;;741:74;681:140;:::o;10746:346:3:-;10856:1;10842:16;;:2;:16;;;10838:88;;10912:1;10881:34;;;;;;;;;;;:::i;:::-;;;;;;;;10838:88;10936:20;10958:23;10985:29;11004:2;11008:5;10985:18;:29::i;:::-;10935:79;;;;11024:61;11059:1;11063:2;11067:3;11072:6;11080:4;11024:26;:61::i;:::-;10828:264;;10746:346;;;;:::o;637:698:10:-;693:13;742:14;779:1;759:17;770:5;759:10;:17::i;:::-;:21;742:38;;794:20;828:6;817:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;794:41;;849:11;975:6;971:2;967:15;959:6;955:28;948:35;;1010:282;1017:4;1010:282;;;1041:5;;;;;;;;1180:10;1175:2;1168:5;1164:14;1159:32;1154:3;1146:46;1236:2;1227:11;;;;;;:::i;:::-;;;;;1269:1;1260:5;:10;1010:282;1256:21;1010:282;1312:6;1305:13;;;;;637:698;;;:::o;827:174:16:-;929:1;911:6;905:20;:25;901:94;;953:31;;;;;;;;;;:::i;:::-;;;;;;;;901:94;827:174;:::o;13268:315:3:-;13395:1;13375:22;;:8;:22;;;13371:94;;13451:1;13420:34;;;;;;;;;;;:::i;:::-;;;;;;;;13371:94;13512:8;13474:18;:25;13493:5;13474:25;;;;;;;;;;;;;;;:35;13500:8;13474:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;13557:8;13535:41;;13550:5;13535:41;;;13567:8;13535:41;;;;;;:::i;:::-;;;;;;;;13268:315;;;:::o;8151:463::-;8287:1;8273:16;;:2;:16;;;8269:88;;8343:1;8312:34;;;;;;;;;;;:::i;:::-;;;;;;;;8269:88;8386:1;8370:18;;:4;:18;;;8366:88;;8440:1;8411:32;;;;;;;;;;;:::i;:::-;;;;;;;;8366:88;8464:20;8486:23;8513:29;8532:2;8536:5;8513:18;:29::i;:::-;8463:79;;;;8552:55;8579:4;8585:2;8589:3;8594:6;8602:4;8552:26;:55::i;:::-;8259:355;;8151:463;;;;;:::o;12099:329::-;12194:1;12178:18;;:4;:18;;;12174:88;;12248:1;12219:32;;;;;;;;;;;:::i;:::-;;;;;;;;12174:88;12272:20;12294:23;12321:29;12340:2;12344:5;12321:18;:29::i;:::-;12271:79;;;;12360:61;12387:4;12401:1;12405:3;12410:6;12360:61;;;;;;;;;;;;:26;:61::i;:::-;12164:264;;12099:329;;;:::o;4397:632:12:-;4499:4;4539:26;4611:11;4568:56;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4539:85;;4666:12;4688:18;4716:19;4860:4;4854;4838:13;4832:20;4825:4;4810:13;4806:24;4797:7;4790:5;4779:86;4768:97;;4892:16;4878:30;;4942:4;4936:11;4921:26;;4974:7;:29;;;;;4999:4;4985:10;:18;;4974:29;:48;;;;;5021:1;5007:11;:15;4974:48;4967:55;;;;;;4397:632;;;;:::o;1380:305:3:-;1482:4;1532:26;1517:41;;;:11;:41;;;;:109;;;;1589:37;1574:52;;;:11;:52;;;;1517:109;:161;;;;1642:36;1666:11;1642:23;:36::i;:::-;1517:161;1498:180;;1380:305;;;:::o;7004:690::-;7205:30;7213:4;7219:2;7223:3;7228:6;7205:7;:30::i;:::-;7263:1;7249:16;;:2;:16;;;7245:443;;7281:16;7300:12;:10;:12::i;:::-;7281:31;;7344:1;7330:3;:10;:15;7326:352;;7365:10;7378:25;7401:1;7378:3;:22;;:25;;;;:::i;:::-;7365:38;;7421:13;7437:28;7463:1;7437:6;:25;;:28;;;;:::i;:::-;7421:44;;7483:67;7514:8;7524:4;7530:2;7534;7538:5;7545:4;7483:30;:67::i;:::-;7347:218;;7326:352;;;7589:74;7625:8;7635:4;7641:2;7645:3;7650:6;7658:4;7589:35;:74::i;:::-;7326:352;7267:421;7245:443;7004:690;;;;;:::o;3432:197:0:-;3520:22;3528:4;3534:7;3520;:22::i;:::-;3515:108;;3598:7;3607:4;3565:47;;;;;;;;;;;;:::i;:::-;;;;;;;;3515:108;3432:197;;:::o;16080:849:3:-;16188:23;16213;16374:4;16368:11;16358:21;;16444:1;16436:6;16429:17;16582:8;16575:4;16567:6;16563:17;16556:35;16704:4;16696:6;16692:17;16682:27;;16737:1;16729:6;16722:17;16778:8;16771:4;16763:6;16759:17;16752:35;16907:4;16899:6;16895:17;16889:4;16882:31;16080:849;;;;;:::o;12214:916:14:-;12267:7;12286:14;12303:1;12286:18;;12351:8;12342:5;:17;12338:103;;12388:8;12379:17;;;;;;:::i;:::-;;;;;12424:2;12414:12;;;;12338:103;12467:8;12458:5;:17;12454:103;;12504:8;12495:17;;;;;;:::i;:::-;;;;;12540:2;12530:12;;;;12454:103;12583:8;12574:5;:17;12570:103;;12620:8;12611:17;;;;;;:::i;:::-;;;;;12656:2;12646:12;;;;12570:103;12699:7;12690:5;:16;12686:100;;12735:7;12726:16;;;;;;:::i;:::-;;;;;12770:1;12760:11;;;;12686:100;12812:7;12803:5;:16;12799:100;;12848:7;12839:16;;;;;;:::i;:::-;;;;;12883:1;12873:11;;;;12799:100;12925:7;12916:5;:16;12912:100;;12961:7;12952:16;;;;;;:::i;:::-;;;;;12996:1;12986:11;;;;12912:100;13038:7;13029:5;:16;13025:66;;13075:1;13065:11;;;;13025:66;13117:6;13110:13;;;12214:916;;;:::o;762:146:11:-;838:4;876:25;861:40;;;:11;:40;;;;854:47;;762:146;;;:::o;5144:1281:3:-;5279:6;:13;5265:3;:10;:27;5261:117;;5341:3;:10;5353:6;:13;5315:52;;;;;;;;;;;;:::i;:::-;;;;;;;;5261:117;5388:16;5407:12;:10;:12::i;:::-;5388:31;;5435:9;5430:691;5454:3;:10;5450:1;:14;5430:691;;;5485:10;5498:25;5521:1;5498:3;:22;;:25;;;;:::i;:::-;5485:38;;5537:13;5553:28;5579:1;5553:6;:25;;:28;;;;:::i;:::-;5537:44;;5616:1;5600:18;;:4;:18;;;5596:420;;5638:19;5660:9;:13;5670:2;5660:13;;;;;;;;;;;:19;5674:4;5660:19;;;;;;;;;;;;;;;;5638:41;;5715:5;5701:11;:19;5697:129;;;5778:4;5784:11;5797:5;5804:2;5751:56;;;;;;;;;;;;;;:::i;:::-;;;;;;;;5697:129;5978:5;5964:11;:19;5942:9;:13;5952:2;5942:13;;;;;;;;;;;:19;5956:4;5942:19;;;;;;;;;;;;;;;:41;;;;5620:396;5596:420;6048:1;6034:16;;:2;:16;;;6030:81;;6091:5;6070:9;:13;6080:2;6070:13;;;;;;;;;;;:17;6084:2;6070:17;;;;;;;;;;;;;;;;:26;;;;;;;:::i;:::-;;;;;;;;6030:81;5471:650;;5466:3;;;;;5430:691;;;;6149:1;6135:3;:10;:15;6131:288;;6166:10;6179:25;6202:1;6179:3;:22;;:25;;;;:::i;:::-;6166:38;;6218:13;6234:28;6260:1;6234:6;:25;;:28;;;;:::i;:::-;6218:44;;6312:2;6281:45;;6306:4;6281:45;;6296:8;6281:45;;;6316:2;6320:5;6281:45;;;;;;;:::i;:::-;;;;;;;;6152:185;;6131:288;;;6392:2;6362:46;;6386:4;6362:46;;6376:8;6362:46;;;6396:3;6401:6;6362:46;;;;;;;:::i;:::-;;;;;;;;6131:288;5251:1174;5144:1281;;;;:::o;13761:974::-;13984:1;13967:2;:14;;;:18;13963:766;;;14022:2;14005:38;;;14044:8;14054:4;14060:2;14064:5;14071:4;14005:71;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;14001:718;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14377:1;14360:6;:13;:18;14356:349;;14487:2;14464:26;;;;;;;;;;;:::i;:::-;;;;;;;;14356:349;14657:6;14651:13;14642:6;14638:2;14634:15;14627:38;14001:718;14137:43;;;14125:55;;;:8;:55;;;;14121:174;;14273:2;14250:26;;;;;;;;;;;:::i;:::-;;;;;;;;14121:174;14077:232;13963:766;13761:974;;;;;;:::o;14923:1041::-;15171:1;15154:2;:14;;;:18;15150:808;;;15209:2;15192:43;;;15236:8;15246:4;15252:3;15257:6;15265:4;15192:78;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;15188:760;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15606:1;15589:6;:13;:18;15585:349;;15716:2;15693:26;;;;;;;;;;;:::i;:::-;;;;;;;;15585:349;15886:6;15880:13;15871:6;15867:2;15863:15;15856:38;15188:760;15361:48;;;15349:60;;;:8;:60;;;;15345:179;;15502:2;15479:26;;;;;;;;;;;:::i;:::-;;;;;;;;15345:179;15271:267;15150:808;14923:1041;;;;;;:::o;7:75:18:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:474::-;1265:6;1273;1322:2;1310:9;1301:7;1297:23;1293:32;1290:119;;;1328:79;;:::i;:::-;1290:119;1448:1;1473:53;1518:7;1509:6;1498:9;1494:22;1473:53;:::i;:::-;1463:63;;1419:117;1575:2;1601:53;1646:7;1637:6;1626:9;1622:22;1601:53;:::i;:::-;1591:63;;1546:118;1197:474;;;;;:::o;1677:118::-;1764:24;1782:5;1764:24;:::i;:::-;1759:3;1752:37;1677:118;;:::o;1801:222::-;1894:4;1932:2;1921:9;1917:18;1909:26;;1945:71;2013:1;2002:9;1998:17;1989:6;1945:71;:::i;:::-;1801:222;;;;:::o;2029:149::-;2065:7;2105:66;2098:5;2094:78;2083:89;;2029:149;;;:::o;2184:120::-;2256:23;2273:5;2256:23;:::i;:::-;2249:5;2246:34;2236:62;;2294:1;2291;2284:12;2236:62;2184:120;:::o;2310:137::-;2355:5;2393:6;2380:20;2371:29;;2409:32;2435:5;2409:32;:::i;:::-;2310:137;;;;:::o;2453:327::-;2511:6;2560:2;2548:9;2539:7;2535:23;2531:32;2528:119;;;2566:79;;:::i;:::-;2528:119;2686:1;2711:52;2755:7;2746:6;2735:9;2731:22;2711:52;:::i;:::-;2701:62;;2657:116;2453:327;;;;:::o;2786:90::-;2820:7;2863:5;2856:13;2849:21;2838:32;;2786:90;;;:::o;2882:109::-;2963:21;2978:5;2963:21;:::i;:::-;2958:3;2951:34;2882:109;;:::o;2997:210::-;3084:4;3122:2;3111:9;3107:18;3099:26;;3135:65;3197:1;3186:9;3182:17;3173:6;3135:65;:::i;:::-;2997:210;;;;:::o;3213:329::-;3272:6;3321:2;3309:9;3300:7;3296:23;3292:32;3289:119;;;3327:79;;:::i;:::-;3289:119;3447:1;3472:53;3517:7;3508:6;3497:9;3493:22;3472:53;:::i;:::-;3462:63;;3418:117;3213:329;;;;:::o;3548:99::-;3600:6;3634:5;3628:12;3618:22;;3548:99;;;:::o;3653:169::-;3737:11;3771:6;3766:3;3759:19;3811:4;3806:3;3802:14;3787:29;;3653:169;;;;:::o;3828:248::-;3910:1;3920:113;3934:6;3931:1;3928:13;3920:113;;;4019:1;4014:3;4010:11;4004:18;4000:1;3995:3;3991:11;3984:39;3956:2;3953:1;3949:10;3944:15;;3920:113;;;4067:1;4058:6;4053:3;4049:16;4042:27;3890:186;3828:248;;;:::o;4082:102::-;4123:6;4174:2;4170:7;4165:2;4158:5;4154:14;4150:28;4140:38;;4082:102;;;:::o;4190:377::-;4278:3;4306:39;4339:5;4306:39;:::i;:::-;4361:71;4425:6;4420:3;4361:71;:::i;:::-;4354:78;;4441:65;4499:6;4494:3;4487:4;4480:5;4476:16;4441:65;:::i;:::-;4531:29;4553:6;4531:29;:::i;:::-;4526:3;4522:39;4515:46;;4282:285;4190:377;;;;:::o;4573:313::-;4686:4;4724:2;4713:9;4709:18;4701:26;;4773:9;4767:4;4763:20;4759:1;4748:9;4744:17;4737:47;4801:78;4874:4;4865:6;4801:78;:::i;:::-;4793:86;;4573:313;;;;:::o;4892:77::-;4929:7;4958:5;4947:16;;4892:77;;;:::o;4975:122::-;5048:24;5066:5;5048:24;:::i;:::-;5041:5;5038:35;5028:63;;5087:1;5084;5077:12;5028:63;4975:122;:::o;5103:139::-;5149:5;5187:6;5174:20;5165:29;;5203:33;5230:5;5203:33;:::i;:::-;5103:139;;;;:::o;5248:329::-;5307:6;5356:2;5344:9;5335:7;5331:23;5327:32;5324:119;;;5362:79;;:::i;:::-;5324:119;5482:1;5507:53;5552:7;5543:6;5532:9;5528:22;5507:53;:::i;:::-;5497:63;;5453:117;5248:329;;;;:::o;5583:118::-;5670:24;5688:5;5670:24;:::i;:::-;5665:3;5658:37;5583:118;;:::o;5707:222::-;5800:4;5838:2;5827:9;5823:18;5815:26;;5851:71;5919:1;5908:9;5904:17;5895:6;5851:71;:::i;:::-;5707:222;;;;:::o;5935:117::-;6044:1;6041;6034:12;6058:180;6106:77;6103:1;6096:88;6203:4;6200:1;6193:15;6227:4;6224:1;6217:15;6244:281;6327:27;6349:4;6327:27;:::i;:::-;6319:6;6315:40;6457:6;6445:10;6442:22;6421:18;6409:10;6406:34;6403:62;6400:88;;;6468:18;;:::i;:::-;6400:88;6508:10;6504:2;6497:22;6287:238;6244:281;;:::o;6531:129::-;6565:6;6592:20;;:::i;:::-;6582:30;;6621:33;6649:4;6641:6;6621:33;:::i;:::-;6531:129;;;:::o;6666:311::-;6743:4;6833:18;6825:6;6822:30;6819:56;;;6855:18;;:::i;:::-;6819:56;6905:4;6897:6;6893:17;6885:25;;6965:4;6959;6955:15;6947:23;;6666:311;;;:::o;6983:117::-;7092:1;7089;7082:12;7123:710;7219:5;7244:81;7260:64;7317:6;7260:64;:::i;:::-;7244:81;:::i;:::-;7235:90;;7345:5;7374:6;7367:5;7360:21;7408:4;7401:5;7397:16;7390:23;;7461:4;7453:6;7449:17;7441:6;7437:30;7490:3;7482:6;7479:15;7476:122;;;7509:79;;:::i;:::-;7476:122;7624:6;7607:220;7641:6;7636:3;7633:15;7607:220;;;7716:3;7745:37;7778:3;7766:10;7745:37;:::i;:::-;7740:3;7733:50;7812:4;7807:3;7803:14;7796:21;;7683:144;7667:4;7662:3;7658:14;7651:21;;7607:220;;;7611:21;7225:608;;7123:710;;;;;:::o;7856:370::-;7927:5;7976:3;7969:4;7961:6;7957:17;7953:27;7943:122;;7984:79;;:::i;:::-;7943:122;8101:6;8088:20;8126:94;8216:3;8208:6;8201:4;8193:6;8189:17;8126:94;:::i;:::-;8117:103;;7933:293;7856:370;;;;:::o;8232:117::-;8341:1;8338;8331:12;8355:307;8416:4;8506:18;8498:6;8495:30;8492:56;;;8528:18;;:::i;:::-;8492:56;8566:29;8588:6;8566:29;:::i;:::-;8558:37;;8650:4;8644;8640:15;8632:23;;8355:307;;;:::o;8668:148::-;8766:6;8761:3;8756;8743:30;8807:1;8798:6;8793:3;8789:16;8782:27;8668:148;;;:::o;8822:423::-;8899:5;8924:65;8940:48;8981:6;8940:48;:::i;:::-;8924:65;:::i;:::-;8915:74;;9012:6;9005:5;8998:21;9050:4;9043:5;9039:16;9088:3;9079:6;9074:3;9070:16;9067:25;9064:112;;;9095:79;;:::i;:::-;9064:112;9185:54;9232:6;9227:3;9222;9185:54;:::i;:::-;8905:340;8822:423;;;;;:::o;9264:338::-;9319:5;9368:3;9361:4;9353:6;9349:17;9345:27;9335:122;;9376:79;;:::i;:::-;9335:122;9493:6;9480:20;9518:78;9592:3;9584:6;9577:4;9569:6;9565:17;9518:78;:::i;:::-;9509:87;;9325:277;9264:338;;;;:::o;9608:1509::-;9762:6;9770;9778;9786;9794;9843:3;9831:9;9822:7;9818:23;9814:33;9811:120;;;9850:79;;:::i;:::-;9811:120;9970:1;9995:53;10040:7;10031:6;10020:9;10016:22;9995:53;:::i;:::-;9985:63;;9941:117;10097:2;10123:53;10168:7;10159:6;10148:9;10144:22;10123:53;:::i;:::-;10113:63;;10068:118;10253:2;10242:9;10238:18;10225:32;10284:18;10276:6;10273:30;10270:117;;;10306:79;;:::i;:::-;10270:117;10411:78;10481:7;10472:6;10461:9;10457:22;10411:78;:::i;:::-;10401:88;;10196:303;10566:2;10555:9;10551:18;10538:32;10597:18;10589:6;10586:30;10583:117;;;10619:79;;:::i;:::-;10583:117;10724:78;10794:7;10785:6;10774:9;10770:22;10724:78;:::i;:::-;10714:88;;10509:303;10879:3;10868:9;10864:19;10851:33;10911:18;10903:6;10900:30;10897:117;;;10933:79;;:::i;:::-;10897:117;11038:62;11092:7;11083:6;11072:9;11068:22;11038:62;:::i;:::-;11028:72;;10822:288;9608:1509;;;;;;;;:::o;11123:474::-;11191:6;11199;11248:2;11236:9;11227:7;11223:23;11219:32;11216:119;;;11254:79;;:::i;:::-;11216:119;11374:1;11399:53;11444:7;11435:6;11424:9;11420:22;11399:53;:::i;:::-;11389:63;;11345:117;11501:2;11527:53;11572:7;11563:6;11552:9;11548:22;11527:53;:::i;:::-;11517:63;;11472:118;11123:474;;;;;:::o;11603:311::-;11680:4;11770:18;11762:6;11759:30;11756:56;;;11792:18;;:::i;:::-;11756:56;11842:4;11834:6;11830:17;11822:25;;11902:4;11896;11892:15;11884:23;;11603:311;;;:::o;11937:710::-;12033:5;12058:81;12074:64;12131:6;12074:64;:::i;:::-;12058:81;:::i;:::-;12049:90;;12159:5;12188:6;12181:5;12174:21;12222:4;12215:5;12211:16;12204:23;;12275:4;12267:6;12263:17;12255:6;12251:30;12304:3;12296:6;12293:15;12290:122;;;12323:79;;:::i;:::-;12290:122;12438:6;12421:220;12455:6;12450:3;12447:15;12421:220;;;12530:3;12559:37;12592:3;12580:10;12559:37;:::i;:::-;12554:3;12547:50;12626:4;12621:3;12617:14;12610:21;;12497:144;12481:4;12476:3;12472:14;12465:21;;12421:220;;;12425:21;12039:608;;11937:710;;;;;:::o;12670:370::-;12741:5;12790:3;12783:4;12775:6;12771:17;12767:27;12757:122;;12798:79;;:::i;:::-;12757:122;12915:6;12902:20;12940:94;13030:3;13022:6;13015:4;13007:6;13003:17;12940:94;:::i;:::-;12931:103;;12747:293;12670:370;;;;:::o;13046:894::-;13164:6;13172;13221:2;13209:9;13200:7;13196:23;13192:32;13189:119;;;13227:79;;:::i;:::-;13189:119;13375:1;13364:9;13360:17;13347:31;13405:18;13397:6;13394:30;13391:117;;;13427:79;;:::i;:::-;13391:117;13532:78;13602:7;13593:6;13582:9;13578:22;13532:78;:::i;:::-;13522:88;;13318:302;13687:2;13676:9;13672:18;13659:32;13718:18;13710:6;13707:30;13704:117;;;13740:79;;:::i;:::-;13704:117;13845:78;13915:7;13906:6;13895:9;13891:22;13845:78;:::i;:::-;13835:88;;13630:303;13046:894;;;;;:::o;13946:114::-;14013:6;14047:5;14041:12;14031:22;;13946:114;;;:::o;14066:184::-;14165:11;14199:6;14194:3;14187:19;14239:4;14234:3;14230:14;14215:29;;14066:184;;;;:::o;14256:132::-;14323:4;14346:3;14338:11;;14376:4;14371:3;14367:14;14359:22;;14256:132;;;:::o;14394:108::-;14471:24;14489:5;14471:24;:::i;:::-;14466:3;14459:37;14394:108;;:::o;14508:179::-;14577:10;14598:46;14640:3;14632:6;14598:46;:::i;:::-;14676:4;14671:3;14667:14;14653:28;;14508:179;;;;:::o;14693:113::-;14763:4;14795;14790:3;14786:14;14778:22;;14693:113;;;:::o;14842:732::-;14961:3;14990:54;15038:5;14990:54;:::i;:::-;15060:86;15139:6;15134:3;15060:86;:::i;:::-;15053:93;;15170:56;15220:5;15170:56;:::i;:::-;15249:7;15280:1;15265:284;15290:6;15287:1;15284:13;15265:284;;;15366:6;15360:13;15393:63;15452:3;15437:13;15393:63;:::i;:::-;15386:70;;15479:60;15532:6;15479:60;:::i;:::-;15469:70;;15325:224;15312:1;15309;15305:9;15300:14;;15265:284;;;15269:14;15565:3;15558:10;;14966:608;;;14842:732;;;;:::o;15580:373::-;15723:4;15761:2;15750:9;15746:18;15738:26;;15810:9;15804:4;15800:20;15796:1;15785:9;15781:17;15774:47;15838:108;15941:4;15932:6;15838:108;:::i;:::-;15830:116;;15580:373;;;;:::o;15959:943::-;16054:6;16062;16070;16078;16127:3;16115:9;16106:7;16102:23;16098:33;16095:120;;;16134:79;;:::i;:::-;16095:120;16254:1;16279:53;16324:7;16315:6;16304:9;16300:22;16279:53;:::i;:::-;16269:63;;16225:117;16381:2;16407:53;16452:7;16443:6;16432:9;16428:22;16407:53;:::i;:::-;16397:63;;16352:118;16509:2;16535:53;16580:7;16571:6;16560:9;16556:22;16535:53;:::i;:::-;16525:63;;16480:118;16665:2;16654:9;16650:18;16637:32;16696:18;16688:6;16685:30;16682:117;;;16718:79;;:::i;:::-;16682:117;16823:62;16877:7;16868:6;16857:9;16853:22;16823:62;:::i;:::-;16813:72;;16608:287;15959:943;;;;;;;:::o;16908:308::-;16970:4;17060:18;17052:6;17049:30;17046:56;;;17082:18;;:::i;:::-;17046:56;17120:29;17142:6;17120:29;:::i;:::-;17112:37;;17204:4;17198;17194:15;17186:23;;16908:308;;;:::o;17222:425::-;17300:5;17325:66;17341:49;17383:6;17341:49;:::i;:::-;17325:66;:::i;:::-;17316:75;;17414:6;17407:5;17400:21;17452:4;17445:5;17441:16;17490:3;17481:6;17476:3;17472:16;17469:25;17466:112;;;17497:79;;:::i;:::-;17466:112;17587:54;17634:6;17629:3;17624;17587:54;:::i;:::-;17306:341;17222:425;;;;;:::o;17667:340::-;17723:5;17772:3;17765:4;17757:6;17753:17;17749:27;17739:122;;17780:79;;:::i;:::-;17739:122;17897:6;17884:20;17922:79;17997:3;17989:6;17982:4;17974:6;17970:17;17922:79;:::i;:::-;17913:88;;17729:278;17667:340;;;;:::o;18013:654::-;18091:6;18099;18148:2;18136:9;18127:7;18123:23;18119:32;18116:119;;;18154:79;;:::i;:::-;18116:119;18274:1;18299:53;18344:7;18335:6;18324:9;18320:22;18299:53;:::i;:::-;18289:63;;18245:117;18429:2;18418:9;18414:18;18401:32;18460:18;18452:6;18449:30;18446:117;;;18482:79;;:::i;:::-;18446:117;18587:63;18642:7;18633:6;18622:9;18618:22;18587:63;:::i;:::-;18577:73;;18372:288;18013:654;;;;;:::o;18673:509::-;18742:6;18791:2;18779:9;18770:7;18766:23;18762:32;18759:119;;;18797:79;;:::i;:::-;18759:119;18945:1;18934:9;18930:17;18917:31;18975:18;18967:6;18964:30;18961:117;;;18997:79;;:::i;:::-;18961:117;19102:63;19157:7;19148:6;19137:9;19133:22;19102:63;:::i;:::-;19092:73;;18888:287;18673:509;;;;:::o;19188:116::-;19258:21;19273:5;19258:21;:::i;:::-;19251:5;19248:32;19238:60;;19294:1;19291;19284:12;19238:60;19188:116;:::o;19310:133::-;19353:5;19391:6;19378:20;19369:29;;19407:30;19431:5;19407:30;:::i;:::-;19310:133;;;;:::o;19449:468::-;19514:6;19522;19571:2;19559:9;19550:7;19546:23;19542:32;19539:119;;;19577:79;;:::i;:::-;19539:119;19697:1;19722:53;19767:7;19758:6;19747:9;19743:22;19722:53;:::i;:::-;19712:63;;19668:117;19824:2;19850:50;19892:7;19883:6;19872:9;19868:22;19850:50;:::i;:::-;19840:60;;19795:115;19449:468;;;;;:::o;19923:474::-;19991:6;19999;20048:2;20036:9;20027:7;20023:23;20019:32;20016:119;;;20054:79;;:::i;:::-;20016:119;20174:1;20199:53;20244:7;20235:6;20224:9;20220:22;20199:53;:::i;:::-;20189:63;;20145:117;20301:2;20327:53;20372:7;20363:6;20352:9;20348:22;20327:53;:::i;:::-;20317:63;;20272:118;19923:474;;;;;:::o;20403:1089::-;20507:6;20515;20523;20531;20539;20588:3;20576:9;20567:7;20563:23;20559:33;20556:120;;;20595:79;;:::i;:::-;20556:120;20715:1;20740:53;20785:7;20776:6;20765:9;20761:22;20740:53;:::i;:::-;20730:63;;20686:117;20842:2;20868:53;20913:7;20904:6;20893:9;20889:22;20868:53;:::i;:::-;20858:63;;20813:118;20970:2;20996:53;21041:7;21032:6;21021:9;21017:22;20996:53;:::i;:::-;20986:63;;20941:118;21098:2;21124:53;21169:7;21160:6;21149:9;21145:22;21124:53;:::i;:::-;21114:63;;21069:118;21254:3;21243:9;21239:19;21226:33;21286:18;21278:6;21275:30;21272:117;;;21308:79;;:::i;:::-;21272:117;21413:62;21467:7;21458:6;21447:9;21443:22;21413:62;:::i;:::-;21403:72;;21197:288;20403:1089;;;;;;;;:::o;21498:619::-;21575:6;21583;21591;21640:2;21628:9;21619:7;21615:23;21611:32;21608:119;;;21646:79;;:::i;:::-;21608:119;21766:1;21791:53;21836:7;21827:6;21816:9;21812:22;21791:53;:::i;:::-;21781:63;;21737:117;21893:2;21919:53;21964:7;21955:6;21944:9;21940:22;21919:53;:::i;:::-;21909:63;;21864:118;22021:2;22047:53;22092:7;22083:6;22072:9;22068:22;22047:53;:::i;:::-;22037:63;;21992:118;21498:619;;;;;:::o;22123:180::-;22171:77;22168:1;22161:88;22268:4;22265:1;22258:15;22292:4;22289:1;22282:15;22309:320;22353:6;22390:1;22384:4;22380:12;22370:22;;22437:1;22431:4;22427:12;22458:18;22448:81;;22514:4;22506:6;22502:17;22492:27;;22448:81;22576:2;22568:6;22565:14;22545:18;22542:38;22539:84;;22595:18;;:::i;:::-;22539:84;22360:269;22309:320;;;:::o;22635:118::-;22722:24;22740:5;22722:24;:::i;:::-;22717:3;22710:37;22635:118;;:::o;22759:332::-;22880:4;22918:2;22907:9;22903:18;22895:26;;22931:71;22999:1;22988:9;22984:17;22975:6;22931:71;:::i;:::-;23012:72;23080:2;23069:9;23065:18;23056:6;23012:72;:::i;:::-;22759:332;;;;;:::o;23097:::-;23218:4;23256:2;23245:9;23241:18;23233:26;;23269:71;23337:1;23326:9;23322:17;23313:6;23269:71;:::i;:::-;23350:72;23418:2;23407:9;23403:18;23394:6;23350:72;:::i;:::-;23097:332;;;;;:::o;23435:180::-;23483:77;23480:1;23473:88;23580:4;23577:1;23570:15;23604:4;23601:1;23594:15;23621:332;23742:4;23780:2;23769:9;23765:18;23757:26;;23793:71;23861:1;23850:9;23846:17;23837:6;23793:71;:::i;:::-;23874:72;23942:2;23931:9;23927:18;23918:6;23874:72;:::i;:::-;23621:332;;;;;:::o;23959:85::-;24004:7;24033:5;24022:16;;23959:85;;;:::o;24050:60::-;24078:3;24099:5;24092:12;;24050:60;;;:::o;24116:158::-;24174:9;24207:61;24225:42;24234:32;24260:5;24234:32;:::i;:::-;24225:42;:::i;:::-;24207:61;:::i;:::-;24194:74;;24116:158;;;:::o;24280:147::-;24375:45;24414:5;24375:45;:::i;:::-;24370:3;24363:58;24280:147;;:::o;24433:238::-;24534:4;24572:2;24561:9;24557:18;24549:26;;24585:79;24661:1;24650:9;24646:17;24637:6;24585:79;:::i;:::-;24433:238;;;;:::o;24677:173::-;24817:25;24813:1;24805:6;24801:14;24794:49;24677:173;:::o;24856:366::-;24998:3;25019:67;25083:2;25078:3;25019:67;:::i;:::-;25012:74;;25095:93;25184:3;25095:93;:::i;:::-;25213:2;25208:3;25204:12;25197:19;;24856:366;;;:::o;25228:419::-;25394:4;25432:2;25421:9;25417:18;25409:26;;25481:9;25475:4;25471:20;25467:1;25456:9;25452:17;25445:47;25509:131;25635:4;25509:131;:::i;:::-;25501:139;;25228:419;;;:::o;25653:148::-;25755:11;25792:3;25777:18;;25653:148;;;;:::o;25807:141::-;25856:4;25879:3;25871:11;;25902:3;25899:1;25892:14;25936:4;25933:1;25923:18;25915:26;;25807:141;;;:::o;25978:874::-;26081:3;26118:5;26112:12;26147:36;26173:9;26147:36;:::i;:::-;26199:89;26281:6;26276:3;26199:89;:::i;:::-;26192:96;;26319:1;26308:9;26304:17;26335:1;26330:166;;;;26510:1;26505:341;;;;26297:549;;26330:166;26414:4;26410:9;26399;26395:25;26390:3;26383:38;26476:6;26469:14;26462:22;26454:6;26450:35;26445:3;26441:45;26434:52;;26330:166;;26505:341;26572:38;26604:5;26572:38;:::i;:::-;26632:1;26646:154;26660:6;26657:1;26654:13;26646:154;;;26734:7;26728:14;26724:1;26719:3;26715:11;26708:35;26784:1;26775:7;26771:15;26760:26;;26682:4;26679:1;26675:12;26670:17;;26646:154;;;26829:6;26824:3;26820:16;26813:23;;26512:334;;26297:549;;26085:767;;25978:874;;;;:::o;26858:162::-;26998:14;26994:1;26986:6;26982:14;26975:38;26858:162;:::o;27026:402::-;27186:3;27207:85;27289:2;27284:3;27207:85;:::i;:::-;27200:92;;27301:93;27390:3;27301:93;:::i;:::-;27419:2;27414:3;27410:12;27403:19;;27026:402;;;:::o;27434:390::-;27540:3;27568:39;27601:5;27568:39;:::i;:::-;27623:89;27705:6;27700:3;27623:89;:::i;:::-;27616:96;;27721:65;27779:6;27774:3;27767:4;27760:5;27756:16;27721:65;:::i;:::-;27811:6;27806:3;27802:16;27795:23;;27544:280;27434:390;;;;:::o;27830:151::-;27970:3;27966:1;27958:6;27954:14;27947:27;27830:151;:::o;27987:400::-;28147:3;28168:84;28250:1;28245:3;28168:84;:::i;:::-;28161:91;;28261:93;28350:3;28261:93;:::i;:::-;28379:1;28374:3;28370:11;28363:18;;27987:400;;;:::o;28393:167::-;28533:19;28529:1;28521:6;28517:14;28510:43;28393:167;:::o;28566:402::-;28726:3;28747:85;28829:2;28824:3;28747:85;:::i;:::-;28740:92;;28841:93;28930:3;28841:93;:::i;:::-;28959:2;28954:3;28950:12;28943:19;;28566:402;;;:::o;28974:1387::-;29502:3;29524:92;29612:3;29603:6;29524:92;:::i;:::-;29517:99;;29633:148;29777:3;29633:148;:::i;:::-;29626:155;;29798:95;29889:3;29880:6;29798:95;:::i;:::-;29791:102;;29910:148;30054:3;29910:148;:::i;:::-;29903:155;;30075:95;30166:3;30157:6;30075:95;:::i;:::-;30068:102;;30187:148;30331:3;30187:148;:::i;:::-;30180:155;;30352:3;30345:10;;28974:1387;;;;;;:::o;30391:831::-;30476:3;30513:5;30507:12;30542:36;30568:9;30542:36;:::i;:::-;30594:71;30658:6;30653:3;30594:71;:::i;:::-;30587:78;;30696:1;30685:9;30681:17;30712:1;30707:164;;;;30885:1;30880:336;;;;30674:542;;30707:164;30791:4;30787:9;30776;30772:25;30767:3;30760:38;30851:6;30844:14;30837:22;30831:4;30827:33;30822:3;30818:43;30811:50;;30707:164;;30880:336;30947:38;30979:5;30947:38;:::i;:::-;31007:1;31021:154;31035:6;31032:1;31029:13;31021:154;;;31109:7;31103:14;31099:1;31094:3;31090:11;31083:35;31159:1;31150:7;31146:15;31135:26;;31057:4;31054:1;31050:12;31045:17;;31021:154;;;31204:1;31199:3;31195:11;31188:18;;30887:329;;30674:542;;30480:742;;30391:831;;;;:::o;31228:508::-;31386:4;31424:2;31413:9;31409:18;31401:26;;31473:9;31467:4;31463:20;31459:1;31448:9;31444:17;31437:47;31501:75;31571:4;31562:6;31501:75;:::i;:::-;31493:83;;31623:9;31617:4;31613:20;31608:2;31597:9;31593:18;31586:48;31651:78;31724:4;31715:6;31651:78;:::i;:::-;31643:86;;31228:508;;;;;:::o;31742:93::-;31779:6;31826:2;31821;31814:5;31810:14;31806:23;31796:33;;31742:93;;;:::o;31841:107::-;31885:8;31935:5;31929:4;31925:16;31904:37;;31841:107;;;;:::o;31954:393::-;32023:6;32073:1;32061:10;32057:18;32096:97;32126:66;32115:9;32096:97;:::i;:::-;32214:39;32244:8;32233:9;32214:39;:::i;:::-;32202:51;;32286:4;32282:9;32275:5;32271:21;32262:30;;32335:4;32325:8;32321:19;32314:5;32311:30;32301:40;;32030:317;;31954:393;;;;;:::o;32353:142::-;32403:9;32436:53;32454:34;32463:24;32481:5;32463:24;:::i;:::-;32454:34;:::i;:::-;32436:53;:::i;:::-;32423:66;;32353:142;;;:::o;32501:75::-;32544:3;32565:5;32558:12;;32501:75;;;:::o;32582:269::-;32692:39;32723:7;32692:39;:::i;:::-;32753:91;32802:41;32826:16;32802:41;:::i;:::-;32794:6;32787:4;32781:11;32753:91;:::i;:::-;32747:4;32740:105;32658:193;32582:269;;;:::o;32857:73::-;32902:3;32857:73;:::o;32936:189::-;33013:32;;:::i;:::-;33054:65;33112:6;33104;33098:4;33054:65;:::i;:::-;32989:136;32936:189;;:::o;33131:186::-;33191:120;33208:3;33201:5;33198:14;33191:120;;;33262:39;33299:1;33292:5;33262:39;:::i;:::-;33235:1;33228:5;33224:13;33215:22;;33191:120;;;33131:186;;:::o;33323:543::-;33424:2;33419:3;33416:11;33413:446;;;33458:38;33490:5;33458:38;:::i;:::-;33542:29;33560:10;33542:29;:::i;:::-;33532:8;33528:44;33725:2;33713:10;33710:18;33707:49;;;33746:8;33731:23;;33707:49;33769:80;33825:22;33843:3;33825:22;:::i;:::-;33815:8;33811:37;33798:11;33769:80;:::i;:::-;33428:431;;33413:446;33323:543;;;:::o;33872:117::-;33926:8;33976:5;33970:4;33966:16;33945:37;;33872:117;;;;:::o;33995:169::-;34039:6;34072:51;34120:1;34116:6;34108:5;34105:1;34101:13;34072:51;:::i;:::-;34068:56;34153:4;34147;34143:15;34133:25;;34046:118;33995:169;;;;:::o;34169:295::-;34245:4;34391:29;34416:3;34410:4;34391:29;:::i;:::-;34383:37;;34453:3;34450:1;34446:11;34440:4;34437:21;34429:29;;34169:295;;;;:::o;34469:1395::-;34586:37;34619:3;34586:37;:::i;:::-;34688:18;34680:6;34677:30;34674:56;;;34710:18;;:::i;:::-;34674:56;34754:38;34786:4;34780:11;34754:38;:::i;:::-;34839:67;34899:6;34891;34885:4;34839:67;:::i;:::-;34933:1;34957:4;34944:17;;34989:2;34981:6;34978:14;35006:1;35001:618;;;;35663:1;35680:6;35677:77;;;35729:9;35724:3;35720:19;35714:26;35705:35;;35677:77;35780:67;35840:6;35833:5;35780:67;:::i;:::-;35774:4;35767:81;35636:222;34971:887;;35001:618;35053:4;35049:9;35041:6;35037:22;35087:37;35119:4;35087:37;:::i;:::-;35146:1;35160:208;35174:7;35171:1;35168:14;35160:208;;;35253:9;35248:3;35244:19;35238:26;35230:6;35223:42;35304:1;35296:6;35292:14;35282:24;;35351:2;35340:9;35336:18;35323:31;;35197:4;35194:1;35190:12;35185:17;;35160:208;;;35396:6;35387:7;35384:19;35381:179;;;35454:9;35449:3;35445:19;35439:26;35497:48;35539:4;35531:6;35527:17;35516:9;35497:48;:::i;:::-;35489:6;35482:64;35404:156;35381:179;35606:1;35602;35594:6;35590:14;35586:22;35580:4;35573:36;35008:611;;;34971:887;;34561:1303;;;34469:1395;;:::o;35870:180::-;35918:77;35915:1;35908:88;36015:4;36012:1;36005:15;36039:4;36036:1;36029:15;36056:191;36096:3;36115:20;36133:1;36115:20;:::i;:::-;36110:25;;36149:20;36167:1;36149:20;:::i;:::-;36144:25;;36192:1;36189;36185:9;36178:16;;36213:3;36210:1;36207:10;36204:36;;;36220:18;;:::i;:::-;36204:36;36056:191;;;;:::o;36253:222::-;36346:4;36384:2;36373:9;36369:18;36361:26;;36397:71;36465:1;36454:9;36450:17;36441:6;36397:71;:::i;:::-;36253:222;;;;:::o;36481:180::-;36529:77;36526:1;36519:88;36626:4;36623:1;36616:15;36650:4;36647:1;36640:15;36667:169;36807:21;36803:1;36795:6;36791:14;36784:45;36667:169;:::o;36842:366::-;36984:3;37005:67;37069:2;37064:3;37005:67;:::i;:::-;36998:74;;37081:93;37170:3;37081:93;:::i;:::-;37199:2;37194:3;37190:12;37183:19;;36842:366;;;:::o;37214:419::-;37380:4;37418:2;37407:9;37403:18;37395:26;;37467:9;37461:4;37457:20;37453:1;37442:9;37438:17;37431:47;37495:131;37621:4;37495:131;:::i;:::-;37487:139;;37214:419;;;:::o;37639:115::-;37724:23;37741:5;37724:23;:::i;:::-;37719:3;37712:36;37639:115;;:::o;37760:218::-;37851:4;37889:2;37878:9;37874:18;37866:26;;37902:69;37968:1;37957:9;37953:17;37944:6;37902:69;:::i;:::-;37760:218;;;;:::o;37984:332::-;38105:4;38143:2;38132:9;38128:18;38120:26;;38156:71;38224:1;38213:9;38209:17;38200:6;38156:71;:::i;:::-;38237:72;38305:2;38294:9;38290:18;38281:6;38237:72;:::i;:::-;37984:332;;;;;:::o;38322:553::-;38499:4;38537:3;38526:9;38522:19;38514:27;;38551:71;38619:1;38608:9;38604:17;38595:6;38551:71;:::i;:::-;38632:72;38700:2;38689:9;38685:18;38676:6;38632:72;:::i;:::-;38714;38782:2;38771:9;38767:18;38758:6;38714:72;:::i;:::-;38796;38864:2;38853:9;38849:18;38840:6;38796:72;:::i;:::-;38322:553;;;;;;;:::o;38881:634::-;39102:4;39140:2;39129:9;39125:18;39117:26;;39189:9;39183:4;39179:20;39175:1;39164:9;39160:17;39153:47;39217:108;39320:4;39311:6;39217:108;:::i;:::-;39209:116;;39372:9;39366:4;39362:20;39357:2;39346:9;39342:18;39335:48;39400:108;39503:4;39494:6;39400:108;:::i;:::-;39392:116;;38881:634;;;;;:::o;39521:98::-;39572:6;39606:5;39600:12;39590:22;;39521:98;;;:::o;39625:168::-;39708:11;39742:6;39737:3;39730:19;39782:4;39777:3;39773:14;39758:29;;39625:168;;;;:::o;39799:373::-;39885:3;39913:38;39945:5;39913:38;:::i;:::-;39967:70;40030:6;40025:3;39967:70;:::i;:::-;39960:77;;40046:65;40104:6;40099:3;40092:4;40085:5;40081:16;40046:65;:::i;:::-;40136:29;40158:6;40136:29;:::i;:::-;40131:3;40127:39;40120:46;;39889:283;39799:373;;;;:::o;40178:751::-;40401:4;40439:3;40428:9;40424:19;40416:27;;40453:71;40521:1;40510:9;40506:17;40497:6;40453:71;:::i;:::-;40534:72;40602:2;40591:9;40587:18;40578:6;40534:72;:::i;:::-;40616;40684:2;40673:9;40669:18;40660:6;40616:72;:::i;:::-;40698;40766:2;40755:9;40751:18;40742:6;40698:72;:::i;:::-;40818:9;40812:4;40808:20;40802:3;40791:9;40787:19;40780:49;40846:76;40917:4;40908:6;40846:76;:::i;:::-;40838:84;;40178:751;;;;;;;;:::o;40935:141::-;40991:5;41022:6;41016:13;41007:22;;41038:32;41064:5;41038:32;:::i;:::-;40935:141;;;;:::o;41082:349::-;41151:6;41200:2;41188:9;41179:7;41175:23;41171:32;41168:119;;;41206:79;;:::i;:::-;41168:119;41326:1;41351:63;41406:7;41397:6;41386:9;41382:22;41351:63;:::i;:::-;41341:73;;41297:127;41082:349;;;;:::o;41437:1053::-;41760:4;41798:3;41787:9;41783:19;41775:27;;41812:71;41880:1;41869:9;41865:17;41856:6;41812:71;:::i;:::-;41893:72;41961:2;41950:9;41946:18;41937:6;41893:72;:::i;:::-;42012:9;42006:4;42002:20;41997:2;41986:9;41982:18;41975:48;42040:108;42143:4;42134:6;42040:108;:::i;:::-;42032:116;;42195:9;42189:4;42185:20;42180:2;42169:9;42165:18;42158:48;42223:108;42326:4;42317:6;42223:108;:::i;:::-;42215:116;;42379:9;42373:4;42369:20;42363:3;42352:9;42348:19;42341:49;42407:76;42478:4;42469:6;42407:76;:::i;:::-;42399:84;;41437:1053;;;;;;;;:::o" + }, + "methodIdentifiers": { + "DEFAULT_ADMIN_ROLE()": "a217fddf", + "balanceOf(address,uint256)": "00fdd58e", + "balanceOfBatch(address[],uint256[])": "4e1273f4", + "burn(address,uint256,uint256)": "f5298aca", + "counter()": "61bc221a", + "getRoleAdmin(bytes32)": "248a9ca3", + "grantRole(bytes32,address)": "2f2ff15d", + "hasRole(bytes32,address)": "91d14854", + "isApprovedForAll(address,address)": "e985e9c5", + "issue()": "d383f646", + "mint(address,uint256,uint256,bytes)": "731133e9", + "renounceRole(bytes32,address)": "36568abe", + "revokeRole(bytes32,address)": "d547741f", + "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)": "2eb2c2d6", + "safeTransferFrom(address,address,uint256,uint256,bytes)": "f242432a", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "updateBaseURI(string)": "931688cb", + "uri(uint256)": "0e89341c", + "uri(uint256,string)": "76b676f1" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"tokenURI_\",\"type\":\"string\"}],\"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\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"name\":\"EmptyAccountNotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"MintLimit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"NotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"NotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"name\":\"URIEmpty\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"oldURI\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"newURI\",\"type\":\"string\"}],\"name\":\"BaseURIUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Issue\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"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\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"counter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"issue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newURI\",\"type\":\"string\"}],\"name\":\"updateBaseURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"account\",\"type\":\"string\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"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.\"}],\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"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`)\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers.\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`.\"},\"URI(string,uint256)\":{\"details\":\"Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. If an {URI} event was emitted for `id`, the standard https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value returned by {IERC1155MetadataURI-uri}.\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"See {IERC1155-balanceOf}.\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"See {IERC1155-balanceOfBatch}. Requirements: - `accounts` and `ids` must have the same length.\"},\"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`.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC1155-isApprovedForAll}.\"},\"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.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155-safeBatchTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC1155-setApprovalForAll}.\"},\"uri(uint256)\":{\"details\":\"See {IERC1155MetadataURI-uri}. This implementation returns the same URI for *all* token types. It relies on the token type ID substitution mechanism https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP]. Clients calling this function must replace the `\\\\{id\\\\}` substring with the actual token type ID.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Engagement.sol\":\"Engagement\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\":{\"keccak256\":\"0xd9b0b8ee1ac6dfee14eb1ad4383a4739dbaa0f2036594bb3a16f0408085dadde\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6309805132e519162d1134c67df22dd963323a9208b4f41344a4c13ed63c1026\",\"dweb:/ipfs/QmTBPHnf6qbtAD4NVnKVFmubUHRqMDPLkseR6apxTUpsQo\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182\",\"dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xb69597a63b202e28401128bed6a6d259e8730191274471af7303eafb247881a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://25addbda49a578b3318130585601344c5149a5549d749adf88e9685349a46b23\",\"dweb:/ipfs/Qme2DuD8gpsve1ZvaSMQpBwMdpU7yAtekDwr7gUp8dX4zX\"]},\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0xe92b5e199b963d108ad6e06feeede151ba23849e0d064956535489ff967ffe68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://280e17738a67b06dae02fec32982bd48a8ab71d8df95e9975ae03532634bc522\",\"dweb:/ipfs/QmecjsNcFgy2mMjuNfRDkLpAYMRWnh5o73fw1Bj2rCso2z\"]},\"@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x8806d620b6571932b662cfd48fbd518d4f70df1f88a23b5724cacde64a77bda1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8043304c8f9e1c1dc4a41935efa067daa77ad7abbae1fda41f015d53fbf327a5\",\"dweb:/ipfs/QmTrF2hSkRZoN9EEu8zdEhBpGNZ7RxzCdXf9ydzc2HQ3tM\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0xac3d50e321a48a40b4496970ce725900f13aeb2255b7c1203f5adbe98c4a911a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1d7b235b578347dce2d831a76f122e820a7db7e73fd2e47f13bafdcd61c5b066\",\"dweb:/ipfs/QmVAELwambfJa55HfiCoz1kFFh7iYwRYeW5x8si6AFM4iX\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"contracts/Engagement.sol\":{\"keccak256\":\"0xf0000e22d5762d5fc8d76fbd1325d661cf9d2ef4c282c4c03b45c8c71ff53508\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c769d1340eb9f4193b9f99858afc2dff270f351e0f4badc72822467ed5dd481f\",\"dweb:/ipfs/QmWd8izufDrfxqK3HV6PK2Sm4mKsakk4cjknB8uBpDWe9k\"]},\"contracts/IEngagement.sol\":{\"keccak256\":\"0xce2df92288e19ea8c6c69fd836415ee7a0ec351cb9f7910767cb4b0c968a6005\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://025629bf9308105c0d94cf389fd07f1d8921a8b12635b32b7002bb1f25c8ab36\",\"dweb:/ipfs/QmTbcjKUf1bnqKpkQiNcKexp7G6Cn3VAfxNsGDWV2Tf5D2\"]}},\"version\":1}" + } + }, + "contracts/IEngagement.sol": { + "IEngagement": { + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "message", + "type": "string" + } + ], + "name": "EmptyAccountNotAllowed", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "MintLimit", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "NotAllowed", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "NotFound", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "message", + "type": "string" + } + ], + "name": "URIEmpty", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "oldURI", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "newURI", + "type": "string" + } + ], + "name": "BaseURIUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Burn", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Issue", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Mint", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "counter", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "issue", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "newURI", + "type": "string" + } + ], + "name": "updateBaseURI", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" }, "methodIdentifiers": { - "owner()": "8da5cb5b", - "unlockTime()": "251c1aa3", - "withdraw()": "3ccfd60b" + "burn(address,uint256,uint256)": "f5298aca", + "counter()": "61bc221a", + "issue()": "d383f646", + "mint(address,uint256,uint256,bytes)": "731133e9", + "updateBaseURI(string)": "931688cb" } }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_unlockTime\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"when\",\"type\":\"uint256\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unlockTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Lock.sol\":\"Lock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Lock.sol\":{\"keccak256\":\"0xc458ef1602df81d573ca4759f27c351b6d7b0f7a2cf577fee984c166dda23fb5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3791b0b020cda6a03a53481c0702e1126b6ec8dcbc59821b557cc0c91f8048d1\",\"dweb:/ipfs/QmNSDX5uV49DpuBWKq1gW6Uq5nKLyHS542HevwTay3n9vH\"]}},\"version\":1}" + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"name\":\"EmptyAccountNotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"MintLimit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"NotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"NotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"name\":\"URIEmpty\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"oldURI\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"newURI\",\"type\":\"string\"}],\"name\":\"BaseURIUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Issue\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"counter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"issue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newURI\",\"type\":\"string\"}],\"name\":\"updateBaseURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/IEngagement.sol\":\"IEngagement\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/IEngagement.sol\":{\"keccak256\":\"0xce2df92288e19ea8c6c69fd836415ee7a0ec351cb9f7910767cb4b0c968a6005\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://025629bf9308105c0d94cf389fd07f1d8921a8b12635b32b7002bb1f25c8ab36\",\"dweb:/ipfs/QmTbcjKUf1bnqKpkQiNcKexp7G6Cn3VAfxNsGDWV2Tf5D2\"]}},\"version\":1}" } } } diff --git a/ignition/deployments/chain-11155420/deployed_addresses.json b/ignition/deployments/chain-11155420/deployed_addresses.json new file mode 100644 index 0000000..da975ed --- /dev/null +++ b/ignition/deployments/chain-11155420/deployed_addresses.json @@ -0,0 +1,3 @@ +{ + "EngagementModule#Engagement": "0x843dd068997bf28B11FDfF073AeeD080DE41B287" +} diff --git a/ignition/deployments/chain-11155420/journal.jsonl b/ignition/deployments/chain-11155420/journal.jsonl new file mode 100644 index 0000000..2752b48 --- /dev/null +++ b/ignition/deployments/chain-11155420/journal.jsonl @@ -0,0 +1,7 @@ + +{"chainId":11155420,"type":"DEPLOYMENT_INITIALIZE"} +{"artifactId":"EngagementModule#Engagement","constructorArgs":["http://127.0.0.1:8545/"],"contractName":"Engagement","dependencies":[],"from":"0x026b727b60d336806b87d60e95b6d7fad2443dd6","futureId":"EngagementModule#Engagement","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"EngagementModule#Engagement","networkInteraction":{"data":"0x608060405234801561001057600080fd5b50604051613edb380380613edb833981810160405281019061003291906103cb565b604051806020016040528060008152506100518161008b60201b60201c565b506100618161009e60201b60201c565b6100746000801b336100e560201b60201c565b5080600590816100849190610635565b5050610784565b806002908161009a9190610635565b5050565b60008151036100e2576040517f1897cf660000000000000000000000000000000000000000000000000000000081526004016100d990610764565b60405180910390fd5b50565b60006100f783836101e360201b60201c565b6101d85760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061017561024e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506101dd565b600090505b92915050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6102bd82610274565b810181811067ffffffffffffffff821117156102dc576102db610285565b5b80604052505050565b60006102ef610256565b90506102fb82826102b4565b919050565b600067ffffffffffffffff82111561031b5761031a610285565b5b61032482610274565b9050602081019050919050565b60005b8381101561034f578082015181840152602081019050610334565b60008484015250505050565b600061036e61036984610300565b6102e5565b90508281526020810184848401111561038a5761038961026f565b5b610395848285610331565b509392505050565b600082601f8301126103b2576103b161026a565b5b81516103c284826020860161035b565b91505092915050565b6000602082840312156103e1576103e0610260565b5b600082015167ffffffffffffffff8111156103ff576103fe610265565b5b61040b8482850161039d565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061046657607f821691505b6020821081036104795761047861041f565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026104e17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826104a4565b6104eb86836104a4565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600061053261052d61052884610503565b61050d565b610503565b9050919050565b6000819050919050565b61054c83610517565b61056061055882610539565b8484546104b1565b825550505050565b600090565b610575610568565b610580818484610543565b505050565b5b818110156105a45761059960008261056d565b600181019050610586565b5050565b601f8211156105e9576105ba8161047f565b6105c384610494565b810160208510156105d2578190505b6105e66105de85610494565b830182610585565b50505b505050565b600082821c905092915050565b600061060c600019846008026105ee565b1980831691505092915050565b600061062583836105fb565b9150826002028217905092915050565b61063e82610414565b67ffffffffffffffff81111561065757610656610285565b5b610661825461044e565b61066c8282856105a8565b600060209050601f83116001811461069f576000841561068d578287015190505b6106978582610619565b8655506106ff565b601f1984166106ad8661047f565b60005b828110156106d5578489015182556001820191506020850194506020810190506106b0565b868310156106f257848901516106ee601f8916826105fb565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f5552492063616e6e6f7420626520656d70747900000000000000000000000000600082015250565b600061074e601383610707565b915061075982610718565b602082019050919050565b6000602082019050818103600083015261077d81610741565b9050919050565b613748806107936000396000f3fe608060405234801561001057600080fd5b506004361061012b5760003560e01c806376b676f1116100ad578063d383f64611610071578063d383f64614610364578063d547741f1461036e578063e985e9c51461038a578063f242432a146103ba578063f5298aca146103d65761012b565b806376b676f1146102ae57806391d14854146102de578063931688cb1461030e578063a217fddf1461032a578063a22cb465146103485761012b565b80632f2ff15d116100f45780632f2ff15d1461020c57806336568abe146102285780634e1273f41461024457806361bc221a14610274578063731133e9146102925761012b565b8062fdd58e1461013057806301ffc9a7146101605780630e89341c14610190578063248a9ca3146101c05780632eb2c2d6146101f0575b600080fd5b61014a600480360381019061014591906121b1565b6103f2565b6040516101579190612200565b60405180910390f35b61017a60048036038101906101759190612273565b61044c565b60405161018791906122bb565b60405180910390f35b6101aa60048036038101906101a591906122d6565b61048c565b6040516101b79190612393565b60405180910390f35b6101da60048036038101906101d591906123eb565b610520565b6040516101e79190612427565b60405180910390f35b61020a6004803603810190610205919061263f565b610540565b005b6102266004803603810190610221919061270e565b6105e8565b005b610242600480360381019061023d919061270e565b61060a565b005b61025e60048036038101906102599190612811565b610685565b60405161026b9190612947565b60405180910390f35b61027c61078e565b6040516102899190612200565b60405180910390f35b6102ac60048036038101906102a79190612969565b610798565b005b6102c860048036038101906102c39190612a8d565b610856565b6040516102d59190612393565b60405180910390f35b6102f860048036038101906102f3919061270e565b6108de565b60405161030591906122bb565b60405180910390f35b61032860048036038101906103239190612ae9565b610949565b005b6103326109ad565b60405161033f9190612427565b60405180910390f35b610362600480360381019061035d9190612b5e565b6109b4565b005b61036c6109ca565b005b6103886004803603810190610383919061270e565b610a47565b005b6103a4600480360381019061039f9190612b9e565b610a69565b6040516103b191906122bb565b60405180910390f35b6103d460048036038101906103cf9190612bde565b610afd565b005b6103f060048036038101906103eb9190612c75565b610ba5565b005b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061046d3073ffffffffffffffffffffffffffffffffffffffff16610c87565b156104825761047b82610cd4565b9050610487565b600090505b919050565b60606002805461049b90612cf7565b80601f01602080910402602001604051908101604052809291908181526020018280546104c790612cf7565b80156105145780601f106104e957610100808354040283529160200191610514565b820191906000526020600020905b8154815290600101906020018083116104f757829003601f168201915b50505050509050919050565b600060036000838152602001908152602001600020600101549050919050565b600061054a610d4e565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561058f575061058d8682610a69565b155b156105d35780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016105ca929190612d37565b60405180910390fd5b6105e08686868686610d56565b505050505050565b6105f182610520565b6105fa81610e4e565b6106048383610e62565b50505050565b610612610d4e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610676576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106808282610f54565b505050565b606081518351146106d157815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016106c8929190612d60565b60405180910390fd5b6000835167ffffffffffffffff8111156106ee576106ed612447565b5b60405190808252806020026020018201604052801561071c5781602001602082028036833780820191505090505b50905060005b845181101561078357610759610741828761104790919063ffffffff16565b610754838761105b90919063ffffffff16565b6103f2565b82828151811061076c5761076b612d89565b5b602002602001018181525050806001019050610722565b508091505092915050565b6000600454905090565b826107a28161106f565b60016107ae86866103f2565b106107f25784846040517f788d25560000000000000000000000000000000000000000000000000000000081526004016107e9929190612db8565b60405180910390fd5b6107ff85856001856110b8565b838573ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f60016040516108479190612e26565b60405180910390a35050505050565b6060826108628161106f565b8260008151036108a7576040517fc29f9db300000000000000000000000000000000000000000000000000000000815260040161089e90612e8d565b60405180910390fd5b60056108b286611151565b856040516020016108c593929190613065565b6040516020818303038152906040529250505092915050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b61095681610e4e565b61095f8261121f565b7f309b29ded109b9e28fb9885757b3e0096eb75c51d23aa4635d68bcd569f6adc160058360405161099192919061313b565b60405180910390a181600590816109a891906132ff565b505050565b6000801b81565b6109c66109bf610d4e565b8383611266565b5050565b600060045490506109ed33826001604051806020016040528060008152506110b8565b803373ffffffffffffffffffffffffffffffffffffffff167fc65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c1660405160405180910390a3600181610a3e9190613400565b60048190555050565b610a5082610520565b610a5981610e4e565b610a638383610f54565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000610b07610d4e565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610b4c5750610b4a8682610a69565b155b15610b905780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610b87929190612d37565b60405180910390fd5b610b9d86868686866113d6565b505050505050565b81610baf8161106f565b83833373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610c235781816040517f8626cc03000000000000000000000000000000000000000000000000000000008152600401610c1a929190612db8565b60405180910390fd5b610c2f868660016114e1565b848673ffffffffffffffffffffffffffffffffffffffff167f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a6001604051610c779190612e26565b60405180910390a3505050505050565b6000610cb3827f01ffc9a700000000000000000000000000000000000000000000000000000000611588565b8015610ccd5750610ccb8263ffffffff60e01b611588565b155b9050919050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610d475750610d4682611627565b5b9050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610dc85760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610dbf9190613434565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610e3a5760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610e319190613434565b60405180910390fd5b610e478585858585611709565b5050505050565b610e5f81610e5a610d4e565b6117bb565b50565b6000610e6e83836108de565b610f495760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610ee6610d4e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610f4e565b600090505b92915050565b6000610f6083836108de565b1561103c5760006003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610fd9610d4e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611041565b600090505b92915050565b600060208202602084010151905092915050565b600060208202602084010151905092915050565b60045481106110b557806040517fc80a970c0000000000000000000000000000000000000000000000000000000081526004016110ac9190612200565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361112a5760006040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016111219190613434565b60405180910390fd5b600080611137858561180c565b91509150611149600087848487611709565b505050505050565b6060600060016111608461183c565b01905060008167ffffffffffffffff81111561117f5761117e612447565b5b6040519080825280601f01601f1916602001820160405280156111b15781602001600182028036833780820191505090505b509050600082602001820190505b600115611214578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816112085761120761344f565b5b049450600085036111bf575b819350505050919050565b6000815103611263576040517f1897cf6600000000000000000000000000000000000000000000000000000000815260040161125a906134ca565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112d85760006040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016112cf9190613434565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516113c991906122bb565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036114485760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161143f9190613434565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036114ba5760006040517f01a835140000000000000000000000000000000000000000000000000000000081526004016114b19190613434565b60405180910390fd5b6000806114c7858561180c565b915091506114d88787848487611709565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115535760006040517f01a8351400000000000000000000000000000000000000000000000000000000815260040161154a9190613434565b60405180910390fd5b600080611560848461180c565b91509150611581856000848460405180602001604052806000815250611709565b5050505050565b6000808260405160240161159c91906134f9565b6040516020818303038152906040526301ffc9a760e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000806000602060008551602087018a617530fa92503d9150600051905082801561160f575060208210155b801561161b5750600081115b94505050505092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806116f257507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061170257506117018261198f565b5b9050919050565b611715858585856119f9565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146117b4576000611753610d4e565b905060018451036117a357600061177460008661105b90919063ffffffff16565b9050600061178c60008661105b90919063ffffffff16565b905061179c838989858589611da1565b50506117b2565b6117b1818787878787611f55565b5b505b5050505050565b6117c582826108de565b6118085780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016117ff929190613514565b60405180910390fd5b5050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061189a577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816118905761188f61344f565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106118d7576d04ee2d6d415b85acef810000000083816118cd576118cc61344f565b5b0492506020810190505b662386f26fc10000831061190657662386f26fc1000083816118fc576118fb61344f565b5b0492506010810190505b6305f5e100831061192f576305f5e10083816119255761192461344f565b5b0492506008810190505b612710831061195457612710838161194a5761194961344f565b5b0492506004810190505b60648310611977576064838161196d5761196c61344f565b5b0492506002810190505b600a8310611986576001810190505b80915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b8051825114611a4357815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401611a3a929190612d60565b60405180910390fd5b6000611a4d610d4e565b905060005b8351811015611c5c576000611a70828661105b90919063ffffffff16565b90506000611a87838661105b90919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611bb457600080600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611b5c57888183856040517f03dee4c5000000000000000000000000000000000000000000000000000000008152600401611b53949392919061353d565b60405180910390fd5b81810360008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611c4f578060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c479190613400565b925050819055505b5050806001019050611a52565b506001835103611d1b576000611c7c60008561105b90919063ffffffff16565b90506000611c9460008561105b90919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611d0c929190612d60565b60405180910390a45050611d9a565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611d91929190613582565b60405180910390a45b5050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611f4d578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611e0295949392919061360e565b6020604051808303816000875af1925050508015611e3e57506040513d601f19601f82011682018060405250810190611e3b919061367d565b60015b611ec2573d8060008114611e6e576040519150601f19603f3d011682016040523d82523d6000602084013e611e73565b606091505b506000815103611eba57846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611eb19190613434565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611f4b57846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611f429190613434565b60405180910390fd5b505b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115612101578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611fb69594939291906136aa565b6020604051808303816000875af1925050508015611ff257506040513d601f19601f82011682018060405250810190611fef919061367d565b60015b612076573d8060008114612022576040519150601f19603f3d011682016040523d82523d6000602084013e612027565b606091505b50600081510361206e57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016120659190613434565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146120ff57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016120f69190613434565b60405180910390fd5b505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121488261211d565b9050919050565b6121588161213d565b811461216357600080fd5b50565b6000813590506121758161214f565b92915050565b6000819050919050565b61218e8161217b565b811461219957600080fd5b50565b6000813590506121ab81612185565b92915050565b600080604083850312156121c8576121c7612113565b5b60006121d685828601612166565b92505060206121e78582860161219c565b9150509250929050565b6121fa8161217b565b82525050565b600060208201905061221560008301846121f1565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6122508161221b565b811461225b57600080fd5b50565b60008135905061226d81612247565b92915050565b60006020828403121561228957612288612113565b5b60006122978482850161225e565b91505092915050565b60008115159050919050565b6122b5816122a0565b82525050565b60006020820190506122d060008301846122ac565b92915050565b6000602082840312156122ec576122eb612113565b5b60006122fa8482850161219c565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561233d578082015181840152602081019050612322565b60008484015250505050565b6000601f19601f8301169050919050565b600061236582612303565b61236f818561230e565b935061237f81856020860161231f565b61238881612349565b840191505092915050565b600060208201905081810360008301526123ad818461235a565b905092915050565b6000819050919050565b6123c8816123b5565b81146123d357600080fd5b50565b6000813590506123e5816123bf565b92915050565b60006020828403121561240157612400612113565b5b600061240f848285016123d6565b91505092915050565b612421816123b5565b82525050565b600060208201905061243c6000830184612418565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61247f82612349565b810181811067ffffffffffffffff8211171561249e5761249d612447565b5b80604052505050565b60006124b1612109565b90506124bd8282612476565b919050565b600067ffffffffffffffff8211156124dd576124dc612447565b5b602082029050602081019050919050565b600080fd5b6000612506612501846124c2565b6124a7565b90508083825260208201905060208402830185811115612529576125286124ee565b5b835b81811015612552578061253e888261219c565b84526020840193505060208101905061252b565b5050509392505050565b600082601f83011261257157612570612442565b5b81356125818482602086016124f3565b91505092915050565b600080fd5b600067ffffffffffffffff8211156125aa576125a9612447565b5b6125b382612349565b9050602081019050919050565b82818337600083830152505050565b60006125e26125dd8461258f565b6124a7565b9050828152602081018484840111156125fe576125fd61258a565b5b6126098482856125c0565b509392505050565b600082601f83011261262657612625612442565b5b81356126368482602086016125cf565b91505092915050565b600080600080600060a0868803121561265b5761265a612113565b5b600061266988828901612166565b955050602061267a88828901612166565b945050604086013567ffffffffffffffff81111561269b5761269a612118565b5b6126a78882890161255c565b935050606086013567ffffffffffffffff8111156126c8576126c7612118565b5b6126d48882890161255c565b925050608086013567ffffffffffffffff8111156126f5576126f4612118565b5b61270188828901612611565b9150509295509295909350565b6000806040838503121561272557612724612113565b5b6000612733858286016123d6565b925050602061274485828601612166565b9150509250929050565b600067ffffffffffffffff82111561276957612768612447565b5b602082029050602081019050919050565b600061278d6127888461274e565b6124a7565b905080838252602082019050602084028301858111156127b0576127af6124ee565b5b835b818110156127d957806127c58882612166565b8452602084019350506020810190506127b2565b5050509392505050565b600082601f8301126127f8576127f7612442565b5b813561280884826020860161277a565b91505092915050565b6000806040838503121561282857612827612113565b5b600083013567ffffffffffffffff81111561284657612845612118565b5b612852858286016127e3565b925050602083013567ffffffffffffffff81111561287357612872612118565b5b61287f8582860161255c565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6128be8161217b565b82525050565b60006128d083836128b5565b60208301905092915050565b6000602082019050919050565b60006128f482612889565b6128fe8185612894565b9350612909836128a5565b8060005b8381101561293a57815161292188826128c4565b975061292c836128dc565b92505060018101905061290d565b5085935050505092915050565b6000602082019050818103600083015261296181846128e9565b905092915050565b6000806000806080858703121561298357612982612113565b5b600061299187828801612166565b94505060206129a28782880161219c565b93505060406129b38782880161219c565b925050606085013567ffffffffffffffff8111156129d4576129d3612118565b5b6129e087828801612611565b91505092959194509250565b600067ffffffffffffffff821115612a0757612a06612447565b5b612a1082612349565b9050602081019050919050565b6000612a30612a2b846129ec565b6124a7565b905082815260208101848484011115612a4c57612a4b61258a565b5b612a578482856125c0565b509392505050565b600082601f830112612a7457612a73612442565b5b8135612a84848260208601612a1d565b91505092915050565b60008060408385031215612aa457612aa3612113565b5b6000612ab28582860161219c565b925050602083013567ffffffffffffffff811115612ad357612ad2612118565b5b612adf85828601612a5f565b9150509250929050565b600060208284031215612aff57612afe612113565b5b600082013567ffffffffffffffff811115612b1d57612b1c612118565b5b612b2984828501612a5f565b91505092915050565b612b3b816122a0565b8114612b4657600080fd5b50565b600081359050612b5881612b32565b92915050565b60008060408385031215612b7557612b74612113565b5b6000612b8385828601612166565b9250506020612b9485828601612b49565b9150509250929050565b60008060408385031215612bb557612bb4612113565b5b6000612bc385828601612166565b9250506020612bd485828601612166565b9150509250929050565b600080600080600060a08688031215612bfa57612bf9612113565b5b6000612c0888828901612166565b9550506020612c1988828901612166565b9450506040612c2a8882890161219c565b9350506060612c3b8882890161219c565b925050608086013567ffffffffffffffff811115612c5c57612c5b612118565b5b612c6888828901612611565b9150509295509295909350565b600080600060608486031215612c8e57612c8d612113565b5b6000612c9c86828701612166565b9350506020612cad8682870161219c565b9250506040612cbe8682870161219c565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612d0f57607f821691505b602082108103612d2257612d21612cc8565b5b50919050565b612d318161213d565b82525050565b6000604082019050612d4c6000830185612d28565b612d596020830184612d28565b9392505050565b6000604082019050612d7560008301856121f1565b612d8260208301846121f1565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050612dcd6000830185612d28565b612dda60208301846121f1565b9392505050565b6000819050919050565b6000819050919050565b6000612e10612e0b612e0684612de1565b612deb565b61217b565b9050919050565b612e2081612df5565b82525050565b6000602082019050612e3b6000830184612e17565b92915050565b7f4163636f756e742063616e6e6f7420626520656d707479000000000000000000600082015250565b6000612e7760178361230e565b9150612e8282612e41565b602082019050919050565b60006020820190508181036000830152612ea681612e6a565b9050919050565b600081905092915050565b60008190508160005260206000209050919050565b60008154612eda81612cf7565b612ee48186612ead565b94506001821660008114612eff5760018114612f1457612f47565b60ff1983168652811515820286019350612f47565b612f1d85612eb8565b60005b83811015612f3f57815481890152600182019150602081019050612f20565b838801955050505b50505092915050565b7f2f6170692f76312f6e66742f0000000000000000000000000000000000000000600082015250565b6000612f86600c83612ead565b9150612f9182612f50565b600c82019050919050565b6000612fa782612303565b612fb18185612ead565b9350612fc181856020860161231f565b80840191505092915050565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b6000613003600183612ead565b915061300e82612fcd565b600182019050919050565b7f2f72657075746174696f6e2d73636f7265000000000000000000000000000000600082015250565b600061304f601183612ead565b915061305a82613019565b601182019050919050565b60006130718286612ecd565b915061307c82612f79565b91506130888285612f9c565b915061309382612ff6565b915061309f8284612f9c565b91506130aa82613042565b9150819050949350505050565b600081546130c481612cf7565b6130ce818661230e565b945060018216600081146130e957600181146130ff57613132565b60ff198316865281151560200286019350613132565b61310885612eb8565b60005b8381101561312a5781548189015260018201915060208101905061310b565b808801955050505b50505092915050565b6000604082019050818103600083015261315581856130b7565b90508181036020830152613169818461235a565b90509392505050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026131bf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613182565b6131c98683613182565b95508019841693508086168417925050509392505050565b60006131fc6131f76131f28461217b565b612deb565b61217b565b9050919050565b6000819050919050565b613216836131e1565b61322a61322282613203565b84845461318f565b825550505050565b600090565b61323f613232565b61324a81848461320d565b505050565b5b8181101561326e57613263600082613237565b600181019050613250565b5050565b601f8211156132b35761328481612eb8565b61328d84613172565b8101602085101561329c578190505b6132b06132a885613172565b83018261324f565b50505b505050565b600082821c905092915050565b60006132d6600019846008026132b8565b1980831691505092915050565b60006132ef83836132c5565b9150826002028217905092915050565b61330882612303565b67ffffffffffffffff81111561332157613320612447565b5b61332b8254612cf7565b613336828285613272565b600060209050601f8311600181146133695760008415613357578287015190505b61336185826132e3565b8655506133c9565b601f19841661337786612eb8565b60005b8281101561339f5784890151825560018201915060208501945060208101905061337a565b868310156133bc57848901516133b8601f8916826132c5565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061340b8261217b565b91506134168361217b565b925082820190508082111561342e5761342d6133d1565b5b92915050565b60006020820190506134496000830184612d28565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f5552492063616e6e6f7420626520656d70747900000000000000000000000000600082015250565b60006134b460138361230e565b91506134bf8261347e565b602082019050919050565b600060208201905081810360008301526134e3816134a7565b9050919050565b6134f38161221b565b82525050565b600060208201905061350e60008301846134ea565b92915050565b60006040820190506135296000830185612d28565b6135366020830184612418565b9392505050565b60006080820190506135526000830187612d28565b61355f60208301866121f1565b61356c60408301856121f1565b61357960608301846121f1565b95945050505050565b6000604082019050818103600083015261359c81856128e9565b905081810360208301526135b081846128e9565b90509392505050565b600081519050919050565b600082825260208201905092915050565b60006135e0826135b9565b6135ea81856135c4565b93506135fa81856020860161231f565b61360381612349565b840191505092915050565b600060a0820190506136236000830188612d28565b6136306020830187612d28565b61363d60408301866121f1565b61364a60608301856121f1565b818103608083015261365c81846135d5565b90509695505050505050565b60008151905061367781612247565b92915050565b60006020828403121561369357613692612113565b5b60006136a184828501613668565b91505092915050565b600060a0820190506136bf6000830188612d28565b6136cc6020830187612d28565b81810360408301526136de81866128e9565b905081810360608301526136f281856128e9565b9050818103608083015261370681846135d5565b9050969550505050505056fea2646970667358221220240e9a7daab5d9eba2793e75f4bbf0e9a74f133868ac14d5e9561767bb722e8264736f6c634300081a003300000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000016687474703a2f2f3132372e302e302e313a383534352f00000000000000000000","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"EngagementModule#Engagement","networkInteractionId":1,"nonce":7,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"1000506"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"1000000"}},"hash":"0x17447b33d000c1c3bf76fd0ee6846259437228680dbdde358cf236e91fed5562"},"type":"TRANSACTION_SEND"} +{"futureId":"EngagementModule#Engagement","hash":"0x17447b33d000c1c3bf76fd0ee6846259437228680dbdde358cf236e91fed5562","networkInteractionId":1,"receipt":{"blockHash":"0xd66266887c2a4cc4b78443d41c2faed900a14c5a22bc7dd1794239b4846b5f4e","blockNumber":20404628,"contractAddress":"0x843dd068997bf28B11FDfF073AeeD080DE41B287","logs":[{"address":"0x843dd068997bf28B11FDfF073AeeD080DE41B287","data":"0x","logIndex":17,"topics":["0x2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d","0x0000000000000000000000000000000000000000000000000000000000000000","0x000000000000000000000000026b727b60d336806b87d60e95b6d7fad2443dd6","0x000000000000000000000000026b727b60d336806b87d60e95b6d7fad2443dd6"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"EngagementModule#Engagement","result":{"address":"0x843dd068997bf28B11FDfF073AeeD080DE41B287","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} \ No newline at end of file diff --git a/ignition/deployments/chain-42161/artifacts/EngagementModule#Engagement.dbg.json b/ignition/deployments/chain-42161/artifacts/EngagementModule#Engagement.dbg.json deleted file mode 100644 index 694d7c0..0000000 --- a/ignition/deployments/chain-42161/artifacts/EngagementModule#Engagement.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../build-info/66954cfa576a2ffbfe079f17baab8cf7.json" -} \ No newline at end of file diff --git a/ignition/deployments/chain-42161/artifacts/EngagementModule#Engagement.json b/ignition/deployments/chain-42161/artifacts/EngagementModule#Engagement.json deleted file mode 100644 index 5e0eeb0..0000000 --- a/ignition/deployments/chain-42161/artifacts/EngagementModule#Engagement.json +++ /dev/null @@ -1,910 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Engagement", - "sourceName": "contracts/Engagement.sol", - "abi": [ - { - "inputs": [], - "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": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "needed", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ERC1155InsufficientBalance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "approver", - "type": "address" - } - ], - "name": "ERC1155InvalidApprover", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "idsLength", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "valuesLength", - "type": "uint256" - } - ], - "name": "ERC1155InvalidArrayLength", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "ERC1155InvalidOperator", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "ERC1155InvalidReceiver", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "ERC1155InvalidSender", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "ERC1155MissingApprovalForAll", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "MintLimit", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "NotAllowed", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "NotFound", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "Burn", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Issue", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "Mint", - "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": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - } - ], - "name": "TransferBatch", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "TransferSingle", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "value", - "type": "string" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "URI", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "date", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "string", - "name": "cid", - "type": "string" - } - ], - "name": "UpdateScores", - "type": "event" - }, - { - "inputs": [], - "name": "DEFAULT_ADMIN_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "PROVIDER_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address[]", - "name": "accounts", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - } - ], - "name": "balanceOfBatch", - "outputs": [ - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "counter", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleAdmin", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "date", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "string", - "name": "account", - "type": "string" - } - ], - "name": "getScores", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "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": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "hash_", - "type": "string" - } - ], - "name": "issue", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "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": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "ids", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "values", - "type": "uint256[]" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeBatchTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "bool", - "name": "approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "date", - "type": "uint256" - }, - { - "internalType": "string", - "name": "cid", - "type": "string" - } - ], - "name": "updateScores", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "uri", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x608060405260006004553480156200001657600080fd5b506040518060200160405280600081525062000038816200005560201b60201c565b506200004e6000801b336200006a60201b60201c565b5062000542565b80600290816200006691906200045b565b5050565b60006200007e83836200016e60201b60201c565b620001635760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620000ff620001d960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001905062000168565b600090505b92915050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200026357607f821691505b6020821081036200027957620002786200021b565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620002e37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002a4565b620002ef8683620002a4565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200033c62000336620003308462000307565b62000311565b62000307565b9050919050565b6000819050919050565b62000358836200031b565b62000370620003678262000343565b848454620002b1565b825550505050565b600090565b6200038762000378565b620003948184846200034d565b505050565b5b81811015620003bc57620003b06000826200037d565b6001810190506200039a565b5050565b601f8211156200040b57620003d5816200027f565b620003e08462000294565b81016020851015620003f0578190505b62000408620003ff8562000294565b83018262000399565b50505b505050565b600082821c905092915050565b6000620004306000198460080262000410565b1980831691505092915050565b60006200044b83836200041d565b9150826002028217905092915050565b6200046682620001e1565b67ffffffffffffffff811115620004825762000481620001ec565b5b6200048e82546200024a565b6200049b828285620003c0565b600060209050601f831160018114620004d35760008415620004be578287015190505b620004ca85826200043d565b8655506200053a565b601f198416620004e3866200027f565b60005b828110156200050d57848901518255600182019150602085019450602081019050620004e6565b868310156200052d578489015162000529601f8916826200041d565b8355505b6001600288020188555050505b505050505050565b61338280620005526000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c80634e1273f4116100b8578063a22cb4651161007c578063a22cb4651461035d578063c5afac6614610379578063d547741f146103a9578063e985e9c5146103c5578063f242432a146103f5578063f5298aca1461041157610136565b80634e1273f4146102a557806361bc221a146102d5578063731133e9146102f357806391d148541461030f578063a217fddf1461033f57610136565b806324c20a34116100ff57806324c20a34146102175780632eb2c2d6146102355780632f2ff15d1461025157806336568abe1461026d5780633cad9b0d1461028957610136565b8062fdd58e1461013b57806301ffc9a71461016b5780630e89341c1461019b5780631c4ce135146101cb578063248a9ca3146101e7575b600080fd5b61015560048036038101906101509190611eb9565b61042d565b6040516101629190611f08565b60405180910390f35b61018560048036038101906101809190611f7b565b610487565b6040516101929190611fc3565b60405180910390f35b6101b560048036038101906101b09190611fde565b61048e565b6040516101c2919061209b565b60405180910390f35b6101e560048036038101906101e091906121f2565b6104d4565b005b61020160048036038101906101fc9190612284565b610573565b60405161020e91906122c0565b60405180910390f35b61021f610593565b60405161022c91906122c0565b60405180910390f35b61024f600480360381019061024a9190612444565b6105b7565b005b61026b60048036038101906102669190612513565b61065f565b005b61028760048036038101906102829190612513565b610681565b005b6102a3600480360381019061029e9190612553565b6106fc565b005b6102bf60048036038101906102ba919061265f565b61079e565b6040516102cc9190612795565b60405180910390f35b6102dd6108a7565b6040516102ea9190611f08565b60405180910390f35b61030d600480360381019061030891906127b7565b6108b1565b005b61032960048036038101906103249190612513565b610970565b6040516103369190611fc3565b60405180910390f35b6103476109db565b60405161035491906122c0565b60405180910390f35b61037760048036038101906103729190612866565b6109e2565b005b610393600480360381019061038e91906128a6565b6109f8565b6040516103a0919061209b565b60405180910390f35b6103c360048036038101906103be9190612513565b610a4c565b005b6103df60048036038101906103da9190612915565b610a6e565b6040516103ec9190611fc3565b60405180910390f35b61040f600480360381019061040a9190612955565b610b02565b005b61042b600480360381019061042691906129ec565b610baa565b005b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000919050565b60608161049a81610c88565b600560008481526020019081526020016000206040516020016104bd9190612bda565b604051602081830303815290604052915050919050565b7f18d9ff454de989bd126b06bd404b47ede75f9e65543e94e8d212f89d7dcbb87c6104fe81610cd1565b8160066000858152602001908152602001600020908161051e9190612d9e565b50823373ffffffffffffffffffffffffffffffffffffffff167fee5e19404a9c880f5e862aeeedfa8f4b4b427864327c17888eb6a34d549e5a5584604051610566919061209b565b60405180910390a3505050565b600060036000838152602001908152602001600020600101549050919050565b7f18d9ff454de989bd126b06bd404b47ede75f9e65543e94e8d212f89d7dcbb87c81565b60006105c1610ce5565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561060657506106048682610a6e565b155b1561064a5780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610641929190612e7f565b60405180910390fd5b6106578686868686610ced565b505050505050565b61066882610573565b61067181610cd1565b61067b8383610de5565b50505050565b610689610ce5565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146106ed576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106f78282610ed7565b505050565b80600560006004548152602001908152602001600020908161071e9190612d9e565b5061073d33600454600160405180602001604052806000815250610fca565b6004543373ffffffffffffffffffffffffffffffffffffffff167fc65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c1660405160405180910390a36004600081548092919061079690612ed7565b919050555050565b606081518351146107ea57815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016107e1929190612f1f565b60405180910390fd5b6000835167ffffffffffffffff811115610807576108066120c7565b5b6040519080825280602002602001820160405280156108355781602001602082028036833780820191505090505b50905060005b845181101561089c5761087261085a828761106390919063ffffffff16565b61086d838761107790919063ffffffff16565b61042d565b82828151811061088557610884612f48565b5b60200260200101818152505080600101905061083b565b508091505092915050565b6000600454905090565b826108bb81610c88565b60006108c7868661042d565b111561090c5784846040517f788d2556000000000000000000000000000000000000000000000000000000008152600401610903929190612f77565b60405180910390fd5b6109198585600185610fca565b838573ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f60016040516109619190612fdb565b60405180910390a35050505050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b6109f46109ed610ce5565b838361108b565b5050565b606082610a0481610c88565b60066000868152602001908152602001600020610a20856111fb565b84604051602001610a3393929190613073565b6040516020818303038152906040529150509392505050565b610a5582610573565b610a5e81610cd1565b610a688383610ed7565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000610b0c610ce5565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610b515750610b4f8682610a6e565b155b15610b955780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610b8c929190612e7f565b60405180910390fd5b610ba286868686866112c9565b505050505050565b81610bb481610c88565b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610c265783836040517f8626cc03000000000000000000000000000000000000000000000000000000008152600401610c1d929190612f77565b60405180910390fd5b610c32848460016113d4565b828473ffffffffffffffffffffffffffffffffffffffff167f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a6001604051610c7a9190612fdb565b60405180910390a350505050565b6004548110610cce57806040517fc80a970c000000000000000000000000000000000000000000000000000000008152600401610cc59190611f08565b60405180910390fd5b50565b610ce281610cdd610ce5565b61147b565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610d5f5760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610d5691906130d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610dd15760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610dc891906130d0565b60405180910390fd5b610dde85858585856114cc565b5050505050565b6000610df18383610970565b610ecc5760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610e69610ce5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610ed1565b600090505b92915050565b6000610ee38383610970565b15610fbf5760006003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610f5c610ce5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050610fc4565b600090505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361103c5760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161103391906130d0565b60405180910390fd5b600080611049858561157e565b9150915061105b6000878484876114cc565b505050505050565b600060208202602084010151905092915050565b600060208202602084010151905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110fd5760006040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016110f491906130d0565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516111ee9190611fc3565b60405180910390a3505050565b60606000600161120a846115ae565b01905060008167ffffffffffffffff811115611229576112286120c7565b5b6040519080825280601f01601f19166020018201604052801561125b5781602001600182028036833780820191505090505b509050600082602001820190505b6001156112be578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816112b2576112b16130eb565b5b04945060008503611269575b819350505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361133b5760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161133291906130d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036113ad5760006040517f01a835140000000000000000000000000000000000000000000000000000000081526004016113a491906130d0565b60405180910390fd5b6000806113ba858561157e565b915091506113cb87878484876114cc565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114465760006040517f01a8351400000000000000000000000000000000000000000000000000000000815260040161143d91906130d0565b60405180910390fd5b600080611453848461157e565b915091506114748560008484604051806020016040528060008152506114cc565b5050505050565b6114858282610970565b6114c85780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016114bf92919061311a565b60405180910390fd5b5050565b6114d885858585611701565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611577576000611516610ce5565b9050600184510361156657600061153760008661107790919063ffffffff16565b9050600061154f60008661107790919063ffffffff16565b905061155f838989858589611aa9565b5050611575565b611574818787878787611c5d565b5b505b5050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061160c577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611602576116016130eb565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611649576d04ee2d6d415b85acef8100000000838161163f5761163e6130eb565b5b0492506020810190505b662386f26fc10000831061167857662386f26fc10000838161166e5761166d6130eb565b5b0492506010810190505b6305f5e10083106116a1576305f5e1008381611697576116966130eb565b5b0492506008810190505b61271083106116c65761271083816116bc576116bb6130eb565b5b0492506004810190505b606483106116e957606483816116df576116de6130eb565b5b0492506002810190505b600a83106116f8576001810190505b80915050919050565b805182511461174b57815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401611742929190612f1f565b60405180910390fd5b6000611755610ce5565b905060005b8351811015611964576000611778828661107790919063ffffffff16565b9050600061178f838661107790919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146118bc57600080600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561186457888183856040517f03dee4c500000000000000000000000000000000000000000000000000000000815260040161185b9493929190613143565b60405180910390fd5b81810360008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611957578060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461194f9190613188565b925050819055505b505080600101905061175a565b506001835103611a2357600061198460008561107790919063ffffffff16565b9050600061199c60008561107790919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611a14929190612f1f565b60405180910390a45050611aa2565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611a999291906131bc565b60405180910390a45b5050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611c55578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611b0a959493929190613248565b6020604051808303816000875af1925050508015611b4657506040513d601f19601f82011682018060405250810190611b4391906132b7565b60015b611bca573d8060008114611b76576040519150601f19603f3d011682016040523d82523d6000602084013e611b7b565b606091505b506000815103611bc257846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611bb991906130d0565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611c5357846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611c4a91906130d0565b60405180910390fd5b505b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611e09578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611cbe9594939291906132e4565b6020604051808303816000875af1925050508015611cfa57506040513d601f19601f82011682018060405250810190611cf791906132b7565b60015b611d7e573d8060008114611d2a576040519150601f19603f3d011682016040523d82523d6000602084013e611d2f565b606091505b506000815103611d7657846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611d6d91906130d0565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611e0757846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611dfe91906130d0565b60405180910390fd5b505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611e5082611e25565b9050919050565b611e6081611e45565b8114611e6b57600080fd5b50565b600081359050611e7d81611e57565b92915050565b6000819050919050565b611e9681611e83565b8114611ea157600080fd5b50565b600081359050611eb381611e8d565b92915050565b60008060408385031215611ed057611ecf611e1b565b5b6000611ede85828601611e6e565b9250506020611eef85828601611ea4565b9150509250929050565b611f0281611e83565b82525050565b6000602082019050611f1d6000830184611ef9565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611f5881611f23565b8114611f6357600080fd5b50565b600081359050611f7581611f4f565b92915050565b600060208284031215611f9157611f90611e1b565b5b6000611f9f84828501611f66565b91505092915050565b60008115159050919050565b611fbd81611fa8565b82525050565b6000602082019050611fd86000830184611fb4565b92915050565b600060208284031215611ff457611ff3611e1b565b5b600061200284828501611ea4565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561204557808201518184015260208101905061202a565b60008484015250505050565b6000601f19601f8301169050919050565b600061206d8261200b565b6120778185612016565b9350612087818560208601612027565b61209081612051565b840191505092915050565b600060208201905081810360008301526120b58184612062565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6120ff82612051565b810181811067ffffffffffffffff8211171561211e5761211d6120c7565b5b80604052505050565b6000612131611e11565b905061213d82826120f6565b919050565b600067ffffffffffffffff82111561215d5761215c6120c7565b5b61216682612051565b9050602081019050919050565b82818337600083830152505050565b600061219561219084612142565b612127565b9050828152602081018484840111156121b1576121b06120c2565b5b6121bc848285612173565b509392505050565b600082601f8301126121d9576121d86120bd565b5b81356121e9848260208601612182565b91505092915050565b6000806040838503121561220957612208611e1b565b5b600061221785828601611ea4565b925050602083013567ffffffffffffffff81111561223857612237611e20565b5b612244858286016121c4565b9150509250929050565b6000819050919050565b6122618161224e565b811461226c57600080fd5b50565b60008135905061227e81612258565b92915050565b60006020828403121561229a57612299611e1b565b5b60006122a88482850161226f565b91505092915050565b6122ba8161224e565b82525050565b60006020820190506122d560008301846122b1565b92915050565b600067ffffffffffffffff8211156122f6576122f56120c7565b5b602082029050602081019050919050565b600080fd5b600061231f61231a846122db565b612127565b9050808382526020820190506020840283018581111561234257612341612307565b5b835b8181101561236b57806123578882611ea4565b845260208401935050602081019050612344565b5050509392505050565b600082601f83011261238a576123896120bd565b5b813561239a84826020860161230c565b91505092915050565b600067ffffffffffffffff8211156123be576123bd6120c7565b5b6123c782612051565b9050602081019050919050565b60006123e76123e2846123a3565b612127565b905082815260208101848484011115612403576124026120c2565b5b61240e848285612173565b509392505050565b600082601f83011261242b5761242a6120bd565b5b813561243b8482602086016123d4565b91505092915050565b600080600080600060a086880312156124605761245f611e1b565b5b600061246e88828901611e6e565b955050602061247f88828901611e6e565b945050604086013567ffffffffffffffff8111156124a05761249f611e20565b5b6124ac88828901612375565b935050606086013567ffffffffffffffff8111156124cd576124cc611e20565b5b6124d988828901612375565b925050608086013567ffffffffffffffff8111156124fa576124f9611e20565b5b61250688828901612416565b9150509295509295909350565b6000806040838503121561252a57612529611e1b565b5b60006125388582860161226f565b925050602061254985828601611e6e565b9150509250929050565b60006020828403121561256957612568611e1b565b5b600082013567ffffffffffffffff81111561258757612586611e20565b5b612593848285016121c4565b91505092915050565b600067ffffffffffffffff8211156125b7576125b66120c7565b5b602082029050602081019050919050565b60006125db6125d68461259c565b612127565b905080838252602082019050602084028301858111156125fe576125fd612307565b5b835b8181101561262757806126138882611e6e565b845260208401935050602081019050612600565b5050509392505050565b600082601f830112612646576126456120bd565b5b81356126568482602086016125c8565b91505092915050565b6000806040838503121561267657612675611e1b565b5b600083013567ffffffffffffffff81111561269457612693611e20565b5b6126a085828601612631565b925050602083013567ffffffffffffffff8111156126c1576126c0611e20565b5b6126cd85828601612375565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61270c81611e83565b82525050565b600061271e8383612703565b60208301905092915050565b6000602082019050919050565b6000612742826126d7565b61274c81856126e2565b9350612757836126f3565b8060005b8381101561278857815161276f8882612712565b975061277a8361272a565b92505060018101905061275b565b5085935050505092915050565b600060208201905081810360008301526127af8184612737565b905092915050565b600080600080608085870312156127d1576127d0611e1b565b5b60006127df87828801611e6e565b94505060206127f087828801611ea4565b935050604061280187828801611ea4565b925050606085013567ffffffffffffffff81111561282257612821611e20565b5b61282e87828801612416565b91505092959194509250565b61284381611fa8565b811461284e57600080fd5b50565b6000813590506128608161283a565b92915050565b6000806040838503121561287d5761287c611e1b565b5b600061288b85828601611e6e565b925050602061289c85828601612851565b9150509250929050565b6000806000606084860312156128bf576128be611e1b565b5b60006128cd86828701611ea4565b93505060206128de86828701611ea4565b925050604084013567ffffffffffffffff8111156128ff576128fe611e20565b5b61290b868287016121c4565b9150509250925092565b6000806040838503121561292c5761292b611e1b565b5b600061293a85828601611e6e565b925050602061294b85828601611e6e565b9150509250929050565b600080600080600060a0868803121561297157612970611e1b565b5b600061297f88828901611e6e565b955050602061299088828901611e6e565b94505060406129a188828901611ea4565b93505060606129b288828901611ea4565b925050608086013567ffffffffffffffff8111156129d3576129d2611e20565b5b6129df88828901612416565b9150509295509295909350565b600080600060608486031215612a0557612a04611e1b565b5b6000612a1386828701611e6e565b9350506020612a2486828701611ea4565b9250506040612a3586828701611ea4565b9150509250925092565b600081905092915050565b7f697066733a2f2f00000000000000000000000000000000000000000000000000600082015250565b6000612a80600783612a3f565b9150612a8b82612a4a565b600782019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612add57607f821691505b602082108103612af057612aef612a96565b5b50919050565b60008190508160005260206000209050919050565b60008154612b1881612ac5565b612b228186612a3f565b94506001821660008114612b3d5760018114612b5257612b85565b60ff1983168652811515820286019350612b85565b612b5b85612af6565b60005b83811015612b7d57815481890152600182019150602081019050612b5e565b838801955050505b50505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b6000612bc4600583612a3f565b9150612bcf82612b8e565b600582019050919050565b6000612be582612a73565b9150612bf18284612b0b565b9150612bfc82612bb7565b915081905092915050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612c547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612c17565b612c5e8683612c17565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612c9b612c96612c9184611e83565b612c76565b611e83565b9050919050565b6000819050919050565b612cb583612c80565b612cc9612cc182612ca2565b848454612c24565b825550505050565b600090565b612cde612cd1565b612ce9818484612cac565b505050565b5b81811015612d0d57612d02600082612cd6565b600181019050612cef565b5050565b601f821115612d5257612d2381612af6565b612d2c84612c07565b81016020851015612d3b578190505b612d4f612d4785612c07565b830182612cee565b50505b505050565b600082821c905092915050565b6000612d7560001984600802612d57565b1980831691505092915050565b6000612d8e8383612d64565b9150826002028217905092915050565b612da78261200b565b67ffffffffffffffff811115612dc057612dbf6120c7565b5b612dca8254612ac5565b612dd5828285612d11565b600060209050601f831160018114612e085760008415612df6578287015190505b612e008582612d82565b865550612e68565b601f198416612e1686612af6565b60005b82811015612e3e57848901518255600182019150602085019450602081019050612e19565b86831015612e5b5784890151612e57601f891682612d64565b8355505b6001600288020188555050505b505050505050565b612e7981611e45565b82525050565b6000604082019050612e946000830185612e70565b612ea16020830184612e70565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ee282611e83565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f1457612f13612ea8565b5b600182019050919050565b6000604082019050612f346000830185611ef9565b612f416020830184611ef9565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050612f8c6000830185612e70565b612f996020830184611ef9565b9392505050565b6000819050919050565b6000612fc5612fc0612fbb84612fa0565b612c76565b611e83565b9050919050565b612fd581612faa565b82525050565b6000602082019050612ff06000830184612fcc565b92915050565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b600061302c600183612a3f565b915061303782612ff6565b600182019050919050565b600061304d8261200b565b6130578185612a3f565b9350613067818560208601612027565b80840191505092915050565b600061307e82612a73565b915061308a8286612b0b565b91506130958261301f565b91506130a18285613042565b91506130ac8261301f565b91506130b88284613042565b91506130c382612bb7565b9150819050949350505050565b60006020820190506130e56000830184612e70565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600060408201905061312f6000830185612e70565b61313c60208301846122b1565b9392505050565b60006080820190506131586000830187612e70565b6131656020830186611ef9565b6131726040830185611ef9565b61317f6060830184611ef9565b95945050505050565b600061319382611e83565b915061319e83611e83565b92508282019050808211156131b6576131b5612ea8565b5b92915050565b600060408201905081810360008301526131d68185612737565b905081810360208301526131ea8184612737565b90509392505050565b600081519050919050565b600082825260208201905092915050565b600061321a826131f3565b61322481856131fe565b9350613234818560208601612027565b61323d81612051565b840191505092915050565b600060a08201905061325d6000830188612e70565b61326a6020830187612e70565b6132776040830186611ef9565b6132846060830185611ef9565b8181036080830152613296818461320f565b90509695505050505050565b6000815190506132b181611f4f565b92915050565b6000602082840312156132cd576132cc611e1b565b5b60006132db848285016132a2565b91505092915050565b600060a0820190506132f96000830188612e70565b6133066020830187612e70565b81810360408301526133188186612737565b9050818103606083015261332c8185612737565b90508181036080830152613340818461320f565b9050969550505050505056fea2646970667358221220294f8401608e8b44e40d642ddeddde899f8a456400db1a2f81df9ef8d59242d564736f6c63430008180033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101365760003560e01c80634e1273f4116100b8578063a22cb4651161007c578063a22cb4651461035d578063c5afac6614610379578063d547741f146103a9578063e985e9c5146103c5578063f242432a146103f5578063f5298aca1461041157610136565b80634e1273f4146102a557806361bc221a146102d5578063731133e9146102f357806391d148541461030f578063a217fddf1461033f57610136565b806324c20a34116100ff57806324c20a34146102175780632eb2c2d6146102355780632f2ff15d1461025157806336568abe1461026d5780633cad9b0d1461028957610136565b8062fdd58e1461013b57806301ffc9a71461016b5780630e89341c1461019b5780631c4ce135146101cb578063248a9ca3146101e7575b600080fd5b61015560048036038101906101509190611eb9565b61042d565b6040516101629190611f08565b60405180910390f35b61018560048036038101906101809190611f7b565b610487565b6040516101929190611fc3565b60405180910390f35b6101b560048036038101906101b09190611fde565b61048e565b6040516101c2919061209b565b60405180910390f35b6101e560048036038101906101e091906121f2565b6104d4565b005b61020160048036038101906101fc9190612284565b610573565b60405161020e91906122c0565b60405180910390f35b61021f610593565b60405161022c91906122c0565b60405180910390f35b61024f600480360381019061024a9190612444565b6105b7565b005b61026b60048036038101906102669190612513565b61065f565b005b61028760048036038101906102829190612513565b610681565b005b6102a3600480360381019061029e9190612553565b6106fc565b005b6102bf60048036038101906102ba919061265f565b61079e565b6040516102cc9190612795565b60405180910390f35b6102dd6108a7565b6040516102ea9190611f08565b60405180910390f35b61030d600480360381019061030891906127b7565b6108b1565b005b61032960048036038101906103249190612513565b610970565b6040516103369190611fc3565b60405180910390f35b6103476109db565b60405161035491906122c0565b60405180910390f35b61037760048036038101906103729190612866565b6109e2565b005b610393600480360381019061038e91906128a6565b6109f8565b6040516103a0919061209b565b60405180910390f35b6103c360048036038101906103be9190612513565b610a4c565b005b6103df60048036038101906103da9190612915565b610a6e565b6040516103ec9190611fc3565b60405180910390f35b61040f600480360381019061040a9190612955565b610b02565b005b61042b600480360381019061042691906129ec565b610baa565b005b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000919050565b60608161049a81610c88565b600560008481526020019081526020016000206040516020016104bd9190612bda565b604051602081830303815290604052915050919050565b7f18d9ff454de989bd126b06bd404b47ede75f9e65543e94e8d212f89d7dcbb87c6104fe81610cd1565b8160066000858152602001908152602001600020908161051e9190612d9e565b50823373ffffffffffffffffffffffffffffffffffffffff167fee5e19404a9c880f5e862aeeedfa8f4b4b427864327c17888eb6a34d549e5a5584604051610566919061209b565b60405180910390a3505050565b600060036000838152602001908152602001600020600101549050919050565b7f18d9ff454de989bd126b06bd404b47ede75f9e65543e94e8d212f89d7dcbb87c81565b60006105c1610ce5565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561060657506106048682610a6e565b155b1561064a5780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610641929190612e7f565b60405180910390fd5b6106578686868686610ced565b505050505050565b61066882610573565b61067181610cd1565b61067b8383610de5565b50505050565b610689610ce5565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146106ed576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106f78282610ed7565b505050565b80600560006004548152602001908152602001600020908161071e9190612d9e565b5061073d33600454600160405180602001604052806000815250610fca565b6004543373ffffffffffffffffffffffffffffffffffffffff167fc65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c1660405160405180910390a36004600081548092919061079690612ed7565b919050555050565b606081518351146107ea57815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016107e1929190612f1f565b60405180910390fd5b6000835167ffffffffffffffff811115610807576108066120c7565b5b6040519080825280602002602001820160405280156108355781602001602082028036833780820191505090505b50905060005b845181101561089c5761087261085a828761106390919063ffffffff16565b61086d838761107790919063ffffffff16565b61042d565b82828151811061088557610884612f48565b5b60200260200101818152505080600101905061083b565b508091505092915050565b6000600454905090565b826108bb81610c88565b60006108c7868661042d565b111561090c5784846040517f788d2556000000000000000000000000000000000000000000000000000000008152600401610903929190612f77565b60405180910390fd5b6109198585600185610fca565b838573ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f60016040516109619190612fdb565b60405180910390a35050505050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b6109f46109ed610ce5565b838361108b565b5050565b606082610a0481610c88565b60066000868152602001908152602001600020610a20856111fb565b84604051602001610a3393929190613073565b6040516020818303038152906040529150509392505050565b610a5582610573565b610a5e81610cd1565b610a688383610ed7565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000610b0c610ce5565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610b515750610b4f8682610a6e565b155b15610b955780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610b8c929190612e7f565b60405180910390fd5b610ba286868686866112c9565b505050505050565b81610bb481610c88565b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610c265783836040517f8626cc03000000000000000000000000000000000000000000000000000000008152600401610c1d929190612f77565b60405180910390fd5b610c32848460016113d4565b828473ffffffffffffffffffffffffffffffffffffffff167f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a6001604051610c7a9190612fdb565b60405180910390a350505050565b6004548110610cce57806040517fc80a970c000000000000000000000000000000000000000000000000000000008152600401610cc59190611f08565b60405180910390fd5b50565b610ce281610cdd610ce5565b61147b565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610d5f5760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610d5691906130d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610dd15760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610dc891906130d0565b60405180910390fd5b610dde85858585856114cc565b5050505050565b6000610df18383610970565b610ecc5760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610e69610ce5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610ed1565b600090505b92915050565b6000610ee38383610970565b15610fbf5760006003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610f5c610ce5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050610fc4565b600090505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361103c5760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161103391906130d0565b60405180910390fd5b600080611049858561157e565b9150915061105b6000878484876114cc565b505050505050565b600060208202602084010151905092915050565b600060208202602084010151905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110fd5760006040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016110f491906130d0565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516111ee9190611fc3565b60405180910390a3505050565b60606000600161120a846115ae565b01905060008167ffffffffffffffff811115611229576112286120c7565b5b6040519080825280601f01601f19166020018201604052801561125b5781602001600182028036833780820191505090505b509050600082602001820190505b6001156112be578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816112b2576112b16130eb565b5b04945060008503611269575b819350505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361133b5760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161133291906130d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036113ad5760006040517f01a835140000000000000000000000000000000000000000000000000000000081526004016113a491906130d0565b60405180910390fd5b6000806113ba858561157e565b915091506113cb87878484876114cc565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114465760006040517f01a8351400000000000000000000000000000000000000000000000000000000815260040161143d91906130d0565b60405180910390fd5b600080611453848461157e565b915091506114748560008484604051806020016040528060008152506114cc565b5050505050565b6114858282610970565b6114c85780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016114bf92919061311a565b60405180910390fd5b5050565b6114d885858585611701565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611577576000611516610ce5565b9050600184510361156657600061153760008661107790919063ffffffff16565b9050600061154f60008661107790919063ffffffff16565b905061155f838989858589611aa9565b5050611575565b611574818787878787611c5d565b5b505b5050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061160c577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611602576116016130eb565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611649576d04ee2d6d415b85acef8100000000838161163f5761163e6130eb565b5b0492506020810190505b662386f26fc10000831061167857662386f26fc10000838161166e5761166d6130eb565b5b0492506010810190505b6305f5e10083106116a1576305f5e1008381611697576116966130eb565b5b0492506008810190505b61271083106116c65761271083816116bc576116bb6130eb565b5b0492506004810190505b606483106116e957606483816116df576116de6130eb565b5b0492506002810190505b600a83106116f8576001810190505b80915050919050565b805182511461174b57815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401611742929190612f1f565b60405180910390fd5b6000611755610ce5565b905060005b8351811015611964576000611778828661107790919063ffffffff16565b9050600061178f838661107790919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146118bc57600080600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561186457888183856040517f03dee4c500000000000000000000000000000000000000000000000000000000815260040161185b9493929190613143565b60405180910390fd5b81810360008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611957578060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461194f9190613188565b925050819055505b505080600101905061175a565b506001835103611a2357600061198460008561107790919063ffffffff16565b9050600061199c60008561107790919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611a14929190612f1f565b60405180910390a45050611aa2565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611a999291906131bc565b60405180910390a45b5050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611c55578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611b0a959493929190613248565b6020604051808303816000875af1925050508015611b4657506040513d601f19601f82011682018060405250810190611b4391906132b7565b60015b611bca573d8060008114611b76576040519150601f19603f3d011682016040523d82523d6000602084013e611b7b565b606091505b506000815103611bc257846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611bb991906130d0565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611c5357846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611c4a91906130d0565b60405180910390fd5b505b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611e09578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611cbe9594939291906132e4565b6020604051808303816000875af1925050508015611cfa57506040513d601f19601f82011682018060405250810190611cf791906132b7565b60015b611d7e573d8060008114611d2a576040519150601f19603f3d011682016040523d82523d6000602084013e611d2f565b606091505b506000815103611d7657846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611d6d91906130d0565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611e0757846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611dfe91906130d0565b60405180910390fd5b505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611e5082611e25565b9050919050565b611e6081611e45565b8114611e6b57600080fd5b50565b600081359050611e7d81611e57565b92915050565b6000819050919050565b611e9681611e83565b8114611ea157600080fd5b50565b600081359050611eb381611e8d565b92915050565b60008060408385031215611ed057611ecf611e1b565b5b6000611ede85828601611e6e565b9250506020611eef85828601611ea4565b9150509250929050565b611f0281611e83565b82525050565b6000602082019050611f1d6000830184611ef9565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611f5881611f23565b8114611f6357600080fd5b50565b600081359050611f7581611f4f565b92915050565b600060208284031215611f9157611f90611e1b565b5b6000611f9f84828501611f66565b91505092915050565b60008115159050919050565b611fbd81611fa8565b82525050565b6000602082019050611fd86000830184611fb4565b92915050565b600060208284031215611ff457611ff3611e1b565b5b600061200284828501611ea4565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561204557808201518184015260208101905061202a565b60008484015250505050565b6000601f19601f8301169050919050565b600061206d8261200b565b6120778185612016565b9350612087818560208601612027565b61209081612051565b840191505092915050565b600060208201905081810360008301526120b58184612062565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6120ff82612051565b810181811067ffffffffffffffff8211171561211e5761211d6120c7565b5b80604052505050565b6000612131611e11565b905061213d82826120f6565b919050565b600067ffffffffffffffff82111561215d5761215c6120c7565b5b61216682612051565b9050602081019050919050565b82818337600083830152505050565b600061219561219084612142565b612127565b9050828152602081018484840111156121b1576121b06120c2565b5b6121bc848285612173565b509392505050565b600082601f8301126121d9576121d86120bd565b5b81356121e9848260208601612182565b91505092915050565b6000806040838503121561220957612208611e1b565b5b600061221785828601611ea4565b925050602083013567ffffffffffffffff81111561223857612237611e20565b5b612244858286016121c4565b9150509250929050565b6000819050919050565b6122618161224e565b811461226c57600080fd5b50565b60008135905061227e81612258565b92915050565b60006020828403121561229a57612299611e1b565b5b60006122a88482850161226f565b91505092915050565b6122ba8161224e565b82525050565b60006020820190506122d560008301846122b1565b92915050565b600067ffffffffffffffff8211156122f6576122f56120c7565b5b602082029050602081019050919050565b600080fd5b600061231f61231a846122db565b612127565b9050808382526020820190506020840283018581111561234257612341612307565b5b835b8181101561236b57806123578882611ea4565b845260208401935050602081019050612344565b5050509392505050565b600082601f83011261238a576123896120bd565b5b813561239a84826020860161230c565b91505092915050565b600067ffffffffffffffff8211156123be576123bd6120c7565b5b6123c782612051565b9050602081019050919050565b60006123e76123e2846123a3565b612127565b905082815260208101848484011115612403576124026120c2565b5b61240e848285612173565b509392505050565b600082601f83011261242b5761242a6120bd565b5b813561243b8482602086016123d4565b91505092915050565b600080600080600060a086880312156124605761245f611e1b565b5b600061246e88828901611e6e565b955050602061247f88828901611e6e565b945050604086013567ffffffffffffffff8111156124a05761249f611e20565b5b6124ac88828901612375565b935050606086013567ffffffffffffffff8111156124cd576124cc611e20565b5b6124d988828901612375565b925050608086013567ffffffffffffffff8111156124fa576124f9611e20565b5b61250688828901612416565b9150509295509295909350565b6000806040838503121561252a57612529611e1b565b5b60006125388582860161226f565b925050602061254985828601611e6e565b9150509250929050565b60006020828403121561256957612568611e1b565b5b600082013567ffffffffffffffff81111561258757612586611e20565b5b612593848285016121c4565b91505092915050565b600067ffffffffffffffff8211156125b7576125b66120c7565b5b602082029050602081019050919050565b60006125db6125d68461259c565b612127565b905080838252602082019050602084028301858111156125fe576125fd612307565b5b835b8181101561262757806126138882611e6e565b845260208401935050602081019050612600565b5050509392505050565b600082601f830112612646576126456120bd565b5b81356126568482602086016125c8565b91505092915050565b6000806040838503121561267657612675611e1b565b5b600083013567ffffffffffffffff81111561269457612693611e20565b5b6126a085828601612631565b925050602083013567ffffffffffffffff8111156126c1576126c0611e20565b5b6126cd85828601612375565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61270c81611e83565b82525050565b600061271e8383612703565b60208301905092915050565b6000602082019050919050565b6000612742826126d7565b61274c81856126e2565b9350612757836126f3565b8060005b8381101561278857815161276f8882612712565b975061277a8361272a565b92505060018101905061275b565b5085935050505092915050565b600060208201905081810360008301526127af8184612737565b905092915050565b600080600080608085870312156127d1576127d0611e1b565b5b60006127df87828801611e6e565b94505060206127f087828801611ea4565b935050604061280187828801611ea4565b925050606085013567ffffffffffffffff81111561282257612821611e20565b5b61282e87828801612416565b91505092959194509250565b61284381611fa8565b811461284e57600080fd5b50565b6000813590506128608161283a565b92915050565b6000806040838503121561287d5761287c611e1b565b5b600061288b85828601611e6e565b925050602061289c85828601612851565b9150509250929050565b6000806000606084860312156128bf576128be611e1b565b5b60006128cd86828701611ea4565b93505060206128de86828701611ea4565b925050604084013567ffffffffffffffff8111156128ff576128fe611e20565b5b61290b868287016121c4565b9150509250925092565b6000806040838503121561292c5761292b611e1b565b5b600061293a85828601611e6e565b925050602061294b85828601611e6e565b9150509250929050565b600080600080600060a0868803121561297157612970611e1b565b5b600061297f88828901611e6e565b955050602061299088828901611e6e565b94505060406129a188828901611ea4565b93505060606129b288828901611ea4565b925050608086013567ffffffffffffffff8111156129d3576129d2611e20565b5b6129df88828901612416565b9150509295509295909350565b600080600060608486031215612a0557612a04611e1b565b5b6000612a1386828701611e6e565b9350506020612a2486828701611ea4565b9250506040612a3586828701611ea4565b9150509250925092565b600081905092915050565b7f697066733a2f2f00000000000000000000000000000000000000000000000000600082015250565b6000612a80600783612a3f565b9150612a8b82612a4a565b600782019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612add57607f821691505b602082108103612af057612aef612a96565b5b50919050565b60008190508160005260206000209050919050565b60008154612b1881612ac5565b612b228186612a3f565b94506001821660008114612b3d5760018114612b5257612b85565b60ff1983168652811515820286019350612b85565b612b5b85612af6565b60005b83811015612b7d57815481890152600182019150602081019050612b5e565b838801955050505b50505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b6000612bc4600583612a3f565b9150612bcf82612b8e565b600582019050919050565b6000612be582612a73565b9150612bf18284612b0b565b9150612bfc82612bb7565b915081905092915050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612c547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612c17565b612c5e8683612c17565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612c9b612c96612c9184611e83565b612c76565b611e83565b9050919050565b6000819050919050565b612cb583612c80565b612cc9612cc182612ca2565b848454612c24565b825550505050565b600090565b612cde612cd1565b612ce9818484612cac565b505050565b5b81811015612d0d57612d02600082612cd6565b600181019050612cef565b5050565b601f821115612d5257612d2381612af6565b612d2c84612c07565b81016020851015612d3b578190505b612d4f612d4785612c07565b830182612cee565b50505b505050565b600082821c905092915050565b6000612d7560001984600802612d57565b1980831691505092915050565b6000612d8e8383612d64565b9150826002028217905092915050565b612da78261200b565b67ffffffffffffffff811115612dc057612dbf6120c7565b5b612dca8254612ac5565b612dd5828285612d11565b600060209050601f831160018114612e085760008415612df6578287015190505b612e008582612d82565b865550612e68565b601f198416612e1686612af6565b60005b82811015612e3e57848901518255600182019150602085019450602081019050612e19565b86831015612e5b5784890151612e57601f891682612d64565b8355505b6001600288020188555050505b505050505050565b612e7981611e45565b82525050565b6000604082019050612e946000830185612e70565b612ea16020830184612e70565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ee282611e83565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f1457612f13612ea8565b5b600182019050919050565b6000604082019050612f346000830185611ef9565b612f416020830184611ef9565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050612f8c6000830185612e70565b612f996020830184611ef9565b9392505050565b6000819050919050565b6000612fc5612fc0612fbb84612fa0565b612c76565b611e83565b9050919050565b612fd581612faa565b82525050565b6000602082019050612ff06000830184612fcc565b92915050565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b600061302c600183612a3f565b915061303782612ff6565b600182019050919050565b600061304d8261200b565b6130578185612a3f565b9350613067818560208601612027565b80840191505092915050565b600061307e82612a73565b915061308a8286612b0b565b91506130958261301f565b91506130a18285613042565b91506130ac8261301f565b91506130b88284613042565b91506130c382612bb7565b9150819050949350505050565b60006020820190506130e56000830184612e70565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600060408201905061312f6000830185612e70565b61313c60208301846122b1565b9392505050565b60006080820190506131586000830187612e70565b6131656020830186611ef9565b6131726040830185611ef9565b61317f6060830184611ef9565b95945050505050565b600061319382611e83565b915061319e83611e83565b92508282019050808211156131b6576131b5612ea8565b5b92915050565b600060408201905081810360008301526131d68185612737565b905081810360208301526131ea8184612737565b90509392505050565b600081519050919050565b600082825260208201905092915050565b600061321a826131f3565b61322481856131fe565b9350613234818560208601612027565b61323d81612051565b840191505092915050565b600060a08201905061325d6000830188612e70565b61326a6020830187612e70565b6132776040830186611ef9565b6132846060830185611ef9565b8181036080830152613296818461320f565b90509695505050505050565b6000815190506132b181611f4f565b92915050565b6000602082840312156132cd576132cc611e1b565b5b60006132db848285016132a2565b91505092915050565b600060a0820190506132f96000830188612e70565b6133066020830187612e70565b81810360408301526133188186612737565b9050818103606083015261332c8185612737565b90508181036080830152613340818461320f565b9050969550505050505056fea2646970667358221220294f8401608e8b44e40d642ddeddde899f8a456400db1a2f81df9ef8d59242d564736f6c63430008180033", - "linkReferences": {}, - "deployedLinkReferences": {} -} \ No newline at end of file diff --git a/ignition/deployments/chain-42161/journal.jsonl b/ignition/deployments/chain-42161/journal.jsonl deleted file mode 100644 index 2a377df..0000000 --- a/ignition/deployments/chain-42161/journal.jsonl +++ /dev/null @@ -1,4 +0,0 @@ - -{"chainId":42161,"type":"DEPLOYMENT_INITIALIZE"} -{"artifactId":"EngagementModule#Engagement","constructorArgs":[],"contractName":"Engagement","dependencies":[],"from":"0x0ea1cc42fde0ef6b939118ff4982a67e49b14dd3","futureId":"EngagementModule#Engagement","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} -{"futureId":"EngagementModule#Engagement","networkInteraction":{"data":"0x608060405260006004553480156200001657600080fd5b506040518060200160405280600081525062000038816200005560201b60201c565b506200004e6000801b336200006a60201b60201c565b5062000542565b80600290816200006691906200045b565b5050565b60006200007e83836200016e60201b60201c565b620001635760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620000ff620001d960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001905062000168565b600090505b92915050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200026357607f821691505b6020821081036200027957620002786200021b565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620002e37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002a4565b620002ef8683620002a4565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200033c62000336620003308462000307565b62000311565b62000307565b9050919050565b6000819050919050565b62000358836200031b565b62000370620003678262000343565b848454620002b1565b825550505050565b600090565b6200038762000378565b620003948184846200034d565b505050565b5b81811015620003bc57620003b06000826200037d565b6001810190506200039a565b5050565b601f8211156200040b57620003d5816200027f565b620003e08462000294565b81016020851015620003f0578190505b62000408620003ff8562000294565b83018262000399565b50505b505050565b600082821c905092915050565b6000620004306000198460080262000410565b1980831691505092915050565b60006200044b83836200041d565b9150826002028217905092915050565b6200046682620001e1565b67ffffffffffffffff811115620004825762000481620001ec565b5b6200048e82546200024a565b6200049b828285620003c0565b600060209050601f831160018114620004d35760008415620004be578287015190505b620004ca85826200043d565b8655506200053a565b601f198416620004e3866200027f565b60005b828110156200050d57848901518255600182019150602085019450602081019050620004e6565b868310156200052d578489015162000529601f8916826200041d565b8355505b6001600288020188555050505b505050505050565b61338280620005526000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c80634e1273f4116100b8578063a22cb4651161007c578063a22cb4651461035d578063c5afac6614610379578063d547741f146103a9578063e985e9c5146103c5578063f242432a146103f5578063f5298aca1461041157610136565b80634e1273f4146102a557806361bc221a146102d5578063731133e9146102f357806391d148541461030f578063a217fddf1461033f57610136565b806324c20a34116100ff57806324c20a34146102175780632eb2c2d6146102355780632f2ff15d1461025157806336568abe1461026d5780633cad9b0d1461028957610136565b8062fdd58e1461013b57806301ffc9a71461016b5780630e89341c1461019b5780631c4ce135146101cb578063248a9ca3146101e7575b600080fd5b61015560048036038101906101509190611eb9565b61042d565b6040516101629190611f08565b60405180910390f35b61018560048036038101906101809190611f7b565b610487565b6040516101929190611fc3565b60405180910390f35b6101b560048036038101906101b09190611fde565b61048e565b6040516101c2919061209b565b60405180910390f35b6101e560048036038101906101e091906121f2565b6104d4565b005b61020160048036038101906101fc9190612284565b610573565b60405161020e91906122c0565b60405180910390f35b61021f610593565b60405161022c91906122c0565b60405180910390f35b61024f600480360381019061024a9190612444565b6105b7565b005b61026b60048036038101906102669190612513565b61065f565b005b61028760048036038101906102829190612513565b610681565b005b6102a3600480360381019061029e9190612553565b6106fc565b005b6102bf60048036038101906102ba919061265f565b61079e565b6040516102cc9190612795565b60405180910390f35b6102dd6108a7565b6040516102ea9190611f08565b60405180910390f35b61030d600480360381019061030891906127b7565b6108b1565b005b61032960048036038101906103249190612513565b610970565b6040516103369190611fc3565b60405180910390f35b6103476109db565b60405161035491906122c0565b60405180910390f35b61037760048036038101906103729190612866565b6109e2565b005b610393600480360381019061038e91906128a6565b6109f8565b6040516103a0919061209b565b60405180910390f35b6103c360048036038101906103be9190612513565b610a4c565b005b6103df60048036038101906103da9190612915565b610a6e565b6040516103ec9190611fc3565b60405180910390f35b61040f600480360381019061040a9190612955565b610b02565b005b61042b600480360381019061042691906129ec565b610baa565b005b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000919050565b60608161049a81610c88565b600560008481526020019081526020016000206040516020016104bd9190612bda565b604051602081830303815290604052915050919050565b7f18d9ff454de989bd126b06bd404b47ede75f9e65543e94e8d212f89d7dcbb87c6104fe81610cd1565b8160066000858152602001908152602001600020908161051e9190612d9e565b50823373ffffffffffffffffffffffffffffffffffffffff167fee5e19404a9c880f5e862aeeedfa8f4b4b427864327c17888eb6a34d549e5a5584604051610566919061209b565b60405180910390a3505050565b600060036000838152602001908152602001600020600101549050919050565b7f18d9ff454de989bd126b06bd404b47ede75f9e65543e94e8d212f89d7dcbb87c81565b60006105c1610ce5565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561060657506106048682610a6e565b155b1561064a5780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610641929190612e7f565b60405180910390fd5b6106578686868686610ced565b505050505050565b61066882610573565b61067181610cd1565b61067b8383610de5565b50505050565b610689610ce5565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146106ed576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106f78282610ed7565b505050565b80600560006004548152602001908152602001600020908161071e9190612d9e565b5061073d33600454600160405180602001604052806000815250610fca565b6004543373ffffffffffffffffffffffffffffffffffffffff167fc65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c1660405160405180910390a36004600081548092919061079690612ed7565b919050555050565b606081518351146107ea57815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016107e1929190612f1f565b60405180910390fd5b6000835167ffffffffffffffff811115610807576108066120c7565b5b6040519080825280602002602001820160405280156108355781602001602082028036833780820191505090505b50905060005b845181101561089c5761087261085a828761106390919063ffffffff16565b61086d838761107790919063ffffffff16565b61042d565b82828151811061088557610884612f48565b5b60200260200101818152505080600101905061083b565b508091505092915050565b6000600454905090565b826108bb81610c88565b60006108c7868661042d565b111561090c5784846040517f788d2556000000000000000000000000000000000000000000000000000000008152600401610903929190612f77565b60405180910390fd5b6109198585600185610fca565b838573ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f60016040516109619190612fdb565b60405180910390a35050505050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b6109f46109ed610ce5565b838361108b565b5050565b606082610a0481610c88565b60066000868152602001908152602001600020610a20856111fb565b84604051602001610a3393929190613073565b6040516020818303038152906040529150509392505050565b610a5582610573565b610a5e81610cd1565b610a688383610ed7565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000610b0c610ce5565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610b515750610b4f8682610a6e565b155b15610b955780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610b8c929190612e7f565b60405180910390fd5b610ba286868686866112c9565b505050505050565b81610bb481610c88565b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610c265783836040517f8626cc03000000000000000000000000000000000000000000000000000000008152600401610c1d929190612f77565b60405180910390fd5b610c32848460016113d4565b828473ffffffffffffffffffffffffffffffffffffffff167f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a6001604051610c7a9190612fdb565b60405180910390a350505050565b6004548110610cce57806040517fc80a970c000000000000000000000000000000000000000000000000000000008152600401610cc59190611f08565b60405180910390fd5b50565b610ce281610cdd610ce5565b61147b565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610d5f5760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610d5691906130d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610dd15760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610dc891906130d0565b60405180910390fd5b610dde85858585856114cc565b5050505050565b6000610df18383610970565b610ecc5760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610e69610ce5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610ed1565b600090505b92915050565b6000610ee38383610970565b15610fbf5760006003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610f5c610ce5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050610fc4565b600090505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361103c5760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161103391906130d0565b60405180910390fd5b600080611049858561157e565b9150915061105b6000878484876114cc565b505050505050565b600060208202602084010151905092915050565b600060208202602084010151905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110fd5760006040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016110f491906130d0565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516111ee9190611fc3565b60405180910390a3505050565b60606000600161120a846115ae565b01905060008167ffffffffffffffff811115611229576112286120c7565b5b6040519080825280601f01601f19166020018201604052801561125b5781602001600182028036833780820191505090505b509050600082602001820190505b6001156112be578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816112b2576112b16130eb565b5b04945060008503611269575b819350505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361133b5760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161133291906130d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036113ad5760006040517f01a835140000000000000000000000000000000000000000000000000000000081526004016113a491906130d0565b60405180910390fd5b6000806113ba858561157e565b915091506113cb87878484876114cc565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114465760006040517f01a8351400000000000000000000000000000000000000000000000000000000815260040161143d91906130d0565b60405180910390fd5b600080611453848461157e565b915091506114748560008484604051806020016040528060008152506114cc565b5050505050565b6114858282610970565b6114c85780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016114bf92919061311a565b60405180910390fd5b5050565b6114d885858585611701565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611577576000611516610ce5565b9050600184510361156657600061153760008661107790919063ffffffff16565b9050600061154f60008661107790919063ffffffff16565b905061155f838989858589611aa9565b5050611575565b611574818787878787611c5d565b5b505b5050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061160c577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611602576116016130eb565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611649576d04ee2d6d415b85acef8100000000838161163f5761163e6130eb565b5b0492506020810190505b662386f26fc10000831061167857662386f26fc10000838161166e5761166d6130eb565b5b0492506010810190505b6305f5e10083106116a1576305f5e1008381611697576116966130eb565b5b0492506008810190505b61271083106116c65761271083816116bc576116bb6130eb565b5b0492506004810190505b606483106116e957606483816116df576116de6130eb565b5b0492506002810190505b600a83106116f8576001810190505b80915050919050565b805182511461174b57815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401611742929190612f1f565b60405180910390fd5b6000611755610ce5565b905060005b8351811015611964576000611778828661107790919063ffffffff16565b9050600061178f838661107790919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146118bc57600080600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561186457888183856040517f03dee4c500000000000000000000000000000000000000000000000000000000815260040161185b9493929190613143565b60405180910390fd5b81810360008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611957578060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461194f9190613188565b925050819055505b505080600101905061175a565b506001835103611a2357600061198460008561107790919063ffffffff16565b9050600061199c60008561107790919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611a14929190612f1f565b60405180910390a45050611aa2565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611a999291906131bc565b60405180910390a45b5050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611c55578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611b0a959493929190613248565b6020604051808303816000875af1925050508015611b4657506040513d601f19601f82011682018060405250810190611b4391906132b7565b60015b611bca573d8060008114611b76576040519150601f19603f3d011682016040523d82523d6000602084013e611b7b565b606091505b506000815103611bc257846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611bb991906130d0565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611c5357846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611c4a91906130d0565b60405180910390fd5b505b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611e09578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611cbe9594939291906132e4565b6020604051808303816000875af1925050508015611cfa57506040513d601f19601f82011682018060405250810190611cf791906132b7565b60015b611d7e573d8060008114611d2a576040519150601f19603f3d011682016040523d82523d6000602084013e611d2f565b606091505b506000815103611d7657846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611d6d91906130d0565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611e0757846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611dfe91906130d0565b60405180910390fd5b505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611e5082611e25565b9050919050565b611e6081611e45565b8114611e6b57600080fd5b50565b600081359050611e7d81611e57565b92915050565b6000819050919050565b611e9681611e83565b8114611ea157600080fd5b50565b600081359050611eb381611e8d565b92915050565b60008060408385031215611ed057611ecf611e1b565b5b6000611ede85828601611e6e565b9250506020611eef85828601611ea4565b9150509250929050565b611f0281611e83565b82525050565b6000602082019050611f1d6000830184611ef9565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611f5881611f23565b8114611f6357600080fd5b50565b600081359050611f7581611f4f565b92915050565b600060208284031215611f9157611f90611e1b565b5b6000611f9f84828501611f66565b91505092915050565b60008115159050919050565b611fbd81611fa8565b82525050565b6000602082019050611fd86000830184611fb4565b92915050565b600060208284031215611ff457611ff3611e1b565b5b600061200284828501611ea4565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561204557808201518184015260208101905061202a565b60008484015250505050565b6000601f19601f8301169050919050565b600061206d8261200b565b6120778185612016565b9350612087818560208601612027565b61209081612051565b840191505092915050565b600060208201905081810360008301526120b58184612062565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6120ff82612051565b810181811067ffffffffffffffff8211171561211e5761211d6120c7565b5b80604052505050565b6000612131611e11565b905061213d82826120f6565b919050565b600067ffffffffffffffff82111561215d5761215c6120c7565b5b61216682612051565b9050602081019050919050565b82818337600083830152505050565b600061219561219084612142565b612127565b9050828152602081018484840111156121b1576121b06120c2565b5b6121bc848285612173565b509392505050565b600082601f8301126121d9576121d86120bd565b5b81356121e9848260208601612182565b91505092915050565b6000806040838503121561220957612208611e1b565b5b600061221785828601611ea4565b925050602083013567ffffffffffffffff81111561223857612237611e20565b5b612244858286016121c4565b9150509250929050565b6000819050919050565b6122618161224e565b811461226c57600080fd5b50565b60008135905061227e81612258565b92915050565b60006020828403121561229a57612299611e1b565b5b60006122a88482850161226f565b91505092915050565b6122ba8161224e565b82525050565b60006020820190506122d560008301846122b1565b92915050565b600067ffffffffffffffff8211156122f6576122f56120c7565b5b602082029050602081019050919050565b600080fd5b600061231f61231a846122db565b612127565b9050808382526020820190506020840283018581111561234257612341612307565b5b835b8181101561236b57806123578882611ea4565b845260208401935050602081019050612344565b5050509392505050565b600082601f83011261238a576123896120bd565b5b813561239a84826020860161230c565b91505092915050565b600067ffffffffffffffff8211156123be576123bd6120c7565b5b6123c782612051565b9050602081019050919050565b60006123e76123e2846123a3565b612127565b905082815260208101848484011115612403576124026120c2565b5b61240e848285612173565b509392505050565b600082601f83011261242b5761242a6120bd565b5b813561243b8482602086016123d4565b91505092915050565b600080600080600060a086880312156124605761245f611e1b565b5b600061246e88828901611e6e565b955050602061247f88828901611e6e565b945050604086013567ffffffffffffffff8111156124a05761249f611e20565b5b6124ac88828901612375565b935050606086013567ffffffffffffffff8111156124cd576124cc611e20565b5b6124d988828901612375565b925050608086013567ffffffffffffffff8111156124fa576124f9611e20565b5b61250688828901612416565b9150509295509295909350565b6000806040838503121561252a57612529611e1b565b5b60006125388582860161226f565b925050602061254985828601611e6e565b9150509250929050565b60006020828403121561256957612568611e1b565b5b600082013567ffffffffffffffff81111561258757612586611e20565b5b612593848285016121c4565b91505092915050565b600067ffffffffffffffff8211156125b7576125b66120c7565b5b602082029050602081019050919050565b60006125db6125d68461259c565b612127565b905080838252602082019050602084028301858111156125fe576125fd612307565b5b835b8181101561262757806126138882611e6e565b845260208401935050602081019050612600565b5050509392505050565b600082601f830112612646576126456120bd565b5b81356126568482602086016125c8565b91505092915050565b6000806040838503121561267657612675611e1b565b5b600083013567ffffffffffffffff81111561269457612693611e20565b5b6126a085828601612631565b925050602083013567ffffffffffffffff8111156126c1576126c0611e20565b5b6126cd85828601612375565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61270c81611e83565b82525050565b600061271e8383612703565b60208301905092915050565b6000602082019050919050565b6000612742826126d7565b61274c81856126e2565b9350612757836126f3565b8060005b8381101561278857815161276f8882612712565b975061277a8361272a565b92505060018101905061275b565b5085935050505092915050565b600060208201905081810360008301526127af8184612737565b905092915050565b600080600080608085870312156127d1576127d0611e1b565b5b60006127df87828801611e6e565b94505060206127f087828801611ea4565b935050604061280187828801611ea4565b925050606085013567ffffffffffffffff81111561282257612821611e20565b5b61282e87828801612416565b91505092959194509250565b61284381611fa8565b811461284e57600080fd5b50565b6000813590506128608161283a565b92915050565b6000806040838503121561287d5761287c611e1b565b5b600061288b85828601611e6e565b925050602061289c85828601612851565b9150509250929050565b6000806000606084860312156128bf576128be611e1b565b5b60006128cd86828701611ea4565b93505060206128de86828701611ea4565b925050604084013567ffffffffffffffff8111156128ff576128fe611e20565b5b61290b868287016121c4565b9150509250925092565b6000806040838503121561292c5761292b611e1b565b5b600061293a85828601611e6e565b925050602061294b85828601611e6e565b9150509250929050565b600080600080600060a0868803121561297157612970611e1b565b5b600061297f88828901611e6e565b955050602061299088828901611e6e565b94505060406129a188828901611ea4565b93505060606129b288828901611ea4565b925050608086013567ffffffffffffffff8111156129d3576129d2611e20565b5b6129df88828901612416565b9150509295509295909350565b600080600060608486031215612a0557612a04611e1b565b5b6000612a1386828701611e6e565b9350506020612a2486828701611ea4565b9250506040612a3586828701611ea4565b9150509250925092565b600081905092915050565b7f697066733a2f2f00000000000000000000000000000000000000000000000000600082015250565b6000612a80600783612a3f565b9150612a8b82612a4a565b600782019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612add57607f821691505b602082108103612af057612aef612a96565b5b50919050565b60008190508160005260206000209050919050565b60008154612b1881612ac5565b612b228186612a3f565b94506001821660008114612b3d5760018114612b5257612b85565b60ff1983168652811515820286019350612b85565b612b5b85612af6565b60005b83811015612b7d57815481890152600182019150602081019050612b5e565b838801955050505b50505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b6000612bc4600583612a3f565b9150612bcf82612b8e565b600582019050919050565b6000612be582612a73565b9150612bf18284612b0b565b9150612bfc82612bb7565b915081905092915050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612c547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612c17565b612c5e8683612c17565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612c9b612c96612c9184611e83565b612c76565b611e83565b9050919050565b6000819050919050565b612cb583612c80565b612cc9612cc182612ca2565b848454612c24565b825550505050565b600090565b612cde612cd1565b612ce9818484612cac565b505050565b5b81811015612d0d57612d02600082612cd6565b600181019050612cef565b5050565b601f821115612d5257612d2381612af6565b612d2c84612c07565b81016020851015612d3b578190505b612d4f612d4785612c07565b830182612cee565b50505b505050565b600082821c905092915050565b6000612d7560001984600802612d57565b1980831691505092915050565b6000612d8e8383612d64565b9150826002028217905092915050565b612da78261200b565b67ffffffffffffffff811115612dc057612dbf6120c7565b5b612dca8254612ac5565b612dd5828285612d11565b600060209050601f831160018114612e085760008415612df6578287015190505b612e008582612d82565b865550612e68565b601f198416612e1686612af6565b60005b82811015612e3e57848901518255600182019150602085019450602081019050612e19565b86831015612e5b5784890151612e57601f891682612d64565b8355505b6001600288020188555050505b505050505050565b612e7981611e45565b82525050565b6000604082019050612e946000830185612e70565b612ea16020830184612e70565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ee282611e83565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f1457612f13612ea8565b5b600182019050919050565b6000604082019050612f346000830185611ef9565b612f416020830184611ef9565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050612f8c6000830185612e70565b612f996020830184611ef9565b9392505050565b6000819050919050565b6000612fc5612fc0612fbb84612fa0565b612c76565b611e83565b9050919050565b612fd581612faa565b82525050565b6000602082019050612ff06000830184612fcc565b92915050565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b600061302c600183612a3f565b915061303782612ff6565b600182019050919050565b600061304d8261200b565b6130578185612a3f565b9350613067818560208601612027565b80840191505092915050565b600061307e82612a73565b915061308a8286612b0b565b91506130958261301f565b91506130a18285613042565b91506130ac8261301f565b91506130b88284613042565b91506130c382612bb7565b9150819050949350505050565b60006020820190506130e56000830184612e70565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600060408201905061312f6000830185612e70565b61313c60208301846122b1565b9392505050565b60006080820190506131586000830187612e70565b6131656020830186611ef9565b6131726040830185611ef9565b61317f6060830184611ef9565b95945050505050565b600061319382611e83565b915061319e83611e83565b92508282019050808211156131b6576131b5612ea8565b5b92915050565b600060408201905081810360008301526131d68185612737565b905081810360208301526131ea8184612737565b90509392505050565b600081519050919050565b600082825260208201905092915050565b600061321a826131f3565b61322481856131fe565b9350613234818560208601612027565b61323d81612051565b840191505092915050565b600060a08201905061325d6000830188612e70565b61326a6020830187612e70565b6132776040830186611ef9565b6132846060830185611ef9565b8181036080830152613296818461320f565b90509695505050505050565b6000815190506132b181611f4f565b92915050565b6000602082840312156132cd576132cc611e1b565b5b60006132db848285016132a2565b91505092915050565b600060a0820190506132f96000830188612e70565b6133066020830187612e70565b81810360408301526133188186612737565b9050818103606083015261332c8185612737565b90508181036080830152613340818461320f565b9050969550505050505056fea2646970667358221220294f8401608e8b44e40d642ddeddde899f8a456400db1a2f81df9ef8d59242d564736f6c63430008180033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} \ No newline at end of file diff --git a/ignition/deployments/chain-480/artifacts/EngagementModule#Engagement.dbg.json b/ignition/deployments/chain-480/artifacts/EngagementModule#Engagement.dbg.json new file mode 100644 index 0000000..15719ca --- /dev/null +++ b/ignition/deployments/chain-480/artifacts/EngagementModule#Engagement.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../build-info/4e58f17c75b86363e11bf0ecd1dbfa6a.json" +} \ No newline at end of file diff --git a/ignition/deployments/chain-480/artifacts/EngagementModule#Engagement.json b/ignition/deployments/chain-480/artifacts/EngagementModule#Engagement.json new file mode 100644 index 0000000..6fde0be --- /dev/null +++ b/ignition/deployments/chain-480/artifacts/EngagementModule#Engagement.json @@ -0,0 +1,903 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Engagement", + "sourceName": "contracts/Engagement.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "tokenURI_", + "type": "string" + } + ], + "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": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC1155InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC1155InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idsLength", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "valuesLength", + "type": "uint256" + } + ], + "name": "ERC1155InvalidArrayLength", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC1155InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC1155InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC1155InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC1155MissingApprovalForAll", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "message", + "type": "string" + } + ], + "name": "EmptyAccountNotAllowed", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "MintLimit", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "NotAllowed", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "NotFound", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "message", + "type": "string" + } + ], + "name": "URIEmpty", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "oldURI", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "newURI", + "type": "string" + } + ], + "name": "BaseURIUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Burn", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Issue", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Mint", + "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": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "indexed": false, + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + } + ], + "name": "TransferBatch", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "TransferSingle", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "value", + "type": "string" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "URI", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "accounts", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + } + ], + "name": "balanceOfBatch", + "outputs": [ + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "counter", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "issue", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "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": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "ids", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeBatchTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "newURI", + "type": "string" + } + ], + "name": "updateBaseURI", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "uri", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "string", + "name": "account", + "type": "string" + } + ], + "name": "uri", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50604051613edb380380613edb833981810160405281019061003291906103cb565b604051806020016040528060008152506100518161008b60201b60201c565b506100618161009e60201b60201c565b6100746000801b336100e560201b60201c565b5080600590816100849190610635565b5050610784565b806002908161009a9190610635565b5050565b60008151036100e2576040517f1897cf660000000000000000000000000000000000000000000000000000000081526004016100d990610764565b60405180910390fd5b50565b60006100f783836101e360201b60201c565b6101d85760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061017561024e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506101dd565b600090505b92915050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6102bd82610274565b810181811067ffffffffffffffff821117156102dc576102db610285565b5b80604052505050565b60006102ef610256565b90506102fb82826102b4565b919050565b600067ffffffffffffffff82111561031b5761031a610285565b5b61032482610274565b9050602081019050919050565b60005b8381101561034f578082015181840152602081019050610334565b60008484015250505050565b600061036e61036984610300565b6102e5565b90508281526020810184848401111561038a5761038961026f565b5b610395848285610331565b509392505050565b600082601f8301126103b2576103b161026a565b5b81516103c284826020860161035b565b91505092915050565b6000602082840312156103e1576103e0610260565b5b600082015167ffffffffffffffff8111156103ff576103fe610265565b5b61040b8482850161039d565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061046657607f821691505b6020821081036104795761047861041f565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026104e17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826104a4565b6104eb86836104a4565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600061053261052d61052884610503565b61050d565b610503565b9050919050565b6000819050919050565b61054c83610517565b61056061055882610539565b8484546104b1565b825550505050565b600090565b610575610568565b610580818484610543565b505050565b5b818110156105a45761059960008261056d565b600181019050610586565b5050565b601f8211156105e9576105ba8161047f565b6105c384610494565b810160208510156105d2578190505b6105e66105de85610494565b830182610585565b50505b505050565b600082821c905092915050565b600061060c600019846008026105ee565b1980831691505092915050565b600061062583836105fb565b9150826002028217905092915050565b61063e82610414565b67ffffffffffffffff81111561065757610656610285565b5b610661825461044e565b61066c8282856105a8565b600060209050601f83116001811461069f576000841561068d578287015190505b6106978582610619565b8655506106ff565b601f1984166106ad8661047f565b60005b828110156106d5578489015182556001820191506020850194506020810190506106b0565b868310156106f257848901516106ee601f8916826105fb565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f5552492063616e6e6f7420626520656d70747900000000000000000000000000600082015250565b600061074e601383610707565b915061075982610718565b602082019050919050565b6000602082019050818103600083015261077d81610741565b9050919050565b613748806107936000396000f3fe608060405234801561001057600080fd5b506004361061012b5760003560e01c806376b676f1116100ad578063d383f64611610071578063d383f64614610364578063d547741f1461036e578063e985e9c51461038a578063f242432a146103ba578063f5298aca146103d65761012b565b806376b676f1146102ae57806391d14854146102de578063931688cb1461030e578063a217fddf1461032a578063a22cb465146103485761012b565b80632f2ff15d116100f45780632f2ff15d1461020c57806336568abe146102285780634e1273f41461024457806361bc221a14610274578063731133e9146102925761012b565b8062fdd58e1461013057806301ffc9a7146101605780630e89341c14610190578063248a9ca3146101c05780632eb2c2d6146101f0575b600080fd5b61014a600480360381019061014591906121b1565b6103f2565b6040516101579190612200565b60405180910390f35b61017a60048036038101906101759190612273565b61044c565b60405161018791906122bb565b60405180910390f35b6101aa60048036038101906101a591906122d6565b61048c565b6040516101b79190612393565b60405180910390f35b6101da60048036038101906101d591906123eb565b610520565b6040516101e79190612427565b60405180910390f35b61020a6004803603810190610205919061263f565b610540565b005b6102266004803603810190610221919061270e565b6105e8565b005b610242600480360381019061023d919061270e565b61060a565b005b61025e60048036038101906102599190612811565b610685565b60405161026b9190612947565b60405180910390f35b61027c61078e565b6040516102899190612200565b60405180910390f35b6102ac60048036038101906102a79190612969565b610798565b005b6102c860048036038101906102c39190612a8d565b610856565b6040516102d59190612393565b60405180910390f35b6102f860048036038101906102f3919061270e565b6108de565b60405161030591906122bb565b60405180910390f35b61032860048036038101906103239190612ae9565b610949565b005b6103326109ad565b60405161033f9190612427565b60405180910390f35b610362600480360381019061035d9190612b5e565b6109b4565b005b61036c6109ca565b005b6103886004803603810190610383919061270e565b610a47565b005b6103a4600480360381019061039f9190612b9e565b610a69565b6040516103b191906122bb565b60405180910390f35b6103d460048036038101906103cf9190612bde565b610afd565b005b6103f060048036038101906103eb9190612c75565b610ba5565b005b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061046d3073ffffffffffffffffffffffffffffffffffffffff16610c87565b156104825761047b82610cd4565b9050610487565b600090505b919050565b60606002805461049b90612cf7565b80601f01602080910402602001604051908101604052809291908181526020018280546104c790612cf7565b80156105145780601f106104e957610100808354040283529160200191610514565b820191906000526020600020905b8154815290600101906020018083116104f757829003601f168201915b50505050509050919050565b600060036000838152602001908152602001600020600101549050919050565b600061054a610d4e565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561058f575061058d8682610a69565b155b156105d35780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016105ca929190612d37565b60405180910390fd5b6105e08686868686610d56565b505050505050565b6105f182610520565b6105fa81610e4e565b6106048383610e62565b50505050565b610612610d4e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610676576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106808282610f54565b505050565b606081518351146106d157815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016106c8929190612d60565b60405180910390fd5b6000835167ffffffffffffffff8111156106ee576106ed612447565b5b60405190808252806020026020018201604052801561071c5781602001602082028036833780820191505090505b50905060005b845181101561078357610759610741828761104790919063ffffffff16565b610754838761105b90919063ffffffff16565b6103f2565b82828151811061076c5761076b612d89565b5b602002602001018181525050806001019050610722565b508091505092915050565b6000600454905090565b826107a28161106f565b60016107ae86866103f2565b106107f25784846040517f788d25560000000000000000000000000000000000000000000000000000000081526004016107e9929190612db8565b60405180910390fd5b6107ff85856001856110b8565b838573ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f60016040516108479190612e26565b60405180910390a35050505050565b6060826108628161106f565b8260008151036108a7576040517fc29f9db300000000000000000000000000000000000000000000000000000000815260040161089e90612e8d565b60405180910390fd5b60056108b286611151565b856040516020016108c593929190613065565b6040516020818303038152906040529250505092915050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b61095681610e4e565b61095f8261121f565b7f309b29ded109b9e28fb9885757b3e0096eb75c51d23aa4635d68bcd569f6adc160058360405161099192919061313b565b60405180910390a181600590816109a891906132ff565b505050565b6000801b81565b6109c66109bf610d4e565b8383611266565b5050565b600060045490506109ed33826001604051806020016040528060008152506110b8565b803373ffffffffffffffffffffffffffffffffffffffff167fc65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c1660405160405180910390a3600181610a3e9190613400565b60048190555050565b610a5082610520565b610a5981610e4e565b610a638383610f54565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000610b07610d4e565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610b4c5750610b4a8682610a69565b155b15610b905780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610b87929190612d37565b60405180910390fd5b610b9d86868686866113d6565b505050505050565b81610baf8161106f565b83833373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610c235781816040517f8626cc03000000000000000000000000000000000000000000000000000000008152600401610c1a929190612db8565b60405180910390fd5b610c2f868660016114e1565b848673ffffffffffffffffffffffffffffffffffffffff167f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a6001604051610c779190612e26565b60405180910390a3505050505050565b6000610cb3827f01ffc9a700000000000000000000000000000000000000000000000000000000611588565b8015610ccd5750610ccb8263ffffffff60e01b611588565b155b9050919050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610d475750610d4682611627565b5b9050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610dc85760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610dbf9190613434565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610e3a5760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610e319190613434565b60405180910390fd5b610e478585858585611709565b5050505050565b610e5f81610e5a610d4e565b6117bb565b50565b6000610e6e83836108de565b610f495760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610ee6610d4e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610f4e565b600090505b92915050565b6000610f6083836108de565b1561103c5760006003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610fd9610d4e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611041565b600090505b92915050565b600060208202602084010151905092915050565b600060208202602084010151905092915050565b60045481106110b557806040517fc80a970c0000000000000000000000000000000000000000000000000000000081526004016110ac9190612200565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361112a5760006040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016111219190613434565b60405180910390fd5b600080611137858561180c565b91509150611149600087848487611709565b505050505050565b6060600060016111608461183c565b01905060008167ffffffffffffffff81111561117f5761117e612447565b5b6040519080825280601f01601f1916602001820160405280156111b15781602001600182028036833780820191505090505b509050600082602001820190505b600115611214578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816112085761120761344f565b5b049450600085036111bf575b819350505050919050565b6000815103611263576040517f1897cf6600000000000000000000000000000000000000000000000000000000815260040161125a906134ca565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112d85760006040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016112cf9190613434565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516113c991906122bb565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036114485760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161143f9190613434565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036114ba5760006040517f01a835140000000000000000000000000000000000000000000000000000000081526004016114b19190613434565b60405180910390fd5b6000806114c7858561180c565b915091506114d88787848487611709565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115535760006040517f01a8351400000000000000000000000000000000000000000000000000000000815260040161154a9190613434565b60405180910390fd5b600080611560848461180c565b91509150611581856000848460405180602001604052806000815250611709565b5050505050565b6000808260405160240161159c91906134f9565b6040516020818303038152906040526301ffc9a760e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000806000602060008551602087018a617530fa92503d9150600051905082801561160f575060208210155b801561161b5750600081115b94505050505092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806116f257507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061170257506117018261198f565b5b9050919050565b611715858585856119f9565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146117b4576000611753610d4e565b905060018451036117a357600061177460008661105b90919063ffffffff16565b9050600061178c60008661105b90919063ffffffff16565b905061179c838989858589611da1565b50506117b2565b6117b1818787878787611f55565b5b505b5050505050565b6117c582826108de565b6118085780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016117ff929190613514565b60405180910390fd5b5050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061189a577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816118905761188f61344f565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106118d7576d04ee2d6d415b85acef810000000083816118cd576118cc61344f565b5b0492506020810190505b662386f26fc10000831061190657662386f26fc1000083816118fc576118fb61344f565b5b0492506010810190505b6305f5e100831061192f576305f5e10083816119255761192461344f565b5b0492506008810190505b612710831061195457612710838161194a5761194961344f565b5b0492506004810190505b60648310611977576064838161196d5761196c61344f565b5b0492506002810190505b600a8310611986576001810190505b80915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b8051825114611a4357815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401611a3a929190612d60565b60405180910390fd5b6000611a4d610d4e565b905060005b8351811015611c5c576000611a70828661105b90919063ffffffff16565b90506000611a87838661105b90919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611bb457600080600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611b5c57888183856040517f03dee4c5000000000000000000000000000000000000000000000000000000008152600401611b53949392919061353d565b60405180910390fd5b81810360008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611c4f578060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c479190613400565b925050819055505b5050806001019050611a52565b506001835103611d1b576000611c7c60008561105b90919063ffffffff16565b90506000611c9460008561105b90919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611d0c929190612d60565b60405180910390a45050611d9a565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611d91929190613582565b60405180910390a45b5050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611f4d578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611e0295949392919061360e565b6020604051808303816000875af1925050508015611e3e57506040513d601f19601f82011682018060405250810190611e3b919061367d565b60015b611ec2573d8060008114611e6e576040519150601f19603f3d011682016040523d82523d6000602084013e611e73565b606091505b506000815103611eba57846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611eb19190613434565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611f4b57846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611f429190613434565b60405180910390fd5b505b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115612101578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611fb69594939291906136aa565b6020604051808303816000875af1925050508015611ff257506040513d601f19601f82011682018060405250810190611fef919061367d565b60015b612076573d8060008114612022576040519150601f19603f3d011682016040523d82523d6000602084013e612027565b606091505b50600081510361206e57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016120659190613434565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146120ff57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016120f69190613434565b60405180910390fd5b505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121488261211d565b9050919050565b6121588161213d565b811461216357600080fd5b50565b6000813590506121758161214f565b92915050565b6000819050919050565b61218e8161217b565b811461219957600080fd5b50565b6000813590506121ab81612185565b92915050565b600080604083850312156121c8576121c7612113565b5b60006121d685828601612166565b92505060206121e78582860161219c565b9150509250929050565b6121fa8161217b565b82525050565b600060208201905061221560008301846121f1565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6122508161221b565b811461225b57600080fd5b50565b60008135905061226d81612247565b92915050565b60006020828403121561228957612288612113565b5b60006122978482850161225e565b91505092915050565b60008115159050919050565b6122b5816122a0565b82525050565b60006020820190506122d060008301846122ac565b92915050565b6000602082840312156122ec576122eb612113565b5b60006122fa8482850161219c565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561233d578082015181840152602081019050612322565b60008484015250505050565b6000601f19601f8301169050919050565b600061236582612303565b61236f818561230e565b935061237f81856020860161231f565b61238881612349565b840191505092915050565b600060208201905081810360008301526123ad818461235a565b905092915050565b6000819050919050565b6123c8816123b5565b81146123d357600080fd5b50565b6000813590506123e5816123bf565b92915050565b60006020828403121561240157612400612113565b5b600061240f848285016123d6565b91505092915050565b612421816123b5565b82525050565b600060208201905061243c6000830184612418565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61247f82612349565b810181811067ffffffffffffffff8211171561249e5761249d612447565b5b80604052505050565b60006124b1612109565b90506124bd8282612476565b919050565b600067ffffffffffffffff8211156124dd576124dc612447565b5b602082029050602081019050919050565b600080fd5b6000612506612501846124c2565b6124a7565b90508083825260208201905060208402830185811115612529576125286124ee565b5b835b81811015612552578061253e888261219c565b84526020840193505060208101905061252b565b5050509392505050565b600082601f83011261257157612570612442565b5b81356125818482602086016124f3565b91505092915050565b600080fd5b600067ffffffffffffffff8211156125aa576125a9612447565b5b6125b382612349565b9050602081019050919050565b82818337600083830152505050565b60006125e26125dd8461258f565b6124a7565b9050828152602081018484840111156125fe576125fd61258a565b5b6126098482856125c0565b509392505050565b600082601f83011261262657612625612442565b5b81356126368482602086016125cf565b91505092915050565b600080600080600060a0868803121561265b5761265a612113565b5b600061266988828901612166565b955050602061267a88828901612166565b945050604086013567ffffffffffffffff81111561269b5761269a612118565b5b6126a78882890161255c565b935050606086013567ffffffffffffffff8111156126c8576126c7612118565b5b6126d48882890161255c565b925050608086013567ffffffffffffffff8111156126f5576126f4612118565b5b61270188828901612611565b9150509295509295909350565b6000806040838503121561272557612724612113565b5b6000612733858286016123d6565b925050602061274485828601612166565b9150509250929050565b600067ffffffffffffffff82111561276957612768612447565b5b602082029050602081019050919050565b600061278d6127888461274e565b6124a7565b905080838252602082019050602084028301858111156127b0576127af6124ee565b5b835b818110156127d957806127c58882612166565b8452602084019350506020810190506127b2565b5050509392505050565b600082601f8301126127f8576127f7612442565b5b813561280884826020860161277a565b91505092915050565b6000806040838503121561282857612827612113565b5b600083013567ffffffffffffffff81111561284657612845612118565b5b612852858286016127e3565b925050602083013567ffffffffffffffff81111561287357612872612118565b5b61287f8582860161255c565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6128be8161217b565b82525050565b60006128d083836128b5565b60208301905092915050565b6000602082019050919050565b60006128f482612889565b6128fe8185612894565b9350612909836128a5565b8060005b8381101561293a57815161292188826128c4565b975061292c836128dc565b92505060018101905061290d565b5085935050505092915050565b6000602082019050818103600083015261296181846128e9565b905092915050565b6000806000806080858703121561298357612982612113565b5b600061299187828801612166565b94505060206129a28782880161219c565b93505060406129b38782880161219c565b925050606085013567ffffffffffffffff8111156129d4576129d3612118565b5b6129e087828801612611565b91505092959194509250565b600067ffffffffffffffff821115612a0757612a06612447565b5b612a1082612349565b9050602081019050919050565b6000612a30612a2b846129ec565b6124a7565b905082815260208101848484011115612a4c57612a4b61258a565b5b612a578482856125c0565b509392505050565b600082601f830112612a7457612a73612442565b5b8135612a84848260208601612a1d565b91505092915050565b60008060408385031215612aa457612aa3612113565b5b6000612ab28582860161219c565b925050602083013567ffffffffffffffff811115612ad357612ad2612118565b5b612adf85828601612a5f565b9150509250929050565b600060208284031215612aff57612afe612113565b5b600082013567ffffffffffffffff811115612b1d57612b1c612118565b5b612b2984828501612a5f565b91505092915050565b612b3b816122a0565b8114612b4657600080fd5b50565b600081359050612b5881612b32565b92915050565b60008060408385031215612b7557612b74612113565b5b6000612b8385828601612166565b9250506020612b9485828601612b49565b9150509250929050565b60008060408385031215612bb557612bb4612113565b5b6000612bc385828601612166565b9250506020612bd485828601612166565b9150509250929050565b600080600080600060a08688031215612bfa57612bf9612113565b5b6000612c0888828901612166565b9550506020612c1988828901612166565b9450506040612c2a8882890161219c565b9350506060612c3b8882890161219c565b925050608086013567ffffffffffffffff811115612c5c57612c5b612118565b5b612c6888828901612611565b9150509295509295909350565b600080600060608486031215612c8e57612c8d612113565b5b6000612c9c86828701612166565b9350506020612cad8682870161219c565b9250506040612cbe8682870161219c565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612d0f57607f821691505b602082108103612d2257612d21612cc8565b5b50919050565b612d318161213d565b82525050565b6000604082019050612d4c6000830185612d28565b612d596020830184612d28565b9392505050565b6000604082019050612d7560008301856121f1565b612d8260208301846121f1565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050612dcd6000830185612d28565b612dda60208301846121f1565b9392505050565b6000819050919050565b6000819050919050565b6000612e10612e0b612e0684612de1565b612deb565b61217b565b9050919050565b612e2081612df5565b82525050565b6000602082019050612e3b6000830184612e17565b92915050565b7f4163636f756e742063616e6e6f7420626520656d707479000000000000000000600082015250565b6000612e7760178361230e565b9150612e8282612e41565b602082019050919050565b60006020820190508181036000830152612ea681612e6a565b9050919050565b600081905092915050565b60008190508160005260206000209050919050565b60008154612eda81612cf7565b612ee48186612ead565b94506001821660008114612eff5760018114612f1457612f47565b60ff1983168652811515820286019350612f47565b612f1d85612eb8565b60005b83811015612f3f57815481890152600182019150602081019050612f20565b838801955050505b50505092915050565b7f2f6170692f76312f6e66742f0000000000000000000000000000000000000000600082015250565b6000612f86600c83612ead565b9150612f9182612f50565b600c82019050919050565b6000612fa782612303565b612fb18185612ead565b9350612fc181856020860161231f565b80840191505092915050565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b6000613003600183612ead565b915061300e82612fcd565b600182019050919050565b7f2f72657075746174696f6e2d73636f7265000000000000000000000000000000600082015250565b600061304f601183612ead565b915061305a82613019565b601182019050919050565b60006130718286612ecd565b915061307c82612f79565b91506130888285612f9c565b915061309382612ff6565b915061309f8284612f9c565b91506130aa82613042565b9150819050949350505050565b600081546130c481612cf7565b6130ce818661230e565b945060018216600081146130e957600181146130ff57613132565b60ff198316865281151560200286019350613132565b61310885612eb8565b60005b8381101561312a5781548189015260018201915060208101905061310b565b808801955050505b50505092915050565b6000604082019050818103600083015261315581856130b7565b90508181036020830152613169818461235a565b90509392505050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026131bf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613182565b6131c98683613182565b95508019841693508086168417925050509392505050565b60006131fc6131f76131f28461217b565b612deb565b61217b565b9050919050565b6000819050919050565b613216836131e1565b61322a61322282613203565b84845461318f565b825550505050565b600090565b61323f613232565b61324a81848461320d565b505050565b5b8181101561326e57613263600082613237565b600181019050613250565b5050565b601f8211156132b35761328481612eb8565b61328d84613172565b8101602085101561329c578190505b6132b06132a885613172565b83018261324f565b50505b505050565b600082821c905092915050565b60006132d6600019846008026132b8565b1980831691505092915050565b60006132ef83836132c5565b9150826002028217905092915050565b61330882612303565b67ffffffffffffffff81111561332157613320612447565b5b61332b8254612cf7565b613336828285613272565b600060209050601f8311600181146133695760008415613357578287015190505b61336185826132e3565b8655506133c9565b601f19841661337786612eb8565b60005b8281101561339f5784890151825560018201915060208501945060208101905061337a565b868310156133bc57848901516133b8601f8916826132c5565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061340b8261217b565b91506134168361217b565b925082820190508082111561342e5761342d6133d1565b5b92915050565b60006020820190506134496000830184612d28565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f5552492063616e6e6f7420626520656d70747900000000000000000000000000600082015250565b60006134b460138361230e565b91506134bf8261347e565b602082019050919050565b600060208201905081810360008301526134e3816134a7565b9050919050565b6134f38161221b565b82525050565b600060208201905061350e60008301846134ea565b92915050565b60006040820190506135296000830185612d28565b6135366020830184612418565b9392505050565b60006080820190506135526000830187612d28565b61355f60208301866121f1565b61356c60408301856121f1565b61357960608301846121f1565b95945050505050565b6000604082019050818103600083015261359c81856128e9565b905081810360208301526135b081846128e9565b90509392505050565b600081519050919050565b600082825260208201905092915050565b60006135e0826135b9565b6135ea81856135c4565b93506135fa81856020860161231f565b61360381612349565b840191505092915050565b600060a0820190506136236000830188612d28565b6136306020830187612d28565b61363d60408301866121f1565b61364a60608301856121f1565b818103608083015261365c81846135d5565b90509695505050505050565b60008151905061367781612247565b92915050565b60006020828403121561369357613692612113565b5b60006136a184828501613668565b91505092915050565b600060a0820190506136bf6000830188612d28565b6136cc6020830187612d28565b81810360408301526136de81866128e9565b905081810360608301526136f281856128e9565b9050818103608083015261370681846135d5565b9050969550505050505056fea2646970667358221220240e9a7daab5d9eba2793e75f4bbf0e9a74f133868ac14d5e9561767bb722e8264736f6c634300081a0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061012b5760003560e01c806376b676f1116100ad578063d383f64611610071578063d383f64614610364578063d547741f1461036e578063e985e9c51461038a578063f242432a146103ba578063f5298aca146103d65761012b565b806376b676f1146102ae57806391d14854146102de578063931688cb1461030e578063a217fddf1461032a578063a22cb465146103485761012b565b80632f2ff15d116100f45780632f2ff15d1461020c57806336568abe146102285780634e1273f41461024457806361bc221a14610274578063731133e9146102925761012b565b8062fdd58e1461013057806301ffc9a7146101605780630e89341c14610190578063248a9ca3146101c05780632eb2c2d6146101f0575b600080fd5b61014a600480360381019061014591906121b1565b6103f2565b6040516101579190612200565b60405180910390f35b61017a60048036038101906101759190612273565b61044c565b60405161018791906122bb565b60405180910390f35b6101aa60048036038101906101a591906122d6565b61048c565b6040516101b79190612393565b60405180910390f35b6101da60048036038101906101d591906123eb565b610520565b6040516101e79190612427565b60405180910390f35b61020a6004803603810190610205919061263f565b610540565b005b6102266004803603810190610221919061270e565b6105e8565b005b610242600480360381019061023d919061270e565b61060a565b005b61025e60048036038101906102599190612811565b610685565b60405161026b9190612947565b60405180910390f35b61027c61078e565b6040516102899190612200565b60405180910390f35b6102ac60048036038101906102a79190612969565b610798565b005b6102c860048036038101906102c39190612a8d565b610856565b6040516102d59190612393565b60405180910390f35b6102f860048036038101906102f3919061270e565b6108de565b60405161030591906122bb565b60405180910390f35b61032860048036038101906103239190612ae9565b610949565b005b6103326109ad565b60405161033f9190612427565b60405180910390f35b610362600480360381019061035d9190612b5e565b6109b4565b005b61036c6109ca565b005b6103886004803603810190610383919061270e565b610a47565b005b6103a4600480360381019061039f9190612b9e565b610a69565b6040516103b191906122bb565b60405180910390f35b6103d460048036038101906103cf9190612bde565b610afd565b005b6103f060048036038101906103eb9190612c75565b610ba5565b005b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061046d3073ffffffffffffffffffffffffffffffffffffffff16610c87565b156104825761047b82610cd4565b9050610487565b600090505b919050565b60606002805461049b90612cf7565b80601f01602080910402602001604051908101604052809291908181526020018280546104c790612cf7565b80156105145780601f106104e957610100808354040283529160200191610514565b820191906000526020600020905b8154815290600101906020018083116104f757829003601f168201915b50505050509050919050565b600060036000838152602001908152602001600020600101549050919050565b600061054a610d4e565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561058f575061058d8682610a69565b155b156105d35780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016105ca929190612d37565b60405180910390fd5b6105e08686868686610d56565b505050505050565b6105f182610520565b6105fa81610e4e565b6106048383610e62565b50505050565b610612610d4e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610676576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106808282610f54565b505050565b606081518351146106d157815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016106c8929190612d60565b60405180910390fd5b6000835167ffffffffffffffff8111156106ee576106ed612447565b5b60405190808252806020026020018201604052801561071c5781602001602082028036833780820191505090505b50905060005b845181101561078357610759610741828761104790919063ffffffff16565b610754838761105b90919063ffffffff16565b6103f2565b82828151811061076c5761076b612d89565b5b602002602001018181525050806001019050610722565b508091505092915050565b6000600454905090565b826107a28161106f565b60016107ae86866103f2565b106107f25784846040517f788d25560000000000000000000000000000000000000000000000000000000081526004016107e9929190612db8565b60405180910390fd5b6107ff85856001856110b8565b838573ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f60016040516108479190612e26565b60405180910390a35050505050565b6060826108628161106f565b8260008151036108a7576040517fc29f9db300000000000000000000000000000000000000000000000000000000815260040161089e90612e8d565b60405180910390fd5b60056108b286611151565b856040516020016108c593929190613065565b6040516020818303038152906040529250505092915050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b61095681610e4e565b61095f8261121f565b7f309b29ded109b9e28fb9885757b3e0096eb75c51d23aa4635d68bcd569f6adc160058360405161099192919061313b565b60405180910390a181600590816109a891906132ff565b505050565b6000801b81565b6109c66109bf610d4e565b8383611266565b5050565b600060045490506109ed33826001604051806020016040528060008152506110b8565b803373ffffffffffffffffffffffffffffffffffffffff167fc65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c1660405160405180910390a3600181610a3e9190613400565b60048190555050565b610a5082610520565b610a5981610e4e565b610a638383610f54565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000610b07610d4e565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610b4c5750610b4a8682610a69565b155b15610b905780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610b87929190612d37565b60405180910390fd5b610b9d86868686866113d6565b505050505050565b81610baf8161106f565b83833373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610c235781816040517f8626cc03000000000000000000000000000000000000000000000000000000008152600401610c1a929190612db8565b60405180910390fd5b610c2f868660016114e1565b848673ffffffffffffffffffffffffffffffffffffffff167f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a6001604051610c779190612e26565b60405180910390a3505050505050565b6000610cb3827f01ffc9a700000000000000000000000000000000000000000000000000000000611588565b8015610ccd5750610ccb8263ffffffff60e01b611588565b155b9050919050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610d475750610d4682611627565b5b9050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610dc85760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610dbf9190613434565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610e3a5760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610e319190613434565b60405180910390fd5b610e478585858585611709565b5050505050565b610e5f81610e5a610d4e565b6117bb565b50565b6000610e6e83836108de565b610f495760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610ee6610d4e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610f4e565b600090505b92915050565b6000610f6083836108de565b1561103c5760006003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610fd9610d4e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611041565b600090505b92915050565b600060208202602084010151905092915050565b600060208202602084010151905092915050565b60045481106110b557806040517fc80a970c0000000000000000000000000000000000000000000000000000000081526004016110ac9190612200565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361112a5760006040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016111219190613434565b60405180910390fd5b600080611137858561180c565b91509150611149600087848487611709565b505050505050565b6060600060016111608461183c565b01905060008167ffffffffffffffff81111561117f5761117e612447565b5b6040519080825280601f01601f1916602001820160405280156111b15781602001600182028036833780820191505090505b509050600082602001820190505b600115611214578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816112085761120761344f565b5b049450600085036111bf575b819350505050919050565b6000815103611263576040517f1897cf6600000000000000000000000000000000000000000000000000000000815260040161125a906134ca565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112d85760006040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016112cf9190613434565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516113c991906122bb565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036114485760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161143f9190613434565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036114ba5760006040517f01a835140000000000000000000000000000000000000000000000000000000081526004016114b19190613434565b60405180910390fd5b6000806114c7858561180c565b915091506114d88787848487611709565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115535760006040517f01a8351400000000000000000000000000000000000000000000000000000000815260040161154a9190613434565b60405180910390fd5b600080611560848461180c565b91509150611581856000848460405180602001604052806000815250611709565b5050505050565b6000808260405160240161159c91906134f9565b6040516020818303038152906040526301ffc9a760e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000806000602060008551602087018a617530fa92503d9150600051905082801561160f575060208210155b801561161b5750600081115b94505050505092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806116f257507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061170257506117018261198f565b5b9050919050565b611715858585856119f9565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146117b4576000611753610d4e565b905060018451036117a357600061177460008661105b90919063ffffffff16565b9050600061178c60008661105b90919063ffffffff16565b905061179c838989858589611da1565b50506117b2565b6117b1818787878787611f55565b5b505b5050505050565b6117c582826108de565b6118085780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016117ff929190613514565b60405180910390fd5b5050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061189a577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816118905761188f61344f565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106118d7576d04ee2d6d415b85acef810000000083816118cd576118cc61344f565b5b0492506020810190505b662386f26fc10000831061190657662386f26fc1000083816118fc576118fb61344f565b5b0492506010810190505b6305f5e100831061192f576305f5e10083816119255761192461344f565b5b0492506008810190505b612710831061195457612710838161194a5761194961344f565b5b0492506004810190505b60648310611977576064838161196d5761196c61344f565b5b0492506002810190505b600a8310611986576001810190505b80915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b8051825114611a4357815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401611a3a929190612d60565b60405180910390fd5b6000611a4d610d4e565b905060005b8351811015611c5c576000611a70828661105b90919063ffffffff16565b90506000611a87838661105b90919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611bb457600080600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611b5c57888183856040517f03dee4c5000000000000000000000000000000000000000000000000000000008152600401611b53949392919061353d565b60405180910390fd5b81810360008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611c4f578060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c479190613400565b925050819055505b5050806001019050611a52565b506001835103611d1b576000611c7c60008561105b90919063ffffffff16565b90506000611c9460008561105b90919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611d0c929190612d60565b60405180910390a45050611d9a565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611d91929190613582565b60405180910390a45b5050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611f4d578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611e0295949392919061360e565b6020604051808303816000875af1925050508015611e3e57506040513d601f19601f82011682018060405250810190611e3b919061367d565b60015b611ec2573d8060008114611e6e576040519150601f19603f3d011682016040523d82523d6000602084013e611e73565b606091505b506000815103611eba57846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611eb19190613434565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611f4b57846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611f429190613434565b60405180910390fd5b505b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115612101578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611fb69594939291906136aa565b6020604051808303816000875af1925050508015611ff257506040513d601f19601f82011682018060405250810190611fef919061367d565b60015b612076573d8060008114612022576040519150601f19603f3d011682016040523d82523d6000602084013e612027565b606091505b50600081510361206e57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016120659190613434565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146120ff57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016120f69190613434565b60405180910390fd5b505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121488261211d565b9050919050565b6121588161213d565b811461216357600080fd5b50565b6000813590506121758161214f565b92915050565b6000819050919050565b61218e8161217b565b811461219957600080fd5b50565b6000813590506121ab81612185565b92915050565b600080604083850312156121c8576121c7612113565b5b60006121d685828601612166565b92505060206121e78582860161219c565b9150509250929050565b6121fa8161217b565b82525050565b600060208201905061221560008301846121f1565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6122508161221b565b811461225b57600080fd5b50565b60008135905061226d81612247565b92915050565b60006020828403121561228957612288612113565b5b60006122978482850161225e565b91505092915050565b60008115159050919050565b6122b5816122a0565b82525050565b60006020820190506122d060008301846122ac565b92915050565b6000602082840312156122ec576122eb612113565b5b60006122fa8482850161219c565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561233d578082015181840152602081019050612322565b60008484015250505050565b6000601f19601f8301169050919050565b600061236582612303565b61236f818561230e565b935061237f81856020860161231f565b61238881612349565b840191505092915050565b600060208201905081810360008301526123ad818461235a565b905092915050565b6000819050919050565b6123c8816123b5565b81146123d357600080fd5b50565b6000813590506123e5816123bf565b92915050565b60006020828403121561240157612400612113565b5b600061240f848285016123d6565b91505092915050565b612421816123b5565b82525050565b600060208201905061243c6000830184612418565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61247f82612349565b810181811067ffffffffffffffff8211171561249e5761249d612447565b5b80604052505050565b60006124b1612109565b90506124bd8282612476565b919050565b600067ffffffffffffffff8211156124dd576124dc612447565b5b602082029050602081019050919050565b600080fd5b6000612506612501846124c2565b6124a7565b90508083825260208201905060208402830185811115612529576125286124ee565b5b835b81811015612552578061253e888261219c565b84526020840193505060208101905061252b565b5050509392505050565b600082601f83011261257157612570612442565b5b81356125818482602086016124f3565b91505092915050565b600080fd5b600067ffffffffffffffff8211156125aa576125a9612447565b5b6125b382612349565b9050602081019050919050565b82818337600083830152505050565b60006125e26125dd8461258f565b6124a7565b9050828152602081018484840111156125fe576125fd61258a565b5b6126098482856125c0565b509392505050565b600082601f83011261262657612625612442565b5b81356126368482602086016125cf565b91505092915050565b600080600080600060a0868803121561265b5761265a612113565b5b600061266988828901612166565b955050602061267a88828901612166565b945050604086013567ffffffffffffffff81111561269b5761269a612118565b5b6126a78882890161255c565b935050606086013567ffffffffffffffff8111156126c8576126c7612118565b5b6126d48882890161255c565b925050608086013567ffffffffffffffff8111156126f5576126f4612118565b5b61270188828901612611565b9150509295509295909350565b6000806040838503121561272557612724612113565b5b6000612733858286016123d6565b925050602061274485828601612166565b9150509250929050565b600067ffffffffffffffff82111561276957612768612447565b5b602082029050602081019050919050565b600061278d6127888461274e565b6124a7565b905080838252602082019050602084028301858111156127b0576127af6124ee565b5b835b818110156127d957806127c58882612166565b8452602084019350506020810190506127b2565b5050509392505050565b600082601f8301126127f8576127f7612442565b5b813561280884826020860161277a565b91505092915050565b6000806040838503121561282857612827612113565b5b600083013567ffffffffffffffff81111561284657612845612118565b5b612852858286016127e3565b925050602083013567ffffffffffffffff81111561287357612872612118565b5b61287f8582860161255c565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6128be8161217b565b82525050565b60006128d083836128b5565b60208301905092915050565b6000602082019050919050565b60006128f482612889565b6128fe8185612894565b9350612909836128a5565b8060005b8381101561293a57815161292188826128c4565b975061292c836128dc565b92505060018101905061290d565b5085935050505092915050565b6000602082019050818103600083015261296181846128e9565b905092915050565b6000806000806080858703121561298357612982612113565b5b600061299187828801612166565b94505060206129a28782880161219c565b93505060406129b38782880161219c565b925050606085013567ffffffffffffffff8111156129d4576129d3612118565b5b6129e087828801612611565b91505092959194509250565b600067ffffffffffffffff821115612a0757612a06612447565b5b612a1082612349565b9050602081019050919050565b6000612a30612a2b846129ec565b6124a7565b905082815260208101848484011115612a4c57612a4b61258a565b5b612a578482856125c0565b509392505050565b600082601f830112612a7457612a73612442565b5b8135612a84848260208601612a1d565b91505092915050565b60008060408385031215612aa457612aa3612113565b5b6000612ab28582860161219c565b925050602083013567ffffffffffffffff811115612ad357612ad2612118565b5b612adf85828601612a5f565b9150509250929050565b600060208284031215612aff57612afe612113565b5b600082013567ffffffffffffffff811115612b1d57612b1c612118565b5b612b2984828501612a5f565b91505092915050565b612b3b816122a0565b8114612b4657600080fd5b50565b600081359050612b5881612b32565b92915050565b60008060408385031215612b7557612b74612113565b5b6000612b8385828601612166565b9250506020612b9485828601612b49565b9150509250929050565b60008060408385031215612bb557612bb4612113565b5b6000612bc385828601612166565b9250506020612bd485828601612166565b9150509250929050565b600080600080600060a08688031215612bfa57612bf9612113565b5b6000612c0888828901612166565b9550506020612c1988828901612166565b9450506040612c2a8882890161219c565b9350506060612c3b8882890161219c565b925050608086013567ffffffffffffffff811115612c5c57612c5b612118565b5b612c6888828901612611565b9150509295509295909350565b600080600060608486031215612c8e57612c8d612113565b5b6000612c9c86828701612166565b9350506020612cad8682870161219c565b9250506040612cbe8682870161219c565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612d0f57607f821691505b602082108103612d2257612d21612cc8565b5b50919050565b612d318161213d565b82525050565b6000604082019050612d4c6000830185612d28565b612d596020830184612d28565b9392505050565b6000604082019050612d7560008301856121f1565b612d8260208301846121f1565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050612dcd6000830185612d28565b612dda60208301846121f1565b9392505050565b6000819050919050565b6000819050919050565b6000612e10612e0b612e0684612de1565b612deb565b61217b565b9050919050565b612e2081612df5565b82525050565b6000602082019050612e3b6000830184612e17565b92915050565b7f4163636f756e742063616e6e6f7420626520656d707479000000000000000000600082015250565b6000612e7760178361230e565b9150612e8282612e41565b602082019050919050565b60006020820190508181036000830152612ea681612e6a565b9050919050565b600081905092915050565b60008190508160005260206000209050919050565b60008154612eda81612cf7565b612ee48186612ead565b94506001821660008114612eff5760018114612f1457612f47565b60ff1983168652811515820286019350612f47565b612f1d85612eb8565b60005b83811015612f3f57815481890152600182019150602081019050612f20565b838801955050505b50505092915050565b7f2f6170692f76312f6e66742f0000000000000000000000000000000000000000600082015250565b6000612f86600c83612ead565b9150612f9182612f50565b600c82019050919050565b6000612fa782612303565b612fb18185612ead565b9350612fc181856020860161231f565b80840191505092915050565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b6000613003600183612ead565b915061300e82612fcd565b600182019050919050565b7f2f72657075746174696f6e2d73636f7265000000000000000000000000000000600082015250565b600061304f601183612ead565b915061305a82613019565b601182019050919050565b60006130718286612ecd565b915061307c82612f79565b91506130888285612f9c565b915061309382612ff6565b915061309f8284612f9c565b91506130aa82613042565b9150819050949350505050565b600081546130c481612cf7565b6130ce818661230e565b945060018216600081146130e957600181146130ff57613132565b60ff198316865281151560200286019350613132565b61310885612eb8565b60005b8381101561312a5781548189015260018201915060208101905061310b565b808801955050505b50505092915050565b6000604082019050818103600083015261315581856130b7565b90508181036020830152613169818461235a565b90509392505050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026131bf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613182565b6131c98683613182565b95508019841693508086168417925050509392505050565b60006131fc6131f76131f28461217b565b612deb565b61217b565b9050919050565b6000819050919050565b613216836131e1565b61322a61322282613203565b84845461318f565b825550505050565b600090565b61323f613232565b61324a81848461320d565b505050565b5b8181101561326e57613263600082613237565b600181019050613250565b5050565b601f8211156132b35761328481612eb8565b61328d84613172565b8101602085101561329c578190505b6132b06132a885613172565b83018261324f565b50505b505050565b600082821c905092915050565b60006132d6600019846008026132b8565b1980831691505092915050565b60006132ef83836132c5565b9150826002028217905092915050565b61330882612303565b67ffffffffffffffff81111561332157613320612447565b5b61332b8254612cf7565b613336828285613272565b600060209050601f8311600181146133695760008415613357578287015190505b61336185826132e3565b8655506133c9565b601f19841661337786612eb8565b60005b8281101561339f5784890151825560018201915060208501945060208101905061337a565b868310156133bc57848901516133b8601f8916826132c5565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061340b8261217b565b91506134168361217b565b925082820190508082111561342e5761342d6133d1565b5b92915050565b60006020820190506134496000830184612d28565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f5552492063616e6e6f7420626520656d70747900000000000000000000000000600082015250565b60006134b460138361230e565b91506134bf8261347e565b602082019050919050565b600060208201905081810360008301526134e3816134a7565b9050919050565b6134f38161221b565b82525050565b600060208201905061350e60008301846134ea565b92915050565b60006040820190506135296000830185612d28565b6135366020830184612418565b9392505050565b60006080820190506135526000830187612d28565b61355f60208301866121f1565b61356c60408301856121f1565b61357960608301846121f1565b95945050505050565b6000604082019050818103600083015261359c81856128e9565b905081810360208301526135b081846128e9565b90509392505050565b600081519050919050565b600082825260208201905092915050565b60006135e0826135b9565b6135ea81856135c4565b93506135fa81856020860161231f565b61360381612349565b840191505092915050565b600060a0820190506136236000830188612d28565b6136306020830187612d28565b61363d60408301866121f1565b61364a60608301856121f1565b818103608083015261365c81846135d5565b90509695505050505050565b60008151905061367781612247565b92915050565b60006020828403121561369357613692612113565b5b60006136a184828501613668565b91505092915050565b600060a0820190506136bf6000830188612d28565b6136cc6020830187612d28565b81810360408301526136de81866128e9565b905081810360608301526136f281856128e9565b9050818103608083015261370681846135d5565b9050969550505050505056fea2646970667358221220240e9a7daab5d9eba2793e75f4bbf0e9a74f133868ac14d5e9561767bb722e8264736f6c634300081a0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/ignition/deployments/chain-11155111/build-info/66954cfa576a2ffbfe079f17baab8cf7.json b/ignition/deployments/chain-480/build-info/4e58f17c75b86363e11bf0ecd1dbfa6a.json similarity index 78% rename from ignition/deployments/chain-11155111/build-info/66954cfa576a2ffbfe079f17baab8cf7.json rename to ignition/deployments/chain-480/build-info/4e58f17c75b86363e11bf0ecd1dbfa6a.json index 4a2eb06..143e82a 100644 --- a/ignition/deployments/chain-11155111/build-info/66954cfa576a2ffbfe079f17baab8cf7.json +++ b/ignition/deployments/chain-480/build-info/4e58f17c75b86363e11bf0ecd1dbfa6a.json @@ -1,8 +1,8 @@ { - "id": "66954cfa576a2ffbfe079f17baab8cf7", + "id": "4e58f17c75b86363e11bf0ecd1dbfa6a", "_format": "hh-sol-build-info-1", - "solcVersion": "0.8.24", - "solcLongVersion": "0.8.24+commit.e11b9ed9", + "solcVersion": "0.8.26", + "solcLongVersion": "0.8.26+commit.8a97fa7a", "input": { "language": "Solidity", "sources": { @@ -36,6 +36,9 @@ "@openzeppelin/contracts/utils/introspection/ERC165.sol": { "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/ERC165.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"./IERC165.sol\";\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check\n * for the additional interface id that will be supported. For example:\n *\n * ```solidity\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n * }\n * ```\n */\nabstract contract ERC165 is IERC165 {\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) {\n return interfaceId == type(IERC165).interfaceId;\n }\n}\n" }, + "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/ERC165Checker.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"./IERC165.sol\";\n\n/**\n * @dev Library used to query support of an interface declared via {IERC165}.\n *\n * Note that these functions return the actual result of the query: they do not\n * `revert` if an interface is not supported. It is up to the caller to decide\n * what to do in these cases.\n */\nlibrary ERC165Checker {\n // As per the EIP-165 spec, no interface should ever match 0xffffffff\n bytes4 private constant INTERFACE_ID_INVALID = 0xffffffff;\n\n /**\n * @dev Returns true if `account` supports the {IERC165} interface.\n */\n function supportsERC165(address account) internal view returns (bool) {\n // Any contract that implements ERC165 must explicitly indicate support of\n // InterfaceId_ERC165 and explicitly indicate non-support of InterfaceId_Invalid\n return\n supportsERC165InterfaceUnchecked(account, type(IERC165).interfaceId) &&\n !supportsERC165InterfaceUnchecked(account, INTERFACE_ID_INVALID);\n }\n\n /**\n * @dev Returns true if `account` supports the interface defined by\n * `interfaceId`. Support for {IERC165} itself is queried automatically.\n *\n * See {IERC165-supportsInterface}.\n */\n function supportsInterface(address account, bytes4 interfaceId) internal view returns (bool) {\n // query support of both ERC165 as per the spec and support of _interfaceId\n return supportsERC165(account) && supportsERC165InterfaceUnchecked(account, interfaceId);\n }\n\n /**\n * @dev Returns a boolean array where each value corresponds to the\n * interfaces passed in and whether they're supported or not. This allows\n * you to batch check interfaces for a contract where your expectation\n * is that some interfaces may not be supported.\n *\n * See {IERC165-supportsInterface}.\n */\n function getSupportedInterfaces(\n address account,\n bytes4[] memory interfaceIds\n ) internal view returns (bool[] memory) {\n // an array of booleans corresponding to interfaceIds and whether they're supported or not\n bool[] memory interfaceIdsSupported = new bool[](interfaceIds.length);\n\n // query support of ERC165 itself\n if (supportsERC165(account)) {\n // query support of each interface in interfaceIds\n for (uint256 i = 0; i < interfaceIds.length; i++) {\n interfaceIdsSupported[i] = supportsERC165InterfaceUnchecked(account, interfaceIds[i]);\n }\n }\n\n return interfaceIdsSupported;\n }\n\n /**\n * @dev Returns true if `account` supports all the interfaces defined in\n * `interfaceIds`. Support for {IERC165} itself is queried automatically.\n *\n * Batch-querying can lead to gas savings by skipping repeated checks for\n * {IERC165} support.\n *\n * See {IERC165-supportsInterface}.\n */\n function supportsAllInterfaces(address account, bytes4[] memory interfaceIds) internal view returns (bool) {\n // query support of ERC165 itself\n if (!supportsERC165(account)) {\n return false;\n }\n\n // query support of each interface in interfaceIds\n for (uint256 i = 0; i < interfaceIds.length; i++) {\n if (!supportsERC165InterfaceUnchecked(account, interfaceIds[i])) {\n return false;\n }\n }\n\n // all interfaces supported\n return true;\n }\n\n /**\n * @notice Query if a contract implements an interface, does not check ERC165 support\n * @param account The address of the contract to query for support of an interface\n * @param interfaceId The interface identifier, as specified in ERC-165\n * @return true if the contract at account indicates support of the interface with\n * identifier interfaceId, false otherwise\n * @dev Assumes that account contains a contract that supports ERC165, otherwise\n * the behavior of this method is undefined. This precondition can be checked\n * with {supportsERC165}.\n *\n * Some precompiled contracts will falsely indicate support for a given interface, so caution\n * should be exercised when using this function.\n *\n * Interface identification is specified in ERC-165.\n */\n function supportsERC165InterfaceUnchecked(address account, bytes4 interfaceId) internal view returns (bool) {\n // prepare call\n bytes memory encodedParams = abi.encodeCall(IERC165.supportsInterface, (interfaceId));\n\n // perform static call\n bool success;\n uint256 returnSize;\n uint256 returnValue;\n assembly {\n success := staticcall(30000, account, add(encodedParams, 0x20), mload(encodedParams), 0x00, 0x20)\n returnSize := returndatasize()\n returnValue := mload(0x00)\n }\n\n return success && returnSize >= 0x20 && returnValue > 0;\n }\n}\n" + }, "@openzeppelin/contracts/utils/introspection/IERC165.sol": { "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n" }, @@ -52,13 +55,10 @@ "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Strings.sol)\n\npragma solidity ^0.8.20;\n\nimport {Math} from \"./math/Math.sol\";\nimport {SignedMath} from \"./math/SignedMath.sol\";\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n bytes16 private constant HEX_DIGITS = \"0123456789abcdef\";\n uint8 private constant ADDRESS_LENGTH = 20;\n\n /**\n * @dev The `value` string doesn't fit in the specified `length`.\n */\n error StringsInsufficientHexLength(uint256 value, uint256 length);\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` decimal representation.\n */\n function toString(uint256 value) internal pure returns (string memory) {\n unchecked {\n uint256 length = Math.log10(value) + 1;\n string memory buffer = new string(length);\n uint256 ptr;\n /// @solidity memory-safe-assembly\n assembly {\n ptr := add(buffer, add(32, length))\n }\n while (true) {\n ptr--;\n /// @solidity memory-safe-assembly\n assembly {\n mstore8(ptr, byte(mod(value, 10), HEX_DIGITS))\n }\n value /= 10;\n if (value == 0) break;\n }\n return buffer;\n }\n }\n\n /**\n * @dev Converts a `int256` to its ASCII `string` decimal representation.\n */\n function toStringSigned(int256 value) internal pure returns (string memory) {\n return string.concat(value < 0 ? \"-\" : \"\", toString(SignedMath.abs(value)));\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\n */\n function toHexString(uint256 value) internal pure returns (string memory) {\n unchecked {\n return toHexString(value, Math.log256(value) + 1);\n }\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\n */\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\n uint256 localValue = value;\n bytes memory buffer = new bytes(2 * length + 2);\n buffer[0] = \"0\";\n buffer[1] = \"x\";\n for (uint256 i = 2 * length + 1; i > 1; --i) {\n buffer[i] = HEX_DIGITS[localValue & 0xf];\n localValue >>= 4;\n }\n if (localValue != 0) {\n revert StringsInsufficientHexLength(value, length);\n }\n return string(buffer);\n }\n\n /**\n * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\n * representation.\n */\n function toHexString(address addr) internal pure returns (string memory) {\n return toHexString(uint256(uint160(addr)), ADDRESS_LENGTH);\n }\n\n /**\n * @dev Returns true if the two strings are equal.\n */\n function equal(string memory a, string memory b) internal pure returns (bool) {\n return bytes(a).length == bytes(b).length && keccak256(bytes(a)) == keccak256(bytes(b));\n }\n}\n" }, "contracts/Engagement.sol": { - "content": "// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.24;\n\nimport \"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\";\nimport \"@openzeppelin/contracts/access/AccessControl.sol\";\nimport \"@openzeppelin/contracts/utils/Strings.sol\";\nimport \"./IEngagement.sol\";\n\ncontract Engagement is IEngagement, ERC1155, AccessControl {\n uint private _counter = 0;\n bytes32 public constant PROVIDER_ROLE = keccak256(\"PROVIDER_ROLE\");\n\n mapping(uint => string) private _tokenMetadata;\n mapping(uint => string) private _scores;\n\n constructor() ERC1155(\"\") {\n _grantRole(DEFAULT_ADMIN_ROLE, msg.sender);\n }\n\n function _checkTokenId(uint tokenId) private view {\n if (tokenId >= _counter) {\n revert NotFound(tokenId);\n }\n }\n\n modifier validTokenId(uint tokenId) {\n _checkTokenId(tokenId);\n _;\n }\n\n function counter() external view returns (uint) {\n return _counter;\n }\n\n function issue(string memory hash_) external {\n _tokenMetadata[_counter] = hash_;\n _mint(msg.sender, _counter, 1, \"\");\n emit Issue(msg.sender, _counter);\n _counter++;\n }\n\n function mint(\n address account,\n uint tokenId,\n uint amount,\n bytes memory data\n ) external override validTokenId(tokenId) {\n if (balanceOf(account, tokenId) > 0) {\n revert MintLimit(account, tokenId);\n }\n _mint(account, tokenId, 1, data);\n emit Mint(account, tokenId, 1);\n }\n\n function burn(\n address account,\n uint tokenId,\n uint amount\n ) external override validTokenId(tokenId) {\n if (account != msg.sender) {\n revert NotAllowed(account, tokenId);\n }\n _burn(account, tokenId, 1);\n emit Burn(account, tokenId, 1);\n }\n\n function getScores(\n uint date,\n uint id,\n string memory account\n ) external view override validTokenId(id) returns (string memory) {\n return\n string(\n abi.encodePacked(\n \"ipfs://\",\n _scores[date],\n \"/\",\n Strings.toString(id),\n \"/\",\n account,\n \".json\"\n )\n );\n }\n\n function updateScores(\n uint date,\n string memory cid\n ) external override onlyRole(PROVIDER_ROLE) {\n _scores[date] = cid;\n emit UpdateScores(msg.sender, date, cid);\n }\n\n function supportsInterface(\n bytes4 interfaceId\n ) public view override(AccessControl, ERC1155) returns (bool) {}\n\n function uri(\n uint tokenId\n ) public view override validTokenId(tokenId) returns (string memory) {\n return\n string(\n abi.encodePacked(\"ipfs://\", _tokenMetadata[tokenId], \".json\")\n );\n }\n}\n" + "content": "// SPDX-License-Identifier: UNLICENSED\npragma solidity 0.8.26;\n\nimport \"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\";\nimport \"@openzeppelin/contracts/access/AccessControl.sol\";\nimport \"@openzeppelin/contracts/utils/Strings.sol\";\nimport \"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol\";\nimport \"./IEngagement.sol\";\n\ncontract Engagement is IEngagement, ERC1155, AccessControl {\n using ERC165Checker for address;\n\n uint private _counter;\n string private _tokenURI;\n\n constructor(string memory tokenURI_) ERC1155(\"\") {\n requireNonEmptyURI(tokenURI_);\n _grantRole(DEFAULT_ADMIN_ROLE, msg.sender);\n _tokenURI = tokenURI_;\n }\n\n function _checkTokenId(uint tokenId) private view {\n if (tokenId >= _counter) {\n revert NotFound(tokenId);\n }\n }\n\n function requireNonEmptyURI(string memory newUri) internal pure {\n if (bytes(newUri).length == 0) {\n revert URIEmpty(\"URI cannot be empty\");\n }\n }\n\n modifier validTokenId(uint tokenId) {\n _checkTokenId(tokenId);\n _;\n }\n\n modifier onlyTokenOwner(address account, uint tokenId) {\n if (account != msg.sender) {\n revert NotAllowed(account, tokenId);\n }\n _;\n }\n\n modifier nonEmptyAccount(string memory account) {\n if (bytes(account).length == 0) {\n revert EmptyAccountNotAllowed(\"Account cannot be empty\");\n }\n _;\n }\n\n function counter() external view returns (uint) {\n return _counter;\n }\n\n function issue() external {\n uint counterCache = _counter;\n _mint(msg.sender, counterCache, 1, \"\");\n emit Issue(msg.sender, counterCache);\n _counter = counterCache + 1;\n }\n\n function mint(\n address account,\n uint tokenId,\n uint amount,\n bytes memory data\n ) external override validTokenId(tokenId) {\n if (balanceOf(account, tokenId) >= 1) {\n revert MintLimit(account, tokenId);\n }\n _mint(account, tokenId, 1, data);\n emit Mint(account, tokenId, 1);\n }\n\n function burn(\n address account,\n uint tokenId,\n uint amount\n ) external override validTokenId(tokenId) onlyTokenOwner(account, tokenId) {\n _burn(account, tokenId, 1);\n emit Burn(account, tokenId, 1);\n }\n\n function supportsInterface(\n bytes4 interfaceId\n ) public view override(AccessControl, ERC1155) returns (bool) {\n if (address(this).supportsERC165()) {\n return super.supportsInterface(interfaceId);\n }\n return false;\n }\n\n function updateBaseURI(string memory newURI) external onlyRole(DEFAULT_ADMIN_ROLE) {\n requireNonEmptyURI(newURI);\n emit BaseURIUpdated(_tokenURI, newURI);\n _tokenURI = newURI;\n }\n\n function uri(\n uint tokenId,\n string memory account\n ) public view validTokenId(tokenId) nonEmptyAccount(account) returns (string memory) {\n return\n string(\n abi.encodePacked(_tokenURI,\"/api/v1/nft/\",Strings.toString(tokenId),\"/\",account,\"/reputation-score\")\n );\n }\n}\n" }, "contracts/IEngagement.sol": { - "content": "interface IEngagement {\n event Issue(address indexed account, uint indexed tokenId);\n event Mint(address indexed account, uint indexed tokenId, uint amount);\n event Burn(address indexed account, uint indexed tokenId, uint amount);\n event UpdateScores(address indexed account, uint indexed date, string cid);\n\n error NotFound(uint tokenId);\n error MintLimit(address account, uint tokenId);\n error NotAllowed(address account, uint tokenId);\n\n function counter() external view returns (uint);\n\n function issue(string memory hash) external;\n\n function mint(\n address account,\n uint tokenId,\n uint amount,\n bytes memory data\n ) external;\n\n function burn(address account, uint tokenId, uint amount) external;\n\n function getScores(\n uint date,\n uint id,\n string memory account\n ) external view returns (string memory);\n\n function updateScores(uint date, string memory cid) external;\n}\n" - }, - "contracts/Lock.sol": { - "content": "// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.24;\n\n// Uncomment this line to use console.log\n// import \"hardhat/console.sol\";\n\ncontract Lock {\n uint public unlockTime;\n address payable public owner;\n\n event Withdrawal(uint amount, uint when);\n\n constructor(uint _unlockTime) payable {\n require(\n block.timestamp < _unlockTime,\n \"Unlock time should be in the future\"\n );\n\n unlockTime = _unlockTime;\n owner = payable(msg.sender);\n }\n\n function withdraw() public {\n // Uncomment this line, and the import of \"hardhat/console.sol\", to print a log in your terminal\n // console.log(\"Unlock time is %o and block timestamp is %o\", unlockTime, block.timestamp);\n\n require(block.timestamp >= unlockTime, \"You can't withdraw yet\");\n require(msg.sender == owner, \"You aren't the owner\");\n\n emit Withdrawal(address(this).balance, block.timestamp);\n\n owner.transfer(address(this).balance);\n }\n}\n" + "content": "// SPDX-License-Identifier: UNLICENSED\npragma solidity 0.8.26;\n\ninterface IEngagement {\n event Issue(address indexed account, uint indexed tokenId);\n event Mint(address indexed account, uint indexed tokenId, uint amount);\n event Burn(address indexed account, uint indexed tokenId, uint amount);\n event BaseURIUpdated(string oldURI, string newURI);\n\n error NotFound(uint tokenId);\n error MintLimit(address account, uint tokenId);\n error NotAllowed(address account, uint tokenId);\n error URIEmpty(string message);\n error EmptyAccountNotAllowed(string message);\n\n function counter() external view returns (uint);\n\n function issue() external;\n\n function mint(\n address account,\n uint tokenId,\n uint amount,\n bytes memory data\n ) external;\n\n function burn(address account, uint tokenId, uint amount) external;\n\n function updateBaseURI(string memory newURI) external;\n}\n" } }, "settings": { @@ -85,55 +85,29 @@ }, "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: \" to each source file. Use \"SPDX-License-Identifier: UNLICENSED\" for non-open-source code. Please see https://spdx.org for more information.\n--> contracts/IEngagement.sol\n\n", - "message": "SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing \"SPDX-License-Identifier: \" 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/IEngagement.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.24;\"\n--> contracts/IEngagement.sol\n\n", - "message": "Source file does not specify required compiler version! Consider adding \"pragma solidity ^0.8.24;\"", - "severity": "warning", - "sourceLocation": { - "end": -1, - "file": "contracts/IEngagement.sol", - "start": -1 - }, - "type": "Warning" - }, { "component": "general", "errorCode": "5667", - "formattedMessage": "Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/Engagement.sol:45:9:\n |\n45 | uint amount,\n | ^^^^^^^^^^^\n\n", + "formattedMessage": "Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/Engagement.sol:67:9:\n |\n67 | uint amount,\n | ^^^^^^^^^^^\n\n", "message": "Unused function parameter. Remove or comment out the variable name to silence this warning.", "severity": "warning", "sourceLocation": { - "end": 1234, + "end": 1843, "file": "contracts/Engagement.sol", - "start": 1223 + "start": 1832 }, "type": "Warning" }, { "component": "general", "errorCode": "5667", - "formattedMessage": "Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/Engagement.sol:58:9:\n |\n58 | uint amount\n | ^^^^^^^^^^^\n\n", + "formattedMessage": "Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/Engagement.sol:80:9:\n |\n80 | uint amount\n | ^^^^^^^^^^^\n\n", "message": "Unused function parameter. Remove or comment out the variable name to silence this warning.", "severity": "warning", "sourceLocation": { - "end": 1589, + "end": 2199, "file": "contracts/Engagement.sol", - "start": 1578 + "start": 2188 }, "type": "Warning" } @@ -309,7 +283,7 @@ "linearizedBaseContracts": [ 295, 2349, - 2361, + 2556, 378, 1960 ], @@ -1427,8 +1401,8 @@ "referencedDeclaration": 305, "src": "3565:32:0", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$_t_bytes32_$returns$__$", - "typeString": "function (address,bytes32) pure" + "typeIdentifier": "t_function_error_pure$_t_address_$_t_bytes32_$returns$_t_error_$", + "typeString": "function (address,bytes32) pure returns (error)" } }, "id": 109, @@ -1443,8 +1417,8 @@ "src": "3565:47:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 110, @@ -2266,8 +2240,8 @@ "referencedDeclaration": 308, "src": "5478:28:0", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" } }, "id": 179, @@ -2282,8 +2256,8 @@ "src": "5478:30:0", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 180, @@ -6248,7 +6222,7 @@ 1731 ], "IERC165": [ - 2361 + 2556 ] }, "id": 1567, @@ -6382,7 +6356,7 @@ "name": "IERC165", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2361, + "referencedDeclaration": 2556, "src": "364:7:3", "typeDescriptions": {} }, @@ -6549,7 +6523,7 @@ 1747, 1689, 2349, - 2361, + 2556, 1960 ], "name": "ERC1155", @@ -6924,7 +6898,7 @@ { "baseFunctions": [ 2348, - 2360 + 2555 ], "body": { "id": 606, @@ -7263,7 +7237,7 @@ "1464:7:3" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2361, + "referencedDeclaration": 2556, "src": "1464:7:3" } ], @@ -7821,8 +7795,8 @@ "referencedDeclaration": 514, "src": "2744:25:3", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256) pure" + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256,uint256) pure returns (error)" } }, "id": 658, @@ -7837,8 +7811,8 @@ "src": "2744:54:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 659, @@ -9196,8 +9170,8 @@ "referencedDeclaration": 497, "src": "3829:28:3", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address) pure" + "typeIdentifier": "t_function_error_pure$_t_address_$_t_address_$returns$_t_error_$", + "typeString": "function (address,address) pure returns (error)" } }, "id": 769, @@ -9212,8 +9186,8 @@ "src": "3829:42:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 770, @@ -9786,8 +9760,8 @@ "referencedDeclaration": 497, "src": "4323:28:3", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address) pure" + "typeIdentifier": "t_function_error_pure$_t_address_$_t_address_$returns$_t_error_$", + "typeString": "function (address,address) pure returns (error)" } }, "id": 815, @@ -9802,8 +9776,8 @@ "src": "4323:42:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 816, @@ -10284,8 +10258,8 @@ "referencedDeclaration": 514, "src": "5315:25:3", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256) pure" + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256,uint256) pure returns (error)" } }, "id": 852, @@ -10300,8 +10274,8 @@ "src": "5315:52:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 853, @@ -10918,8 +10892,8 @@ "referencedDeclaration": 480, "src": "5751:26:3", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256,uint256) pure" + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_error_$", + "typeString": "function (address,uint256,uint256,uint256) pure returns (error)" } }, "id": 908, @@ -10934,8 +10908,8 @@ "src": "5751:56:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 909, @@ -13327,8 +13301,8 @@ "referencedDeclaration": 490, "src": "8312:22:3", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" } }, "id": 1082, @@ -13343,8 +13317,8 @@ "src": "8312:34:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 1083, @@ -13533,8 +13507,8 @@ "referencedDeclaration": 485, "src": "8411:20:3", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" } }, "id": 1097, @@ -13549,8 +13523,8 @@ "src": "8411:32:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 1098, @@ -14182,8 +14156,8 @@ "referencedDeclaration": 490, "src": "9247:22:3", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" } }, "id": 1150, @@ -14198,8 +14172,8 @@ "src": "9247:34:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 1151, @@ -14388,8 +14362,8 @@ "referencedDeclaration": 485, "src": "9346:20:3", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" } }, "id": 1165, @@ -14404,8 +14378,8 @@ "src": "9346:32:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 1166, @@ -15017,8 +14991,8 @@ "referencedDeclaration": 490, "src": "10881:22:3", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" } }, "id": 1212, @@ -15033,8 +15007,8 @@ "src": "10881:34:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 1213, @@ -15687,8 +15661,8 @@ "referencedDeclaration": 490, "src": "11683:22:3", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" } }, "id": 1266, @@ -15703,8 +15677,8 @@ "src": "11683:34:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 1267, @@ -16227,8 +16201,8 @@ "referencedDeclaration": 485, "src": "12219:20:3", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" } }, "id": 1303, @@ -16243,8 +16217,8 @@ "src": "12219:32:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 1304, @@ -16874,8 +16848,8 @@ "referencedDeclaration": 485, "src": "12929:20:3", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" } }, "id": 1355, @@ -16890,8 +16864,8 @@ "src": "12929:32:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 1356, @@ -17391,8 +17365,8 @@ "referencedDeclaration": 507, "src": "13420:22:3", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" } }, "id": 1392, @@ -17407,8 +17381,8 @@ "src": "13420:34:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 1393, @@ -17925,8 +17899,8 @@ "referencedDeclaration": 490, "src": "14250:22:3", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" } }, "id": 1452, @@ -17941,8 +17915,8 @@ "src": "14250:26:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 1453, @@ -18200,8 +18174,8 @@ "referencedDeclaration": 490, "src": "14464:22:3", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" } }, "id": 1467, @@ -18216,8 +18190,8 @@ "src": "14464:26:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 1468, @@ -18852,8 +18826,8 @@ "referencedDeclaration": 490, "src": "15479:22:3", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" } }, "id": 1522, @@ -18868,8 +18842,8 @@ "src": "15479:26:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 1523, @@ -19127,8 +19101,8 @@ "referencedDeclaration": 490, "src": "15693:22:3", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", - "typeString": "function (address) pure" + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" } }, "id": 1537, @@ -19143,8 +19117,8 @@ "src": "15693:26:3", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 1538, @@ -20164,7 +20138,7 @@ 1689 ], "IERC165": [ - 2361 + 2556 ] }, "id": 1690, @@ -20189,7 +20163,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 1690, - "sourceUnit": 2362, + "sourceUnit": 2557, "src": "136:62:4", "symbolAliases": [ { @@ -20198,7 +20172,7 @@ "name": "IERC165", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2361, + "referencedDeclaration": 2556, "src": "144:7:4", "typeDescriptions": {} }, @@ -20218,7 +20192,7 @@ "358:7:4" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2361, + "referencedDeclaration": 2556, "src": "358:7:4" }, "id": 1573, @@ -20239,7 +20213,7 @@ "id": 1689, "linearizedBaseContracts": [ 1689, - 2361 + 2556 ], "name": "IERC1155", "nameLocation": "346:8:4", @@ -21631,7 +21605,7 @@ 1731 ], "IERC165": [ - 2361 + 2556 ] }, "id": 1732, @@ -21656,7 +21630,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 1732, - "sourceUnit": 2362, + "sourceUnit": 2557, "src": "144:62:5", "symbolAliases": [ { @@ -21665,7 +21639,7 @@ "name": "IERC165", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2361, + "referencedDeclaration": 2556, "src": "152:7:5", "typeDescriptions": {} }, @@ -21685,7 +21659,7 @@ "357:7:5" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2361, + "referencedDeclaration": 2556, "src": "357:7:5" }, "id": 1696, @@ -21706,7 +21680,7 @@ "id": 1731, "linearizedBaseContracts": [ 1731, - 2361 + 2556 ], "name": "IERC1155Receiver", "nameLocation": "337:16:5", @@ -22223,7 +22197,7 @@ "linearizedBaseContracts": [ 1747, 1689, - 2361 + 2556 ], "name": "IERC1155MetadataURI", "nameLocation": "376:19:6", @@ -22342,7 +22316,7 @@ 1930 ], "Math": [ - 3415 + 3610 ], "StorageSlot": [ 2070 @@ -22395,7 +22369,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 1931, - "sourceUnit": 3416, + "sourceUnit": 3611, "src": "173:37:7", "symbolAliases": [ { @@ -22404,7 +22378,7 @@ "name": "Math", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3415, + "referencedDeclaration": 3610, "src": "181:4:7", "typeDescriptions": {} }, @@ -22746,10 +22720,10 @@ "name": "Math", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3415, + "referencedDeclaration": 3610, "src": "1021:4:7", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Math_$3415_$", + "typeIdentifier": "t_type$_t_contract$_Math_$3610_$", "typeString": "type(library Math)" } }, @@ -22761,7 +22735,7 @@ "memberLocation": "1026:7:7", "memberName": "average", "nodeType": "MemberAccess", - "referencedDeclaration": 2589, + "referencedDeclaration": 2784, "src": "1021:12:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", @@ -27003,10 +26977,10 @@ "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", "exportedSymbols": { "Math": [ - 3415 + 3610 ], "SignedMath": [ - 3520 + 3715 ], "Strings": [ 2325 @@ -27034,7 +27008,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 2326, - "sourceUnit": 3416, + "sourceUnit": 3611, "src": "127:37:10", "symbolAliases": [ { @@ -27043,7 +27017,7 @@ "name": "Math", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3415, + "referencedDeclaration": 3610, "src": "135:4:10", "typeDescriptions": {} }, @@ -27059,7 +27033,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 2326, - "sourceUnit": 3521, + "sourceUnit": 3716, "src": "165:49:10", "symbolAliases": [ { @@ -27068,7 +27042,7 @@ "name": "SignedMath", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3520, + "referencedDeclaration": 3715, "src": "173:10:10", "typeDescriptions": {} }, @@ -27341,10 +27315,10 @@ "name": "Math", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3415, + "referencedDeclaration": 3610, "src": "759:4:10", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Math_$3415_$", + "typeIdentifier": "t_type$_t_contract$_Math_$3610_$", "typeString": "type(library Math)" } }, @@ -27356,7 +27330,7 @@ "memberLocation": "764:5:10", "memberName": "log10", "nodeType": "MemberAccess", - "referencedDeclaration": 3235, + "referencedDeclaration": 3430, "src": "759:10:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", @@ -28144,10 +28118,10 @@ "name": "SignedMath", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3520, + "referencedDeclaration": 3715, "src": "1573:10:10", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_SignedMath_$3520_$", + "typeIdentifier": "t_type$_t_contract$_SignedMath_$3715_$", "typeString": "type(library SignedMath)" } }, @@ -28159,7 +28133,7 @@ "memberLocation": "1584:3:10", "memberName": "abs", "nodeType": "MemberAccess", - "referencedDeclaration": 3519, + "referencedDeclaration": 3714, "src": "1573:14:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_int256_$returns$_t_uint256_$", @@ -28436,10 +28410,10 @@ "name": "Math", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3415, + "referencedDeclaration": 3610, "src": "1842:4:10", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Math_$3415_$", + "typeIdentifier": "t_type$_t_contract$_Math_$3610_$", "typeString": "type(library Math)" } }, @@ -28451,7 +28425,7 @@ "memberLocation": "1847:6:10", "memberName": "log256", "nodeType": "MemberAccess", - "referencedDeclaration": 3357, + "referencedDeclaration": 3552, "src": "1842:11:10", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", @@ -29492,8 +29466,8 @@ "referencedDeclaration": 2090, "src": "2439:28:10", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256) pure" + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256,uint256) pure returns (error)" } }, "id": 2257, @@ -29508,8 +29482,8 @@ "src": "2439:43:10", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, "id": 2258, @@ -30494,7 +30468,7 @@ 2349 ], "IERC165": [ - 2361 + 2556 ] }, "id": 2350, @@ -30519,7 +30493,7 @@ "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 2350, - "sourceUnit": 2362, + "sourceUnit": 2557, "src": "140:38:11", "symbolAliases": [ { @@ -30528,7 +30502,7 @@ "name": "IERC165", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2361, + "referencedDeclaration": 2556, "src": "148:7:11", "typeDescriptions": {} }, @@ -30548,7 +30522,7 @@ "687:7:11" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2361, + "referencedDeclaration": 2556, "src": "687:7:11" }, "id": 2332, @@ -30569,7 +30543,7 @@ "id": 2349, "linearizedBaseContracts": [ 2349, - 2361 + 2556 ], "name": "ERC165", "nameLocation": "677:6:11", @@ -30577,7 +30551,7 @@ "nodes": [ { "baseFunctions": [ - 2360 + 2555 ], "body": { "id": 2347, @@ -30617,10 +30591,10 @@ "name": "IERC165", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2361, + "referencedDeclaration": 2556, "src": "881:7:11", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC165_$2361_$", + "typeIdentifier": "t_type$_t_contract$_IERC165_$2556_$", "typeString": "type(contract IERC165)" } } @@ -30628,7 +30602,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_type$_t_contract$_IERC165_$2361_$", + "typeIdentifier": "t_type$_t_contract$_IERC165_$2556_$", "typeString": "type(contract IERC165)" } ], @@ -30655,7 +30629,7 @@ "src": "876:13:11", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_magic_meta_type_t_contract$_IERC165_$2361", + "typeIdentifier": "t_magic_meta_type_t_contract$_IERC165_$2556", "typeString": "type(contract IERC165)" } }, @@ -30785,15 +30759,18 @@ }, "id": 11 }, - "@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol": { "ast": { - "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol", "exportedSymbols": { + "ERC165Checker": [ + 2544 + ], "IERC165": [ - 2361 + 2556 ] }, - "id": 2362, + "id": 2545, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ @@ -30806,91 +30783,387 @@ ".20" ], "nodeType": "PragmaDirective", - "src": "115:24:12" + "src": "121:24:12" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "file": "./IERC165.sol", + "id": 2353, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2545, + "sourceUnit": 2557, + "src": "147:38:12", + "symbolAliases": [ + { + "foreign": { + "id": 2352, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2556, + "src": "155:7:12", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" }, { "abstract": false, "baseContracts": [], - "canonicalName": "IERC165", + "canonicalName": "ERC165Checker", "contractDependencies": [], - "contractKind": "interface", + "contractKind": "library", "documentation": { - "id": 2352, + "id": 2354, "nodeType": "StructuredDocumentation", - "src": "141:279:12", - "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + "src": "187:277:12", + "text": " @dev Library used to query support of an interface declared via {IERC165}.\n Note that these functions return the actual result of the query: they do not\n `revert` if an interface is not supported. It is up to the caller to decide\n what to do in these cases." }, - "fullyImplemented": false, - "id": 2361, + "fullyImplemented": true, + "id": 2544, "linearizedBaseContracts": [ - 2361 + 2544 ], - "name": "IERC165", - "nameLocation": "431:7:12", + "name": "ERC165Checker", + "nameLocation": "473:13:12", "nodeType": "ContractDefinition", "nodes": [ { + "constant": true, + "id": 2357, + "mutability": "constant", + "name": "INTERFACE_ID_INVALID", + "nameLocation": "591:20:12", + "nodeType": "VariableDeclaration", + "scope": 2544, + "src": "567:57:12", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2355, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "567:6:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30786666666666666666", + "id": 2356, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "614:10:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967295_by_1", + "typeString": "int_const 4294967295" + }, + "value": "0xffffffff" + }, + "visibility": "private" + }, + { + "body": { + "id": 2379, + "nodeType": "Block", + "src": "789:356:12", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2377, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 2366, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2360, + "src": "1023:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "arguments": [ + { + "id": 2368, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2556, + "src": "1037:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC165_$2556_$", + "typeString": "type(contract IERC165)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IERC165_$2556_$", + "typeString": "type(contract IERC165)" + } + ], + "id": 2367, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "1032:4:12", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 2369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1032:13:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IERC165_$2556", + "typeString": "type(contract IERC165)" + } + }, + "id": 2370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1046:11:12", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "1032:25:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2365, + "name": "supportsERC165InterfaceUnchecked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2543, + "src": "990:32:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (address,bytes4) view returns (bool)" + } + }, + "id": 2371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "990:68:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "id": 2376, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "1074:64:12", + "subExpression": { + "arguments": [ + { + "id": 2373, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2360, + "src": "1108:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2374, + "name": "INTERFACE_ID_INVALID", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2357, + "src": "1117:20:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2372, + "name": "supportsERC165InterfaceUnchecked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2543, + "src": "1075:32:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (address,bytes4) view returns (bool)" + } + }, + "id": 2375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1075:63:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "990:148:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2364, + "id": 2378, + "nodeType": "Return", + "src": "971:167:12" + } + ] + }, "documentation": { - "id": 2353, + "id": 2358, "nodeType": "StructuredDocumentation", - "src": "445:340:12", - "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + "src": "631:83:12", + "text": " @dev Returns true if `account` supports the {IERC165} interface." }, - "functionSelector": "01ffc9a7", - "id": 2360, - "implemented": false, + "id": 2380, + "implemented": true, "kind": "function", "modifiers": [], - "name": "supportsInterface", - "nameLocation": "799:17:12", + "name": "supportsERC165", + "nameLocation": "728:14:12", "nodeType": "FunctionDefinition", "parameters": { - "id": 2356, + "id": 2361, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2355, + "id": 2360, "mutability": "mutable", - "name": "interfaceId", - "nameLocation": "824:11:12", + "name": "account", + "nameLocation": "751:7:12", "nodeType": "VariableDeclaration", - "scope": 2360, - "src": "817:18:12", + "scope": 2380, + "src": "743:15:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 2354, - "name": "bytes4", + "id": 2359, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "817:6:12", + "src": "743:7:12", + "stateMutability": "nonpayable", "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" + "typeIdentifier": "t_address", + "typeString": "address" } }, "visibility": "internal" } ], - "src": "816:20:12" + "src": "742:17:12" }, "returnParameters": { - "id": 2359, + "id": 2364, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2358, + "id": 2363, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2360, - "src": "860:4:12", + "scope": 2380, + "src": "783:4:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -30898,10 +31171,10 @@ "typeString": "bool" }, "typeName": { - "id": 2357, + "id": 2362, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "860:4:12", + "src": "783:4:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -30910,459 +31183,248 @@ "visibility": "internal" } ], - "src": "859:6:12" + "src": "782:6:12" }, - "scope": 2361, - "src": "790:76:12", + "scope": 2544, + "src": "719:426:12", "stateMutability": "view", "virtual": false, - "visibility": "external" - } - ], - "scope": 2362, - "src": "421:447:12", - "usedErrors": [], - "usedEvents": [] - } - ], - "src": "115:754:12" - }, - "id": 12 - }, - "@openzeppelin/contracts/utils/math/Math.sol": { - "ast": { - "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol", - "exportedSymbols": { - "Math": [ - 3415 - ] - }, - "id": 3416, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2363, - "literals": [ - "solidity", - "^", - "0.8", - ".20" - ], - "nodeType": "PragmaDirective", - "src": "103:24:13" - }, - { - "abstract": false, - "baseContracts": [], - "canonicalName": "Math", - "contractDependencies": [], - "contractKind": "library", - "documentation": { - "id": 2364, - "nodeType": "StructuredDocumentation", - "src": "129:73:13", - "text": " @dev Standard math utilities missing in the Solidity language." - }, - "fullyImplemented": true, - "id": 3415, - "linearizedBaseContracts": [ - 3415 - ], - "name": "Math", - "nameLocation": "211:4:13", - "nodeType": "ContractDefinition", - "nodes": [ - { - "documentation": { - "id": 2365, - "nodeType": "StructuredDocumentation", - "src": "222:50:13", - "text": " @dev Muldiv operation overflow." - }, - "errorSelector": "227bc153", - "id": 2367, - "name": "MathOverflowedMulDiv", - "nameLocation": "283:20:13", - "nodeType": "ErrorDefinition", - "parameters": { - "id": 2366, - "nodeType": "ParameterList", - "parameters": [], - "src": "303:2:13" - }, - "src": "277:29:13" - }, - { - "canonicalName": "Math.Rounding", - "id": 2372, - "members": [ - { - "id": 2368, - "name": "Floor", - "nameLocation": "336:5:13", - "nodeType": "EnumValue", - "src": "336:5:13" - }, - { - "id": 2369, - "name": "Ceil", - "nameLocation": "379:4:13", - "nodeType": "EnumValue", - "src": "379:4:13" - }, - { - "id": 2370, - "name": "Trunc", - "nameLocation": "421:5:13", - "nodeType": "EnumValue", - "src": "421:5:13" - }, - { - "id": 2371, - "name": "Expand", - "nameLocation": "451:6:13", - "nodeType": "EnumValue", - "src": "451:6:13" - } - ], - "name": "Rounding", - "nameLocation": "317:8:13", - "nodeType": "EnumDefinition", - "src": "312:169:13" + "visibility": "internal" }, { "body": { - "id": 2403, + "id": 2399, "nodeType": "Block", - "src": "661:140:13", + "src": "1456:189:12", "statements": [ { - "id": 2402, - "nodeType": "UncheckedBlock", - "src": "671:124:13", - "statements": [ - { - "assignments": [ - 2385 - ], - "declarations": [ + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ { - "constant": false, - "id": 2385, - "mutability": "mutable", - "name": "c", - "nameLocation": "703:1:13", - "nodeType": "VariableDeclaration", - "scope": 2402, - "src": "695:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2384, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "695:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 2389, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2388, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2386, - "name": "a", + "id": 2391, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2375, - "src": "707:1:13", + "referencedDeclaration": 2383, + "src": "1572:7:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "id": 2387, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2377, - "src": "711:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" } - }, - "src": "707:5:13", + ], + "id": 2390, + "name": "supportsERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2380, + "src": "1557:14:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" } }, - "nodeType": "VariableDeclarationStatement", - "src": "695:17:13" + "id": 2392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1557:23:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2392, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2390, - "name": "c", + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "arguments": [ + { + "id": 2394, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2385, - "src": "730:1:13", + "referencedDeclaration": 2383, + "src": "1617:7:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 2391, - "name": "a", + { + "id": 2395, + "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2375, - "src": "734:1:13", + "referencedDeclaration": 2385, + "src": "1626:11:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" } - }, - "src": "730:5:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" } - }, - "id": 2397, - "nodeType": "IfStatement", - "src": "726:28:13", - "trueBody": { - "expression": { - "components": [ - { - "hexValue": "66616c7365", - "id": 2393, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "745:5:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - { - "hexValue": "30", - "id": 2394, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "752:1:13", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "id": 2395, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "744:10:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", - "typeString": "tuple(bool,int_const 0)" - } - }, - "functionReturnParameters": 2383, - "id": 2396, - "nodeType": "Return", - "src": "737:17:13" - } - }, - { + ], "expression": { - "components": [ + "argumentTypes": [ { - "hexValue": "74727565", - "id": 2398, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "776:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" + "typeIdentifier": "t_address", + "typeString": "address" }, { - "id": 2399, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2385, - "src": "782:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" } ], - "id": 2400, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "775:9:13", + "id": 2393, + "name": "supportsERC165InterfaceUnchecked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2543, + "src": "1584:32:12", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", - "typeString": "tuple(bool,uint256)" + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (address,bytes4) view returns (bool)" } }, - "functionReturnParameters": 2383, - "id": 2401, - "nodeType": "Return", - "src": "768:16:13" + "id": 2396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1584:54:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1557:81:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" } - ] + }, + "functionReturnParameters": 2389, + "id": 2398, + "nodeType": "Return", + "src": "1550:88:12" } ] }, "documentation": { - "id": 2373, + "id": 2381, "nodeType": "StructuredDocumentation", - "src": "487:93:13", - "text": " @dev Returns the addition of two unsigned integers, with an overflow flag." + "src": "1151:207:12", + "text": " @dev Returns true if `account` supports the interface defined by\n `interfaceId`. Support for {IERC165} itself is queried automatically.\n See {IERC165-supportsInterface}." }, - "id": 2404, + "id": 2400, "implemented": true, "kind": "function", "modifiers": [], - "name": "tryAdd", - "nameLocation": "594:6:13", + "name": "supportsInterface", + "nameLocation": "1372:17:12", "nodeType": "FunctionDefinition", "parameters": { - "id": 2378, + "id": 2386, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2375, + "id": 2383, "mutability": "mutable", - "name": "a", - "nameLocation": "609:1:13", + "name": "account", + "nameLocation": "1398:7:12", "nodeType": "VariableDeclaration", - "scope": 2404, - "src": "601:9:13", + "scope": 2400, + "src": "1390:15:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 2374, - "name": "uint256", + "id": 2382, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "601:7:13", + "src": "1390:7:12", + "stateMutability": "nonpayable", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "visibility": "internal" }, { "constant": false, - "id": 2377, + "id": 2385, "mutability": "mutable", - "name": "b", - "nameLocation": "620:1:13", + "name": "interfaceId", + "nameLocation": "1414:11:12", "nodeType": "VariableDeclaration", - "scope": 2404, - "src": "612:9:13", + "scope": 2400, + "src": "1407:18:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" }, "typeName": { - "id": 2376, - "name": "uint256", + "id": 2384, + "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "612:7:13", + "src": "1407:6:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" } }, "visibility": "internal" } ], - "src": "600:22:13" + "src": "1389:37:12" }, "returnParameters": { - "id": 2383, + "id": 2389, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2380, + "id": 2388, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2404, - "src": "646:4:13", + "scope": 2400, + "src": "1450:4:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -31370,857 +31432,1196 @@ "typeString": "bool" }, "typeName": { - "id": 2379, + "id": 2387, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "646:4:13", + "src": "1450:4:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" - }, - { - "constant": false, - "id": 2382, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2404, - "src": "652:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2381, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "652:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" } ], - "src": "645:15:13" + "src": "1449:6:12" }, - "scope": 3415, - "src": "585:216:13", - "stateMutability": "pure", + "scope": 2544, + "src": "1363:282:12", + "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2431, + "id": 2455, "nodeType": "Block", - "src": "984:113:13", + "src": "2131:560:12", "statements": [ { - "id": 2430, - "nodeType": "UncheckedBlock", - "src": "994:97:13", - "statements": [ + "assignments": [ + 2416 + ], + "declarations": [ { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2418, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2416, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2409, - "src": "1022:1:13", + "constant": false, + "id": 2416, + "mutability": "mutable", + "name": "interfaceIdsSupported", + "nameLocation": "2254:21:12", + "nodeType": "VariableDeclaration", + "scope": 2455, + "src": "2240:35:12", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[]" + }, + "typeName": { + "baseType": { + "id": 2414, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2240:4:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "id": 2417, - "name": "a", + "id": 2415, + "nodeType": "ArrayTypeName", + "src": "2240:6:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", + "typeString": "bool[]" + } + }, + "visibility": "internal" + } + ], + "id": 2423, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 2420, + "name": "interfaceIds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2407, - "src": "1026:1:13", + "referencedDeclaration": 2406, + "src": "2289:12:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr", + "typeString": "bytes4[] memory" } }, - "src": "1022:5:13", + "id": 2421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2302:6:12", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2289:19:12", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } + ], + "id": 2419, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2278:10:12", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bool_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (bool[] memory)" }, - "id": 2423, - "nodeType": "IfStatement", - "src": "1018:28:13", - "trueBody": { - "expression": { - "components": [ - { - "hexValue": "66616c7365", - "id": 2419, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1037:5:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - { - "hexValue": "30", - "id": 2420, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1044:1:13", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "id": 2421, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1036:10:13", + "typeName": { + "baseType": { + "id": 2417, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2282:4:12", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", - "typeString": "tuple(bool,int_const 0)" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "functionReturnParameters": 2415, - "id": 2422, - "nodeType": "Return", - "src": "1029:17:13" + "id": 2418, + "nodeType": "ArrayTypeName", + "src": "2282:6:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", + "typeString": "bool[]" + } } }, - { - "expression": { - "components": [ - { - "hexValue": "74727565", - "id": 2424, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1068:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" + "id": 2422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2278:31:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2240:69:12" + }, + { + "condition": { + "arguments": [ + { + "id": 2425, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2403, + "src": "2381:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2424, + "name": "supportsERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2380, + "src": "2366:14:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 2426, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2366:23:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2452, + "nodeType": "IfStatement", + "src": "2362:284:12", + "trueBody": { + "id": 2451, + "nodeType": "Block", + "src": "2391:255:12", + "statements": [ + { + "body": { + "id": 2449, + "nodeType": "Block", + "src": "2518:118:12", + "statements": [ + { + "expression": { + "id": 2447, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 2438, + "name": "interfaceIdsSupported", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2416, + "src": "2536:21:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[] memory" + } + }, + "id": 2440, + "indexExpression": { + "id": 2439, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2428, + "src": "2558:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2536:24:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 2442, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2403, + "src": "2596:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "id": 2443, + "name": "interfaceIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2406, + "src": "2605:12:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr", + "typeString": "bytes4[] memory" + } + }, + "id": 2445, + "indexExpression": { + "id": 2444, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2428, + "src": "2618:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2605:15:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2441, + "name": "supportsERC165InterfaceUnchecked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2543, + "src": "2563:32:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (address,bytes4) view returns (bool)" + } + }, + "id": 2446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2563:58:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2536:85:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2448, + "nodeType": "ExpressionStatement", + "src": "2536:85:12" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - { - "commonType": { + "id": 2434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2431, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2428, + "src": "2488:1:12", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 2432, + "name": "interfaceIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2406, + "src": "2492:12:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr", + "typeString": "bytes4[] memory" + } }, - "id": 2427, + "id": 2433, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { - "id": 2425, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2407, - "src": "1074:1:13", + "memberLocation": "2505:6:12", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2492:19:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2488:23:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2450, + "initializationExpression": { + "assignments": [ + 2428 + ], + "declarations": [ + { + "constant": false, + "id": 2428, + "mutability": "mutable", + "name": "i", + "nameLocation": "2481:1:12", + "nodeType": "VariableDeclaration", + "scope": 2450, + "src": "2473:9:12", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } + }, + "typeName": { + "id": 2427, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2473:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2430, + "initialValue": { + "hexValue": "30", + "id": 2429, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2485:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 2426, - "name": "b", + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2473:13:12" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 2436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2513:3:12", + "subExpression": { + "id": 2435, + "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2409, - "src": "1078:1:13", + "referencedDeclaration": 2428, + "src": "2513:1:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1074:5:13", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - } - ], - "id": 2428, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1067:13:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", - "typeString": "tuple(bool,uint256)" - } - }, - "functionReturnParameters": 2415, - "id": 2429, - "nodeType": "Return", - "src": "1060:20:13" + }, + "id": 2437, + "nodeType": "ExpressionStatement", + "src": "2513:3:12" + }, + "nodeType": "ForStatement", + "src": "2468:168:12" + } + ] + } + }, + { + "expression": { + "id": 2453, + "name": "interfaceIdsSupported", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2416, + "src": "2663:21:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[] memory" } - ] + }, + "functionReturnParameters": 2411, + "id": 2454, + "nodeType": "Return", + "src": "2656:28:12" } ] }, "documentation": { - "id": 2405, + "id": 2401, "nodeType": "StructuredDocumentation", - "src": "807:96:13", - "text": " @dev Returns the subtraction of two unsigned integers, with an overflow flag." + "src": "1651:336:12", + "text": " @dev Returns a boolean array where each value corresponds to the\n interfaces passed in and whether they're supported or not. This allows\n you to batch check interfaces for a contract where your expectation\n is that some interfaces may not be supported.\n See {IERC165-supportsInterface}." }, - "id": 2432, + "id": 2456, "implemented": true, "kind": "function", "modifiers": [], - "name": "trySub", - "nameLocation": "917:6:13", + "name": "getSupportedInterfaces", + "nameLocation": "2001:22:12", "nodeType": "FunctionDefinition", "parameters": { - "id": 2410, + "id": 2407, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2407, + "id": 2403, "mutability": "mutable", - "name": "a", - "nameLocation": "932:1:13", + "name": "account", + "nameLocation": "2041:7:12", "nodeType": "VariableDeclaration", - "scope": 2432, - "src": "924:9:13", + "scope": 2456, + "src": "2033:15:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 2406, - "name": "uint256", + "id": 2402, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "924:7:13", + "src": "2033:7:12", + "stateMutability": "nonpayable", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "visibility": "internal" }, { "constant": false, - "id": 2409, + "id": 2406, "mutability": "mutable", - "name": "b", - "nameLocation": "943:1:13", + "name": "interfaceIds", + "nameLocation": "2074:12:12", "nodeType": "VariableDeclaration", - "scope": 2432, - "src": "935:9:13", + "scope": 2456, + "src": "2058:28:12", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr", + "typeString": "bytes4[]" }, "typeName": { - "id": 2408, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "935:7:13", + "baseType": { + "id": 2404, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "2058:6:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "id": 2405, + "nodeType": "ArrayTypeName", + "src": "2058:8:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_bytes4_$dyn_storage_ptr", + "typeString": "bytes4[]" } }, "visibility": "internal" } ], - "src": "923:22:13" + "src": "2023:69:12" }, "returnParameters": { - "id": 2415, + "id": 2411, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2412, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2432, - "src": "969:4:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2411, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "969:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2414, + "id": 2410, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2432, - "src": "975:7:13", + "scope": 2456, + "src": "2116:13:12", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[]" }, "typeName": { - "id": 2413, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "975:7:13", + "baseType": { + "id": 2408, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2116:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2409, + "nodeType": "ArrayTypeName", + "src": "2116:6:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", + "typeString": "bool[]" } }, "visibility": "internal" } ], - "src": "968:15:13" + "src": "2115:15:12" }, - "scope": 3415, - "src": "908:189:13", - "stateMutability": "pure", + "scope": 2544, + "src": "1992:699:12", + "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2473, + "id": 2501, "nodeType": "Block", - "src": "1283:417:13", + "src": "3133:436:12", "statements": [ { - "id": 2472, - "nodeType": "UncheckedBlock", - "src": "1293:401:13", - "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2444, - "name": "a", + "condition": { + "id": 2470, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3189:24:12", + "subExpression": { + "arguments": [ + { + "id": 2468, + "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2435, - "src": "1551:1:13", + "referencedDeclaration": 2459, + "src": "3205:7:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 2445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1556:1:13", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1551:6:13", + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2467, + "name": "supportsERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2380, + "src": "3190:14:12", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" } }, - "id": 2451, - "nodeType": "IfStatement", - "src": "1547:28:13", - "trueBody": { + "id": 2469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3190:23:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2474, + "nodeType": "IfStatement", + "src": "3185:67:12", + "trueBody": { + "id": 2473, + "nodeType": "Block", + "src": "3215:37:12", + "statements": [ + { "expression": { - "components": [ - { - "hexValue": "74727565", - "id": 2447, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1567:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - { - "hexValue": "30", - "id": 2448, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1573:1:13", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "id": 2449, + "hexValue": "66616c7365", + "id": 2471, "isConstant": false, - "isInlineArray": false, "isLValue": false, "isPure": true, + "kind": "bool", "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1566:9:13", + "nodeType": "Literal", + "src": "3236:5:12", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", - "typeString": "tuple(bool,int_const 0)" - } + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" }, - "functionReturnParameters": 2443, - "id": 2450, + "functionReturnParameters": 2466, + "id": 2472, "nodeType": "Return", - "src": "1559:16:13" + "src": "3229:12:12" } - }, - { - "assignments": [ - 2453 - ], - "declarations": [ - { - "constant": false, - "id": 2453, - "mutability": "mutable", - "name": "c", - "nameLocation": "1597:1:13", - "nodeType": "VariableDeclaration", - "scope": 2472, - "src": "1589:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2452, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1589:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 2457, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2454, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2435, - "src": "1601:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 2455, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2437, - "src": "1605:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1601:5:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1589:17:13" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2462, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2460, + ] + } + }, + { + "body": { + "id": 2497, + "nodeType": "Block", + "src": "3371:134:12", + "statements": [ + { + "condition": { + "id": 2492, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { - "id": 2458, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2453, - "src": "1624:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 2459, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2435, - "src": "1628:1:13", + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3389:59:12", + "subExpression": { + "arguments": [ + { + "id": 2487, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2459, + "src": "3423:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "baseExpression": { + "id": 2488, + "name": "interfaceIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2462, + "src": "3432:12:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr", + "typeString": "bytes4[] memory" + } + }, + "id": 2490, + "indexExpression": { + "id": 2489, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2476, + "src": "3445:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3432:15:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2486, + "name": "supportsERC165InterfaceUnchecked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2543, + "src": "3390:32:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (address,bytes4) view returns (bool)" + } + }, + "id": 2491, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3390:58:12", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "src": "1624:5:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "id": 2461, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2437, - "src": "1633:1:13", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "src": "1624:10:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2467, - "nodeType": "IfStatement", - "src": "1620:33:13", - "trueBody": { - "expression": { - "components": [ - { - "hexValue": "66616c7365", - "id": 2463, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1644:5:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, + "id": 2496, + "nodeType": "IfStatement", + "src": "3385:110:12", + "trueBody": { + "id": 2495, + "nodeType": "Block", + "src": "3450:45:12", + "statements": [ { - "hexValue": "30", - "id": 2464, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1651:1:13", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "expression": { + "hexValue": "66616c7365", + "id": 2493, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3475:5:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" }, - "value": "0" + "functionReturnParameters": 2466, + "id": 2494, + "nodeType": "Return", + "src": "3468:12:12" } - ], - "id": 2465, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1643:10:13", + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2479, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2476, + "src": "3341:1:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 2480, + "name": "interfaceIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2462, + "src": "3345:12:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr", + "typeString": "bytes4[] memory" + } + }, + "id": 2481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3358:6:12", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3345:19:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3341:23:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2498, + "initializationExpression": { + "assignments": [ + 2476 + ], + "declarations": [ + { + "constant": false, + "id": 2476, + "mutability": "mutable", + "name": "i", + "nameLocation": "3334:1:12", + "nodeType": "VariableDeclaration", + "scope": 2498, + "src": "3326:9:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2475, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3326:7:12", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", - "typeString": "tuple(bool,int_const 0)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "functionReturnParameters": 2443, - "id": 2466, - "nodeType": "Return", - "src": "1636:17:13" + "visibility": "internal" } + ], + "id": 2478, + "initialValue": { + "hexValue": "30", + "id": 2477, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3338:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - { - "expression": { - "components": [ - { - "hexValue": "74727565", - "id": 2468, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1675:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - { - "id": 2469, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2453, - "src": "1681:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2470, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1674:9:13", + "nodeType": "VariableDeclarationStatement", + "src": "3326:13:12" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 2484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3366:3:12", + "subExpression": { + "id": 2483, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2476, + "src": "3366:1:12", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", - "typeString": "tuple(bool,uint256)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "functionReturnParameters": 2443, - "id": 2471, - "nodeType": "Return", - "src": "1667:16:13" - } - ] + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2485, + "nodeType": "ExpressionStatement", + "src": "3366:3:12" + }, + "nodeType": "ForStatement", + "src": "3321:184:12" + }, + { + "expression": { + "hexValue": "74727565", + "id": 2499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3558:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 2466, + "id": 2500, + "nodeType": "Return", + "src": "3551:11:12" } ] }, "documentation": { - "id": 2433, + "id": 2457, "nodeType": "StructuredDocumentation", - "src": "1103:99:13", - "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag." + "src": "2697:324:12", + "text": " @dev Returns true if `account` supports all the interfaces defined in\n `interfaceIds`. Support for {IERC165} itself is queried automatically.\n Batch-querying can lead to gas savings by skipping repeated checks for\n {IERC165} support.\n See {IERC165-supportsInterface}." }, - "id": 2474, + "id": 2502, "implemented": true, "kind": "function", "modifiers": [], - "name": "tryMul", - "nameLocation": "1216:6:13", + "name": "supportsAllInterfaces", + "nameLocation": "3035:21:12", "nodeType": "FunctionDefinition", "parameters": { - "id": 2438, + "id": 2463, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2435, + "id": 2459, "mutability": "mutable", - "name": "a", - "nameLocation": "1231:1:13", + "name": "account", + "nameLocation": "3065:7:12", "nodeType": "VariableDeclaration", - "scope": 2474, - "src": "1223:9:13", + "scope": 2502, + "src": "3057:15:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 2434, - "name": "uint256", + "id": 2458, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "1223:7:13", + "src": "3057:7:12", + "stateMutability": "nonpayable", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "visibility": "internal" }, { "constant": false, - "id": 2437, + "id": 2462, "mutability": "mutable", - "name": "b", - "nameLocation": "1242:1:13", + "name": "interfaceIds", + "nameLocation": "3090:12:12", "nodeType": "VariableDeclaration", - "scope": 2474, - "src": "1234:9:13", + "scope": 2502, + "src": "3074:28:12", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_bytes4_$dyn_memory_ptr", + "typeString": "bytes4[]" }, "typeName": { - "id": 2436, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1234:7:13", + "baseType": { + "id": 2460, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3074:6:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "id": 2461, + "nodeType": "ArrayTypeName", + "src": "3074:8:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_array$_t_bytes4_$dyn_storage_ptr", + "typeString": "bytes4[]" } }, "visibility": "internal" } ], - "src": "1222:22:13" + "src": "3056:47:12" }, "returnParameters": { - "id": 2443, + "id": 2466, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2440, + "id": 2465, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2474, - "src": "1268:4:13", + "scope": 2502, + "src": "3127:4:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -32228,340 +32629,746 @@ "typeString": "bool" }, "typeName": { - "id": 2439, + "id": 2464, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1268:4:13", + "src": "3127:4:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" - }, - { - "constant": false, - "id": 2442, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2474, - "src": "1274:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2441, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1274:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" } ], - "src": "1267:15:13" + "src": "3126:6:12" }, - "scope": 3415, - "src": "1207:493:13", - "stateMutability": "pure", + "scope": 2544, + "src": "3026:543:12", + "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2501, + "id": 2542, "nodeType": "Block", - "src": "1887:114:13", + "src": "4505:524:12", "statements": [ { - "id": 2500, - "nodeType": "UncheckedBlock", - "src": "1897:98:13", - "statements": [ + "assignments": [ + 2513 + ], + "declarations": [ { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2488, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2486, - "name": "b", + "constant": false, + "id": 2513, + "mutability": "mutable", + "name": "encodedParams", + "nameLocation": "4552:13:12", + "nodeType": "VariableDeclaration", + "scope": 2542, + "src": "4539:26:12", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2512, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4539:5:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 2521, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 2516, + "name": "IERC165", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2479, - "src": "1925:1:13", + "referencedDeclaration": 2556, + "src": "4583:7:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_type$_t_contract$_IERC165_$2556_$", + "typeString": "type(contract IERC165)" } }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 2487, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1930:1:13", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1925:6:13", + "id": 2517, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4591:17:12", + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 2555, + "src": "4583:25:12", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_function_declaration_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function IERC165.supportsInterface(bytes4) view returns (bool)" } }, - "id": 2493, - "nodeType": "IfStatement", - "src": "1921:29:13", - "trueBody": { - "expression": { - "components": [ - { - "hexValue": "66616c7365", - "id": 2489, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1941:5:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - { - "hexValue": "30", - "id": 2490, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1948:1:13", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + { + "components": [ + { + "id": 2518, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2507, + "src": "4611:11:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" } - ], - "id": 2491, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1940:10:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", - "typeString": "tuple(bool,int_const 0)" } + ], + "id": 2519, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4610:13:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_function_declaration_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function IERC165.supportsInterface(bytes4) view returns (bool)" }, - "functionReturnParameters": 2485, - "id": 2492, - "nodeType": "Return", - "src": "1933:17:13" + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 2514, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "4568:3:12", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2515, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4572:10:12", + "memberName": "encodeCall", + "nodeType": "MemberAccess", + "src": "4568:14:12", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" } }, + "id": 2520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4568:56:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4539:85:12" + }, + { + "assignments": [ + 2523 + ], + "declarations": [ { - "expression": { - "components": [ - { - "hexValue": "74727565", - "id": 2494, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1972:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "constant": false, + "id": 2523, + "mutability": "mutable", + "name": "success", + "nameLocation": "4671:7:12", + "nodeType": "VariableDeclaration", + "scope": 2542, + "src": "4666:12:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2522, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4666:4:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 2524, + "nodeType": "VariableDeclarationStatement", + "src": "4666:12:12" + }, + { + "assignments": [ + 2526 + ], + "declarations": [ + { + "constant": false, + "id": 2526, + "mutability": "mutable", + "name": "returnSize", + "nameLocation": "4696:10:12", + "nodeType": "VariableDeclaration", + "scope": 2542, + "src": "4688:18:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2525, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4688:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2527, + "nodeType": "VariableDeclarationStatement", + "src": "4688:18:12" + }, + { + "assignments": [ + 2529 + ], + "declarations": [ + { + "constant": false, + "id": 2529, + "mutability": "mutable", + "name": "returnValue", + "nameLocation": "4724:11:12", + "nodeType": "VariableDeclaration", + "scope": 2542, + "src": "4716:19:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2528, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4716:7:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2530, + "nodeType": "VariableDeclarationStatement", + "src": "4716:19:12" + }, + { + "AST": { + "nativeSrc": "4754:203:12", + "nodeType": "YulBlock", + "src": "4754:203:12", + "statements": [ + { + "nativeSrc": "4768:97:12", + "nodeType": "YulAssignment", + "src": "4768:97:12", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4790:5:12", + "nodeType": "YulLiteral", + "src": "4790:5:12", + "type": "", + "value": "30000" }, - "value": "true" - }, - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "name": "account", + "nativeSrc": "4797:7:12", + "nodeType": "YulIdentifier", + "src": "4797:7:12" }, - "id": 2497, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2495, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2477, - "src": "1978:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + { + "arguments": [ + { + "name": "encodedParams", + "nativeSrc": "4810:13:12", + "nodeType": "YulIdentifier", + "src": "4810:13:12" + }, + { + "kind": "number", + "nativeSrc": "4825:4:12", + "nodeType": "YulLiteral", + "src": "4825:4:12", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4806:3:12", + "nodeType": "YulIdentifier", + "src": "4806:3:12" + }, + "nativeSrc": "4806:24:12", + "nodeType": "YulFunctionCall", + "src": "4806:24:12" }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 2496, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2479, - "src": "1982:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + { + "arguments": [ + { + "name": "encodedParams", + "nativeSrc": "4838:13:12", + "nodeType": "YulIdentifier", + "src": "4838:13:12" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4832:5:12", + "nodeType": "YulIdentifier", + "src": "4832:5:12" + }, + "nativeSrc": "4832:20:12", + "nodeType": "YulFunctionCall", + "src": "4832:20:12" }, - "src": "1978:5:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "kind": "number", + "nativeSrc": "4854:4:12", + "nodeType": "YulLiteral", + "src": "4854:4:12", + "type": "", + "value": "0x00" + }, + { + "kind": "number", + "nativeSrc": "4860:4:12", + "nodeType": "YulLiteral", + "src": "4860:4:12", + "type": "", + "value": "0x20" } + ], + "functionName": { + "name": "staticcall", + "nativeSrc": "4779:10:12", + "nodeType": "YulIdentifier", + "src": "4779:10:12" + }, + "nativeSrc": "4779:86:12", + "nodeType": "YulFunctionCall", + "src": "4779:86:12" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "4768:7:12", + "nodeType": "YulIdentifier", + "src": "4768:7:12" } - ], - "id": 2498, + ] + }, + { + "nativeSrc": "4878:30:12", + "nodeType": "YulAssignment", + "src": "4878:30:12", + "value": { + "arguments": [], + "functionName": { + "name": "returndatasize", + "nativeSrc": "4892:14:12", + "nodeType": "YulIdentifier", + "src": "4892:14:12" + }, + "nativeSrc": "4892:16:12", + "nodeType": "YulFunctionCall", + "src": "4892:16:12" + }, + "variableNames": [ + { + "name": "returnSize", + "nativeSrc": "4878:10:12", + "nodeType": "YulIdentifier", + "src": "4878:10:12" + } + ] + }, + { + "nativeSrc": "4921:26:12", + "nodeType": "YulAssignment", + "src": "4921:26:12", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4942:4:12", + "nodeType": "YulLiteral", + "src": "4942:4:12", + "type": "", + "value": "0x00" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4936:5:12", + "nodeType": "YulIdentifier", + "src": "4936:5:12" + }, + "nativeSrc": "4936:11:12", + "nodeType": "YulFunctionCall", + "src": "4936:11:12" + }, + "variableNames": [ + { + "name": "returnValue", + "nativeSrc": "4921:11:12", + "nodeType": "YulIdentifier", + "src": "4921:11:12" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2505, + "isOffset": false, + "isSlot": false, + "src": "4797:7:12", + "valueSize": 1 + }, + { + "declaration": 2513, + "isOffset": false, + "isSlot": false, + "src": "4810:13:12", + "valueSize": 1 + }, + { + "declaration": 2513, + "isOffset": false, + "isSlot": false, + "src": "4838:13:12", + "valueSize": 1 + }, + { + "declaration": 2526, + "isOffset": false, + "isSlot": false, + "src": "4878:10:12", + "valueSize": 1 + }, + { + "declaration": 2529, + "isOffset": false, + "isSlot": false, + "src": "4921:11:12", + "valueSize": 1 + }, + { + "declaration": 2523, + "isOffset": false, + "isSlot": false, + "src": "4768:7:12", + "valueSize": 1 + } + ], + "id": 2531, + "nodeType": "InlineAssembly", + "src": "4745:212:12" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2532, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2523, + "src": "4974:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2535, "isConstant": false, - "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1971:13:13", + "leftExpression": { + "id": 2533, + "name": "returnSize", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2526, + "src": "4985:10:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "hexValue": "30783230", + "id": 2534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4999:4:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "0x20" + }, + "src": "4985:18:12", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", - "typeString": "tuple(bool,uint256)" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "functionReturnParameters": 2485, - "id": 2499, - "nodeType": "Return", - "src": "1964:20:13" + "src": "4974:29:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2537, + "name": "returnValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2529, + "src": "5007:11:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2538, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5021:1:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5007:15:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4974:48:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" } - ] + }, + "functionReturnParameters": 2511, + "id": 2541, + "nodeType": "Return", + "src": "4967:55:12" } ] }, "documentation": { - "id": 2475, + "id": 2503, "nodeType": "StructuredDocumentation", - "src": "1706:100:13", - "text": " @dev Returns the division of two unsigned integers, with a division by zero flag." + "src": "3575:817:12", + "text": " @notice Query if a contract implements an interface, does not check ERC165 support\n @param account The address of the contract to query for support of an interface\n @param interfaceId The interface identifier, as specified in ERC-165\n @return true if the contract at account indicates support of the interface with\n identifier interfaceId, false otherwise\n @dev Assumes that account contains a contract that supports ERC165, otherwise\n the behavior of this method is undefined. This precondition can be checked\n with {supportsERC165}.\n Some precompiled contracts will falsely indicate support for a given interface, so caution\n should be exercised when using this function.\n Interface identification is specified in ERC-165." }, - "id": 2502, + "id": 2543, "implemented": true, "kind": "function", "modifiers": [], - "name": "tryDiv", - "nameLocation": "1820:6:13", + "name": "supportsERC165InterfaceUnchecked", + "nameLocation": "4406:32:12", "nodeType": "FunctionDefinition", "parameters": { - "id": 2480, + "id": 2508, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2477, + "id": 2505, "mutability": "mutable", - "name": "a", - "nameLocation": "1835:1:13", + "name": "account", + "nameLocation": "4447:7:12", "nodeType": "VariableDeclaration", - "scope": 2502, - "src": "1827:9:13", + "scope": 2543, + "src": "4439:15:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 2476, - "name": "uint256", + "id": 2504, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "1827:7:13", + "src": "4439:7:12", + "stateMutability": "nonpayable", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "visibility": "internal" }, { "constant": false, - "id": 2479, + "id": 2507, "mutability": "mutable", - "name": "b", - "nameLocation": "1846:1:13", + "name": "interfaceId", + "nameLocation": "4463:11:12", "nodeType": "VariableDeclaration", - "scope": 2502, - "src": "1838:9:13", + "scope": 2543, + "src": "4456:18:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" }, "typeName": { - "id": 2478, - "name": "uint256", + "id": 2506, + "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "1838:7:13", + "src": "4456:6:12", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" } }, "visibility": "internal" } ], - "src": "1826:22:13" + "src": "4438:37:12" }, "returnParameters": { - "id": 2485, + "id": 2511, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2482, + "id": 2510, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2502, - "src": "1872:4:13", + "scope": 2543, + "src": "4499:4:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -32569,127 +33376,432 @@ "typeString": "bool" }, "typeName": { - "id": 2481, + "id": 2509, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1872:4:13", + "src": "4499:4:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" - }, - { - "constant": false, - "id": 2484, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2502, - "src": "1878:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2483, - "name": "uint256", + } + ], + "src": "4498:6:12" + }, + "scope": 2544, + "src": "4397:632:12", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 2545, + "src": "465:4566:12", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "121:4911:12" + }, + "id": 12 + }, + "@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "exportedSymbols": { + "IERC165": [ + 2556 + ] + }, + "id": 2557, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2546, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "115:24:13" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC165", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 2547, + "nodeType": "StructuredDocumentation", + "src": "141:279:13", + "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "fullyImplemented": false, + "id": 2556, + "linearizedBaseContracts": [ + 2556 + ], + "name": "IERC165", + "nameLocation": "431:7:13", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 2548, + "nodeType": "StructuredDocumentation", + "src": "445:340:13", + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 2555, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "799:17:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2551, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2550, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "824:11:13", + "nodeType": "VariableDeclaration", + "scope": 2555, + "src": "817:18:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2549, + "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "1878:7:13", + "src": "817:6:13", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" } }, "visibility": "internal" } ], - "src": "1871:15:13" + "src": "816:20:13" }, - "scope": 3415, - "src": "1811:190:13", - "stateMutability": "pure", + "returnParameters": { + "id": 2554, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2553, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2555, + "src": "860:4:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2552, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "860:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "859:6:13" + }, + "scope": 2556, + "src": "790:76:13", + "stateMutability": "view", "virtual": false, - "visibility": "internal" + "visibility": "external" + } + ], + "scope": 2557, + "src": "421:447:13", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "115:754:13" + }, + "id": 13 + }, + "@openzeppelin/contracts/utils/math/Math.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol", + "exportedSymbols": { + "Math": [ + 3610 + ] + }, + "id": 3611, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2558, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "103:24:14" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Math", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2559, + "nodeType": "StructuredDocumentation", + "src": "129:73:14", + "text": " @dev Standard math utilities missing in the Solidity language." + }, + "fullyImplemented": true, + "id": 3610, + "linearizedBaseContracts": [ + 3610 + ], + "name": "Math", + "nameLocation": "211:4:14", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 2560, + "nodeType": "StructuredDocumentation", + "src": "222:50:14", + "text": " @dev Muldiv operation overflow." + }, + "errorSelector": "227bc153", + "id": 2562, + "name": "MathOverflowedMulDiv", + "nameLocation": "283:20:14", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 2561, + "nodeType": "ParameterList", + "parameters": [], + "src": "303:2:14" + }, + "src": "277:29:14" + }, + { + "canonicalName": "Math.Rounding", + "id": 2567, + "members": [ + { + "id": 2563, + "name": "Floor", + "nameLocation": "336:5:14", + "nodeType": "EnumValue", + "src": "336:5:14" + }, + { + "id": 2564, + "name": "Ceil", + "nameLocation": "379:4:14", + "nodeType": "EnumValue", + "src": "379:4:14" + }, + { + "id": 2565, + "name": "Trunc", + "nameLocation": "421:5:14", + "nodeType": "EnumValue", + "src": "421:5:14" + }, + { + "id": 2566, + "name": "Expand", + "nameLocation": "451:6:14", + "nodeType": "EnumValue", + "src": "451:6:14" + } + ], + "name": "Rounding", + "nameLocation": "317:8:14", + "nodeType": "EnumDefinition", + "src": "312:169:14" }, { "body": { - "id": 2529, + "id": 2598, "nodeType": "Block", - "src": "2198:114:13", + "src": "661:140:14", "statements": [ { - "id": 2528, + "id": 2597, "nodeType": "UncheckedBlock", - "src": "2208:98:13", + "src": "671:124:14", "statements": [ { - "condition": { + "assignments": [ + 2580 + ], + "declarations": [ + { + "constant": false, + "id": 2580, + "mutability": "mutable", + "name": "c", + "nameLocation": "703:1:14", + "nodeType": "VariableDeclaration", + "scope": 2597, + "src": "695:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2579, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "695:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2584, + "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2516, + "id": 2583, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2514, + "id": 2581, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2570, + "src": "707:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 2582, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2507, - "src": "2236:1:13", + "referencedDeclaration": 2572, + "src": "711:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "707:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "695:17:14" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2587, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2585, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2580, + "src": "730:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": "==", + "operator": "<", "rightExpression": { - "hexValue": "30", - "id": 2515, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2241:1:13", + "id": 2586, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2570, + "src": "734:1:14", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "src": "2236:6:13", + "src": "730:5:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2521, + "id": 2592, "nodeType": "IfStatement", - "src": "2232:29:13", + "src": "726:28:14", "trueBody": { "expression": { "components": [ { "hexValue": "66616c7365", - "id": 2517, + "id": 2588, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2252:5:13", + "src": "745:5:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -32698,14 +33810,14 @@ }, { "hexValue": "30", - "id": 2518, + "id": 2589, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2259:1:13", + "src": "752:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -32713,23 +33825,23 @@ "value": "0" } ], - "id": 2519, + "id": 2590, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2251:10:13", + "src": "744:10:14", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", "typeString": "tuple(bool,int_const 0)" } }, - "functionReturnParameters": 2513, - "id": 2520, + "functionReturnParameters": 2578, + "id": 2591, "nodeType": "Return", - "src": "2244:17:13" + "src": "737:17:14" } }, { @@ -32737,14 +33849,14 @@ "components": [ { "hexValue": "74727565", - "id": 2522, + "id": 2593, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2283:4:13", + "src": "776:4:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -32752,96 +33864,66 @@ "value": "true" }, { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2525, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2523, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2505, - "src": "2289:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "id": 2524, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2507, - "src": "2293:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2289:5:13", + "id": 2594, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2580, + "src": "782:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 2526, + "id": 2595, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2282:13:13", + "src": "775:9:14", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", "typeString": "tuple(bool,uint256)" } }, - "functionReturnParameters": 2513, - "id": 2527, + "functionReturnParameters": 2578, + "id": 2596, "nodeType": "Return", - "src": "2275:20:13" + "src": "768:16:14" } ] } ] }, "documentation": { - "id": 2503, + "id": 2568, "nodeType": "StructuredDocumentation", - "src": "2007:110:13", - "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag." + "src": "487:93:14", + "text": " @dev Returns the addition of two unsigned integers, with an overflow flag." }, - "id": 2530, + "id": 2599, "implemented": true, "kind": "function", "modifiers": [], - "name": "tryMod", - "nameLocation": "2131:6:13", + "name": "tryAdd", + "nameLocation": "594:6:14", "nodeType": "FunctionDefinition", "parameters": { - "id": 2508, + "id": 2573, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2505, + "id": 2570, "mutability": "mutable", "name": "a", - "nameLocation": "2146:1:13", + "nameLocation": "609:1:14", "nodeType": "VariableDeclaration", - "scope": 2530, - "src": "2138:9:13", + "scope": 2599, + "src": "601:9:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -32849,10 +33931,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2504, + "id": 2569, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2138:7:13", + "src": "601:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -32862,13 +33944,13 @@ }, { "constant": false, - "id": 2507, + "id": 2572, "mutability": "mutable", "name": "b", - "nameLocation": "2157:1:13", + "nameLocation": "620:1:14", "nodeType": "VariableDeclaration", - "scope": 2530, - "src": "2149:9:13", + "scope": 2599, + "src": "612:9:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -32876,10 +33958,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2506, + "id": 2571, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2149:7:13", + "src": "612:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -32888,21 +33970,21 @@ "visibility": "internal" } ], - "src": "2137:22:13" + "src": "600:22:14" }, "returnParameters": { - "id": 2513, + "id": 2578, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2510, + "id": 2575, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2530, - "src": "2183:4:13", + "scope": 2599, + "src": "646:4:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -32910,10 +33992,10 @@ "typeString": "bool" }, "typeName": { - "id": 2509, + "id": 2574, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2183:4:13", + "src": "646:4:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -32923,13 +34005,13 @@ }, { "constant": false, - "id": 2512, + "id": 2577, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2530, - "src": "2189:7:13", + "scope": 2599, + "src": "652:7:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -32937,10 +34019,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2511, + "id": 2576, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2189:7:13", + "src": "652:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -32949,340 +34031,236 @@ "visibility": "internal" } ], - "src": "2182:15:13" + "src": "645:15:14" }, - "scope": 3415, - "src": "2122:190:13", + "scope": 3610, + "src": "585:216:14", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2547, + "id": 2626, "nodeType": "Block", - "src": "2449:37:13", + "src": "984:113:14", "statements": [ { - "expression": { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2540, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2533, - "src": "2466:1:13", - "typeDescriptions": { + "id": 2625, + "nodeType": "UncheckedBlock", + "src": "994:97:14", + "statements": [ + { + "condition": { + "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "id": 2541, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2535, - "src": "2470:1:13", + }, + "id": 2613, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2611, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2604, + "src": "1022:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 2612, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "1026:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1022:5:14", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "src": "2466:5:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "id": 2544, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2535, - "src": "2478:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2545, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "2466:13:13", - "trueExpression": { - "id": 2543, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2533, - "src": "2474:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "id": 2618, + "nodeType": "IfStatement", + "src": "1018:28:14", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2614, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1037:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 2615, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1044:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2616, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1036:10:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2610, + "id": 2617, + "nodeType": "Return", + "src": "1029:17:14" } }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2539, - "id": 2546, - "nodeType": "Return", - "src": "2459:20:13" - } - ] - }, - "documentation": { - "id": 2531, - "nodeType": "StructuredDocumentation", - "src": "2318:59:13", - "text": " @dev Returns the largest of two numbers." - }, - "id": 2548, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "max", - "nameLocation": "2391:3:13", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2536, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2533, - "mutability": "mutable", - "name": "a", - "nameLocation": "2403:1:13", - "nodeType": "VariableDeclaration", - "scope": 2548, - "src": "2395:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2532, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2395:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2535, - "mutability": "mutable", - "name": "b", - "nameLocation": "2414:1:13", - "nodeType": "VariableDeclaration", - "scope": 2548, - "src": "2406:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2534, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2406:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2394:22:13" - }, - "returnParameters": { - "id": 2539, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2538, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 2548, - "src": "2440:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2537, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2440:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "2439:9:13" - }, - "scope": 3415, - "src": "2382:104:13", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2565, - "nodeType": "Block", - "src": "2624:37:13", - "statements": [ - { - "expression": { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2560, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2558, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2551, - "src": "2641:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 2559, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2553, - "src": "2645:1:13", + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2619, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1068:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2620, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "1074:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 2621, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2604, + "src": "1078:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1074:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2623, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1067:13:14", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" } }, - "src": "2641:5:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "id": 2562, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2553, - "src": "2653:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "2641:13:13", - "trueExpression": { - "id": 2561, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2551, - "src": "2649:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "functionReturnParameters": 2610, + "id": 2624, + "nodeType": "Return", + "src": "1060:20:14" } - }, - "functionReturnParameters": 2557, - "id": 2564, - "nodeType": "Return", - "src": "2634:20:13" + ] } ] }, "documentation": { - "id": 2549, + "id": 2600, "nodeType": "StructuredDocumentation", - "src": "2492:60:13", - "text": " @dev Returns the smallest of two numbers." + "src": "807:96:14", + "text": " @dev Returns the subtraction of two unsigned integers, with an overflow flag." }, - "id": 2566, + "id": 2627, "implemented": true, "kind": "function", "modifiers": [], - "name": "min", - "nameLocation": "2566:3:13", + "name": "trySub", + "nameLocation": "917:6:14", "nodeType": "FunctionDefinition", "parameters": { - "id": 2554, + "id": 2605, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2551, + "id": 2602, "mutability": "mutable", "name": "a", - "nameLocation": "2578:1:13", + "nameLocation": "932:1:14", "nodeType": "VariableDeclaration", - "scope": 2566, - "src": "2570:9:13", + "scope": 2627, + "src": "924:9:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33290,10 +34268,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2550, + "id": 2601, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2570:7:13", + "src": "924:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -33303,13 +34281,13 @@ }, { "constant": false, - "id": 2553, + "id": 2604, "mutability": "mutable", "name": "b", - "nameLocation": "2589:1:13", + "nameLocation": "943:1:14", "nodeType": "VariableDeclaration", - "scope": 2566, - "src": "2581:9:13", + "scope": 2627, + "src": "935:9:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33317,10 +34295,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2552, + "id": 2603, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2581:7:13", + "src": "935:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -33329,21 +34307,48 @@ "visibility": "internal" } ], - "src": "2569:22:13" + "src": "923:22:14" }, "returnParameters": { - "id": 2557, + "id": 2610, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2556, + "id": 2607, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2627, + "src": "969:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2606, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "969:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2609, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2566, - "src": "2615:7:13", + "scope": 2627, + "src": "975:7:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33351,10 +34356,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2555, + "id": 2608, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2615:7:13", + "src": "975:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -33363,222 +34368,420 @@ "visibility": "internal" } ], - "src": "2614:9:13" + "src": "968:15:14" }, - "scope": 3415, - "src": "2557:104:13", + "scope": 3610, + "src": "908:189:14", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2588, + "id": 2668, "nodeType": "Block", - "src": "2845:82:13", + "src": "1283:417:14", "statements": [ { - "expression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "id": 2667, + "nodeType": "UncheckedBlock", + "src": "1293:401:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2639, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2630, + "src": "1551:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1556:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1551:6:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2646, + "nodeType": "IfStatement", + "src": "1547:28:14", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1567:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "hexValue": "30", + "id": 2643, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1573:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2644, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1566:9:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2638, + "id": 2645, + "nodeType": "Return", + "src": "1559:16:14" + } }, - "id": 2586, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "components": [ + { + "assignments": [ + 2648 + ], + "declarations": [ { + "constant": false, + "id": 2648, + "mutability": "mutable", + "name": "c", + "nameLocation": "1597:1:14", + "nodeType": "VariableDeclaration", + "scope": 2667, + "src": "1589:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2647, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1589:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2652, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2649, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2630, + "src": "1601:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2650, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2632, + "src": "1605:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1601:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1589:17:14" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2578, + "id": 2655, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2576, - "name": "a", + "id": 2653, + "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2569, - "src": "2900:1:13", + "referencedDeclaration": 2648, + "src": "1624:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": "&", + "operator": "/", "rightExpression": { - "id": 2577, - "name": "b", + "id": 2654, + "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2571, - "src": "2904:1:13", + "referencedDeclaration": 2630, + "src": "1628:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2900:5:13", + "src": "1624:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 2656, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2632, + "src": "1633:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } + }, + "src": "1624:10:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" } - ], - "id": 2579, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "2899:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + }, + "id": 2662, + "nodeType": "IfStatement", + "src": "1620:33:14", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2658, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1644:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 2659, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1651:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2660, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1643:10:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2638, + "id": 2661, + "nodeType": "Return", + "src": "1636:17:14" } }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + { + "expression": { "components": [ { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2582, + "hexValue": "74727565", + "id": 2663, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "bool", "lValueRequested": false, - "leftExpression": { - "id": 2580, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2569, - "src": "2910:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "^", - "rightExpression": { - "id": 2581, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2571, - "src": "2914:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "nodeType": "Literal", + "src": "1675:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" }, - "src": "2910:5:13", + "value": "true" + }, + { + "id": 2664, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2648, + "src": "1681:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 2583, + "id": 2665, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2909:7:13", + "src": "1674:9:14", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" } }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "hexValue": "32", - "id": 2584, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2919:1:13", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "2909:11:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2899:21:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "functionReturnParameters": 2638, + "id": 2666, + "nodeType": "Return", + "src": "1667:16:14" } - }, - "functionReturnParameters": 2575, - "id": 2587, - "nodeType": "Return", - "src": "2892:28:13" + ] } ] }, "documentation": { - "id": 2567, + "id": 2628, "nodeType": "StructuredDocumentation", - "src": "2667:102:13", - "text": " @dev Returns the average of two numbers. The result is rounded towards\n zero." + "src": "1103:99:14", + "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag." }, - "id": 2589, + "id": 2669, "implemented": true, "kind": "function", "modifiers": [], - "name": "average", - "nameLocation": "2783:7:13", + "name": "tryMul", + "nameLocation": "1216:6:14", "nodeType": "FunctionDefinition", "parameters": { - "id": 2572, + "id": 2633, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2569, + "id": 2630, "mutability": "mutable", "name": "a", - "nameLocation": "2799:1:13", + "nameLocation": "1231:1:14", "nodeType": "VariableDeclaration", - "scope": 2589, - "src": "2791:9:13", + "scope": 2669, + "src": "1223:9:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33586,10 +34789,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2568, + "id": 2629, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2791:7:13", + "src": "1223:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -33599,13 +34802,13 @@ }, { "constant": false, - "id": 2571, + "id": 2632, "mutability": "mutable", "name": "b", - "nameLocation": "2810:1:13", + "nameLocation": "1242:1:14", "nodeType": "VariableDeclaration", - "scope": 2589, - "src": "2802:9:13", + "scope": 2669, + "src": "1234:9:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33613,10 +34816,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2570, + "id": 2631, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2802:7:13", + "src": "1234:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -33625,21 +34828,48 @@ "visibility": "internal" } ], - "src": "2790:22:13" + "src": "1222:22:14" }, "returnParameters": { - "id": 2575, + "id": 2638, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2574, + "id": 2635, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2669, + "src": "1268:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2634, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1268:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2637, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2589, - "src": "2836:7:13", + "scope": 2669, + "src": "1274:7:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33647,10 +34877,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2573, + "id": 2636, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2836:7:13", + "src": "1274:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -33659,361 +34889,240 @@ "visibility": "internal" } ], - "src": "2835:9:13" + "src": "1267:15:14" }, - "scope": 3415, - "src": "2774:153:13", + "scope": 3610, + "src": "1207:493:14", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2622, + "id": 2696, "nodeType": "Block", - "src": "3219:260:13", + "src": "1887:114:14", "statements": [ { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2601, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2599, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2594, - "src": "3233:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 2600, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3238:1:13", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3233:6:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2607, - "nodeType": "IfStatement", - "src": "3229:127:13", - "trueBody": { - "id": 2606, - "nodeType": "Block", - "src": "3241:115:13", - "statements": [ - { - "expression": { - "commonType": { + "id": 2695, + "nodeType": "UncheckedBlock", + "src": "1897:98:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2681, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2674, + "src": "1925:1:14", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - "id": 2604, + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2682, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "leftExpression": { - "id": 2602, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2592, - "src": "3340:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 2603, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2594, - "src": "3344:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3340:5:13", + "nodeType": "Literal", + "src": "1930:1:14", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "functionReturnParameters": 2598, - "id": 2605, - "nodeType": "Return", - "src": "3333:12:13" - } - ] - } - }, - { - "expression": { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2608, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2592, - "src": "3444:1:13", + "src": "1925:6:14", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 2609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3449:1:13", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3444:6:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2619, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "id": 2688, + "nodeType": "IfStatement", + "src": "1921:29:14", + "trueBody": { + "expression": { "components": [ { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2614, + "hexValue": "66616c7365", + "id": 2684, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "bool", "lValueRequested": false, - "leftExpression": { - "id": 2612, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2592, - "src": "3458:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "hexValue": "31", - "id": 2613, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3462:1:13", - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" + "nodeType": "Literal", + "src": "1941:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" }, - "src": "3458:5:13", + "value": "false" + }, + { + "hexValue": "30", + "id": 2685, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1948:1:14", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" } ], - "id": 2615, + "id": 2686, "isConstant": false, "isInlineArray": false, "isLValue": false, - "isPure": false, + "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3457:7:13", + "src": "1940:10:14", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" } }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 2616, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2594, - "src": "3467:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "functionReturnParameters": 2680, + "id": 2687, + "nodeType": "Return", + "src": "1933:17:14" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2689, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1972:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2690, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2672, + "src": "1978:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2691, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2674, + "src": "1982:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1978:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } - }, - "src": "3457:11:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "hexValue": "31", - "id": 2618, + ], + "id": 2693, "isConstant": false, + "isInlineArray": false, "isLValue": false, - "isPure": true, - "kind": "number", + "isPure": false, "lValueRequested": false, - "nodeType": "Literal", - "src": "3471:1:13", + "nodeType": "TupleExpression", + "src": "1971:13:14", "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "3457:15:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2620, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "3444:28:13", - "trueExpression": { - "hexValue": "30", - "id": 2611, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3453:1:13", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } }, - "value": "0" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "functionReturnParameters": 2680, + "id": 2694, + "nodeType": "Return", + "src": "1964:20:14" } - }, - "functionReturnParameters": 2598, - "id": 2621, - "nodeType": "Return", - "src": "3437:35:13" + ] } ] }, "documentation": { - "id": 2590, + "id": 2670, "nodeType": "StructuredDocumentation", - "src": "2933:210:13", - "text": " @dev Returns the ceiling of the division of two numbers.\n This differs from standard division with `/` in that it rounds towards infinity instead\n of rounding towards zero." + "src": "1706:100:14", + "text": " @dev Returns the division of two unsigned integers, with a division by zero flag." }, - "id": 2623, + "id": 2697, "implemented": true, "kind": "function", "modifiers": [], - "name": "ceilDiv", - "nameLocation": "3157:7:13", + "name": "tryDiv", + "nameLocation": "1820:6:14", "nodeType": "FunctionDefinition", "parameters": { - "id": 2595, + "id": 2675, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2592, + "id": 2672, "mutability": "mutable", "name": "a", - "nameLocation": "3173:1:13", + "nameLocation": "1835:1:14", "nodeType": "VariableDeclaration", - "scope": 2623, - "src": "3165:9:13", + "scope": 2697, + "src": "1827:9:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -34021,10 +35130,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2591, + "id": 2671, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3165:7:13", + "src": "1827:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -34034,13 +35143,13 @@ }, { "constant": false, - "id": 2594, + "id": 2674, "mutability": "mutable", "name": "b", - "nameLocation": "3184:1:13", + "nameLocation": "1846:1:14", "nodeType": "VariableDeclaration", - "scope": 2623, - "src": "3176:9:13", + "scope": 2697, + "src": "1838:9:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -34048,10 +35157,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2593, + "id": 2673, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3176:7:13", + "src": "1838:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -34060,21 +35169,48 @@ "visibility": "internal" } ], - "src": "3164:22:13" + "src": "1826:22:14" }, "returnParameters": { - "id": 2598, + "id": 2680, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2597, + "id": 2677, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2697, + "src": "1872:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2676, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1872:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2679, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2623, - "src": "3210:7:13", + "scope": 2697, + "src": "1878:7:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -34082,10 +35218,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2596, + "id": 2678, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3210:7:13", + "src": "1878:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -34094,1241 +35230,1604 @@ "visibility": "internal" } ], - "src": "3209:9:13" + "src": "1871:15:14" }, - "scope": 3415, - "src": "3148:331:13", + "scope": 3610, + "src": "1811:190:14", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2748, + "id": 2724, "nodeType": "Block", - "src": "3901:4018:13", + "src": "2198:114:14", "statements": [ { - "id": 2747, + "id": 2723, "nodeType": "UncheckedBlock", - "src": "3911:4002:13", + "src": "2208:98:14", "statements": [ { - "assignments": [ - 2636 - ], - "declarations": [ - { - "constant": false, - "id": 2636, - "mutability": "mutable", - "name": "prod0", - "nameLocation": "4240:5:13", - "nodeType": "VariableDeclaration", - "scope": 2747, - "src": "4232:13:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2635, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4232:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 2640, - "initialValue": { + "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2639, + "id": 2711, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2637, - "name": "x", + "id": 2709, + "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2626, - "src": "4248:1:13", + "referencedDeclaration": 2702, + "src": "2236:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", - "operator": "*", + "operator": "==", "rightExpression": { - "id": 2638, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2628, - "src": "4252:1:13", + "hexValue": "30", + "id": 2710, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2241:1:14", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "src": "4248:5:13", + "src": "2236:6:14", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "nodeType": "VariableDeclarationStatement", - "src": "4232:21:13" - }, - { - "assignments": [ - 2642 - ], - "declarations": [ - { - "constant": false, - "id": 2642, - "mutability": "mutable", - "name": "prod1", - "nameLocation": "4320:5:13", - "nodeType": "VariableDeclaration", - "scope": 2747, - "src": "4312:13:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2641, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4312:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "id": 2643, - "nodeType": "VariableDeclarationStatement", - "src": "4312:13:13" - }, - { - "AST": { - "nativeSrc": "4392:122:13", - "nodeType": "YulBlock", - "src": "4392:122:13", - "statements": [ - { - "nativeSrc": "4410:30:13", - "nodeType": "YulVariableDeclaration", - "src": "4410:30:13", - "value": { - "arguments": [ - { - "name": "x", - "nativeSrc": "4427:1:13", - "nodeType": "YulIdentifier", - "src": "4427:1:13" - }, - { - "name": "y", - "nativeSrc": "4430:1:13", - "nodeType": "YulIdentifier", - "src": "4430:1:13" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "4437:1:13", - "nodeType": "YulLiteral", - "src": "4437:1:13", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "4433:3:13", - "nodeType": "YulIdentifier", - "src": "4433:3:13" - }, - "nativeSrc": "4433:6:13", - "nodeType": "YulFunctionCall", - "src": "4433:6:13" - } - ], - "functionName": { - "name": "mulmod", - "nativeSrc": "4420:6:13", - "nodeType": "YulIdentifier", - "src": "4420:6:13" + "id": 2716, + "nodeType": "IfStatement", + "src": "2232:29:14", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2712, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2252:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" }, - "nativeSrc": "4420:20:13", - "nodeType": "YulFunctionCall", - "src": "4420:20:13" + "value": "false" }, - "variables": [ - { - "name": "mm", - "nativeSrc": "4414:2:13", - "nodeType": "YulTypedName", - "src": "4414:2:13", - "type": "" - } - ] - }, - { - "nativeSrc": "4457:43:13", - "nodeType": "YulAssignment", - "src": "4457:43:13", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "mm", - "nativeSrc": "4474:2:13", - "nodeType": "YulIdentifier", - "src": "4474:2:13" - }, - { - "name": "prod0", - "nativeSrc": "4478:5:13", - "nodeType": "YulIdentifier", - "src": "4478:5:13" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "4470:3:13", - "nodeType": "YulIdentifier", - "src": "4470:3:13" - }, - "nativeSrc": "4470:14:13", - "nodeType": "YulFunctionCall", - "src": "4470:14:13" - }, - { - "arguments": [ - { - "name": "mm", - "nativeSrc": "4489:2:13", - "nodeType": "YulIdentifier", - "src": "4489:2:13" - }, - { - "name": "prod0", - "nativeSrc": "4493:5:13", - "nodeType": "YulIdentifier", - "src": "4493:5:13" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "4486:2:13", - "nodeType": "YulIdentifier", - "src": "4486:2:13" - }, - "nativeSrc": "4486:13:13", - "nodeType": "YulFunctionCall", - "src": "4486:13:13" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "4466:3:13", - "nodeType": "YulIdentifier", - "src": "4466:3:13" + { + "hexValue": "30", + "id": 2713, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2259:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" }, - "nativeSrc": "4466:34:13", - "nodeType": "YulFunctionCall", - "src": "4466:34:13" - }, - "variableNames": [ - { - "name": "prod1", - "nativeSrc": "4457:5:13", - "nodeType": "YulIdentifier", - "src": "4457:5:13" - } - ] - } - ] - }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 2636, - "isOffset": false, - "isSlot": false, - "src": "4478:5:13", - "valueSize": 1 - }, - { - "declaration": 2636, - "isOffset": false, - "isSlot": false, - "src": "4493:5:13", - "valueSize": 1 - }, - { - "declaration": 2642, - "isOffset": false, - "isSlot": false, - "src": "4457:5:13", - "valueSize": 1 - }, - { - "declaration": 2626, - "isOffset": false, - "isSlot": false, - "src": "4427:1:13", - "valueSize": 1 - }, - { - "declaration": 2628, - "isOffset": false, - "isSlot": false, - "src": "4430:1:13", - "valueSize": 1 - } - ], - "id": 2644, - "nodeType": "InlineAssembly", - "src": "4383:131:13" - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2647, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2645, - "name": "prod1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2642, - "src": "4595:5:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "hexValue": "30", - "id": 2646, + "value": "0" + } + ], + "id": 2714, "isConstant": false, + "isInlineArray": false, "isLValue": false, "isPure": true, - "kind": "number", "lValueRequested": false, - "nodeType": "Literal", - "src": "4604:1:13", + "nodeType": "TupleExpression", + "src": "2251:10:14", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } }, - "src": "4595:10:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2653, - "nodeType": "IfStatement", - "src": "4591:368:13", - "trueBody": { - "id": 2652, - "nodeType": "Block", - "src": "4607:352:13", - "statements": [ + "functionReturnParameters": 2708, + "id": 2715, + "nodeType": "Return", + "src": "2244:17:14" + } + }, + { + "expression": { + "components": [ { - "expression": { - "commonType": { + "hexValue": "74727565", + "id": 2717, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2283:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2718, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2700, + "src": "2289:1:14", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - "id": 2650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2648, - "name": "prod0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2636, - "src": "4925:5:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 2649, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2630, - "src": "4933:11:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4925:19:13", + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 2719, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2702, + "src": "2293:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2634, - "id": 2651, - "nodeType": "Return", - "src": "4918:26:13" + "src": "2289:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } - ] - } - }, - { - "condition": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2656, + ], + "id": 2721, "isConstant": false, + "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { - "id": 2654, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2630, - "src": "5065:11:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "id": 2655, - "name": "prod1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2642, - "src": "5080:5:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5065:20:13", + "nodeType": "TupleExpression", + "src": "2282:13:14", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" } }, - "id": 2661, - "nodeType": "IfStatement", - "src": "5061:88:13", - "trueBody": { - "id": 2660, - "nodeType": "Block", - "src": "5087:62:13", - "statements": [ - { - "errorCall": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2657, - "name": "MathOverflowedMulDiv", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2367, - "src": "5112:20:13", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 2658, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "5112:22:13", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2659, - "nodeType": "RevertStatement", - "src": "5105:29:13" - } - ] + "functionReturnParameters": 2708, + "id": 2722, + "nodeType": "Return", + "src": "2275:20:14" + } + ] + } + ] + }, + "documentation": { + "id": 2698, + "nodeType": "StructuredDocumentation", + "src": "2007:110:14", + "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag." + }, + "id": 2725, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMod", + "nameLocation": "2131:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2703, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2700, + "mutability": "mutable", + "name": "a", + "nameLocation": "2146:1:14", + "nodeType": "VariableDeclaration", + "scope": 2725, + "src": "2138:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2699, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2138:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2702, + "mutability": "mutable", + "name": "b", + "nameLocation": "2157:1:14", + "nodeType": "VariableDeclaration", + "scope": 2725, + "src": "2149:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2701, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2149:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2137:22:14" + }, + "returnParameters": { + "id": 2708, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2705, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2725, + "src": "2183:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2704, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2183:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2707, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2725, + "src": "2189:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2706, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2189:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2182:15:14" + }, + "scope": 3610, + "src": "2122:190:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2742, + "nodeType": "Block", + "src": "2449:37:14", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2735, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2728, + "src": "2466:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 2736, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2730, + "src": "2470:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2466:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - { - "assignments": [ - 2663 - ], - "declarations": [ - { - "constant": false, - "id": 2663, - "mutability": "mutable", - "name": "remainder", - "nameLocation": "5412:9:13", - "nodeType": "VariableDeclaration", - "scope": 2747, - "src": "5404:17:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2662, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5404:7:13", + "falseExpression": { + "id": 2739, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2730, + "src": "2478:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "2466:13:14", + "trueExpression": { + "id": 2738, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2728, + "src": "2474:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2734, + "id": 2741, + "nodeType": "Return", + "src": "2459:20:14" + } + ] + }, + "documentation": { + "id": 2726, + "nodeType": "StructuredDocumentation", + "src": "2318:59:14", + "text": " @dev Returns the largest of two numbers." + }, + "id": 2743, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "max", + "nameLocation": "2391:3:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2731, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2728, + "mutability": "mutable", + "name": "a", + "nameLocation": "2403:1:14", + "nodeType": "VariableDeclaration", + "scope": 2743, + "src": "2395:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2727, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2395:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2730, + "mutability": "mutable", + "name": "b", + "nameLocation": "2414:1:14", + "nodeType": "VariableDeclaration", + "scope": 2743, + "src": "2406:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2729, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2406:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2394:22:14" + }, + "returnParameters": { + "id": 2734, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2733, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2743, + "src": "2440:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2732, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2440:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2439:9:14" + }, + "scope": 3610, + "src": "2382:104:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2760, + "nodeType": "Block", + "src": "2624:37:14", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2753, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2746, + "src": "2641:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 2754, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2748, + "src": "2645:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2641:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 2757, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2748, + "src": "2653:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2758, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "2641:13:14", + "trueExpression": { + "id": 2756, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2746, + "src": "2649:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2752, + "id": 2759, + "nodeType": "Return", + "src": "2634:20:14" + } + ] + }, + "documentation": { + "id": 2744, + "nodeType": "StructuredDocumentation", + "src": "2492:60:14", + "text": " @dev Returns the smallest of two numbers." + }, + "id": 2761, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nameLocation": "2566:3:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2749, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2746, + "mutability": "mutable", + "name": "a", + "nameLocation": "2578:1:14", + "nodeType": "VariableDeclaration", + "scope": 2761, + "src": "2570:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2745, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2570:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2748, + "mutability": "mutable", + "name": "b", + "nameLocation": "2589:1:14", + "nodeType": "VariableDeclaration", + "scope": 2761, + "src": "2581:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2747, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2581:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2569:22:14" + }, + "returnParameters": { + "id": 2752, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2751, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2761, + "src": "2615:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2750, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2615:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2614:9:14" + }, + "scope": 3610, + "src": "2557:104:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2783, + "nodeType": "Block", + "src": "2845:82:14", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2771, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2764, + "src": "2900:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "visibility": "internal" + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "id": 2772, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2766, + "src": "2904:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2900:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } ], - "id": 2664, - "nodeType": "VariableDeclarationStatement", - "src": "5404:17:13" + "id": 2774, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2899:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - { - "AST": { - "nativeSrc": "5444:291:13", - "nodeType": "YulBlock", - "src": "5444:291:13", - "statements": [ + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ { - "nativeSrc": "5513:38:13", - "nodeType": "YulAssignment", - "src": "5513:38:13", - "value": { - "arguments": [ - { - "name": "x", - "nativeSrc": "5533:1:13", - "nodeType": "YulIdentifier", - "src": "5533:1:13" - }, - { - "name": "y", - "nativeSrc": "5536:1:13", - "nodeType": "YulIdentifier", - "src": "5536:1:13" - }, - { - "name": "denominator", - "nativeSrc": "5539:11:13", - "nodeType": "YulIdentifier", - "src": "5539:11:13" - } - ], - "functionName": { - "name": "mulmod", - "nativeSrc": "5526:6:13", - "nodeType": "YulIdentifier", - "src": "5526:6:13" - }, - "nativeSrc": "5526:25:13", - "nodeType": "YulFunctionCall", - "src": "5526:25:13" + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "variableNames": [ - { - "name": "remainder", - "nativeSrc": "5513:9:13", - "nodeType": "YulIdentifier", - "src": "5513:9:13" + "id": 2777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2775, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2764, + "src": "2910:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ] - }, - { - "nativeSrc": "5633:41:13", - "nodeType": "YulAssignment", - "src": "5633:41:13", - "value": { - "arguments": [ - { - "name": "prod1", - "nativeSrc": "5646:5:13", - "nodeType": "YulIdentifier", - "src": "5646:5:13" - }, - { - "arguments": [ - { - "name": "remainder", - "nativeSrc": "5656:9:13", - "nodeType": "YulIdentifier", - "src": "5656:9:13" - }, - { - "name": "prod0", - "nativeSrc": "5667:5:13", - "nodeType": "YulIdentifier", - "src": "5667:5:13" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "5653:2:13", - "nodeType": "YulIdentifier", - "src": "5653:2:13" - }, - "nativeSrc": "5653:20:13", - "nodeType": "YulFunctionCall", - "src": "5653:20:13" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "5642:3:13", - "nodeType": "YulIdentifier", - "src": "5642:3:13" - }, - "nativeSrc": "5642:32:13", - "nodeType": "YulFunctionCall", - "src": "5642:32:13" }, - "variableNames": [ - { - "name": "prod1", - "nativeSrc": "5633:5:13", - "nodeType": "YulIdentifier", - "src": "5633:5:13" + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 2776, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2766, + "src": "2914:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ] - }, - { - "nativeSrc": "5691:30:13", - "nodeType": "YulAssignment", - "src": "5691:30:13", - "value": { - "arguments": [ - { - "name": "prod0", - "nativeSrc": "5704:5:13", - "nodeType": "YulIdentifier", - "src": "5704:5:13" - }, - { - "name": "remainder", - "nativeSrc": "5711:9:13", - "nodeType": "YulIdentifier", - "src": "5711:9:13" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "5700:3:13", - "nodeType": "YulIdentifier", - "src": "5700:3:13" - }, - "nativeSrc": "5700:21:13", - "nodeType": "YulFunctionCall", - "src": "5700:21:13" }, - "variableNames": [ - { - "name": "prod0", - "nativeSrc": "5691:5:13", - "nodeType": "YulIdentifier", - "src": "5691:5:13" - } - ] + "src": "2910:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } - ] + ], + "id": 2778, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2909:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 2630, - "isOffset": false, - "isSlot": false, - "src": "5539:11:13", - "valueSize": 1 - }, - { - "declaration": 2636, - "isOffset": false, - "isSlot": false, - "src": "5667:5:13", - "valueSize": 1 + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "32", + "id": 2779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2919:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" }, - { - "declaration": 2636, - "isOffset": false, - "isSlot": false, - "src": "5691:5:13", - "valueSize": 1 - }, - { - "declaration": 2636, - "isOffset": false, - "isSlot": false, - "src": "5704:5:13", - "valueSize": 1 - }, - { - "declaration": 2642, - "isOffset": false, - "isSlot": false, - "src": "5633:5:13", - "valueSize": 1 - }, - { - "declaration": 2642, - "isOffset": false, - "isSlot": false, - "src": "5646:5:13", - "valueSize": 1 - }, - { - "declaration": 2663, - "isOffset": false, - "isSlot": false, - "src": "5513:9:13", - "valueSize": 1 - }, - { - "declaration": 2663, - "isOffset": false, - "isSlot": false, - "src": "5656:9:13", - "valueSize": 1 - }, - { - "declaration": 2663, - "isOffset": false, - "isSlot": false, - "src": "5711:9:13", - "valueSize": 1 - }, - { - "declaration": 2626, - "isOffset": false, - "isSlot": false, - "src": "5533:1:13", - "valueSize": 1 - }, - { - "declaration": 2628, - "isOffset": false, - "isSlot": false, - "src": "5536:1:13", - "valueSize": 1 - } - ], - "id": 2665, - "nodeType": "InlineAssembly", - "src": "5435:300:13" + "value": "2" + }, + "src": "2909:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - { - "assignments": [ - 2667 - ], - "declarations": [ - { - "constant": false, - "id": 2667, - "mutability": "mutable", - "name": "twos", - "nameLocation": "5947:4:13", - "nodeType": "VariableDeclaration", - "scope": 2747, - "src": "5939:12:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { + "src": "2899:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2770, + "id": 2782, + "nodeType": "Return", + "src": "2892:28:14" + } + ] + }, + "documentation": { + "id": 2762, + "nodeType": "StructuredDocumentation", + "src": "2667:102:14", + "text": " @dev Returns the average of two numbers. The result is rounded towards\n zero." + }, + "id": 2784, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "average", + "nameLocation": "2783:7:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2767, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2764, + "mutability": "mutable", + "name": "a", + "nameLocation": "2799:1:14", + "nodeType": "VariableDeclaration", + "scope": 2784, + "src": "2791:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2763, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2791:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2766, + "mutability": "mutable", + "name": "b", + "nameLocation": "2810:1:14", + "nodeType": "VariableDeclaration", + "scope": 2784, + "src": "2802:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2765, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2802:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2790:22:14" + }, + "returnParameters": { + "id": 2770, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2769, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2784, + "src": "2836:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2768, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2836:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2835:9:14" + }, + "scope": 3610, + "src": "2774:153:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2817, + "nodeType": "Block", + "src": "3219:260:14", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2796, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2794, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2789, + "src": "3233:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2795, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3238:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3233:6:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2802, + "nodeType": "IfStatement", + "src": "3229:127:14", + "trueBody": { + "id": 2801, + "nodeType": "Block", + "src": "3241:115:14", + "statements": [ + { + "expression": { + "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "typeName": { - "id": 2666, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5939:7:13", + "id": 2799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2797, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2787, + "src": "3340:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "visibility": "internal" + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2798, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2789, + "src": "3344:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3340:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2793, + "id": 2800, + "nodeType": "Return", + "src": "3333:12:14" + } + ] + } + }, + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2803, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2787, + "src": "3444:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ], - "id": 2674, - "initialValue": { + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3449:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3444:6:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2814, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2673, + "id": 2812, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2668, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2630, - "src": "5954:11:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "&", - "rightExpression": { "components": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2671, + "id": 2809, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "hexValue": "30", - "id": 2669, + "id": 2807, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2787, + "src": "3458:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2808, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5969:1:13", + "src": "3462:1:14", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" }, - "value": "0" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 2670, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2630, - "src": "5973:11:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "value": "1" }, - "src": "5969:15:13", + "src": "3458:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 2672, + "id": 2810, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "5968:17:13", + "src": "3457:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2811, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2789, + "src": "3467:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5954:31:13", + "src": "3457:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "VariableDeclarationStatement", - "src": "5939:46:13" + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2813, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3471:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3457:15:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, - { - "AST": { - "nativeSrc": "6008:362:13", - "nodeType": "YulBlock", - "src": "6008:362:13", - "statements": [ - { - "nativeSrc": "6073:37:13", - "nodeType": "YulAssignment", - "src": "6073:37:13", - "value": { - "arguments": [ - { - "name": "denominator", - "nativeSrc": "6092:11:13", - "nodeType": "YulIdentifier", - "src": "6092:11:13" - }, - { - "name": "twos", - "nativeSrc": "6105:4:13", - "nodeType": "YulIdentifier", - "src": "6105:4:13" - } - ], - "functionName": { - "name": "div", - "nativeSrc": "6088:3:13", - "nodeType": "YulIdentifier", - "src": "6088:3:13" - }, - "nativeSrc": "6088:22:13", - "nodeType": "YulFunctionCall", - "src": "6088:22:13" - }, - "variableNames": [ - { - "name": "denominator", - "nativeSrc": "6073:11:13", - "nodeType": "YulIdentifier", - "src": "6073:11:13" - } - ] - }, - { - "nativeSrc": "6177:25:13", - "nodeType": "YulAssignment", - "src": "6177:25:13", - "value": { - "arguments": [ - { - "name": "prod0", - "nativeSrc": "6190:5:13", - "nodeType": "YulIdentifier", - "src": "6190:5:13" - }, - { - "name": "twos", - "nativeSrc": "6197:4:13", - "nodeType": "YulIdentifier", - "src": "6197:4:13" - } - ], - "functionName": { - "name": "div", - "nativeSrc": "6186:3:13", - "nodeType": "YulIdentifier", - "src": "6186:3:13" - }, - "nativeSrc": "6186:16:13", - "nodeType": "YulFunctionCall", - "src": "6186:16:13" - }, - "variableNames": [ - { - "name": "prod0", - "nativeSrc": "6177:5:13", - "nodeType": "YulIdentifier", - "src": "6177:5:13" - } - ] - }, - { - "nativeSrc": "6317:39:13", - "nodeType": "YulAssignment", - "src": "6317:39:13", - "value": { - "arguments": [ - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "6337:1:13", - "nodeType": "YulLiteral", - "src": "6337:1:13", - "type": "", - "value": "0" - }, - { - "name": "twos", - "nativeSrc": "6340:4:13", - "nodeType": "YulIdentifier", - "src": "6340:4:13" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "6333:3:13", - "nodeType": "YulIdentifier", - "src": "6333:3:13" - }, - "nativeSrc": "6333:12:13", - "nodeType": "YulFunctionCall", - "src": "6333:12:13" - }, - { - "name": "twos", - "nativeSrc": "6347:4:13", - "nodeType": "YulIdentifier", - "src": "6347:4:13" - } - ], - "functionName": { - "name": "div", - "nativeSrc": "6329:3:13", - "nodeType": "YulIdentifier", - "src": "6329:3:13" - }, - "nativeSrc": "6329:23:13", - "nodeType": "YulFunctionCall", - "src": "6329:23:13" - }, - { - "kind": "number", - "nativeSrc": "6354:1:13", - "nodeType": "YulLiteral", - "src": "6354:1:13", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6325:3:13", - "nodeType": "YulIdentifier", - "src": "6325:3:13" - }, - "nativeSrc": "6325:31:13", - "nodeType": "YulFunctionCall", - "src": "6325:31:13" - }, - "variableNames": [ - { - "name": "twos", - "nativeSrc": "6317:4:13", - "nodeType": "YulIdentifier", - "src": "6317:4:13" - } - ] - } - ] + "id": 2815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "3444:28:14", + "trueExpression": { + "hexValue": "30", + "id": 2806, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3453:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" }, - "evmVersion": "paris", - "externalReferences": [ - { - "declaration": 2630, - "isOffset": false, - "isSlot": false, - "src": "6073:11:13", - "valueSize": 1 - }, - { - "declaration": 2630, - "isOffset": false, - "isSlot": false, - "src": "6092:11:13", - "valueSize": 1 - }, - { - "declaration": 2636, - "isOffset": false, - "isSlot": false, - "src": "6177:5:13", - "valueSize": 1 - }, - { - "declaration": 2636, - "isOffset": false, - "isSlot": false, - "src": "6190:5:13", - "valueSize": 1 - }, - { - "declaration": 2667, - "isOffset": false, - "isSlot": false, - "src": "6105:4:13", - "valueSize": 1 - }, - { - "declaration": 2667, - "isOffset": false, - "isSlot": false, - "src": "6197:4:13", - "valueSize": 1 - }, - { - "declaration": 2667, - "isOffset": false, - "isSlot": false, - "src": "6317:4:13", - "valueSize": 1 - }, - { - "declaration": 2667, - "isOffset": false, - "isSlot": false, - "src": "6340:4:13", - "valueSize": 1 - }, + "value": "0" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2793, + "id": 2816, + "nodeType": "Return", + "src": "3437:35:14" + } + ] + }, + "documentation": { + "id": 2785, + "nodeType": "StructuredDocumentation", + "src": "2933:210:14", + "text": " @dev Returns the ceiling of the division of two numbers.\n This differs from standard division with `/` in that it rounds towards infinity instead\n of rounding towards zero." + }, + "id": 2818, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ceilDiv", + "nameLocation": "3157:7:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2790, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2787, + "mutability": "mutable", + "name": "a", + "nameLocation": "3173:1:14", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "3165:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2786, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3165:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2789, + "mutability": "mutable", + "name": "b", + "nameLocation": "3184:1:14", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "3176:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2788, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3176:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3164:22:14" + }, + "returnParameters": { + "id": 2793, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2792, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "3210:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2791, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3210:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3209:9:14" + }, + "scope": 3610, + "src": "3148:331:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2943, + "nodeType": "Block", + "src": "3901:4018:14", + "statements": [ + { + "id": 2942, + "nodeType": "UncheckedBlock", + "src": "3911:4002:14", + "statements": [ + { + "assignments": [ + 2831 + ], + "declarations": [ { - "declaration": 2667, - "isOffset": false, - "isSlot": false, - "src": "6347:4:13", - "valueSize": 1 + "constant": false, + "id": 2831, + "mutability": "mutable", + "name": "prod0", + "nameLocation": "4240:5:14", + "nodeType": "VariableDeclaration", + "scope": 2942, + "src": "4232:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2830, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4232:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" } ], - "id": 2675, - "nodeType": "InlineAssembly", - "src": "5999:371:13" - }, - { - "expression": { - "id": 2680, + "id": 2835, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2834, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { - "id": 2676, - "name": "prod0", + "leftExpression": { + "id": 2832, + "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2636, - "src": "6436:5:13", + "referencedDeclaration": 2821, + "src": "4248:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "Assignment", - "operator": "|=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2679, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2677, - "name": "prod1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2642, - "src": "6445:5:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 2678, - "name": "twos", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2667, - "src": "6453:4:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6445:12:13", + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2833, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2823, + "src": "4252:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6436:21:13", + "src": "4248:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2681, - "nodeType": "ExpressionStatement", - "src": "6436:21:13" + "nodeType": "VariableDeclarationStatement", + "src": "4232:21:14" }, { "assignments": [ - 2683 + 2837 ], "declarations": [ { "constant": false, - "id": 2683, + "id": 2837, "mutability": "mutable", - "name": "inverse", - "nameLocation": "6783:7:13", + "name": "prod1", + "nameLocation": "4320:5:14", "nodeType": "VariableDeclaration", - "scope": 2747, - "src": "6775:15:13", + "scope": 2942, + "src": "4312:13:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -35336,10 +36835,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2682, + "id": 2836, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6775:7:13", + "src": "4312:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -35348,548 +36847,1243 @@ "visibility": "internal" } ], - "id": 2690, - "initialValue": { + "id": 2838, + "nodeType": "VariableDeclarationStatement", + "src": "4312:13:14" + }, + { + "AST": { + "nativeSrc": "4392:122:14", + "nodeType": "YulBlock", + "src": "4392:122:14", + "statements": [ + { + "nativeSrc": "4410:30:14", + "nodeType": "YulVariableDeclaration", + "src": "4410:30:14", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "4427:1:14", + "nodeType": "YulIdentifier", + "src": "4427:1:14" + }, + { + "name": "y", + "nativeSrc": "4430:1:14", + "nodeType": "YulIdentifier", + "src": "4430:1:14" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4437:1:14", + "nodeType": "YulLiteral", + "src": "4437:1:14", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "4433:3:14", + "nodeType": "YulIdentifier", + "src": "4433:3:14" + }, + "nativeSrc": "4433:6:14", + "nodeType": "YulFunctionCall", + "src": "4433:6:14" + } + ], + "functionName": { + "name": "mulmod", + "nativeSrc": "4420:6:14", + "nodeType": "YulIdentifier", + "src": "4420:6:14" + }, + "nativeSrc": "4420:20:14", + "nodeType": "YulFunctionCall", + "src": "4420:20:14" + }, + "variables": [ + { + "name": "mm", + "nativeSrc": "4414:2:14", + "nodeType": "YulTypedName", + "src": "4414:2:14", + "type": "" + } + ] + }, + { + "nativeSrc": "4457:43:14", + "nodeType": "YulAssignment", + "src": "4457:43:14", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "mm", + "nativeSrc": "4474:2:14", + "nodeType": "YulIdentifier", + "src": "4474:2:14" + }, + { + "name": "prod0", + "nativeSrc": "4478:5:14", + "nodeType": "YulIdentifier", + "src": "4478:5:14" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4470:3:14", + "nodeType": "YulIdentifier", + "src": "4470:3:14" + }, + "nativeSrc": "4470:14:14", + "nodeType": "YulFunctionCall", + "src": "4470:14:14" + }, + { + "arguments": [ + { + "name": "mm", + "nativeSrc": "4489:2:14", + "nodeType": "YulIdentifier", + "src": "4489:2:14" + }, + { + "name": "prod0", + "nativeSrc": "4493:5:14", + "nodeType": "YulIdentifier", + "src": "4493:5:14" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "4486:2:14", + "nodeType": "YulIdentifier", + "src": "4486:2:14" + }, + "nativeSrc": "4486:13:14", + "nodeType": "YulFunctionCall", + "src": "4486:13:14" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4466:3:14", + "nodeType": "YulIdentifier", + "src": "4466:3:14" + }, + "nativeSrc": "4466:34:14", + "nodeType": "YulFunctionCall", + "src": "4466:34:14" + }, + "variableNames": [ + { + "name": "prod1", + "nativeSrc": "4457:5:14", + "nodeType": "YulIdentifier", + "src": "4457:5:14" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2831, + "isOffset": false, + "isSlot": false, + "src": "4478:5:14", + "valueSize": 1 + }, + { + "declaration": 2831, + "isOffset": false, + "isSlot": false, + "src": "4493:5:14", + "valueSize": 1 + }, + { + "declaration": 2837, + "isOffset": false, + "isSlot": false, + "src": "4457:5:14", + "valueSize": 1 + }, + { + "declaration": 2821, + "isOffset": false, + "isSlot": false, + "src": "4427:1:14", + "valueSize": 1 + }, + { + "declaration": 2823, + "isOffset": false, + "isSlot": false, + "src": "4430:1:14", + "valueSize": 1 + } + ], + "id": 2839, + "nodeType": "InlineAssembly", + "src": "4383:131:14" + }, + { + "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2689, + "id": 2842, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "components": [ - { + "id": 2840, + "name": "prod1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2837, + "src": "4595:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2841, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4604:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4595:10:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2848, + "nodeType": "IfStatement", + "src": "4591:368:14", + "trueBody": { + "id": 2847, + "nodeType": "Block", + "src": "4607:352:14", + "statements": [ + { + "expression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2686, + "id": 2845, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "hexValue": "33", - "id": 2684, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6794:1:13", + "id": 2843, + "name": "prod0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2831, + "src": "4925:5:14", "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } }, "nodeType": "BinaryOperation", - "operator": "*", + "operator": "/", "rightExpression": { - "id": 2685, + "id": 2844, "name": "denominator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2630, - "src": "6798:11:13", + "referencedDeclaration": 2825, + "src": "4933:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6794:15:13", + "src": "4925:19:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - } - ], - "id": 2687, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "6793:17:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + }, + "functionReturnParameters": 2829, + "id": 2846, + "nodeType": "Return", + "src": "4918:26:14" } - }, - "nodeType": "BinaryOperation", - "operator": "^", - "rightExpression": { - "hexValue": "32", - "id": 2688, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6813:1:13", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "6793:21:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6775:39:13" + ] + } }, { - "expression": { - "id": 2697, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2851, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { - "id": 2691, - "name": "inverse", + "leftExpression": { + "id": 2849, + "name": "denominator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2683, - "src": "7031:7:13", + "referencedDeclaration": 2825, + "src": "5065:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "Assignment", - "operator": "*=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "32", - "id": 2692, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7042:1:13", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2693, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2630, - "src": "7046:11:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 2694, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2683, - "src": "7060:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7046:21:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7042:25:13", - "typeDescriptions": { + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 2850, + "name": "prod1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2837, + "src": "5080:5:14", + "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7031:36:13", + "src": "5065:20:14", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 2698, - "nodeType": "ExpressionStatement", - "src": "7031:36:13" + "id": 2856, + "nodeType": "IfStatement", + "src": "5061:88:14", + "trueBody": { + "id": 2855, + "nodeType": "Block", + "src": "5087:62:14", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2852, + "name": "MathOverflowedMulDiv", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2562, + "src": "5112:20:14", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 2853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5112:22:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 2854, + "nodeType": "RevertStatement", + "src": "5105:29:14" + } + ] + } }, { - "expression": { - "id": 2705, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 2699, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2683, - "src": "7100:7:13", + "assignments": [ + 2858 + ], + "declarations": [ + { + "constant": false, + "id": 2858, + "mutability": "mutable", + "name": "remainder", + "nameLocation": "5412:9:14", + "nodeType": "VariableDeclaration", + "scope": 2942, + "src": "5404:17:14", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "*=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" }, - "id": 2704, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "32", - "id": 2700, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7111:1:13", + "typeName": { + "id": 2857, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5404:7:14", "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2859, + "nodeType": "VariableDeclarationStatement", + "src": "5404:17:14" + }, + { + "AST": { + "nativeSrc": "5444:291:14", + "nodeType": "YulBlock", + "src": "5444:291:14", + "statements": [ + { + "nativeSrc": "5513:38:14", + "nodeType": "YulAssignment", + "src": "5513:38:14", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "5533:1:14", + "nodeType": "YulIdentifier", + "src": "5533:1:14" + }, + { + "name": "y", + "nativeSrc": "5536:1:14", + "nodeType": "YulIdentifier", + "src": "5536:1:14" + }, + { + "name": "denominator", + "nativeSrc": "5539:11:14", + "nodeType": "YulIdentifier", + "src": "5539:11:14" + } + ], + "functionName": { + "name": "mulmod", + "nativeSrc": "5526:6:14", + "nodeType": "YulIdentifier", + "src": "5526:6:14" + }, + "nativeSrc": "5526:25:14", + "nodeType": "YulFunctionCall", + "src": "5526:25:14" }, - "id": 2703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2701, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2630, - "src": "7115:11:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "variableNames": [ + { + "name": "remainder", + "nativeSrc": "5513:9:14", + "nodeType": "YulIdentifier", + "src": "5513:9:14" } + ] + }, + { + "nativeSrc": "5633:41:14", + "nodeType": "YulAssignment", + "src": "5633:41:14", + "value": { + "arguments": [ + { + "name": "prod1", + "nativeSrc": "5646:5:14", + "nodeType": "YulIdentifier", + "src": "5646:5:14" + }, + { + "arguments": [ + { + "name": "remainder", + "nativeSrc": "5656:9:14", + "nodeType": "YulIdentifier", + "src": "5656:9:14" + }, + { + "name": "prod0", + "nativeSrc": "5667:5:14", + "nodeType": "YulIdentifier", + "src": "5667:5:14" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "5653:2:14", + "nodeType": "YulIdentifier", + "src": "5653:2:14" + }, + "nativeSrc": "5653:20:14", + "nodeType": "YulFunctionCall", + "src": "5653:20:14" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5642:3:14", + "nodeType": "YulIdentifier", + "src": "5642:3:14" + }, + "nativeSrc": "5642:32:14", + "nodeType": "YulFunctionCall", + "src": "5642:32:14" }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 2702, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2683, - "src": "7129:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "variableNames": [ + { + "name": "prod1", + "nativeSrc": "5633:5:14", + "nodeType": "YulIdentifier", + "src": "5633:5:14" } - }, - "src": "7115:21:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + ] }, - "src": "7111:25:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "nativeSrc": "5691:30:14", + "nodeType": "YulAssignment", + "src": "5691:30:14", + "value": { + "arguments": [ + { + "name": "prod0", + "nativeSrc": "5704:5:14", + "nodeType": "YulIdentifier", + "src": "5704:5:14" + }, + { + "name": "remainder", + "nativeSrc": "5711:9:14", + "nodeType": "YulIdentifier", + "src": "5711:9:14" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5700:3:14", + "nodeType": "YulIdentifier", + "src": "5700:3:14" + }, + "nativeSrc": "5700:21:14", + "nodeType": "YulFunctionCall", + "src": "5700:21:14" + }, + "variableNames": [ + { + "name": "prod0", + "nativeSrc": "5691:5:14", + "nodeType": "YulIdentifier", + "src": "5691:5:14" + } + ] } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2825, + "isOffset": false, + "isSlot": false, + "src": "5539:11:14", + "valueSize": 1 }, - "src": "7100:36:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + { + "declaration": 2831, + "isOffset": false, + "isSlot": false, + "src": "5667:5:14", + "valueSize": 1 + }, + { + "declaration": 2831, + "isOffset": false, + "isSlot": false, + "src": "5691:5:14", + "valueSize": 1 + }, + { + "declaration": 2831, + "isOffset": false, + "isSlot": false, + "src": "5704:5:14", + "valueSize": 1 + }, + { + "declaration": 2837, + "isOffset": false, + "isSlot": false, + "src": "5633:5:14", + "valueSize": 1 + }, + { + "declaration": 2837, + "isOffset": false, + "isSlot": false, + "src": "5646:5:14", + "valueSize": 1 + }, + { + "declaration": 2858, + "isOffset": false, + "isSlot": false, + "src": "5513:9:14", + "valueSize": 1 + }, + { + "declaration": 2858, + "isOffset": false, + "isSlot": false, + "src": "5656:9:14", + "valueSize": 1 + }, + { + "declaration": 2858, + "isOffset": false, + "isSlot": false, + "src": "5711:9:14", + "valueSize": 1 + }, + { + "declaration": 2821, + "isOffset": false, + "isSlot": false, + "src": "5533:1:14", + "valueSize": 1 + }, + { + "declaration": 2823, + "isOffset": false, + "isSlot": false, + "src": "5536:1:14", + "valueSize": 1 } - }, - "id": 2706, - "nodeType": "ExpressionStatement", - "src": "7100:36:13" + ], + "id": 2860, + "nodeType": "InlineAssembly", + "src": "5435:300:14" }, { - "expression": { - "id": 2713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 2707, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2683, - "src": "7170:7:13", + "assignments": [ + 2862 + ], + "declarations": [ + { + "constant": false, + "id": 2862, + "mutability": "mutable", + "name": "twos", + "nameLocation": "5947:4:14", + "nodeType": "VariableDeclaration", + "scope": 2942, + "src": "5939:12:14", + "stateVariable": false, + "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "*=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2712, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "32", - "id": 2708, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7181:1:13", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2709, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2630, - "src": "7185:11:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 2710, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2683, - "src": "7199:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7185:21:13", + "typeName": { + "id": 2861, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5939:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7181:25:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7170:36:13", - "typeDescriptions": { + "visibility": "internal" + } + ], + "id": 2869, + "initialValue": { + "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } - }, - "id": 2714, - "nodeType": "ExpressionStatement", - "src": "7170:36:13" - }, - { - "expression": { - "id": 2721, + }, + "id": 2868, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { - "id": 2715, - "name": "inverse", + "leftExpression": { + "id": 2863, + "name": "denominator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2683, - "src": "7240:7:13", + "referencedDeclaration": 2825, + "src": "5954:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "Assignment", - "operator": "*=", - "rightHandSide": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2720, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "hexValue": "32", - "id": 2716, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7251:1:13", - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2717, - "name": "denominator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2630, - "src": "7255:11:13", - "typeDescriptions": { + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "components": [ + { + "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "id": 2718, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2683, - "src": "7269:7:13", + }, + "id": 2866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "30", + "id": 2864, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5969:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 2865, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2825, + "src": "5973:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5969:15:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } - }, - "src": "7255:21:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" } - }, - "src": "7251:25:13", + ], + "id": 2867, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5968:17:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7240:36:13", + "src": "5954:31:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2722, - "nodeType": "ExpressionStatement", - "src": "7240:36:13" + "nodeType": "VariableDeclarationStatement", + "src": "5939:46:14" }, { - "expression": { - "id": 2729, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 2723, - "name": "inverse", + "AST": { + "nativeSrc": "6008:362:14", + "nodeType": "YulBlock", + "src": "6008:362:14", + "statements": [ + { + "nativeSrc": "6073:37:14", + "nodeType": "YulAssignment", + "src": "6073:37:14", + "value": { + "arguments": [ + { + "name": "denominator", + "nativeSrc": "6092:11:14", + "nodeType": "YulIdentifier", + "src": "6092:11:14" + }, + { + "name": "twos", + "nativeSrc": "6105:4:14", + "nodeType": "YulIdentifier", + "src": "6105:4:14" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "6088:3:14", + "nodeType": "YulIdentifier", + "src": "6088:3:14" + }, + "nativeSrc": "6088:22:14", + "nodeType": "YulFunctionCall", + "src": "6088:22:14" + }, + "variableNames": [ + { + "name": "denominator", + "nativeSrc": "6073:11:14", + "nodeType": "YulIdentifier", + "src": "6073:11:14" + } + ] + }, + { + "nativeSrc": "6177:25:14", + "nodeType": "YulAssignment", + "src": "6177:25:14", + "value": { + "arguments": [ + { + "name": "prod0", + "nativeSrc": "6190:5:14", + "nodeType": "YulIdentifier", + "src": "6190:5:14" + }, + { + "name": "twos", + "nativeSrc": "6197:4:14", + "nodeType": "YulIdentifier", + "src": "6197:4:14" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "6186:3:14", + "nodeType": "YulIdentifier", + "src": "6186:3:14" + }, + "nativeSrc": "6186:16:14", + "nodeType": "YulFunctionCall", + "src": "6186:16:14" + }, + "variableNames": [ + { + "name": "prod0", + "nativeSrc": "6177:5:14", + "nodeType": "YulIdentifier", + "src": "6177:5:14" + } + ] + }, + { + "nativeSrc": "6317:39:14", + "nodeType": "YulAssignment", + "src": "6317:39:14", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6337:1:14", + "nodeType": "YulLiteral", + "src": "6337:1:14", + "type": "", + "value": "0" + }, + { + "name": "twos", + "nativeSrc": "6340:4:14", + "nodeType": "YulIdentifier", + "src": "6340:4:14" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "6333:3:14", + "nodeType": "YulIdentifier", + "src": "6333:3:14" + }, + "nativeSrc": "6333:12:14", + "nodeType": "YulFunctionCall", + "src": "6333:12:14" + }, + { + "name": "twos", + "nativeSrc": "6347:4:14", + "nodeType": "YulIdentifier", + "src": "6347:4:14" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "6329:3:14", + "nodeType": "YulIdentifier", + "src": "6329:3:14" + }, + "nativeSrc": "6329:23:14", + "nodeType": "YulFunctionCall", + "src": "6329:23:14" + }, + { + "kind": "number", + "nativeSrc": "6354:1:14", + "nodeType": "YulLiteral", + "src": "6354:1:14", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6325:3:14", + "nodeType": "YulIdentifier", + "src": "6325:3:14" + }, + "nativeSrc": "6325:31:14", + "nodeType": "YulFunctionCall", + "src": "6325:31:14" + }, + "variableNames": [ + { + "name": "twos", + "nativeSrc": "6317:4:14", + "nodeType": "YulIdentifier", + "src": "6317:4:14" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2825, + "isOffset": false, + "isSlot": false, + "src": "6073:11:14", + "valueSize": 1 + }, + { + "declaration": 2825, + "isOffset": false, + "isSlot": false, + "src": "6092:11:14", + "valueSize": 1 + }, + { + "declaration": 2831, + "isOffset": false, + "isSlot": false, + "src": "6177:5:14", + "valueSize": 1 + }, + { + "declaration": 2831, + "isOffset": false, + "isSlot": false, + "src": "6190:5:14", + "valueSize": 1 + }, + { + "declaration": 2862, + "isOffset": false, + "isSlot": false, + "src": "6105:4:14", + "valueSize": 1 + }, + { + "declaration": 2862, + "isOffset": false, + "isSlot": false, + "src": "6197:4:14", + "valueSize": 1 + }, + { + "declaration": 2862, + "isOffset": false, + "isSlot": false, + "src": "6317:4:14", + "valueSize": 1 + }, + { + "declaration": 2862, + "isOffset": false, + "isSlot": false, + "src": "6340:4:14", + "valueSize": 1 + }, + { + "declaration": 2862, + "isOffset": false, + "isSlot": false, + "src": "6347:4:14", + "valueSize": 1 + } + ], + "id": 2870, + "nodeType": "InlineAssembly", + "src": "5999:371:14" + }, + { + "expression": { + "id": 2875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2871, + "name": "prod0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2831, + "src": "6436:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2872, + "name": "prod1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2837, + "src": "6445:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2873, + "name": "twos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2862, + "src": "6453:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6445:12:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6436:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2876, + "nodeType": "ExpressionStatement", + "src": "6436:21:14" + }, + { + "assignments": [ + 2878 + ], + "declarations": [ + { + "constant": false, + "id": 2878, + "mutability": "mutable", + "name": "inverse", + "nameLocation": "6783:7:14", + "nodeType": "VariableDeclaration", + "scope": 2942, + "src": "6775:15:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2877, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6775:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2885, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "33", + "id": 2879, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6794:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2880, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2825, + "src": "6798:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6794:15:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2882, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6793:17:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "hexValue": "32", + "id": 2883, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6813:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "6793:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6775:39:14" + }, + { + "expression": { + "id": 2892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2886, + "name": "inverse", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2683, - "src": "7310:7:13", + "referencedDeclaration": 2878, + "src": "7031:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -35902,21 +38096,21 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2728, + "id": 2891, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "32", - "id": 2724, + "id": 2887, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7321:1:13", + "src": "7042:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" @@ -35930,18 +38124,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2727, + "id": 2890, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2725, + "id": 2888, "name": "denominator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2630, - "src": "7325:11:13", + "referencedDeclaration": 2825, + "src": "7046:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -35950,53 +38144,53 @@ "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { - "id": 2726, + "id": 2889, "name": "inverse", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2683, - "src": "7339:7:13", + "referencedDeclaration": 2878, + "src": "7060:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7325:21:13", + "src": "7046:21:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7321:25:13", + "src": "7042:25:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7310:36:13", + "src": "7031:36:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2730, + "id": 2893, "nodeType": "ExpressionStatement", - "src": "7310:36:13" + "src": "7031:36:14" }, { "expression": { - "id": 2737, + "id": 2900, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2731, + "id": 2894, "name": "inverse", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2683, - "src": "7381:7:13", + "referencedDeclaration": 2878, + "src": "7100:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36009,21 +38203,21 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2736, + "id": 2899, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "32", - "id": 2732, + "id": 2895, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7392:1:13", + "src": "7111:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" @@ -36037,18 +38231,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2735, + "id": 2898, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2733, + "id": 2896, "name": "denominator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2630, - "src": "7396:11:13", + "referencedDeclaration": 2825, + "src": "7115:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36057,171 +38251,599 @@ "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { - "id": 2734, + "id": 2897, "name": "inverse", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2683, - "src": "7410:7:13", + "referencedDeclaration": 2878, + "src": "7129:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7396:21:13", + "src": "7115:21:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7392:25:13", + "src": "7111:25:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7381:36:13", + "src": "7100:36:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2738, + "id": 2901, "nodeType": "ExpressionStatement", - "src": "7381:36:13" + "src": "7100:36:14" }, { "expression": { - "id": 2743, + "id": 2908, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2739, - "name": "result", + "id": 2902, + "name": "inverse", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2633, - "src": "7851:6:13", + "referencedDeclaration": 2878, + "src": "7170:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", - "operator": "=", + "operator": "*=", "rightHandSide": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2742, + "id": 2907, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2740, - "name": "prod0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2636, - "src": "7860:5:13", + "hexValue": "32", + "id": 2903, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7181:1:14", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" }, "nodeType": "BinaryOperation", - "operator": "*", + "operator": "-", "rightExpression": { - "id": 2741, - "name": "inverse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2683, - "src": "7868:7:13", + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2904, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2825, + "src": "7185:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2905, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7199:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7185:21:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7860:15:13", + "src": "7181:25:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7851:24:13", + "src": "7170:36:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2744, + "id": 2909, "nodeType": "ExpressionStatement", - "src": "7851:24:13" + "src": "7170:36:14" }, { "expression": { - "id": 2745, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2633, - "src": "7896:6:13", + "id": 2916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2910, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7240:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7251:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2912, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2825, + "src": "7255:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2913, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7269:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7255:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7251:25:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7240:36:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2634, - "id": 2746, - "nodeType": "Return", - "src": "7889:13:13" - } - ] - } - ] - }, - "documentation": { - "id": 2624, - "nodeType": "StructuredDocumentation", - "src": "3485:313:13", - "text": " @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n denominator == 0.\n @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n Uniswap Labs also under MIT license." - }, - "id": 2749, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mulDiv", - "nameLocation": "3812:6:13", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2631, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2626, - "mutability": "mutable", - "name": "x", - "nameLocation": "3827:1:13", - "nodeType": "VariableDeclaration", - "scope": 2749, - "src": "3819:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2625, - "name": "uint256", + "id": 2917, + "nodeType": "ExpressionStatement", + "src": "7240:36:14" + }, + { + "expression": { + "id": 2924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2918, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7310:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7321:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2920, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2825, + "src": "7325:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2921, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7339:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7325:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7321:25:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7310:36:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2925, + "nodeType": "ExpressionStatement", + "src": "7310:36:14" + }, + { + "expression": { + "id": 2932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2926, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7381:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 2927, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7392:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2930, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2928, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2825, + "src": "7396:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2929, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7410:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7396:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7392:25:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7381:36:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2933, + "nodeType": "ExpressionStatement", + "src": "7381:36:14" + }, + { + "expression": { + "id": 2938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2934, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2828, + "src": "7851:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2935, + "name": "prod0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2831, + "src": "7860:5:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 2936, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2878, + "src": "7868:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7860:15:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7851:24:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2939, + "nodeType": "ExpressionStatement", + "src": "7851:24:14" + }, + { + "expression": { + "id": 2940, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2828, + "src": "7896:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2829, + "id": 2941, + "nodeType": "Return", + "src": "7889:13:14" + } + ] + } + ] + }, + "documentation": { + "id": 2819, + "nodeType": "StructuredDocumentation", + "src": "3485:313:14", + "text": " @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n denominator == 0.\n @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n Uniswap Labs also under MIT license." + }, + "id": 2944, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mulDiv", + "nameLocation": "3812:6:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2826, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2821, + "mutability": "mutable", + "name": "x", + "nameLocation": "3827:1:14", + "nodeType": "VariableDeclaration", + "scope": 2944, + "src": "3819:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2820, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3819:7:13", + "src": "3819:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36231,13 +38853,13 @@ }, { "constant": false, - "id": 2628, + "id": 2823, "mutability": "mutable", "name": "y", - "nameLocation": "3838:1:13", + "nameLocation": "3838:1:14", "nodeType": "VariableDeclaration", - "scope": 2749, - "src": "3830:9:13", + "scope": 2944, + "src": "3830:9:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -36245,10 +38867,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2627, + "id": 2822, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3830:7:13", + "src": "3830:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36258,13 +38880,13 @@ }, { "constant": false, - "id": 2630, + "id": 2825, "mutability": "mutable", "name": "denominator", - "nameLocation": "3849:11:13", + "nameLocation": "3849:11:14", "nodeType": "VariableDeclaration", - "scope": 2749, - "src": "3841:19:13", + "scope": 2944, + "src": "3841:19:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -36272,10 +38894,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2629, + "id": 2824, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3841:7:13", + "src": "3841:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36284,21 +38906,21 @@ "visibility": "internal" } ], - "src": "3818:43:13" + "src": "3818:43:14" }, "returnParameters": { - "id": 2634, + "id": 2829, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2633, + "id": 2828, "mutability": "mutable", "name": "result", - "nameLocation": "3893:6:13", + "nameLocation": "3893:6:14", "nodeType": "VariableDeclaration", - "scope": 2749, - "src": "3885:14:13", + "scope": 2944, + "src": "3885:14:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -36306,10 +38928,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2632, + "id": 2827, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3885:7:13", + "src": "3885:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36318,34 +38940,34 @@ "visibility": "internal" } ], - "src": "3884:16:13" + "src": "3884:16:14" }, - "scope": 3415, - "src": "3803:4116:13", + "scope": 3610, + "src": "3803:4116:14", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2791, + "id": 2986, "nodeType": "Block", - "src": "8161:192:13", + "src": "8161:192:14", "statements": [ { "assignments": [ - 2765 + 2960 ], "declarations": [ { "constant": false, - "id": 2765, + "id": 2960, "mutability": "mutable", "name": "result", - "nameLocation": "8179:6:13", + "nameLocation": "8179:6:14", "nodeType": "VariableDeclaration", - "scope": 2791, - "src": "8171:14:13", + "scope": 2986, + "src": "8171:14:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -36353,10 +38975,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2764, + "id": 2959, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8171:7:13", + "src": "8171:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36365,40 +38987,40 @@ "visibility": "internal" } ], - "id": 2771, + "id": 2966, "initialValue": { "arguments": [ { - "id": 2767, + "id": 2962, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2752, - "src": "8195:1:13", + "referencedDeclaration": 2947, + "src": "8195:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 2768, + "id": 2963, "name": "y", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2754, - "src": "8198:1:13", + "referencedDeclaration": 2949, + "src": "8198:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 2769, + "id": 2964, "name": "denominator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2756, - "src": "8201:11:13", + "referencedDeclaration": 2951, + "src": "8201:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36420,21 +39042,21 @@ "typeString": "uint256" } ], - "id": 2766, + "id": 2961, "name": "mulDiv", "nodeType": "Identifier", "overloadedDeclarations": [ - 2749, - 2792 + 2944, + 2987 ], - "referencedDeclaration": 2749, - "src": "8188:6:13", + "referencedDeclaration": 2944, + "src": "8188:6:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, - "id": 2770, + "id": 2965, "isConstant": false, "isLValue": false, "isPure": false, @@ -36443,7 +39065,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8188:25:13", + "src": "8188:25:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -36451,7 +39073,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "8171:42:13" + "src": "8171:42:14" }, { "condition": { @@ -36459,7 +39081,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2782, + "id": 2977, "isConstant": false, "isLValue": false, "isPure": false, @@ -36467,14 +39089,14 @@ "leftExpression": { "arguments": [ { - "id": 2773, + "id": 2968, "name": "rounding", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2759, - "src": "8244:8:13", + "referencedDeclaration": 2954, + "src": "8244:8:14", "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" } } @@ -36482,22 +39104,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" } ], - "id": 2772, + "id": 2967, "name": "unsignedRoundsUp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3414, - "src": "8227:16:13", + "referencedDeclaration": 3609, + "src": "8227:16:14", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$2372_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$2567_$returns$_t_bool_$", "typeString": "function (enum Math.Rounding) pure returns (bool)" } }, - "id": 2774, + "id": 2969, "isConstant": false, "isLValue": false, "isPure": false, @@ -36506,7 +39128,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8227:26:13", + "src": "8227:26:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -36520,7 +39142,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2781, + "id": 2976, "isConstant": false, "isLValue": false, "isPure": false, @@ -36528,36 +39150,36 @@ "leftExpression": { "arguments": [ { - "id": 2776, + "id": 2971, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2752, - "src": "8264:1:13", + "referencedDeclaration": 2947, + "src": "8264:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 2777, + "id": 2972, "name": "y", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2754, - "src": "8267:1:13", + "referencedDeclaration": 2949, + "src": "8267:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 2778, + "id": 2973, "name": "denominator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2756, - "src": "8270:11:13", + "referencedDeclaration": 2951, + "src": "8270:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36579,18 +39201,18 @@ "typeString": "uint256" } ], - "id": 2775, + "id": 2970, "name": "mulmod", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -16, - "src": "8257:6:13", + "src": "8257:6:14", "typeDescriptions": { "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" } }, - "id": 2779, + "id": 2974, "isConstant": false, "isLValue": false, "isPure": false, @@ -36599,7 +39221,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "8257:25:13", + "src": "8257:25:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -36610,54 +39232,54 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 2780, + "id": 2975, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8285:1:13", + "src": "8285:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "8257:29:13", + "src": "8257:29:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "8227:59:13", + "src": "8227:59:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2788, + "id": 2983, "nodeType": "IfStatement", - "src": "8223:101:13", + "src": "8223:101:14", "trueBody": { - "id": 2787, + "id": 2982, "nodeType": "Block", - "src": "8288:36:13", + "src": "8288:36:14", "statements": [ { "expression": { - "id": 2785, + "id": 2980, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2783, + "id": 2978, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2765, - "src": "8302:6:13", + "referencedDeclaration": 2960, + "src": "8302:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36667,79 +39289,79 @@ "operator": "+=", "rightHandSide": { "hexValue": "31", - "id": 2784, + "id": 2979, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8312:1:13", + "src": "8312:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "8302:11:13", + "src": "8302:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2786, + "id": 2981, "nodeType": "ExpressionStatement", - "src": "8302:11:13" + "src": "8302:11:14" } ] } }, { "expression": { - "id": 2789, + "id": 2984, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2765, - "src": "8340:6:13", + "referencedDeclaration": 2960, + "src": "8340:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2763, - "id": 2790, + "functionReturnParameters": 2958, + "id": 2985, "nodeType": "Return", - "src": "8333:13:13" + "src": "8333:13:14" } ] }, "documentation": { - "id": 2750, + "id": 2945, "nodeType": "StructuredDocumentation", - "src": "7925:121:13", + "src": "7925:121:14", "text": " @notice Calculates x * y / denominator with full precision, following the selected rounding direction." }, - "id": 2792, + "id": 2987, "implemented": true, "kind": "function", "modifiers": [], "name": "mulDiv", - "nameLocation": "8060:6:13", + "nameLocation": "8060:6:14", "nodeType": "FunctionDefinition", "parameters": { - "id": 2760, + "id": 2955, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2752, + "id": 2947, "mutability": "mutable", "name": "x", - "nameLocation": "8075:1:13", + "nameLocation": "8075:1:14", "nodeType": "VariableDeclaration", - "scope": 2792, - "src": "8067:9:13", + "scope": 2987, + "src": "8067:9:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -36747,10 +39369,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2751, + "id": 2946, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8067:7:13", + "src": "8067:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36760,13 +39382,13 @@ }, { "constant": false, - "id": 2754, + "id": 2949, "mutability": "mutable", "name": "y", - "nameLocation": "8086:1:13", + "nameLocation": "8086:1:14", "nodeType": "VariableDeclaration", - "scope": 2792, - "src": "8078:9:13", + "scope": 2987, + "src": "8078:9:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -36774,10 +39396,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2753, + "id": 2948, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8078:7:13", + "src": "8078:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36787,13 +39409,13 @@ }, { "constant": false, - "id": 2756, + "id": 2951, "mutability": "mutable", "name": "denominator", - "nameLocation": "8097:11:13", + "nameLocation": "8097:11:14", "nodeType": "VariableDeclaration", - "scope": 2792, - "src": "8089:19:13", + "scope": 2987, + "src": "8089:19:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -36801,10 +39423,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2755, + "id": 2950, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8089:7:13", + "src": "8089:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36814,57 +39436,57 @@ }, { "constant": false, - "id": 2759, + "id": 2954, "mutability": "mutable", "name": "rounding", - "nameLocation": "8119:8:13", + "nameLocation": "8119:8:14", "nodeType": "VariableDeclaration", - "scope": 2792, - "src": "8110:17:13", + "scope": 2987, + "src": "8110:17:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" }, "typeName": { - "id": 2758, + "id": 2953, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2757, + "id": 2952, "name": "Rounding", "nameLocations": [ - "8110:8:13" + "8110:8:14" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2372, - "src": "8110:8:13" + "referencedDeclaration": 2567, + "src": "8110:8:14" }, - "referencedDeclaration": 2372, - "src": "8110:8:13", + "referencedDeclaration": 2567, + "src": "8110:8:14", "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" } }, "visibility": "internal" } ], - "src": "8066:62:13" + "src": "8066:62:14" }, "returnParameters": { - "id": 2763, + "id": 2958, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2762, + "id": 2957, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2792, - "src": "8152:7:13", + "scope": 2987, + "src": "8152:7:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -36872,10 +39494,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2761, + "id": 2956, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8152:7:13", + "src": "8152:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36884,19 +39506,19 @@ "visibility": "internal" } ], - "src": "8151:9:13" + "src": "8151:9:14" }, - "scope": 3415, - "src": "8051:302:13", + "scope": 3610, + "src": "8051:302:14", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2903, + "id": 3098, "nodeType": "Block", - "src": "8644:1585:13", + "src": "8644:1585:14", "statements": [ { "condition": { @@ -36904,18 +39526,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2802, + "id": 2997, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2800, + "id": 2995, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2795, - "src": "8658:1:13", + "referencedDeclaration": 2990, + "src": "8658:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36925,73 +39547,73 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 2801, + "id": 2996, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8663:1:13", + "src": "8663:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "8658:6:13", + "src": "8658:6:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2806, + "id": 3001, "nodeType": "IfStatement", - "src": "8654:45:13", + "src": "8654:45:14", "trueBody": { - "id": 2805, + "id": 3000, "nodeType": "Block", - "src": "8666:33:13", + "src": "8666:33:14", "statements": [ { "expression": { "hexValue": "30", - "id": 2803, + "id": 2998, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8687:1:13", + "src": "8687:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "functionReturnParameters": 2799, - "id": 2804, + "functionReturnParameters": 2994, + "id": 2999, "nodeType": "Return", - "src": "8680:8:13" + "src": "8680:8:14" } ] } }, { "assignments": [ - 2808 + 3003 ], "declarations": [ { "constant": false, - "id": 2808, + "id": 3003, "mutability": "mutable", "name": "result", - "nameLocation": "9386:6:13", + "nameLocation": "9386:6:14", "nodeType": "VariableDeclaration", - "scope": 2903, - "src": "9378:14:13", + "scope": 3098, + "src": "9378:14:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -36999,10 +39621,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2807, + "id": 3002, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9378:7:13", + "src": "9378:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37011,27 +39633,27 @@ "visibility": "internal" } ], - "id": 2817, + "id": 3012, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2816, + "id": 3011, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "31", - "id": 2809, + "id": 3004, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9395:1:13", + "src": "9395:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -37047,7 +39669,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2814, + "id": 3009, "isConstant": false, "isLValue": false, "isPure": false, @@ -37055,12 +39677,12 @@ "leftExpression": { "arguments": [ { - "id": 2811, + "id": 3006, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2795, - "src": "9406:1:13", + "referencedDeclaration": 2990, + "src": "9406:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37074,21 +39696,21 @@ "typeString": "uint256" } ], - "id": 2810, + "id": 3005, "name": "log2", "nodeType": "Identifier", "overloadedDeclarations": [ - 3071, - 3106 + 3266, + 3301 ], - "referencedDeclaration": 3071, - "src": "9401:4:13", + "referencedDeclaration": 3266, + "src": "9401:4:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256) pure returns (uint256)" } }, - "id": 2812, + "id": 3007, "isConstant": false, "isLValue": false, "isPure": false, @@ -37097,7 +39719,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "9401:7:13", + "src": "9401:7:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -37108,68 +39730,68 @@ "operator": ">>", "rightExpression": { "hexValue": "31", - "id": 2813, + "id": 3008, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9412:1:13", + "src": "9412:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "9401:12:13", + "src": "9401:12:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 2815, + "id": 3010, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "9400:14:13", + "src": "9400:14:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9395:19:13", + "src": "9395:19:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "9378:36:13" + "src": "9378:36:14" }, { - "id": 2902, + "id": 3097, "nodeType": "UncheckedBlock", - "src": "9815:408:13", + "src": "9815:408:14", "statements": [ { "expression": { - "id": 2827, + "id": 3022, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2818, + "id": 3013, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "9839:6:13", + "referencedDeclaration": 3003, + "src": "9839:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37182,7 +39804,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2826, + "id": 3021, "isConstant": false, "isLValue": false, "isPure": false, @@ -37194,18 +39816,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2823, + "id": 3018, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2819, + "id": 3014, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "9849:6:13", + "referencedDeclaration": 3003, + "src": "9849:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37218,18 +39840,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2822, + "id": 3017, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2820, + "id": 3015, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2795, - "src": "9858:1:13", + "referencedDeclaration": 2990, + "src": "9858:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37238,38 +39860,38 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 2821, + "id": 3016, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "9862:6:13", + "referencedDeclaration": 3003, + "src": "9862:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9858:10:13", + "src": "9858:10:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9849:19:13", + "src": "9849:19:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 2824, + "id": 3019, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "9848:21:13", + "src": "9848:21:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37279,50 +39901,50 @@ "operator": ">>", "rightExpression": { "hexValue": "31", - "id": 2825, + "id": 3020, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9873:1:13", + "src": "9873:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "9848:26:13", + "src": "9848:26:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9839:35:13", + "src": "9839:35:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2828, + "id": 3023, "nodeType": "ExpressionStatement", - "src": "9839:35:13" + "src": "9839:35:14" }, { "expression": { - "id": 2838, + "id": 3033, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2829, + "id": 3024, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "9888:6:13", + "referencedDeclaration": 3003, + "src": "9888:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37335,7 +39957,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2837, + "id": 3032, "isConstant": false, "isLValue": false, "isPure": false, @@ -37347,18 +39969,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2834, + "id": 3029, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2830, + "id": 3025, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "9898:6:13", + "referencedDeclaration": 3003, + "src": "9898:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37371,18 +39993,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2833, + "id": 3028, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2831, + "id": 3026, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2795, - "src": "9907:1:13", + "referencedDeclaration": 2990, + "src": "9907:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37391,38 +40013,38 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 2832, + "id": 3027, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "9911:6:13", + "referencedDeclaration": 3003, + "src": "9911:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9907:10:13", + "src": "9907:10:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9898:19:13", + "src": "9898:19:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 2835, + "id": 3030, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "9897:21:13", + "src": "9897:21:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37432,50 +40054,50 @@ "operator": ">>", "rightExpression": { "hexValue": "31", - "id": 2836, + "id": 3031, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9922:1:13", + "src": "9922:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "9897:26:13", + "src": "9897:26:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9888:35:13", + "src": "9888:35:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2839, + "id": 3034, "nodeType": "ExpressionStatement", - "src": "9888:35:13" + "src": "9888:35:14" }, { "expression": { - "id": 2849, + "id": 3044, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2840, + "id": 3035, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "9937:6:13", + "referencedDeclaration": 3003, + "src": "9937:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37488,7 +40110,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2848, + "id": 3043, "isConstant": false, "isLValue": false, "isPure": false, @@ -37500,18 +40122,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2845, + "id": 3040, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2841, + "id": 3036, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "9947:6:13", + "referencedDeclaration": 3003, + "src": "9947:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37524,18 +40146,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2844, + "id": 3039, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2842, + "id": 3037, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2795, - "src": "9956:1:13", + "referencedDeclaration": 2990, + "src": "9956:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37544,38 +40166,38 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 2843, + "id": 3038, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "9960:6:13", + "referencedDeclaration": 3003, + "src": "9960:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9956:10:13", + "src": "9956:10:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9947:19:13", + "src": "9947:19:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 2846, + "id": 3041, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "9946:21:13", + "src": "9946:21:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37585,50 +40207,50 @@ "operator": ">>", "rightExpression": { "hexValue": "31", - "id": 2847, + "id": 3042, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9971:1:13", + "src": "9971:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "9946:26:13", + "src": "9946:26:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9937:35:13", + "src": "9937:35:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2850, + "id": 3045, "nodeType": "ExpressionStatement", - "src": "9937:35:13" + "src": "9937:35:14" }, { "expression": { - "id": 2860, + "id": 3055, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2851, + "id": 3046, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "9986:6:13", + "referencedDeclaration": 3003, + "src": "9986:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37641,7 +40263,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2859, + "id": 3054, "isConstant": false, "isLValue": false, "isPure": false, @@ -37653,18 +40275,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2856, + "id": 3051, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2852, + "id": 3047, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "9996:6:13", + "referencedDeclaration": 3003, + "src": "9996:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37677,18 +40299,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2855, + "id": 3050, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2853, + "id": 3048, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2795, - "src": "10005:1:13", + "referencedDeclaration": 2990, + "src": "10005:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37697,38 +40319,38 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 2854, + "id": 3049, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "10009:6:13", + "referencedDeclaration": 3003, + "src": "10009:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10005:10:13", + "src": "10005:10:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9996:19:13", + "src": "9996:19:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 2857, + "id": 3052, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "9995:21:13", + "src": "9995:21:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37738,50 +40360,50 @@ "operator": ">>", "rightExpression": { "hexValue": "31", - "id": 2858, + "id": 3053, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10020:1:13", + "src": "10020:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "9995:26:13", + "src": "9995:26:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9986:35:13", + "src": "9986:35:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2861, + "id": 3056, "nodeType": "ExpressionStatement", - "src": "9986:35:13" + "src": "9986:35:14" }, { "expression": { - "id": 2871, + "id": 3066, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2862, + "id": 3057, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "10035:6:13", + "referencedDeclaration": 3003, + "src": "10035:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37794,7 +40416,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2870, + "id": 3065, "isConstant": false, "isLValue": false, "isPure": false, @@ -37806,18 +40428,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2867, + "id": 3062, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2863, + "id": 3058, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "10045:6:13", + "referencedDeclaration": 3003, + "src": "10045:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37830,18 +40452,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2866, + "id": 3061, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2864, + "id": 3059, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2795, - "src": "10054:1:13", + "referencedDeclaration": 2990, + "src": "10054:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37850,38 +40472,38 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 2865, + "id": 3060, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "10058:6:13", + "referencedDeclaration": 3003, + "src": "10058:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10054:10:13", + "src": "10054:10:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10045:19:13", + "src": "10045:19:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 2868, + "id": 3063, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "10044:21:13", + "src": "10044:21:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37891,50 +40513,50 @@ "operator": ">>", "rightExpression": { "hexValue": "31", - "id": 2869, + "id": 3064, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10069:1:13", + "src": "10069:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "10044:26:13", + "src": "10044:26:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10035:35:13", + "src": "10035:35:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2872, + "id": 3067, "nodeType": "ExpressionStatement", - "src": "10035:35:13" + "src": "10035:35:14" }, { "expression": { - "id": 2882, + "id": 3077, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2873, + "id": 3068, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "10084:6:13", + "referencedDeclaration": 3003, + "src": "10084:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37947,7 +40569,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2881, + "id": 3076, "isConstant": false, "isLValue": false, "isPure": false, @@ -37959,18 +40581,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2878, + "id": 3073, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2874, + "id": 3069, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "10094:6:13", + "referencedDeclaration": 3003, + "src": "10094:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37983,18 +40605,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2877, + "id": 3072, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2875, + "id": 3070, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2795, - "src": "10103:1:13", + "referencedDeclaration": 2990, + "src": "10103:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38003,38 +40625,38 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 2876, + "id": 3071, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "10107:6:13", + "referencedDeclaration": 3003, + "src": "10107:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10103:10:13", + "src": "10103:10:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10094:19:13", + "src": "10094:19:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 2879, + "id": 3074, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "10093:21:13", + "src": "10093:21:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38044,50 +40666,50 @@ "operator": ">>", "rightExpression": { "hexValue": "31", - "id": 2880, + "id": 3075, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10118:1:13", + "src": "10118:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "10093:26:13", + "src": "10093:26:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10084:35:13", + "src": "10084:35:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2883, + "id": 3078, "nodeType": "ExpressionStatement", - "src": "10084:35:13" + "src": "10084:35:14" }, { "expression": { - "id": 2893, + "id": 3088, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2884, + "id": 3079, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "10133:6:13", + "referencedDeclaration": 3003, + "src": "10133:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38100,7 +40722,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2892, + "id": 3087, "isConstant": false, "isLValue": false, "isPure": false, @@ -38112,18 +40734,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2889, + "id": 3084, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2885, + "id": 3080, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "10143:6:13", + "referencedDeclaration": 3003, + "src": "10143:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38136,18 +40758,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2888, + "id": 3083, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2886, + "id": 3081, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2795, - "src": "10152:1:13", + "referencedDeclaration": 2990, + "src": "10152:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38156,38 +40778,38 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 2887, + "id": 3082, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "10156:6:13", + "referencedDeclaration": 3003, + "src": "10156:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10152:10:13", + "src": "10152:10:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10143:19:13", + "src": "10143:19:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 2890, + "id": 3085, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "10142:21:13", + "src": "10142:21:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38197,46 +40819,46 @@ "operator": ">>", "rightExpression": { "hexValue": "31", - "id": 2891, + "id": 3086, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10167:1:13", + "src": "10167:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "10142:26:13", + "src": "10142:26:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10133:35:13", + "src": "10133:35:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2894, + "id": 3089, "nodeType": "ExpressionStatement", - "src": "10133:35:13" + "src": "10133:35:14" }, { "expression": { "arguments": [ { - "id": 2896, + "id": 3091, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "10193:6:13", + "referencedDeclaration": 3003, + "src": "10193:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38247,18 +40869,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2899, + "id": 3094, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2897, + "id": 3092, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2795, - "src": "10201:1:13", + "referencedDeclaration": 2990, + "src": "10201:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38267,18 +40889,18 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 2898, + "id": 3093, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2808, - "src": "10205:6:13", + "referencedDeclaration": 3003, + "src": "10205:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10201:10:13", + "src": "10201:10:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38296,18 +40918,18 @@ "typeString": "uint256" } ], - "id": 2895, + "id": 3090, "name": "min", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2566, - "src": "10189:3:13", + "referencedDeclaration": 2761, + "src": "10189:3:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 2900, + "id": 3095, "isConstant": false, "isLValue": false, "isPure": false, @@ -38316,48 +40938,48 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10189:23:13", + "src": "10189:23:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2799, - "id": 2901, + "functionReturnParameters": 2994, + "id": 3096, "nodeType": "Return", - "src": "10182:30:13" + "src": "10182:30:14" } ] } ] }, "documentation": { - "id": 2793, + "id": 2988, "nodeType": "StructuredDocumentation", - "src": "8359:223:13", + "src": "8359:223:14", "text": " @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\n towards zero.\n Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11)." }, - "id": 2904, + "id": 3099, "implemented": true, "kind": "function", "modifiers": [], "name": "sqrt", - "nameLocation": "8596:4:13", + "nameLocation": "8596:4:14", "nodeType": "FunctionDefinition", "parameters": { - "id": 2796, + "id": 2991, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2795, + "id": 2990, "mutability": "mutable", "name": "a", - "nameLocation": "8609:1:13", + "nameLocation": "8609:1:14", "nodeType": "VariableDeclaration", - "scope": 2904, - "src": "8601:9:13", + "scope": 3099, + "src": "8601:9:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -38365,10 +40987,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2794, + "id": 2989, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8601:7:13", + "src": "8601:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38377,21 +40999,21 @@ "visibility": "internal" } ], - "src": "8600:11:13" + "src": "8600:11:14" }, "returnParameters": { - "id": 2799, + "id": 2994, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2798, + "id": 2993, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2904, - "src": "8635:7:13", + "scope": 3099, + "src": "8635:7:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -38399,10 +41021,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2797, + "id": 2992, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8635:7:13", + "src": "8635:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38411,39 +41033,39 @@ "visibility": "internal" } ], - "src": "8634:9:13" + "src": "8634:9:14" }, - "scope": 3415, - "src": "8587:1642:13", + "scope": 3610, + "src": "8587:1642:14", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2938, + "id": 3133, "nodeType": "Block", - "src": "10405:164:13", + "src": "10405:164:14", "statements": [ { - "id": 2937, + "id": 3132, "nodeType": "UncheckedBlock", - "src": "10415:148:13", + "src": "10415:148:14", "statements": [ { "assignments": [ - 2916 + 3111 ], "declarations": [ { "constant": false, - "id": 2916, + "id": 3111, "mutability": "mutable", "name": "result", - "nameLocation": "10447:6:13", + "nameLocation": "10447:6:14", "nodeType": "VariableDeclaration", - "scope": 2937, - "src": "10439:14:13", + "scope": 3132, + "src": "10439:14:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -38451,10 +41073,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2915, + "id": 3110, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10439:7:13", + "src": "10439:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38463,16 +41085,16 @@ "visibility": "internal" } ], - "id": 2920, + "id": 3115, "initialValue": { "arguments": [ { - "id": 2918, + "id": 3113, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2907, - "src": "10461:1:13", + "referencedDeclaration": 3102, + "src": "10461:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38486,21 +41108,21 @@ "typeString": "uint256" } ], - "id": 2917, + "id": 3112, "name": "sqrt", "nodeType": "Identifier", "overloadedDeclarations": [ - 2904, - 2939 + 3099, + 3134 ], - "referencedDeclaration": 2904, - "src": "10456:4:13", + "referencedDeclaration": 3099, + "src": "10456:4:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256) pure returns (uint256)" } }, - "id": 2919, + "id": 3114, "isConstant": false, "isLValue": false, "isPure": false, @@ -38509,7 +41131,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10456:7:13", + "src": "10456:7:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -38517,7 +41139,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "10439:24:13" + "src": "10439:24:14" }, { "expression": { @@ -38525,18 +41147,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2935, + "id": 3130, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2921, + "id": 3116, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2916, - "src": "10484:6:13", + "referencedDeclaration": 3111, + "src": "10484:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38552,7 +41174,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2930, + "id": 3125, "isConstant": false, "isLValue": false, "isPure": false, @@ -38560,14 +41182,14 @@ "leftExpression": { "arguments": [ { - "id": 2923, + "id": 3118, "name": "rounding", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2910, - "src": "10511:8:13", + "referencedDeclaration": 3105, + "src": "10511:8:14", "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" } } @@ -38575,22 +41197,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" } ], - "id": 2922, + "id": 3117, "name": "unsignedRoundsUp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3414, - "src": "10494:16:13", + "referencedDeclaration": 3609, + "src": "10494:16:14", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$2372_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$2567_$returns$_t_bool_$", "typeString": "function (enum Math.Rounding) pure returns (bool)" } }, - "id": 2924, + "id": 3119, "isConstant": false, "isLValue": false, "isPure": false, @@ -38599,7 +41221,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "10494:26:13", + "src": "10494:26:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -38613,7 +41235,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2929, + "id": 3124, "isConstant": false, "isLValue": false, "isPure": false, @@ -38623,18 +41245,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2927, + "id": 3122, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2925, + "id": 3120, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2916, - "src": "10524:6:13", + "referencedDeclaration": 3111, + "src": "10524:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38643,18 +41265,18 @@ "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { - "id": 2926, + "id": 3121, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2916, - "src": "10533:6:13", + "referencedDeclaration": 3111, + "src": "10533:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10524:15:13", + "src": "10524:15:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38663,24 +41285,24 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 2928, + "id": 3123, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2907, - "src": "10542:1:13", + "referencedDeclaration": 3102, + "src": "10542:1:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10524:19:13", + "src": "10524:19:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "10494:49:13", + "src": "10494:49:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -38688,37 +41310,37 @@ }, "falseExpression": { "hexValue": "30", - "id": 2932, + "id": 3127, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10550:1:13", + "src": "10550:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "id": 2933, + "id": 3128, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "10494:57:13", + "src": "10494:57:14", "trueExpression": { "hexValue": "31", - "id": 2931, + "id": 3126, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10546:1:13", + "src": "10546:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -38731,60 +41353,60 @@ } } ], - "id": 2934, + "id": 3129, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "10493:59:13", + "src": "10493:59:14", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "10484:68:13", + "src": "10484:68:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2914, - "id": 2936, + "functionReturnParameters": 3109, + "id": 3131, "nodeType": "Return", - "src": "10477:75:13" + "src": "10477:75:14" } ] } ] }, "documentation": { - "id": 2905, + "id": 3100, "nodeType": "StructuredDocumentation", - "src": "10235:89:13", + "src": "10235:89:14", "text": " @notice Calculates sqrt(a), following the selected rounding direction." }, - "id": 2939, + "id": 3134, "implemented": true, "kind": "function", "modifiers": [], "name": "sqrt", - "nameLocation": "10338:4:13", + "nameLocation": "10338:4:14", "nodeType": "FunctionDefinition", "parameters": { - "id": 2911, + "id": 3106, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2907, + "id": 3102, "mutability": "mutable", "name": "a", - "nameLocation": "10351:1:13", + "nameLocation": "10351:1:14", "nodeType": "VariableDeclaration", - "scope": 2939, - "src": "10343:9:13", + "scope": 3134, + "src": "10343:9:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -38792,10 +41414,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2906, + "id": 3101, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10343:7:13", + "src": "10343:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38805,57 +41427,57 @@ }, { "constant": false, - "id": 2910, + "id": 3105, "mutability": "mutable", "name": "rounding", - "nameLocation": "10363:8:13", + "nameLocation": "10363:8:14", "nodeType": "VariableDeclaration", - "scope": 2939, - "src": "10354:17:13", + "scope": 3134, + "src": "10354:17:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" }, "typeName": { - "id": 2909, + "id": 3104, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2908, + "id": 3103, "name": "Rounding", "nameLocations": [ - "10354:8:13" + "10354:8:14" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2372, - "src": "10354:8:13" + "referencedDeclaration": 2567, + "src": "10354:8:14" }, - "referencedDeclaration": 2372, - "src": "10354:8:13", + "referencedDeclaration": 2567, + "src": "10354:8:14", "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" } }, "visibility": "internal" } ], - "src": "10342:30:13" + "src": "10342:30:14" }, "returnParameters": { - "id": 2914, + "id": 3109, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2913, + "id": 3108, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2939, - "src": "10396:7:13", + "scope": 3134, + "src": "10396:7:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -38863,10 +41485,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2912, + "id": 3107, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10396:7:13", + "src": "10396:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38875,34 +41497,34 @@ "visibility": "internal" } ], - "src": "10395:9:13" + "src": "10395:9:14" }, - "scope": 3415, - "src": "10329:240:13", + "scope": 3610, + "src": "10329:240:14", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { - "id": 3070, + "id": 3265, "nodeType": "Block", - "src": "10760:922:13", + "src": "10760:922:14", "statements": [ { "assignments": [ - 2948 + 3143 ], "declarations": [ { "constant": false, - "id": 2948, + "id": 3143, "mutability": "mutable", "name": "result", - "nameLocation": "10778:6:13", + "nameLocation": "10778:6:14", "nodeType": "VariableDeclaration", - "scope": 3070, - "src": "10770:14:13", + "scope": 3265, + "src": "10770:14:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -38910,10 +41532,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2947, + "id": 3142, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10770:7:13", + "src": "10770:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38922,17 +41544,17 @@ "visibility": "internal" } ], - "id": 2950, + "id": 3145, "initialValue": { "hexValue": "30", - "id": 2949, + "id": 3144, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10787:1:13", + "src": "10787:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -38940,12 +41562,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "10770:18:13" + "src": "10770:18:14" }, { - "id": 3067, + "id": 3262, "nodeType": "UncheckedBlock", - "src": "10798:855:13", + "src": "10798:855:14", "statements": [ { "condition": { @@ -38953,7 +41575,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2955, + "id": 3150, "isConstant": false, "isLValue": false, "isPure": false, @@ -38963,18 +41585,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2953, + "id": 3148, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2951, + "id": 3146, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "10826:5:13", + "referencedDeclaration": 3137, + "src": "10826:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38984,21 +41606,21 @@ "operator": ">>", "rightExpression": { "hexValue": "313238", - "id": 2952, + "id": 3147, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10835:3:13", + "src": "10835:3:14", "typeDescriptions": { "typeIdentifier": "t_rational_128_by_1", "typeString": "int_const 128" }, "value": "128" }, - "src": "10826:12:13", + "src": "10826:12:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39008,48 +41630,48 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 2954, + "id": 3149, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10841:1:13", + "src": "10841:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "10826:16:13", + "src": "10826:16:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2965, + "id": 3160, "nodeType": "IfStatement", - "src": "10822:99:13", + "src": "10822:99:14", "trueBody": { - "id": 2964, + "id": 3159, "nodeType": "Block", - "src": "10844:77:13", + "src": "10844:77:14", "statements": [ { "expression": { - "id": 2958, + "id": 3153, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2956, + "id": 3151, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "10862:5:13", + "referencedDeclaration": 3137, + "src": "10862:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39059,44 +41681,44 @@ "operator": ">>=", "rightHandSide": { "hexValue": "313238", - "id": 2957, + "id": 3152, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10872:3:13", + "src": "10872:3:14", "typeDescriptions": { "typeIdentifier": "t_rational_128_by_1", "typeString": "int_const 128" }, "value": "128" }, - "src": "10862:13:13", + "src": "10862:13:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2959, + "id": 3154, "nodeType": "ExpressionStatement", - "src": "10862:13:13" + "src": "10862:13:14" }, { "expression": { - "id": 2962, + "id": 3157, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2960, + "id": 3155, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2948, - "src": "10893:6:13", + "referencedDeclaration": 3143, + "src": "10893:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39106,29 +41728,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "313238", - "id": 2961, + "id": 3156, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10903:3:13", + "src": "10903:3:14", "typeDescriptions": { "typeIdentifier": "t_rational_128_by_1", "typeString": "int_const 128" }, "value": "128" }, - "src": "10893:13:13", + "src": "10893:13:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2963, + "id": 3158, "nodeType": "ExpressionStatement", - "src": "10893:13:13" + "src": "10893:13:14" } ] } @@ -39139,7 +41761,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2970, + "id": 3165, "isConstant": false, "isLValue": false, "isPure": false, @@ -39149,18 +41771,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2968, + "id": 3163, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2966, + "id": 3161, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "10938:5:13", + "referencedDeclaration": 3137, + "src": "10938:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39170,21 +41792,21 @@ "operator": ">>", "rightExpression": { "hexValue": "3634", - "id": 2967, + "id": 3162, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10947:2:13", + "src": "10947:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_64_by_1", "typeString": "int_const 64" }, "value": "64" }, - "src": "10938:11:13", + "src": "10938:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39194,48 +41816,48 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 2969, + "id": 3164, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10952:1:13", + "src": "10952:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "10938:15:13", + "src": "10938:15:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2980, + "id": 3175, "nodeType": "IfStatement", - "src": "10934:96:13", + "src": "10934:96:14", "trueBody": { - "id": 2979, + "id": 3174, "nodeType": "Block", - "src": "10955:75:13", + "src": "10955:75:14", "statements": [ { "expression": { - "id": 2973, + "id": 3168, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2971, + "id": 3166, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "10973:5:13", + "referencedDeclaration": 3137, + "src": "10973:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39245,44 +41867,44 @@ "operator": ">>=", "rightHandSide": { "hexValue": "3634", - "id": 2972, + "id": 3167, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10983:2:13", + "src": "10983:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_64_by_1", "typeString": "int_const 64" }, "value": "64" }, - "src": "10973:12:13", + "src": "10973:12:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2974, + "id": 3169, "nodeType": "ExpressionStatement", - "src": "10973:12:13" + "src": "10973:12:14" }, { "expression": { - "id": 2977, + "id": 3172, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2975, + "id": 3170, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2948, - "src": "11003:6:13", + "referencedDeclaration": 3143, + "src": "11003:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39292,29 +41914,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "3634", - "id": 2976, + "id": 3171, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11013:2:13", + "src": "11013:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_64_by_1", "typeString": "int_const 64" }, "value": "64" }, - "src": "11003:12:13", + "src": "11003:12:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2978, + "id": 3173, "nodeType": "ExpressionStatement", - "src": "11003:12:13" + "src": "11003:12:14" } ] } @@ -39325,7 +41947,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2985, + "id": 3180, "isConstant": false, "isLValue": false, "isPure": false, @@ -39335,18 +41957,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2983, + "id": 3178, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2981, + "id": 3176, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "11047:5:13", + "referencedDeclaration": 3137, + "src": "11047:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39356,21 +41978,21 @@ "operator": ">>", "rightExpression": { "hexValue": "3332", - "id": 2982, + "id": 3177, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11056:2:13", + "src": "11056:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, "value": "32" }, - "src": "11047:11:13", + "src": "11047:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39380,48 +42002,48 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 2984, + "id": 3179, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11061:1:13", + "src": "11061:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "11047:15:13", + "src": "11047:15:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2995, + "id": 3190, "nodeType": "IfStatement", - "src": "11043:96:13", + "src": "11043:96:14", "trueBody": { - "id": 2994, + "id": 3189, "nodeType": "Block", - "src": "11064:75:13", + "src": "11064:75:14", "statements": [ { "expression": { - "id": 2988, + "id": 3183, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2986, + "id": 3181, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "11082:5:13", + "referencedDeclaration": 3137, + "src": "11082:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39431,44 +42053,44 @@ "operator": ">>=", "rightHandSide": { "hexValue": "3332", - "id": 2987, + "id": 3182, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11092:2:13", + "src": "11092:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, "value": "32" }, - "src": "11082:12:13", + "src": "11082:12:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2989, + "id": 3184, "nodeType": "ExpressionStatement", - "src": "11082:12:13" + "src": "11082:12:14" }, { "expression": { - "id": 2992, + "id": 3187, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2990, + "id": 3185, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2948, - "src": "11112:6:13", + "referencedDeclaration": 3143, + "src": "11112:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39478,29 +42100,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "3332", - "id": 2991, + "id": 3186, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11122:2:13", + "src": "11122:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, "value": "32" }, - "src": "11112:12:13", + "src": "11112:12:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2993, + "id": 3188, "nodeType": "ExpressionStatement", - "src": "11112:12:13" + "src": "11112:12:14" } ] } @@ -39511,7 +42133,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3000, + "id": 3195, "isConstant": false, "isLValue": false, "isPure": false, @@ -39521,18 +42143,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2998, + "id": 3193, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2996, + "id": 3191, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "11156:5:13", + "referencedDeclaration": 3137, + "src": "11156:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39542,21 +42164,21 @@ "operator": ">>", "rightExpression": { "hexValue": "3136", - "id": 2997, + "id": 3192, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11165:2:13", + "src": "11165:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_16_by_1", "typeString": "int_const 16" }, "value": "16" }, - "src": "11156:11:13", + "src": "11156:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39566,48 +42188,48 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 2999, + "id": 3194, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11170:1:13", + "src": "11170:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "11156:15:13", + "src": "11156:15:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3010, + "id": 3205, "nodeType": "IfStatement", - "src": "11152:96:13", + "src": "11152:96:14", "trueBody": { - "id": 3009, + "id": 3204, "nodeType": "Block", - "src": "11173:75:13", + "src": "11173:75:14", "statements": [ { "expression": { - "id": 3003, + "id": 3198, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3001, + "id": 3196, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "11191:5:13", + "referencedDeclaration": 3137, + "src": "11191:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39617,44 +42239,44 @@ "operator": ">>=", "rightHandSide": { "hexValue": "3136", - "id": 3002, + "id": 3197, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11201:2:13", + "src": "11201:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_16_by_1", "typeString": "int_const 16" }, "value": "16" }, - "src": "11191:12:13", + "src": "11191:12:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3004, + "id": 3199, "nodeType": "ExpressionStatement", - "src": "11191:12:13" + "src": "11191:12:14" }, { "expression": { - "id": 3007, + "id": 3202, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3005, + "id": 3200, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2948, - "src": "11221:6:13", + "referencedDeclaration": 3143, + "src": "11221:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39664,29 +42286,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "3136", - "id": 3006, + "id": 3201, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11231:2:13", + "src": "11231:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_16_by_1", "typeString": "int_const 16" }, "value": "16" }, - "src": "11221:12:13", + "src": "11221:12:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3008, + "id": 3203, "nodeType": "ExpressionStatement", - "src": "11221:12:13" + "src": "11221:12:14" } ] } @@ -39697,7 +42319,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3015, + "id": 3210, "isConstant": false, "isLValue": false, "isPure": false, @@ -39707,18 +42329,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3013, + "id": 3208, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3011, + "id": 3206, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "11265:5:13", + "referencedDeclaration": 3137, + "src": "11265:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39728,21 +42350,21 @@ "operator": ">>", "rightExpression": { "hexValue": "38", - "id": 3012, + "id": 3207, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11274:1:13", + "src": "11274:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8" }, "value": "8" }, - "src": "11265:10:13", + "src": "11265:10:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39752,48 +42374,48 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 3014, + "id": 3209, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11278:1:13", + "src": "11278:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "11265:14:13", + "src": "11265:14:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3025, + "id": 3220, "nodeType": "IfStatement", - "src": "11261:93:13", + "src": "11261:93:14", "trueBody": { - "id": 3024, + "id": 3219, "nodeType": "Block", - "src": "11281:73:13", + "src": "11281:73:14", "statements": [ { "expression": { - "id": 3018, + "id": 3213, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3016, + "id": 3211, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "11299:5:13", + "referencedDeclaration": 3137, + "src": "11299:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39803,44 +42425,44 @@ "operator": ">>=", "rightHandSide": { "hexValue": "38", - "id": 3017, + "id": 3212, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11309:1:13", + "src": "11309:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8" }, "value": "8" }, - "src": "11299:11:13", + "src": "11299:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3019, + "id": 3214, "nodeType": "ExpressionStatement", - "src": "11299:11:13" + "src": "11299:11:14" }, { "expression": { - "id": 3022, + "id": 3217, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3020, + "id": 3215, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2948, - "src": "11328:6:13", + "referencedDeclaration": 3143, + "src": "11328:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39850,29 +42472,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "38", - "id": 3021, + "id": 3216, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11338:1:13", + "src": "11338:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8" }, "value": "8" }, - "src": "11328:11:13", + "src": "11328:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3023, + "id": 3218, "nodeType": "ExpressionStatement", - "src": "11328:11:13" + "src": "11328:11:14" } ] } @@ -39883,7 +42505,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3030, + "id": 3225, "isConstant": false, "isLValue": false, "isPure": false, @@ -39893,18 +42515,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3028, + "id": 3223, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3026, + "id": 3221, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "11371:5:13", + "referencedDeclaration": 3137, + "src": "11371:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39914,21 +42536,21 @@ "operator": ">>", "rightExpression": { "hexValue": "34", - "id": 3027, + "id": 3222, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11380:1:13", + "src": "11380:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", "typeString": "int_const 4" }, "value": "4" }, - "src": "11371:10:13", + "src": "11371:10:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39938,48 +42560,48 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 3029, + "id": 3224, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11384:1:13", + "src": "11384:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "11371:14:13", + "src": "11371:14:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3040, + "id": 3235, "nodeType": "IfStatement", - "src": "11367:93:13", + "src": "11367:93:14", "trueBody": { - "id": 3039, + "id": 3234, "nodeType": "Block", - "src": "11387:73:13", + "src": "11387:73:14", "statements": [ { "expression": { - "id": 3033, + "id": 3228, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3031, + "id": 3226, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "11405:5:13", + "referencedDeclaration": 3137, + "src": "11405:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39989,44 +42611,44 @@ "operator": ">>=", "rightHandSide": { "hexValue": "34", - "id": 3032, + "id": 3227, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11415:1:13", + "src": "11415:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", "typeString": "int_const 4" }, "value": "4" }, - "src": "11405:11:13", + "src": "11405:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3034, + "id": 3229, "nodeType": "ExpressionStatement", - "src": "11405:11:13" + "src": "11405:11:14" }, { "expression": { - "id": 3037, + "id": 3232, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3035, + "id": 3230, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2948, - "src": "11434:6:13", + "referencedDeclaration": 3143, + "src": "11434:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40036,29 +42658,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "34", - "id": 3036, + "id": 3231, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11444:1:13", + "src": "11444:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", "typeString": "int_const 4" }, "value": "4" }, - "src": "11434:11:13", + "src": "11434:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3038, + "id": 3233, "nodeType": "ExpressionStatement", - "src": "11434:11:13" + "src": "11434:11:14" } ] } @@ -40069,7 +42691,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3045, + "id": 3240, "isConstant": false, "isLValue": false, "isPure": false, @@ -40079,18 +42701,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3043, + "id": 3238, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3041, + "id": 3236, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "11477:5:13", + "referencedDeclaration": 3137, + "src": "11477:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40100,21 +42722,21 @@ "operator": ">>", "rightExpression": { "hexValue": "32", - "id": 3042, + "id": 3237, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11486:1:13", + "src": "11486:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, - "src": "11477:10:13", + "src": "11477:10:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40124,48 +42746,48 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 3044, + "id": 3239, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11490:1:13", + "src": "11490:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "11477:14:13", + "src": "11477:14:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3055, + "id": 3250, "nodeType": "IfStatement", - "src": "11473:93:13", + "src": "11473:93:14", "trueBody": { - "id": 3054, + "id": 3249, "nodeType": "Block", - "src": "11493:73:13", + "src": "11493:73:14", "statements": [ { "expression": { - "id": 3048, + "id": 3243, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3046, + "id": 3241, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "11511:5:13", + "referencedDeclaration": 3137, + "src": "11511:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40175,44 +42797,44 @@ "operator": ">>=", "rightHandSide": { "hexValue": "32", - "id": 3047, + "id": 3242, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11521:1:13", + "src": "11521:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, - "src": "11511:11:13", + "src": "11511:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3049, + "id": 3244, "nodeType": "ExpressionStatement", - "src": "11511:11:13" + "src": "11511:11:14" }, { "expression": { - "id": 3052, + "id": 3247, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3050, + "id": 3245, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2948, - "src": "11540:6:13", + "referencedDeclaration": 3143, + "src": "11540:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40222,29 +42844,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "32", - "id": 3051, + "id": 3246, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11550:1:13", + "src": "11550:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, - "src": "11540:11:13", + "src": "11540:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3053, + "id": 3248, "nodeType": "ExpressionStatement", - "src": "11540:11:13" + "src": "11540:11:14" } ] } @@ -40255,7 +42877,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3060, + "id": 3255, "isConstant": false, "isLValue": false, "isPure": false, @@ -40265,18 +42887,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3058, + "id": 3253, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3056, + "id": 3251, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "11583:5:13", + "referencedDeclaration": 3137, + "src": "11583:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40286,21 +42908,21 @@ "operator": ">>", "rightExpression": { "hexValue": "31", - "id": 3057, + "id": 3252, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11592:1:13", + "src": "11592:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "11583:10:13", + "src": "11583:10:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40310,48 +42932,48 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 3059, + "id": 3254, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11596:1:13", + "src": "11596:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "11583:14:13", + "src": "11583:14:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3066, + "id": 3261, "nodeType": "IfStatement", - "src": "11579:64:13", + "src": "11579:64:14", "trueBody": { - "id": 3065, + "id": 3260, "nodeType": "Block", - "src": "11599:44:13", + "src": "11599:44:14", "statements": [ { "expression": { - "id": 3063, + "id": 3258, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3061, + "id": 3256, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2948, - "src": "11617:6:13", + "referencedDeclaration": 3143, + "src": "11617:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40361,29 +42983,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "31", - "id": 3062, + "id": 3257, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "11627:1:13", + "src": "11627:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "11617:11:13", + "src": "11617:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3064, + "id": 3259, "nodeType": "ExpressionStatement", - "src": "11617:11:13" + "src": "11617:11:14" } ] } @@ -40392,50 +43014,50 @@ }, { "expression": { - "id": 3068, + "id": 3263, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2948, - "src": "11669:6:13", + "referencedDeclaration": 3143, + "src": "11669:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2946, - "id": 3069, + "functionReturnParameters": 3141, + "id": 3264, "nodeType": "Return", - "src": "11662:13:13" + "src": "11662:13:14" } ] }, "documentation": { - "id": 2940, + "id": 3135, "nodeType": "StructuredDocumentation", - "src": "10575:119:13", + "src": "10575:119:14", "text": " @dev Return the log in base 2 of a positive value rounded towards zero.\n Returns 0 if given 0." }, - "id": 3071, + "id": 3266, "implemented": true, "kind": "function", "modifiers": [], "name": "log2", - "nameLocation": "10708:4:13", + "nameLocation": "10708:4:14", "nodeType": "FunctionDefinition", "parameters": { - "id": 2943, + "id": 3138, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2942, + "id": 3137, "mutability": "mutable", "name": "value", - "nameLocation": "10721:5:13", + "nameLocation": "10721:5:14", "nodeType": "VariableDeclaration", - "scope": 3071, - "src": "10713:13:13", + "scope": 3266, + "src": "10713:13:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -40443,10 +43065,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2941, + "id": 3136, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10713:7:13", + "src": "10713:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40455,21 +43077,21 @@ "visibility": "internal" } ], - "src": "10712:15:13" + "src": "10712:15:14" }, "returnParameters": { - "id": 2946, + "id": 3141, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2945, + "id": 3140, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 3071, - "src": "10751:7:13", + "scope": 3266, + "src": "10751:7:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -40477,10 +43099,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2944, + "id": 3139, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10751:7:13", + "src": "10751:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40489,39 +43111,39 @@ "visibility": "internal" } ], - "src": "10750:9:13" + "src": "10750:9:14" }, - "scope": 3415, - "src": "10699:983:13", + "scope": 3610, + "src": "10699:983:14", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { - "id": 3105, + "id": 3300, "nodeType": "Block", - "src": "11915:168:13", + "src": "11915:168:14", "statements": [ { - "id": 3104, + "id": 3299, "nodeType": "UncheckedBlock", - "src": "11925:152:13", + "src": "11925:152:14", "statements": [ { "assignments": [ - 3083 + 3278 ], "declarations": [ { "constant": false, - "id": 3083, + "id": 3278, "mutability": "mutable", "name": "result", - "nameLocation": "11957:6:13", + "nameLocation": "11957:6:14", "nodeType": "VariableDeclaration", - "scope": 3104, - "src": "11949:14:13", + "scope": 3299, + "src": "11949:14:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -40529,10 +43151,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3082, + "id": 3277, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "11949:7:13", + "src": "11949:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40541,16 +43163,16 @@ "visibility": "internal" } ], - "id": 3087, + "id": 3282, "initialValue": { "arguments": [ { - "id": 3085, + "id": 3280, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3074, - "src": "11971:5:13", + "referencedDeclaration": 3269, + "src": "11971:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40564,21 +43186,21 @@ "typeString": "uint256" } ], - "id": 3084, + "id": 3279, "name": "log2", "nodeType": "Identifier", "overloadedDeclarations": [ - 3071, - 3106 + 3266, + 3301 ], - "referencedDeclaration": 3071, - "src": "11966:4:13", + "referencedDeclaration": 3266, + "src": "11966:4:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256) pure returns (uint256)" } }, - "id": 3086, + "id": 3281, "isConstant": false, "isLValue": false, "isPure": false, @@ -40587,7 +43209,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "11966:11:13", + "src": "11966:11:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -40595,7 +43217,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "11949:28:13" + "src": "11949:28:14" }, { "expression": { @@ -40603,18 +43225,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3102, + "id": 3297, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3088, + "id": 3283, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "11998:6:13", + "referencedDeclaration": 3278, + "src": "11998:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40630,7 +43252,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 3097, + "id": 3292, "isConstant": false, "isLValue": false, "isPure": false, @@ -40638,14 +43260,14 @@ "leftExpression": { "arguments": [ { - "id": 3090, + "id": 3285, "name": "rounding", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3077, - "src": "12025:8:13", + "referencedDeclaration": 3272, + "src": "12025:8:14", "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" } } @@ -40653,22 +43275,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" } ], - "id": 3089, + "id": 3284, "name": "unsignedRoundsUp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3414, - "src": "12008:16:13", + "referencedDeclaration": 3609, + "src": "12008:16:14", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$2372_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$2567_$returns$_t_bool_$", "typeString": "function (enum Math.Rounding) pure returns (bool)" } }, - "id": 3091, + "id": 3286, "isConstant": false, "isLValue": false, "isPure": false, @@ -40677,7 +43299,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "12008:26:13", + "src": "12008:26:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -40691,7 +43313,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3096, + "id": 3291, "isConstant": false, "isLValue": false, "isPure": false, @@ -40701,21 +43323,21 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3094, + "id": 3289, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "31", - "id": 3092, + "id": 3287, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12038:1:13", + "src": "12038:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -40725,18 +43347,18 @@ "nodeType": "BinaryOperation", "operator": "<<", "rightExpression": { - "id": 3093, + "id": 3288, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "12043:6:13", + "referencedDeclaration": 3278, + "src": "12043:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "12038:11:13", + "src": "12038:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40745,24 +43367,24 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 3095, + "id": 3290, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3074, - "src": "12052:5:13", + "referencedDeclaration": 3269, + "src": "12052:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "12038:19:13", + "src": "12038:19:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "12008:49:13", + "src": "12008:49:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -40770,37 +43392,37 @@ }, "falseExpression": { "hexValue": "30", - "id": 3099, + "id": 3294, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12064:1:13", + "src": "12064:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "id": 3100, + "id": 3295, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "12008:57:13", + "src": "12008:57:14", "trueExpression": { "hexValue": "31", - "id": 3098, + "id": 3293, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12060:1:13", + "src": "12060:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -40813,60 +43435,60 @@ } } ], - "id": 3101, + "id": 3296, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "12007:59:13", + "src": "12007:59:14", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "11998:68:13", + "src": "11998:68:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3081, - "id": 3103, + "functionReturnParameters": 3276, + "id": 3298, "nodeType": "Return", - "src": "11991:75:13" + "src": "11991:75:14" } ] } ] }, "documentation": { - "id": 3072, + "id": 3267, "nodeType": "StructuredDocumentation", - "src": "11688:142:13", + "src": "11688:142:14", "text": " @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." }, - "id": 3106, + "id": 3301, "implemented": true, "kind": "function", "modifiers": [], "name": "log2", - "nameLocation": "11844:4:13", + "nameLocation": "11844:4:14", "nodeType": "FunctionDefinition", "parameters": { - "id": 3078, + "id": 3273, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3074, + "id": 3269, "mutability": "mutable", "name": "value", - "nameLocation": "11857:5:13", + "nameLocation": "11857:5:14", "nodeType": "VariableDeclaration", - "scope": 3106, - "src": "11849:13:13", + "scope": 3301, + "src": "11849:13:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -40874,10 +43496,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3073, + "id": 3268, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "11849:7:13", + "src": "11849:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40887,57 +43509,57 @@ }, { "constant": false, - "id": 3077, + "id": 3272, "mutability": "mutable", "name": "rounding", - "nameLocation": "11873:8:13", + "nameLocation": "11873:8:14", "nodeType": "VariableDeclaration", - "scope": 3106, - "src": "11864:17:13", + "scope": 3301, + "src": "11864:17:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" }, "typeName": { - "id": 3076, + "id": 3271, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 3075, + "id": 3270, "name": "Rounding", "nameLocations": [ - "11864:8:13" + "11864:8:14" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2372, - "src": "11864:8:13" + "referencedDeclaration": 2567, + "src": "11864:8:14" }, - "referencedDeclaration": 2372, - "src": "11864:8:13", + "referencedDeclaration": 2567, + "src": "11864:8:14", "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" } }, "visibility": "internal" } ], - "src": "11848:34:13" + "src": "11848:34:14" }, "returnParameters": { - "id": 3081, + "id": 3276, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3080, + "id": 3275, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 3106, - "src": "11906:7:13", + "scope": 3301, + "src": "11906:7:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -40945,10 +43567,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3079, + "id": 3274, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "11906:7:13", + "src": "11906:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40957,34 +43579,34 @@ "visibility": "internal" } ], - "src": "11905:9:13" + "src": "11905:9:14" }, - "scope": 3415, - "src": "11835:248:13", + "scope": 3610, + "src": "11835:248:14", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { - "id": 3234, + "id": 3429, "nodeType": "Block", - "src": "12276:854:13", + "src": "12276:854:14", "statements": [ { "assignments": [ - 3115 + 3310 ], "declarations": [ { "constant": false, - "id": 3115, + "id": 3310, "mutability": "mutable", "name": "result", - "nameLocation": "12294:6:13", + "nameLocation": "12294:6:14", "nodeType": "VariableDeclaration", - "scope": 3234, - "src": "12286:14:13", + "scope": 3429, + "src": "12286:14:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -40992,10 +43614,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3114, + "id": 3309, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "12286:7:13", + "src": "12286:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41004,17 +43626,17 @@ "visibility": "internal" } ], - "id": 3117, + "id": 3312, "initialValue": { "hexValue": "30", - "id": 3116, + "id": 3311, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12303:1:13", + "src": "12303:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -41022,12 +43644,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "12286:18:13" + "src": "12286:18:14" }, { - "id": 3231, + "id": 3426, "nodeType": "UncheckedBlock", - "src": "12314:787:13", + "src": "12314:787:14", "statements": [ { "condition": { @@ -41035,18 +43657,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3122, + "id": 3317, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3118, + "id": 3313, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "12342:5:13", + "referencedDeclaration": 3304, + "src": "12342:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41059,21 +43681,21 @@ "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", "typeString": "int_const 1000...(57 digits omitted)...0000" }, - "id": 3121, + "id": 3316, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 3119, + "id": 3314, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12351:2:13", + "src": "12351:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -41084,54 +43706,54 @@ "operator": "**", "rightExpression": { "hexValue": "3634", - "id": 3120, + "id": 3315, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12357:2:13", + "src": "12357:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_64_by_1", "typeString": "int_const 64" }, "value": "64" }, - "src": "12351:8:13", + "src": "12351:8:14", "typeDescriptions": { "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", "typeString": "int_const 1000...(57 digits omitted)...0000" } }, - "src": "12342:17:13", + "src": "12342:17:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3134, + "id": 3329, "nodeType": "IfStatement", - "src": "12338:103:13", + "src": "12338:103:14", "trueBody": { - "id": 3133, + "id": 3328, "nodeType": "Block", - "src": "12361:80:13", + "src": "12361:80:14", "statements": [ { "expression": { - "id": 3127, + "id": 3322, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3123, + "id": 3318, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "12379:5:13", + "referencedDeclaration": 3304, + "src": "12379:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41144,21 +43766,21 @@ "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", "typeString": "int_const 1000...(57 digits omitted)...0000" }, - "id": 3126, + "id": 3321, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 3124, + "id": 3319, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12388:2:13", + "src": "12388:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -41169,50 +43791,50 @@ "operator": "**", "rightExpression": { "hexValue": "3634", - "id": 3125, + "id": 3320, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12394:2:13", + "src": "12394:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_64_by_1", "typeString": "int_const 64" }, "value": "64" }, - "src": "12388:8:13", + "src": "12388:8:14", "typeDescriptions": { "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", "typeString": "int_const 1000...(57 digits omitted)...0000" } }, - "src": "12379:17:13", + "src": "12379:17:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3128, + "id": 3323, "nodeType": "ExpressionStatement", - "src": "12379:17:13" + "src": "12379:17:14" }, { "expression": { - "id": 3131, + "id": 3326, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3129, + "id": 3324, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3115, - "src": "12414:6:13", + "referencedDeclaration": 3310, + "src": "12414:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41222,29 +43844,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "3634", - "id": 3130, + "id": 3325, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12424:2:13", + "src": "12424:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_64_by_1", "typeString": "int_const 64" }, "value": "64" }, - "src": "12414:12:13", + "src": "12414:12:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3132, + "id": 3327, "nodeType": "ExpressionStatement", - "src": "12414:12:13" + "src": "12414:12:14" } ] } @@ -41255,18 +43877,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3139, + "id": 3334, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3135, + "id": 3330, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "12458:5:13", + "referencedDeclaration": 3304, + "src": "12458:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41279,21 +43901,21 @@ "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", "typeString": "int_const 1000...(25 digits omitted)...0000" }, - "id": 3138, + "id": 3333, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 3136, + "id": 3331, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12467:2:13", + "src": "12467:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -41304,54 +43926,54 @@ "operator": "**", "rightExpression": { "hexValue": "3332", - "id": 3137, + "id": 3332, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12473:2:13", + "src": "12473:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, "value": "32" }, - "src": "12467:8:13", + "src": "12467:8:14", "typeDescriptions": { "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", "typeString": "int_const 1000...(25 digits omitted)...0000" } }, - "src": "12458:17:13", + "src": "12458:17:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3151, + "id": 3346, "nodeType": "IfStatement", - "src": "12454:103:13", + "src": "12454:103:14", "trueBody": { - "id": 3150, + "id": 3345, "nodeType": "Block", - "src": "12477:80:13", + "src": "12477:80:14", "statements": [ { "expression": { - "id": 3144, + "id": 3339, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3140, + "id": 3335, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "12495:5:13", + "referencedDeclaration": 3304, + "src": "12495:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41364,21 +43986,21 @@ "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", "typeString": "int_const 1000...(25 digits omitted)...0000" }, - "id": 3143, + "id": 3338, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 3141, + "id": 3336, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12504:2:13", + "src": "12504:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -41389,50 +44011,50 @@ "operator": "**", "rightExpression": { "hexValue": "3332", - "id": 3142, + "id": 3337, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12510:2:13", + "src": "12510:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, "value": "32" }, - "src": "12504:8:13", + "src": "12504:8:14", "typeDescriptions": { "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", "typeString": "int_const 1000...(25 digits omitted)...0000" } }, - "src": "12495:17:13", + "src": "12495:17:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3145, + "id": 3340, "nodeType": "ExpressionStatement", - "src": "12495:17:13" + "src": "12495:17:14" }, { "expression": { - "id": 3148, + "id": 3343, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3146, + "id": 3341, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3115, - "src": "12530:6:13", + "referencedDeclaration": 3310, + "src": "12530:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41442,29 +44064,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "3332", - "id": 3147, + "id": 3342, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12540:2:13", + "src": "12540:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, "value": "32" }, - "src": "12530:12:13", + "src": "12530:12:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3149, + "id": 3344, "nodeType": "ExpressionStatement", - "src": "12530:12:13" + "src": "12530:12:14" } ] } @@ -41475,18 +44097,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3156, + "id": 3351, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3152, + "id": 3347, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "12574:5:13", + "referencedDeclaration": 3304, + "src": "12574:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41499,21 +44121,21 @@ "typeIdentifier": "t_rational_10000000000000000_by_1", "typeString": "int_const 10000000000000000" }, - "id": 3155, + "id": 3350, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 3153, + "id": 3348, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12583:2:13", + "src": "12583:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -41524,54 +44146,54 @@ "operator": "**", "rightExpression": { "hexValue": "3136", - "id": 3154, + "id": 3349, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12589:2:13", + "src": "12589:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_16_by_1", "typeString": "int_const 16" }, "value": "16" }, - "src": "12583:8:13", + "src": "12583:8:14", "typeDescriptions": { "typeIdentifier": "t_rational_10000000000000000_by_1", "typeString": "int_const 10000000000000000" } }, - "src": "12574:17:13", + "src": "12574:17:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3168, + "id": 3363, "nodeType": "IfStatement", - "src": "12570:103:13", + "src": "12570:103:14", "trueBody": { - "id": 3167, + "id": 3362, "nodeType": "Block", - "src": "12593:80:13", + "src": "12593:80:14", "statements": [ { "expression": { - "id": 3161, + "id": 3356, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3157, + "id": 3352, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "12611:5:13", + "referencedDeclaration": 3304, + "src": "12611:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41584,21 +44206,21 @@ "typeIdentifier": "t_rational_10000000000000000_by_1", "typeString": "int_const 10000000000000000" }, - "id": 3160, + "id": 3355, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 3158, + "id": 3353, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12620:2:13", + "src": "12620:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -41609,50 +44231,50 @@ "operator": "**", "rightExpression": { "hexValue": "3136", - "id": 3159, + "id": 3354, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12626:2:13", + "src": "12626:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_16_by_1", "typeString": "int_const 16" }, "value": "16" }, - "src": "12620:8:13", + "src": "12620:8:14", "typeDescriptions": { "typeIdentifier": "t_rational_10000000000000000_by_1", "typeString": "int_const 10000000000000000" } }, - "src": "12611:17:13", + "src": "12611:17:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3162, + "id": 3357, "nodeType": "ExpressionStatement", - "src": "12611:17:13" + "src": "12611:17:14" }, { "expression": { - "id": 3165, + "id": 3360, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3163, + "id": 3358, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3115, - "src": "12646:6:13", + "referencedDeclaration": 3310, + "src": "12646:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41662,29 +44284,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "3136", - "id": 3164, + "id": 3359, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12656:2:13", + "src": "12656:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_16_by_1", "typeString": "int_const 16" }, "value": "16" }, - "src": "12646:12:13", + "src": "12646:12:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3166, + "id": 3361, "nodeType": "ExpressionStatement", - "src": "12646:12:13" + "src": "12646:12:14" } ] } @@ -41695,18 +44317,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3173, + "id": 3368, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3169, + "id": 3364, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "12690:5:13", + "referencedDeclaration": 3304, + "src": "12690:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41719,21 +44341,21 @@ "typeIdentifier": "t_rational_100000000_by_1", "typeString": "int_const 100000000" }, - "id": 3172, + "id": 3367, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 3170, + "id": 3365, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12699:2:13", + "src": "12699:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -41744,54 +44366,54 @@ "operator": "**", "rightExpression": { "hexValue": "38", - "id": 3171, + "id": 3366, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12705:1:13", + "src": "12705:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8" }, "value": "8" }, - "src": "12699:7:13", + "src": "12699:7:14", "typeDescriptions": { "typeIdentifier": "t_rational_100000000_by_1", "typeString": "int_const 100000000" } }, - "src": "12690:16:13", + "src": "12690:16:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3185, + "id": 3380, "nodeType": "IfStatement", - "src": "12686:100:13", + "src": "12686:100:14", "trueBody": { - "id": 3184, + "id": 3379, "nodeType": "Block", - "src": "12708:78:13", + "src": "12708:78:14", "statements": [ { "expression": { - "id": 3178, + "id": 3373, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3174, + "id": 3369, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "12726:5:13", + "referencedDeclaration": 3304, + "src": "12726:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41804,21 +44426,21 @@ "typeIdentifier": "t_rational_100000000_by_1", "typeString": "int_const 100000000" }, - "id": 3177, + "id": 3372, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 3175, + "id": 3370, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12735:2:13", + "src": "12735:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -41829,50 +44451,50 @@ "operator": "**", "rightExpression": { "hexValue": "38", - "id": 3176, + "id": 3371, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12741:1:13", + "src": "12741:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8" }, "value": "8" }, - "src": "12735:7:13", + "src": "12735:7:14", "typeDescriptions": { "typeIdentifier": "t_rational_100000000_by_1", "typeString": "int_const 100000000" } }, - "src": "12726:16:13", + "src": "12726:16:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3179, + "id": 3374, "nodeType": "ExpressionStatement", - "src": "12726:16:13" + "src": "12726:16:14" }, { "expression": { - "id": 3182, + "id": 3377, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3180, + "id": 3375, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3115, - "src": "12760:6:13", + "referencedDeclaration": 3310, + "src": "12760:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41882,29 +44504,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "38", - "id": 3181, + "id": 3376, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12770:1:13", + "src": "12770:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8" }, "value": "8" }, - "src": "12760:11:13", + "src": "12760:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3183, + "id": 3378, "nodeType": "ExpressionStatement", - "src": "12760:11:13" + "src": "12760:11:14" } ] } @@ -41915,18 +44537,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3190, + "id": 3385, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3186, + "id": 3381, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "12803:5:13", + "referencedDeclaration": 3304, + "src": "12803:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41939,21 +44561,21 @@ "typeIdentifier": "t_rational_10000_by_1", "typeString": "int_const 10000" }, - "id": 3189, + "id": 3384, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 3187, + "id": 3382, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12812:2:13", + "src": "12812:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -41964,54 +44586,54 @@ "operator": "**", "rightExpression": { "hexValue": "34", - "id": 3188, + "id": 3383, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12818:1:13", + "src": "12818:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", "typeString": "int_const 4" }, "value": "4" }, - "src": "12812:7:13", + "src": "12812:7:14", "typeDescriptions": { "typeIdentifier": "t_rational_10000_by_1", "typeString": "int_const 10000" } }, - "src": "12803:16:13", + "src": "12803:16:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3202, + "id": 3397, "nodeType": "IfStatement", - "src": "12799:100:13", + "src": "12799:100:14", "trueBody": { - "id": 3201, + "id": 3396, "nodeType": "Block", - "src": "12821:78:13", + "src": "12821:78:14", "statements": [ { "expression": { - "id": 3195, + "id": 3390, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3191, + "id": 3386, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "12839:5:13", + "referencedDeclaration": 3304, + "src": "12839:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -42024,21 +44646,21 @@ "typeIdentifier": "t_rational_10000_by_1", "typeString": "int_const 10000" }, - "id": 3194, + "id": 3389, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 3192, + "id": 3387, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12848:2:13", + "src": "12848:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -42049,50 +44671,50 @@ "operator": "**", "rightExpression": { "hexValue": "34", - "id": 3193, + "id": 3388, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12854:1:13", + "src": "12854:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", "typeString": "int_const 4" }, "value": "4" }, - "src": "12848:7:13", + "src": "12848:7:14", "typeDescriptions": { "typeIdentifier": "t_rational_10000_by_1", "typeString": "int_const 10000" } }, - "src": "12839:16:13", + "src": "12839:16:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3196, + "id": 3391, "nodeType": "ExpressionStatement", - "src": "12839:16:13" + "src": "12839:16:14" }, { "expression": { - "id": 3199, + "id": 3394, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3197, + "id": 3392, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3115, - "src": "12873:6:13", + "referencedDeclaration": 3310, + "src": "12873:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -42102,29 +44724,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "34", - "id": 3198, + "id": 3393, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12883:1:13", + "src": "12883:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", "typeString": "int_const 4" }, "value": "4" }, - "src": "12873:11:13", + "src": "12873:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3200, + "id": 3395, "nodeType": "ExpressionStatement", - "src": "12873:11:13" + "src": "12873:11:14" } ] } @@ -42135,18 +44757,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3207, + "id": 3402, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3203, + "id": 3398, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "12916:5:13", + "referencedDeclaration": 3304, + "src": "12916:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -42159,21 +44781,21 @@ "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" }, - "id": 3206, + "id": 3401, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 3204, + "id": 3399, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12925:2:13", + "src": "12925:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -42184,54 +44806,54 @@ "operator": "**", "rightExpression": { "hexValue": "32", - "id": 3205, + "id": 3400, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12931:1:13", + "src": "12931:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, - "src": "12925:7:13", + "src": "12925:7:14", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" } }, - "src": "12916:16:13", + "src": "12916:16:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3219, + "id": 3414, "nodeType": "IfStatement", - "src": "12912:100:13", + "src": "12912:100:14", "trueBody": { - "id": 3218, + "id": 3413, "nodeType": "Block", - "src": "12934:78:13", + "src": "12934:78:14", "statements": [ { "expression": { - "id": 3212, + "id": 3407, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3208, + "id": 3403, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "12952:5:13", + "referencedDeclaration": 3304, + "src": "12952:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -42244,21 +44866,21 @@ "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" }, - "id": 3211, + "id": 3406, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 3209, + "id": 3404, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12961:2:13", + "src": "12961:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -42269,50 +44891,50 @@ "operator": "**", "rightExpression": { "hexValue": "32", - "id": 3210, + "id": 3405, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12967:1:13", + "src": "12967:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, - "src": "12961:7:13", + "src": "12961:7:14", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" } }, - "src": "12952:16:13", + "src": "12952:16:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3213, + "id": 3408, "nodeType": "ExpressionStatement", - "src": "12952:16:13" + "src": "12952:16:14" }, { "expression": { - "id": 3216, + "id": 3411, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3214, + "id": 3409, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3115, - "src": "12986:6:13", + "referencedDeclaration": 3310, + "src": "12986:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -42322,29 +44944,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "32", - "id": 3215, + "id": 3410, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "12996:1:13", + "src": "12996:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, - "src": "12986:11:13", + "src": "12986:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3217, + "id": 3412, "nodeType": "ExpressionStatement", - "src": "12986:11:13" + "src": "12986:11:14" } ] } @@ -42355,18 +44977,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3224, + "id": 3419, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3220, + "id": 3415, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3109, - "src": "13029:5:13", + "referencedDeclaration": 3304, + "src": "13029:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -42379,21 +45001,21 @@ "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" }, - "id": 3223, + "id": 3418, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 3221, + "id": 3416, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13038:2:13", + "src": "13038:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -42404,54 +45026,54 @@ "operator": "**", "rightExpression": { "hexValue": "31", - "id": 3222, + "id": 3417, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13044:1:13", + "src": "13044:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "13038:7:13", + "src": "13038:7:14", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" } }, - "src": "13029:16:13", + "src": "13029:16:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3230, + "id": 3425, "nodeType": "IfStatement", - "src": "13025:66:13", + "src": "13025:66:14", "trueBody": { - "id": 3229, + "id": 3424, "nodeType": "Block", - "src": "13047:44:13", + "src": "13047:44:14", "statements": [ { "expression": { - "id": 3227, + "id": 3422, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3225, + "id": 3420, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3115, - "src": "13065:6:13", + "referencedDeclaration": 3310, + "src": "13065:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -42461,29 +45083,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "31", - "id": 3226, + "id": 3421, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13075:1:13", + "src": "13075:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "13065:11:13", + "src": "13065:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3228, + "id": 3423, "nodeType": "ExpressionStatement", - "src": "13065:11:13" + "src": "13065:11:14" } ] } @@ -42492,50 +45114,50 @@ }, { "expression": { - "id": 3232, + "id": 3427, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3115, - "src": "13117:6:13", + "referencedDeclaration": 3310, + "src": "13117:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3113, - "id": 3233, + "functionReturnParameters": 3308, + "id": 3428, "nodeType": "Return", - "src": "13110:13:13" + "src": "13110:13:14" } ] }, "documentation": { - "id": 3107, + "id": 3302, "nodeType": "StructuredDocumentation", - "src": "12089:120:13", + "src": "12089:120:14", "text": " @dev Return the log in base 10 of a positive value rounded towards zero.\n Returns 0 if given 0." }, - "id": 3235, + "id": 3430, "implemented": true, "kind": "function", "modifiers": [], "name": "log10", - "nameLocation": "12223:5:13", + "nameLocation": "12223:5:14", "nodeType": "FunctionDefinition", "parameters": { - "id": 3110, + "id": 3305, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3109, + "id": 3304, "mutability": "mutable", "name": "value", - "nameLocation": "12237:5:13", + "nameLocation": "12237:5:14", "nodeType": "VariableDeclaration", - "scope": 3235, - "src": "12229:13:13", + "scope": 3430, + "src": "12229:13:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -42543,10 +45165,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3108, + "id": 3303, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "12229:7:13", + "src": "12229:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -42555,21 +45177,21 @@ "visibility": "internal" } ], - "src": "12228:15:13" + "src": "12228:15:14" }, "returnParameters": { - "id": 3113, + "id": 3308, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3112, + "id": 3307, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 3235, - "src": "12267:7:13", + "scope": 3430, + "src": "12267:7:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -42577,10 +45199,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3111, + "id": 3306, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "12267:7:13", + "src": "12267:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -42589,39 +45211,39 @@ "visibility": "internal" } ], - "src": "12266:9:13" + "src": "12266:9:14" }, - "scope": 3415, - "src": "12214:916:13", + "scope": 3610, + "src": "12214:916:14", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { - "id": 3269, + "id": 3464, "nodeType": "Block", - "src": "13365:170:13", + "src": "13365:170:14", "statements": [ { - "id": 3268, + "id": 3463, "nodeType": "UncheckedBlock", - "src": "13375:154:13", + "src": "13375:154:14", "statements": [ { "assignments": [ - 3247 + 3442 ], "declarations": [ { "constant": false, - "id": 3247, + "id": 3442, "mutability": "mutable", "name": "result", - "nameLocation": "13407:6:13", + "nameLocation": "13407:6:14", "nodeType": "VariableDeclaration", - "scope": 3268, - "src": "13399:14:13", + "scope": 3463, + "src": "13399:14:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -42629,10 +45251,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3246, + "id": 3441, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "13399:7:13", + "src": "13399:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -42641,16 +45263,16 @@ "visibility": "internal" } ], - "id": 3251, + "id": 3446, "initialValue": { "arguments": [ { - "id": 3249, + "id": 3444, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3238, - "src": "13422:5:13", + "referencedDeclaration": 3433, + "src": "13422:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -42664,21 +45286,21 @@ "typeString": "uint256" } ], - "id": 3248, + "id": 3443, "name": "log10", "nodeType": "Identifier", "overloadedDeclarations": [ - 3235, - 3270 + 3430, + 3465 ], - "referencedDeclaration": 3235, - "src": "13416:5:13", + "referencedDeclaration": 3430, + "src": "13416:5:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256) pure returns (uint256)" } }, - "id": 3250, + "id": 3445, "isConstant": false, "isLValue": false, "isPure": false, @@ -42687,7 +45309,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "13416:12:13", + "src": "13416:12:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -42695,7 +45317,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "13399:29:13" + "src": "13399:29:14" }, { "expression": { @@ -42703,18 +45325,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3266, + "id": 3461, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3252, + "id": 3447, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3247, - "src": "13449:6:13", + "referencedDeclaration": 3442, + "src": "13449:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -42730,7 +45352,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 3261, + "id": 3456, "isConstant": false, "isLValue": false, "isPure": false, @@ -42738,14 +45360,14 @@ "leftExpression": { "arguments": [ { - "id": 3254, + "id": 3449, "name": "rounding", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3241, - "src": "13476:8:13", + "referencedDeclaration": 3436, + "src": "13476:8:14", "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" } } @@ -42753,22 +45375,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" } ], - "id": 3253, + "id": 3448, "name": "unsignedRoundsUp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3414, - "src": "13459:16:13", + "referencedDeclaration": 3609, + "src": "13459:16:14", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$2372_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$2567_$returns$_t_bool_$", "typeString": "function (enum Math.Rounding) pure returns (bool)" } }, - "id": 3255, + "id": 3450, "isConstant": false, "isLValue": false, "isPure": false, @@ -42777,7 +45399,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "13459:26:13", + "src": "13459:26:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -42791,7 +45413,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3260, + "id": 3455, "isConstant": false, "isLValue": false, "isPure": false, @@ -42801,21 +45423,21 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3258, + "id": 3453, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "3130", - "id": 3256, + "id": 3451, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13489:2:13", + "src": "13489:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_10_by_1", "typeString": "int_const 10" @@ -42825,18 +45447,18 @@ "nodeType": "BinaryOperation", "operator": "**", "rightExpression": { - "id": 3257, + "id": 3452, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3247, - "src": "13495:6:13", + "referencedDeclaration": 3442, + "src": "13495:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "13489:12:13", + "src": "13489:12:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -42845,24 +45467,24 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 3259, + "id": 3454, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3238, - "src": "13504:5:13", + "referencedDeclaration": 3433, + "src": "13504:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "13489:20:13", + "src": "13489:20:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "13459:50:13", + "src": "13459:50:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -42870,37 +45492,37 @@ }, "falseExpression": { "hexValue": "30", - "id": 3263, + "id": 3458, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13516:1:13", + "src": "13516:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "id": 3264, + "id": 3459, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "13459:58:13", + "src": "13459:58:14", "trueExpression": { "hexValue": "31", - "id": 3262, + "id": 3457, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13512:1:13", + "src": "13512:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -42913,60 +45535,60 @@ } } ], - "id": 3265, + "id": 3460, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "13458:60:13", + "src": "13458:60:14", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "13449:69:13", + "src": "13449:69:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3245, - "id": 3267, + "functionReturnParameters": 3440, + "id": 3462, "nodeType": "Return", - "src": "13442:76:13" + "src": "13442:76:14" } ] } ] }, "documentation": { - "id": 3236, + "id": 3431, "nodeType": "StructuredDocumentation", - "src": "13136:143:13", + "src": "13136:143:14", "text": " @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." }, - "id": 3270, + "id": 3465, "implemented": true, "kind": "function", "modifiers": [], "name": "log10", - "nameLocation": "13293:5:13", + "nameLocation": "13293:5:14", "nodeType": "FunctionDefinition", "parameters": { - "id": 3242, + "id": 3437, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3238, + "id": 3433, "mutability": "mutable", "name": "value", - "nameLocation": "13307:5:13", + "nameLocation": "13307:5:14", "nodeType": "VariableDeclaration", - "scope": 3270, - "src": "13299:13:13", + "scope": 3465, + "src": "13299:13:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -42974,10 +45596,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3237, + "id": 3432, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "13299:7:13", + "src": "13299:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -42987,57 +45609,57 @@ }, { "constant": false, - "id": 3241, + "id": 3436, "mutability": "mutable", "name": "rounding", - "nameLocation": "13323:8:13", + "nameLocation": "13323:8:14", "nodeType": "VariableDeclaration", - "scope": 3270, - "src": "13314:17:13", + "scope": 3465, + "src": "13314:17:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" }, "typeName": { - "id": 3240, + "id": 3435, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 3239, + "id": 3434, "name": "Rounding", "nameLocations": [ - "13314:8:13" + "13314:8:14" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2372, - "src": "13314:8:13" + "referencedDeclaration": 2567, + "src": "13314:8:14" }, - "referencedDeclaration": 2372, - "src": "13314:8:13", + "referencedDeclaration": 2567, + "src": "13314:8:14", "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" } }, "visibility": "internal" } ], - "src": "13298:34:13" + "src": "13298:34:14" }, "returnParameters": { - "id": 3245, + "id": 3440, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3244, + "id": 3439, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 3270, - "src": "13356:7:13", + "scope": 3465, + "src": "13356:7:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -43045,10 +45667,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3243, + "id": 3438, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "13356:7:13", + "src": "13356:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43057,34 +45679,34 @@ "visibility": "internal" } ], - "src": "13355:9:13" + "src": "13355:9:14" }, - "scope": 3415, - "src": "13284:251:13", + "scope": 3610, + "src": "13284:251:14", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { - "id": 3356, + "id": 3551, "nodeType": "Block", - "src": "13855:600:13", + "src": "13855:600:14", "statements": [ { "assignments": [ - 3279 + 3474 ], "declarations": [ { "constant": false, - "id": 3279, + "id": 3474, "mutability": "mutable", "name": "result", - "nameLocation": "13873:6:13", + "nameLocation": "13873:6:14", "nodeType": "VariableDeclaration", - "scope": 3356, - "src": "13865:14:13", + "scope": 3551, + "src": "13865:14:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -43092,10 +45714,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3278, + "id": 3473, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "13865:7:13", + "src": "13865:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43104,17 +45726,17 @@ "visibility": "internal" } ], - "id": 3281, + "id": 3476, "initialValue": { "hexValue": "30", - "id": 3280, + "id": 3475, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13882:1:13", + "src": "13882:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -43122,12 +45744,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "13865:18:13" + "src": "13865:18:14" }, { - "id": 3353, + "id": 3548, "nodeType": "UncheckedBlock", - "src": "13893:533:13", + "src": "13893:533:14", "statements": [ { "condition": { @@ -43135,7 +45757,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3286, + "id": 3481, "isConstant": false, "isLValue": false, "isPure": false, @@ -43145,18 +45767,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3284, + "id": 3479, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3282, + "id": 3477, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "13921:5:13", + "referencedDeclaration": 3468, + "src": "13921:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43166,21 +45788,21 @@ "operator": ">>", "rightExpression": { "hexValue": "313238", - "id": 3283, + "id": 3478, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13930:3:13", + "src": "13930:3:14", "typeDescriptions": { "typeIdentifier": "t_rational_128_by_1", "typeString": "int_const 128" }, "value": "128" }, - "src": "13921:12:13", + "src": "13921:12:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43190,48 +45812,48 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 3285, + "id": 3480, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13936:1:13", + "src": "13936:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "13921:16:13", + "src": "13921:16:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3296, + "id": 3491, "nodeType": "IfStatement", - "src": "13917:98:13", + "src": "13917:98:14", "trueBody": { - "id": 3295, + "id": 3490, "nodeType": "Block", - "src": "13939:76:13", + "src": "13939:76:14", "statements": [ { "expression": { - "id": 3289, + "id": 3484, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3287, + "id": 3482, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "13957:5:13", + "referencedDeclaration": 3468, + "src": "13957:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43241,44 +45863,44 @@ "operator": ">>=", "rightHandSide": { "hexValue": "313238", - "id": 3288, + "id": 3483, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13967:3:13", + "src": "13967:3:14", "typeDescriptions": { "typeIdentifier": "t_rational_128_by_1", "typeString": "int_const 128" }, "value": "128" }, - "src": "13957:13:13", + "src": "13957:13:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3290, + "id": 3485, "nodeType": "ExpressionStatement", - "src": "13957:13:13" + "src": "13957:13:14" }, { "expression": { - "id": 3293, + "id": 3488, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3291, + "id": 3486, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3279, - "src": "13988:6:13", + "referencedDeclaration": 3474, + "src": "13988:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43288,29 +45910,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "3136", - "id": 3292, + "id": 3487, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13998:2:13", + "src": "13998:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_16_by_1", "typeString": "int_const 16" }, "value": "16" }, - "src": "13988:12:13", + "src": "13988:12:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3294, + "id": 3489, "nodeType": "ExpressionStatement", - "src": "13988:12:13" + "src": "13988:12:14" } ] } @@ -43321,7 +45943,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3301, + "id": 3496, "isConstant": false, "isLValue": false, "isPure": false, @@ -43331,18 +45953,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3299, + "id": 3494, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3297, + "id": 3492, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "14032:5:13", + "referencedDeclaration": 3468, + "src": "14032:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43352,21 +45974,21 @@ "operator": ">>", "rightExpression": { "hexValue": "3634", - "id": 3298, + "id": 3493, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14041:2:13", + "src": "14041:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_64_by_1", "typeString": "int_const 64" }, "value": "64" }, - "src": "14032:11:13", + "src": "14032:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43376,48 +45998,48 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 3300, + "id": 3495, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14046:1:13", + "src": "14046:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "14032:15:13", + "src": "14032:15:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3311, + "id": 3506, "nodeType": "IfStatement", - "src": "14028:95:13", + "src": "14028:95:14", "trueBody": { - "id": 3310, + "id": 3505, "nodeType": "Block", - "src": "14049:74:13", + "src": "14049:74:14", "statements": [ { "expression": { - "id": 3304, + "id": 3499, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3302, + "id": 3497, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "14067:5:13", + "referencedDeclaration": 3468, + "src": "14067:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43427,44 +46049,44 @@ "operator": ">>=", "rightHandSide": { "hexValue": "3634", - "id": 3303, + "id": 3498, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14077:2:13", + "src": "14077:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_64_by_1", "typeString": "int_const 64" }, "value": "64" }, - "src": "14067:12:13", + "src": "14067:12:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3305, + "id": 3500, "nodeType": "ExpressionStatement", - "src": "14067:12:13" + "src": "14067:12:14" }, { "expression": { - "id": 3308, + "id": 3503, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3306, + "id": 3501, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3279, - "src": "14097:6:13", + "referencedDeclaration": 3474, + "src": "14097:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43474,29 +46096,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "38", - "id": 3307, + "id": 3502, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14107:1:13", + "src": "14107:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8" }, "value": "8" }, - "src": "14097:11:13", + "src": "14097:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3309, + "id": 3504, "nodeType": "ExpressionStatement", - "src": "14097:11:13" + "src": "14097:11:14" } ] } @@ -43507,7 +46129,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3316, + "id": 3511, "isConstant": false, "isLValue": false, "isPure": false, @@ -43517,18 +46139,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3314, + "id": 3509, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3312, + "id": 3507, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "14140:5:13", + "referencedDeclaration": 3468, + "src": "14140:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43538,21 +46160,21 @@ "operator": ">>", "rightExpression": { "hexValue": "3332", - "id": 3313, + "id": 3508, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14149:2:13", + "src": "14149:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, "value": "32" }, - "src": "14140:11:13", + "src": "14140:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43562,48 +46184,48 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 3315, + "id": 3510, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14154:1:13", + "src": "14154:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "14140:15:13", + "src": "14140:15:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3326, + "id": 3521, "nodeType": "IfStatement", - "src": "14136:95:13", + "src": "14136:95:14", "trueBody": { - "id": 3325, + "id": 3520, "nodeType": "Block", - "src": "14157:74:13", + "src": "14157:74:14", "statements": [ { "expression": { - "id": 3319, + "id": 3514, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3317, + "id": 3512, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "14175:5:13", + "referencedDeclaration": 3468, + "src": "14175:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43613,44 +46235,44 @@ "operator": ">>=", "rightHandSide": { "hexValue": "3332", - "id": 3318, + "id": 3513, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14185:2:13", + "src": "14185:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, "value": "32" }, - "src": "14175:12:13", + "src": "14175:12:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3320, + "id": 3515, "nodeType": "ExpressionStatement", - "src": "14175:12:13" + "src": "14175:12:14" }, { "expression": { - "id": 3323, + "id": 3518, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3321, + "id": 3516, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3279, - "src": "14205:6:13", + "referencedDeclaration": 3474, + "src": "14205:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43660,29 +46282,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "34", - "id": 3322, + "id": 3517, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14215:1:13", + "src": "14215:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", "typeString": "int_const 4" }, "value": "4" }, - "src": "14205:11:13", + "src": "14205:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3324, + "id": 3519, "nodeType": "ExpressionStatement", - "src": "14205:11:13" + "src": "14205:11:14" } ] } @@ -43693,7 +46315,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3331, + "id": 3526, "isConstant": false, "isLValue": false, "isPure": false, @@ -43703,18 +46325,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3329, + "id": 3524, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3327, + "id": 3522, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "14248:5:13", + "referencedDeclaration": 3468, + "src": "14248:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43724,21 +46346,21 @@ "operator": ">>", "rightExpression": { "hexValue": "3136", - "id": 3328, + "id": 3523, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14257:2:13", + "src": "14257:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_16_by_1", "typeString": "int_const 16" }, "value": "16" }, - "src": "14248:11:13", + "src": "14248:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43748,48 +46370,48 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 3330, + "id": 3525, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14262:1:13", + "src": "14262:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "14248:15:13", + "src": "14248:15:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3341, + "id": 3536, "nodeType": "IfStatement", - "src": "14244:95:13", + "src": "14244:95:14", "trueBody": { - "id": 3340, + "id": 3535, "nodeType": "Block", - "src": "14265:74:13", + "src": "14265:74:14", "statements": [ { "expression": { - "id": 3334, + "id": 3529, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3332, + "id": 3527, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "14283:5:13", + "referencedDeclaration": 3468, + "src": "14283:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43799,44 +46421,44 @@ "operator": ">>=", "rightHandSide": { "hexValue": "3136", - "id": 3333, + "id": 3528, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14293:2:13", + "src": "14293:2:14", "typeDescriptions": { "typeIdentifier": "t_rational_16_by_1", "typeString": "int_const 16" }, "value": "16" }, - "src": "14283:12:13", + "src": "14283:12:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3335, + "id": 3530, "nodeType": "ExpressionStatement", - "src": "14283:12:13" + "src": "14283:12:14" }, { "expression": { - "id": 3338, + "id": 3533, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3336, + "id": 3531, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3279, - "src": "14313:6:13", + "referencedDeclaration": 3474, + "src": "14313:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43846,29 +46468,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "32", - "id": 3337, + "id": 3532, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14323:1:13", + "src": "14323:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, - "src": "14313:11:13", + "src": "14313:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3339, + "id": 3534, "nodeType": "ExpressionStatement", - "src": "14313:11:13" + "src": "14313:11:14" } ] } @@ -43879,7 +46501,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3346, + "id": 3541, "isConstant": false, "isLValue": false, "isPure": false, @@ -43889,18 +46511,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3344, + "id": 3539, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3342, + "id": 3537, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "14356:5:13", + "referencedDeclaration": 3468, + "src": "14356:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43910,21 +46532,21 @@ "operator": ">>", "rightExpression": { "hexValue": "38", - "id": 3343, + "id": 3538, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14365:1:13", + "src": "14365:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8" }, "value": "8" }, - "src": "14356:10:13", + "src": "14356:10:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43934,48 +46556,48 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 3345, + "id": 3540, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14369:1:13", + "src": "14369:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "14356:14:13", + "src": "14356:14:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3352, + "id": 3547, "nodeType": "IfStatement", - "src": "14352:64:13", + "src": "14352:64:14", "trueBody": { - "id": 3351, + "id": 3546, "nodeType": "Block", - "src": "14372:44:13", + "src": "14372:44:14", "statements": [ { "expression": { - "id": 3349, + "id": 3544, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 3347, + "id": 3542, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3279, - "src": "14390:6:13", + "referencedDeclaration": 3474, + "src": "14390:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43985,29 +46607,29 @@ "operator": "+=", "rightHandSide": { "hexValue": "31", - "id": 3348, + "id": 3543, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14400:1:13", + "src": "14400:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "14390:11:13", + "src": "14390:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3350, + "id": 3545, "nodeType": "ExpressionStatement", - "src": "14390:11:13" + "src": "14390:11:14" } ] } @@ -44016,50 +46638,50 @@ }, { "expression": { - "id": 3354, + "id": 3549, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3279, - "src": "14442:6:13", + "referencedDeclaration": 3474, + "src": "14442:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3277, - "id": 3355, + "functionReturnParameters": 3472, + "id": 3550, "nodeType": "Return", - "src": "14435:13:13" + "src": "14435:13:14" } ] }, "documentation": { - "id": 3271, + "id": 3466, "nodeType": "StructuredDocumentation", - "src": "13541:246:13", + "src": "13541:246:14", "text": " @dev Return the log in base 256 of a positive value rounded towards zero.\n Returns 0 if given 0.\n Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string." }, - "id": 3357, + "id": 3552, "implemented": true, "kind": "function", "modifiers": [], "name": "log256", - "nameLocation": "13801:6:13", + "nameLocation": "13801:6:14", "nodeType": "FunctionDefinition", "parameters": { - "id": 3274, + "id": 3469, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3273, + "id": 3468, "mutability": "mutable", "name": "value", - "nameLocation": "13816:5:13", + "nameLocation": "13816:5:14", "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "13808:13:13", + "scope": 3552, + "src": "13808:13:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -44067,10 +46689,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3272, + "id": 3467, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "13808:7:13", + "src": "13808:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -44079,21 +46701,21 @@ "visibility": "internal" } ], - "src": "13807:15:13" + "src": "13807:15:14" }, "returnParameters": { - "id": 3277, + "id": 3472, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3276, + "id": 3471, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "13846:7:13", + "scope": 3552, + "src": "13846:7:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -44101,10 +46723,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3275, + "id": 3470, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "13846:7:13", + "src": "13846:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -44113,39 +46735,39 @@ "visibility": "internal" } ], - "src": "13845:9:13" + "src": "13845:9:14" }, - "scope": 3415, - "src": "13792:663:13", + "scope": 3610, + "src": "13792:663:14", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { - "id": 3394, + "id": 3589, "nodeType": "Block", - "src": "14692:177:13", + "src": "14692:177:14", "statements": [ { - "id": 3393, + "id": 3588, "nodeType": "UncheckedBlock", - "src": "14702:161:13", + "src": "14702:161:14", "statements": [ { "assignments": [ - 3369 + 3564 ], "declarations": [ { "constant": false, - "id": 3369, + "id": 3564, "mutability": "mutable", "name": "result", - "nameLocation": "14734:6:13", + "nameLocation": "14734:6:14", "nodeType": "VariableDeclaration", - "scope": 3393, - "src": "14726:14:13", + "scope": 3588, + "src": "14726:14:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -44153,10 +46775,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3368, + "id": 3563, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "14726:7:13", + "src": "14726:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -44165,16 +46787,16 @@ "visibility": "internal" } ], - "id": 3373, + "id": 3568, "initialValue": { "arguments": [ { - "id": 3371, + "id": 3566, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "14750:5:13", + "referencedDeclaration": 3555, + "src": "14750:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -44188,21 +46810,21 @@ "typeString": "uint256" } ], - "id": 3370, + "id": 3565, "name": "log256", "nodeType": "Identifier", "overloadedDeclarations": [ - 3357, - 3395 + 3552, + 3590 ], - "referencedDeclaration": 3357, - "src": "14743:6:13", + "referencedDeclaration": 3552, + "src": "14743:6:14", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256) pure returns (uint256)" } }, - "id": 3372, + "id": 3567, "isConstant": false, "isLValue": false, "isPure": false, @@ -44211,7 +46833,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14743:13:13", + "src": "14743:13:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -44219,7 +46841,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "14726:30:13" + "src": "14726:30:14" }, { "expression": { @@ -44227,18 +46849,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3391, + "id": 3586, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3374, + "id": 3569, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3369, - "src": "14777:6:13", + "referencedDeclaration": 3564, + "src": "14777:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -44254,7 +46876,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 3386, + "id": 3581, "isConstant": false, "isLValue": false, "isPure": false, @@ -44262,14 +46884,14 @@ "leftExpression": { "arguments": [ { - "id": 3376, + "id": 3571, "name": "rounding", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3363, - "src": "14804:8:13", + "referencedDeclaration": 3558, + "src": "14804:8:14", "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" } } @@ -44277,22 +46899,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" } ], - "id": 3375, + "id": 3570, "name": "unsignedRoundsUp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3414, - "src": "14787:16:13", + "referencedDeclaration": 3609, + "src": "14787:16:14", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$2372_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$2567_$returns$_t_bool_$", "typeString": "function (enum Math.Rounding) pure returns (bool)" } }, - "id": 3377, + "id": 3572, "isConstant": false, "isLValue": false, "isPure": false, @@ -44301,7 +46923,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "14787:26:13", + "src": "14787:26:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -44315,7 +46937,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3385, + "id": 3580, "isConstant": false, "isLValue": false, "isPure": false, @@ -44325,21 +46947,21 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3383, + "id": 3578, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "31", - "id": 3378, + "id": 3573, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14817:1:13", + "src": "14817:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -44355,18 +46977,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3381, + "id": 3576, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3379, + "id": 3574, "name": "result", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3369, - "src": "14823:6:13", + "referencedDeclaration": 3564, + "src": "14823:6:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -44376,41 +46998,41 @@ "operator": "<<", "rightExpression": { "hexValue": "33", - "id": 3380, + "id": 3575, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14833:1:13", + "src": "14833:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", "typeString": "int_const 3" }, "value": "3" }, - "src": "14823:11:13", + "src": "14823:11:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 3382, + "id": 3577, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "14822:13:13", + "src": "14822:13:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "14817:18:13", + "src": "14817:18:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -44419,24 +47041,24 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 3384, + "id": 3579, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "14838:5:13", + "referencedDeclaration": 3555, + "src": "14838:5:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "14817:26:13", + "src": "14817:26:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "14787:56:13", + "src": "14787:56:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -44444,37 +47066,37 @@ }, "falseExpression": { "hexValue": "30", - "id": 3388, + "id": 3583, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14850:1:13", + "src": "14850:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "id": 3389, + "id": 3584, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "14787:64:13", + "src": "14787:64:14", "trueExpression": { "hexValue": "31", - "id": 3387, + "id": 3582, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14846:1:13", + "src": "14846:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -44487,60 +47109,60 @@ } } ], - "id": 3390, + "id": 3585, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "14786:66:13", + "src": "14786:66:14", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "14777:75:13", + "src": "14777:75:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3367, - "id": 3392, + "functionReturnParameters": 3562, + "id": 3587, "nodeType": "Return", - "src": "14770:82:13" + "src": "14770:82:14" } ] } ] }, "documentation": { - "id": 3358, + "id": 3553, "nodeType": "StructuredDocumentation", - "src": "14461:144:13", + "src": "14461:144:14", "text": " @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." }, - "id": 3395, + "id": 3590, "implemented": true, "kind": "function", "modifiers": [], "name": "log256", - "nameLocation": "14619:6:13", + "nameLocation": "14619:6:14", "nodeType": "FunctionDefinition", "parameters": { - "id": 3364, + "id": 3559, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3360, + "id": 3555, "mutability": "mutable", "name": "value", - "nameLocation": "14634:5:13", + "nameLocation": "14634:5:14", "nodeType": "VariableDeclaration", - "scope": 3395, - "src": "14626:13:13", + "scope": 3590, + "src": "14626:13:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -44548,10 +47170,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3359, + "id": 3554, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "14626:7:13", + "src": "14626:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -44561,57 +47183,57 @@ }, { "constant": false, - "id": 3363, + "id": 3558, "mutability": "mutable", "name": "rounding", - "nameLocation": "14650:8:13", + "nameLocation": "14650:8:14", "nodeType": "VariableDeclaration", - "scope": 3395, - "src": "14641:17:13", + "scope": 3590, + "src": "14641:17:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" }, "typeName": { - "id": 3362, + "id": 3557, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 3361, + "id": 3556, "name": "Rounding", "nameLocations": [ - "14641:8:13" + "14641:8:14" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2372, - "src": "14641:8:13" + "referencedDeclaration": 2567, + "src": "14641:8:14" }, - "referencedDeclaration": 2372, - "src": "14641:8:13", + "referencedDeclaration": 2567, + "src": "14641:8:14", "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" } }, "visibility": "internal" } ], - "src": "14625:34:13" + "src": "14625:34:14" }, "returnParameters": { - "id": 3367, + "id": 3562, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3366, + "id": 3561, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 3395, - "src": "14683:7:13", + "scope": 3590, + "src": "14683:7:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -44619,10 +47241,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3365, + "id": 3560, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "14683:7:13", + "src": "14683:7:14", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -44631,19 +47253,19 @@ "visibility": "internal" } ], - "src": "14682:9:13" + "src": "14682:9:14" }, - "scope": 3415, - "src": "14610:259:13", + "scope": 3610, + "src": "14610:259:14", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { - "id": 3413, + "id": 3608, "nodeType": "Block", - "src": "15067:48:13", + "src": "15067:48:14", "statements": [ { "expression": { @@ -44651,7 +47273,7 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 3411, + "id": 3606, "isConstant": false, "isLValue": false, "isPure": false, @@ -44661,7 +47283,7 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 3409, + "id": 3604, "isConstant": false, "isLValue": false, "isPure": false, @@ -44669,14 +47291,14 @@ "leftExpression": { "arguments": [ { - "id": 3406, + "id": 3601, "name": "rounding", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "15090:8:13", + "referencedDeclaration": 3594, + "src": "15090:8:14", "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" } } @@ -44684,30 +47306,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" } ], - "id": 3405, + "id": 3600, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "15084:5:13", + "src": "15084:5:14", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": { - "id": 3404, + "id": 3599, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "15084:5:13", + "src": "15084:5:14", "typeDescriptions": {} } }, - "id": 3407, + "id": 3602, "isConstant": false, "isLValue": false, "isPure": false, @@ -44716,7 +47338,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "15084:15:13", + "src": "15084:15:14", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -44727,21 +47349,21 @@ "operator": "%", "rightExpression": { "hexValue": "32", - "id": 3408, + "id": 3603, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "15102:1:13", + "src": "15102:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, - "src": "15084:19:13", + "src": "15084:19:14", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -44751,103 +47373,103 @@ "operator": "==", "rightExpression": { "hexValue": "31", - "id": 3410, + "id": 3605, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "15107:1:13", + "src": "15107:1:14", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "15084:24:13", + "src": "15084:24:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 3403, - "id": 3412, + "functionReturnParameters": 3598, + "id": 3607, "nodeType": "Return", - "src": "15077:31:13" + "src": "15077:31:14" } ] }, "documentation": { - "id": 3396, + "id": 3591, "nodeType": "StructuredDocumentation", - "src": "14875:113:13", + "src": "14875:113:14", "text": " @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers." }, - "id": 3414, + "id": 3609, "implemented": true, "kind": "function", "modifiers": [], "name": "unsignedRoundsUp", - "nameLocation": "15002:16:13", + "nameLocation": "15002:16:14", "nodeType": "FunctionDefinition", "parameters": { - "id": 3400, + "id": 3595, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3399, + "id": 3594, "mutability": "mutable", "name": "rounding", - "nameLocation": "15028:8:13", + "nameLocation": "15028:8:14", "nodeType": "VariableDeclaration", - "scope": 3414, - "src": "15019:17:13", + "scope": 3609, + "src": "15019:17:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" }, "typeName": { - "id": 3398, + "id": 3593, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 3397, + "id": 3592, "name": "Rounding", "nameLocations": [ - "15019:8:13" + "15019:8:14" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 2372, - "src": "15019:8:13" + "referencedDeclaration": 2567, + "src": "15019:8:14" }, - "referencedDeclaration": 2372, - "src": "15019:8:13", + "referencedDeclaration": 2567, + "src": "15019:8:14", "typeDescriptions": { - "typeIdentifier": "t_enum$_Rounding_$2372", + "typeIdentifier": "t_enum$_Rounding_$2567", "typeString": "enum Math.Rounding" } }, "visibility": "internal" } ], - "src": "15018:19:13" + "src": "15018:19:14" }, "returnParameters": { - "id": 3403, + "id": 3598, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3402, + "id": 3597, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 3414, - "src": "15061:4:13", + "scope": 3609, + "src": "15061:4:14", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -44855,10 +47477,10 @@ "typeString": "bool" }, "typeName": { - "id": 3401, + "id": 3596, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "15061:4:13", + "src": "15061:4:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -44867,41 +47489,41 @@ "visibility": "internal" } ], - "src": "15060:6:13" + "src": "15060:6:14" }, - "scope": 3415, - "src": "14993:122:13", + "scope": 3610, + "src": "14993:122:14", "stateMutability": "pure", "virtual": false, "visibility": "internal" } ], - "scope": 3416, - "src": "203:14914:13", + "scope": 3611, + "src": "203:14914:14", "usedErrors": [ - 2367 + 2562 ], "usedEvents": [] } ], - "src": "103:15015:13" + "src": "103:15015:14" }, - "id": 13 + "id": 14 }, "@openzeppelin/contracts/utils/math/SignedMath.sol": { "ast": { "absolutePath": "@openzeppelin/contracts/utils/math/SignedMath.sol", "exportedSymbols": { "SignedMath": [ - 3520 + 3715 ] }, - "id": 3521, + "id": 3716, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { - "id": 3417, + "id": 3612, "literals": [ "solidity", "^", @@ -44909,7 +47531,7 @@ ".20" ], "nodeType": "PragmaDirective", - "src": "109:24:14" + "src": "109:24:15" }, { "abstract": false, @@ -44918,25 +47540,25 @@ "contractDependencies": [], "contractKind": "library", "documentation": { - "id": 3418, + "id": 3613, "nodeType": "StructuredDocumentation", - "src": "135:80:14", + "src": "135:80:15", "text": " @dev Standard signed math utilities missing in the Solidity language." }, "fullyImplemented": true, - "id": 3520, + "id": 3715, "linearizedBaseContracts": [ - 3520 + 3715 ], "name": "SignedMath", - "nameLocation": "224:10:14", + "nameLocation": "224:10:15", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 3435, + "id": 3630, "nodeType": "Block", - "src": "376:37:14", + "src": "376:37:15", "statements": [ { "expression": { @@ -44945,18 +47567,18 @@ "typeIdentifier": "t_int256", "typeString": "int256" }, - "id": 3430, + "id": 3625, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3428, + "id": 3623, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3421, - "src": "393:1:14", + "referencedDeclaration": 3616, + "src": "393:1:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -44965,49 +47587,49 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "id": 3429, + "id": 3624, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3423, - "src": "397:1:14", + "referencedDeclaration": 3618, + "src": "397:1:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, - "src": "393:5:14", + "src": "393:5:15", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseExpression": { - "id": 3432, + "id": 3627, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3423, - "src": "405:1:14", + "referencedDeclaration": 3618, + "src": "405:1:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, - "id": 3433, + "id": 3628, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "393:13:14", + "src": "393:13:15", "trueExpression": { - "id": 3431, + "id": 3626, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3421, - "src": "401:1:14", + "referencedDeclaration": 3616, + "src": "401:1:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45018,39 +47640,39 @@ "typeString": "int256" } }, - "functionReturnParameters": 3427, - "id": 3434, + "functionReturnParameters": 3622, + "id": 3629, "nodeType": "Return", - "src": "386:20:14" + "src": "386:20:15" } ] }, "documentation": { - "id": 3419, + "id": 3614, "nodeType": "StructuredDocumentation", - "src": "241:66:14", + "src": "241:66:15", "text": " @dev Returns the largest of two signed numbers." }, - "id": 3436, + "id": 3631, "implemented": true, "kind": "function", "modifiers": [], "name": "max", - "nameLocation": "321:3:14", + "nameLocation": "321:3:15", "nodeType": "FunctionDefinition", "parameters": { - "id": 3424, + "id": 3619, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3421, + "id": 3616, "mutability": "mutable", "name": "a", - "nameLocation": "332:1:14", + "nameLocation": "332:1:15", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "325:8:14", + "scope": 3631, + "src": "325:8:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -45058,10 +47680,10 @@ "typeString": "int256" }, "typeName": { - "id": 3420, + "id": 3615, "name": "int256", "nodeType": "ElementaryTypeName", - "src": "325:6:14", + "src": "325:6:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45071,13 +47693,13 @@ }, { "constant": false, - "id": 3423, + "id": 3618, "mutability": "mutable", "name": "b", - "nameLocation": "342:1:14", + "nameLocation": "342:1:15", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "335:8:14", + "scope": 3631, + "src": "335:8:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -45085,10 +47707,10 @@ "typeString": "int256" }, "typeName": { - "id": 3422, + "id": 3617, "name": "int256", "nodeType": "ElementaryTypeName", - "src": "335:6:14", + "src": "335:6:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45097,21 +47719,21 @@ "visibility": "internal" } ], - "src": "324:20:14" + "src": "324:20:15" }, "returnParameters": { - "id": 3427, + "id": 3622, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3426, + "id": 3621, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 3436, - "src": "368:6:14", + "scope": 3631, + "src": "368:6:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -45119,10 +47741,10 @@ "typeString": "int256" }, "typeName": { - "id": 3425, + "id": 3620, "name": "int256", "nodeType": "ElementaryTypeName", - "src": "368:6:14", + "src": "368:6:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45131,19 +47753,19 @@ "visibility": "internal" } ], - "src": "367:8:14" + "src": "367:8:15" }, - "scope": 3520, - "src": "312:101:14", + "scope": 3715, + "src": "312:101:15", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { - "id": 3453, + "id": 3648, "nodeType": "Block", - "src": "555:37:14", + "src": "555:37:15", "statements": [ { "expression": { @@ -45152,18 +47774,18 @@ "typeIdentifier": "t_int256", "typeString": "int256" }, - "id": 3448, + "id": 3643, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3446, + "id": 3641, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "572:1:14", + "referencedDeclaration": 3634, + "src": "572:1:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45172,49 +47794,49 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 3447, + "id": 3642, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "576:1:14", + "referencedDeclaration": 3636, + "src": "576:1:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, - "src": "572:5:14", + "src": "572:5:15", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseExpression": { - "id": 3450, + "id": 3645, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3441, - "src": "584:1:14", + "referencedDeclaration": 3636, + "src": "584:1:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, - "id": 3451, + "id": 3646, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "572:13:14", + "src": "572:13:15", "trueExpression": { - "id": 3449, + "id": 3644, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3439, - "src": "580:1:14", + "referencedDeclaration": 3634, + "src": "580:1:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45225,39 +47847,39 @@ "typeString": "int256" } }, - "functionReturnParameters": 3445, - "id": 3452, + "functionReturnParameters": 3640, + "id": 3647, "nodeType": "Return", - "src": "565:20:14" + "src": "565:20:15" } ] }, "documentation": { - "id": 3437, + "id": 3632, "nodeType": "StructuredDocumentation", - "src": "419:67:14", + "src": "419:67:15", "text": " @dev Returns the smallest of two signed numbers." }, - "id": 3454, + "id": 3649, "implemented": true, "kind": "function", "modifiers": [], "name": "min", - "nameLocation": "500:3:14", + "nameLocation": "500:3:15", "nodeType": "FunctionDefinition", "parameters": { - "id": 3442, + "id": 3637, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3439, + "id": 3634, "mutability": "mutable", "name": "a", - "nameLocation": "511:1:14", + "nameLocation": "511:1:15", "nodeType": "VariableDeclaration", - "scope": 3454, - "src": "504:8:14", + "scope": 3649, + "src": "504:8:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -45265,10 +47887,10 @@ "typeString": "int256" }, "typeName": { - "id": 3438, + "id": 3633, "name": "int256", "nodeType": "ElementaryTypeName", - "src": "504:6:14", + "src": "504:6:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45278,13 +47900,13 @@ }, { "constant": false, - "id": 3441, + "id": 3636, "mutability": "mutable", "name": "b", - "nameLocation": "521:1:14", + "nameLocation": "521:1:15", "nodeType": "VariableDeclaration", - "scope": 3454, - "src": "514:8:14", + "scope": 3649, + "src": "514:8:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -45292,10 +47914,10 @@ "typeString": "int256" }, "typeName": { - "id": 3440, + "id": 3635, "name": "int256", "nodeType": "ElementaryTypeName", - "src": "514:6:14", + "src": "514:6:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45304,21 +47926,21 @@ "visibility": "internal" } ], - "src": "503:20:14" + "src": "503:20:15" }, "returnParameters": { - "id": 3445, + "id": 3640, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3444, + "id": 3639, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 3454, - "src": "547:6:14", + "scope": 3649, + "src": "547:6:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -45326,10 +47948,10 @@ "typeString": "int256" }, "typeName": { - "id": 3443, + "id": 3638, "name": "int256", "nodeType": "ElementaryTypeName", - "src": "547:6:14", + "src": "547:6:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45338,34 +47960,34 @@ "visibility": "internal" } ], - "src": "546:8:14" + "src": "546:8:15" }, - "scope": 3520, - "src": "491:101:14", + "scope": 3715, + "src": "491:101:15", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { - "id": 3497, + "id": 3692, "nodeType": "Block", - "src": "797:162:14", + "src": "797:162:15", "statements": [ { "assignments": [ - 3465 + 3660 ], "declarations": [ { "constant": false, - "id": 3465, + "id": 3660, "mutability": "mutable", "name": "x", - "nameLocation": "866:1:14", + "nameLocation": "866:1:15", "nodeType": "VariableDeclaration", - "scope": 3497, - "src": "859:8:14", + "scope": 3692, + "src": "859:8:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -45373,10 +47995,10 @@ "typeString": "int256" }, "typeName": { - "id": 3464, + "id": 3659, "name": "int256", "nodeType": "ElementaryTypeName", - "src": "859:6:14", + "src": "859:6:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45385,13 +48007,13 @@ "visibility": "internal" } ], - "id": 3478, + "id": 3673, "initialValue": { "commonType": { "typeIdentifier": "t_int256", "typeString": "int256" }, - "id": 3477, + "id": 3672, "isConstant": false, "isLValue": false, "isPure": false, @@ -45403,18 +48025,18 @@ "typeIdentifier": "t_int256", "typeString": "int256" }, - "id": 3468, + "id": 3663, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3466, + "id": 3661, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3457, - "src": "871:1:14", + "referencedDeclaration": 3652, + "src": "871:1:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45423,32 +48045,32 @@ "nodeType": "BinaryOperation", "operator": "&", "rightExpression": { - "id": 3467, + "id": 3662, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3459, - "src": "875:1:14", + "referencedDeclaration": 3654, + "src": "875:1:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, - "src": "871:5:14", + "src": "871:5:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], - "id": 3469, + "id": 3664, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "870:7:14", + "src": "870:7:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45463,7 +48085,7 @@ "typeIdentifier": "t_int256", "typeString": "int256" }, - "id": 3475, + "id": 3670, "isConstant": false, "isLValue": false, "isPure": false, @@ -45475,18 +48097,18 @@ "typeIdentifier": "t_int256", "typeString": "int256" }, - "id": 3472, + "id": 3667, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3470, + "id": 3665, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3457, - "src": "882:1:14", + "referencedDeclaration": 3652, + "src": "882:1:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45495,32 +48117,32 @@ "nodeType": "BinaryOperation", "operator": "^", "rightExpression": { - "id": 3471, + "id": 3666, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3459, - "src": "886:1:14", + "referencedDeclaration": 3654, + "src": "886:1:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, - "src": "882:5:14", + "src": "882:5:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], - "id": 3473, + "id": 3668, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "881:7:14", + "src": "881:7:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45530,48 +48152,48 @@ "operator": ">>", "rightExpression": { "hexValue": "31", - "id": 3474, + "id": 3669, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "892:1:14", + "src": "892:1:15", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "881:12:14", + "src": "881:12:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], - "id": 3476, + "id": 3671, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "880:14:14", + "src": "880:14:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, - "src": "870:24:14", + "src": "870:24:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, "nodeType": "VariableDeclarationStatement", - "src": "859:35:14" + "src": "859:35:15" }, { "expression": { @@ -45579,18 +48201,18 @@ "typeIdentifier": "t_int256", "typeString": "int256" }, - "id": 3495, + "id": 3690, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3479, + "id": 3674, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "911:1:14", + "referencedDeclaration": 3660, + "src": "911:1:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45605,7 +48227,7 @@ "typeIdentifier": "t_int256", "typeString": "int256" }, - "id": 3493, + "id": 3688, "isConstant": false, "isLValue": false, "isPure": false, @@ -45617,7 +48239,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3487, + "id": 3682, "isConstant": false, "isLValue": false, "isPure": false, @@ -45625,12 +48247,12 @@ "leftExpression": { "arguments": [ { - "id": 3484, + "id": 3679, "name": "x", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3465, - "src": "931:1:14", + "referencedDeclaration": 3660, + "src": "931:1:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45644,26 +48266,26 @@ "typeString": "int256" } ], - "id": 3483, + "id": 3678, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "923:7:14", + "src": "923:7:15", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 3482, + "id": 3677, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "923:7:14", + "src": "923:7:15", "typeDescriptions": {} } }, - "id": 3485, + "id": 3680, "isConstant": false, "isLValue": false, "isPure": false, @@ -45672,7 +48294,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "923:10:14", + "src": "923:10:15", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -45683,21 +48305,21 @@ "operator": ">>", "rightExpression": { "hexValue": "323535", - "id": 3486, + "id": 3681, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "937:3:14", + "src": "937:3:15", "typeDescriptions": { "typeIdentifier": "t_rational_255_by_1", "typeString": "int_const 255" }, "value": "255" }, - "src": "923:17:14", + "src": "923:17:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -45711,26 +48333,26 @@ "typeString": "uint256" } ], - "id": 3481, + "id": 3676, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "916:6:14", + "src": "916:6:15", "typeDescriptions": { "typeIdentifier": "t_type$_t_int256_$", "typeString": "type(int256)" }, "typeName": { - "id": 3480, + "id": 3675, "name": "int256", "nodeType": "ElementaryTypeName", - "src": "916:6:14", + "src": "916:6:15", "typeDescriptions": {} } }, - "id": 3488, + "id": 3683, "isConstant": false, "isLValue": false, "isPure": false, @@ -45739,7 +48361,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "916:25:14", + "src": "916:25:15", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_int256", @@ -45755,18 +48377,18 @@ "typeIdentifier": "t_int256", "typeString": "int256" }, - "id": 3491, + "id": 3686, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3489, + "id": 3684, "name": "a", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3457, - "src": "945:1:14", + "referencedDeclaration": 3652, + "src": "945:1:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45775,96 +48397,96 @@ "nodeType": "BinaryOperation", "operator": "^", "rightExpression": { - "id": 3490, + "id": 3685, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3459, - "src": "949:1:14", + "referencedDeclaration": 3654, + "src": "949:1:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, - "src": "945:5:14", + "src": "945:5:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], - "id": 3492, + "id": 3687, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "944:7:14", + "src": "944:7:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, - "src": "916:35:14", + "src": "916:35:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } } ], - "id": 3494, + "id": 3689, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "915:37:14", + "src": "915:37:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, - "src": "911:41:14", + "src": "911:41:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" } }, - "functionReturnParameters": 3463, - "id": 3496, + "functionReturnParameters": 3658, + "id": 3691, "nodeType": "Return", - "src": "904:48:14" + "src": "904:48:15" } ] }, "documentation": { - "id": 3455, + "id": 3650, "nodeType": "StructuredDocumentation", - "src": "598:126:14", + "src": "598:126:15", "text": " @dev Returns the average of two signed numbers without overflow.\n The result is rounded towards zero." }, - "id": 3498, + "id": 3693, "implemented": true, "kind": "function", "modifiers": [], "name": "average", - "nameLocation": "738:7:14", + "nameLocation": "738:7:15", "nodeType": "FunctionDefinition", "parameters": { - "id": 3460, + "id": 3655, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3457, + "id": 3652, "mutability": "mutable", "name": "a", - "nameLocation": "753:1:14", + "nameLocation": "753:1:15", "nodeType": "VariableDeclaration", - "scope": 3498, - "src": "746:8:14", + "scope": 3693, + "src": "746:8:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -45872,10 +48494,10 @@ "typeString": "int256" }, "typeName": { - "id": 3456, + "id": 3651, "name": "int256", "nodeType": "ElementaryTypeName", - "src": "746:6:14", + "src": "746:6:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45885,13 +48507,13 @@ }, { "constant": false, - "id": 3459, + "id": 3654, "mutability": "mutable", "name": "b", - "nameLocation": "763:1:14", + "nameLocation": "763:1:15", "nodeType": "VariableDeclaration", - "scope": 3498, - "src": "756:8:14", + "scope": 3693, + "src": "756:8:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -45899,10 +48521,10 @@ "typeString": "int256" }, "typeName": { - "id": 3458, + "id": 3653, "name": "int256", "nodeType": "ElementaryTypeName", - "src": "756:6:14", + "src": "756:6:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45911,21 +48533,21 @@ "visibility": "internal" } ], - "src": "745:20:14" + "src": "745:20:15" }, "returnParameters": { - "id": 3463, + "id": 3658, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3462, + "id": 3657, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 3498, - "src": "789:6:14", + "scope": 3693, + "src": "789:6:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -45933,10 +48555,10 @@ "typeString": "int256" }, "typeName": { - "id": 3461, + "id": 3656, "name": "int256", "nodeType": "ElementaryTypeName", - "src": "789:6:14", + "src": "789:6:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45945,24 +48567,24 @@ "visibility": "internal" } ], - "src": "788:8:14" + "src": "788:8:15" }, - "scope": 3520, - "src": "729:230:14", + "scope": 3715, + "src": "729:230:15", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { - "id": 3518, + "id": 3713, "nodeType": "Block", - "src": "1103:158:14", + "src": "1103:158:15", "statements": [ { - "id": 3517, + "id": 3712, "nodeType": "UncheckedBlock", - "src": "1113:142:14", + "src": "1113:142:15", "statements": [ { "expression": { @@ -45973,18 +48595,18 @@ "typeIdentifier": "t_int256", "typeString": "int256" }, - "id": 3510, + "id": 3705, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3508, + "id": 3703, "name": "n", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3501, - "src": "1228:1:14", + "referencedDeclaration": 3696, + "src": "1228:1:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -45994,28 +48616,28 @@ "operator": ">=", "rightExpression": { "hexValue": "30", - "id": 3509, + "id": 3704, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1233:1:14", + "src": "1233:1:15", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "1228:6:14", + "src": "1228:6:15", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseExpression": { - "id": 3513, + "id": 3708, "isConstant": false, "isLValue": false, "isPure": false, @@ -46023,14 +48645,14 @@ "nodeType": "UnaryOperation", "operator": "-", "prefix": true, - "src": "1241:2:14", + "src": "1241:2:15", "subExpression": { - "id": 3512, + "id": 3707, "name": "n", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3501, - "src": "1242:1:14", + "referencedDeclaration": 3696, + "src": "1242:1:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -46041,20 +48663,20 @@ "typeString": "int256" } }, - "id": 3514, + "id": 3709, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", - "src": "1228:15:14", + "src": "1228:15:15", "trueExpression": { - "id": 3511, + "id": 3706, "name": "n", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3501, - "src": "1237:1:14", + "referencedDeclaration": 3696, + "src": "1237:1:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -46073,26 +48695,26 @@ "typeString": "int256" } ], - "id": 3507, + "id": 3702, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1220:7:14", + "src": "1220:7:15", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 3506, + "id": 3701, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1220:7:14", + "src": "1220:7:15", "typeDescriptions": {} } }, - "id": 3515, + "id": 3710, "isConstant": false, "isLValue": false, "isPure": false, @@ -46101,48 +48723,48 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1220:24:14", + "src": "1220:24:15", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 3505, - "id": 3516, + "functionReturnParameters": 3700, + "id": 3711, "nodeType": "Return", - "src": "1213:31:14" + "src": "1213:31:15" } ] } ] }, "documentation": { - "id": 3499, + "id": 3694, "nodeType": "StructuredDocumentation", - "src": "965:78:14", + "src": "965:78:15", "text": " @dev Returns the absolute unsigned value of a signed value." }, - "id": 3519, + "id": 3714, "implemented": true, "kind": "function", "modifiers": [], "name": "abs", - "nameLocation": "1057:3:14", + "nameLocation": "1057:3:15", "nodeType": "FunctionDefinition", "parameters": { - "id": 3502, + "id": 3697, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3501, + "id": 3696, "mutability": "mutable", "name": "n", - "nameLocation": "1068:1:14", + "nameLocation": "1068:1:15", "nodeType": "VariableDeclaration", - "scope": 3519, - "src": "1061:8:14", + "scope": 3714, + "src": "1061:8:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -46150,10 +48772,10 @@ "typeString": "int256" }, "typeName": { - "id": 3500, + "id": 3695, "name": "int256", "nodeType": "ElementaryTypeName", - "src": "1061:6:14", + "src": "1061:6:15", "typeDescriptions": { "typeIdentifier": "t_int256", "typeString": "int256" @@ -46162,21 +48784,21 @@ "visibility": "internal" } ], - "src": "1060:10:14" + "src": "1060:10:15" }, "returnParameters": { - "id": 3505, + "id": 3700, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3504, + "id": 3699, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 3519, - "src": "1094:7:14", + "scope": 3714, + "src": "1094:7:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -46184,10 +48806,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3503, + "id": 3698, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1094:7:14", + "src": "1094:7:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -46196,24 +48818,24 @@ "visibility": "internal" } ], - "src": "1093:9:14" + "src": "1093:9:15" }, - "scope": 3520, - "src": "1048:213:14", + "scope": 3715, + "src": "1048:213:15", "stateMutability": "pure", "virtual": false, "visibility": "internal" } ], - "scope": 3521, - "src": "216:1047:14", + "scope": 3716, + "src": "216:1047:15", "usedErrors": [], "usedEvents": [] } ], - "src": "109:1155:14" + "src": "109:1155:15" }, - "id": 14 + "id": 15 }, "contracts/Engagement.sol": { "ast": { @@ -46234,8 +48856,11 @@ "ERC165": [ 2349 ], + "ERC165Checker": [ + 2544 + ], "Engagement": [ - 3798 + 4029 ], "IAccessControl": [ 378 @@ -46253,81 +48878,92 @@ 1731 ], "IERC165": [ - 2361 + 2556 ], "IEngagement": [ - 3894 + 4117 ], "Math": [ - 3415 + 3610 ], "SignedMath": [ - 3520 + 3715 ], "Strings": [ 2325 ] }, - "id": 3799, + "id": 4030, "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ { - "id": 3522, + "id": 3717, "literals": [ "solidity", - "^", "0.8", - ".24" + ".26" ], "nodeType": "PragmaDirective", - "src": "39:24:15" + "src": "39:23:16" }, { "absolutePath": "@openzeppelin/contracts/token/ERC1155/ERC1155.sol", "file": "@openzeppelin/contracts/token/ERC1155/ERC1155.sol", - "id": 3523, + "id": 3718, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 3799, + "scope": 4030, "sourceUnit": 1567, - "src": "65:59:15", + "src": "64:59:16", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@openzeppelin/contracts/access/AccessControl.sol", "file": "@openzeppelin/contracts/access/AccessControl.sol", - "id": 3524, + "id": 3719, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 3799, + "scope": 4030, "sourceUnit": 296, - "src": "125:58:15", + "src": "124:58:16", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", "file": "@openzeppelin/contracts/utils/Strings.sol", - "id": 3525, + "id": 3720, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 3799, + "scope": 4030, "sourceUnit": 2326, - "src": "184:51:15", + "src": "183:51:16", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol", + "file": "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol", + "id": 3721, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 4030, + "sourceUnit": 2545, + "src": "235:71:16", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "contracts/IEngagement.sol", "file": "./IEngagement.sol", - "id": 3526, + "id": 3722, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 3799, - "sourceUnit": 3895, - "src": "236:27:15", + "scope": 4030, + "sourceUnit": 4118, + "src": "307:27:16", "symbolAliases": [], "unitAlias": "" }, @@ -46336,312 +48972,223 @@ "baseContracts": [ { "baseName": { - "id": 3527, + "id": 3723, "name": "IEngagement", "nameLocations": [ - "288:11:15" + "359:11:16" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 3894, - "src": "288:11:15" + "referencedDeclaration": 4117, + "src": "359:11:16" }, - "id": 3528, + "id": 3724, "nodeType": "InheritanceSpecifier", - "src": "288:11:15" + "src": "359:11:16" }, { "baseName": { - "id": 3529, + "id": 3725, "name": "ERC1155", "nameLocations": [ - "301:7:15" + "372:7:16" ], "nodeType": "IdentifierPath", "referencedDeclaration": 1566, - "src": "301:7:15" + "src": "372:7:16" }, - "id": 3530, + "id": 3726, "nodeType": "InheritanceSpecifier", - "src": "301:7:15" + "src": "372:7:16" }, { "baseName": { - "id": 3531, + "id": 3727, "name": "AccessControl", "nameLocations": [ - "310:13:15" + "381:13:16" ], "nodeType": "IdentifierPath", "referencedDeclaration": 295, - "src": "310:13:15" + "src": "381:13:16" }, - "id": 3532, + "id": 3728, "nodeType": "InheritanceSpecifier", - "src": "310:13:15" + "src": "381:13:16" } ], "canonicalName": "Engagement", "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, - "id": 3798, + "id": 4029, "linearizedBaseContracts": [ - 3798, + 4029, 295, 1566, 515, 1747, 1689, 2349, - 2361, + 2556, 378, 1960, - 3894 + 4117 ], "name": "Engagement", - "nameLocation": "274:10:15", + "nameLocation": "345:10:16", "nodeType": "ContractDefinition", "nodes": [ { - "constant": false, - "id": 3535, - "mutability": "mutable", - "name": "_counter", - "nameLocation": "343:8:15", - "nodeType": "VariableDeclaration", - "scope": 3798, - "src": "330:25:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3533, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "330:4:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "hexValue": "30", - "id": 3534, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "354:1:15", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "private" - }, - { - "constant": true, - "functionSelector": "24c20a34", - "id": 3540, - "mutability": "constant", - "name": "PROVIDER_ROLE", - "nameLocation": "385:13:15", - "nodeType": "VariableDeclaration", - "scope": 3798, - "src": "361:66:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "global": false, + "id": 3731, + "libraryName": { + "id": 3729, + "name": "ERC165Checker", + "nameLocations": [ + "407:13:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2544, + "src": "407:13:16" }, + "nodeType": "UsingForDirective", + "src": "401:32:16", "typeName": { - "id": 3536, - "name": "bytes32", + "id": 3730, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "361:7:15", + "src": "425:7:16", + "stateMutability": "nonpayable", "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": { - "arguments": [ - { - "hexValue": "50524f56494445525f524f4c45", - "id": 3538, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "411:15:15", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_18d9ff454de989bd126b06bd404b47ede75f9e65543e94e8d212f89d7dcbb87c", - "typeString": "literal_string \"PROVIDER_ROLE\"" - }, - "value": "PROVIDER_ROLE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_18d9ff454de989bd126b06bd404b47ede75f9e65543e94e8d212f89d7dcbb87c", - "typeString": "literal_string \"PROVIDER_ROLE\"" - } - ], - "id": 3537, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "401:9:15", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 3539, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "401:26:15", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" + "typeIdentifier": "t_address", + "typeString": "address" } - }, - "visibility": "public" + } }, { "constant": false, - "id": 3544, + "id": 3733, "mutability": "mutable", - "name": "_tokenMetadata", - "nameLocation": "466:14:15", + "name": "_counter", + "nameLocation": "452:8:16", "nodeType": "VariableDeclaration", - "scope": 3798, - "src": "434:46:15", + "scope": 4029, + "src": "439:21:16", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 3543, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 3541, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "442:4:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "434:23:15", + "id": 3732, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "439:4:16", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 3542, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "450:6:15", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "visibility": "private" }, { "constant": false, - "id": 3548, + "id": 3735, "mutability": "mutable", - "name": "_scores", - "nameLocation": "518:7:15", + "name": "_tokenURI", + "nameLocation": "481:9:16", "nodeType": "VariableDeclaration", - "scope": 3798, - "src": "486:39:15", + "scope": 4029, + "src": "466:24:16", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" + "typeIdentifier": "t_string_storage", + "typeString": "string" }, "typeName": { - "id": 3547, - "keyName": "", - "keyNameLocation": "-1:-1:-1", - "keyType": { - "id": 3545, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "494:4:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "486:23:15", + "id": 3734, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "466:6:16", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string)" - }, - "valueName": "", - "valueNameLocation": "-1:-1:-1", - "valueType": { - "id": 3546, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "502:6:15", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, "visibility": "private" }, { "body": { - "id": 3560, + "id": 3757, "nodeType": "Block", - "src": "558:59:15", + "src": "546:129:16", "statements": [ { "expression": { "arguments": [ { - "id": 3555, + "id": 3744, + "name": "tokenURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3737, + "src": "575:9:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3743, + "name": "requireNonEmptyURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3792, + "src": "556:18:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 3745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "556:29:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3746, + "nodeType": "ExpressionStatement", + "src": "556:29:16" + }, + { + "expression": { + "arguments": [ + { + "id": 3748, "name": "DEFAULT_ADMIN_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 29, - "src": "579:18:15", + "src": "606:18:16", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -46649,26 +49196,26 @@ }, { "expression": { - "id": 3556, + "id": 3749, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "599:3:15", + "src": "626:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3557, + "id": 3750, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "603:6:15", + "memberLocation": "630:6:16", "memberName": "sender", "nodeType": "MemberAccess", - "src": "599:10:15", + "src": "626:10:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -46686,18 +49233,18 @@ "typeString": "address" } ], - "id": 3554, + "id": 3747, "name": "_grantRole", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 256, - "src": "568:10:15", + "src": "595:10:16", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$", "typeString": "function (bytes32,address) returns (bool)" } }, - "id": 3558, + "id": 3751, "isConstant": false, "isLValue": false, "isPure": false, @@ -46706,20 +49253,63 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "568:42:15", + "src": "595:42:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3559, + "id": 3752, "nodeType": "ExpressionStatement", - "src": "568:42:15" + "src": "595:42:16" + }, + { + "expression": { + "id": 3755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3753, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3735, + "src": "647:9:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3754, + "name": "tokenURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3737, + "src": "659:9:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "647:21:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3756, + "nodeType": "ExpressionStatement", + "src": "647:21:16" } ] }, - "id": 3561, + "id": 3758, "implemented": true, "kind": "constructor", "modifiers": [ @@ -46727,14 +49317,14 @@ "arguments": [ { "hexValue": "", - "id": 3551, + "id": 3740, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "554:2:15", + "src": "542:2:16", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" @@ -46742,48 +49332,76 @@ "value": "" } ], - "id": 3552, + "id": 3741, "kind": "baseConstructorSpecifier", "modifierName": { - "id": 3550, + "id": 3739, "name": "ERC1155", "nameLocations": [ - "546:7:15" + "534:7:16" ], "nodeType": "IdentifierPath", "referencedDeclaration": 1566, - "src": "546:7:15" + "src": "534:7:16" }, "nodeType": "ModifierInvocation", - "src": "546:11:15" + "src": "534:11:16" } ], "name": "", "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { - "id": 3549, + "id": 3738, "nodeType": "ParameterList", - "parameters": [], - "src": "543:2:15" + "parameters": [ + { + "constant": false, + "id": 3737, + "mutability": "mutable", + "name": "tokenURI_", + "nameLocation": "523:9:16", + "nodeType": "VariableDeclaration", + "scope": 3758, + "src": "509:23:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3736, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "509:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "508:25:16" }, "returnParameters": { - "id": 3553, + "id": 3742, "nodeType": "ParameterList", "parameters": [], - "src": "558:0:15" + "src": "546:0:16" }, - "scope": 3798, - "src": "532:85:15", + "scope": 4029, + "src": "497:178:16", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { - "id": 3575, + "id": 3772, "nodeType": "Block", - "src": "673:90:15", + "src": "731:90:16", "statements": [ { "condition": { @@ -46791,18 +49409,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3568, + "id": 3765, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3566, + "id": 3763, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3563, - "src": "687:7:15", + "referencedDeclaration": 3760, + "src": "745:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -46811,41 +49429,41 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 3567, + "id": 3764, "name": "_counter", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3535, - "src": "698:8:15", + "referencedDeclaration": 3733, + "src": "756:8:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "687:19:15", + "src": "745:19:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3574, + "id": 3771, "nodeType": "IfStatement", - "src": "683:74:15", + "src": "741:74:16", "trueBody": { - "id": 3573, + "id": 3770, "nodeType": "Block", - "src": "708:49:15", + "src": "766:49:16", "statements": [ { "errorCall": { "arguments": [ { - "id": 3570, + "id": 3767, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3563, - "src": "738:7:15", + "referencedDeclaration": 3760, + "src": "796:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -46859,18 +49477,18 @@ "typeString": "uint256" } ], - "id": 3569, + "id": 3766, "name": "NotFound", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3833, - "src": "729:8:15", + "referencedDeclaration": 4063, + "src": "787:8:16", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", - "typeString": "function (uint256) pure" + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256) pure returns (error)" } }, - "id": 3571, + "id": 3768, "isConstant": false, "isLValue": false, "isPure": false, @@ -46879,42 +49497,42 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "729:17:15", + "src": "787:17:16", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, - "id": 3572, + "id": 3769, "nodeType": "RevertStatement", - "src": "722:24:15" + "src": "780:24:16" } ] } } ] }, - "id": 3576, + "id": 3773, "implemented": true, "kind": "function", "modifiers": [], "name": "_checkTokenId", - "nameLocation": "632:13:15", + "nameLocation": "690:13:16", "nodeType": "FunctionDefinition", "parameters": { - "id": 3564, + "id": 3761, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3563, + "id": 3760, "mutability": "mutable", "name": "tokenId", - "nameLocation": "651:7:15", + "nameLocation": "709:7:16", "nodeType": "VariableDeclaration", - "scope": 3576, - "src": "646:12:15", + "scope": 3773, + "src": "704:12:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -46922,10 +49540,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3562, + "id": 3759, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "646:4:15", + "src": "704:4:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -46934,36 +49552,273 @@ "visibility": "internal" } ], - "src": "645:14:15" + "src": "703:14:16" }, "returnParameters": { - "id": 3565, + "id": 3762, "nodeType": "ParameterList", "parameters": [], - "src": "673:0:15" + "src": "731:0:16" }, - "scope": 3798, - "src": "623:140:15", + "scope": 4029, + "src": "681:140:16", "stateMutability": "view", "virtual": false, "visibility": "private" }, { "body": { - "id": 3585, + "id": 3791, + "nodeType": "Block", + "src": "891:110:16", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 3780, + "name": "newUri", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3775, + "src": "911:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "905:5:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3778, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "905:5:16", + "typeDescriptions": {} + } + }, + "id": 3781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "905:13:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 3782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "919:6:16", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "905:20:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 3783, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "929:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "905:25:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3790, + "nodeType": "IfStatement", + "src": "901:94:16", + "trueBody": { + "id": 3789, + "nodeType": "Block", + "src": "932:63:16", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "5552492063616e6e6f7420626520656d707479", + "id": 3786, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "962:21:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231", + "typeString": "literal_string \"URI cannot be empty\"" + }, + "value": "URI cannot be empty" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231", + "typeString": "literal_string \"URI cannot be empty\"" + } + ], + "id": 3785, + "name": "URIEmpty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4079, + "src": "953:8:16", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$", + "typeString": "function (string memory) pure returns (error)" + } + }, + "id": 3787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "953:31:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 3788, + "nodeType": "RevertStatement", + "src": "946:38:16" + } + ] + } + } + ] + }, + "id": 3792, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "requireNonEmptyURI", + "nameLocation": "836:18:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3776, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3775, + "mutability": "mutable", + "name": "newUri", + "nameLocation": "869:6:16", + "nodeType": "VariableDeclaration", + "scope": 3792, + "src": "855:20:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3774, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "855:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "854:22:16" + }, + "returnParameters": { + "id": 3777, + "nodeType": "ParameterList", + "parameters": [], + "src": "891:0:16" + }, + "scope": 4029, + "src": "827:174:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3801, "nodeType": "Block", - "src": "805:50:15", + "src": "1043:50:16", "statements": [ { "expression": { "arguments": [ { - "id": 3581, + "id": 3797, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "829:7:15", + "referencedDeclaration": 3794, + "src": "1067:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -46977,18 +49832,18 @@ "typeString": "uint256" } ], - "id": 3580, + "id": 3796, "name": "_checkTokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3576, - "src": "815:13:15", + "referencedDeclaration": 3773, + "src": "1053:13:16", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", "typeString": "function (uint256) view" } }, - "id": 3582, + "id": 3798, "isConstant": false, "isLValue": false, "isPure": false, @@ -46997,41 +49852,41 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "815:22:15", + "src": "1053:22:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3583, + "id": 3799, "nodeType": "ExpressionStatement", - "src": "815:22:15" + "src": "1053:22:16" }, { - "id": 3584, + "id": 3800, "nodeType": "PlaceholderStatement", - "src": "847:1:15" + "src": "1085:1:16" } ] }, - "id": 3586, + "id": 3802, "name": "validTokenId", - "nameLocation": "778:12:15", + "nameLocation": "1016:12:16", "nodeType": "ModifierDefinition", "parameters": { - "id": 3579, + "id": 3795, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3578, + "id": 3794, "mutability": "mutable", "name": "tokenId", - "nameLocation": "796:7:15", + "nameLocation": "1034:7:16", "nodeType": "VariableDeclaration", - "scope": 3586, - "src": "791:12:15", + "scope": 3802, + "src": "1029:12:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -47039,10 +49894,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3577, + "id": 3793, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "791:4:15", + "src": "1029:4:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -47051,68 +49906,209 @@ "visibility": "internal" } ], - "src": "790:14:15" + "src": "1028:14:16" }, - "src": "769:86:15", + "src": "1007:86:16", "virtual": false, "visibility": "internal" }, { - "baseFunctions": [ - 3850 - ], "body": { - "id": 3593, + "id": 3820, "nodeType": "Block", - "src": "909:32:15", + "src": "1154:114:16", "statements": [ { - "expression": { - "id": 3591, - "name": "_counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3535, - "src": "926:8:15", + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3808, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3804, + "src": "1168:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 3809, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1179:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1183:6:16", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1179:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1168:21:16", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "functionReturnParameters": 3590, - "id": 3592, - "nodeType": "Return", - "src": "919:15:15" + "id": 3818, + "nodeType": "IfStatement", + "src": "1164:87:16", + "trueBody": { + "id": 3817, + "nodeType": "Block", + "src": "1191:60:16", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 3813, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3804, + "src": "1223:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3814, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3806, + "src": "1232:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3812, + "name": "NotAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4075, + "src": "1212:10:16", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$returns$_t_error_$", + "typeString": "function (address,uint256) pure returns (error)" + } + }, + "id": 3815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1212:28:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 3816, + "nodeType": "RevertStatement", + "src": "1205:35:16" + } + ] + } + }, + { + "id": 3819, + "nodeType": "PlaceholderStatement", + "src": "1260:1:16" } ] }, - "functionSelector": "61bc221a", - "id": 3594, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "counter", - "nameLocation": "870:7:15", - "nodeType": "FunctionDefinition", + "id": 3821, + "name": "onlyTokenOwner", + "nameLocation": "1108:14:16", + "nodeType": "ModifierDefinition", "parameters": { - "id": 3587, - "nodeType": "ParameterList", - "parameters": [], - "src": "877:2:15" - }, - "returnParameters": { - "id": 3590, + "id": 3807, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3589, + "id": 3804, "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", + "name": "account", + "nameLocation": "1131:7:16", + "nodeType": "VariableDeclaration", + "scope": 3821, + "src": "1123:15:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3803, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1123:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3806, + "mutability": "mutable", + "name": "tokenId", + "nameLocation": "1145:7:16", "nodeType": "VariableDeclaration", - "scope": 3594, - "src": "903:4:15", + "scope": 3821, + "src": "1140:12:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -47120,10 +50116,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3588, + "id": 3805, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "903:4:15", + "src": "1140:4:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -47132,128 +50128,421 @@ "visibility": "internal" } ], - "src": "902:6:15" + "src": "1122:31:16" }, - "scope": 3798, - "src": "861:80:15", - "stateMutability": "view", + "src": "1099:169:16", "virtual": false, - "visibility": "external" + "visibility": "internal" }, { - "baseFunctions": [ - 3855 - ], "body": { - "id": 3622, + "id": 3839, "nodeType": "Block", - "src": "992:155:15", + "src": "1322:140:16", "statements": [ { - "expression": { - "id": 3603, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3831, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 3599, - "name": "_tokenMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3544, - "src": "1002:14:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 3601, - "indexExpression": { - "id": 3600, - "name": "_counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3535, - "src": "1017:8:15", + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 3827, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3823, + "src": "1342:7:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3826, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1336:5:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3825, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1336:5:16", + "typeDescriptions": {} + } + }, + "id": 3828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1336:14:16", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" } }, + "id": 3829, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1002:24:15", + "lValueRequested": false, + "memberLocation": "1351:6:16", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1336:21:16", "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 3602, - "name": "hash_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3596, - "src": "1029:5:15", + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 3830, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1361:1:16", "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "src": "1002:32:15", + "src": "1336:26:16", "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 3604, - "nodeType": "ExpressionStatement", - "src": "1002:32:15" - }, - { - "expression": { + "id": 3837, + "nodeType": "IfStatement", + "src": "1332:113:16", + "trueBody": { + "id": 3836, + "nodeType": "Block", + "src": "1364:81:16", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "4163636f756e742063616e6e6f7420626520656d707479", + "id": 3833, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1408:25:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619", + "typeString": "literal_string \"Account cannot be empty\"" + }, + "value": "Account cannot be empty" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619", + "typeString": "literal_string \"Account cannot be empty\"" + } + ], + "id": 3832, + "name": "EmptyAccountNotAllowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4083, + "src": "1385:22:16", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$", + "typeString": "function (string memory) pure returns (error)" + } + }, + "id": 3834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1385:49:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 3835, + "nodeType": "RevertStatement", + "src": "1378:56:16" + } + ] + } + }, + { + "id": 3838, + "nodeType": "PlaceholderStatement", + "src": "1454:1:16" + } + ] + }, + "id": 3840, + "name": "nonEmptyAccount", + "nameLocation": "1283:15:16", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 3824, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3823, + "mutability": "mutable", + "name": "account", + "nameLocation": "1313:7:16", + "nodeType": "VariableDeclaration", + "scope": 3840, + "src": "1299:21:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3822, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1299:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1298:23:16" + }, + "src": "1274:188:16", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 4088 + ], + "body": { + "id": 3847, + "nodeType": "Block", + "src": "1516:32:16", + "statements": [ + { + "expression": { + "id": 3845, + "name": "_counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3733, + "src": "1533:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3844, + "id": 3846, + "nodeType": "Return", + "src": "1526:15:16" + } + ] + }, + "functionSelector": "61bc221a", + "id": 3848, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "counter", + "nameLocation": "1477:7:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3841, + "nodeType": "ParameterList", + "parameters": [], + "src": "1484:2:16" + }, + "returnParameters": { + "id": 3844, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3843, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3848, + "src": "1510:4:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3842, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1510:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1509:6:16" + }, + "scope": 4029, + "src": "1468:80:16", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "baseFunctions": [ + 4091 + ], + "body": { + "id": 3875, + "nodeType": "Block", + "src": "1580:176:16", + "statements": [ + { + "assignments": [ + 3852 + ], + "declarations": [ + { + "constant": false, + "id": 3852, + "mutability": "mutable", + "name": "counterCache", + "nameLocation": "1595:12:16", + "nodeType": "VariableDeclaration", + "scope": 3875, + "src": "1590:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3851, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1590:4:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3854, + "initialValue": { + "id": 3853, + "name": "_counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3733, + "src": "1610:8:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1590:28:16" + }, + { + "expression": { "arguments": [ { "expression": { - "id": 3606, + "id": 3856, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "1050:3:15", + "src": "1634:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3607, + "id": 3857, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1054:6:15", + "memberLocation": "1638:6:16", "memberName": "sender", "nodeType": "MemberAccess", - "src": "1050:10:15", + "src": "1634:10:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 3608, - "name": "_counter", + "id": 3858, + "name": "counterCache", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3535, - "src": "1062:8:15", + "referencedDeclaration": 3852, + "src": "1646:12:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -47261,14 +50550,14 @@ }, { "hexValue": "31", - "id": 3609, + "id": 3859, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1072:1:15", + "src": "1660:1:16", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -47277,14 +50566,14 @@ }, { "hexValue": "", - "id": 3610, + "id": 3860, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1075:2:15", + "src": "1663:2:16", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" @@ -47311,18 +50600,18 @@ "typeString": "literal_string \"\"" } ], - "id": 3605, + "id": 3855, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1241, - "src": "1044:5:15", + "src": "1628:5:16", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,uint256,uint256,bytes memory)" } }, - "id": 3611, + "id": 3861, "isConstant": false, "isLValue": false, "isPure": false, @@ -47331,54 +50620,54 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1044:34:15", + "src": "1628:38:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3612, + "id": 3862, "nodeType": "ExpressionStatement", - "src": "1044:34:15" + "src": "1628:38:16" }, { "eventCall": { "arguments": [ { "expression": { - "id": 3614, + "id": 3864, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, - "src": "1099:3:15", + "src": "1687:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 3615, + "id": 3865, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "memberLocation": "1103:6:15", + "memberLocation": "1691:6:16", "memberName": "sender", "nodeType": "MemberAccess", - "src": "1099:10:15", + "src": "1687:10:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 3616, - "name": "_counter", + "id": 3866, + "name": "counterCache", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3535, - "src": "1111:8:15", + "referencedDeclaration": 3852, + "src": "1699:12:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -47396,18 +50685,18 @@ "typeString": "uint256" } ], - "id": 3613, + "id": 3863, "name": "Issue", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3805, - "src": "1093:5:15", + "referencedDeclaration": 4037, + "src": "1681:5:16", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, - "id": 3617, + "id": 3867, "isConstant": false, "isLValue": false, "isPure": false, @@ -47416,113 +50705,130 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1093:27:15", + "src": "1681:31:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3618, + "id": 3868, "nodeType": "EmitStatement", - "src": "1088:32:15" + "src": "1676:36:16" }, { "expression": { - "id": 3620, + "id": 3873, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "1130:10:15", - "subExpression": { - "id": 3619, + "leftHandSide": { + "id": 3869, "name": "_counter", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3535, - "src": "1130:8:15", + "referencedDeclaration": 3733, + "src": "1722:8:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3870, + "name": "counterCache", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3852, + "src": "1733:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 3871, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1748:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1733:16:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1722:27:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 3621, + "id": 3874, "nodeType": "ExpressionStatement", - "src": "1130:10:15" + "src": "1722:27:16" } ] }, - "functionSelector": "3cad9b0d", - "id": 3623, + "functionSelector": "d383f646", + "id": 3876, "implemented": true, "kind": "function", "modifiers": [], "name": "issue", - "nameLocation": "956:5:15", + "nameLocation": "1563:5:16", "nodeType": "FunctionDefinition", "parameters": { - "id": 3597, + "id": 3849, "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3596, - "mutability": "mutable", - "name": "hash_", - "nameLocation": "976:5:15", - "nodeType": "VariableDeclaration", - "scope": 3623, - "src": "962:19:15", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3595, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "962:6:15", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "961:21:15" + "parameters": [], + "src": "1568:2:16" }, "returnParameters": { - "id": 3598, + "id": 3850, "nodeType": "ParameterList", "parameters": [], - "src": "992:0:15" + "src": "1580:0:16" }, - "scope": 3798, - "src": "947:200:15", + "scope": 4029, + "src": "1554:202:16", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "baseFunctions": [ - 3866 + 4102 ], "body": { - "id": 3664, + "id": 3917, "nodeType": "Block", - "src": "1308:194:15", + "src": "1917:195:16", "statements": [ { "condition": { @@ -47530,7 +50836,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3643, + "id": 3896, "isConstant": false, "isLValue": false, "isPure": false, @@ -47538,24 +50844,24 @@ "leftExpression": { "arguments": [ { - "id": 3639, + "id": 3892, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3625, - "src": "1332:7:15", + "referencedDeclaration": 3878, + "src": "1941:7:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 3640, + "id": 3893, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3627, - "src": "1341:7:15", + "referencedDeclaration": 3880, + "src": "1950:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -47573,18 +50879,18 @@ "typeString": "uint256" } ], - "id": 3638, + "id": 3891, "name": "balanceOf", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 635, - "src": "1322:9:15", + "src": "1931:9:16", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (address,uint256) view returns (uint256)" } }, - "id": 3641, + "id": 3894, "isConstant": false, "isLValue": false, "isPure": false, @@ -47593,7 +50899,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1322:27:15", + "src": "1931:27:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -47601,59 +50907,59 @@ } }, "nodeType": "BinaryOperation", - "operator": ">", + "operator": ">=", "rightExpression": { - "hexValue": "30", - "id": 3642, + "hexValue": "31", + "id": 3895, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1352:1:15", + "src": "1962:1:16", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" }, - "value": "0" + "value": "1" }, - "src": "1322:31:15", + "src": "1931:32:16", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3650, + "id": 3903, "nodeType": "IfStatement", - "src": "1318:96:15", + "src": "1927:97:16", "trueBody": { - "id": 3649, + "id": 3902, "nodeType": "Block", - "src": "1355:59:15", + "src": "1965:59:16", "statements": [ { "errorCall": { "arguments": [ { - "id": 3645, + "id": 3898, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3625, - "src": "1386:7:15", + "referencedDeclaration": 3878, + "src": "1996:7:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 3646, + "id": 3899, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3627, - "src": "1395:7:15", + "referencedDeclaration": 3880, + "src": "2005:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -47671,18 +50977,18 @@ "typeString": "uint256" } ], - "id": 3644, + "id": 3897, "name": "MintLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3839, - "src": "1376:9:15", + "referencedDeclaration": 4069, + "src": "1986:9:16", "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) pure" + "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$returns$_t_error_$", + "typeString": "function (address,uint256) pure returns (error)" } }, - "id": 3647, + "id": 3900, "isConstant": false, "isLValue": false, "isPure": false, @@ -47691,16 +50997,16 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1376:27:15", + "src": "1986:27:16", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_error", + "typeString": "error" } }, - "id": 3648, + "id": 3901, "nodeType": "RevertStatement", - "src": "1369:34:15" + "src": "1979:34:16" } ] } @@ -47709,24 +51015,24 @@ "expression": { "arguments": [ { - "id": 3652, + "id": 3905, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3625, - "src": "1429:7:15", + "referencedDeclaration": 3878, + "src": "2039:7:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 3653, + "id": 3906, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3627, - "src": "1438:7:15", + "referencedDeclaration": 3880, + "src": "2048:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -47734,14 +51040,14 @@ }, { "hexValue": "31", - "id": 3654, + "id": 3907, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1447:1:15", + "src": "2057:1:16", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -47749,12 +51055,12 @@ "value": "1" }, { - "id": 3655, + "id": 3908, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3631, - "src": "1450:4:15", + "referencedDeclaration": 3884, + "src": "2060:4:16", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -47780,18 +51086,18 @@ "typeString": "bytes memory" } ], - "id": 3651, + "id": 3904, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1241, - "src": "1423:5:15", + "src": "2033:5:16", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,uint256,uint256,bytes memory)" } }, - "id": 3656, + "id": 3909, "isConstant": false, "isLValue": false, "isPure": false, @@ -47800,39 +51106,39 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1423:32:15", + "src": "2033:32:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3657, + "id": 3910, "nodeType": "ExpressionStatement", - "src": "1423:32:15" + "src": "2033:32:16" }, { "eventCall": { "arguments": [ { - "id": 3659, + "id": 3912, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3625, - "src": "1475:7:15", + "referencedDeclaration": 3878, + "src": "2085:7:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 3660, + "id": 3913, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3627, - "src": "1484:7:15", + "referencedDeclaration": 3880, + "src": "2094:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -47840,14 +51146,14 @@ }, { "hexValue": "31", - "id": 3661, + "id": 3914, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1493:1:15", + "src": "2103:1:16", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -47870,18 +51176,18 @@ "typeString": "int_const 1" } ], - "id": 3658, + "id": 3911, "name": "Mint", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3813, - "src": "1470:4:15", + "referencedDeclaration": 4045, + "src": "2080:4:16", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (address,uint256,uint256)" } }, - "id": 3662, + "id": 3915, "isConstant": false, "isLValue": false, "isPure": false, @@ -47890,77 +51196,77 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1470:25:15", + "src": "2080:25:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3663, + "id": 3916, "nodeType": "EmitStatement", - "src": "1465:30:15" + "src": "2075:30:16" } ] }, "functionSelector": "731133e9", - "id": 3665, + "id": 3918, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { - "id": 3635, + "id": 3888, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3627, - "src": "1299:7:15", + "referencedDeclaration": 3880, + "src": "1908:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 3636, + "id": 3889, "kind": "modifierInvocation", "modifierName": { - "id": 3634, + "id": 3887, "name": "validTokenId", "nameLocations": [ - "1286:12:15" + "1895:12:16" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 3586, - "src": "1286:12:15" + "referencedDeclaration": 3802, + "src": "1895:12:16" }, "nodeType": "ModifierInvocation", - "src": "1286:21:15" + "src": "1895:21:16" } ], "name": "mint", - "nameLocation": "1162:4:15", + "nameLocation": "1771:4:16", "nodeType": "FunctionDefinition", "overrides": { - "id": 3633, + "id": 3886, "nodeType": "OverrideSpecifier", "overrides": [], - "src": "1277:8:15" + "src": "1886:8:16" }, "parameters": { - "id": 3632, + "id": 3885, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3625, + "id": 3878, "mutability": "mutable", "name": "account", - "nameLocation": "1184:7:15", + "nameLocation": "1793:7:16", "nodeType": "VariableDeclaration", - "scope": 3665, - "src": "1176:15:15", + "scope": 3918, + "src": "1785:15:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -47968,10 +51274,10 @@ "typeString": "address" }, "typeName": { - "id": 3624, + "id": 3877, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1176:7:15", + "src": "1785:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -47982,13 +51288,13 @@ }, { "constant": false, - "id": 3627, + "id": 3880, "mutability": "mutable", "name": "tokenId", - "nameLocation": "1206:7:15", + "nameLocation": "1815:7:16", "nodeType": "VariableDeclaration", - "scope": 3665, - "src": "1201:12:15", + "scope": 3918, + "src": "1810:12:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -47996,10 +51302,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3626, + "id": 3879, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1201:4:15", + "src": "1810:4:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -48009,13 +51315,13 @@ }, { "constant": false, - "id": 3629, + "id": 3882, "mutability": "mutable", "name": "amount", - "nameLocation": "1228:6:15", + "nameLocation": "1837:6:16", "nodeType": "VariableDeclaration", - "scope": 3665, - "src": "1223:11:15", + "scope": 3918, + "src": "1832:11:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -48023,10 +51329,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3628, + "id": 3881, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1223:4:15", + "src": "1832:4:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -48036,13 +51342,13 @@ }, { "constant": false, - "id": 3631, + "id": 3884, "mutability": "mutable", "name": "data", - "nameLocation": "1257:4:15", + "nameLocation": "1866:4:16", "nodeType": "VariableDeclaration", - "scope": 3665, - "src": "1244:17:15", + "scope": 3918, + "src": "1853:17:16", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -48050,10 +51356,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3630, + "id": 3883, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1244:5:15", + "src": "1853:5:16", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -48062,190 +51368,51 @@ "visibility": "internal" } ], - "src": "1166:101:15" + "src": "1775:101:16" }, "returnParameters": { - "id": 3637, + "id": 3890, "nodeType": "ParameterList", "parameters": [], - "src": "1308:0:15" + "src": "1917:0:16" }, - "scope": 3798, - "src": "1153:349:15", + "scope": 4029, + "src": "1762:350:16", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "baseFunctions": [ - 3875 + 4111 ], "body": { - "id": 3701, + "id": 3947, "nodeType": "Block", - "src": "1636:179:15", + "src": "2279:83:16", "statements": [ - { - "condition": { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 3678, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3667, - "src": "1650:7:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "expression": { - "id": 3679, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "1661:3:15", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3680, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "1665:6:15", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "1661:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1650:21:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3688, - "nodeType": "IfStatement", - "src": "1646:87:15", - "trueBody": { - "id": 3687, - "nodeType": "Block", - "src": "1673:60:15", - "statements": [ - { - "errorCall": { - "arguments": [ - { - "id": 3683, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3667, - "src": "1705:7:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 3684, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3669, - "src": "1714:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3682, - "name": "NotAllowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3845, - "src": "1694:10:15", - "typeDescriptions": { - "typeIdentifier": "t_function_error_pure$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) pure" - } - }, - "id": 3685, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "1694:28:15", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3686, - "nodeType": "RevertStatement", - "src": "1687:35:15" - } - ] - } - }, { "expression": { "arguments": [ { - "id": 3690, + "id": 3936, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3667, - "src": "1748:7:15", + "referencedDeclaration": 3920, + "src": "2295:7:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 3691, + "id": 3937, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3669, - "src": "1757:7:15", + "referencedDeclaration": 3922, + "src": "2304:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -48253,14 +51420,14 @@ }, { "hexValue": "31", - "id": 3692, + "id": 3938, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1766:1:15", + "src": "2313:1:16", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -48283,18 +51450,18 @@ "typeString": "int_const 1" } ], - "id": 3689, + "id": 3935, "name": "_burn", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1332, - "src": "1742:5:15", + "src": "2289:5:16", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (address,uint256,uint256)" } }, - "id": 3693, + "id": 3939, "isConstant": false, "isLValue": false, "isPure": false, @@ -48303,39 +51470,39 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1742:26:15", + "src": "2289:26:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3694, + "id": 3940, "nodeType": "ExpressionStatement", - "src": "1742:26:15" + "src": "2289:26:16" }, { "eventCall": { "arguments": [ { - "id": 3696, + "id": 3942, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3667, - "src": "1788:7:15", + "referencedDeclaration": 3920, + "src": "2335:7:16", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 3697, + "id": 3943, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3669, - "src": "1797:7:15", + "referencedDeclaration": 3922, + "src": "2344:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -48343,14 +51510,14 @@ }, { "hexValue": "31", - "id": 3698, + "id": 3944, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1806:1:15", + "src": "2353:1:16", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -48373,18 +51540,18 @@ "typeString": "int_const 1" } ], - "id": 3695, + "id": 3941, "name": "Burn", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3821, - "src": "1783:4:15", + "referencedDeclaration": 4053, + "src": "2330:4:16", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (address,uint256,uint256)" } }, - "id": 3699, + "id": 3945, "isConstant": false, "isLValue": false, "isPure": false, @@ -48393,77 +51560,119 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "1783:25:15", + "src": "2330:25:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3700, + "id": 3946, "nodeType": "EmitStatement", - "src": "1778:30:15" + "src": "2325:30:16" } ] }, "functionSelector": "f5298aca", - "id": 3702, + "id": 3948, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { - "id": 3675, + "id": 3928, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3669, - "src": "1627:7:15", + "referencedDeclaration": 3922, + "src": "2237:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 3676, + "id": 3929, "kind": "modifierInvocation", "modifierName": { - "id": 3674, + "id": 3927, "name": "validTokenId", "nameLocations": [ - "1614:12:15" + "2224:12:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3802, + "src": "2224:12:16" + }, + "nodeType": "ModifierInvocation", + "src": "2224:21:16" + }, + { + "arguments": [ + { + "id": 3931, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3920, + "src": "2261:7:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3932, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3922, + "src": "2270:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3933, + "kind": "modifierInvocation", + "modifierName": { + "id": 3930, + "name": "onlyTokenOwner", + "nameLocations": [ + "2246:14:16" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 3586, - "src": "1614:12:15" + "referencedDeclaration": 3821, + "src": "2246:14:16" }, "nodeType": "ModifierInvocation", - "src": "1614:21:15" + "src": "2246:32:16" } ], "name": "burn", - "nameLocation": "1517:4:15", + "nameLocation": "2127:4:16", "nodeType": "FunctionDefinition", "overrides": { - "id": 3673, + "id": 3926, "nodeType": "OverrideSpecifier", "overrides": [], - "src": "1605:8:15" + "src": "2215:8:16" }, "parameters": { - "id": 3672, + "id": 3925, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3667, + "id": 3920, "mutability": "mutable", "name": "account", - "nameLocation": "1539:7:15", + "nameLocation": "2149:7:16", "nodeType": "VariableDeclaration", - "scope": 3702, - "src": "1531:15:15", + "scope": 3948, + "src": "2141:15:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -48471,10 +51680,10 @@ "typeString": "address" }, "typeName": { - "id": 3666, + "id": 3919, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1531:7:15", + "src": "2141:7:16", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -48485,13 +51694,13 @@ }, { "constant": false, - "id": 3669, + "id": 3922, "mutability": "mutable", "name": "tokenId", - "nameLocation": "1561:7:15", + "nameLocation": "2171:7:16", "nodeType": "VariableDeclaration", - "scope": 3702, - "src": "1556:12:15", + "scope": 3948, + "src": "2166:12:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -48499,10 +51708,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3668, + "id": 3921, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1556:4:15", + "src": "2166:4:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -48512,13 +51721,13 @@ }, { "constant": false, - "id": 3671, + "id": 3924, "mutability": "mutable", "name": "amount", - "nameLocation": "1583:6:15", + "nameLocation": "2193:6:16", "nodeType": "VariableDeclaration", - "scope": 3702, - "src": "1578:11:15", + "scope": 3948, + "src": "2188:11:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -48526,10 +51735,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3670, + "id": 3923, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "1578:4:15", + "src": "2188:4:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -48538,635 +51747,423 @@ "visibility": "internal" } ], - "src": "1521:74:15" + "src": "2131:74:16" }, "returnParameters": { - "id": 3677, + "id": 3934, "nodeType": "ParameterList", "parameters": [], - "src": "1636:0:15" + "src": "2279:0:16" }, - "scope": 3798, - "src": "1508:307:15", + "scope": 4029, + "src": "2118:244:16", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "baseFunctions": [ - 3886 + 62, + 607 ], "body": { - "id": 3736, + "id": 3973, "nodeType": "Block", - "src": "1977:324:15", + "src": "2489:142:16", "statements": [ { - "expression": { - "arguments": [ - { + "condition": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { "arguments": [ { - "hexValue": "697066733a2f2f", - "id": 3721, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2068:9:15", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe", - "typeString": "literal_string \"ipfs://\"" - }, - "value": "ipfs://" - }, - { - "baseExpression": { - "id": 3722, - "name": "_scores", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3548, - "src": "2099:7:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 3724, - "indexExpression": { - "id": 3723, - "name": "date", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3704, - "src": "2107:4:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2099:13:15", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - { - "hexValue": "2f", - "id": 3725, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2134:3:15", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527", - "typeString": "literal_string \"/\"" - }, - "value": "/" - }, - { - "arguments": [ - { - "id": 3728, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3706, - "src": "2176:2:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 3726, - "name": "Strings", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2325, - "src": "2159:7:15", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Strings_$2325_$", - "typeString": "type(library Strings)" - } - }, - "id": 3727, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2167:8:15", - "memberName": "toString", - "nodeType": "MemberAccess", - "referencedDeclaration": 2138, - "src": "2159:16:15", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$", - "typeString": "function (uint256) pure returns (string memory)" - } - }, - "id": 3729, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "2159:20:15", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "hexValue": "2f", - "id": 3730, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2201:3:15", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527", - "typeString": "literal_string \"/\"" - }, - "value": "/" - }, - { - "id": 3731, - "name": "account", + "id": 3960, + "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3708, - "src": "2226:7:15", + "referencedDeclaration": -28, + "src": "2511:4:16", "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" + "typeIdentifier": "t_contract$_Engagement_$4029", + "typeString": "contract Engagement" } - }, - { - "hexValue": "2e6a736f6e", - "id": 3732, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2255:7:15", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972", - "typeString": "literal_string \".json\"" - }, - "value": ".json" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe", - "typeString": "literal_string \"ipfs://\"" - }, - { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - }, - { - "typeIdentifier": "t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527", - "typeString": "literal_string \"/\"" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527", - "typeString": "literal_string \"/\"" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972", - "typeString": "literal_string \".json\"" + "typeIdentifier": "t_contract$_Engagement_$4029", + "typeString": "contract Engagement" } ], - "expression": { - "id": 3719, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "2030:3:15", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3720, + "id": 3959, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "2034:12:15", - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "src": "2030:16:15", + "nodeType": "ElementaryTypeNameExpression", + "src": "2503:7:16", "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3958, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2503:7:16", + "typeDescriptions": {} } }, - "id": 3733, + "id": 3961, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", + "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2030:250:15", + "src": "2503:13:16", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" + "typeIdentifier": "t_address", + "typeString": "address" } - ], - "id": 3718, + }, + "id": 3962, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2006:6:15", + "memberLocation": "2517:14:16", + "memberName": "supportsERC165", + "nodeType": "MemberAccess", + "referencedDeclaration": 2380, + "src": "2503:28:16", "typeDescriptions": { - "typeIdentifier": "t_type$_t_string_storage_ptr_$", - "typeString": "type(string storage pointer)" - }, - "typeName": { - "id": 3717, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2006:6:15", - "typeDescriptions": {} + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$attached_to$_t_address_$", + "typeString": "function (address) view returns (bool)" } }, - "id": 3734, + "id": 3963, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "typeConversion", + "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2006:288:15", + "src": "2503:30:16", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "functionReturnParameters": 3716, - "id": 3735, + "id": 3970, + "nodeType": "IfStatement", + "src": "2499:104:16", + "trueBody": { + "id": 3969, + "nodeType": "Block", + "src": "2535:68:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3966, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3950, + "src": "2580:11:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 3964, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "2556:5:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_Engagement_$4029_$", + "typeString": "type(contract super Engagement)" + } + }, + "id": 3965, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2562:17:16", + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 62, + "src": "2556:23:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (bytes4) view returns (bool)" + } + }, + "id": 3967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2556:36:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3957, + "id": 3968, + "nodeType": "Return", + "src": "2549:43:16" + } + ] + } + }, + { + "expression": { + "hexValue": "66616c7365", + "id": 3971, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2619:5:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 3957, + "id": 3972, "nodeType": "Return", - "src": "1987:307:15" + "src": "2612:12:16" } ] }, - "functionSelector": "c5afac66", - "id": 3737, + "functionSelector": "01ffc9a7", + "id": 3974, "implemented": true, "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "id": 3712, - "name": "id", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3706, - "src": "1949:2:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3713, - "kind": "modifierInvocation", - "modifierName": { - "id": 3711, - "name": "validTokenId", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "2377:17:16", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3954, + "nodeType": "OverrideSpecifier", + "overrides": [ + { + "id": 3952, + "name": "AccessControl", "nameLocations": [ - "1936:12:15" + "2450:13:16" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 3586, - "src": "1936:12:15" + "referencedDeclaration": 295, + "src": "2450:13:16" }, - "nodeType": "ModifierInvocation", - "src": "1936:16:15" - } - ], - "name": "getScores", - "nameLocation": "1830:9:15", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 3710, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "1927:8:15" + { + "id": 3953, + "name": "ERC1155", + "nameLocations": [ + "2465:7:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1566, + "src": "2465:7:16" + } + ], + "src": "2441:32:16" }, "parameters": { - "id": 3709, + "id": 3951, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3704, + "id": 3950, "mutability": "mutable", - "name": "date", - "nameLocation": "1854:4:15", + "name": "interfaceId", + "nameLocation": "2411:11:16", "nodeType": "VariableDeclaration", - "scope": 3737, - "src": "1849:9:15", + "scope": 3974, + "src": "2404:18:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" }, "typeName": { - "id": 3703, - "name": "uint", + "id": 3949, + "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "1849:4:15", + "src": "2404:6:16", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" } }, "visibility": "internal" - }, + } + ], + "src": "2394:34:16" + }, + "returnParameters": { + "id": 3957, + "nodeType": "ParameterList", + "parameters": [ { "constant": false, - "id": 3706, + "id": 3956, "mutability": "mutable", - "name": "id", - "nameLocation": "1873:2:15", + "name": "", + "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 3737, - "src": "1868:7:15", + "scope": 3974, + "src": "2483:4:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" }, "typeName": { - "id": 3705, - "name": "uint", + "id": 3955, + "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1868:4:15", + "src": "2483:4:16", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3708, - "mutability": "mutable", - "name": "account", - "nameLocation": "1899:7:15", - "nodeType": "VariableDeclaration", - "scope": 3737, - "src": "1885:21:15", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3707, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1885:6:15", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "1839:73:15" - }, - "returnParameters": { - "id": 3716, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3715, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3737, - "src": "1962:13:15", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3714, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1962:6:15", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, "visibility": "internal" } ], - "src": "1961:15:15" + "src": "2482:6:16" }, - "scope": 3798, - "src": "1821:480:15", + "scope": 4029, + "src": "2368:263:16", "stateMutability": "view", "virtual": false, - "visibility": "external" + "visibility": "public" }, { "baseFunctions": [ - 3893 + 4116 ], "body": { - "id": 3761, + "id": 3995, "nodeType": "Block", - "src": "2423:86:15", + "src": "2720:119:16", "statements": [ { "expression": { - "id": 3752, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "baseExpression": { - "id": 3748, - "name": "_scores", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3548, - "src": "2433:7:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" - } - }, - "id": 3750, - "indexExpression": { - "id": 3749, - "name": "date", + "arguments": [ + { + "id": 3983, + "name": "newURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3739, - "src": "2441:4:15", + "referencedDeclaration": 3976, + "src": "2749:6:16", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2433:13:15", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 3751, - "name": "cid", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3982, + "name": "requireNonEmptyURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3741, - "src": "2449:3:15", + "referencedDeclaration": 3792, + "src": "2730:18:16", "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" } }, - "src": "2433:19:15", + "id": 3984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2730:26:16", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 3753, + "id": 3985, "nodeType": "ExpressionStatement", - "src": "2433:19:15" + "src": "2730:26:16" }, { "eventCall": { "arguments": [ { - "expression": { - "id": 3755, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2480:3:15", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3756, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "2484:6:15", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "2480:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "id": 3757, - "name": "date", + "id": 3987, + "name": "_tokenURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3739, - "src": "2492:4:15", + "referencedDeclaration": 3735, + "src": "2786:9:16", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" } }, { - "id": 3758, - "name": "cid", + "id": 3988, + "name": "newURI", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3741, - "src": "2498:3:15", + "referencedDeclaration": 3976, + "src": "2797:6:16", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -49176,30 +52173,26 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], - "id": 3754, - "name": "UpdateScores", + "id": 3986, + "name": "BaseURIUpdated", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3829, - "src": "2467:12:15", + "referencedDeclaration": 4059, + "src": "2771:14:16", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,string memory)" + "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory,string memory)" } }, - "id": 3759, + "id": 3989, "isConstant": false, "isLValue": false, "isPure": false, @@ -49208,104 +52201,114 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2467:35:15", + "src": "2771:33:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3760, + "id": 3990, "nodeType": "EmitStatement", - "src": "2462:40:15" + "src": "2766:38:16" + }, + { + "expression": { + "id": 3993, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3991, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3735, + "src": "2814:9:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3992, + "name": "newURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3976, + "src": "2826:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "2814:18:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3994, + "nodeType": "ExpressionStatement", + "src": "2814:18:16" } ] }, - "functionSelector": "1c4ce135", - "id": 3762, + "functionSelector": "931688cb", + "id": 3996, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { - "id": 3745, - "name": "PROVIDER_ROLE", + "id": 3979, + "name": "DEFAULT_ADMIN_ROLE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3540, - "src": "2408:13:15", + "referencedDeclaration": 29, + "src": "2700:18:16", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 3746, + "id": 3980, "kind": "modifierInvocation", "modifierName": { - "id": 3744, + "id": 3978, "name": "onlyRole", "nameLocations": [ - "2399:8:15" + "2691:8:16" ], "nodeType": "IdentifierPath", "referencedDeclaration": 40, - "src": "2399:8:15" + "src": "2691:8:16" }, "nodeType": "ModifierInvocation", - "src": "2399:23:15" + "src": "2691:28:16" } ], - "name": "updateScores", - "nameLocation": "2316:12:15", + "name": "updateBaseURI", + "nameLocation": "2646:13:16", "nodeType": "FunctionDefinition", - "overrides": { - "id": 3743, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "2390:8:15" - }, "parameters": { - "id": 3742, + "id": 3977, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3739, - "mutability": "mutable", - "name": "date", - "nameLocation": "2343:4:15", - "nodeType": "VariableDeclaration", - "scope": 3762, - "src": "2338:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3738, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2338:4:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3741, + "id": 3976, "mutability": "mutable", - "name": "cid", - "nameLocation": "2371:3:15", + "name": "newURI", + "nameLocation": "2674:6:16", "nodeType": "VariableDeclaration", - "scope": 3762, - "src": "2357:17:15", + "scope": 3996, + "src": "2660:20:16", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -49313,10 +52316,10 @@ "typeString": "string" }, "typeName": { - "id": 3740, + "id": 3975, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2357:6:15", + "src": "2660:6:16", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -49325,148 +52328,25 @@ "visibility": "internal" } ], - "src": "2328:52:15" + "src": "2659:22:16" }, "returnParameters": { - "id": 3747, + "id": 3981, "nodeType": "ParameterList", "parameters": [], - "src": "2423:0:15" + "src": "2720:0:16" }, - "scope": 3798, - "src": "2307:202:15", + "scope": 4029, + "src": "2637:202:16", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "baseFunctions": [ - 62, - 607 - ], - "body": { - "id": 3772, - "nodeType": "Block", - "src": "2636:2:15", - "statements": [] - }, - "functionSelector": "01ffc9a7", - "id": 3773, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nameLocation": "2524:17:15", - "nodeType": "FunctionDefinition", - "overrides": { - "id": 3768, - "nodeType": "OverrideSpecifier", - "overrides": [ - { - "id": 3766, - "name": "AccessControl", - "nameLocations": [ - "2597:13:15" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 295, - "src": "2597:13:15" - }, - { - "id": 3767, - "name": "ERC1155", - "nameLocations": [ - "2612:7:15" - ], - "nodeType": "IdentifierPath", - "referencedDeclaration": 1566, - "src": "2612:7:15" - } - ], - "src": "2588:32:15" - }, - "parameters": { - "id": 3765, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3764, - "mutability": "mutable", - "name": "interfaceId", - "nameLocation": "2558:11:15", - "nodeType": "VariableDeclaration", - "scope": 3773, - "src": "2551:18:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 3763, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "2551:6:15", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "visibility": "internal" - } - ], - "src": "2541:34:15" - }, - "returnParameters": { - "id": 3771, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3770, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3773, - "src": "2630:4:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3769, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2630:4:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "visibility": "internal" - } - ], - "src": "2629:6:15" - }, - "scope": 3798, - "src": "2515:123:15", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "baseFunctions": [ - 618 - ], "body": { - "id": 3796, + "id": 4027, "nodeType": "Block", - "src": "2752:135:15", + "src": "3000:174:16", "statements": [ { "expression": { @@ -49474,117 +52354,197 @@ { "arguments": [ { - "hexValue": "697066733a2f2f", - "id": 3788, + "id": 4015, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3735, + "src": "3070:9:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + { + "hexValue": "2f6170692f76312f6e66742f", + "id": 4016, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2822:9:15", + "src": "3080:14:16", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe", - "typeString": "literal_string \"ipfs://\"" + "typeIdentifier": "t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7", + "typeString": "literal_string \"/api/v1/nft/\"" }, - "value": "ipfs://" + "value": "/api/v1/nft/" }, { - "baseExpression": { - "id": 3789, - "name": "_tokenMetadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3544, - "src": "2833:14:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", - "typeString": "mapping(uint256 => string storage ref)" + "arguments": [ + { + "id": 4019, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3998, + "src": "3112:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } - }, - "id": 3791, - "indexExpression": { - "id": 3790, - "name": "tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3775, - "src": "2848:7:15", + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 4017, + "name": "Strings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2325, + "src": "3095:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Strings_$2325_$", + "typeString": "type(library Strings)" + } + }, + "id": 4018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3103:8:16", + "memberName": "toString", + "nodeType": "MemberAccess", + "referencedDeclaration": 2138, + "src": "3095:16:16", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory)" } }, + "id": 4020, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2833:23:15", + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3095:25:16", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "hexValue": "2f", + "id": 4021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3121:3:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527", + "typeString": "literal_string \"/\"" + }, + "value": "/" + }, + { + "id": 4022, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4000, + "src": "3125:7:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" } }, { - "hexValue": "2e6a736f6e", - "id": 3792, + "hexValue": "2f72657075746174696f6e2d73636f7265", + "id": 4023, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2858:7:15", + "src": "3133:19:16", "typeDescriptions": { - "typeIdentifier": "t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972", - "typeString": "literal_string \".json\"" + "typeIdentifier": "t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55", + "typeString": "literal_string \"/reputation-score\"" }, - "value": ".json" + "value": "/reputation-score" } ], "expression": { "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe", - "typeString": "literal_string \"ipfs://\"" - }, { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" }, { - "typeIdentifier": "t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972", - "typeString": "literal_string \".json\"" + "typeIdentifier": "t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7", + "typeString": "literal_string \"/api/v1/nft/\"" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527", + "typeString": "literal_string \"/\"" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55", + "typeString": "literal_string \"/reputation-score\"" } ], "expression": { - "id": 3786, + "id": 4013, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, - "src": "2805:3:15", + "src": "3053:3:16", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 3787, + "id": 4014, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "memberLocation": "2809:12:15", + "memberLocation": "3057:12:16", "memberName": "encodePacked", "nodeType": "MemberAccess", - "src": "2805:16:15", + "src": "3053:16:16", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 3793, + "id": 4024, "isConstant": false, "isLValue": false, "isPure": false, @@ -49593,7 +52553,7 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2805:61:15", + "src": "3053:100:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -49608,26 +52568,26 @@ "typeString": "bytes memory" } ], - "id": 3785, + "id": 4012, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2781:6:15", + "src": "3029:6:16", "typeDescriptions": { "typeIdentifier": "t_type$_t_string_storage_ptr_$", "typeString": "type(string storage pointer)" }, "typeName": { - "id": 3784, + "id": 4011, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2781:6:15", + "src": "3029:6:16", "typeDescriptions": {} } }, - "id": 3794, + "id": 4025, "isConstant": false, "isLValue": false, "isPure": false, @@ -49636,78 +52596,102 @@ "nameLocations": [], "names": [], "nodeType": "FunctionCall", - "src": "2781:99:15", + "src": "3029:138:16", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, - "functionReturnParameters": 3783, - "id": 3795, + "functionReturnParameters": 4010, + "id": 4026, "nodeType": "Return", - "src": "2762:118:15" + "src": "3010:157:16" } ] }, - "functionSelector": "0e89341c", - "id": 3797, + "functionSelector": "76b676f1", + "id": 4028, "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { - "id": 3779, + "id": 4003, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3775, - "src": "2719:7:15", + "referencedDeclaration": 3998, + "src": "2942:7:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 3780, + "id": 4004, "kind": "modifierInvocation", "modifierName": { - "id": 3778, + "id": 4002, "name": "validTokenId", "nameLocations": [ - "2706:12:15" + "2929:12:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3802, + "src": "2929:12:16" + }, + "nodeType": "ModifierInvocation", + "src": "2929:21:16" + }, + { + "arguments": [ + { + "id": 4006, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4000, + "src": "2967:7:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "id": 4007, + "kind": "modifierInvocation", + "modifierName": { + "id": 4005, + "name": "nonEmptyAccount", + "nameLocations": [ + "2951:15:16" ], "nodeType": "IdentifierPath", - "referencedDeclaration": 3586, - "src": "2706:12:15" + "referencedDeclaration": 3840, + "src": "2951:15:16" }, "nodeType": "ModifierInvocation", - "src": "2706:21:15" + "src": "2951:24:16" } ], "name": "uri", - "nameLocation": "2653:3:15", + "nameLocation": "2854:3:16", "nodeType": "FunctionDefinition", - "overrides": { - "id": 3777, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "2697:8:15" - }, "parameters": { - "id": 3776, + "id": 4001, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3775, + "id": 3998, "mutability": "mutable", "name": "tokenId", - "nameLocation": "2671:7:15", + "nameLocation": "2872:7:16", "nodeType": "VariableDeclaration", - "scope": 3797, - "src": "2666:12:15", + "scope": 4028, + "src": "2867:12:16", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -49715,33 +52699,60 @@ "typeString": "uint256" }, "typeName": { - "id": 3774, + "id": 3997, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "2666:4:15", + "src": "2867:4:16", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" + }, + { + "constant": false, + "id": 4000, + "mutability": "mutable", + "name": "account", + "nameLocation": "2903:7:16", + "nodeType": "VariableDeclaration", + "scope": 4028, + "src": "2889:21:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3999, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2889:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" } ], - "src": "2656:28:15" + "src": "2857:59:16" }, "returnParameters": { - "id": 3783, + "id": 4010, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3782, + "id": 4009, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 3797, - "src": "2737:13:15", + "scope": 4028, + "src": "2985:13:16", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -49749,10 +52760,10 @@ "typeString": "string" }, "typeName": { - "id": 3781, + "id": 4008, "name": "string", "nodeType": "ElementaryTypeName", - "src": "2737:6:15", + "src": "2985:6:16", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -49761,17 +52772,17 @@ "visibility": "internal" } ], - "src": "2736:15:15" + "src": "2984:15:16" }, - "scope": 3798, - "src": "2644:243:15", + "scope": 4029, + "src": "2845:329:16", "stateMutability": "view", "virtual": false, "visibility": "public" } ], - "scope": 3799, - "src": "265:2624:15", + "scope": 4030, + "src": "336:2840:16", "usedErrors": [ 305, 308, @@ -49782,9 +52793,11 @@ 502, 507, 514, - 3833, - 3839, - 3845 + 4063, + 4069, + 4075, + 4079, + 4083 ], "usedEvents": [ 317, @@ -49794,28 +52807,39 @@ 1601, 1610, 1617, - 3805, - 3813, - 3821, - 3829 + 4037, + 4045, + 4053, + 4059 ] } ], - "src": "39:2851:15" + "src": "39:3138:16" }, - "id": 15 + "id": 16 }, "contracts/IEngagement.sol": { "ast": { "absolutePath": "contracts/IEngagement.sol", "exportedSymbols": { "IEngagement": [ - 3894 + 4117 ] }, - "id": 3895, + "id": 4118, + "license": "UNLICENSED", "nodeType": "SourceUnit", "nodes": [ + { + "id": 4031, + "literals": [ + "solidity", + "0.8", + ".26" + ], + "nodeType": "PragmaDirective", + "src": "39:23:17" + }, { "abstract": false, "baseContracts": [], @@ -49823,35 +52847,35 @@ "contractDependencies": [], "contractKind": "interface", "fullyImplemented": false, - "id": 3894, + "id": 4117, "linearizedBaseContracts": [ - 3894 + 4117 ], "name": "IEngagement", - "nameLocation": "10:11:16", + "nameLocation": "74:11:17", "nodeType": "ContractDefinition", "nodes": [ { "anonymous": false, "eventSelector": "c65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c16", - "id": 3805, + "id": 4037, "name": "Issue", - "nameLocation": "34:5:16", + "nameLocation": "98:5:17", "nodeType": "EventDefinition", "parameters": { - "id": 3804, + "id": 4036, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3801, + "id": 4033, "indexed": true, "mutability": "mutable", "name": "account", - "nameLocation": "56:7:16", + "nameLocation": "120:7:17", "nodeType": "VariableDeclaration", - "scope": 3805, - "src": "40:23:16", + "scope": 4037, + "src": "104:23:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -49859,10 +52883,10 @@ "typeString": "address" }, "typeName": { - "id": 3800, + "id": 4032, "name": "address", "nodeType": "ElementaryTypeName", - "src": "40:7:16", + "src": "104:7:17", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -49873,14 +52897,14 @@ }, { "constant": false, - "id": 3803, + "id": 4035, "indexed": true, "mutability": "mutable", "name": "tokenId", - "nameLocation": "78:7:16", + "nameLocation": "142:7:17", "nodeType": "VariableDeclaration", - "scope": 3805, - "src": "65:20:16", + "scope": 4037, + "src": "129:20:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -49888,10 +52912,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3802, + "id": 4034, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "65:4:16", + "src": "129:4:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -49900,31 +52924,31 @@ "visibility": "internal" } ], - "src": "39:47:16" + "src": "103:47:17" }, - "src": "28:59:16" + "src": "92:59:17" }, { "anonymous": false, "eventSelector": "4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f", - "id": 3813, + "id": 4045, "name": "Mint", - "nameLocation": "98:4:16", + "nameLocation": "162:4:17", "nodeType": "EventDefinition", "parameters": { - "id": 3812, + "id": 4044, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3807, + "id": 4039, "indexed": true, "mutability": "mutable", "name": "account", - "nameLocation": "119:7:16", + "nameLocation": "183:7:17", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "103:23:16", + "scope": 4045, + "src": "167:23:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -49932,10 +52956,10 @@ "typeString": "address" }, "typeName": { - "id": 3806, + "id": 4038, "name": "address", "nodeType": "ElementaryTypeName", - "src": "103:7:16", + "src": "167:7:17", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -49946,14 +52970,14 @@ }, { "constant": false, - "id": 3809, + "id": 4041, "indexed": true, "mutability": "mutable", "name": "tokenId", - "nameLocation": "141:7:16", + "nameLocation": "205:7:17", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "128:20:16", + "scope": 4045, + "src": "192:20:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -49961,10 +52985,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3808, + "id": 4040, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "128:4:16", + "src": "192:4:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -49974,14 +52998,14 @@ }, { "constant": false, - "id": 3811, + "id": 4043, "indexed": false, "mutability": "mutable", "name": "amount", - "nameLocation": "155:6:16", + "nameLocation": "219:6:17", "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "150:11:16", + "scope": 4045, + "src": "214:11:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -49989,10 +53013,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3810, + "id": 4042, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "150:4:16", + "src": "214:4:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -50001,31 +53025,31 @@ "visibility": "internal" } ], - "src": "102:60:16" + "src": "166:60:17" }, - "src": "92:71:16" + "src": "156:71:17" }, { "anonymous": false, "eventSelector": "49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a", - "id": 3821, + "id": 4053, "name": "Burn", - "nameLocation": "174:4:16", + "nameLocation": "238:4:17", "nodeType": "EventDefinition", "parameters": { - "id": 3820, + "id": 4052, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3815, + "id": 4047, "indexed": true, "mutability": "mutable", "name": "account", - "nameLocation": "195:7:16", + "nameLocation": "259:7:17", "nodeType": "VariableDeclaration", - "scope": 3821, - "src": "179:23:16", + "scope": 4053, + "src": "243:23:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50033,10 +53057,10 @@ "typeString": "address" }, "typeName": { - "id": 3814, + "id": 4046, "name": "address", "nodeType": "ElementaryTypeName", - "src": "179:7:16", + "src": "243:7:17", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -50047,14 +53071,14 @@ }, { "constant": false, - "id": 3817, + "id": 4049, "indexed": true, "mutability": "mutable", "name": "tokenId", - "nameLocation": "217:7:16", + "nameLocation": "281:7:17", "nodeType": "VariableDeclaration", - "scope": 3821, - "src": "204:20:16", + "scope": 4053, + "src": "268:20:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50062,10 +53086,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3816, + "id": 4048, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "204:4:16", + "src": "268:4:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -50075,14 +53099,14 @@ }, { "constant": false, - "id": 3819, + "id": 4051, "indexed": false, "mutability": "mutable", "name": "amount", - "nameLocation": "231:6:16", + "nameLocation": "295:6:17", "nodeType": "VariableDeclaration", - "scope": 3821, - "src": "226:11:16", + "scope": 4053, + "src": "290:11:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50090,10 +53114,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3818, + "id": 4050, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "226:4:16", + "src": "290:4:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -50102,88 +53126,59 @@ "visibility": "internal" } ], - "src": "178:60:16" + "src": "242:60:17" }, - "src": "168:71:16" + "src": "232:71:17" }, { "anonymous": false, - "eventSelector": "ee5e19404a9c880f5e862aeeedfa8f4b4b427864327c17888eb6a34d549e5a55", - "id": 3829, - "name": "UpdateScores", - "nameLocation": "250:12:16", + "eventSelector": "309b29ded109b9e28fb9885757b3e0096eb75c51d23aa4635d68bcd569f6adc1", + "id": 4059, + "name": "BaseURIUpdated", + "nameLocation": "314:14:17", "nodeType": "EventDefinition", "parameters": { - "id": 3828, + "id": 4058, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3823, - "indexed": true, - "mutability": "mutable", - "name": "account", - "nameLocation": "279:7:16", - "nodeType": "VariableDeclaration", - "scope": 3829, - "src": "263:23:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3822, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "263:7:16", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3825, - "indexed": true, + "id": 4055, + "indexed": false, "mutability": "mutable", - "name": "date", - "nameLocation": "301:4:16", + "name": "oldURI", + "nameLocation": "336:6:17", "nodeType": "VariableDeclaration", - "scope": 3829, - "src": "288:17:16", + "scope": 4059, + "src": "329:13:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" }, "typeName": { - "id": 3824, - "name": "uint", + "id": 4054, + "name": "string", "nodeType": "ElementaryTypeName", - "src": "288:4:16", + "src": "329:6:17", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" } }, "visibility": "internal" }, { "constant": false, - "id": 3827, + "id": 4057, "indexed": false, "mutability": "mutable", - "name": "cid", - "nameLocation": "314:3:16", + "name": "newURI", + "nameLocation": "351:6:17", "nodeType": "VariableDeclaration", - "scope": 3829, - "src": "307:10:16", + "scope": 4059, + "src": "344:13:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50191,10 +53186,10 @@ "typeString": "string" }, "typeName": { - "id": 3826, + "id": 4056, "name": "string", "nodeType": "ElementaryTypeName", - "src": "307:6:16", + "src": "344:6:17", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -50203,29 +53198,29 @@ "visibility": "internal" } ], - "src": "262:56:16" + "src": "328:30:17" }, - "src": "244:75:16" + "src": "308:51:17" }, { "errorSelector": "c80a970c", - "id": 3833, + "id": 4063, "name": "NotFound", - "nameLocation": "331:8:16", + "nameLocation": "371:8:17", "nodeType": "ErrorDefinition", "parameters": { - "id": 3832, + "id": 4062, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3831, + "id": 4061, "mutability": "mutable", "name": "tokenId", - "nameLocation": "345:7:16", + "nameLocation": "385:7:17", "nodeType": "VariableDeclaration", - "scope": 3833, - "src": "340:12:16", + "scope": 4063, + "src": "380:12:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50233,10 +53228,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3830, + "id": 4060, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "340:4:16", + "src": "380:4:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -50245,29 +53240,29 @@ "visibility": "internal" } ], - "src": "339:14:16" + "src": "379:14:17" }, - "src": "325:29:16" + "src": "365:29:17" }, { "errorSelector": "788d2556", - "id": 3839, + "id": 4069, "name": "MintLimit", - "nameLocation": "365:9:16", + "nameLocation": "405:9:17", "nodeType": "ErrorDefinition", "parameters": { - "id": 3838, + "id": 4068, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3835, + "id": 4065, "mutability": "mutable", "name": "account", - "nameLocation": "383:7:16", + "nameLocation": "423:7:17", "nodeType": "VariableDeclaration", - "scope": 3839, - "src": "375:15:16", + "scope": 4069, + "src": "415:15:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50275,10 +53270,10 @@ "typeString": "address" }, "typeName": { - "id": 3834, + "id": 4064, "name": "address", "nodeType": "ElementaryTypeName", - "src": "375:7:16", + "src": "415:7:17", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -50289,13 +53284,13 @@ }, { "constant": false, - "id": 3837, + "id": 4067, "mutability": "mutable", "name": "tokenId", - "nameLocation": "397:7:16", + "nameLocation": "437:7:17", "nodeType": "VariableDeclaration", - "scope": 3839, - "src": "392:12:16", + "scope": 4069, + "src": "432:12:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50303,10 +53298,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3836, + "id": 4066, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "392:4:16", + "src": "432:4:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -50315,29 +53310,29 @@ "visibility": "internal" } ], - "src": "374:31:16" + "src": "414:31:17" }, - "src": "359:47:16" + "src": "399:47:17" }, { "errorSelector": "8626cc03", - "id": 3845, + "id": 4075, "name": "NotAllowed", - "nameLocation": "417:10:16", + "nameLocation": "457:10:17", "nodeType": "ErrorDefinition", "parameters": { - "id": 3844, + "id": 4074, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3841, + "id": 4071, "mutability": "mutable", "name": "account", - "nameLocation": "436:7:16", + "nameLocation": "476:7:17", "nodeType": "VariableDeclaration", - "scope": 3845, - "src": "428:15:16", + "scope": 4075, + "src": "468:15:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50345,10 +53340,10 @@ "typeString": "address" }, "typeName": { - "id": 3840, + "id": 4070, "name": "address", "nodeType": "ElementaryTypeName", - "src": "428:7:16", + "src": "468:7:17", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -50359,13 +53354,13 @@ }, { "constant": false, - "id": 3843, + "id": 4073, "mutability": "mutable", "name": "tokenId", - "nameLocation": "450:7:16", + "nameLocation": "490:7:17", "nodeType": "VariableDeclaration", - "scope": 3845, - "src": "445:12:16", + "scope": 4075, + "src": "485:12:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50373,10 +53368,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3842, + "id": 4072, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "445:4:16", + "src": "485:4:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -50385,38 +53380,122 @@ "visibility": "internal" } ], - "src": "427:31:16" + "src": "467:31:17" }, - "src": "411:48:16" + "src": "451:48:17" }, { - "functionSelector": "61bc221a", - "id": 3850, - "implemented": false, + "errorSelector": "1897cf66", + "id": 4079, + "name": "URIEmpty", + "nameLocation": "510:8:17", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 4078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4077, + "mutability": "mutable", + "name": "message", + "nameLocation": "526:7:17", + "nodeType": "VariableDeclaration", + "scope": 4079, + "src": "519:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4076, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "519:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "518:16:17" + }, + "src": "504:31:17" + }, + { + "errorSelector": "c29f9db3", + "id": 4083, + "name": "EmptyAccountNotAllowed", + "nameLocation": "546:22:17", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 4082, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4081, + "mutability": "mutable", + "name": "message", + "nameLocation": "576:7:17", + "nodeType": "VariableDeclaration", + "scope": 4083, + "src": "569:14:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4080, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "569:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "568:16:17" + }, + "src": "540:45:17" + }, + { + "functionSelector": "61bc221a", + "id": 4088, + "implemented": false, "kind": "function", "modifiers": [], "name": "counter", - "nameLocation": "474:7:16", + "nameLocation": "600:7:17", "nodeType": "FunctionDefinition", "parameters": { - "id": 3846, + "id": 4084, "nodeType": "ParameterList", "parameters": [], - "src": "481:2:16" + "src": "607:2:17" }, "returnParameters": { - "id": 3849, + "id": 4087, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3848, + "id": 4086, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 3850, - "src": "507:4:16", + "scope": 4088, + "src": "633:4:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50424,10 +53503,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3847, + "id": 4085, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "507:4:16", + "src": "633:4:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -50436,91 +53515,63 @@ "visibility": "internal" } ], - "src": "506:6:16" + "src": "632:6:17" }, - "scope": 3894, - "src": "465:48:16", + "scope": 4117, + "src": "591:48:17", "stateMutability": "view", "virtual": false, "visibility": "external" }, { - "functionSelector": "3cad9b0d", - "id": 3855, + "functionSelector": "d383f646", + "id": 4091, "implemented": false, "kind": "function", "modifiers": [], "name": "issue", - "nameLocation": "528:5:16", + "nameLocation": "654:5:17", "nodeType": "FunctionDefinition", "parameters": { - "id": 3853, + "id": 4089, "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3852, - "mutability": "mutable", - "name": "hash", - "nameLocation": "548:4:16", - "nodeType": "VariableDeclaration", - "scope": 3855, - "src": "534:18:16", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3851, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "534:6:16", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "533:20:16" + "parameters": [], + "src": "659:2:17" }, "returnParameters": { - "id": 3854, + "id": 4090, "nodeType": "ParameterList", "parameters": [], - "src": "562:0:16" + "src": "670:0:17" }, - "scope": 3894, - "src": "519:44:16", + "scope": 4117, + "src": "645:26:17", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "functionSelector": "731133e9", - "id": 3866, + "id": 4102, "implemented": false, "kind": "function", "modifiers": [], "name": "mint", - "nameLocation": "578:4:16", + "nameLocation": "686:4:17", "nodeType": "FunctionDefinition", "parameters": { - "id": 3864, + "id": 4100, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3857, + "id": 4093, "mutability": "mutable", "name": "account", - "nameLocation": "600:7:16", + "nameLocation": "708:7:17", "nodeType": "VariableDeclaration", - "scope": 3866, - "src": "592:15:16", + "scope": 4102, + "src": "700:15:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50528,10 +53579,10 @@ "typeString": "address" }, "typeName": { - "id": 3856, + "id": 4092, "name": "address", "nodeType": "ElementaryTypeName", - "src": "592:7:16", + "src": "700:7:17", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -50542,13 +53593,13 @@ }, { "constant": false, - "id": 3859, + "id": 4095, "mutability": "mutable", "name": "tokenId", - "nameLocation": "622:7:16", + "nameLocation": "730:7:17", "nodeType": "VariableDeclaration", - "scope": 3866, - "src": "617:12:16", + "scope": 4102, + "src": "725:12:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50556,10 +53607,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3858, + "id": 4094, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "617:4:16", + "src": "725:4:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -50569,13 +53620,13 @@ }, { "constant": false, - "id": 3861, + "id": 4097, "mutability": "mutable", "name": "amount", - "nameLocation": "644:6:16", + "nameLocation": "752:6:17", "nodeType": "VariableDeclaration", - "scope": 3866, - "src": "639:11:16", + "scope": 4102, + "src": "747:11:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50583,10 +53634,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3860, + "id": 4096, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "639:4:16", + "src": "747:4:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -50596,13 +53647,13 @@ }, { "constant": false, - "id": 3863, + "id": 4099, "mutability": "mutable", "name": "data", - "nameLocation": "673:4:16", + "nameLocation": "781:4:17", "nodeType": "VariableDeclaration", - "scope": 3866, - "src": "660:17:16", + "scope": 4102, + "src": "768:17:17", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -50610,10 +53661,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3862, + "id": 4098, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "660:5:16", + "src": "768:5:17", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -50622,42 +53673,42 @@ "visibility": "internal" } ], - "src": "582:101:16" + "src": "690:101:17" }, "returnParameters": { - "id": 3865, + "id": 4101, "nodeType": "ParameterList", "parameters": [], - "src": "692:0:16" + "src": "800:0:17" }, - "scope": 3894, - "src": "569:124:16", + "scope": 4117, + "src": "677:124:17", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "functionSelector": "f5298aca", - "id": 3875, + "id": 4111, "implemented": false, "kind": "function", "modifiers": [], "name": "burn", - "nameLocation": "708:4:16", + "nameLocation": "816:4:17", "nodeType": "FunctionDefinition", "parameters": { - "id": 3873, + "id": 4109, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3868, + "id": 4104, "mutability": "mutable", "name": "account", - "nameLocation": "721:7:16", + "nameLocation": "829:7:17", "nodeType": "VariableDeclaration", - "scope": 3875, - "src": "713:15:16", + "scope": 4111, + "src": "821:15:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50665,10 +53716,10 @@ "typeString": "address" }, "typeName": { - "id": 3867, + "id": 4103, "name": "address", "nodeType": "ElementaryTypeName", - "src": "713:7:16", + "src": "821:7:17", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -50679,13 +53730,13 @@ }, { "constant": false, - "id": 3870, + "id": 4106, "mutability": "mutable", "name": "tokenId", - "nameLocation": "735:7:16", + "nameLocation": "843:7:17", "nodeType": "VariableDeclaration", - "scope": 3875, - "src": "730:12:16", + "scope": 4111, + "src": "838:12:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50693,10 +53744,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3869, + "id": 4105, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "730:4:16", + "src": "838:4:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -50706,13 +53757,13 @@ }, { "constant": false, - "id": 3872, + "id": 4108, "mutability": "mutable", "name": "amount", - "nameLocation": "749:6:16", + "nameLocation": "857:6:17", "nodeType": "VariableDeclaration", - "scope": 3875, - "src": "744:11:16", + "scope": 4111, + "src": "852:11:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50720,10 +53771,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3871, + "id": 4107, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "744:4:16", + "src": "852:4:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -50732,206 +53783,42 @@ "visibility": "internal" } ], - "src": "712:44:16" + "src": "820:44:17" }, "returnParameters": { - "id": 3874, + "id": 4110, "nodeType": "ParameterList", "parameters": [], - "src": "765:0:16" + "src": "873:0:17" }, - "scope": 3894, - "src": "699:67:16", + "scope": 4117, + "src": "807:67:17", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { - "functionSelector": "c5afac66", - "id": 3886, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getScores", - "nameLocation": "781:9:16", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3882, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3877, - "mutability": "mutable", - "name": "date", - "nameLocation": "805:4:16", - "nodeType": "VariableDeclaration", - "scope": 3886, - "src": "800:9:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3876, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "800:4:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3879, - "mutability": "mutable", - "name": "id", - "nameLocation": "824:2:16", - "nodeType": "VariableDeclaration", - "scope": 3886, - "src": "819:7:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3878, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "819:4:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3881, - "mutability": "mutable", - "name": "account", - "nameLocation": "850:7:16", - "nodeType": "VariableDeclaration", - "scope": 3886, - "src": "836:21:16", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3880, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "836:6:16", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "790:73:16" - }, - "returnParameters": { - "id": 3885, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3884, - "mutability": "mutable", - "name": "", - "nameLocation": "-1:-1:-1", - "nodeType": "VariableDeclaration", - "scope": 3886, - "src": "887:13:16", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3883, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "887:6:16", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "visibility": "internal" - } - ], - "src": "886:15:16" - }, - "scope": 3894, - "src": "772:130:16", - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "functionSelector": "1c4ce135", - "id": 3893, + "functionSelector": "931688cb", + "id": 4116, "implemented": false, "kind": "function", "modifiers": [], - "name": "updateScores", - "nameLocation": "917:12:16", + "name": "updateBaseURI", + "nameLocation": "889:13:17", "nodeType": "FunctionDefinition", "parameters": { - "id": 3891, + "id": 4114, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3888, - "mutability": "mutable", - "name": "date", - "nameLocation": "935:4:16", - "nodeType": "VariableDeclaration", - "scope": 3893, - "src": "930:9:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3887, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "930:4:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3890, + "id": 4113, "mutability": "mutable", - "name": "cid", - "nameLocation": "955:3:16", + "name": "newURI", + "nameLocation": "917:6:17", "nodeType": "VariableDeclaration", - "scope": 3893, - "src": "941:17:16", + "scope": 4116, + "src": "903:20:17", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -50939,10 +53826,10 @@ "typeString": "string" }, "typeName": { - "id": 3889, + "id": 4112, "name": "string", "nodeType": "ElementaryTypeName", - "src": "941:6:16", + "src": "903:6:17", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -50951,1241 +53838,181 @@ "visibility": "internal" } ], - "src": "929:30:16" + "src": "902:22:17" }, "returnParameters": { - "id": 3892, + "id": 4115, "nodeType": "ParameterList", "parameters": [], - "src": "968:0:16" + "src": "933:0:17" }, - "scope": 3894, - "src": "908:61:16", + "scope": 4117, + "src": "880:54:17", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" } ], - "scope": 3895, - "src": "0:971:16", + "scope": 4118, + "src": "64:872:17", "usedErrors": [ - 3833, - 3839, - 3845 + 4063, + 4069, + 4075, + 4079, + 4083 ], "usedEvents": [ - 3805, - 3813, - 3821, - 3829 + 4037, + 4045, + 4053, + 4059 ] } ], - "src": "0:972:16" + "src": "39:898:17" }, - "id": 16 - }, - "contracts/Lock.sol": { - "ast": { - "absolutePath": "contracts/Lock.sol", - "exportedSymbols": { - "Lock": [ - 3973 - ] - }, - "id": 3974, - "license": "UNLICENSED", - "nodeType": "SourceUnit", - "nodes": [ + "id": 17 + } + }, + "contracts": { + "@openzeppelin/contracts/access/AccessControl.sol": { + "AccessControl": { + "abi": [ { - "id": 3896, - "literals": [ - "solidity", - "^", - "0.8", - ".24" + "inputs": [], + "name": "AccessControlBadConfirmation", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "neededRole", + "type": "bytes32" + } ], - "nodeType": "PragmaDirective", - "src": "39:24:17" + "name": "AccessControlUnauthorizedAccount", + "type": "error" }, { - "abstract": false, - "baseContracts": [], - "canonicalName": "Lock", - "contractDependencies": [], - "contractKind": "contract", - "fullyImplemented": true, - "id": 3973, - "linearizedBaseContracts": [ - 3973 + "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": "Lock", - "nameLocation": "150:4:17", - "nodeType": "ContractDefinition", - "nodes": [ + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { - "constant": false, - "functionSelector": "251c1aa3", - "id": 3898, - "mutability": "mutable", - "name": "unlockTime", - "nameLocation": "173:10:17", - "nodeType": "VariableDeclaration", - "scope": 3973, - "src": "161:22:17", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3897, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "161:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "public" + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { - "constant": false, - "functionSelector": "8da5cb5b", - "id": 3900, - "mutability": "mutable", - "name": "owner", - "nameLocation": "212:5:17", - "nodeType": "VariableDeclaration", - "scope": 3973, - "src": "189:28:17", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 3899, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "189:15:17", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "visibility": "public" + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" }, { - "anonymous": false, - "eventSelector": "bf2ed60bd5b5965d685680c01195c9514e4382e28e3a5a2d2d5244bf59411b93", - "id": 3906, - "name": "Withdrawal", - "nameLocation": "230:10:17", - "nodeType": "EventDefinition", - "parameters": { - "id": 3905, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3902, - "indexed": false, - "mutability": "mutable", - "name": "amount", - "nameLocation": "246:6:17", - "nodeType": "VariableDeclaration", - "scope": 3906, - "src": "241:11:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3901, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "241:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3904, - "indexed": false, - "mutability": "mutable", - "name": "when", - "nameLocation": "259:4:17", - "nodeType": "VariableDeclaration", - "scope": 3906, - "src": "254:9:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3903, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "254:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "240:24:17" - }, - "src": "224:41:17" + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { - "body": { - "id": 3931, - "nodeType": "Block", - "src": "309:200:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3915, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 3912, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "340:5:17", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 3913, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "346:9:17", - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "340:15:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "id": 3914, - "name": "_unlockTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3908, - "src": "358:11:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "340:29:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "556e6c6f636b2074696d652073686f756c6420626520696e2074686520667574757265", - "id": 3916, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "383:37:17", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413", - "typeString": "literal_string \"Unlock time should be in the future\"" - }, - "value": "Unlock time should be in the future" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413", - "typeString": "literal_string \"Unlock time should be in the future\"" - } - ], - "id": 3911, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "319:7:17", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3917, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "319:111:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3918, - "nodeType": "ExpressionStatement", - "src": "319:111:17" - }, - { - "expression": { - "id": 3921, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 3919, - "name": "unlockTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3898, - "src": "441:10:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 3920, - "name": "_unlockTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3908, - "src": "454:11:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "441:24:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3922, - "nodeType": "ExpressionStatement", - "src": "441:24:17" - }, - { - "expression": { - "id": 3929, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 3923, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "475:5:17", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "arguments": [ - { - "expression": { - "id": 3926, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "491:3:17", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "495:6:17", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "491:10:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3925, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "483:8:17", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_payable_$", - "typeString": "type(address payable)" - }, - "typeName": { - "id": 3924, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "483:8:17", - "stateMutability": "payable", - "typeDescriptions": {} - } - }, - "id": 3928, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "483:19:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "475:27:17", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 3930, - "nodeType": "ExpressionStatement", - "src": "475:27:17" - } - ] - }, - "id": 3932, - "implemented": true, - "kind": "constructor", - "modifiers": [], + "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": "", - "nameLocation": "-1:-1:-1", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3909, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3908, - "mutability": "mutable", - "name": "_unlockTime", - "nameLocation": "288:11:17", - "nodeType": "VariableDeclaration", - "scope": 3932, - "src": "283:16:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3907, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "283:4:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "internal" - } - ], - "src": "282:18:17" - }, - "returnParameters": { - "id": 3910, - "nodeType": "ParameterList", - "parameters": [], - "src": "309:0:17" - }, - "scope": 3973, - "src": "271:238:17", - "stateMutability": "payable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 3971, - "nodeType": "Block", - "src": "542:463:17", - "statements": [ - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3939, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 3936, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "766:5:17", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 3937, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "772:9:17", - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "766:15:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "id": 3938, - "name": "unlockTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3898, - "src": "785:10:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "766:29:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "596f752063616e277420776974686472617720796574", - "id": 3940, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "797:24:17", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8", - "typeString": "literal_string \"You can't withdraw yet\"" - }, - "value": "You can't withdraw yet" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8", - "typeString": "literal_string \"You can't withdraw yet\"" - } - ], - "id": 3935, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "758:7:17", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3941, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "758:64:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3942, - "nodeType": "ExpressionStatement", - "src": "758:64:17" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3947, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 3944, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "840:3:17", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3945, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "844:6:17", - "memberName": "sender", - "nodeType": "MemberAccess", - "src": "840:10:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 3946, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "854:5:17", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "840:19:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "596f75206172656e277420746865206f776e6572", - "id": 3948, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "861:22:17", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a", - "typeString": "literal_string \"You aren't the owner\"" - }, - "value": "You aren't the owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a", - "typeString": "literal_string \"You aren't the owner\"" - } - ], - "id": 3943, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "832:7:17", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "832:52:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3950, - "nodeType": "ExpressionStatement", - "src": "832:52:17" - }, - { - "eventCall": { - "arguments": [ - { - "expression": { - "arguments": [ - { - "id": 3954, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "919:4:17", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Lock_$3973", - "typeString": "contract Lock" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Lock_$3973", - "typeString": "contract Lock" - } - ], - "id": 3953, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "911:7:17", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 3952, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "911:7:17", - "typeDescriptions": {} - } - }, - "id": 3955, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "911:13:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3956, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "925:7:17", - "memberName": "balance", - "nodeType": "MemberAccess", - "src": "911:21:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "expression": { - "id": 3957, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "934:5:17", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 3958, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "940:9:17", - "memberName": "timestamp", - "nodeType": "MemberAccess", - "src": "934:15:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3951, - "name": "Withdrawal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3906, - "src": "900:10:17", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" - } - }, - "id": 3959, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "900:50:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3960, - "nodeType": "EmitStatement", - "src": "895:55:17" - }, - { - "expression": { - "arguments": [ - { - "expression": { - "arguments": [ - { - "id": 3966, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "984:4:17", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Lock_$3973", - "typeString": "contract Lock" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Lock_$3973", - "typeString": "contract Lock" - } - ], - "id": 3965, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "976:7:17", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 3964, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "976:7:17", - "typeDescriptions": {} - } - }, - "id": 3967, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "976:13:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3968, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "990:7:17", - "memberName": "balance", - "nodeType": "MemberAccess", - "src": "976:21:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "id": 3961, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3900, - "src": "961:5:17", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 3963, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "967:8:17", - "memberName": "transfer", - "nodeType": "MemberAccess", - "src": "961:14:17", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 3969, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "nameLocations": [], - "names": [], - "nodeType": "FunctionCall", - "src": "961:37:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3970, - "nodeType": "ExpressionStatement", - "src": "961:37:17" - } - ] - }, - "functionSelector": "3ccfd60b", - "id": 3972, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "withdraw", - "nameLocation": "524:8:17", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3933, - "nodeType": "ParameterList", - "parameters": [], - "src": "532:2:17" - }, - "returnParameters": { - "id": 3934, - "nodeType": "ParameterList", - "parameters": [], - "src": "542:0:17" - }, - "scope": 3973, - "src": "515:490:17", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - } - ], - "scope": 3974, - "src": "141:866:17", - "usedErrors": [], - "usedEvents": [ - 3906 - ] - } - ], - "src": "39:969:17" - }, - "id": 17 - } - }, - "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" + "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", @@ -52306,7 +54133,7 @@ "supportsInterface(bytes4)": "01ffc9a7" } }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module that allows children to implement role-based access control mechanisms. This is a lightweight version that doesn't allow enumerating role members except through off-chain means by accessing the contract event logs. Some applications may benefit from on-chain enumerability, for those cases see {AccessControlEnumerable}. Roles are referred to by their `bytes32` identifier. These should be exposed in the external API and be unique. The best way to achieve this is by using `public constant` hash digests: ```solidity bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\"); ``` Roles can be used to represent a set of permissions. To restrict access to a function call, use {hasRole}: ```solidity function foo() public { require(hasRole(MY_ROLE, msg.sender)); ... } ``` Roles can be granted and revoked dynamically via the {grantRole} and {revokeRole} functions. Each role has an associated admin role, and only accounts that have a role's admin role can call {grantRole} and {revokeRole}. By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means that only accounts with this role will be able to grant or revoke other roles. More complex role relationships can be created by using {_setRoleAdmin}. WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to grant and revoke this role. Extra precautions should be taken to secure accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules} to enforce additional security measures for this role.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/AccessControl.sol\":\"AccessControl\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module that allows children to implement role-based access control mechanisms. This is a lightweight version that doesn't allow enumerating role members except through off-chain means by accessing the contract event logs. Some applications may benefit from on-chain enumerability, for those cases see {AccessControlEnumerable}. Roles are referred to by their `bytes32` identifier. These should be exposed in the external API and be unique. The best way to achieve this is by using `public constant` hash digests: ```solidity bytes32 public constant MY_ROLE = keccak256(\\\"MY_ROLE\\\"); ``` Roles can be used to represent a set of permissions. To restrict access to a function call, use {hasRole}: ```solidity function foo() public { require(hasRole(MY_ROLE, msg.sender)); ... } ``` Roles can be granted and revoked dynamically via the {grantRole} and {revokeRole} functions. Each role has an associated admin role, and only accounts that have a role's admin role can call {grantRole} and {revokeRole}. By default, the admin role for all roles is `DEFAULT_ADMIN_ROLE`, which means that only accounts with this role will be able to grant or revoke other roles. More complex role relationships can be created by using {_setRoleAdmin}. WARNING: The `DEFAULT_ADMIN_ROLE` is also its own admin: it has permission to grant and revoke this role. Extra precautions should be taken to secure accounts that have been granted it. We recommend using {AccessControlDefaultAdminRules} to enforce additional security measures for this role.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `callerConfirmation`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/access/AccessControl.sol\":\"AccessControl\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" } }, "@openzeppelin/contracts/access/IAccessControl.sol": { @@ -52532,7 +54359,7 @@ "revokeRole(bytes32,address)": "d547741f" } }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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 ERC165 detection.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"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\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]}},\"version\":1}" + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"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 ERC165 detection.\",\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}]},\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"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\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]}},\"version\":1}" } }, "@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { @@ -52661,7 +54488,7 @@ }, "methodIdentifiers": {} }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC1155Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}" + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC1155Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}" }, "IERC20Errors": { "abi": [ @@ -52772,7 +54599,7 @@ }, "methodIdentifiers": {} }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC20Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}" + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC20Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}" }, "IERC721Errors": { "abi": [ @@ -52900,7 +54727,7 @@ }, "methodIdentifiers": {} }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC721Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}" + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC721Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}" } }, "@openzeppelin/contracts/token/ERC1155/ERC1155.sol": { @@ -53350,7 +55177,7 @@ "uri(uint256)": "0e89341c" } }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the basic standard multi-token. See https://eips.ethereum.org/EIPS/eip-1155 Originally based on code by Enjin: https://github.com/enjin/erc-1155\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`.\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers.\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`.\"},\"URI(string,uint256)\":{\"details\":\"Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. If an {URI} event was emitted for `id`, the standard https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value returned by {IERC1155MetadataURI-uri}.\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"See {IERC1155-balanceOf}.\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"See {IERC1155-balanceOfBatch}. Requirements: - `accounts` and `ids` must have the same length.\"},\"constructor\":{\"details\":\"See {_setURI}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC1155-isApprovedForAll}.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155-safeBatchTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC1155-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"uri(uint256)\":{\"details\":\"See {IERC1155MetadataURI-uri}. This implementation returns the same URI for *all* token types. It relies on the token type ID substitution mechanism https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP]. Clients calling this function must replace the `\\\\{id\\\\}` substring with the actual token type ID.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\":\"ERC1155\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\":{\"keccak256\":\"0xd9b0b8ee1ac6dfee14eb1ad4383a4739dbaa0f2036594bb3a16f0408085dadde\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6309805132e519162d1134c67df22dd963323a9208b4f41344a4c13ed63c1026\",\"dweb:/ipfs/QmTBPHnf6qbtAD4NVnKVFmubUHRqMDPLkseR6apxTUpsQo\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182\",\"dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xb69597a63b202e28401128bed6a6d259e8730191274471af7303eafb247881a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://25addbda49a578b3318130585601344c5149a5549d749adf88e9685349a46b23\",\"dweb:/ipfs/Qme2DuD8gpsve1ZvaSMQpBwMdpU7yAtekDwr7gUp8dX4zX\"]},\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0xe92b5e199b963d108ad6e06feeede151ba23849e0d064956535489ff967ffe68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://280e17738a67b06dae02fec32982bd48a8ab71d8df95e9975ae03532634bc522\",\"dweb:/ipfs/QmecjsNcFgy2mMjuNfRDkLpAYMRWnh5o73fw1Bj2rCso2z\"]},\"@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x8806d620b6571932b662cfd48fbd518d4f70df1f88a23b5724cacde64a77bda1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8043304c8f9e1c1dc4a41935efa067daa77ad7abbae1fda41f015d53fbf327a5\",\"dweb:/ipfs/QmTrF2hSkRZoN9EEu8zdEhBpGNZ7RxzCdXf9ydzc2HQ3tM\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}" + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the basic standard multi-token. See https://eips.ethereum.org/EIPS/eip-1155 Originally based on code by Enjin: https://github.com/enjin/erc-1155\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`.\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers.\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`.\"},\"URI(string,uint256)\":{\"details\":\"Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. If an {URI} event was emitted for `id`, the standard https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value returned by {IERC1155MetadataURI-uri}.\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"See {IERC1155-balanceOf}.\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"See {IERC1155-balanceOfBatch}. Requirements: - `accounts` and `ids` must have the same length.\"},\"constructor\":{\"details\":\"See {_setURI}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC1155-isApprovedForAll}.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155-safeBatchTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC1155-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"uri(uint256)\":{\"details\":\"See {IERC1155MetadataURI-uri}. This implementation returns the same URI for *all* token types. It relies on the token type ID substitution mechanism https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP]. Clients calling this function must replace the `\\\\{id\\\\}` substring with the actual token type ID.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\":\"ERC1155\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\":{\"keccak256\":\"0xd9b0b8ee1ac6dfee14eb1ad4383a4739dbaa0f2036594bb3a16f0408085dadde\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6309805132e519162d1134c67df22dd963323a9208b4f41344a4c13ed63c1026\",\"dweb:/ipfs/QmTBPHnf6qbtAD4NVnKVFmubUHRqMDPLkseR6apxTUpsQo\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182\",\"dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xb69597a63b202e28401128bed6a6d259e8730191274471af7303eafb247881a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://25addbda49a578b3318130585601344c5149a5549d749adf88e9685349a46b23\",\"dweb:/ipfs/Qme2DuD8gpsve1ZvaSMQpBwMdpU7yAtekDwr7gUp8dX4zX\"]},\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0xe92b5e199b963d108ad6e06feeede151ba23849e0d064956535489ff967ffe68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://280e17738a67b06dae02fec32982bd48a8ab71d8df95e9975ae03532634bc522\",\"dweb:/ipfs/QmecjsNcFgy2mMjuNfRDkLpAYMRWnh5o73fw1Bj2rCso2z\"]},\"@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x8806d620b6571932b662cfd48fbd518d4f70df1f88a23b5724cacde64a77bda1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8043304c8f9e1c1dc4a41935efa067daa77ad7abbae1fda41f015d53fbf327a5\",\"dweb:/ipfs/QmTrF2hSkRZoN9EEu8zdEhBpGNZ7RxzCdXf9ydzc2HQ3tM\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}" } }, "@openzeppelin/contracts/token/ERC1155/IERC1155.sol": { @@ -53678,7 +55505,7 @@ "supportsInterface(bytes4)": "01ffc9a7" } }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC1155 compliant contract, as defined in the https://eips.ethereum.org/EIPS/eip-1155[EIP].\",\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`.\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers.\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`.\"},\"URI(string,uint256)\":{\"details\":\"Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. If an {URI} event was emitted for `id`, the standard https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value returned by {IERC1155MetadataURI-uri}.\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"Returns the value of tokens of token type `id` owned by `account`. Requirements: - `account` cannot be the zero address.\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}. Requirements: - `accounts` and `ids` must have the same length.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns true if `operator` is approved to transfer ``account``'s tokens. See {setApprovalForAll}.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}. WARNING: This function can potentially allow a reentrancy attack when transferring tokens to an untrusted contract, when invoking {onERC1155BatchReceived} on the receiver. Ensure to follow the checks-effects-interactions pattern and consider employing reentrancy guards when interacting with untrusted contracts. Emits either a {TransferSingle} or a {TransferBatch} event, depending on the length of the array arguments. Requirements: - `ids` and `values` must have the same length. - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the acceptance magic value.\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"Transfers a `value` amount of tokens of type `id` from `from` to `to`. WARNING: This function can potentially allow a reentrancy attack when transferring tokens to an untrusted contract, when invoking {onERC1155Received} on the receiver. Ensure to follow the checks-effects-interactions pattern and consider employing reentrancy guards when interacting with untrusted contracts. Emits a {TransferSingle} event. Requirements: - `to` cannot be the zero address. - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}. - `from` must have a balance of tokens of type `id` of at least `value` amount. - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the acceptance magic value.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`, Emits an {ApprovalForAll} event. Requirements: - `operator` cannot be the caller.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":\"IERC1155\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182\",\"dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC1155 compliant contract, as defined in the https://eips.ethereum.org/EIPS/eip-1155[EIP].\",\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`.\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers.\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`.\"},\"URI(string,uint256)\":{\"details\":\"Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. If an {URI} event was emitted for `id`, the standard https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value returned by {IERC1155MetadataURI-uri}.\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"Returns the value of tokens of token type `id` owned by `account`. Requirements: - `account` cannot be the zero address.\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}. Requirements: - `accounts` and `ids` must have the same length.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns true if `operator` is approved to transfer ``account``'s tokens. See {setApprovalForAll}.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}. WARNING: This function can potentially allow a reentrancy attack when transferring tokens to an untrusted contract, when invoking {onERC1155BatchReceived} on the receiver. Ensure to follow the checks-effects-interactions pattern and consider employing reentrancy guards when interacting with untrusted contracts. Emits either a {TransferSingle} or a {TransferBatch} event, depending on the length of the array arguments. Requirements: - `ids` and `values` must have the same length. - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the acceptance magic value.\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"Transfers a `value` amount of tokens of type `id` from `from` to `to`. WARNING: This function can potentially allow a reentrancy attack when transferring tokens to an untrusted contract, when invoking {onERC1155Received} on the receiver. Ensure to follow the checks-effects-interactions pattern and consider employing reentrancy guards when interacting with untrusted contracts. Emits a {TransferSingle} event. Requirements: - `to` cannot be the zero address. - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}. - `from` must have a balance of tokens of type `id` of at least `value` amount. - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the acceptance magic value.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`, Emits an {ApprovalForAll} event. Requirements: - `operator` cannot be the caller.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":\"IERC1155\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182\",\"dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" } }, "@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol": { @@ -53806,7 +55633,7 @@ "supportsInterface(bytes4)": "01ffc9a7" } }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"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\":\"Interface that must be implemented by smart contracts in order to receive ERC-1155 token transfers.\",\"kind\":\"dev\",\"methods\":{\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"Handles the receipt of a multiple ERC1155 token types. This function is called at the end of a `safeBatchTransferFrom` after the balances have been updated. NOTE: To accept the transfer(s), this must return `bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` (i.e. 0xbc197c81, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"ids\":\"An array containing ids of each token being transferred (order and length must match values array)\",\"operator\":\"The address which initiated the batch transfer (i.e. msg.sender)\",\"values\":\"An array containing amounts of each token being transferred (order and length must match ids array)\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` if transfer is allowed\"}},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"Handles the receipt of a single ERC1155 token type. This function is called at the end of a `safeTransferFrom` after the balance has been updated. NOTE: To accept the transfer, this must return `bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` (i.e. 0xf23a6e61, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"id\":\"The ID of the token being transferred\",\"operator\":\"The address which initiated the transfer (i.e. msg.sender)\",\"value\":\"The amount of tokens being transferred\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` if transfer is allowed\"}},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":\"IERC1155Receiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xb69597a63b202e28401128bed6a6d259e8730191274471af7303eafb247881a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://25addbda49a578b3318130585601344c5149a5549d749adf88e9685349a46b23\",\"dweb:/ipfs/Qme2DuD8gpsve1ZvaSMQpBwMdpU7yAtekDwr7gUp8dX4zX\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"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\":\"Interface that must be implemented by smart contracts in order to receive ERC-1155 token transfers.\",\"kind\":\"dev\",\"methods\":{\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"Handles the receipt of a multiple ERC1155 token types. This function is called at the end of a `safeBatchTransferFrom` after the balances have been updated. NOTE: To accept the transfer(s), this must return `bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` (i.e. 0xbc197c81, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"ids\":\"An array containing ids of each token being transferred (order and length must match values array)\",\"operator\":\"The address which initiated the batch transfer (i.e. msg.sender)\",\"values\":\"An array containing amounts of each token being transferred (order and length must match ids array)\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` if transfer is allowed\"}},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"Handles the receipt of a single ERC1155 token type. This function is called at the end of a `safeTransferFrom` after the balance has been updated. NOTE: To accept the transfer, this must return `bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` (i.e. 0xf23a6e61, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"id\":\"The ID of the token being transferred\",\"operator\":\"The address which initiated the transfer (i.e. msg.sender)\",\"value\":\"The amount of tokens being transferred\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` if transfer is allowed\"}},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":\"IERC1155Receiver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xb69597a63b202e28401128bed6a6d259e8730191274471af7303eafb247881a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://25addbda49a578b3318130585601344c5149a5549d749adf88e9685349a46b23\",\"dweb:/ipfs/Qme2DuD8gpsve1ZvaSMQpBwMdpU7yAtekDwr7gUp8dX4zX\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" } }, "@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol": { @@ -54154,7 +55981,7 @@ "uri(uint256)": "0e89341c" } }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the optional ERC1155MetadataExtension interface, as defined in the https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[EIP].\",\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`.\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers.\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`.\"},\"URI(string,uint256)\":{\"details\":\"Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. If an {URI} event was emitted for `id`, the standard https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value returned by {IERC1155MetadataURI-uri}.\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"Returns the value of tokens of token type `id` owned by `account`. Requirements: - `account` cannot be the zero address.\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}. Requirements: - `accounts` and `ids` must have the same length.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns true if `operator` is approved to transfer ``account``'s tokens. See {setApprovalForAll}.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}. WARNING: This function can potentially allow a reentrancy attack when transferring tokens to an untrusted contract, when invoking {onERC1155BatchReceived} on the receiver. Ensure to follow the checks-effects-interactions pattern and consider employing reentrancy guards when interacting with untrusted contracts. Emits either a {TransferSingle} or a {TransferBatch} event, depending on the length of the array arguments. Requirements: - `ids` and `values` must have the same length. - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the acceptance magic value.\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"Transfers a `value` amount of tokens of type `id` from `from` to `to`. WARNING: This function can potentially allow a reentrancy attack when transferring tokens to an untrusted contract, when invoking {onERC1155Received} on the receiver. Ensure to follow the checks-effects-interactions pattern and consider employing reentrancy guards when interacting with untrusted contracts. Emits a {TransferSingle} event. Requirements: - `to` cannot be the zero address. - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}. - `from` must have a balance of tokens of type `id` of at least `value` amount. - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the acceptance magic value.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`, Emits an {ApprovalForAll} event. Requirements: - `operator` cannot be the caller.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"uri(uint256)\":{\"details\":\"Returns the URI for token type `id`. If the `\\\\{id\\\\}` substring is present in the URI, it must be replaced by clients with the actual token type ID.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":\"IERC1155MetadataURI\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182\",\"dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC\"]},\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0xe92b5e199b963d108ad6e06feeede151ba23849e0d064956535489ff967ffe68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://280e17738a67b06dae02fec32982bd48a8ab71d8df95e9975ae03532634bc522\",\"dweb:/ipfs/QmecjsNcFgy2mMjuNfRDkLpAYMRWnh5o73fw1Bj2rCso2z\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the optional ERC1155MetadataExtension interface, as defined in the https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[EIP].\",\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`.\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers.\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`.\"},\"URI(string,uint256)\":{\"details\":\"Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. If an {URI} event was emitted for `id`, the standard https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value returned by {IERC1155MetadataURI-uri}.\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"Returns the value of tokens of token type `id` owned by `account`. Requirements: - `account` cannot be the zero address.\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {balanceOf}. Requirements: - `accounts` and `ids` must have the same length.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns true if `operator` is approved to transfer ``account``'s tokens. See {setApprovalForAll}.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"xref:ROOT:erc1155.adoc#batch-operations[Batched] version of {safeTransferFrom}. WARNING: This function can potentially allow a reentrancy attack when transferring tokens to an untrusted contract, when invoking {onERC1155BatchReceived} on the receiver. Ensure to follow the checks-effects-interactions pattern and consider employing reentrancy guards when interacting with untrusted contracts. Emits either a {TransferSingle} or a {TransferBatch} event, depending on the length of the array arguments. Requirements: - `ids` and `values` must have the same length. - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155BatchReceived} and return the acceptance magic value.\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"Transfers a `value` amount of tokens of type `id` from `from` to `to`. WARNING: This function can potentially allow a reentrancy attack when transferring tokens to an untrusted contract, when invoking {onERC1155Received} on the receiver. Ensure to follow the checks-effects-interactions pattern and consider employing reentrancy guards when interacting with untrusted contracts. Emits a {TransferSingle} event. Requirements: - `to` cannot be the zero address. - If the caller is not `from`, it must have been approved to spend ``from``'s tokens via {setApprovalForAll}. - `from` must have a balance of tokens of type `id` of at least `value` amount. - If `to` refers to a smart contract, it must implement {IERC1155Receiver-onERC1155Received} and return the acceptance magic value.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Grants or revokes permission to `operator` to transfer the caller's tokens, according to `approved`, Emits an {ApprovalForAll} event. Requirements: - `operator` cannot be the caller.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"uri(uint256)\":{\"details\":\"Returns the URI for token type `id`. If the `\\\\{id\\\\}` substring is present in the URI, it must be replaced by clients with the actual token type ID.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":\"IERC1155MetadataURI\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182\",\"dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC\"]},\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0xe92b5e199b963d108ad6e06feeede151ba23849e0d064956535489ff967ffe68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://280e17738a67b06dae02fec32982bd48a8ab71d8df95e9975ae03532634bc522\",\"dweb:/ipfs/QmecjsNcFgy2mMjuNfRDkLpAYMRWnh5o73fw1Bj2rCso2z\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" } }, "@openzeppelin/contracts/utils/Arrays.sol": { @@ -54165,8 +55992,8 @@ "functionDebugData": {}, "generatedSources": [], "linkReferences": {}, - "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220793c6ad83d827c73127614b422a36d96b65e8ad196c643c779862d80a47df69664736f6c63430008180033", - "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH26 0x3C6AD83D827C73127614B422A36D96B65E8AD196C643C779862D DUP1 LOG4 PUSH30 0xF69664736F6C634300081800330000000000000000000000000000000000 ", + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a5e38ab4ed780c0bbd45f12e9dc818f8aee559d3b37c5a74be955ff54d94926164736f6c634300081a0033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA5 0xE3 DUP11 0xB4 0xED PUSH25 0xC0BBD45F12E9DC818F8AEE559D3B37C5A74BE955FF54D9492 PUSH2 0x6473 PUSH16 0x6C634300081A00330000000000000000 ", "sourceMap": "276:4526:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { @@ -54174,13 +56001,13 @@ "generatedSources": [], "immutableReferences": {}, "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220793c6ad83d827c73127614b422a36d96b65e8ad196c643c779862d80a47df69664736f6c63430008180033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH26 0x3C6AD83D827C73127614B422A36D96B65E8AD196C643C779862D DUP1 LOG4 PUSH30 0xF69664736F6C634300081800330000000000000000000000000000000000 ", + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a5e38ab4ed780c0bbd45f12e9dc818f8aee559d3b37c5a74be955ff54d94926164736f6c634300081a0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xA5 0xE3 DUP11 0xB4 0xED PUSH25 0xC0BBD45F12E9DC818F8AEE559D3B37C5A74BE955FF54D9492 PUSH2 0x6473 PUSH16 0x6C634300081A00330000000000000000 ", "sourceMap": "276:4526:7:-:0;;;;;;;;" }, "methodIdentifiers": {} }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to array types.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Arrays.sol\":\"Arrays\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x8806d620b6571932b662cfd48fbd518d4f70df1f88a23b5724cacde64a77bda1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8043304c8f9e1c1dc4a41935efa067daa77ad7abbae1fda41f015d53fbf327a5\",\"dweb:/ipfs/QmTrF2hSkRZoN9EEu8zdEhBpGNZ7RxzCdXf9ydzc2HQ3tM\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}" + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to array types.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Arrays.sol\":\"Arrays\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x8806d620b6571932b662cfd48fbd518d4f70df1f88a23b5724cacde64a77bda1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8043304c8f9e1c1dc4a41935efa067daa77ad7abbae1fda41f015d53fbf327a5\",\"dweb:/ipfs/QmTrF2hSkRZoN9EEu8zdEhBpGNZ7RxzCdXf9ydzc2HQ3tM\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}" } }, "@openzeppelin/contracts/utils/Context.sol": { @@ -54206,7 +56033,7 @@ }, "methodIdentifiers": {} }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"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}" + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]}},\"version\":1}" } }, "@openzeppelin/contracts/utils/StorageSlot.sol": { @@ -54217,8 +56044,8 @@ "functionDebugData": {}, "generatedSources": [], "linkReferences": {}, - "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200d9d594500b0633db8c36b486b2e5bd19779e3026132b93582c791873a3dee9064736f6c63430008180033", - "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD SWAP14 MSIZE GASLIMIT STOP 0xB0 PUSH4 0x3DB8C36B BASEFEE PUSH12 0x2E5BD19779E3026132B93582 0xC7 SWAP2 DUP8 GASPRICE RETURNDATASIZE 0xEE SWAP1 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201a4bc2888a2d930728f71fd687a9873d474795c5e763ce16209723c5c15981d664736f6c634300081a0033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BYTE 0x4B 0xC2 DUP9 DUP11 0x2D SWAP4 SMOD 0x28 0xF7 0x1F 0xD6 DUP8 0xA9 DUP8 RETURNDATASIZE SELFBALANCE SELFBALANCE SWAP6 0xC5 0xE7 PUSH4 0xCE162097 0x23 0xC5 0xC1 MSIZE DUP2 0xD6 PUSH5 0x736F6C6343 STOP ADDMOD BYTE STOP CALLER ", "sourceMap": "1245:2685:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { @@ -54226,13 +56053,13 @@ "generatedSources": [], "immutableReferences": {}, "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200d9d594500b0633db8c36b486b2e5bd19779e3026132b93582c791873a3dee9064736f6c63430008180033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD SWAP14 MSIZE GASLIMIT STOP 0xB0 PUSH4 0x3DB8C36B BASEFEE PUSH12 0x2E5BD19779E3026132B93582 0xC7 SWAP2 DUP8 GASPRICE RETURNDATASIZE 0xEE SWAP1 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201a4bc2888a2d930728f71fd687a9873d474795c5e763ce16209723c5c15981d664736f6c634300081a0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 BYTE 0x4B 0xC2 DUP9 DUP11 0x2D SWAP4 SMOD 0x28 0xF7 0x1F 0xD6 DUP8 0xA9 DUP8 RETURNDATASIZE SELFBALANCE SELFBALANCE SWAP6 0xC5 0xE7 PUSH4 0xCE162097 0x23 0xC5 0xC1 MSIZE DUP2 0xD6 PUSH5 0x736F6C6343 STOP ADDMOD BYTE STOP CALLER ", "sourceMap": "1245:2685:9:-:0;;;;;;;;" }, "methodIdentifiers": {} }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for reading and writing primitive types to specific storage slots. Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. This library helps with reading and writing to such slots without the need for inline assembly. The functions in this library return Slot structs that contain a `value` member that can be used to read or write. Example usage to set ERC1967 implementation slot: ```solidity contract ERC1967 { bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; function _getImplementation() internal view returns (address) { return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value; } function _setImplementation(address newImplementation) internal { require(newImplementation.code.length > 0); StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation; } } ```\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/StorageSlot.sol\":\"StorageSlot\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]}},\"version\":1}" + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for reading and writing primitive types to specific storage slots. Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. This library helps with reading and writing to such slots without the need for inline assembly. The functions in this library return Slot structs that contain a `value` member that can be used to read or write. Example usage to set ERC1967 implementation slot: ```solidity contract ERC1967 { bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; function _getImplementation() internal view returns (address) { return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value; } function _setImplementation(address newImplementation) internal { require(newImplementation.code.length > 0); StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation; } } ```\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/StorageSlot.sol\":\"StorageSlot\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]}},\"version\":1}" } }, "@openzeppelin/contracts/utils/Strings.sol": { @@ -54260,8 +56087,8 @@ "functionDebugData": {}, "generatedSources": [], "linkReferences": {}, - "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122022ea8e82b761ff0f2c8fae5d36bcca20db5176a1081cc893147086b57be5cf8f64736f6c63430008180033", - "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x22 0xEA DUP15 DUP3 0xB7 PUSH2 0xFF0F 0x2C DUP16 0xAE TSTORE CALLDATASIZE 0xBC 0xCA KECCAK256 0xDB MLOAD PUSH23 0xA1081CC893147086B57BE5CF8F64736F6C634300081800 CALLER ", + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e0e72875b864f53a3c539f0dfde34d53065df50d962253ee601271522bd18aa964736f6c634300081a0033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE0 0xE7 0x28 PUSH22 0xB864F53A3C539F0DFDE34D53065DF50D962253EE6012 PUSH18 0x522BD18AA964736F6C634300081A00330000 ", "sourceMap": "251:2847:10:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { @@ -54269,13 +56096,13 @@ "generatedSources": [], "immutableReferences": {}, "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122022ea8e82b761ff0f2c8fae5d36bcca20db5176a1081cc893147086b57be5cf8f64736f6c63430008180033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x22 0xEA DUP15 DUP3 0xB7 PUSH2 0xFF0F 0x2C DUP16 0xAE TSTORE CALLDATASIZE 0xBC 0xCA KECCAK256 0xDB MLOAD PUSH23 0xA1081CC893147086B57BE5CF8F64736F6C634300081800 CALLER ", + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e0e72875b864f53a3c539f0dfde34d53065df50d962253ee601271522bd18aa964736f6c634300081a0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE0 0xE7 0x28 PUSH22 0xB864F53A3C539F0DFDE34D53065DF50D962253EE6012 PUSH18 0x522BD18AA964736F6C634300081A00330000 ", "sourceMap": "251:2847:10:-:0;;;;;;;;" }, "methodIdentifiers": {} }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"StringsInsufficientHexLength\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"String operations.\",\"errors\":{\"StringsInsufficientHexLength(uint256,uint256)\":[{\"details\":\"The `value` string doesn't fit in the specified `length`.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}" + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"StringsInsufficientHexLength\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"String operations.\",\"errors\":{\"StringsInsufficientHexLength(uint256,uint256)\":[{\"details\":\"The `value` string doesn't fit in the specified `length`.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}" } }, "@openzeppelin/contracts/utils/introspection/ERC165.sol": { @@ -54323,7 +56150,33 @@ "supportsInterface(bytes4)": "01ffc9a7" } }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ```\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ```\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" + } + }, + "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol": { + "ERC165Checker": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220abca560f01582e1c555c4f7ecd2b3772963db14131a5d165691a3b481984eab264736f6c634300081a0033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAB 0xCA JUMP 0xF ADD PC 0x2E SHR SSTORE TLOAD 0x4F PUSH31 0xCD2B3772963DB14131A5D165691A3B481984EAB264736F6C634300081A0033 ", + "sourceMap": "465:4566:12:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220abca560f01582e1c555c4f7ecd2b3772963db14131a5d165691a3b481984eab264736f6c634300081a0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAB 0xCA JUMP 0xF ADD PC 0x2E SHR SSTORE TLOAD 0x4F PUSH31 0xCD2B3772963DB14131A5D165691A3B481984EAB264736F6C634300081A0033 ", + "sourceMap": "465:4566:12:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library used to query support of an interface declared via {IERC165}. Note that these functions return the actual result of the query: they do not `revert` if an interface is not supported. It is up to the caller to decide what to do in these cases.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol\":\"ERC165Checker\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0xac3d50e321a48a40b4496970ce725900f13aeb2255b7c1203f5adbe98c4a911a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1d7b235b578347dce2d831a76f122e820a7db7e73fd2e47f13bafdcd61c5b066\",\"dweb:/ipfs/QmVAELwambfJa55HfiCoz1kFFh7iYwRYeW5x8si6AFM4iX\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" } }, "@openzeppelin/contracts/utils/introspection/IERC165.sol": { @@ -54371,7 +56224,7 @@ "supportsInterface(bytes4)": "01ffc9a7" } }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]}},\"version\":1}" } }, "@openzeppelin/contracts/utils/math/Math.sol": { @@ -54388,22 +56241,22 @@ "functionDebugData": {}, "generatedSources": [], "linkReferences": {}, - "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205f1847e716d326528b8b9324e0228d1e4971145e5ba1173b4269248a23a4838564736f6c63430008180033", - "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH0 XOR SELFBALANCE 0xE7 AND 0xD3 0x26 MSTORE DUP12 DUP12 SWAP4 0x24 0xE0 0x22 DUP14 0x1E BLOBHASH PUSH18 0x145E5BA1173B4269248A23A4838564736F6C PUSH4 0x43000818 STOP CALLER ", - "sourceMap": "203:14914:13:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122073bc26c1c0364e82c73ceb155aaf560608e8f19c0d7353e3374fd24b4f182a2864736f6c634300081a0033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH20 0xBC26C1C0364E82C73CEB155AAF560608E8F19C0D PUSH20 0x53E3374FD24B4F182A2864736F6C634300081A00 CALLER ", + "sourceMap": "203:14914:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { "functionDebugData": {}, "generatedSources": [], "immutableReferences": {}, "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205f1847e716d326528b8b9324e0228d1e4971145e5ba1173b4269248a23a4838564736f6c63430008180033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH0 XOR SELFBALANCE 0xE7 AND 0xD3 0x26 MSTORE DUP12 DUP12 SWAP4 0x24 0xE0 0x22 DUP14 0x1E BLOBHASH PUSH18 0x145E5BA1173B4269248A23A4838564736F6C PUSH4 0x43000818 STOP CALLER ", - "sourceMap": "203:14914:13:-:0;;;;;;;;" + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122073bc26c1c0364e82c73ceb155aaf560608e8f19c0d7353e3374fd24b4f182a2864736f6c634300081a0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH20 0xBC26C1C0364E82C73CEB155AAF560608E8F19C0D PUSH20 0x53E3374FD24B4F182A2864736F6C634300081A00 CALLER ", + "sourceMap": "203:14914:14:-:0;;;;;;;;" }, "methodIdentifiers": {} }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"errors\":{\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}" + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"errors\":{\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}" } }, "@openzeppelin/contracts/utils/math/SignedMath.sol": { @@ -54414,29 +56267,35 @@ "functionDebugData": {}, "generatedSources": [], "linkReferences": {}, - "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209275fb1eb703f1ada4f4ce7bacc8dfe6c85df9651d82c9adda1c7e92c94ddc8464736f6c63430008180033", - "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP3 PUSH22 0xFB1EB703F1ADA4F4CE7BACC8DFE6C85DF9651D82C9AD 0xDA SHR PUSH31 0x92C94DDC8464736F6C63430008180033000000000000000000000000000000 ", - "sourceMap": "216:1047:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" + "object": "60566050600b82828239805160001a6073146043577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b0a59f8e7b021f06d1fd412a1b4a85ed27707ba8e3837ea55bb2db3f3cc7a7e764736f6c634300081a0033", + "opcodes": "PUSH1 0x56 PUSH1 0x50 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x43 JUMPI PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x0 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB0 0xA5 SWAP16 DUP15 PUSH28 0x21F06D1FD412A1B4A85ED27707BA8E3837EA55BB2DB3F3CC7A7E764 PUSH20 0x6F6C634300081A00330000000000000000000000 ", + "sourceMap": "216:1047:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { "functionDebugData": {}, "generatedSources": [], "immutableReferences": {}, "linkReferences": {}, - "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209275fb1eb703f1ada4f4ce7bacc8dfe6c85df9651d82c9adda1c7e92c94ddc8464736f6c63430008180033", - "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP3 PUSH22 0xFB1EB703F1ADA4F4CE7BACC8DFE6C85DF9651D82C9AD 0xDA SHR PUSH31 0x92C94DDC8464736F6C63430008180033000000000000000000000000000000 ", - "sourceMap": "216:1047:14:-:0;;;;;;;;" + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b0a59f8e7b021f06d1fd412a1b4a85ed27707ba8e3837ea55bb2db3f3cc7a7e764736f6c634300081a0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB0 0xA5 SWAP16 DUP15 PUSH28 0x21F06D1FD412A1B4A85ED27707BA8E3837EA55BB2DB3F3CC7A7E764 PUSH20 0x6F6C634300081A00330000000000000000000000 ", + "sourceMap": "216:1047:15:-:0;;;;;;;;" }, "methodIdentifiers": {} }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard signed math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":\"SignedMath\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}" + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard signed math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":\"SignedMath\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}" } }, "contracts/Engagement.sol": { "Engagement": { "abi": [ { - "inputs": [], + "inputs": [ + { + "internalType": "string", + "name": "tokenURI_", + "type": "string" + } + ], "stateMutability": "nonpayable", "type": "constructor" }, @@ -54563,6 +56422,17 @@ "name": "ERC1155MissingApprovalForAll", "type": "error" }, + { + "inputs": [ + { + "internalType": "string", + "name": "message", + "type": "string" + } + ], + "name": "EmptyAccountNotAllowed", + "type": "error" + }, { "inputs": [ { @@ -54606,6 +56476,17 @@ "name": "NotFound", "type": "error" }, + { + "inputs": [ + { + "internalType": "string", + "name": "message", + "type": "string" + } + ], + "name": "URIEmpty", + "type": "error" + }, { "anonymous": false, "inputs": [ @@ -54631,6 +56512,25 @@ "name": "ApprovalForAll", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "oldURI", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "newURI", + "type": "string" + } + ], + "name": "BaseURIUpdated", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -54868,31 +56768,6 @@ "name": "URI", "type": "event" }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "date", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "string", - "name": "cid", - "type": "string" - } - ], - "name": "UpdateScores", - "type": "event" - }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", @@ -54906,19 +56781,6 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [], - "name": "PROVIDER_ROLE", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { @@ -55022,35 +56884,6 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "date", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "string", - "name": "account", - "type": "string" - } - ], - "name": "getScores", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { @@ -55118,13 +56951,7 @@ "type": "function" }, { - "inputs": [ - { - "internalType": "string", - "name": "hash_", - "type": "string" - } - ], + "inputs": [], "name": "issue", "outputs": [], "stateMutability": "nonpayable", @@ -55297,22 +57124,36 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "string", + "name": "newURI", + "type": "string" + } + ], + "name": "updateBaseURI", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { "internalType": "uint256", - "name": "date", + "name": "", "type": "uint256" - }, + } + ], + "name": "uri", + "outputs": [ { "internalType": "string", - "name": "cid", + "name": "", "type": "string" } ], - "name": "updateScores", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { @@ -55321,6 +57162,11 @@ "internalType": "uint256", "name": "tokenId", "type": "uint256" + }, + { + "internalType": "string", + "name": "account", + "type": "string" } ], "name": "uri", @@ -55338,10 +57184,10 @@ "evm": { "bytecode": { "functionDebugData": { - "@_3561": { + "@_3758": { "entryPoint": null, - "id": 3561, - "parameterSlots": 0, + "id": 3758, + "parameterSlots": 1, "returnSlots": 0 }, "@_576": { @@ -55351,151 +57197,259 @@ "returnSlots": 0 }, "@_grantRole_256": { - "entryPoint": 106, + "entryPoint": 229, "id": 256, "parameterSlots": 2, "returnSlots": 1 }, "@_msgSender_1942": { - "entryPoint": 473, + "entryPoint": 590, "id": 1942, "parameterSlots": 0, "returnSlots": 1 }, "@_setURI_1189": { - "entryPoint": 85, + "entryPoint": 139, "id": 1189, "parameterSlots": 1, "returnSlots": 0 }, "@hasRole_80": { - "entryPoint": 366, + "entryPoint": 483, "id": 80, "parameterSlots": 2, "returnSlots": 1 }, + "@requireNonEmptyURI_3792": { + "entryPoint": 158, + "id": 3792, + "parameterSlots": 1, + "returnSlots": 0 + }, + "abi_decode_available_length_t_string_memory_ptr_fromMemory": { + "entryPoint": 859, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_string_memory_ptr_fromMemory": { + "entryPoint": 925, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_string_memory_ptr_fromMemory": { + "entryPoint": 971, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack": { + "entryPoint": 1857, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 1892, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 741, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 598, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_string_memory_ptr": { + "entryPoint": 768, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, "array_dataslot_t_string_storage": { - "entryPoint": 639, + "entryPoint": 1151, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "array_length_t_string_memory_ptr": { - "entryPoint": 481, + "entryPoint": 1044, "id": null, "parameterSlots": 1, "returnSlots": 1 }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 1799, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, "clean_up_bytearray_end_slots_t_string_storage": { - "entryPoint": 960, + "entryPoint": 1448, "id": null, "parameterSlots": 3, "returnSlots": 0 }, "cleanup_t_uint256": { - "entryPoint": 775, + "entryPoint": 1283, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "clear_storage_range_t_bytes1": { - "entryPoint": 921, + "entryPoint": 1413, "id": null, "parameterSlots": 2, "returnSlots": 0 }, "convert_t_uint256_to_t_uint256": { - "entryPoint": 795, + "entryPoint": 1303, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { - "entryPoint": 1115, + "entryPoint": 1589, "id": null, "parameterSlots": 2, "returnSlots": 0 }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 817, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, "divide_by_32_ceil": { - "entryPoint": 660, + "entryPoint": 1172, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "extract_byte_array_length": { - "entryPoint": 586, + "entryPoint": 1102, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "extract_used_part_and_set_length_of_short_byte_array": { - "entryPoint": 1085, + "entryPoint": 1561, "id": null, "parameterSlots": 2, "returnSlots": 1 }, + "finalize_allocation": { + "entryPoint": 692, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, "identity": { - "entryPoint": 785, + "entryPoint": 1293, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "mask_bytes_dynamic": { - "entryPoint": 1053, + "entryPoint": 1531, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "panic_error_0x22": { - "entryPoint": 539, + "entryPoint": 1055, "id": null, "parameterSlots": 0, "returnSlots": 0 }, "panic_error_0x41": { - "entryPoint": 492, + "entryPoint": 645, "id": null, "parameterSlots": 0, "returnSlots": 0 }, "prepare_store_t_uint256": { - "entryPoint": 835, + "entryPoint": 1337, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 618, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 623, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 613, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 608, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 628, "id": null, "parameterSlots": 1, "returnSlots": 1 }, "shift_left_dynamic": { - "entryPoint": 676, + "entryPoint": 1188, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "shift_right_unsigned_dynamic": { - "entryPoint": 1040, + "entryPoint": 1518, "id": null, "parameterSlots": 2, "returnSlots": 1 }, "storage_set_to_zero_t_uint256": { - "entryPoint": 893, + "entryPoint": 1389, "id": null, "parameterSlots": 2, "returnSlots": 0 }, + "store_literal_in_memory_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231": { + "entryPoint": 1816, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, "update_byte_slice_dynamic32": { - "entryPoint": 689, + "entryPoint": 1201, "id": null, "parameterSlots": 3, "returnSlots": 1 }, "update_storage_value_t_uint256_to_t_uint256": { - "entryPoint": 845, + "entryPoint": 1347, "id": null, "parameterSlots": 3, "returnSlots": 0 }, "zero_value_for_split_t_uint256": { - "entryPoint": 888, + "entryPoint": 1384, "id": null, "parameterSlots": 0, "returnSlots": 1 @@ -55504,583 +57458,709 @@ "generatedSources": [ { "ast": { - "nativeSrc": "0:5231:18", + "nativeSrc": "0:9394:18", "nodeType": "YulBlock", - "src": "0:5231:18", + "src": "0:9394:18", "statements": [ { "body": { - "nativeSrc": "66:40:18", + "nativeSrc": "47:35:18", "nodeType": "YulBlock", - "src": "66:40:18", + "src": "47:35:18", "statements": [ { - "nativeSrc": "77:22:18", + "nativeSrc": "57:19:18", "nodeType": "YulAssignment", - "src": "77:22:18", + "src": "57:19:18", "value": { "arguments": [ { - "name": "value", - "nativeSrc": "93:5:18", - "nodeType": "YulIdentifier", - "src": "93:5:18" + "kind": "number", + "nativeSrc": "73:2:18", + "nodeType": "YulLiteral", + "src": "73:2:18", + "type": "", + "value": "64" } ], "functionName": { "name": "mload", - "nativeSrc": "87:5:18", + "nativeSrc": "67:5:18", "nodeType": "YulIdentifier", - "src": "87:5:18" + "src": "67:5:18" }, - "nativeSrc": "87:12:18", + "nativeSrc": "67:9:18", "nodeType": "YulFunctionCall", - "src": "87:12:18" + "src": "67:9:18" }, "variableNames": [ { - "name": "length", - "nativeSrc": "77:6:18", + "name": "memPtr", + "nativeSrc": "57:6:18", "nodeType": "YulIdentifier", - "src": "77:6:18" + "src": "57:6:18" } ] } ] }, - "name": "array_length_t_string_memory_ptr", - "nativeSrc": "7:99:18", + "name": "allocate_unbounded", + "nativeSrc": "7:75:18", "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "49:5:18", - "nodeType": "YulTypedName", - "src": "49:5:18", - "type": "" - } - ], "returnVariables": [ { - "name": "length", - "nativeSrc": "59:6:18", + "name": "memPtr", + "nativeSrc": "40:6:18", "nodeType": "YulTypedName", - "src": "59:6:18", + "src": "40:6:18", "type": "" } ], - "src": "7:99:18" + "src": "7:75:18" }, { "body": { - "nativeSrc": "140:152:18", + "nativeSrc": "177:28:18", "nodeType": "YulBlock", - "src": "140:152:18", + "src": "177:28:18", "statements": [ { "expression": { "arguments": [ { "kind": "number", - "nativeSrc": "157:1:18", + "nativeSrc": "194:1:18", "nodeType": "YulLiteral", - "src": "157:1:18", + "src": "194:1:18", "type": "", "value": "0" }, { "kind": "number", - "nativeSrc": "160:77:18", + "nativeSrc": "197:1:18", "nodeType": "YulLiteral", - "src": "160:77:18", + "src": "197:1:18", "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + "value": "0" } ], "functionName": { - "name": "mstore", - "nativeSrc": "150:6:18", + "name": "revert", + "nativeSrc": "187:6:18", "nodeType": "YulIdentifier", - "src": "150:6:18" + "src": "187:6:18" }, - "nativeSrc": "150:88:18", + "nativeSrc": "187:12:18", "nodeType": "YulFunctionCall", - "src": "150:88:18" + "src": "187:12:18" }, - "nativeSrc": "150:88:18", + "nativeSrc": "187:12:18", "nodeType": "YulExpressionStatement", - "src": "150:88:18" - }, + "src": "187:12:18" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:18", + "nodeType": "YulFunctionDefinition", + "src": "88:117:18" + }, + { + "body": { + "nativeSrc": "300:28:18", + "nodeType": "YulBlock", + "src": "300:28:18", + "statements": [ { "expression": { "arguments": [ { "kind": "number", - "nativeSrc": "254:1:18", + "nativeSrc": "317:1:18", "nodeType": "YulLiteral", - "src": "254:1:18", + "src": "317:1:18", "type": "", - "value": "4" + "value": "0" }, { "kind": "number", - "nativeSrc": "257:4:18", + "nativeSrc": "320:1:18", "nodeType": "YulLiteral", - "src": "257:4:18", + "src": "320:1:18", "type": "", - "value": "0x41" + "value": "0" } ], "functionName": { - "name": "mstore", - "nativeSrc": "247:6:18", + "name": "revert", + "nativeSrc": "310:6:18", "nodeType": "YulIdentifier", - "src": "247:6:18" + "src": "310:6:18" }, - "nativeSrc": "247:15:18", + "nativeSrc": "310:12:18", "nodeType": "YulFunctionCall", - "src": "247:15:18" + "src": "310:12:18" }, - "nativeSrc": "247:15:18", + "nativeSrc": "310:12:18", "nodeType": "YulExpressionStatement", - "src": "247:15:18" - }, + "src": "310:12:18" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:18", + "nodeType": "YulFunctionDefinition", + "src": "211:117:18" + }, + { + "body": { + "nativeSrc": "423:28:18", + "nodeType": "YulBlock", + "src": "423:28:18", + "statements": [ { "expression": { "arguments": [ { "kind": "number", - "nativeSrc": "278:1:18", + "nativeSrc": "440:1:18", "nodeType": "YulLiteral", - "src": "278:1:18", + "src": "440:1:18", "type": "", "value": "0" }, { "kind": "number", - "nativeSrc": "281:4:18", + "nativeSrc": "443:1:18", "nodeType": "YulLiteral", - "src": "281:4:18", + "src": "443:1:18", "type": "", - "value": "0x24" + "value": "0" } ], "functionName": { "name": "revert", - "nativeSrc": "271:6:18", + "nativeSrc": "433:6:18", "nodeType": "YulIdentifier", - "src": "271:6:18" + "src": "433:6:18" }, - "nativeSrc": "271:15:18", + "nativeSrc": "433:12:18", "nodeType": "YulFunctionCall", - "src": "271:15:18" + "src": "433:12:18" }, - "nativeSrc": "271:15:18", + "nativeSrc": "433:12:18", "nodeType": "YulExpressionStatement", - "src": "271:15:18" + "src": "433:12:18" } ] }, - "name": "panic_error_0x41", - "nativeSrc": "112:180:18", + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "334:117:18", + "nodeType": "YulFunctionDefinition", + "src": "334:117:18" + }, + { + "body": { + "nativeSrc": "546:28:18", + "nodeType": "YulBlock", + "src": "546:28:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "563:1:18", + "nodeType": "YulLiteral", + "src": "563:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "566:1:18", + "nodeType": "YulLiteral", + "src": "566:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "556:6:18", + "nodeType": "YulIdentifier", + "src": "556:6:18" + }, + "nativeSrc": "556:12:18", + "nodeType": "YulFunctionCall", + "src": "556:12:18" + }, + "nativeSrc": "556:12:18", + "nodeType": "YulExpressionStatement", + "src": "556:12:18" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "457:117:18", "nodeType": "YulFunctionDefinition", - "src": "112:180:18" + "src": "457:117:18" }, { "body": { - "nativeSrc": "326:152:18", + "nativeSrc": "628:54:18", "nodeType": "YulBlock", - "src": "326:152:18", + "src": "628:54:18", + "statements": [ + { + "nativeSrc": "638:38:18", + "nodeType": "YulAssignment", + "src": "638:38:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "656:5:18", + "nodeType": "YulIdentifier", + "src": "656:5:18" + }, + { + "kind": "number", + "nativeSrc": "663:2:18", + "nodeType": "YulLiteral", + "src": "663:2:18", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "652:3:18", + "nodeType": "YulIdentifier", + "src": "652:3:18" + }, + "nativeSrc": "652:14:18", + "nodeType": "YulFunctionCall", + "src": "652:14:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "672:2:18", + "nodeType": "YulLiteral", + "src": "672:2:18", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "668:3:18", + "nodeType": "YulIdentifier", + "src": "668:3:18" + }, + "nativeSrc": "668:7:18", + "nodeType": "YulFunctionCall", + "src": "668:7:18" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "648:3:18", + "nodeType": "YulIdentifier", + "src": "648:3:18" + }, + "nativeSrc": "648:28:18", + "nodeType": "YulFunctionCall", + "src": "648:28:18" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "638:6:18", + "nodeType": "YulIdentifier", + "src": "638:6:18" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nativeSrc": "580:102:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "611:5:18", + "nodeType": "YulTypedName", + "src": "611:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "621:6:18", + "nodeType": "YulTypedName", + "src": "621:6:18", + "type": "" + } + ], + "src": "580:102:18" + }, + { + "body": { + "nativeSrc": "716:152:18", + "nodeType": "YulBlock", + "src": "716:152:18", "statements": [ { "expression": { "arguments": [ { "kind": "number", - "nativeSrc": "343:1:18", + "nativeSrc": "733:1:18", "nodeType": "YulLiteral", - "src": "343:1:18", + "src": "733:1:18", "type": "", "value": "0" }, { "kind": "number", - "nativeSrc": "346:77:18", + "nativeSrc": "736:77:18", "nodeType": "YulLiteral", - "src": "346:77:18", + "src": "736:77:18", "type": "", "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { "name": "mstore", - "nativeSrc": "336:6:18", + "nativeSrc": "726:6:18", "nodeType": "YulIdentifier", - "src": "336:6:18" + "src": "726:6:18" }, - "nativeSrc": "336:88:18", + "nativeSrc": "726:88:18", "nodeType": "YulFunctionCall", - "src": "336:88:18" + "src": "726:88:18" }, - "nativeSrc": "336:88:18", + "nativeSrc": "726:88:18", "nodeType": "YulExpressionStatement", - "src": "336:88:18" + "src": "726:88:18" }, { "expression": { "arguments": [ { "kind": "number", - "nativeSrc": "440:1:18", + "nativeSrc": "830:1:18", "nodeType": "YulLiteral", - "src": "440:1:18", + "src": "830:1:18", "type": "", "value": "4" }, { "kind": "number", - "nativeSrc": "443:4:18", + "nativeSrc": "833:4:18", "nodeType": "YulLiteral", - "src": "443:4:18", + "src": "833:4:18", "type": "", - "value": "0x22" + "value": "0x41" } ], "functionName": { "name": "mstore", - "nativeSrc": "433:6:18", + "nativeSrc": "823:6:18", "nodeType": "YulIdentifier", - "src": "433:6:18" + "src": "823:6:18" }, - "nativeSrc": "433:15:18", + "nativeSrc": "823:15:18", "nodeType": "YulFunctionCall", - "src": "433:15:18" + "src": "823:15:18" }, - "nativeSrc": "433:15:18", + "nativeSrc": "823:15:18", "nodeType": "YulExpressionStatement", - "src": "433:15:18" + "src": "823:15:18" }, { "expression": { "arguments": [ { "kind": "number", - "nativeSrc": "464:1:18", + "nativeSrc": "854:1:18", "nodeType": "YulLiteral", - "src": "464:1:18", + "src": "854:1:18", "type": "", "value": "0" }, { "kind": "number", - "nativeSrc": "467:4:18", + "nativeSrc": "857:4:18", "nodeType": "YulLiteral", - "src": "467:4:18", + "src": "857:4:18", "type": "", "value": "0x24" } ], "functionName": { "name": "revert", - "nativeSrc": "457:6:18", + "nativeSrc": "847:6:18", "nodeType": "YulIdentifier", - "src": "457:6:18" + "src": "847:6:18" }, - "nativeSrc": "457:15:18", + "nativeSrc": "847:15:18", "nodeType": "YulFunctionCall", - "src": "457:15:18" + "src": "847:15:18" }, - "nativeSrc": "457:15:18", + "nativeSrc": "847:15:18", "nodeType": "YulExpressionStatement", - "src": "457:15:18" + "src": "847:15:18" } ] }, - "name": "panic_error_0x22", - "nativeSrc": "298:180:18", + "name": "panic_error_0x41", + "nativeSrc": "688:180:18", "nodeType": "YulFunctionDefinition", - "src": "298:180:18" + "src": "688:180:18" }, { "body": { - "nativeSrc": "535:269:18", + "nativeSrc": "917:238:18", "nodeType": "YulBlock", - "src": "535:269:18", + "src": "917:238:18", "statements": [ { - "nativeSrc": "545:22:18", - "nodeType": "YulAssignment", - "src": "545:22:18", - "value": { - "arguments": [ - { - "name": "data", - "nativeSrc": "559:4:18", - "nodeType": "YulIdentifier", - "src": "559:4:18" - }, - { - "kind": "number", - "nativeSrc": "565:1:18", - "nodeType": "YulLiteral", - "src": "565:1:18", - "type": "", - "value": "2" - } - ], - "functionName": { - "name": "div", - "nativeSrc": "555:3:18", - "nodeType": "YulIdentifier", - "src": "555:3:18" - }, - "nativeSrc": "555:12:18", - "nodeType": "YulFunctionCall", - "src": "555:12:18" - }, - "variableNames": [ - { - "name": "length", - "nativeSrc": "545:6:18", - "nodeType": "YulIdentifier", - "src": "545:6:18" - } - ] - }, - { - "nativeSrc": "576:38:18", + "nativeSrc": "927:58:18", "nodeType": "YulVariableDeclaration", - "src": "576:38:18", + "src": "927:58:18", "value": { "arguments": [ { - "name": "data", - "nativeSrc": "606:4:18", + "name": "memPtr", + "nativeSrc": "949:6:18", "nodeType": "YulIdentifier", - "src": "606:4:18" + "src": "949:6:18" }, { - "kind": "number", - "nativeSrc": "612:1:18", - "nodeType": "YulLiteral", - "src": "612:1:18", - "type": "", - "value": "1" + "arguments": [ + { + "name": "size", + "nativeSrc": "979:4:18", + "nodeType": "YulIdentifier", + "src": "979:4:18" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "957:21:18", + "nodeType": "YulIdentifier", + "src": "957:21:18" + }, + "nativeSrc": "957:27:18", + "nodeType": "YulFunctionCall", + "src": "957:27:18" } ], "functionName": { - "name": "and", - "nativeSrc": "602:3:18", + "name": "add", + "nativeSrc": "945:3:18", "nodeType": "YulIdentifier", - "src": "602:3:18" + "src": "945:3:18" }, - "nativeSrc": "602:12:18", + "nativeSrc": "945:40:18", "nodeType": "YulFunctionCall", - "src": "602:12:18" + "src": "945:40:18" }, "variables": [ { - "name": "outOfPlaceEncoding", - "nativeSrc": "580:18:18", + "name": "newFreePtr", + "nativeSrc": "931:10:18", "nodeType": "YulTypedName", - "src": "580:18:18", + "src": "931:10:18", "type": "" } ] }, { "body": { - "nativeSrc": "653:51:18", - "nodeType": "YulBlock", - "src": "653:51:18", - "statements": [ - { - "nativeSrc": "667:27:18", - "nodeType": "YulAssignment", - "src": "667:27:18", - "value": { - "arguments": [ - { - "name": "length", - "nativeSrc": "681:6:18", - "nodeType": "YulIdentifier", - "src": "681:6:18" - }, - { - "kind": "number", - "nativeSrc": "689:4:18", - "nodeType": "YulLiteral", - "src": "689:4:18", - "type": "", - "value": "0x7f" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "677:3:18", - "nodeType": "YulIdentifier", - "src": "677:3:18" - }, - "nativeSrc": "677:17:18", - "nodeType": "YulFunctionCall", - "src": "677:17:18" - }, - "variableNames": [ - { - "name": "length", - "nativeSrc": "667:6:18", - "nodeType": "YulIdentifier", - "src": "667:6:18" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "outOfPlaceEncoding", - "nativeSrc": "633:18:18", - "nodeType": "YulIdentifier", - "src": "633:18:18" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "626:6:18", - "nodeType": "YulIdentifier", - "src": "626:6:18" - }, - "nativeSrc": "626:26:18", - "nodeType": "YulFunctionCall", - "src": "626:26:18" - }, - "nativeSrc": "623:81:18", - "nodeType": "YulIf", - "src": "623:81:18" - }, - { - "body": { - "nativeSrc": "756:42:18", + "nativeSrc": "1096:22:18", "nodeType": "YulBlock", - "src": "756:42:18", + "src": "1096:22:18", "statements": [ { "expression": { "arguments": [], "functionName": { - "name": "panic_error_0x22", - "nativeSrc": "770:16:18", + "name": "panic_error_0x41", + "nativeSrc": "1098:16:18", "nodeType": "YulIdentifier", - "src": "770:16:18" + "src": "1098:16:18" }, - "nativeSrc": "770:18:18", + "nativeSrc": "1098:18:18", "nodeType": "YulFunctionCall", - "src": "770:18:18" + "src": "1098:18:18" }, - "nativeSrc": "770:18:18", + "nativeSrc": "1098:18:18", "nodeType": "YulExpressionStatement", - "src": "770:18:18" + "src": "1098:18:18" } ] }, "condition": { "arguments": [ - { - "name": "outOfPlaceEncoding", - "nativeSrc": "720:18:18", - "nodeType": "YulIdentifier", - "src": "720:18:18" - }, { "arguments": [ { - "name": "length", - "nativeSrc": "743:6:18", + "name": "newFreePtr", + "nativeSrc": "1039:10:18", "nodeType": "YulIdentifier", - "src": "743:6:18" + "src": "1039:10:18" }, { "kind": "number", - "nativeSrc": "751:2:18", + "nativeSrc": "1051:18:18", "nodeType": "YulLiteral", - "src": "751:2:18", + "src": "1051:18:18", "type": "", - "value": "32" + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1036:2:18", + "nodeType": "YulIdentifier", + "src": "1036:2:18" + }, + "nativeSrc": "1036:34:18", + "nodeType": "YulFunctionCall", + "src": "1036:34:18" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "1075:10:18", + "nodeType": "YulIdentifier", + "src": "1075:10:18" + }, + { + "name": "memPtr", + "nativeSrc": "1087:6:18", + "nodeType": "YulIdentifier", + "src": "1087:6:18" } ], "functionName": { "name": "lt", - "nativeSrc": "740:2:18", + "nativeSrc": "1072:2:18", "nodeType": "YulIdentifier", - "src": "740:2:18" + "src": "1072:2:18" }, - "nativeSrc": "740:14:18", + "nativeSrc": "1072:22:18", "nodeType": "YulFunctionCall", - "src": "740:14:18" + "src": "1072:22:18" } ], "functionName": { - "name": "eq", - "nativeSrc": "717:2:18", + "name": "or", + "nativeSrc": "1033:2:18", "nodeType": "YulIdentifier", - "src": "717:2:18" + "src": "1033:2:18" }, - "nativeSrc": "717:38:18", + "nativeSrc": "1033:62:18", "nodeType": "YulFunctionCall", - "src": "717:38:18" + "src": "1033:62:18" }, - "nativeSrc": "714:84:18", + "nativeSrc": "1030:88:18", "nodeType": "YulIf", - "src": "714:84:18" + "src": "1030:88:18" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1134:2:18", + "nodeType": "YulLiteral", + "src": "1134:2:18", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "1138:10:18", + "nodeType": "YulIdentifier", + "src": "1138:10:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1127:6:18", + "nodeType": "YulIdentifier", + "src": "1127:6:18" + }, + "nativeSrc": "1127:22:18", + "nodeType": "YulFunctionCall", + "src": "1127:22:18" + }, + "nativeSrc": "1127:22:18", + "nodeType": "YulExpressionStatement", + "src": "1127:22:18" } ] }, - "name": "extract_byte_array_length", - "nativeSrc": "484:320:18", + "name": "finalize_allocation", + "nativeSrc": "874:281:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "data", - "nativeSrc": "519:4:18", + "name": "memPtr", + "nativeSrc": "903:6:18", "nodeType": "YulTypedName", - "src": "519:4:18", + "src": "903:6:18", "type": "" - } - ], - "returnVariables": [ + }, { - "name": "length", - "nativeSrc": "528:6:18", + "name": "size", + "nativeSrc": "911:4:18", "nodeType": "YulTypedName", - "src": "528:6:18", + "src": "911:4:18", "type": "" } ], - "src": "484:320:18" + "src": "874:281:18" }, { "body": { - "nativeSrc": "864:87:18", + "nativeSrc": "1202:88:18", "nodeType": "YulBlock", - "src": "864:87:18", + "src": "1202:88:18", "statements": [ { - "nativeSrc": "874:11:18", + "nativeSrc": "1212:30:18", "nodeType": "YulAssignment", - "src": "874:11:18", + "src": "1212:30:18", "value": { - "name": "ptr", - "nativeSrc": "882:3:18", - "nodeType": "YulIdentifier", - "src": "882:3:18" + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nativeSrc": "1222:18:18", + "nodeType": "YulIdentifier", + "src": "1222:18:18" + }, + "nativeSrc": "1222:20:18", + "nodeType": "YulFunctionCall", + "src": "1222:20:18" }, "variableNames": [ { - "name": "data", - "nativeSrc": "874:4:18", + "name": "memPtr", + "nativeSrc": "1212:6:18", "nodeType": "YulIdentifier", - "src": "874:4:18" + "src": "1212:6:18" } ] }, @@ -56088,5085 +58168,2553 @@ "expression": { "arguments": [ { - "kind": "number", - "nativeSrc": "902:1:18", - "nodeType": "YulLiteral", - "src": "902:1:18", - "type": "", - "value": "0" + "name": "memPtr", + "nativeSrc": "1271:6:18", + "nodeType": "YulIdentifier", + "src": "1271:6:18" }, { - "name": "ptr", - "nativeSrc": "905:3:18", + "name": "size", + "nativeSrc": "1279:4:18", "nodeType": "YulIdentifier", - "src": "905:3:18" + "src": "1279:4:18" } ], "functionName": { - "name": "mstore", - "nativeSrc": "895:6:18", + "name": "finalize_allocation", + "nativeSrc": "1251:19:18", "nodeType": "YulIdentifier", - "src": "895:6:18" + "src": "1251:19:18" }, - "nativeSrc": "895:14:18", + "nativeSrc": "1251:33:18", "nodeType": "YulFunctionCall", - "src": "895:14:18" + "src": "1251:33:18" }, - "nativeSrc": "895:14:18", + "nativeSrc": "1251:33:18", "nodeType": "YulExpressionStatement", - "src": "895:14:18" - }, - { - "nativeSrc": "918:26:18", - "nodeType": "YulAssignment", - "src": "918:26:18", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "936:1:18", - "nodeType": "YulLiteral", - "src": "936:1:18", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "939:4:18", - "nodeType": "YulLiteral", - "src": "939:4:18", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "keccak256", - "nativeSrc": "926:9:18", - "nodeType": "YulIdentifier", - "src": "926:9:18" - }, - "nativeSrc": "926:18:18", - "nodeType": "YulFunctionCall", - "src": "926:18:18" - }, - "variableNames": [ - { - "name": "data", - "nativeSrc": "918:4:18", - "nodeType": "YulIdentifier", - "src": "918:4:18" - } - ] + "src": "1251:33:18" } ] }, - "name": "array_dataslot_t_string_storage", - "nativeSrc": "810:141:18", + "name": "allocate_memory", + "nativeSrc": "1161:129:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "ptr", - "nativeSrc": "851:3:18", + "name": "size", + "nativeSrc": "1186:4:18", "nodeType": "YulTypedName", - "src": "851:3:18", + "src": "1186:4:18", "type": "" } ], "returnVariables": [ { - "name": "data", - "nativeSrc": "859:4:18", + "name": "memPtr", + "nativeSrc": "1195:6:18", "nodeType": "YulTypedName", - "src": "859:4:18", + "src": "1195:6:18", "type": "" } ], - "src": "810:141:18" + "src": "1161:129:18" }, { "body": { - "nativeSrc": "1001:49:18", + "nativeSrc": "1363:241:18", "nodeType": "YulBlock", - "src": "1001:49:18", + "src": "1363:241:18", "statements": [ { - "nativeSrc": "1011:33:18", - "nodeType": "YulAssignment", - "src": "1011:33:18", - "value": { - "arguments": [ + "body": { + "nativeSrc": "1468:22:18", + "nodeType": "YulBlock", + "src": "1468:22:18", + "statements": [ { - "arguments": [ - { - "name": "value", - "nativeSrc": "1029:5:18", + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "1470:16:18", "nodeType": "YulIdentifier", - "src": "1029:5:18" + "src": "1470:16:18" }, - { - "kind": "number", - "nativeSrc": "1036:2:18", - "nodeType": "YulLiteral", - "src": "1036:2:18", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1025:3:18", - "nodeType": "YulIdentifier", - "src": "1025:3:18" + "nativeSrc": "1470:18:18", + "nodeType": "YulFunctionCall", + "src": "1470:18:18" }, - "nativeSrc": "1025:14:18", - "nodeType": "YulFunctionCall", - "src": "1025:14:18" + "nativeSrc": "1470:18:18", + "nodeType": "YulExpressionStatement", + "src": "1470:18:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "1440:6:18", + "nodeType": "YulIdentifier", + "src": "1440:6:18" }, { "kind": "number", - "nativeSrc": "1041:2:18", + "nativeSrc": "1448:18:18", "nodeType": "YulLiteral", - "src": "1041:2:18", + "src": "1448:18:18", "type": "", - "value": "32" + "value": "0xffffffffffffffff" } ], "functionName": { - "name": "div", - "nativeSrc": "1021:3:18", + "name": "gt", + "nativeSrc": "1437:2:18", + "nodeType": "YulIdentifier", + "src": "1437:2:18" + }, + "nativeSrc": "1437:30:18", + "nodeType": "YulFunctionCall", + "src": "1437:30:18" + }, + "nativeSrc": "1434:56:18", + "nodeType": "YulIf", + "src": "1434:56:18" + }, + { + "nativeSrc": "1500:37:18", + "nodeType": "YulAssignment", + "src": "1500:37:18", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "1530:6:18", + "nodeType": "YulIdentifier", + "src": "1530:6:18" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "1508:21:18", "nodeType": "YulIdentifier", - "src": "1021:3:18" + "src": "1508:21:18" }, - "nativeSrc": "1021:23:18", + "nativeSrc": "1508:29:18", "nodeType": "YulFunctionCall", - "src": "1021:23:18" + "src": "1508:29:18" }, "variableNames": [ { - "name": "result", - "nativeSrc": "1011:6:18", + "name": "size", + "nativeSrc": "1500:4:18", "nodeType": "YulIdentifier", - "src": "1011:6:18" + "src": "1500:4:18" } ] - } - ] - }, - "name": "divide_by_32_ceil", - "nativeSrc": "957:93:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "984:5:18", - "nodeType": "YulTypedName", - "src": "984:5:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "result", - "nativeSrc": "994:6:18", - "nodeType": "YulTypedName", - "src": "994:6:18", - "type": "" - } - ], - "src": "957:93:18" - }, - { - "body": { - "nativeSrc": "1109:54:18", - "nodeType": "YulBlock", - "src": "1109:54:18", - "statements": [ + }, { - "nativeSrc": "1119:37:18", + "nativeSrc": "1574:23:18", "nodeType": "YulAssignment", - "src": "1119:37:18", + "src": "1574:23:18", "value": { "arguments": [ { - "name": "bits", - "nativeSrc": "1144:4:18", + "name": "size", + "nativeSrc": "1586:4:18", "nodeType": "YulIdentifier", - "src": "1144:4:18" + "src": "1586:4:18" }, { - "name": "value", - "nativeSrc": "1150:5:18", - "nodeType": "YulIdentifier", - "src": "1150:5:18" + "kind": "number", + "nativeSrc": "1592:4:18", + "nodeType": "YulLiteral", + "src": "1592:4:18", + "type": "", + "value": "0x20" } ], "functionName": { - "name": "shl", - "nativeSrc": "1140:3:18", + "name": "add", + "nativeSrc": "1582:3:18", "nodeType": "YulIdentifier", - "src": "1140:3:18" + "src": "1582:3:18" }, - "nativeSrc": "1140:16:18", + "nativeSrc": "1582:15:18", "nodeType": "YulFunctionCall", - "src": "1140:16:18" + "src": "1582:15:18" }, "variableNames": [ { - "name": "newValue", - "nativeSrc": "1119:8:18", + "name": "size", + "nativeSrc": "1574:4:18", "nodeType": "YulIdentifier", - "src": "1119:8:18" + "src": "1574:4:18" } ] } ] }, - "name": "shift_left_dynamic", - "nativeSrc": "1056:107:18", + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "1296:308:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "bits", - "nativeSrc": "1084:4:18", - "nodeType": "YulTypedName", - "src": "1084:4:18", - "type": "" - }, - { - "name": "value", - "nativeSrc": "1090:5:18", + "name": "length", + "nativeSrc": "1347:6:18", "nodeType": "YulTypedName", - "src": "1090:5:18", + "src": "1347:6:18", "type": "" } ], "returnVariables": [ { - "name": "newValue", - "nativeSrc": "1100:8:18", + "name": "size", + "nativeSrc": "1358:4:18", "nodeType": "YulTypedName", - "src": "1100:8:18", + "src": "1358:4:18", "type": "" } ], - "src": "1056:107:18" + "src": "1296:308:18" }, { "body": { - "nativeSrc": "1245:317:18", + "nativeSrc": "1672:186:18", "nodeType": "YulBlock", - "src": "1245:317:18", + "src": "1672:186:18", "statements": [ { - "nativeSrc": "1255:35:18", + "nativeSrc": "1683:10:18", "nodeType": "YulVariableDeclaration", - "src": "1255:35:18", + "src": "1683:10:18", "value": { - "arguments": [ - { - "name": "shiftBytes", - "nativeSrc": "1276:10:18", - "nodeType": "YulIdentifier", - "src": "1276:10:18" - }, - { - "kind": "number", - "nativeSrc": "1288:1:18", - "nodeType": "YulLiteral", - "src": "1288:1:18", - "type": "", - "value": "8" - } - ], - "functionName": { - "name": "mul", - "nativeSrc": "1272:3:18", - "nodeType": "YulIdentifier", - "src": "1272:3:18" - }, - "nativeSrc": "1272:18:18", - "nodeType": "YulFunctionCall", - "src": "1272:18:18" + "kind": "number", + "nativeSrc": "1692:1:18", + "nodeType": "YulLiteral", + "src": "1692:1:18", + "type": "", + "value": "0" }, "variables": [ { - "name": "shiftBits", - "nativeSrc": "1259:9:18", + "name": "i", + "nativeSrc": "1687:1:18", "nodeType": "YulTypedName", - "src": "1259:9:18", + "src": "1687:1:18", "type": "" } ] }, { - "nativeSrc": "1299:109:18", - "nodeType": "YulVariableDeclaration", - "src": "1299:109:18", - "value": { - "arguments": [ - { - "name": "shiftBits", - "nativeSrc": "1330:9:18", - "nodeType": "YulIdentifier", - "src": "1330:9:18" - }, + "body": { + "nativeSrc": "1752:63:18", + "nodeType": "YulBlock", + "src": "1752:63:18", + "statements": [ { - "kind": "number", - "nativeSrc": "1341:66:18", - "nodeType": "YulLiteral", - "src": "1341:66:18", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "1777:3:18", + "nodeType": "YulIdentifier", + "src": "1777:3:18" + }, + { + "name": "i", + "nativeSrc": "1782:1:18", + "nodeType": "YulIdentifier", + "src": "1782:1:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1773:3:18", + "nodeType": "YulIdentifier", + "src": "1773:3:18" + }, + "nativeSrc": "1773:11:18", + "nodeType": "YulFunctionCall", + "src": "1773:11:18" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "1796:3:18", + "nodeType": "YulIdentifier", + "src": "1796:3:18" + }, + { + "name": "i", + "nativeSrc": "1801:1:18", + "nodeType": "YulIdentifier", + "src": "1801:1:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1792:3:18", + "nodeType": "YulIdentifier", + "src": "1792:3:18" + }, + "nativeSrc": "1792:11:18", + "nodeType": "YulFunctionCall", + "src": "1792:11:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1786:5:18", + "nodeType": "YulIdentifier", + "src": "1786:5:18" + }, + "nativeSrc": "1786:18:18", + "nodeType": "YulFunctionCall", + "src": "1786:18:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1766:6:18", + "nodeType": "YulIdentifier", + "src": "1766:6:18" + }, + "nativeSrc": "1766:39:18", + "nodeType": "YulFunctionCall", + "src": "1766:39:18" + }, + "nativeSrc": "1766:39:18", + "nodeType": "YulExpressionStatement", + "src": "1766:39:18" } - ], - "functionName": { - "name": "shift_left_dynamic", - "nativeSrc": "1311:18:18", - "nodeType": "YulIdentifier", - "src": "1311:18:18" - }, - "nativeSrc": "1311:97:18", - "nodeType": "YulFunctionCall", - "src": "1311:97:18" + ] }, - "variables": [ - { - "name": "mask", - "nativeSrc": "1303:4:18", - "nodeType": "YulTypedName", - "src": "1303:4:18", - "type": "" - } - ] - }, - { - "nativeSrc": "1417:51:18", - "nodeType": "YulAssignment", - "src": "1417:51:18", - "value": { + "condition": { "arguments": [ { - "name": "shiftBits", - "nativeSrc": "1448:9:18", + "name": "i", + "nativeSrc": "1713:1:18", "nodeType": "YulIdentifier", - "src": "1448:9:18" + "src": "1713:1:18" }, { - "name": "toInsert", - "nativeSrc": "1459:8:18", + "name": "length", + "nativeSrc": "1716:6:18", "nodeType": "YulIdentifier", - "src": "1459:8:18" + "src": "1716:6:18" } ], "functionName": { - "name": "shift_left_dynamic", - "nativeSrc": "1429:18:18", + "name": "lt", + "nativeSrc": "1710:2:18", "nodeType": "YulIdentifier", - "src": "1429:18:18" + "src": "1710:2:18" }, - "nativeSrc": "1429:39:18", + "nativeSrc": "1710:13:18", "nodeType": "YulFunctionCall", - "src": "1429:39:18" + "src": "1710:13:18" }, - "variableNames": [ - { - "name": "toInsert", - "nativeSrc": "1417:8:18", - "nodeType": "YulIdentifier", - "src": "1417:8:18" - } - ] + "nativeSrc": "1702:113:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "1724:19:18", + "nodeType": "YulBlock", + "src": "1724:19:18", + "statements": [ + { + "nativeSrc": "1726:15:18", + "nodeType": "YulAssignment", + "src": "1726:15:18", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "1735:1:18", + "nodeType": "YulIdentifier", + "src": "1735:1:18" + }, + { + "kind": "number", + "nativeSrc": "1738:2:18", + "nodeType": "YulLiteral", + "src": "1738:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1731:3:18", + "nodeType": "YulIdentifier", + "src": "1731:3:18" + }, + "nativeSrc": "1731:10:18", + "nodeType": "YulFunctionCall", + "src": "1731:10:18" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "1726:1:18", + "nodeType": "YulIdentifier", + "src": "1726:1:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "1706:3:18", + "nodeType": "YulBlock", + "src": "1706:3:18", + "statements": [] + }, + "src": "1702:113:18" }, { - "nativeSrc": "1477:30:18", - "nodeType": "YulAssignment", - "src": "1477:30:18", - "value": { + "expression": { "arguments": [ - { - "name": "value", - "nativeSrc": "1490:5:18", - "nodeType": "YulIdentifier", - "src": "1490:5:18" - }, { "arguments": [ { - "name": "mask", - "nativeSrc": "1501:4:18", + "name": "dst", + "nativeSrc": "1835:3:18", + "nodeType": "YulIdentifier", + "src": "1835:3:18" + }, + { + "name": "length", + "nativeSrc": "1840:6:18", "nodeType": "YulIdentifier", - "src": "1501:4:18" + "src": "1840:6:18" } ], "functionName": { - "name": "not", - "nativeSrc": "1497:3:18", + "name": "add", + "nativeSrc": "1831:3:18", "nodeType": "YulIdentifier", - "src": "1497:3:18" + "src": "1831:3:18" }, - "nativeSrc": "1497:9:18", + "nativeSrc": "1831:16:18", "nodeType": "YulFunctionCall", - "src": "1497:9:18" + "src": "1831:16:18" + }, + { + "kind": "number", + "nativeSrc": "1849:1:18", + "nodeType": "YulLiteral", + "src": "1849:1:18", + "type": "", + "value": "0" } ], "functionName": { - "name": "and", - "nativeSrc": "1486:3:18", + "name": "mstore", + "nativeSrc": "1824:6:18", "nodeType": "YulIdentifier", - "src": "1486:3:18" + "src": "1824:6:18" }, - "nativeSrc": "1486:21:18", + "nativeSrc": "1824:27:18", "nodeType": "YulFunctionCall", - "src": "1486:21:18" + "src": "1824:27:18" }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "1477:5:18", - "nodeType": "YulIdentifier", - "src": "1477:5:18" - } - ] - }, - { - "nativeSrc": "1516:40:18", - "nodeType": "YulAssignment", - "src": "1516:40:18", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1529:5:18", - "nodeType": "YulIdentifier", - "src": "1529:5:18" - }, - { - "arguments": [ - { - "name": "toInsert", - "nativeSrc": "1540:8:18", - "nodeType": "YulIdentifier", - "src": "1540:8:18" - }, - { - "name": "mask", - "nativeSrc": "1550:4:18", - "nodeType": "YulIdentifier", - "src": "1550:4:18" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "1536:3:18", - "nodeType": "YulIdentifier", - "src": "1536:3:18" - }, - "nativeSrc": "1536:19:18", - "nodeType": "YulFunctionCall", - "src": "1536:19:18" - } - ], - "functionName": { - "name": "or", - "nativeSrc": "1526:2:18", - "nodeType": "YulIdentifier", - "src": "1526:2:18" - }, - "nativeSrc": "1526:30:18", - "nodeType": "YulFunctionCall", - "src": "1526:30:18" - }, - "variableNames": [ - { - "name": "result", - "nativeSrc": "1516:6:18", - "nodeType": "YulIdentifier", - "src": "1516:6:18" - } - ] + "nativeSrc": "1824:27:18", + "nodeType": "YulExpressionStatement", + "src": "1824:27:18" } ] }, - "name": "update_byte_slice_dynamic32", - "nativeSrc": "1169:393:18", + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "1610:248:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", - "nativeSrc": "1206:5:18", + "name": "src", + "nativeSrc": "1654:3:18", "nodeType": "YulTypedName", - "src": "1206:5:18", + "src": "1654:3:18", "type": "" }, { - "name": "shiftBytes", - "nativeSrc": "1213:10:18", + "name": "dst", + "nativeSrc": "1659:3:18", "nodeType": "YulTypedName", - "src": "1213:10:18", + "src": "1659:3:18", "type": "" }, { - "name": "toInsert", - "nativeSrc": "1225:8:18", - "nodeType": "YulTypedName", - "src": "1225:8:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "result", - "nativeSrc": "1238:6:18", - "nodeType": "YulTypedName", - "src": "1238:6:18", - "type": "" - } - ], - "src": "1169:393:18" - }, - { - "body": { - "nativeSrc": "1613:32:18", - "nodeType": "YulBlock", - "src": "1613:32:18", - "statements": [ - { - "nativeSrc": "1623:16:18", - "nodeType": "YulAssignment", - "src": "1623:16:18", - "value": { - "name": "value", - "nativeSrc": "1634:5:18", - "nodeType": "YulIdentifier", - "src": "1634:5:18" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "1623:7:18", - "nodeType": "YulIdentifier", - "src": "1623:7:18" - } - ] - } - ] - }, - "name": "cleanup_t_uint256", - "nativeSrc": "1568:77:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1595:5:18", - "nodeType": "YulTypedName", - "src": "1595:5:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "1605:7:18", - "nodeType": "YulTypedName", - "src": "1605:7:18", - "type": "" - } - ], - "src": "1568:77:18" - }, - { - "body": { - "nativeSrc": "1683:28:18", - "nodeType": "YulBlock", - "src": "1683:28:18", - "statements": [ - { - "nativeSrc": "1693:12:18", - "nodeType": "YulAssignment", - "src": "1693:12:18", - "value": { - "name": "value", - "nativeSrc": "1700:5:18", - "nodeType": "YulIdentifier", - "src": "1700:5:18" - }, - "variableNames": [ - { - "name": "ret", - "nativeSrc": "1693:3:18", - "nodeType": "YulIdentifier", - "src": "1693:3:18" - } - ] - } - ] - }, - "name": "identity", - "nativeSrc": "1651:60:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1669:5:18", - "nodeType": "YulTypedName", - "src": "1669:5:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "ret", - "nativeSrc": "1679:3:18", + "name": "length", + "nativeSrc": "1664:6:18", "nodeType": "YulTypedName", - "src": "1679:3:18", + "src": "1664:6:18", "type": "" } ], - "src": "1651:60:18" + "src": "1610:248:18" }, { "body": { - "nativeSrc": "1777:82:18", + "nativeSrc": "1959:339:18", "nodeType": "YulBlock", - "src": "1777:82:18", + "src": "1959:339:18", "statements": [ { - "nativeSrc": "1787:66:18", + "nativeSrc": "1969:75:18", "nodeType": "YulAssignment", - "src": "1787:66:18", + "src": "1969:75:18", "value": { "arguments": [ { "arguments": [ { - "arguments": [ - { - "name": "value", - "nativeSrc": "1845:5:18", - "nodeType": "YulIdentifier", - "src": "1845:5:18" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "1827:17:18", - "nodeType": "YulIdentifier", - "src": "1827:17:18" - }, - "nativeSrc": "1827:24:18", - "nodeType": "YulFunctionCall", - "src": "1827:24:18" + "name": "length", + "nativeSrc": "2036:6:18", + "nodeType": "YulIdentifier", + "src": "2036:6:18" } ], "functionName": { - "name": "identity", - "nativeSrc": "1818:8:18", + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "1994:41:18", "nodeType": "YulIdentifier", - "src": "1818:8:18" + "src": "1994:41:18" }, - "nativeSrc": "1818:34:18", + "nativeSrc": "1994:49:18", "nodeType": "YulFunctionCall", - "src": "1818:34:18" + "src": "1994:49:18" } ], "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "1800:17:18", + "name": "allocate_memory", + "nativeSrc": "1978:15:18", "nodeType": "YulIdentifier", - "src": "1800:17:18" + "src": "1978:15:18" }, - "nativeSrc": "1800:53:18", + "nativeSrc": "1978:66:18", "nodeType": "YulFunctionCall", - "src": "1800:53:18" + "src": "1978:66:18" }, "variableNames": [ { - "name": "converted", - "nativeSrc": "1787:9:18", + "name": "array", + "nativeSrc": "1969:5:18", "nodeType": "YulIdentifier", - "src": "1787:9:18" + "src": "1969:5:18" } ] - } - ] - }, - "name": "convert_t_uint256_to_t_uint256", - "nativeSrc": "1717:142:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1757:5:18", - "nodeType": "YulTypedName", - "src": "1757:5:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "1767:9:18", - "nodeType": "YulTypedName", - "src": "1767:9:18", - "type": "" - } - ], - "src": "1717:142:18" - }, - { - "body": { - "nativeSrc": "1912:28:18", - "nodeType": "YulBlock", - "src": "1912:28:18", - "statements": [ + }, { - "nativeSrc": "1922:12:18", - "nodeType": "YulAssignment", - "src": "1922:12:18", - "value": { - "name": "value", - "nativeSrc": "1929:5:18", - "nodeType": "YulIdentifier", - "src": "1929:5:18" - }, - "variableNames": [ - { - "name": "ret", - "nativeSrc": "1922:3:18", + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "2060:5:18", + "nodeType": "YulIdentifier", + "src": "2060:5:18" + }, + { + "name": "length", + "nativeSrc": "2067:6:18", + "nodeType": "YulIdentifier", + "src": "2067:6:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2053:6:18", "nodeType": "YulIdentifier", - "src": "1922:3:18" - } - ] - } - ] - }, - "name": "prepare_store_t_uint256", - "nativeSrc": "1865:75:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "1898:5:18", - "nodeType": "YulTypedName", - "src": "1898:5:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "ret", - "nativeSrc": "1908:3:18", - "nodeType": "YulTypedName", - "src": "1908:3:18", - "type": "" - } - ], - "src": "1865:75:18" - }, - { - "body": { - "nativeSrc": "2022:193:18", - "nodeType": "YulBlock", - "src": "2022:193:18", - "statements": [ + "src": "2053:6:18" + }, + "nativeSrc": "2053:21:18", + "nodeType": "YulFunctionCall", + "src": "2053:21:18" + }, + "nativeSrc": "2053:21:18", + "nodeType": "YulExpressionStatement", + "src": "2053:21:18" + }, { - "nativeSrc": "2032:63:18", + "nativeSrc": "2083:27:18", "nodeType": "YulVariableDeclaration", - "src": "2032:63:18", + "src": "2083:27:18", "value": { "arguments": [ { - "name": "value_0", - "nativeSrc": "2087:7:18", + "name": "array", + "nativeSrc": "2098:5:18", "nodeType": "YulIdentifier", - "src": "2087:7:18" + "src": "2098:5:18" + }, + { + "kind": "number", + "nativeSrc": "2105:4:18", + "nodeType": "YulLiteral", + "src": "2105:4:18", + "type": "", + "value": "0x20" } ], "functionName": { - "name": "convert_t_uint256_to_t_uint256", - "nativeSrc": "2056:30:18", + "name": "add", + "nativeSrc": "2094:3:18", "nodeType": "YulIdentifier", - "src": "2056:30:18" + "src": "2094:3:18" }, - "nativeSrc": "2056:39:18", + "nativeSrc": "2094:16:18", "nodeType": "YulFunctionCall", - "src": "2056:39:18" + "src": "2094:16:18" }, "variables": [ { - "name": "convertedValue_0", - "nativeSrc": "2036:16:18", + "name": "dst", + "nativeSrc": "2087:3:18", "nodeType": "YulTypedName", - "src": "2036:16:18", + "src": "2087:3:18", "type": "" } ] }, { - "expression": { - "arguments": [ + "body": { + "nativeSrc": "2148:83:18", + "nodeType": "YulBlock", + "src": "2148:83:18", + "statements": [ { - "name": "slot", - "nativeSrc": "2111:4:18", - "nodeType": "YulIdentifier", - "src": "2111:4:18" - }, + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "2150:77:18", + "nodeType": "YulIdentifier", + "src": "2150:77:18" + }, + "nativeSrc": "2150:79:18", + "nodeType": "YulFunctionCall", + "src": "2150:79:18" + }, + "nativeSrc": "2150:79:18", + "nodeType": "YulExpressionStatement", + "src": "2150:79:18" + } + ] + }, + "condition": { + "arguments": [ { "arguments": [ { - "arguments": [ - { - "name": "slot", - "nativeSrc": "2151:4:18", - "nodeType": "YulIdentifier", - "src": "2151:4:18" - } - ], - "functionName": { - "name": "sload", - "nativeSrc": "2145:5:18", - "nodeType": "YulIdentifier", - "src": "2145:5:18" - }, - "nativeSrc": "2145:11:18", - "nodeType": "YulFunctionCall", - "src": "2145:11:18" - }, - { - "name": "offset", - "nativeSrc": "2158:6:18", + "name": "src", + "nativeSrc": "2129:3:18", "nodeType": "YulIdentifier", - "src": "2158:6:18" + "src": "2129:3:18" }, { - "arguments": [ - { - "name": "convertedValue_0", - "nativeSrc": "2190:16:18", - "nodeType": "YulIdentifier", - "src": "2190:16:18" - } - ], - "functionName": { - "name": "prepare_store_t_uint256", - "nativeSrc": "2166:23:18", - "nodeType": "YulIdentifier", - "src": "2166:23:18" - }, - "nativeSrc": "2166:41:18", - "nodeType": "YulFunctionCall", - "src": "2166:41:18" + "name": "length", + "nativeSrc": "2134:6:18", + "nodeType": "YulIdentifier", + "src": "2134:6:18" } ], "functionName": { - "name": "update_byte_slice_dynamic32", - "nativeSrc": "2117:27:18", + "name": "add", + "nativeSrc": "2125:3:18", "nodeType": "YulIdentifier", - "src": "2117:27:18" + "src": "2125:3:18" }, - "nativeSrc": "2117:91:18", + "nativeSrc": "2125:16:18", "nodeType": "YulFunctionCall", - "src": "2117:91:18" + "src": "2125:16:18" + }, + { + "name": "end", + "nativeSrc": "2143:3:18", + "nodeType": "YulIdentifier", + "src": "2143:3:18" } ], "functionName": { - "name": "sstore", - "nativeSrc": "2104:6:18", + "name": "gt", + "nativeSrc": "2122:2:18", + "nodeType": "YulIdentifier", + "src": "2122:2:18" + }, + "nativeSrc": "2122:25:18", + "nodeType": "YulFunctionCall", + "src": "2122:25:18" + }, + "nativeSrc": "2119:112:18", + "nodeType": "YulIf", + "src": "2119:112:18" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nativeSrc": "2275:3:18", + "nodeType": "YulIdentifier", + "src": "2275:3:18" + }, + { + "name": "dst", + "nativeSrc": "2280:3:18", + "nodeType": "YulIdentifier", + "src": "2280:3:18" + }, + { + "name": "length", + "nativeSrc": "2285:6:18", + "nodeType": "YulIdentifier", + "src": "2285:6:18" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "2240:34:18", "nodeType": "YulIdentifier", - "src": "2104:6:18" + "src": "2240:34:18" }, - "nativeSrc": "2104:105:18", + "nativeSrc": "2240:52:18", "nodeType": "YulFunctionCall", - "src": "2104:105:18" + "src": "2240:52:18" }, - "nativeSrc": "2104:105:18", + "nativeSrc": "2240:52:18", "nodeType": "YulExpressionStatement", - "src": "2104:105:18" + "src": "2240:52:18" } ] }, - "name": "update_storage_value_t_uint256_to_t_uint256", - "nativeSrc": "1946:269:18", + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nativeSrc": "1864:434:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "slot", - "nativeSrc": "1999:4:18", + "name": "src", + "nativeSrc": "1932:3:18", "nodeType": "YulTypedName", - "src": "1999:4:18", + "src": "1932:3:18", "type": "" }, { - "name": "offset", - "nativeSrc": "2005:6:18", + "name": "length", + "nativeSrc": "1937:6:18", "nodeType": "YulTypedName", - "src": "2005:6:18", + "src": "1937:6:18", "type": "" }, { - "name": "value_0", - "nativeSrc": "2013:7:18", + "name": "end", + "nativeSrc": "1945:3:18", "nodeType": "YulTypedName", - "src": "2013:7:18", + "src": "1945:3:18", "type": "" } ], - "src": "1946:269:18" - }, - { - "body": { - "nativeSrc": "2270:24:18", - "nodeType": "YulBlock", - "src": "2270:24:18", - "statements": [ - { - "nativeSrc": "2280:8:18", - "nodeType": "YulAssignment", - "src": "2280:8:18", - "value": { - "kind": "number", - "nativeSrc": "2287:1:18", - "nodeType": "YulLiteral", - "src": "2287:1:18", - "type": "", - "value": "0" - }, - "variableNames": [ - { - "name": "ret", - "nativeSrc": "2280:3:18", - "nodeType": "YulIdentifier", - "src": "2280:3:18" - } - ] - } - ] - }, - "name": "zero_value_for_split_t_uint256", - "nativeSrc": "2221:73:18", - "nodeType": "YulFunctionDefinition", "returnVariables": [ { - "name": "ret", - "nativeSrc": "2266:3:18", + "name": "array", + "nativeSrc": "1953:5:18", "nodeType": "YulTypedName", - "src": "2266:3:18", + "src": "1953:5:18", "type": "" } ], - "src": "2221:73:18" + "src": "1864:434:18" }, { "body": { - "nativeSrc": "2353:136:18", + "nativeSrc": "2391:282:18", "nodeType": "YulBlock", - "src": "2353:136:18", + "src": "2391:282:18", "statements": [ { - "nativeSrc": "2363:46:18", + "body": { + "nativeSrc": "2440:83:18", + "nodeType": "YulBlock", + "src": "2440:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "2442:77:18", + "nodeType": "YulIdentifier", + "src": "2442:77:18" + }, + "nativeSrc": "2442:79:18", + "nodeType": "YulFunctionCall", + "src": "2442:79:18" + }, + "nativeSrc": "2442:79:18", + "nodeType": "YulExpressionStatement", + "src": "2442:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2419:6:18", + "nodeType": "YulIdentifier", + "src": "2419:6:18" + }, + { + "kind": "number", + "nativeSrc": "2427:4:18", + "nodeType": "YulLiteral", + "src": "2427:4:18", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2415:3:18", + "nodeType": "YulIdentifier", + "src": "2415:3:18" + }, + "nativeSrc": "2415:17:18", + "nodeType": "YulFunctionCall", + "src": "2415:17:18" + }, + { + "name": "end", + "nativeSrc": "2434:3:18", + "nodeType": "YulIdentifier", + "src": "2434:3:18" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2411:3:18", + "nodeType": "YulIdentifier", + "src": "2411:3:18" + }, + "nativeSrc": "2411:27:18", + "nodeType": "YulFunctionCall", + "src": "2411:27:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2404:6:18", + "nodeType": "YulIdentifier", + "src": "2404:6:18" + }, + "nativeSrc": "2404:35:18", + "nodeType": "YulFunctionCall", + "src": "2404:35:18" + }, + "nativeSrc": "2401:122:18", + "nodeType": "YulIf", + "src": "2401:122:18" + }, + { + "nativeSrc": "2532:27:18", "nodeType": "YulVariableDeclaration", - "src": "2363:46:18", + "src": "2532:27:18", "value": { - "arguments": [], + "arguments": [ + { + "name": "offset", + "nativeSrc": "2552:6:18", + "nodeType": "YulIdentifier", + "src": "2552:6:18" + } + ], "functionName": { - "name": "zero_value_for_split_t_uint256", - "nativeSrc": "2377:30:18", + "name": "mload", + "nativeSrc": "2546:5:18", "nodeType": "YulIdentifier", - "src": "2377:30:18" + "src": "2546:5:18" }, - "nativeSrc": "2377:32:18", + "nativeSrc": "2546:13:18", "nodeType": "YulFunctionCall", - "src": "2377:32:18" + "src": "2546:13:18" }, "variables": [ { - "name": "zero_0", - "nativeSrc": "2367:6:18", + "name": "length", + "nativeSrc": "2536:6:18", "nodeType": "YulTypedName", - "src": "2367:6:18", + "src": "2536:6:18", "type": "" } ] }, { - "expression": { + "nativeSrc": "2568:99:18", + "nodeType": "YulAssignment", + "src": "2568:99:18", + "value": { "arguments": [ { - "name": "slot", - "nativeSrc": "2462:4:18", - "nodeType": "YulIdentifier", - "src": "2462:4:18" + "arguments": [ + { + "name": "offset", + "nativeSrc": "2640:6:18", + "nodeType": "YulIdentifier", + "src": "2640:6:18" + }, + { + "kind": "number", + "nativeSrc": "2648:4:18", + "nodeType": "YulLiteral", + "src": "2648:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2636:3:18", + "nodeType": "YulIdentifier", + "src": "2636:3:18" + }, + "nativeSrc": "2636:17:18", + "nodeType": "YulFunctionCall", + "src": "2636:17:18" }, { - "name": "offset", - "nativeSrc": "2468:6:18", + "name": "length", + "nativeSrc": "2655:6:18", "nodeType": "YulIdentifier", - "src": "2468:6:18" + "src": "2655:6:18" }, { - "name": "zero_0", - "nativeSrc": "2476:6:18", + "name": "end", + "nativeSrc": "2663:3:18", "nodeType": "YulIdentifier", - "src": "2476:6:18" + "src": "2663:3:18" } ], "functionName": { - "name": "update_storage_value_t_uint256_to_t_uint256", - "nativeSrc": "2418:43:18", + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nativeSrc": "2577:58:18", "nodeType": "YulIdentifier", - "src": "2418:43:18" + "src": "2577:58:18" }, - "nativeSrc": "2418:65:18", + "nativeSrc": "2577:90:18", "nodeType": "YulFunctionCall", - "src": "2418:65:18" + "src": "2577:90:18" }, - "nativeSrc": "2418:65:18", - "nodeType": "YulExpressionStatement", - "src": "2418:65:18" + "variableNames": [ + { + "name": "array", + "nativeSrc": "2568:5:18", + "nodeType": "YulIdentifier", + "src": "2568:5:18" + } + ] } ] }, - "name": "storage_set_to_zero_t_uint256", - "nativeSrc": "2300:189:18", + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nativeSrc": "2318:355:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "slot", - "nativeSrc": "2339:4:18", + "name": "offset", + "nativeSrc": "2369:6:18", "nodeType": "YulTypedName", - "src": "2339:4:18", + "src": "2369:6:18", "type": "" }, { - "name": "offset", - "nativeSrc": "2345:6:18", + "name": "end", + "nativeSrc": "2377:3:18", + "nodeType": "YulTypedName", + "src": "2377:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "2385:5:18", "nodeType": "YulTypedName", - "src": "2345:6:18", + "src": "2385:5:18", "type": "" } ], - "src": "2300:189:18" + "src": "2318:355:18" }, { "body": { - "nativeSrc": "2545:136:18", + "nativeSrc": "2766:437:18", "nodeType": "YulBlock", - "src": "2545:136:18", + "src": "2766:437:18", "statements": [ { "body": { - "nativeSrc": "2612:63:18", + "nativeSrc": "2812:83:18", "nodeType": "YulBlock", - "src": "2612:63:18", + "src": "2812:83:18", "statements": [ { "expression": { - "arguments": [ - { - "name": "start", - "nativeSrc": "2656:5:18", - "nodeType": "YulIdentifier", - "src": "2656:5:18" - }, - { - "kind": "number", - "nativeSrc": "2663:1:18", - "nodeType": "YulLiteral", - "src": "2663:1:18", - "type": "", - "value": "0" - } - ], + "arguments": [], "functionName": { - "name": "storage_set_to_zero_t_uint256", - "nativeSrc": "2626:29:18", + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "2814:77:18", "nodeType": "YulIdentifier", - "src": "2626:29:18" + "src": "2814:77:18" }, - "nativeSrc": "2626:39:18", + "nativeSrc": "2814:79:18", "nodeType": "YulFunctionCall", - "src": "2626:39:18" + "src": "2814:79:18" }, - "nativeSrc": "2626:39:18", + "nativeSrc": "2814:79:18", "nodeType": "YulExpressionStatement", - "src": "2626:39:18" + "src": "2814:79:18" } ] }, "condition": { "arguments": [ { - "name": "start", - "nativeSrc": "2565:5:18", - "nodeType": "YulIdentifier", - "src": "2565:5:18" + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "2787:7:18", + "nodeType": "YulIdentifier", + "src": "2787:7:18" + }, + { + "name": "headStart", + "nativeSrc": "2796:9:18", + "nodeType": "YulIdentifier", + "src": "2796:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2783:3:18", + "nodeType": "YulIdentifier", + "src": "2783:3:18" + }, + "nativeSrc": "2783:23:18", + "nodeType": "YulFunctionCall", + "src": "2783:23:18" }, { - "name": "end", - "nativeSrc": "2572:3:18", - "nodeType": "YulIdentifier", - "src": "2572:3:18" + "kind": "number", + "nativeSrc": "2808:2:18", + "nodeType": "YulLiteral", + "src": "2808:2:18", + "type": "", + "value": "32" } ], "functionName": { - "name": "lt", - "nativeSrc": "2562:2:18", + "name": "slt", + "nativeSrc": "2779:3:18", "nodeType": "YulIdentifier", - "src": "2562:2:18" + "src": "2779:3:18" }, - "nativeSrc": "2562:14:18", + "nativeSrc": "2779:32:18", "nodeType": "YulFunctionCall", - "src": "2562:14:18" + "src": "2779:32:18" }, - "nativeSrc": "2555:120:18", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "2577:26:18", - "nodeType": "YulBlock", - "src": "2577:26:18", - "statements": [ - { - "nativeSrc": "2579:22:18", - "nodeType": "YulAssignment", - "src": "2579:22:18", - "value": { - "arguments": [ - { - "name": "start", - "nativeSrc": "2592:5:18", + "nativeSrc": "2776:119:18", + "nodeType": "YulIf", + "src": "2776:119:18" + }, + { + "nativeSrc": "2905:291:18", + "nodeType": "YulBlock", + "src": "2905:291:18", + "statements": [ + { + "nativeSrc": "2920:38:18", + "nodeType": "YulVariableDeclaration", + "src": "2920:38:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2944:9:18", + "nodeType": "YulIdentifier", + "src": "2944:9:18" + }, + { + "kind": "number", + "nativeSrc": "2955:1:18", + "nodeType": "YulLiteral", + "src": "2955:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2940:3:18", "nodeType": "YulIdentifier", - "src": "2592:5:18" + "src": "2940:3:18" }, - { - "kind": "number", - "nativeSrc": "2599:1:18", - "nodeType": "YulLiteral", - "src": "2599:1:18", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2588:3:18", - "nodeType": "YulIdentifier", - "src": "2588:3:18" - }, - "nativeSrc": "2588:13:18", - "nodeType": "YulFunctionCall", - "src": "2588:13:18" - }, - "variableNames": [ - { - "name": "start", - "nativeSrc": "2579:5:18", - "nodeType": "YulIdentifier", - "src": "2579:5:18" + "nativeSrc": "2940:17:18", + "nodeType": "YulFunctionCall", + "src": "2940:17:18" } - ] - } - ] - }, - "pre": { - "nativeSrc": "2559:2:18", - "nodeType": "YulBlock", - "src": "2559:2:18", - "statements": [] - }, - "src": "2555:120:18" - } - ] - }, - "name": "clear_storage_range_t_bytes1", - "nativeSrc": "2495:186:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "start", - "nativeSrc": "2533:5:18", - "nodeType": "YulTypedName", - "src": "2533:5:18", - "type": "" - }, - { - "name": "end", - "nativeSrc": "2540:3:18", - "nodeType": "YulTypedName", - "src": "2540:3:18", - "type": "" - } - ], - "src": "2495:186:18" - }, - { - "body": { - "nativeSrc": "2766:464:18", - "nodeType": "YulBlock", - "src": "2766:464:18", - "statements": [ - { - "body": { - "nativeSrc": "2792:431:18", - "nodeType": "YulBlock", - "src": "2792:431:18", - "statements": [ - { - "nativeSrc": "2806:54:18", - "nodeType": "YulVariableDeclaration", - "src": "2806:54:18", - "value": { - "arguments": [ - { - "name": "array", - "nativeSrc": "2854:5:18", - "nodeType": "YulIdentifier", - "src": "2854:5:18" - } - ], - "functionName": { - "name": "array_dataslot_t_string_storage", - "nativeSrc": "2822:31:18", - "nodeType": "YulIdentifier", - "src": "2822:31:18" - }, - "nativeSrc": "2822:38:18", - "nodeType": "YulFunctionCall", - "src": "2822:38:18" + ], + "functionName": { + "name": "mload", + "nativeSrc": "2934:5:18", + "nodeType": "YulIdentifier", + "src": "2934:5:18" }, - "variables": [ - { - "name": "dataArea", - "nativeSrc": "2810:8:18", - "nodeType": "YulTypedName", - "src": "2810:8:18", - "type": "" - } - ] + "nativeSrc": "2934:24:18", + "nodeType": "YulFunctionCall", + "src": "2934:24:18" }, - { - "nativeSrc": "2873:63:18", - "nodeType": "YulVariableDeclaration", - "src": "2873:63:18", - "value": { - "arguments": [ - { - "name": "dataArea", - "nativeSrc": "2896:8:18", - "nodeType": "YulIdentifier", - "src": "2896:8:18" - }, - { - "arguments": [ - { - "name": "startIndex", - "nativeSrc": "2924:10:18", - "nodeType": "YulIdentifier", - "src": "2924:10:18" - } - ], + "variables": [ + { + "name": "offset", + "nativeSrc": "2924:6:18", + "nodeType": "YulTypedName", + "src": "2924:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "3005:83:18", + "nodeType": "YulBlock", + "src": "3005:83:18", + "statements": [ + { + "expression": { + "arguments": [], "functionName": { - "name": "divide_by_32_ceil", - "nativeSrc": "2906:17:18", + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "3007:77:18", "nodeType": "YulIdentifier", - "src": "2906:17:18" + "src": "3007:77:18" }, - "nativeSrc": "2906:29:18", + "nativeSrc": "3007:79:18", "nodeType": "YulFunctionCall", - "src": "2906:29:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2892:3:18", + "src": "3007:79:18" + }, + "nativeSrc": "3007:79:18", + "nodeType": "YulExpressionStatement", + "src": "3007:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2977:6:18", "nodeType": "YulIdentifier", - "src": "2892:3:18" + "src": "2977:6:18" }, - "nativeSrc": "2892:44:18", - "nodeType": "YulFunctionCall", - "src": "2892:44:18" - }, - "variables": [ { - "name": "deleteStart", - "nativeSrc": "2877:11:18", - "nodeType": "YulTypedName", - "src": "2877:11:18", - "type": "" + "kind": "number", + "nativeSrc": "2985:18:18", + "nodeType": "YulLiteral", + "src": "2985:18:18", + "type": "", + "value": "0xffffffffffffffff" } - ] + ], + "functionName": { + "name": "gt", + "nativeSrc": "2974:2:18", + "nodeType": "YulIdentifier", + "src": "2974:2:18" + }, + "nativeSrc": "2974:30:18", + "nodeType": "YulFunctionCall", + "src": "2974:30:18" }, - { - "body": { - "nativeSrc": "3093:27:18", - "nodeType": "YulBlock", - "src": "3093:27:18", - "statements": [ - { - "nativeSrc": "3095:23:18", - "nodeType": "YulAssignment", - "src": "3095:23:18", - "value": { - "name": "dataArea", - "nativeSrc": "3110:8:18", + "nativeSrc": "2971:117:18", + "nodeType": "YulIf", + "src": "2971:117:18" + }, + { + "nativeSrc": "3102:84:18", + "nodeType": "YulAssignment", + "src": "3102:84:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3158:9:18", "nodeType": "YulIdentifier", - "src": "3110:8:18" + "src": "3158:9:18" }, - "variableNames": [ - { - "name": "deleteStart", - "nativeSrc": "3095:11:18", - "nodeType": "YulIdentifier", - "src": "3095:11:18" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "startIndex", - "nativeSrc": "3077:10:18", + { + "name": "offset", + "nativeSrc": "3169:6:18", + "nodeType": "YulIdentifier", + "src": "3169:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3154:3:18", "nodeType": "YulIdentifier", - "src": "3077:10:18" + "src": "3154:3:18" }, - { - "kind": "number", - "nativeSrc": "3089:2:18", - "nodeType": "YulLiteral", - "src": "3089:2:18", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "3074:2:18", - "nodeType": "YulIdentifier", - "src": "3074:2:18" + "nativeSrc": "3154:22:18", + "nodeType": "YulFunctionCall", + "src": "3154:22:18" }, - "nativeSrc": "3074:18:18", - "nodeType": "YulFunctionCall", - "src": "3074:18:18" - }, - "nativeSrc": "3071:49:18", - "nodeType": "YulIf", - "src": "3071:49:18" - }, - { - "expression": { - "arguments": [ - { - "name": "deleteStart", - "nativeSrc": "3162:11:18", - "nodeType": "YulIdentifier", - "src": "3162:11:18" - }, - { - "arguments": [ - { - "name": "dataArea", - "nativeSrc": "3179:8:18", - "nodeType": "YulIdentifier", - "src": "3179:8:18" - }, - { - "arguments": [ - { - "name": "len", - "nativeSrc": "3207:3:18", - "nodeType": "YulIdentifier", - "src": "3207:3:18" - } - ], - "functionName": { - "name": "divide_by_32_ceil", - "nativeSrc": "3189:17:18", - "nodeType": "YulIdentifier", - "src": "3189:17:18" - }, - "nativeSrc": "3189:22:18", - "nodeType": "YulFunctionCall", - "src": "3189:22:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3175:3:18", - "nodeType": "YulIdentifier", - "src": "3175:3:18" - }, - "nativeSrc": "3175:37:18", - "nodeType": "YulFunctionCall", - "src": "3175:37:18" - } - ], - "functionName": { - "name": "clear_storage_range_t_bytes1", - "nativeSrc": "3133:28:18", + { + "name": "dataEnd", + "nativeSrc": "3178:7:18", "nodeType": "YulIdentifier", - "src": "3133:28:18" - }, - "nativeSrc": "3133:80:18", - "nodeType": "YulFunctionCall", - "src": "3133:80:18" + "src": "3178:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nativeSrc": "3112:41:18", + "nodeType": "YulIdentifier", + "src": "3112:41:18" }, - "nativeSrc": "3133:80:18", - "nodeType": "YulExpressionStatement", - "src": "3133:80:18" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "len", - "nativeSrc": "2783:3:18", - "nodeType": "YulIdentifier", - "src": "2783:3:18" + "nativeSrc": "3112:74:18", + "nodeType": "YulFunctionCall", + "src": "3112:74:18" }, - { - "kind": "number", - "nativeSrc": "2788:2:18", - "nodeType": "YulLiteral", - "src": "2788:2:18", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "2780:2:18", - "nodeType": "YulIdentifier", - "src": "2780:2:18" - }, - "nativeSrc": "2780:11:18", - "nodeType": "YulFunctionCall", - "src": "2780:11:18" - }, - "nativeSrc": "2777:446:18", - "nodeType": "YulIf", - "src": "2777:446:18" + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3102:6:18", + "nodeType": "YulIdentifier", + "src": "3102:6:18" + } + ] + } + ] } ] }, - "name": "clean_up_bytearray_end_slots_t_string_storage", - "nativeSrc": "2687:543:18", + "name": "abi_decode_tuple_t_string_memory_ptr_fromMemory", + "nativeSrc": "2679:524:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "array", - "nativeSrc": "2742:5:18", + "name": "headStart", + "nativeSrc": "2736:9:18", "nodeType": "YulTypedName", - "src": "2742:5:18", + "src": "2736:9:18", "type": "" }, { - "name": "len", - "nativeSrc": "2749:3:18", + "name": "dataEnd", + "nativeSrc": "2747:7:18", "nodeType": "YulTypedName", - "src": "2749:3:18", + "src": "2747:7:18", "type": "" - }, + } + ], + "returnVariables": [ { - "name": "startIndex", - "nativeSrc": "2754:10:18", + "name": "value0", + "nativeSrc": "2759:6:18", "nodeType": "YulTypedName", - "src": "2754:10:18", + "src": "2759:6:18", "type": "" } ], - "src": "2687:543:18" + "src": "2679:524:18" }, { "body": { - "nativeSrc": "3299:54:18", + "nativeSrc": "3268:40:18", "nodeType": "YulBlock", - "src": "3299:54:18", + "src": "3268:40:18", "statements": [ { - "nativeSrc": "3309:37:18", + "nativeSrc": "3279:22:18", "nodeType": "YulAssignment", - "src": "3309:37:18", + "src": "3279:22:18", "value": { "arguments": [ - { - "name": "bits", - "nativeSrc": "3334:4:18", - "nodeType": "YulIdentifier", - "src": "3334:4:18" - }, { "name": "value", - "nativeSrc": "3340:5:18", + "nativeSrc": "3295:5:18", "nodeType": "YulIdentifier", - "src": "3340:5:18" + "src": "3295:5:18" } ], "functionName": { - "name": "shr", - "nativeSrc": "3330:3:18", + "name": "mload", + "nativeSrc": "3289:5:18", "nodeType": "YulIdentifier", - "src": "3330:3:18" + "src": "3289:5:18" }, - "nativeSrc": "3330:16:18", + "nativeSrc": "3289:12:18", "nodeType": "YulFunctionCall", - "src": "3330:16:18" + "src": "3289:12:18" }, "variableNames": [ { - "name": "newValue", - "nativeSrc": "3309:8:18", + "name": "length", + "nativeSrc": "3279:6:18", "nodeType": "YulIdentifier", - "src": "3309:8:18" + "src": "3279:6:18" } ] } ] }, - "name": "shift_right_unsigned_dynamic", - "nativeSrc": "3236:117:18", + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "3209:99:18", "nodeType": "YulFunctionDefinition", "parameters": [ - { - "name": "bits", - "nativeSrc": "3274:4:18", - "nodeType": "YulTypedName", - "src": "3274:4:18", - "type": "" - }, { "name": "value", - "nativeSrc": "3280:5:18", + "nativeSrc": "3251:5:18", "nodeType": "YulTypedName", - "src": "3280:5:18", + "src": "3251:5:18", "type": "" } ], "returnVariables": [ { - "name": "newValue", - "nativeSrc": "3290:8:18", + "name": "length", + "nativeSrc": "3261:6:18", "nodeType": "YulTypedName", - "src": "3290:8:18", + "src": "3261:6:18", "type": "" } ], - "src": "3236:117:18" + "src": "3209:99:18" }, { "body": { - "nativeSrc": "3410:118:18", + "nativeSrc": "3342:152:18", "nodeType": "YulBlock", - "src": "3410:118:18", + "src": "3342:152:18", "statements": [ { - "nativeSrc": "3420:68:18", - "nodeType": "YulVariableDeclaration", - "src": "3420:68:18", - "value": { + "expression": { "arguments": [ { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "3469:1:18", - "nodeType": "YulLiteral", - "src": "3469:1:18", - "type": "", - "value": "8" - }, - { - "name": "bytes", - "nativeSrc": "3472:5:18", - "nodeType": "YulIdentifier", - "src": "3472:5:18" - } - ], - "functionName": { - "name": "mul", - "nativeSrc": "3465:3:18", - "nodeType": "YulIdentifier", - "src": "3465:3:18" - }, - "nativeSrc": "3465:13:18", - "nodeType": "YulFunctionCall", - "src": "3465:13:18" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "3484:1:18", - "nodeType": "YulLiteral", - "src": "3484:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "3480:3:18", - "nodeType": "YulIdentifier", - "src": "3480:3:18" - }, - "nativeSrc": "3480:6:18", - "nodeType": "YulFunctionCall", - "src": "3480:6:18" - } - ], - "functionName": { - "name": "shift_right_unsigned_dynamic", - "nativeSrc": "3436:28:18", - "nodeType": "YulIdentifier", - "src": "3436:28:18" - }, - "nativeSrc": "3436:51:18", - "nodeType": "YulFunctionCall", - "src": "3436:51:18" + "kind": "number", + "nativeSrc": "3359:1:18", + "nodeType": "YulLiteral", + "src": "3359:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3362:77:18", + "nodeType": "YulLiteral", + "src": "3362:77:18", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { - "name": "not", - "nativeSrc": "3432:3:18", + "name": "mstore", + "nativeSrc": "3352:6:18", "nodeType": "YulIdentifier", - "src": "3432:3:18" + "src": "3352:6:18" }, - "nativeSrc": "3432:56:18", + "nativeSrc": "3352:88:18", "nodeType": "YulFunctionCall", - "src": "3432:56:18" + "src": "3352:88:18" }, - "variables": [ - { - "name": "mask", - "nativeSrc": "3424:4:18", - "nodeType": "YulTypedName", - "src": "3424:4:18", - "type": "" - } - ] + "nativeSrc": "3352:88:18", + "nodeType": "YulExpressionStatement", + "src": "3352:88:18" }, { - "nativeSrc": "3497:25:18", - "nodeType": "YulAssignment", - "src": "3497:25:18", - "value": { + "expression": { "arguments": [ { - "name": "data", - "nativeSrc": "3511:4:18", - "nodeType": "YulIdentifier", - "src": "3511:4:18" + "kind": "number", + "nativeSrc": "3456:1:18", + "nodeType": "YulLiteral", + "src": "3456:1:18", + "type": "", + "value": "4" }, { - "name": "mask", - "nativeSrc": "3517:4:18", - "nodeType": "YulIdentifier", - "src": "3517:4:18" + "kind": "number", + "nativeSrc": "3459:4:18", + "nodeType": "YulLiteral", + "src": "3459:4:18", + "type": "", + "value": "0x22" } ], "functionName": { - "name": "and", - "nativeSrc": "3507:3:18", + "name": "mstore", + "nativeSrc": "3449:6:18", "nodeType": "YulIdentifier", - "src": "3507:3:18" + "src": "3449:6:18" }, - "nativeSrc": "3507:15:18", + "nativeSrc": "3449:15:18", "nodeType": "YulFunctionCall", - "src": "3507:15:18" + "src": "3449:15:18" }, - "variableNames": [ - { - "name": "result", - "nativeSrc": "3497:6:18", + "nativeSrc": "3449:15:18", + "nodeType": "YulExpressionStatement", + "src": "3449:15:18" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3480:1:18", + "nodeType": "YulLiteral", + "src": "3480:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3483:4:18", + "nodeType": "YulLiteral", + "src": "3483:4:18", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3473:6:18", "nodeType": "YulIdentifier", - "src": "3497:6:18" - } - ] + "src": "3473:6:18" + }, + "nativeSrc": "3473:15:18", + "nodeType": "YulFunctionCall", + "src": "3473:15:18" + }, + "nativeSrc": "3473:15:18", + "nodeType": "YulExpressionStatement", + "src": "3473:15:18" } ] }, - "name": "mask_bytes_dynamic", - "nativeSrc": "3359:169:18", + "name": "panic_error_0x22", + "nativeSrc": "3314:180:18", "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "data", - "nativeSrc": "3387:4:18", - "nodeType": "YulTypedName", - "src": "3387:4:18", - "type": "" - }, - { - "name": "bytes", - "nativeSrc": "3393:5:18", - "nodeType": "YulTypedName", - "src": "3393:5:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "result", - "nativeSrc": "3403:6:18", - "nodeType": "YulTypedName", - "src": "3403:6:18", - "type": "" - } - ], - "src": "3359:169:18" + "src": "3314:180:18" }, { "body": { - "nativeSrc": "3614:214:18", + "nativeSrc": "3551:269:18", "nodeType": "YulBlock", - "src": "3614:214:18", + "src": "3551:269:18", "statements": [ { - "nativeSrc": "3747:37:18", + "nativeSrc": "3561:22:18", "nodeType": "YulAssignment", - "src": "3747:37:18", + "src": "3561:22:18", "value": { "arguments": [ { "name": "data", - "nativeSrc": "3774:4:18", + "nativeSrc": "3575:4:18", "nodeType": "YulIdentifier", - "src": "3774:4:18" + "src": "3575:4:18" }, { - "name": "len", - "nativeSrc": "3780:3:18", - "nodeType": "YulIdentifier", - "src": "3780:3:18" + "kind": "number", + "nativeSrc": "3581:1:18", + "nodeType": "YulLiteral", + "src": "3581:1:18", + "type": "", + "value": "2" } ], "functionName": { - "name": "mask_bytes_dynamic", - "nativeSrc": "3755:18:18", + "name": "div", + "nativeSrc": "3571:3:18", "nodeType": "YulIdentifier", - "src": "3755:18:18" + "src": "3571:3:18" }, - "nativeSrc": "3755:29:18", + "nativeSrc": "3571:12:18", "nodeType": "YulFunctionCall", - "src": "3755:29:18" + "src": "3571:12:18" }, "variableNames": [ { - "name": "data", - "nativeSrc": "3747:4:18", + "name": "length", + "nativeSrc": "3561:6:18", "nodeType": "YulIdentifier", - "src": "3747:4:18" + "src": "3561:6:18" } ] }, { - "nativeSrc": "3793:29:18", - "nodeType": "YulAssignment", - "src": "3793:29:18", + "nativeSrc": "3592:38:18", + "nodeType": "YulVariableDeclaration", + "src": "3592:38:18", "value": { "arguments": [ { "name": "data", - "nativeSrc": "3804:4:18", + "nativeSrc": "3622:4:18", "nodeType": "YulIdentifier", - "src": "3804:4:18" + "src": "3622:4:18" }, { - "arguments": [ - { - "kind": "number", - "nativeSrc": "3814:1:18", - "nodeType": "YulLiteral", - "src": "3814:1:18", - "type": "", - "value": "2" - }, - { - "name": "len", - "nativeSrc": "3817:3:18", - "nodeType": "YulIdentifier", - "src": "3817:3:18" - } - ], - "functionName": { - "name": "mul", - "nativeSrc": "3810:3:18", - "nodeType": "YulIdentifier", - "src": "3810:3:18" - }, - "nativeSrc": "3810:11:18", - "nodeType": "YulFunctionCall", - "src": "3810:11:18" + "kind": "number", + "nativeSrc": "3628:1:18", + "nodeType": "YulLiteral", + "src": "3628:1:18", + "type": "", + "value": "1" } ], "functionName": { - "name": "or", - "nativeSrc": "3801:2:18", + "name": "and", + "nativeSrc": "3618:3:18", "nodeType": "YulIdentifier", - "src": "3801:2:18" + "src": "3618:3:18" }, - "nativeSrc": "3801:21:18", + "nativeSrc": "3618:12:18", "nodeType": "YulFunctionCall", - "src": "3801:21:18" + "src": "3618:12:18" }, - "variableNames": [ + "variables": [ { - "name": "used", - "nativeSrc": "3793:4:18", - "nodeType": "YulIdentifier", - "src": "3793:4:18" + "name": "outOfPlaceEncoding", + "nativeSrc": "3596:18:18", + "nodeType": "YulTypedName", + "src": "3596:18:18", + "type": "" } ] - } - ] - }, - "name": "extract_used_part_and_set_length_of_short_byte_array", - "nativeSrc": "3533:295:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "data", - "nativeSrc": "3595:4:18", - "nodeType": "YulTypedName", - "src": "3595:4:18", - "type": "" - }, - { - "name": "len", - "nativeSrc": "3601:3:18", - "nodeType": "YulTypedName", - "src": "3601:3:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "used", - "nativeSrc": "3609:4:18", - "nodeType": "YulTypedName", - "src": "3609:4:18", - "type": "" - } - ], - "src": "3533:295:18" - }, - { - "body": { - "nativeSrc": "3925:1303:18", - "nodeType": "YulBlock", - "src": "3925:1303:18", - "statements": [ + }, { - "nativeSrc": "3936:51:18", - "nodeType": "YulVariableDeclaration", - "src": "3936:51:18", - "value": { + "body": { + "nativeSrc": "3669:51:18", + "nodeType": "YulBlock", + "src": "3669:51:18", + "statements": [ + { + "nativeSrc": "3683:27:18", + "nodeType": "YulAssignment", + "src": "3683:27:18", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "3697:6:18", + "nodeType": "YulIdentifier", + "src": "3697:6:18" + }, + { + "kind": "number", + "nativeSrc": "3705:4:18", + "nodeType": "YulLiteral", + "src": "3705:4:18", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "3693:3:18", + "nodeType": "YulIdentifier", + "src": "3693:3:18" + }, + "nativeSrc": "3693:17:18", + "nodeType": "YulFunctionCall", + "src": "3693:17:18" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "3683:6:18", + "nodeType": "YulIdentifier", + "src": "3683:6:18" + } + ] + } + ] + }, + "condition": { "arguments": [ { - "name": "src", - "nativeSrc": "3983:3:18", + "name": "outOfPlaceEncoding", + "nativeSrc": "3649:18:18", "nodeType": "YulIdentifier", - "src": "3983:3:18" + "src": "3649:18:18" } ], "functionName": { - "name": "array_length_t_string_memory_ptr", - "nativeSrc": "3950:32:18", + "name": "iszero", + "nativeSrc": "3642:6:18", "nodeType": "YulIdentifier", - "src": "3950:32:18" + "src": "3642:6:18" }, - "nativeSrc": "3950:37:18", + "nativeSrc": "3642:26:18", "nodeType": "YulFunctionCall", - "src": "3950:37:18" + "src": "3642:26:18" }, - "variables": [ - { - "name": "newLen", - "nativeSrc": "3940:6:18", - "nodeType": "YulTypedName", - "src": "3940:6:18", - "type": "" - } - ] + "nativeSrc": "3639:81:18", + "nodeType": "YulIf", + "src": "3639:81:18" }, { "body": { - "nativeSrc": "4072:22:18", + "nativeSrc": "3772:42:18", "nodeType": "YulBlock", - "src": "4072:22:18", + "src": "3772:42:18", "statements": [ { "expression": { "arguments": [], "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "4074:16:18", + "name": "panic_error_0x22", + "nativeSrc": "3786:16:18", "nodeType": "YulIdentifier", - "src": "4074:16:18" + "src": "3786:16:18" }, - "nativeSrc": "4074:18:18", + "nativeSrc": "3786:18:18", "nodeType": "YulFunctionCall", - "src": "4074:18:18" + "src": "3786:18:18" }, - "nativeSrc": "4074:18:18", + "nativeSrc": "3786:18:18", "nodeType": "YulExpressionStatement", - "src": "4074:18:18" + "src": "3786:18:18" } ] }, "condition": { "arguments": [ { - "name": "newLen", - "nativeSrc": "4044:6:18", + "name": "outOfPlaceEncoding", + "nativeSrc": "3736:18:18", "nodeType": "YulIdentifier", - "src": "4044:6:18" + "src": "3736:18:18" }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "3759:6:18", + "nodeType": "YulIdentifier", + "src": "3759:6:18" + }, + { + "kind": "number", + "nativeSrc": "3767:2:18", + "nodeType": "YulLiteral", + "src": "3767:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "3756:2:18", + "nodeType": "YulIdentifier", + "src": "3756:2:18" + }, + "nativeSrc": "3756:14:18", + "nodeType": "YulFunctionCall", + "src": "3756:14:18" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "3733:2:18", + "nodeType": "YulIdentifier", + "src": "3733:2:18" + }, + "nativeSrc": "3733:38:18", + "nodeType": "YulFunctionCall", + "src": "3733:38:18" + }, + "nativeSrc": "3730:84:18", + "nodeType": "YulIf", + "src": "3730:84:18" + } + ] + }, + "name": "extract_byte_array_length", + "nativeSrc": "3500:320:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "3535:4:18", + "nodeType": "YulTypedName", + "src": "3535:4:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "3544:6:18", + "nodeType": "YulTypedName", + "src": "3544:6:18", + "type": "" + } + ], + "src": "3500:320:18" + }, + { + "body": { + "nativeSrc": "3880:87:18", + "nodeType": "YulBlock", + "src": "3880:87:18", + "statements": [ + { + "nativeSrc": "3890:11:18", + "nodeType": "YulAssignment", + "src": "3890:11:18", + "value": { + "name": "ptr", + "nativeSrc": "3898:3:18", + "nodeType": "YulIdentifier", + "src": "3898:3:18" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "3890:4:18", + "nodeType": "YulIdentifier", + "src": "3890:4:18" + } + ] + }, + { + "expression": { + "arguments": [ { "kind": "number", - "nativeSrc": "4052:18:18", + "nativeSrc": "3918:1:18", "nodeType": "YulLiteral", - "src": "4052:18:18", + "src": "3918:1:18", "type": "", - "value": "0xffffffffffffffff" + "value": "0" + }, + { + "name": "ptr", + "nativeSrc": "3921:3:18", + "nodeType": "YulIdentifier", + "src": "3921:3:18" } ], "functionName": { - "name": "gt", - "nativeSrc": "4041:2:18", + "name": "mstore", + "nativeSrc": "3911:6:18", "nodeType": "YulIdentifier", - "src": "4041:2:18" + "src": "3911:6:18" }, - "nativeSrc": "4041:30:18", + "nativeSrc": "3911:14:18", "nodeType": "YulFunctionCall", - "src": "4041:30:18" + "src": "3911:14:18" }, - "nativeSrc": "4038:56:18", - "nodeType": "YulIf", - "src": "4038:56:18" + "nativeSrc": "3911:14:18", + "nodeType": "YulExpressionStatement", + "src": "3911:14:18" }, { - "nativeSrc": "4104:52:18", - "nodeType": "YulVariableDeclaration", - "src": "4104:52:18", + "nativeSrc": "3934:26:18", + "nodeType": "YulAssignment", + "src": "3934:26:18", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3952:1:18", + "nodeType": "YulLiteral", + "src": "3952:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3955:4:18", + "nodeType": "YulLiteral", + "src": "3955:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "3942:9:18", + "nodeType": "YulIdentifier", + "src": "3942:9:18" + }, + "nativeSrc": "3942:18:18", + "nodeType": "YulFunctionCall", + "src": "3942:18:18" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "3934:4:18", + "nodeType": "YulIdentifier", + "src": "3934:4:18" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nativeSrc": "3826:141:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "3867:3:18", + "nodeType": "YulTypedName", + "src": "3867:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nativeSrc": "3875:4:18", + "nodeType": "YulTypedName", + "src": "3875:4:18", + "type": "" + } + ], + "src": "3826:141:18" + }, + { + "body": { + "nativeSrc": "4017:49:18", + "nodeType": "YulBlock", + "src": "4017:49:18", + "statements": [ + { + "nativeSrc": "4027:33:18", + "nodeType": "YulAssignment", + "src": "4027:33:18", "value": { "arguments": [ { "arguments": [ { - "name": "slot", - "nativeSrc": "4150:4:18", + "name": "value", + "nativeSrc": "4045:5:18", "nodeType": "YulIdentifier", - "src": "4150:4:18" + "src": "4045:5:18" + }, + { + "kind": "number", + "nativeSrc": "4052:2:18", + "nodeType": "YulLiteral", + "src": "4052:2:18", + "type": "", + "value": "31" } ], "functionName": { - "name": "sload", - "nativeSrc": "4144:5:18", + "name": "add", + "nativeSrc": "4041:3:18", "nodeType": "YulIdentifier", - "src": "4144:5:18" + "src": "4041:3:18" }, - "nativeSrc": "4144:11:18", + "nativeSrc": "4041:14:18", "nodeType": "YulFunctionCall", - "src": "4144:11:18" + "src": "4041:14:18" + }, + { + "kind": "number", + "nativeSrc": "4057:2:18", + "nodeType": "YulLiteral", + "src": "4057:2:18", + "type": "", + "value": "32" } ], "functionName": { - "name": "extract_byte_array_length", - "nativeSrc": "4118:25:18", + "name": "div", + "nativeSrc": "4037:3:18", "nodeType": "YulIdentifier", - "src": "4118:25:18" + "src": "4037:3:18" }, - "nativeSrc": "4118:38:18", + "nativeSrc": "4037:23:18", "nodeType": "YulFunctionCall", - "src": "4118:38:18" + "src": "4037:23:18" }, - "variables": [ + "variableNames": [ { - "name": "oldLen", - "nativeSrc": "4108:6:18", - "nodeType": "YulTypedName", - "src": "4108:6:18", - "type": "" + "name": "result", + "nativeSrc": "4027:6:18", + "nodeType": "YulIdentifier", + "src": "4027:6:18" } ] - }, + } + ] + }, + "name": "divide_by_32_ceil", + "nativeSrc": "3973:93:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4000:5:18", + "nodeType": "YulTypedName", + "src": "4000:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "4010:6:18", + "nodeType": "YulTypedName", + "src": "4010:6:18", + "type": "" + } + ], + "src": "3973:93:18" + }, + { + "body": { + "nativeSrc": "4125:54:18", + "nodeType": "YulBlock", + "src": "4125:54:18", + "statements": [ { - "expression": { + "nativeSrc": "4135:37:18", + "nodeType": "YulAssignment", + "src": "4135:37:18", + "value": { "arguments": [ { - "name": "slot", - "nativeSrc": "4249:4:18", + "name": "bits", + "nativeSrc": "4160:4:18", "nodeType": "YulIdentifier", - "src": "4249:4:18" + "src": "4160:4:18" }, { - "name": "oldLen", - "nativeSrc": "4255:6:18", + "name": "value", + "nativeSrc": "4166:5:18", "nodeType": "YulIdentifier", - "src": "4255:6:18" - }, + "src": "4166:5:18" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "4156:3:18", + "nodeType": "YulIdentifier", + "src": "4156:3:18" + }, + "nativeSrc": "4156:16:18", + "nodeType": "YulFunctionCall", + "src": "4156:16:18" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "4135:8:18", + "nodeType": "YulIdentifier", + "src": "4135:8:18" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nativeSrc": "4072:107:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nativeSrc": "4100:4:18", + "nodeType": "YulTypedName", + "src": "4100:4:18", + "type": "" + }, + { + "name": "value", + "nativeSrc": "4106:5:18", + "nodeType": "YulTypedName", + "src": "4106:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nativeSrc": "4116:8:18", + "nodeType": "YulTypedName", + "src": "4116:8:18", + "type": "" + } + ], + "src": "4072:107:18" + }, + { + "body": { + "nativeSrc": "4261:317:18", + "nodeType": "YulBlock", + "src": "4261:317:18", + "statements": [ + { + "nativeSrc": "4271:35:18", + "nodeType": "YulVariableDeclaration", + "src": "4271:35:18", + "value": { + "arguments": [ { - "name": "newLen", - "nativeSrc": "4263:6:18", + "name": "shiftBytes", + "nativeSrc": "4292:10:18", "nodeType": "YulIdentifier", - "src": "4263:6:18" + "src": "4292:10:18" + }, + { + "kind": "number", + "nativeSrc": "4304:1:18", + "nodeType": "YulLiteral", + "src": "4304:1:18", + "type": "", + "value": "8" } ], "functionName": { - "name": "clean_up_bytearray_end_slots_t_string_storage", - "nativeSrc": "4203:45:18", + "name": "mul", + "nativeSrc": "4288:3:18", "nodeType": "YulIdentifier", - "src": "4203:45:18" + "src": "4288:3:18" }, - "nativeSrc": "4203:67:18", + "nativeSrc": "4288:18:18", "nodeType": "YulFunctionCall", - "src": "4203:67:18" + "src": "4288:18:18" }, - "nativeSrc": "4203:67:18", - "nodeType": "YulExpressionStatement", - "src": "4203:67:18" + "variables": [ + { + "name": "shiftBits", + "nativeSrc": "4275:9:18", + "nodeType": "YulTypedName", + "src": "4275:9:18", + "type": "" + } + ] }, { - "nativeSrc": "4280:18:18", + "nativeSrc": "4315:109:18", "nodeType": "YulVariableDeclaration", - "src": "4280:18:18", + "src": "4315:109:18", "value": { - "kind": "number", - "nativeSrc": "4297:1:18", - "nodeType": "YulLiteral", - "src": "4297:1:18", - "type": "", - "value": "0" + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "4346:9:18", + "nodeType": "YulIdentifier", + "src": "4346:9:18" + }, + { + "kind": "number", + "nativeSrc": "4357:66:18", + "nodeType": "YulLiteral", + "src": "4357:66:18", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "4327:18:18", + "nodeType": "YulIdentifier", + "src": "4327:18:18" + }, + "nativeSrc": "4327:97:18", + "nodeType": "YulFunctionCall", + "src": "4327:97:18" }, "variables": [ { - "name": "srcOffset", - "nativeSrc": "4284:9:18", + "name": "mask", + "nativeSrc": "4319:4:18", "nodeType": "YulTypedName", - "src": "4284:9:18", + "src": "4319:4:18", "type": "" } ] }, { - "nativeSrc": "4308:17:18", + "nativeSrc": "4433:51:18", "nodeType": "YulAssignment", - "src": "4308:17:18", + "src": "4433:51:18", "value": { - "kind": "number", - "nativeSrc": "4321:4:18", - "nodeType": "YulLiteral", - "src": "4321:4:18", - "type": "", - "value": "0x20" + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "4464:9:18", + "nodeType": "YulIdentifier", + "src": "4464:9:18" + }, + { + "name": "toInsert", + "nativeSrc": "4475:8:18", + "nodeType": "YulIdentifier", + "src": "4475:8:18" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "4445:18:18", + "nodeType": "YulIdentifier", + "src": "4445:18:18" + }, + "nativeSrc": "4445:39:18", + "nodeType": "YulFunctionCall", + "src": "4445:39:18" }, "variableNames": [ { - "name": "srcOffset", - "nativeSrc": "4308:9:18", + "name": "toInsert", + "nativeSrc": "4433:8:18", "nodeType": "YulIdentifier", - "src": "4308:9:18" + "src": "4433:8:18" } ] }, { - "cases": [ - { - "body": { - "nativeSrc": "4372:611:18", - "nodeType": "YulBlock", - "src": "4372:611:18", - "statements": [ - { - "nativeSrc": "4386:37:18", - "nodeType": "YulVariableDeclaration", - "src": "4386:37:18", - "value": { - "arguments": [ - { - "name": "newLen", - "nativeSrc": "4405:6:18", - "nodeType": "YulIdentifier", - "src": "4405:6:18" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "4417:4:18", - "nodeType": "YulLiteral", - "src": "4417:4:18", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "4413:3:18", - "nodeType": "YulIdentifier", - "src": "4413:3:18" - }, - "nativeSrc": "4413:9:18", - "nodeType": "YulFunctionCall", - "src": "4413:9:18" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "4401:3:18", - "nodeType": "YulIdentifier", - "src": "4401:3:18" - }, - "nativeSrc": "4401:22:18", - "nodeType": "YulFunctionCall", - "src": "4401:22:18" - }, - "variables": [ - { - "name": "loopEnd", - "nativeSrc": "4390:7:18", - "nodeType": "YulTypedName", - "src": "4390:7:18", - "type": "" - } - ] - }, + "nativeSrc": "4493:30:18", + "nodeType": "YulAssignment", + "src": "4493:30:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4506:5:18", + "nodeType": "YulIdentifier", + "src": "4506:5:18" + }, + { + "arguments": [ { - "nativeSrc": "4437:51:18", - "nodeType": "YulVariableDeclaration", - "src": "4437:51:18", - "value": { - "arguments": [ - { - "name": "slot", - "nativeSrc": "4483:4:18", - "nodeType": "YulIdentifier", - "src": "4483:4:18" - } - ], - "functionName": { - "name": "array_dataslot_t_string_storage", - "nativeSrc": "4451:31:18", - "nodeType": "YulIdentifier", - "src": "4451:31:18" - }, - "nativeSrc": "4451:37:18", - "nodeType": "YulFunctionCall", - "src": "4451:37:18" - }, - "variables": [ - { - "name": "dstPtr", - "nativeSrc": "4441:6:18", - "nodeType": "YulTypedName", - "src": "4441:6:18", - "type": "" - } - ] - }, + "name": "mask", + "nativeSrc": "4517:4:18", + "nodeType": "YulIdentifier", + "src": "4517:4:18" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "4513:3:18", + "nodeType": "YulIdentifier", + "src": "4513:3:18" + }, + "nativeSrc": "4513:9:18", + "nodeType": "YulFunctionCall", + "src": "4513:9:18" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4502:3:18", + "nodeType": "YulIdentifier", + "src": "4502:3:18" + }, + "nativeSrc": "4502:21:18", + "nodeType": "YulFunctionCall", + "src": "4502:21:18" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "4493:5:18", + "nodeType": "YulIdentifier", + "src": "4493:5:18" + } + ] + }, + { + "nativeSrc": "4532:40:18", + "nodeType": "YulAssignment", + "src": "4532:40:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "4545:5:18", + "nodeType": "YulIdentifier", + "src": "4545:5:18" + }, + { + "arguments": [ { - "nativeSrc": "4501:10:18", - "nodeType": "YulVariableDeclaration", - "src": "4501:10:18", - "value": { - "kind": "number", - "nativeSrc": "4510:1:18", - "nodeType": "YulLiteral", - "src": "4510:1:18", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nativeSrc": "4505:1:18", - "nodeType": "YulTypedName", - "src": "4505:1:18", - "type": "" - } - ] + "name": "toInsert", + "nativeSrc": "4556:8:18", + "nodeType": "YulIdentifier", + "src": "4556:8:18" }, { - "body": { - "nativeSrc": "4569:163:18", - "nodeType": "YulBlock", - "src": "4569:163:18", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "dstPtr", - "nativeSrc": "4594:6:18", - "nodeType": "YulIdentifier", - "src": "4594:6:18" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "4612:3:18", - "nodeType": "YulIdentifier", - "src": "4612:3:18" - }, - { - "name": "srcOffset", - "nativeSrc": "4617:9:18", - "nodeType": "YulIdentifier", - "src": "4617:9:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4608:3:18", - "nodeType": "YulIdentifier", - "src": "4608:3:18" - }, - "nativeSrc": "4608:19:18", - "nodeType": "YulFunctionCall", - "src": "4608:19:18" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "4602:5:18", - "nodeType": "YulIdentifier", - "src": "4602:5:18" - }, - "nativeSrc": "4602:26:18", - "nodeType": "YulFunctionCall", - "src": "4602:26:18" - } - ], - "functionName": { - "name": "sstore", - "nativeSrc": "4587:6:18", - "nodeType": "YulIdentifier", - "src": "4587:6:18" - }, - "nativeSrc": "4587:42:18", - "nodeType": "YulFunctionCall", - "src": "4587:42:18" - }, - "nativeSrc": "4587:42:18", - "nodeType": "YulExpressionStatement", - "src": "4587:42:18" - }, - { - "nativeSrc": "4646:24:18", - "nodeType": "YulAssignment", - "src": "4646:24:18", - "value": { - "arguments": [ - { - "name": "dstPtr", - "nativeSrc": "4660:6:18", - "nodeType": "YulIdentifier", - "src": "4660:6:18" - }, - { - "kind": "number", - "nativeSrc": "4668:1:18", - "nodeType": "YulLiteral", - "src": "4668:1:18", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4656:3:18", - "nodeType": "YulIdentifier", - "src": "4656:3:18" - }, - "nativeSrc": "4656:14:18", - "nodeType": "YulFunctionCall", - "src": "4656:14:18" - }, - "variableNames": [ - { - "name": "dstPtr", - "nativeSrc": "4646:6:18", - "nodeType": "YulIdentifier", - "src": "4646:6:18" - } - ] - }, - { - "nativeSrc": "4687:31:18", - "nodeType": "YulAssignment", - "src": "4687:31:18", - "value": { - "arguments": [ - { - "name": "srcOffset", - "nativeSrc": "4704:9:18", - "nodeType": "YulIdentifier", - "src": "4704:9:18" - }, - { - "kind": "number", - "nativeSrc": "4715:2:18", - "nodeType": "YulLiteral", - "src": "4715:2:18", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4700:3:18", - "nodeType": "YulIdentifier", - "src": "4700:3:18" - }, - "nativeSrc": "4700:18:18", - "nodeType": "YulFunctionCall", - "src": "4700:18:18" - }, - "variableNames": [ - { - "name": "srcOffset", - "nativeSrc": "4687:9:18", - "nodeType": "YulIdentifier", - "src": "4687:9:18" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nativeSrc": "4535:1:18", - "nodeType": "YulIdentifier", - "src": "4535:1:18" - }, - { - "name": "loopEnd", - "nativeSrc": "4538:7:18", - "nodeType": "YulIdentifier", - "src": "4538:7:18" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "4532:2:18", - "nodeType": "YulIdentifier", - "src": "4532:2:18" - }, - "nativeSrc": "4532:14:18", - "nodeType": "YulFunctionCall", - "src": "4532:14:18" - }, - "nativeSrc": "4524:208:18", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "4547:21:18", - "nodeType": "YulBlock", - "src": "4547:21:18", - "statements": [ - { - "nativeSrc": "4549:17:18", - "nodeType": "YulAssignment", - "src": "4549:17:18", - "value": { - "arguments": [ - { - "name": "i", - "nativeSrc": "4558:1:18", - "nodeType": "YulIdentifier", - "src": "4558:1:18" - }, - { - "kind": "number", - "nativeSrc": "4561:4:18", - "nodeType": "YulLiteral", - "src": "4561:4:18", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4554:3:18", - "nodeType": "YulIdentifier", - "src": "4554:3:18" - }, - "nativeSrc": "4554:12:18", - "nodeType": "YulFunctionCall", - "src": "4554:12:18" - }, - "variableNames": [ - { - "name": "i", - "nativeSrc": "4549:1:18", - "nodeType": "YulIdentifier", - "src": "4549:1:18" - } - ] - } - ] - }, - "pre": { - "nativeSrc": "4528:3:18", - "nodeType": "YulBlock", - "src": "4528:3:18", - "statements": [] - }, - "src": "4524:208:18" - }, - { - "body": { - "nativeSrc": "4768:156:18", - "nodeType": "YulBlock", - "src": "4768:156:18", - "statements": [ - { - "nativeSrc": "4786:43:18", - "nodeType": "YulVariableDeclaration", - "src": "4786:43:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "4813:3:18", - "nodeType": "YulIdentifier", - "src": "4813:3:18" - }, - { - "name": "srcOffset", - "nativeSrc": "4818:9:18", - "nodeType": "YulIdentifier", - "src": "4818:9:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4809:3:18", - "nodeType": "YulIdentifier", - "src": "4809:3:18" - }, - "nativeSrc": "4809:19:18", - "nodeType": "YulFunctionCall", - "src": "4809:19:18" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "4803:5:18", - "nodeType": "YulIdentifier", - "src": "4803:5:18" - }, - "nativeSrc": "4803:26:18", - "nodeType": "YulFunctionCall", - "src": "4803:26:18" - }, - "variables": [ - { - "name": "lastValue", - "nativeSrc": "4790:9:18", - "nodeType": "YulTypedName", - "src": "4790:9:18", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "dstPtr", - "nativeSrc": "4853:6:18", - "nodeType": "YulIdentifier", - "src": "4853:6:18" - }, - { - "arguments": [ - { - "name": "lastValue", - "nativeSrc": "4880:9:18", - "nodeType": "YulIdentifier", - "src": "4880:9:18" - }, - { - "arguments": [ - { - "name": "newLen", - "nativeSrc": "4895:6:18", - "nodeType": "YulIdentifier", - "src": "4895:6:18" - }, - { - "kind": "number", - "nativeSrc": "4903:4:18", - "nodeType": "YulLiteral", - "src": "4903:4:18", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "4891:3:18", - "nodeType": "YulIdentifier", - "src": "4891:3:18" - }, - "nativeSrc": "4891:17:18", - "nodeType": "YulFunctionCall", - "src": "4891:17:18" - } - ], - "functionName": { - "name": "mask_bytes_dynamic", - "nativeSrc": "4861:18:18", - "nodeType": "YulIdentifier", - "src": "4861:18:18" - }, - "nativeSrc": "4861:48:18", - "nodeType": "YulFunctionCall", - "src": "4861:48:18" - } - ], - "functionName": { - "name": "sstore", - "nativeSrc": "4846:6:18", - "nodeType": "YulIdentifier", - "src": "4846:6:18" - }, - "nativeSrc": "4846:64:18", - "nodeType": "YulFunctionCall", - "src": "4846:64:18" - }, - "nativeSrc": "4846:64:18", - "nodeType": "YulExpressionStatement", - "src": "4846:64:18" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "loopEnd", - "nativeSrc": "4751:7:18", - "nodeType": "YulIdentifier", - "src": "4751:7:18" - }, - { - "name": "newLen", - "nativeSrc": "4760:6:18", - "nodeType": "YulIdentifier", - "src": "4760:6:18" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "4748:2:18", - "nodeType": "YulIdentifier", - "src": "4748:2:18" - }, - "nativeSrc": "4748:19:18", - "nodeType": "YulFunctionCall", - "src": "4748:19:18" - }, - "nativeSrc": "4745:179:18", - "nodeType": "YulIf", - "src": "4745:179:18" - }, - { - "expression": { - "arguments": [ - { - "name": "slot", - "nativeSrc": "4944:4:18", - "nodeType": "YulIdentifier", - "src": "4944:4:18" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "newLen", - "nativeSrc": "4958:6:18", - "nodeType": "YulIdentifier", - "src": "4958:6:18" - }, - { - "kind": "number", - "nativeSrc": "4966:1:18", - "nodeType": "YulLiteral", - "src": "4966:1:18", - "type": "", - "value": "2" - } - ], - "functionName": { - "name": "mul", - "nativeSrc": "4954:3:18", - "nodeType": "YulIdentifier", - "src": "4954:3:18" - }, - "nativeSrc": "4954:14:18", - "nodeType": "YulFunctionCall", - "src": "4954:14:18" - }, - { - "kind": "number", - "nativeSrc": "4970:1:18", - "nodeType": "YulLiteral", - "src": "4970:1:18", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4950:3:18", - "nodeType": "YulIdentifier", - "src": "4950:3:18" - }, - "nativeSrc": "4950:22:18", - "nodeType": "YulFunctionCall", - "src": "4950:22:18" - } - ], - "functionName": { - "name": "sstore", - "nativeSrc": "4937:6:18", - "nodeType": "YulIdentifier", - "src": "4937:6:18" - }, - "nativeSrc": "4937:36:18", - "nodeType": "YulFunctionCall", - "src": "4937:36:18" - }, - "nativeSrc": "4937:36:18", - "nodeType": "YulExpressionStatement", - "src": "4937:36:18" - } - ] - }, - "nativeSrc": "4365:618:18", - "nodeType": "YulCase", - "src": "4365:618:18", - "value": { - "kind": "number", - "nativeSrc": "4370:1:18", - "nodeType": "YulLiteral", - "src": "4370:1:18", - "type": "", - "value": "1" - } - }, - { - "body": { - "nativeSrc": "5000:222:18", - "nodeType": "YulBlock", - "src": "5000:222:18", - "statements": [ - { - "nativeSrc": "5014:14:18", - "nodeType": "YulVariableDeclaration", - "src": "5014:14:18", - "value": { - "kind": "number", - "nativeSrc": "5027:1:18", - "nodeType": "YulLiteral", - "src": "5027:1:18", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "value", - "nativeSrc": "5018:5:18", - "nodeType": "YulTypedName", - "src": "5018:5:18", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "5051:67:18", - "nodeType": "YulBlock", - "src": "5051:67:18", - "statements": [ - { - "nativeSrc": "5069:35:18", - "nodeType": "YulAssignment", - "src": "5069:35:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "5088:3:18", - "nodeType": "YulIdentifier", - "src": "5088:3:18" - }, - { - "name": "srcOffset", - "nativeSrc": "5093:9:18", - "nodeType": "YulIdentifier", - "src": "5093:9:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5084:3:18", - "nodeType": "YulIdentifier", - "src": "5084:3:18" - }, - "nativeSrc": "5084:19:18", - "nodeType": "YulFunctionCall", - "src": "5084:19:18" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "5078:5:18", - "nodeType": "YulIdentifier", - "src": "5078:5:18" - }, - "nativeSrc": "5078:26:18", - "nodeType": "YulFunctionCall", - "src": "5078:26:18" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "5069:5:18", - "nodeType": "YulIdentifier", - "src": "5069:5:18" - } - ] - } - ] - }, - "condition": { - "name": "newLen", - "nativeSrc": "5044:6:18", - "nodeType": "YulIdentifier", - "src": "5044:6:18" - }, - "nativeSrc": "5041:77:18", - "nodeType": "YulIf", - "src": "5041:77:18" - }, - { - "expression": { - "arguments": [ - { - "name": "slot", - "nativeSrc": "5138:4:18", - "nodeType": "YulIdentifier", - "src": "5138:4:18" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "5197:5:18", - "nodeType": "YulIdentifier", - "src": "5197:5:18" - }, - { - "name": "newLen", - "nativeSrc": "5204:6:18", - "nodeType": "YulIdentifier", - "src": "5204:6:18" - } - ], - "functionName": { - "name": "extract_used_part_and_set_length_of_short_byte_array", - "nativeSrc": "5144:52:18", - "nodeType": "YulIdentifier", - "src": "5144:52:18" - }, - "nativeSrc": "5144:67:18", - "nodeType": "YulFunctionCall", - "src": "5144:67:18" - } - ], - "functionName": { - "name": "sstore", - "nativeSrc": "5131:6:18", - "nodeType": "YulIdentifier", - "src": "5131:6:18" - }, - "nativeSrc": "5131:81:18", - "nodeType": "YulFunctionCall", - "src": "5131:81:18" - }, - "nativeSrc": "5131:81:18", - "nodeType": "YulExpressionStatement", - "src": "5131:81:18" + "name": "mask", + "nativeSrc": "4566:4:18", + "nodeType": "YulIdentifier", + "src": "4566:4:18" } - ] - }, - "nativeSrc": "4992:230:18", - "nodeType": "YulCase", - "src": "4992:230:18", - "value": "default" - } - ], - "expression": { - "arguments": [ - { - "name": "newLen", - "nativeSrc": "4345:6:18", - "nodeType": "YulIdentifier", - "src": "4345:6:18" - }, - { - "kind": "number", - "nativeSrc": "4353:2:18", - "nodeType": "YulLiteral", - "src": "4353:2:18", - "type": "", - "value": "31" + ], + "functionName": { + "name": "and", + "nativeSrc": "4552:3:18", + "nodeType": "YulIdentifier", + "src": "4552:3:18" + }, + "nativeSrc": "4552:19:18", + "nodeType": "YulFunctionCall", + "src": "4552:19:18" } ], "functionName": { - "name": "gt", - "nativeSrc": "4342:2:18", + "name": "or", + "nativeSrc": "4542:2:18", "nodeType": "YulIdentifier", - "src": "4342:2:18" + "src": "4542:2:18" }, - "nativeSrc": "4342:14:18", + "nativeSrc": "4542:30:18", "nodeType": "YulFunctionCall", - "src": "4342:14:18" + "src": "4542:30:18" }, - "nativeSrc": "4335:887:18", - "nodeType": "YulSwitch", - "src": "4335:887:18" + "variableNames": [ + { + "name": "result", + "nativeSrc": "4532:6:18", + "nodeType": "YulIdentifier", + "src": "4532:6:18" + } + ] } ] }, - "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", - "nativeSrc": "3833:1395:18", + "name": "update_byte_slice_dynamic32", + "nativeSrc": "4185:393:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "slot", - "nativeSrc": "3914:4:18", + "name": "value", + "nativeSrc": "4222:5:18", "nodeType": "YulTypedName", - "src": "3914:4:18", + "src": "4222:5:18", "type": "" }, { - "name": "src", - "nativeSrc": "3920:3:18", + "name": "shiftBytes", + "nativeSrc": "4229:10:18", "nodeType": "YulTypedName", - "src": "3920:3:18", - "type": "" - } - ], - "src": "3833:1395:18" - } - ] - }, - "contents": "{\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\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 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}\n", - "id": 18, - "language": "Yul", - "name": "#utility.yul" - } - ], - "linkReferences": {}, - "object": "608060405260006004553480156200001657600080fd5b506040518060200160405280600081525062000038816200005560201b60201c565b506200004e6000801b336200006a60201b60201c565b5062000542565b80600290816200006691906200045b565b5050565b60006200007e83836200016e60201b60201c565b620001635760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620000ff620001d960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001905062000168565b600090505b92915050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200026357607f821691505b6020821081036200027957620002786200021b565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620002e37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002a4565b620002ef8683620002a4565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200033c62000336620003308462000307565b62000311565b62000307565b9050919050565b6000819050919050565b62000358836200031b565b62000370620003678262000343565b848454620002b1565b825550505050565b600090565b6200038762000378565b620003948184846200034d565b505050565b5b81811015620003bc57620003b06000826200037d565b6001810190506200039a565b5050565b601f8211156200040b57620003d5816200027f565b620003e08462000294565b81016020851015620003f0578190505b62000408620003ff8562000294565b83018262000399565b50505b505050565b600082821c905092915050565b6000620004306000198460080262000410565b1980831691505092915050565b60006200044b83836200041d565b9150826002028217905092915050565b6200046682620001e1565b67ffffffffffffffff811115620004825762000481620001ec565b5b6200048e82546200024a565b6200049b828285620003c0565b600060209050601f831160018114620004d35760008415620004be578287015190505b620004ca85826200043d565b8655506200053a565b601f198416620004e3866200027f565b60005b828110156200050d57848901518255600182019150602085019450602081019050620004e6565b868310156200052d578489015162000529601f8916826200041d565b8355505b6001600288020188555050505b505050505050565b61338280620005526000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c80634e1273f4116100b8578063a22cb4651161007c578063a22cb4651461035d578063c5afac6614610379578063d547741f146103a9578063e985e9c5146103c5578063f242432a146103f5578063f5298aca1461041157610136565b80634e1273f4146102a557806361bc221a146102d5578063731133e9146102f357806391d148541461030f578063a217fddf1461033f57610136565b806324c20a34116100ff57806324c20a34146102175780632eb2c2d6146102355780632f2ff15d1461025157806336568abe1461026d5780633cad9b0d1461028957610136565b8062fdd58e1461013b57806301ffc9a71461016b5780630e89341c1461019b5780631c4ce135146101cb578063248a9ca3146101e7575b600080fd5b61015560048036038101906101509190611eb9565b61042d565b6040516101629190611f08565b60405180910390f35b61018560048036038101906101809190611f7b565b610487565b6040516101929190611fc3565b60405180910390f35b6101b560048036038101906101b09190611fde565b61048e565b6040516101c2919061209b565b60405180910390f35b6101e560048036038101906101e091906121f2565b6104d4565b005b61020160048036038101906101fc9190612284565b610573565b60405161020e91906122c0565b60405180910390f35b61021f610593565b60405161022c91906122c0565b60405180910390f35b61024f600480360381019061024a9190612444565b6105b7565b005b61026b60048036038101906102669190612513565b61065f565b005b61028760048036038101906102829190612513565b610681565b005b6102a3600480360381019061029e9190612553565b6106fc565b005b6102bf60048036038101906102ba919061265f565b61079e565b6040516102cc9190612795565b60405180910390f35b6102dd6108a7565b6040516102ea9190611f08565b60405180910390f35b61030d600480360381019061030891906127b7565b6108b1565b005b61032960048036038101906103249190612513565b610970565b6040516103369190611fc3565b60405180910390f35b6103476109db565b60405161035491906122c0565b60405180910390f35b61037760048036038101906103729190612866565b6109e2565b005b610393600480360381019061038e91906128a6565b6109f8565b6040516103a0919061209b565b60405180910390f35b6103c360048036038101906103be9190612513565b610a4c565b005b6103df60048036038101906103da9190612915565b610a6e565b6040516103ec9190611fc3565b60405180910390f35b61040f600480360381019061040a9190612955565b610b02565b005b61042b600480360381019061042691906129ec565b610baa565b005b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000919050565b60608161049a81610c88565b600560008481526020019081526020016000206040516020016104bd9190612bda565b604051602081830303815290604052915050919050565b7f18d9ff454de989bd126b06bd404b47ede75f9e65543e94e8d212f89d7dcbb87c6104fe81610cd1565b8160066000858152602001908152602001600020908161051e9190612d9e565b50823373ffffffffffffffffffffffffffffffffffffffff167fee5e19404a9c880f5e862aeeedfa8f4b4b427864327c17888eb6a34d549e5a5584604051610566919061209b565b60405180910390a3505050565b600060036000838152602001908152602001600020600101549050919050565b7f18d9ff454de989bd126b06bd404b47ede75f9e65543e94e8d212f89d7dcbb87c81565b60006105c1610ce5565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561060657506106048682610a6e565b155b1561064a5780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610641929190612e7f565b60405180910390fd5b6106578686868686610ced565b505050505050565b61066882610573565b61067181610cd1565b61067b8383610de5565b50505050565b610689610ce5565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146106ed576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106f78282610ed7565b505050565b80600560006004548152602001908152602001600020908161071e9190612d9e565b5061073d33600454600160405180602001604052806000815250610fca565b6004543373ffffffffffffffffffffffffffffffffffffffff167fc65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c1660405160405180910390a36004600081548092919061079690612ed7565b919050555050565b606081518351146107ea57815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016107e1929190612f1f565b60405180910390fd5b6000835167ffffffffffffffff811115610807576108066120c7565b5b6040519080825280602002602001820160405280156108355781602001602082028036833780820191505090505b50905060005b845181101561089c5761087261085a828761106390919063ffffffff16565b61086d838761107790919063ffffffff16565b61042d565b82828151811061088557610884612f48565b5b60200260200101818152505080600101905061083b565b508091505092915050565b6000600454905090565b826108bb81610c88565b60006108c7868661042d565b111561090c5784846040517f788d2556000000000000000000000000000000000000000000000000000000008152600401610903929190612f77565b60405180910390fd5b6109198585600185610fca565b838573ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f60016040516109619190612fdb565b60405180910390a35050505050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b6109f46109ed610ce5565b838361108b565b5050565b606082610a0481610c88565b60066000868152602001908152602001600020610a20856111fb565b84604051602001610a3393929190613073565b6040516020818303038152906040529150509392505050565b610a5582610573565b610a5e81610cd1565b610a688383610ed7565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000610b0c610ce5565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610b515750610b4f8682610a6e565b155b15610b955780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610b8c929190612e7f565b60405180910390fd5b610ba286868686866112c9565b505050505050565b81610bb481610c88565b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610c265783836040517f8626cc03000000000000000000000000000000000000000000000000000000008152600401610c1d929190612f77565b60405180910390fd5b610c32848460016113d4565b828473ffffffffffffffffffffffffffffffffffffffff167f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a6001604051610c7a9190612fdb565b60405180910390a350505050565b6004548110610cce57806040517fc80a970c000000000000000000000000000000000000000000000000000000008152600401610cc59190611f08565b60405180910390fd5b50565b610ce281610cdd610ce5565b61147b565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610d5f5760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610d5691906130d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610dd15760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610dc891906130d0565b60405180910390fd5b610dde85858585856114cc565b5050505050565b6000610df18383610970565b610ecc5760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610e69610ce5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610ed1565b600090505b92915050565b6000610ee38383610970565b15610fbf5760006003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610f5c610ce5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050610fc4565b600090505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361103c5760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161103391906130d0565b60405180910390fd5b600080611049858561157e565b9150915061105b6000878484876114cc565b505050505050565b600060208202602084010151905092915050565b600060208202602084010151905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110fd5760006040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016110f491906130d0565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516111ee9190611fc3565b60405180910390a3505050565b60606000600161120a846115ae565b01905060008167ffffffffffffffff811115611229576112286120c7565b5b6040519080825280601f01601f19166020018201604052801561125b5781602001600182028036833780820191505090505b509050600082602001820190505b6001156112be578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816112b2576112b16130eb565b5b04945060008503611269575b819350505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361133b5760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161133291906130d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036113ad5760006040517f01a835140000000000000000000000000000000000000000000000000000000081526004016113a491906130d0565b60405180910390fd5b6000806113ba858561157e565b915091506113cb87878484876114cc565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114465760006040517f01a8351400000000000000000000000000000000000000000000000000000000815260040161143d91906130d0565b60405180910390fd5b600080611453848461157e565b915091506114748560008484604051806020016040528060008152506114cc565b5050505050565b6114858282610970565b6114c85780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016114bf92919061311a565b60405180910390fd5b5050565b6114d885858585611701565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611577576000611516610ce5565b9050600184510361156657600061153760008661107790919063ffffffff16565b9050600061154f60008661107790919063ffffffff16565b905061155f838989858589611aa9565b5050611575565b611574818787878787611c5d565b5b505b5050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061160c577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611602576116016130eb565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611649576d04ee2d6d415b85acef8100000000838161163f5761163e6130eb565b5b0492506020810190505b662386f26fc10000831061167857662386f26fc10000838161166e5761166d6130eb565b5b0492506010810190505b6305f5e10083106116a1576305f5e1008381611697576116966130eb565b5b0492506008810190505b61271083106116c65761271083816116bc576116bb6130eb565b5b0492506004810190505b606483106116e957606483816116df576116de6130eb565b5b0492506002810190505b600a83106116f8576001810190505b80915050919050565b805182511461174b57815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401611742929190612f1f565b60405180910390fd5b6000611755610ce5565b905060005b8351811015611964576000611778828661107790919063ffffffff16565b9050600061178f838661107790919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146118bc57600080600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561186457888183856040517f03dee4c500000000000000000000000000000000000000000000000000000000815260040161185b9493929190613143565b60405180910390fd5b81810360008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611957578060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461194f9190613188565b925050819055505b505080600101905061175a565b506001835103611a2357600061198460008561107790919063ffffffff16565b9050600061199c60008561107790919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611a14929190612f1f565b60405180910390a45050611aa2565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611a999291906131bc565b60405180910390a45b5050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611c55578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611b0a959493929190613248565b6020604051808303816000875af1925050508015611b4657506040513d601f19601f82011682018060405250810190611b4391906132b7565b60015b611bca573d8060008114611b76576040519150601f19603f3d011682016040523d82523d6000602084013e611b7b565b606091505b506000815103611bc257846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611bb991906130d0565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611c5357846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611c4a91906130d0565b60405180910390fd5b505b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611e09578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611cbe9594939291906132e4565b6020604051808303816000875af1925050508015611cfa57506040513d601f19601f82011682018060405250810190611cf791906132b7565b60015b611d7e573d8060008114611d2a576040519150601f19603f3d011682016040523d82523d6000602084013e611d2f565b606091505b506000815103611d7657846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611d6d91906130d0565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611e0757846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611dfe91906130d0565b60405180910390fd5b505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611e5082611e25565b9050919050565b611e6081611e45565b8114611e6b57600080fd5b50565b600081359050611e7d81611e57565b92915050565b6000819050919050565b611e9681611e83565b8114611ea157600080fd5b50565b600081359050611eb381611e8d565b92915050565b60008060408385031215611ed057611ecf611e1b565b5b6000611ede85828601611e6e565b9250506020611eef85828601611ea4565b9150509250929050565b611f0281611e83565b82525050565b6000602082019050611f1d6000830184611ef9565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611f5881611f23565b8114611f6357600080fd5b50565b600081359050611f7581611f4f565b92915050565b600060208284031215611f9157611f90611e1b565b5b6000611f9f84828501611f66565b91505092915050565b60008115159050919050565b611fbd81611fa8565b82525050565b6000602082019050611fd86000830184611fb4565b92915050565b600060208284031215611ff457611ff3611e1b565b5b600061200284828501611ea4565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561204557808201518184015260208101905061202a565b60008484015250505050565b6000601f19601f8301169050919050565b600061206d8261200b565b6120778185612016565b9350612087818560208601612027565b61209081612051565b840191505092915050565b600060208201905081810360008301526120b58184612062565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6120ff82612051565b810181811067ffffffffffffffff8211171561211e5761211d6120c7565b5b80604052505050565b6000612131611e11565b905061213d82826120f6565b919050565b600067ffffffffffffffff82111561215d5761215c6120c7565b5b61216682612051565b9050602081019050919050565b82818337600083830152505050565b600061219561219084612142565b612127565b9050828152602081018484840111156121b1576121b06120c2565b5b6121bc848285612173565b509392505050565b600082601f8301126121d9576121d86120bd565b5b81356121e9848260208601612182565b91505092915050565b6000806040838503121561220957612208611e1b565b5b600061221785828601611ea4565b925050602083013567ffffffffffffffff81111561223857612237611e20565b5b612244858286016121c4565b9150509250929050565b6000819050919050565b6122618161224e565b811461226c57600080fd5b50565b60008135905061227e81612258565b92915050565b60006020828403121561229a57612299611e1b565b5b60006122a88482850161226f565b91505092915050565b6122ba8161224e565b82525050565b60006020820190506122d560008301846122b1565b92915050565b600067ffffffffffffffff8211156122f6576122f56120c7565b5b602082029050602081019050919050565b600080fd5b600061231f61231a846122db565b612127565b9050808382526020820190506020840283018581111561234257612341612307565b5b835b8181101561236b57806123578882611ea4565b845260208401935050602081019050612344565b5050509392505050565b600082601f83011261238a576123896120bd565b5b813561239a84826020860161230c565b91505092915050565b600067ffffffffffffffff8211156123be576123bd6120c7565b5b6123c782612051565b9050602081019050919050565b60006123e76123e2846123a3565b612127565b905082815260208101848484011115612403576124026120c2565b5b61240e848285612173565b509392505050565b600082601f83011261242b5761242a6120bd565b5b813561243b8482602086016123d4565b91505092915050565b600080600080600060a086880312156124605761245f611e1b565b5b600061246e88828901611e6e565b955050602061247f88828901611e6e565b945050604086013567ffffffffffffffff8111156124a05761249f611e20565b5b6124ac88828901612375565b935050606086013567ffffffffffffffff8111156124cd576124cc611e20565b5b6124d988828901612375565b925050608086013567ffffffffffffffff8111156124fa576124f9611e20565b5b61250688828901612416565b9150509295509295909350565b6000806040838503121561252a57612529611e1b565b5b60006125388582860161226f565b925050602061254985828601611e6e565b9150509250929050565b60006020828403121561256957612568611e1b565b5b600082013567ffffffffffffffff81111561258757612586611e20565b5b612593848285016121c4565b91505092915050565b600067ffffffffffffffff8211156125b7576125b66120c7565b5b602082029050602081019050919050565b60006125db6125d68461259c565b612127565b905080838252602082019050602084028301858111156125fe576125fd612307565b5b835b8181101561262757806126138882611e6e565b845260208401935050602081019050612600565b5050509392505050565b600082601f830112612646576126456120bd565b5b81356126568482602086016125c8565b91505092915050565b6000806040838503121561267657612675611e1b565b5b600083013567ffffffffffffffff81111561269457612693611e20565b5b6126a085828601612631565b925050602083013567ffffffffffffffff8111156126c1576126c0611e20565b5b6126cd85828601612375565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61270c81611e83565b82525050565b600061271e8383612703565b60208301905092915050565b6000602082019050919050565b6000612742826126d7565b61274c81856126e2565b9350612757836126f3565b8060005b8381101561278857815161276f8882612712565b975061277a8361272a565b92505060018101905061275b565b5085935050505092915050565b600060208201905081810360008301526127af8184612737565b905092915050565b600080600080608085870312156127d1576127d0611e1b565b5b60006127df87828801611e6e565b94505060206127f087828801611ea4565b935050604061280187828801611ea4565b925050606085013567ffffffffffffffff81111561282257612821611e20565b5b61282e87828801612416565b91505092959194509250565b61284381611fa8565b811461284e57600080fd5b50565b6000813590506128608161283a565b92915050565b6000806040838503121561287d5761287c611e1b565b5b600061288b85828601611e6e565b925050602061289c85828601612851565b9150509250929050565b6000806000606084860312156128bf576128be611e1b565b5b60006128cd86828701611ea4565b93505060206128de86828701611ea4565b925050604084013567ffffffffffffffff8111156128ff576128fe611e20565b5b61290b868287016121c4565b9150509250925092565b6000806040838503121561292c5761292b611e1b565b5b600061293a85828601611e6e565b925050602061294b85828601611e6e565b9150509250929050565b600080600080600060a0868803121561297157612970611e1b565b5b600061297f88828901611e6e565b955050602061299088828901611e6e565b94505060406129a188828901611ea4565b93505060606129b288828901611ea4565b925050608086013567ffffffffffffffff8111156129d3576129d2611e20565b5b6129df88828901612416565b9150509295509295909350565b600080600060608486031215612a0557612a04611e1b565b5b6000612a1386828701611e6e565b9350506020612a2486828701611ea4565b9250506040612a3586828701611ea4565b9150509250925092565b600081905092915050565b7f697066733a2f2f00000000000000000000000000000000000000000000000000600082015250565b6000612a80600783612a3f565b9150612a8b82612a4a565b600782019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612add57607f821691505b602082108103612af057612aef612a96565b5b50919050565b60008190508160005260206000209050919050565b60008154612b1881612ac5565b612b228186612a3f565b94506001821660008114612b3d5760018114612b5257612b85565b60ff1983168652811515820286019350612b85565b612b5b85612af6565b60005b83811015612b7d57815481890152600182019150602081019050612b5e565b838801955050505b50505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b6000612bc4600583612a3f565b9150612bcf82612b8e565b600582019050919050565b6000612be582612a73565b9150612bf18284612b0b565b9150612bfc82612bb7565b915081905092915050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612c547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612c17565b612c5e8683612c17565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612c9b612c96612c9184611e83565b612c76565b611e83565b9050919050565b6000819050919050565b612cb583612c80565b612cc9612cc182612ca2565b848454612c24565b825550505050565b600090565b612cde612cd1565b612ce9818484612cac565b505050565b5b81811015612d0d57612d02600082612cd6565b600181019050612cef565b5050565b601f821115612d5257612d2381612af6565b612d2c84612c07565b81016020851015612d3b578190505b612d4f612d4785612c07565b830182612cee565b50505b505050565b600082821c905092915050565b6000612d7560001984600802612d57565b1980831691505092915050565b6000612d8e8383612d64565b9150826002028217905092915050565b612da78261200b565b67ffffffffffffffff811115612dc057612dbf6120c7565b5b612dca8254612ac5565b612dd5828285612d11565b600060209050601f831160018114612e085760008415612df6578287015190505b612e008582612d82565b865550612e68565b601f198416612e1686612af6565b60005b82811015612e3e57848901518255600182019150602085019450602081019050612e19565b86831015612e5b5784890151612e57601f891682612d64565b8355505b6001600288020188555050505b505050505050565b612e7981611e45565b82525050565b6000604082019050612e946000830185612e70565b612ea16020830184612e70565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ee282611e83565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f1457612f13612ea8565b5b600182019050919050565b6000604082019050612f346000830185611ef9565b612f416020830184611ef9565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050612f8c6000830185612e70565b612f996020830184611ef9565b9392505050565b6000819050919050565b6000612fc5612fc0612fbb84612fa0565b612c76565b611e83565b9050919050565b612fd581612faa565b82525050565b6000602082019050612ff06000830184612fcc565b92915050565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b600061302c600183612a3f565b915061303782612ff6565b600182019050919050565b600061304d8261200b565b6130578185612a3f565b9350613067818560208601612027565b80840191505092915050565b600061307e82612a73565b915061308a8286612b0b565b91506130958261301f565b91506130a18285613042565b91506130ac8261301f565b91506130b88284613042565b91506130c382612bb7565b9150819050949350505050565b60006020820190506130e56000830184612e70565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600060408201905061312f6000830185612e70565b61313c60208301846122b1565b9392505050565b60006080820190506131586000830187612e70565b6131656020830186611ef9565b6131726040830185611ef9565b61317f6060830184611ef9565b95945050505050565b600061319382611e83565b915061319e83611e83565b92508282019050808211156131b6576131b5612ea8565b5b92915050565b600060408201905081810360008301526131d68185612737565b905081810360208301526131ea8184612737565b90509392505050565b600081519050919050565b600082825260208201905092915050565b600061321a826131f3565b61322481856131fe565b9350613234818560208601612027565b61323d81612051565b840191505092915050565b600060a08201905061325d6000830188612e70565b61326a6020830187612e70565b6132776040830186611ef9565b6132846060830185611ef9565b8181036080830152613296818461320f565b90509695505050505050565b6000815190506132b181611f4f565b92915050565b6000602082840312156132cd576132cc611e1b565b5b60006132db848285016132a2565b91505092915050565b600060a0820190506132f96000830188612e70565b6133066020830187612e70565b81810360408301526133188186612737565b9050818103606083015261332c8185612737565b90508181036080830152613340818461320f565b9050969550505050505056fea2646970667358221220294f8401608e8b44e40d642ddeddde899f8a456400db1a2f81df9ef8d59242d564736f6c63430008180033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 PUSH1 0x4 SSTORE CALLVALUE DUP1 ISZERO PUSH3 0x16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH3 0x38 DUP2 PUSH3 0x55 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH3 0x4E PUSH1 0x0 DUP1 SHL CALLER PUSH3 0x6A PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH3 0x542 JUMP JUMPDEST DUP1 PUSH1 0x2 SWAP1 DUP2 PUSH3 0x66 SWAP2 SWAP1 PUSH3 0x45B JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x7E DUP4 DUP4 PUSH3 0x16E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH3 0x163 JUMPI PUSH1 0x1 PUSH1 0x3 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 PUSH3 0xFF PUSH3 0x1D9 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 PUSH3 0x168 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 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 PUSH3 0x263 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x279 JUMPI PUSH3 0x278 PUSH3 0x21B 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 PUSH3 0x2E3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH3 0x2A4 JUMP JUMPDEST PUSH3 0x2EF DUP7 DUP4 PUSH3 0x2A4 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 PUSH3 0x33C PUSH3 0x336 PUSH3 0x330 DUP5 PUSH3 0x307 JUMP JUMPDEST PUSH3 0x311 JUMP JUMPDEST PUSH3 0x307 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH3 0x358 DUP4 PUSH3 0x31B JUMP JUMPDEST PUSH3 0x370 PUSH3 0x367 DUP3 PUSH3 0x343 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH3 0x2B1 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH3 0x387 PUSH3 0x378 JUMP JUMPDEST PUSH3 0x394 DUP2 DUP5 DUP5 PUSH3 0x34D JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x3BC JUMPI PUSH3 0x3B0 PUSH1 0x0 DUP3 PUSH3 0x37D JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH3 0x39A JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x40B JUMPI PUSH3 0x3D5 DUP2 PUSH3 0x27F JUMP JUMPDEST PUSH3 0x3E0 DUP5 PUSH3 0x294 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH3 0x3F0 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH3 0x408 PUSH3 0x3FF DUP6 PUSH3 0x294 JUMP JUMPDEST DUP4 ADD DUP3 PUSH3 0x399 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 PUSH3 0x430 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH3 0x410 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0x44B DUP4 DUP4 PUSH3 0x41D JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0x466 DUP3 PUSH3 0x1E1 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH3 0x482 JUMPI PUSH3 0x481 PUSH3 0x1EC JUMP JUMPDEST JUMPDEST PUSH3 0x48E DUP3 SLOAD PUSH3 0x24A JUMP JUMPDEST PUSH3 0x49B DUP3 DUP3 DUP6 PUSH3 0x3C0 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x4D3 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x4BE JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH3 0x4CA DUP6 DUP3 PUSH3 0x43D JUMP JUMPDEST DUP7 SSTORE POP PUSH3 0x53A JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH3 0x4E3 DUP7 PUSH3 0x27F JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x50D 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 PUSH3 0x4E6 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH3 0x52D JUMPI DUP5 DUP10 ADD MLOAD PUSH3 0x529 PUSH1 0x1F DUP10 AND DUP3 PUSH3 0x41D 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 0x3382 DUP1 PUSH3 0x552 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x136 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4E1273F4 GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x35D JUMPI DUP1 PUSH4 0xC5AFAC66 EQ PUSH2 0x379 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x3A9 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x3C5 JUMPI DUP1 PUSH4 0xF242432A EQ PUSH2 0x3F5 JUMPI DUP1 PUSH4 0xF5298ACA EQ PUSH2 0x411 JUMPI PUSH2 0x136 JUMP JUMPDEST DUP1 PUSH4 0x4E1273F4 EQ PUSH2 0x2A5 JUMPI DUP1 PUSH4 0x61BC221A EQ PUSH2 0x2D5 JUMPI DUP1 PUSH4 0x731133E9 EQ PUSH2 0x2F3 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x30F JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x33F JUMPI PUSH2 0x136 JUMP JUMPDEST DUP1 PUSH4 0x24C20A34 GT PUSH2 0xFF JUMPI DUP1 PUSH4 0x24C20A34 EQ PUSH2 0x217 JUMPI DUP1 PUSH4 0x2EB2C2D6 EQ PUSH2 0x235 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x251 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x26D JUMPI DUP1 PUSH4 0x3CAD9B0D EQ PUSH2 0x289 JUMPI PUSH2 0x136 JUMP JUMPDEST DUP1 PUSH3 0xFDD58E EQ PUSH2 0x13B JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x16B JUMPI DUP1 PUSH4 0xE89341C EQ PUSH2 0x19B JUMPI DUP1 PUSH4 0x1C4CE135 EQ PUSH2 0x1CB JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x1E7 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x155 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x150 SWAP2 SWAP1 PUSH2 0x1EB9 JUMP JUMPDEST PUSH2 0x42D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x162 SWAP2 SWAP1 PUSH2 0x1F08 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x185 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x180 SWAP2 SWAP1 PUSH2 0x1F7B JUMP JUMPDEST PUSH2 0x487 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x192 SWAP2 SWAP1 PUSH2 0x1FC3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1B0 SWAP2 SWAP1 PUSH2 0x1FDE JUMP JUMPDEST PUSH2 0x48E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C2 SWAP2 SWAP1 PUSH2 0x209B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E0 SWAP2 SWAP1 PUSH2 0x21F2 JUMP JUMPDEST PUSH2 0x4D4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x201 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FC SWAP2 SWAP1 PUSH2 0x2284 JUMP JUMPDEST PUSH2 0x573 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20E SWAP2 SWAP1 PUSH2 0x22C0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x21F PUSH2 0x593 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x22C SWAP2 SWAP1 PUSH2 0x22C0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x24F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x24A SWAP2 SWAP1 PUSH2 0x2444 JUMP JUMPDEST PUSH2 0x5B7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x26B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x266 SWAP2 SWAP1 PUSH2 0x2513 JUMP JUMPDEST PUSH2 0x65F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x287 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x282 SWAP2 SWAP1 PUSH2 0x2513 JUMP JUMPDEST PUSH2 0x681 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2A3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29E SWAP2 SWAP1 PUSH2 0x2553 JUMP JUMPDEST PUSH2 0x6FC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2BF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2BA SWAP2 SWAP1 PUSH2 0x265F JUMP JUMPDEST PUSH2 0x79E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2CC SWAP2 SWAP1 PUSH2 0x2795 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2DD PUSH2 0x8A7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EA SWAP2 SWAP1 PUSH2 0x1F08 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x30D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x308 SWAP2 SWAP1 PUSH2 0x27B7 JUMP JUMPDEST PUSH2 0x8B1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x329 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x324 SWAP2 SWAP1 PUSH2 0x2513 JUMP JUMPDEST PUSH2 0x970 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x336 SWAP2 SWAP1 PUSH2 0x1FC3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x347 PUSH2 0x9DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x354 SWAP2 SWAP1 PUSH2 0x22C0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x377 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x372 SWAP2 SWAP1 PUSH2 0x2866 JUMP JUMPDEST PUSH2 0x9E2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x393 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x38E SWAP2 SWAP1 PUSH2 0x28A6 JUMP JUMPDEST PUSH2 0x9F8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3A0 SWAP2 SWAP1 PUSH2 0x209B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3C3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3BE SWAP2 SWAP1 PUSH2 0x2513 JUMP JUMPDEST PUSH2 0xA4C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3DF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3DA SWAP2 SWAP1 PUSH2 0x2915 JUMP JUMPDEST PUSH2 0xA6E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3EC SWAP2 SWAP1 PUSH2 0x1FC3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x40F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x40A SWAP2 SWAP1 PUSH2 0x2955 JUMP JUMPDEST PUSH2 0xB02 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x42B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x426 SWAP2 SWAP1 PUSH2 0x29EC JUMP JUMPDEST PUSH2 0xBAA JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0x49A DUP2 PUSH2 0xC88 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x4BD SWAP2 SWAP1 PUSH2 0x2BDA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x18D9FF454DE989BD126B06BD404B47EDE75F9E65543E94E8D212F89D7DCBB87C PUSH2 0x4FE DUP2 PUSH2 0xCD1 JUMP JUMPDEST DUP2 PUSH1 0x6 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP2 PUSH2 0x51E SWAP2 SWAP1 PUSH2 0x2D9E JUMP JUMPDEST POP DUP3 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xEE5E19404A9C880F5E862AEEEDFA8F4B4B427864327C17888EB6A34D549E5A55 DUP5 PUSH1 0x40 MLOAD PUSH2 0x566 SWAP2 SWAP1 PUSH2 0x209B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x18D9FF454DE989BD126B06BD404B47EDE75F9E65543E94E8D212F89D7DCBB87C DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C1 PUSH2 0xCE5 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x606 JUMPI POP PUSH2 0x604 DUP7 DUP3 PUSH2 0xA6E JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x64A JUMPI DUP1 DUP7 PUSH1 0x40 MLOAD PUSH32 0xE237D92200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x641 SWAP3 SWAP2 SWAP1 PUSH2 0x2E7F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x657 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0xCED JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x668 DUP3 PUSH2 0x573 JUMP JUMPDEST PUSH2 0x671 DUP2 PUSH2 0xCD1 JUMP JUMPDEST PUSH2 0x67B DUP4 DUP4 PUSH2 0xDE5 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x689 PUSH2 0xCE5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x6ED JUMPI PUSH1 0x40 MLOAD PUSH32 0x6697B23200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6F7 DUP3 DUP3 PUSH2 0xED7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP1 PUSH1 0x5 PUSH1 0x0 PUSH1 0x4 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP2 PUSH2 0x71E SWAP2 SWAP1 PUSH2 0x2D9E JUMP JUMPDEST POP PUSH2 0x73D CALLER PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xFCA JUMP JUMPDEST PUSH1 0x4 SLOAD CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC65A3F767206D2FDCEDE0B094A4840E01C0DD0BE1888B5BA800346EAA0123C16 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x4 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x796 SWAP1 PUSH2 0x2ED7 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0x7EA JUMPI DUP2 MLOAD DUP4 MLOAD PUSH1 0x40 MLOAD PUSH32 0x5B05999100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7E1 SWAP3 SWAP2 SWAP1 PUSH2 0x2F1F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x807 JUMPI PUSH2 0x806 PUSH2 0x20C7 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 0x835 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x89C JUMPI PUSH2 0x872 PUSH2 0x85A DUP3 DUP8 PUSH2 0x1063 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x86D DUP4 DUP8 PUSH2 0x1077 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x42D JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x885 JUMPI PUSH2 0x884 PUSH2 0x2F48 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x83B JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST DUP3 PUSH2 0x8BB DUP2 PUSH2 0xC88 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8C7 DUP7 DUP7 PUSH2 0x42D JUMP JUMPDEST GT ISZERO PUSH2 0x90C JUMPI DUP5 DUP5 PUSH1 0x40 MLOAD PUSH32 0x788D255600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x903 SWAP3 SWAP2 SWAP1 PUSH2 0x2F77 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x919 DUP6 DUP6 PUSH1 0x1 DUP6 PUSH2 0xFCA JUMP JUMPDEST DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4C209B5FC8AD50758F13E2E1088BA56A560DFF690A1C6FEF26394F4C03821C4F PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x961 SWAP2 SWAP1 PUSH2 0x2FDB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 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 SHL DUP2 JUMP JUMPDEST PUSH2 0x9F4 PUSH2 0x9ED PUSH2 0xCE5 JUMP JUMPDEST DUP4 DUP4 PUSH2 0x108B JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0xA04 DUP2 PUSH2 0xC88 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH2 0xA20 DUP6 PUSH2 0x11FB JUMP JUMPDEST DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xA33 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3073 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xA55 DUP3 PUSH2 0x573 JUMP JUMPDEST PUSH2 0xA5E DUP2 PUSH2 0xCD1 JUMP JUMPDEST PUSH2 0xA68 DUP4 DUP4 PUSH2 0xED7 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB0C PUSH2 0xCE5 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0xB51 JUMPI POP PUSH2 0xB4F DUP7 DUP3 PUSH2 0xA6E JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0xB95 JUMPI DUP1 DUP7 PUSH1 0x40 MLOAD PUSH32 0xE237D92200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB8C SWAP3 SWAP2 SWAP1 PUSH2 0x2E7F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBA2 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x12C9 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH2 0xBB4 DUP2 PUSH2 0xC88 JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xC26 JUMPI DUP4 DUP4 PUSH1 0x40 MLOAD PUSH32 0x8626CC0300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1D SWAP3 SWAP2 SWAP1 PUSH2 0x2F77 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC32 DUP5 DUP5 PUSH1 0x1 PUSH2 0x13D4 JUMP JUMPDEST DUP3 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x49995E5DD6158CF69AD3E9777C46755A1A826A446C6416992167462DAD033B2A PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0xC7A SWAP2 SWAP1 PUSH2 0x2FDB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 LT PUSH2 0xCCE JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0xC80A970C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCC5 SWAP2 SWAP1 PUSH2 0x1F08 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0xCE2 DUP2 PUSH2 0xCDD PUSH2 0xCE5 JUMP JUMPDEST PUSH2 0x147B JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xD5F JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD56 SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xDD1 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xDC8 SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xDDE DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0x14CC JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDF1 DUP4 DUP4 PUSH2 0x970 JUMP JUMPDEST PUSH2 0xECC JUMPI PUSH1 0x1 PUSH1 0x3 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 0xE69 PUSH2 0xCE5 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 0xED1 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEE3 DUP4 DUP4 PUSH2 0x970 JUMP JUMPDEST ISZERO PUSH2 0xFBF JUMPI PUSH1 0x0 PUSH1 0x3 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 0xF5C PUSH2 0xCE5 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 0xFC4 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x103C JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1033 SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1049 DUP6 DUP6 PUSH2 0x157E JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x105B PUSH1 0x0 DUP8 DUP5 DUP5 DUP8 PUSH2 0x14CC JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MUL PUSH1 0x20 DUP5 ADD ADD MLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MUL PUSH1 0x20 DUP5 ADD ADD MLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x10FD JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xCED3E10000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10F4 SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 DUP4 PUSH1 0x40 MLOAD PUSH2 0x11EE SWAP2 SWAP1 PUSH2 0x1FC3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH2 0x120A DUP5 PUSH2 0x15AE JUMP JUMPDEST ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1229 JUMPI PUSH2 0x1228 PUSH2 0x20C7 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x125B JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x20 ADD DUP3 ADD SWAP1 POP JUMPDEST PUSH1 0x1 ISZERO PUSH2 0x12BE JUMPI DUP1 DUP1 PUSH1 0x1 SWAP1 SUB SWAP2 POP POP PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DUP2 PUSH2 0x12B2 JUMPI PUSH2 0x12B1 PUSH2 0x30EB JUMP JUMPDEST JUMPDEST DIV SWAP5 POP PUSH1 0x0 DUP6 SUB PUSH2 0x1269 JUMPI JUMPDEST DUP2 SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x133B JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1332 SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x13AD JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x13A4 SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x13BA DUP6 DUP6 PUSH2 0x157E JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x13CB DUP8 DUP8 DUP5 DUP5 DUP8 PUSH2 0x14CC JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1446 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x143D SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1453 DUP5 DUP5 PUSH2 0x157E JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x1474 DUP6 PUSH1 0x0 DUP5 DUP5 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x14CC JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1485 DUP3 DUP3 PUSH2 0x970 JUMP JUMPDEST PUSH2 0x14C8 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH32 0xE2517D3F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14BF SWAP3 SWAP2 SWAP1 PUSH2 0x311A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x14D8 DUP6 DUP6 DUP6 DUP6 PUSH2 0x1701 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1577 JUMPI PUSH1 0x0 PUSH2 0x1516 PUSH2 0xCE5 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP5 MLOAD SUB PUSH2 0x1566 JUMPI PUSH1 0x0 PUSH2 0x1537 PUSH1 0x0 DUP7 PUSH2 0x1077 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x154F PUSH1 0x0 DUP7 PUSH2 0x1077 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH2 0x155F DUP4 DUP10 DUP10 DUP6 DUP6 DUP10 PUSH2 0x1AA9 JUMP JUMPDEST POP POP PUSH2 0x1575 JUMP JUMPDEST PUSH2 0x1574 DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x1C5D JUMP JUMPDEST JUMPDEST POP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1 DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH1 0x1 DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD PUSH1 0x40 MSTORE SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x160C JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DUP2 PUSH2 0x1602 JUMPI PUSH2 0x1601 PUSH2 0x30EB JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x40 DUP2 ADD SWAP1 POP JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x1649 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DUP2 PUSH2 0x163F JUMPI PUSH2 0x163E PUSH2 0x30EB JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x20 DUP2 ADD SWAP1 POP JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x1678 JUMPI PUSH7 0x2386F26FC10000 DUP4 DUP2 PUSH2 0x166E JUMPI PUSH2 0x166D PUSH2 0x30EB JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x10 DUP2 ADD SWAP1 POP JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x16A1 JUMPI PUSH4 0x5F5E100 DUP4 DUP2 PUSH2 0x1697 JUMPI PUSH2 0x1696 PUSH2 0x30EB JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x8 DUP2 ADD SWAP1 POP JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x16C6 JUMPI PUSH2 0x2710 DUP4 DUP2 PUSH2 0x16BC JUMPI PUSH2 0x16BB PUSH2 0x30EB JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x4 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x16E9 JUMPI PUSH1 0x64 DUP4 DUP2 PUSH2 0x16DF JUMPI PUSH2 0x16DE PUSH2 0x30EB JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x2 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x16F8 JUMPI PUSH1 0x1 DUP2 ADD SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD DUP3 MLOAD EQ PUSH2 0x174B JUMPI DUP2 MLOAD DUP2 MLOAD PUSH1 0x40 MLOAD PUSH32 0x5B05999100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1742 SWAP3 SWAP2 SWAP1 PUSH2 0x2F1F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1755 PUSH2 0xCE5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x1964 JUMPI PUSH1 0x0 PUSH2 0x1778 DUP3 DUP7 PUSH2 0x1077 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x178F DUP4 DUP7 PUSH2 0x1077 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x18BC JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x1864 JUMPI DUP9 DUP2 DUP4 DUP6 PUSH1 0x40 MLOAD PUSH32 0x3DEE4C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x185B SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3143 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1957 JUMPI DUP1 PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x194F SWAP2 SWAP1 PUSH2 0x3188 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x175A JUMP JUMPDEST POP PUSH1 0x1 DUP4 MLOAD SUB PUSH2 0x1A23 JUMPI PUSH1 0x0 PUSH2 0x1984 PUSH1 0x0 DUP6 PUSH2 0x1077 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x199C PUSH1 0x0 DUP6 PUSH2 0x1077 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x1A14 SWAP3 SWAP2 SWAP1 PUSH2 0x2F1F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP PUSH2 0x1AA2 JUMP JUMPDEST DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4A39DC06D4C0DBC64B70AF90FD698A233A518AA5D07E595D983B8C0526C8F7FB DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1A99 SWAP3 SWAP2 SWAP1 PUSH2 0x31BC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x1C55 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF23A6E61 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B0A SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3248 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1B46 JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1B43 SWAP2 SWAP1 PUSH2 0x32B7 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1BCA JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1B76 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1B7B JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x1BC2 JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BB9 SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x1C53 JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C4A SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x1E09 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xBC197C81 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CBE SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x32E4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1CFA JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1CF7 SWAP2 SWAP1 PUSH2 0x32B7 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1D7E JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1D2A JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1D2F JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x1D76 JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D6D SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x1E07 JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1DFE SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E50 DUP3 PUSH2 0x1E25 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1E60 DUP2 PUSH2 0x1E45 JUMP JUMPDEST DUP2 EQ PUSH2 0x1E6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1E7D DUP2 PUSH2 0x1E57 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1E96 DUP2 PUSH2 0x1E83 JUMP JUMPDEST DUP2 EQ PUSH2 0x1EA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1EB3 DUP2 PUSH2 0x1E8D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1ED0 JUMPI PUSH2 0x1ECF PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1EDE DUP6 DUP3 DUP7 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1EEF DUP6 DUP3 DUP7 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1F02 DUP2 PUSH2 0x1E83 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1F1D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1EF9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1F58 DUP2 PUSH2 0x1F23 JUMP JUMPDEST DUP2 EQ PUSH2 0x1F63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1F75 DUP2 PUSH2 0x1F4F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F91 JUMPI PUSH2 0x1F90 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1F9F DUP5 DUP3 DUP6 ADD PUSH2 0x1F66 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1FBD DUP2 PUSH2 0x1FA8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1FD8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1FB4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FF4 JUMPI PUSH2 0x1FF3 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2002 DUP5 DUP3 DUP6 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2045 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x202A JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x206D DUP3 PUSH2 0x200B JUMP JUMPDEST PUSH2 0x2077 DUP2 DUP6 PUSH2 0x2016 JUMP JUMPDEST SWAP4 POP PUSH2 0x2087 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2027 JUMP JUMPDEST PUSH2 0x2090 DUP2 PUSH2 0x2051 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 0x20B5 DUP2 DUP5 PUSH2 0x2062 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x20FF DUP3 PUSH2 0x2051 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x211E JUMPI PUSH2 0x211D PUSH2 0x20C7 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2131 PUSH2 0x1E11 JUMP JUMPDEST SWAP1 POP PUSH2 0x213D DUP3 DUP3 PUSH2 0x20F6 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x215D JUMPI PUSH2 0x215C PUSH2 0x20C7 JUMP JUMPDEST JUMPDEST PUSH2 0x2166 DUP3 PUSH2 0x2051 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 0x2195 PUSH2 0x2190 DUP5 PUSH2 0x2142 JUMP JUMPDEST PUSH2 0x2127 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x21B1 JUMPI PUSH2 0x21B0 PUSH2 0x20C2 JUMP JUMPDEST JUMPDEST PUSH2 0x21BC DUP5 DUP3 DUP6 PUSH2 0x2173 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x21D9 JUMPI PUSH2 0x21D8 PUSH2 0x20BD JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x21E9 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2182 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2209 JUMPI PUSH2 0x2208 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2217 DUP6 DUP3 DUP7 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2238 JUMPI PUSH2 0x2237 PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x2244 DUP6 DUP3 DUP7 ADD PUSH2 0x21C4 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2261 DUP2 PUSH2 0x224E JUMP JUMPDEST DUP2 EQ PUSH2 0x226C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x227E DUP2 PUSH2 0x2258 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x229A JUMPI PUSH2 0x2299 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x22A8 DUP5 DUP3 DUP6 ADD PUSH2 0x226F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x22BA DUP2 PUSH2 0x224E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x22D5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x22B1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x22F6 JUMPI PUSH2 0x22F5 PUSH2 0x20C7 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x231F PUSH2 0x231A DUP5 PUSH2 0x22DB JUMP JUMPDEST PUSH2 0x2127 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 0x2342 JUMPI PUSH2 0x2341 PUSH2 0x2307 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x236B JUMPI DUP1 PUSH2 0x2357 DUP9 DUP3 PUSH2 0x1EA4 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2344 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x238A JUMPI PUSH2 0x2389 PUSH2 0x20BD JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x239A DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x230C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x23BE JUMPI PUSH2 0x23BD PUSH2 0x20C7 JUMP JUMPDEST JUMPDEST PUSH2 0x23C7 DUP3 PUSH2 0x2051 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x23E7 PUSH2 0x23E2 DUP5 PUSH2 0x23A3 JUMP JUMPDEST PUSH2 0x2127 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2403 JUMPI PUSH2 0x2402 PUSH2 0x20C2 JUMP JUMPDEST JUMPDEST PUSH2 0x240E DUP5 DUP3 DUP6 PUSH2 0x2173 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x242B JUMPI PUSH2 0x242A PUSH2 0x20BD JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x243B DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x23D4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2460 JUMPI PUSH2 0x245F PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x246E DUP9 DUP3 DUP10 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x247F DUP9 DUP3 DUP10 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x24A0 JUMPI PUSH2 0x249F PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x24AC DUP9 DUP3 DUP10 ADD PUSH2 0x2375 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x24CD JUMPI PUSH2 0x24CC PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x24D9 DUP9 DUP3 DUP10 ADD PUSH2 0x2375 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x24FA JUMPI PUSH2 0x24F9 PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x2506 DUP9 DUP3 DUP10 ADD PUSH2 0x2416 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x252A JUMPI PUSH2 0x2529 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2538 DUP6 DUP3 DUP7 ADD PUSH2 0x226F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2549 DUP6 DUP3 DUP7 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2569 JUMPI PUSH2 0x2568 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2587 JUMPI PUSH2 0x2586 PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x2593 DUP5 DUP3 DUP6 ADD PUSH2 0x21C4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x25B7 JUMPI PUSH2 0x25B6 PUSH2 0x20C7 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x25DB PUSH2 0x25D6 DUP5 PUSH2 0x259C JUMP JUMPDEST PUSH2 0x2127 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 0x25FE JUMPI PUSH2 0x25FD PUSH2 0x2307 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2627 JUMPI DUP1 PUSH2 0x2613 DUP9 DUP3 PUSH2 0x1E6E JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2600 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2646 JUMPI PUSH2 0x2645 PUSH2 0x20BD JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2656 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x25C8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2676 JUMPI PUSH2 0x2675 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2694 JUMPI PUSH2 0x2693 PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x26A0 DUP6 DUP3 DUP7 ADD PUSH2 0x2631 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x26C1 JUMPI PUSH2 0x26C0 PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x26CD DUP6 DUP3 DUP7 ADD PUSH2 0x2375 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x270C DUP2 PUSH2 0x1E83 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x271E DUP4 DUP4 PUSH2 0x2703 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 0x2742 DUP3 PUSH2 0x26D7 JUMP JUMPDEST PUSH2 0x274C DUP2 DUP6 PUSH2 0x26E2 JUMP JUMPDEST SWAP4 POP PUSH2 0x2757 DUP4 PUSH2 0x26F3 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2788 JUMPI DUP2 MLOAD PUSH2 0x276F DUP9 DUP3 PUSH2 0x2712 JUMP JUMPDEST SWAP8 POP PUSH2 0x277A DUP4 PUSH2 0x272A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x275B JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x27AF DUP2 DUP5 PUSH2 0x2737 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x27D1 JUMPI PUSH2 0x27D0 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x27DF DUP8 DUP3 DUP9 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x27F0 DUP8 DUP3 DUP9 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x2801 DUP8 DUP3 DUP9 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2822 JUMPI PUSH2 0x2821 PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x282E DUP8 DUP3 DUP9 ADD PUSH2 0x2416 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH2 0x2843 DUP2 PUSH2 0x1FA8 JUMP JUMPDEST DUP2 EQ PUSH2 0x284E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2860 DUP2 PUSH2 0x283A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x287D JUMPI PUSH2 0x287C PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x288B DUP6 DUP3 DUP7 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x289C DUP6 DUP3 DUP7 ADD PUSH2 0x2851 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x28BF JUMPI PUSH2 0x28BE PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x28CD DUP7 DUP3 DUP8 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x28DE DUP7 DUP3 DUP8 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x28FF JUMPI PUSH2 0x28FE PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x290B DUP7 DUP3 DUP8 ADD PUSH2 0x21C4 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x292C JUMPI PUSH2 0x292B PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x293A DUP6 DUP3 DUP7 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x294B DUP6 DUP3 DUP7 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2971 JUMPI PUSH2 0x2970 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x297F DUP9 DUP3 DUP10 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x2990 DUP9 DUP3 DUP10 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x29A1 DUP9 DUP3 DUP10 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x29B2 DUP9 DUP3 DUP10 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x29D3 JUMPI PUSH2 0x29D2 PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x29DF DUP9 DUP3 DUP10 ADD PUSH2 0x2416 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2A05 JUMPI PUSH2 0x2A04 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2A13 DUP7 DUP3 DUP8 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x2A24 DUP7 DUP3 DUP8 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x2A35 DUP7 DUP3 DUP8 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x697066733A2F2F00000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A80 PUSH1 0x7 DUP4 PUSH2 0x2A3F JUMP JUMPDEST SWAP2 POP PUSH2 0x2A8B DUP3 PUSH2 0x2A4A JUMP JUMPDEST PUSH1 0x7 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x2ADD JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2AF0 JUMPI PUSH2 0x2AEF PUSH2 0x2A96 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 DUP2 SLOAD PUSH2 0x2B18 DUP2 PUSH2 0x2AC5 JUMP JUMPDEST PUSH2 0x2B22 DUP2 DUP7 PUSH2 0x2A3F JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0x2B3D JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x2B52 JUMPI PUSH2 0x2B85 JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE DUP2 ISZERO ISZERO DUP3 MUL DUP7 ADD SWAP4 POP PUSH2 0x2B85 JUMP JUMPDEST PUSH2 0x2B5B DUP6 PUSH2 0x2AF6 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2B7D JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2B5E JUMP JUMPDEST DUP4 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x2E6A736F6E000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2BC4 PUSH1 0x5 DUP4 PUSH2 0x2A3F JUMP JUMPDEST SWAP2 POP PUSH2 0x2BCF DUP3 PUSH2 0x2B8E JUMP JUMPDEST PUSH1 0x5 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2BE5 DUP3 PUSH2 0x2A73 JUMP JUMPDEST SWAP2 POP PUSH2 0x2BF1 DUP3 DUP5 PUSH2 0x2B0B JUMP JUMPDEST SWAP2 POP PUSH2 0x2BFC DUP3 PUSH2 0x2BB7 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP 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 0x2C54 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x2C17 JUMP JUMPDEST PUSH2 0x2C5E DUP7 DUP4 PUSH2 0x2C17 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C9B PUSH2 0x2C96 PUSH2 0x2C91 DUP5 PUSH2 0x1E83 JUMP JUMPDEST PUSH2 0x2C76 JUMP JUMPDEST PUSH2 0x1E83 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2CB5 DUP4 PUSH2 0x2C80 JUMP JUMPDEST PUSH2 0x2CC9 PUSH2 0x2CC1 DUP3 PUSH2 0x2CA2 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x2C24 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x2CDE PUSH2 0x2CD1 JUMP JUMPDEST PUSH2 0x2CE9 DUP2 DUP5 DUP5 PUSH2 0x2CAC JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2D0D JUMPI PUSH2 0x2D02 PUSH1 0x0 DUP3 PUSH2 0x2CD6 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x2CEF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x2D52 JUMPI PUSH2 0x2D23 DUP2 PUSH2 0x2AF6 JUMP JUMPDEST PUSH2 0x2D2C DUP5 PUSH2 0x2C07 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x2D3B JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x2D4F PUSH2 0x2D47 DUP6 PUSH2 0x2C07 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x2CEE 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 0x2D75 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x2D57 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D8E DUP4 DUP4 PUSH2 0x2D64 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2DA7 DUP3 PUSH2 0x200B JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2DC0 JUMPI PUSH2 0x2DBF PUSH2 0x20C7 JUMP JUMPDEST JUMPDEST PUSH2 0x2DCA DUP3 SLOAD PUSH2 0x2AC5 JUMP JUMPDEST PUSH2 0x2DD5 DUP3 DUP3 DUP6 PUSH2 0x2D11 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x2E08 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x2DF6 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x2E00 DUP6 DUP3 PUSH2 0x2D82 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x2E68 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x2E16 DUP7 PUSH2 0x2AF6 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2E3E 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 0x2E19 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x2E5B JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x2E57 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x2D64 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 0x2E79 DUP2 PUSH2 0x1E45 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2E94 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2E70 JUMP JUMPDEST PUSH2 0x2EA1 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2E70 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2EE2 DUP3 PUSH2 0x1E83 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x2F14 JUMPI PUSH2 0x2F13 PUSH2 0x2EA8 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2F34 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1EF9 JUMP JUMPDEST PUSH2 0x2F41 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1EF9 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2F8C PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2E70 JUMP JUMPDEST PUSH2 0x2F99 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1EF9 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FC5 PUSH2 0x2FC0 PUSH2 0x2FBB DUP5 PUSH2 0x2FA0 JUMP JUMPDEST PUSH2 0x2C76 JUMP JUMPDEST PUSH2 0x1E83 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2FD5 DUP2 PUSH2 0x2FAA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2FF0 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2FCC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x2F00000000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x302C PUSH1 0x1 DUP4 PUSH2 0x2A3F JUMP JUMPDEST SWAP2 POP PUSH2 0x3037 DUP3 PUSH2 0x2FF6 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x304D DUP3 PUSH2 0x200B JUMP JUMPDEST PUSH2 0x3057 DUP2 DUP6 PUSH2 0x2A3F JUMP JUMPDEST SWAP4 POP PUSH2 0x3067 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2027 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x307E DUP3 PUSH2 0x2A73 JUMP JUMPDEST SWAP2 POP PUSH2 0x308A DUP3 DUP7 PUSH2 0x2B0B JUMP JUMPDEST SWAP2 POP PUSH2 0x3095 DUP3 PUSH2 0x301F JUMP JUMPDEST SWAP2 POP PUSH2 0x30A1 DUP3 DUP6 PUSH2 0x3042 JUMP JUMPDEST SWAP2 POP PUSH2 0x30AC DUP3 PUSH2 0x301F JUMP JUMPDEST SWAP2 POP PUSH2 0x30B8 DUP3 DUP5 PUSH2 0x3042 JUMP JUMPDEST SWAP2 POP PUSH2 0x30C3 DUP3 PUSH2 0x2BB7 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x30E5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2E70 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x312F PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2E70 JUMP JUMPDEST PUSH2 0x313C PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x22B1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x3158 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x2E70 JUMP JUMPDEST PUSH2 0x3165 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1EF9 JUMP JUMPDEST PUSH2 0x3172 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x1EF9 JUMP JUMPDEST PUSH2 0x317F PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x1EF9 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3193 DUP3 PUSH2 0x1E83 JUMP JUMPDEST SWAP2 POP PUSH2 0x319E DUP4 PUSH2 0x1E83 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x31B6 JUMPI PUSH2 0x31B5 PUSH2 0x2EA8 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x31D6 DUP2 DUP6 PUSH2 0x2737 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x31EA DUP2 DUP5 PUSH2 0x2737 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 0x321A DUP3 PUSH2 0x31F3 JUMP JUMPDEST PUSH2 0x3224 DUP2 DUP6 PUSH2 0x31FE JUMP JUMPDEST SWAP4 POP PUSH2 0x3234 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2027 JUMP JUMPDEST PUSH2 0x323D DUP2 PUSH2 0x2051 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x325D PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x2E70 JUMP JUMPDEST PUSH2 0x326A PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2E70 JUMP JUMPDEST PUSH2 0x3277 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x1EF9 JUMP JUMPDEST PUSH2 0x3284 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x1EF9 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x3296 DUP2 DUP5 PUSH2 0x320F JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x32B1 DUP2 PUSH2 0x1F4F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x32CD JUMPI PUSH2 0x32CC PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x32DB DUP5 DUP3 DUP6 ADD PUSH2 0x32A2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x32F9 PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x2E70 JUMP JUMPDEST PUSH2 0x3306 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2E70 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x3318 DUP2 DUP7 PUSH2 0x2737 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x332C DUP2 DUP6 PUSH2 0x2737 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x3340 DUP2 DUP5 PUSH2 0x320F JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x29 0x4F DUP5 ADD PUSH1 0x8E DUP12 PREVRANDAO 0xE4 0xD PUSH5 0x2DDEDDDE89 SWAP16 DUP11 GASLIMIT PUSH5 0xDB1A2F81 0xDF SWAP15 0xF8 0xD5 SWAP3 TIMESTAMP 0xD5 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", - "sourceMap": "265:2624:15:-:0;;;354:1;330:25;;532:85;;;;;;;;;;1251:62:3;;;;;;;;;;;;1293:13;1301:4;1293:7;;;:13;;:::i;:::-;1251:62;568:42:15::1;2232:4:0;579:18:15::0;::::1;599:10;568;;;:42;;:::i;:::-;;265:2624:::0;;10282:86:3;10355:6;10348:4;:13;;;;;;:::i;:::-;;10282:86;:::o;6179:316:0:-;6256:4;6277:22;6285:4;6291:7;6277;;;:22;;:::i;:::-;6272:217;;6347:4;6315:6;:12;6322:4;6315:12;;;;;;;;;;;:20;;:29;6336:7;6315:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;6397:12;:10;;;:12;;:::i;:::-;6370:40;;6388:7;6370:40;;6382:4;6370:40;;;;;;;;;;6431:4;6424:11;;;;6272:217;6473:5;6466:12;;6179:316;;;;;:::o;2854:136::-;2931:4;2954:6;:12;2961:4;2954:12;;;;;;;;;;;:20;;:29;2975:7;2954:29;;;;;;;;;;;;;;;;;;;;;;;;;2947:36;;2854:136;;;;:::o;656:96:8:-;709:7;735:10;728:17;;656:96;:::o;7:99:18:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:180::-;160:77;157:1;150:88;257:4;254:1;247:15;281:4;278:1;271:15;298:180;346:77;343:1;336:88;443:4;440:1;433:15;467:4;464:1;457:15;484:320;528:6;565:1;559:4;555:12;545:22;;612:1;606:4;602:12;633:18;623:81;;689:4;681:6;677:17;667:27;;623:81;751:2;743:6;740:14;720:18;717:38;714:84;;770:18;;:::i;:::-;714:84;535:269;484:320;;;:::o;810:141::-;859:4;882:3;874:11;;905:3;902:1;895:14;939:4;936:1;926:18;918:26;;810:141;;;:::o;957:93::-;994:6;1041:2;1036;1029:5;1025:14;1021:23;1011:33;;957:93;;;:::o;1056:107::-;1100:8;1150:5;1144:4;1140:16;1119:37;;1056:107;;;;:::o;1169:393::-;1238:6;1288:1;1276:10;1272:18;1311:97;1341:66;1330:9;1311:97;:::i;:::-;1429:39;1459:8;1448:9;1429:39;:::i;:::-;1417:51;;1501:4;1497:9;1490:5;1486:21;1477:30;;1550:4;1540:8;1536:19;1529:5;1526:30;1516:40;;1245:317;;1169:393;;;;;:::o;1568:77::-;1605:7;1634:5;1623:16;;1568:77;;;:::o;1651:60::-;1679:3;1700:5;1693:12;;1651:60;;;:::o;1717:142::-;1767:9;1800:53;1818:34;1827:24;1845:5;1827:24;:::i;:::-;1818:34;:::i;:::-;1800:53;:::i;:::-;1787:66;;1717:142;;;:::o;1865:75::-;1908:3;1929:5;1922:12;;1865:75;;;:::o;1946:269::-;2056:39;2087:7;2056:39;:::i;:::-;2117:91;2166:41;2190:16;2166:41;:::i;:::-;2158:6;2151:4;2145:11;2117:91;:::i;:::-;2111:4;2104:105;2022:193;1946:269;;;:::o;2221:73::-;2266:3;2221:73;:::o;2300:189::-;2377:32;;:::i;:::-;2418:65;2476:6;2468;2462:4;2418:65;:::i;:::-;2353:136;2300:189;;:::o;2495:186::-;2555:120;2572:3;2565:5;2562:14;2555:120;;;2626:39;2663:1;2656:5;2626:39;:::i;:::-;2599:1;2592:5;2588:13;2579:22;;2555:120;;;2495:186;;:::o;2687:543::-;2788:2;2783:3;2780:11;2777:446;;;2822:38;2854:5;2822:38;:::i;:::-;2906:29;2924:10;2906:29;:::i;:::-;2896:8;2892:44;3089:2;3077:10;3074:18;3071:49;;;3110:8;3095:23;;3071:49;3133:80;3189:22;3207:3;3189:22;:::i;:::-;3179:8;3175:37;3162:11;3133:80;:::i;:::-;2792:431;;2777:446;2687:543;;;:::o;3236:117::-;3290:8;3340:5;3334:4;3330:16;3309:37;;3236:117;;;;:::o;3359:169::-;3403:6;3436:51;3484:1;3480:6;3472:5;3469:1;3465:13;3436:51;:::i;:::-;3432:56;3517:4;3511;3507:15;3497:25;;3410:118;3359:169;;;;:::o;3533:295::-;3609:4;3755:29;3780:3;3774:4;3755:29;:::i;:::-;3747:37;;3817:3;3814:1;3810:11;3804:4;3801:21;3793:29;;3533:295;;;;:::o;3833:1395::-;3950:37;3983:3;3950:37;:::i;:::-;4052:18;4044:6;4041:30;4038:56;;;4074:18;;:::i;:::-;4038:56;4118:38;4150:4;4144:11;4118:38;:::i;:::-;4203:67;4263:6;4255;4249:4;4203:67;:::i;:::-;4297:1;4321:4;4308:17;;4353:2;4345:6;4342:14;4370:1;4365:618;;;;5027:1;5044:6;5041:77;;;5093:9;5088:3;5084:19;5078:26;5069:35;;5041:77;5144:67;5204:6;5197:5;5144:67;:::i;:::-;5138:4;5131:81;5000:222;4335:887;;4365:618;4417:4;4413:9;4405:6;4401:22;4451:37;4483:4;4451:37;:::i;:::-;4510:1;4524:208;4538:7;4535:1;4532:14;4524:208;;;4617:9;4612:3;4608:19;4602:26;4594:6;4587:42;4668:1;4660:6;4656:14;4646:24;;4715:2;4704:9;4700:18;4687:31;;4561:4;4558:1;4554:12;4549:17;;4524:208;;;4760:6;4751:7;4748:19;4745:179;;;4818:9;4813:3;4809:19;4803:26;4861:48;4903:4;4895:6;4891:17;4880:9;4861:48;:::i;:::-;4853:6;4846:64;4768:156;4745:179;4970:1;4966;4958:6;4954:14;4950:22;4944:4;4937:36;4372:611;;;4335:887;;3925:1303;;;3833:1395;;:::o;265:2624:15:-;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": { - "@DEFAULT_ADMIN_ROLE_29": { - "entryPoint": 2523, - "id": 29, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@PROVIDER_ROLE_3540": { - "entryPoint": 1427, - "id": 3540, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@_asSingletonArrays_1565": { - "entryPoint": 5502, - "id": 1565, - "parameterSlots": 2, - "returnSlots": 2 - }, - "@_burn_1332": { - "entryPoint": 5076, - "id": 1332, - "parameterSlots": 3, - "returnSlots": 0 - }, - "@_checkRole_114": { - "entryPoint": 5243, - "id": 114, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@_checkRole_93": { - "entryPoint": 3281, - "id": 93, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_checkTokenId_3576": { - "entryPoint": 3208, - "id": 3576, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@_doSafeBatchTransferAcceptanceCheck_1549": { - "entryPoint": 7261, - "id": 1549, - "parameterSlots": 6, - "returnSlots": 0 - }, - "@_doSafeTransferAcceptanceCheck_1479": { - "entryPoint": 6825, - "id": 1479, - "parameterSlots": 6, - "returnSlots": 0 - }, - "@_grantRole_256": { - "entryPoint": 3557, - "id": 256, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@_mint_1241": { - "entryPoint": 4042, - "id": 1241, - "parameterSlots": 4, - "returnSlots": 0 - }, - "@_msgSender_1942": { - "entryPoint": 3301, - "id": 1942, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@_revokeRole_294": { - "entryPoint": 3799, - "id": 294, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@_safeBatchTransferFrom_1178": { - "entryPoint": 3309, - "id": 1178, - "parameterSlots": 5, - "returnSlots": 0 - }, - "@_safeTransferFrom_1123": { - "entryPoint": 4809, - "id": 1123, - "parameterSlots": 5, - "returnSlots": 0 - }, - "@_setApprovalForAll_1411": { - "entryPoint": 4235, - "id": 1411, - "parameterSlots": 3, - "returnSlots": 0 - }, - "@_updateWithAcceptanceCheck_1057": { - "entryPoint": 5324, - "id": 1057, - "parameterSlots": 5, - "returnSlots": 0 - }, - "@_update_981": { - "entryPoint": 5889, - "id": 981, - "parameterSlots": 4, - "returnSlots": 0 - }, - "@balanceOfBatch_705": { - "entryPoint": 1950, - "id": 705, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@balanceOf_635": { - "entryPoint": 1069, - "id": 635, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@burn_3702": { - "entryPoint": 2986, - "id": 3702, - "parameterSlots": 3, - "returnSlots": 0 - }, - "@counter_3594": { - "entryPoint": 2215, - "id": 3594, - "parameterSlots": 0, - "returnSlots": 1 - }, - "@getRoleAdmin_128": { - "entryPoint": 1395, - "id": 128, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@getScores_3737": { - "entryPoint": 2552, - "id": 3737, - "parameterSlots": 3, - "returnSlots": 1 - }, - "@grantRole_147": { - "entryPoint": 1631, - "id": 147, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@hasRole_80": { - "entryPoint": 2416, - "id": 80, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@isApprovedForAll_738": { - "entryPoint": 2670, - "id": 738, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@issue_3623": { - "entryPoint": 1788, - "id": 3623, - "parameterSlots": 1, - "returnSlots": 0 - }, - "@log10_3235": { - "entryPoint": 5550, - "id": 3235, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@mint_3665": { - "entryPoint": 2225, - "id": 3665, - "parameterSlots": 4, - "returnSlots": 0 - }, - "@renounceRole_189": { - "entryPoint": 1665, - "id": 189, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@revokeRole_166": { - "entryPoint": 2636, - "id": 166, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@safeBatchTransferFrom_828": { - "entryPoint": 1463, - "id": 828, - "parameterSlots": 5, - "returnSlots": 0 - }, - "@safeTransferFrom_782": { - "entryPoint": 2818, - "id": 782, - "parameterSlots": 5, - "returnSlots": 0 - }, - "@setApprovalForAll_721": { - "entryPoint": 2530, - "id": 721, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@supportsInterface_3773": { - "entryPoint": 1159, - "id": 3773, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@toString_2138": { - "entryPoint": 4603, - "id": 2138, - "parameterSlots": 1, - "returnSlots": 1 - }, - "@unsafeMemoryAccess_1916": { - "entryPoint": 4215, - "id": 1916, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@unsafeMemoryAccess_1929": { - "entryPoint": 4195, - "id": 1929, - "parameterSlots": 2, - "returnSlots": 1 - }, - "@updateScores_3762": { - "entryPoint": 1236, - "id": 3762, - "parameterSlots": 2, - "returnSlots": 0 - }, - "@uri_3797": { - "entryPoint": 1166, - "id": 3797, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr": { - "entryPoint": 9672, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr": { - "entryPoint": 8972, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_decode_available_length_t_bytes_memory_ptr": { - "entryPoint": 9172, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_decode_available_length_t_string_memory_ptr": { - "entryPoint": 8578, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_decode_t_address": { - "entryPoint": 7790, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_array$_t_address_$dyn_memory_ptr": { - "entryPoint": 9777, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_array$_t_uint256_$dyn_memory_ptr": { - "entryPoint": 9077, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_bool": { - "entryPoint": 10321, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_bytes32": { - "entryPoint": 8815, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_bytes4": { - "entryPoint": 8038, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_bytes4_fromMemory": { - "entryPoint": 12962, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_bytes_memory_ptr": { - "entryPoint": 9238, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_string_memory_ptr": { - "entryPoint": 8644, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_t_uint256": { - "entryPoint": 7844, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_addresst_address": { - "entryPoint": 10517, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr": { - "entryPoint": 9284, - "id": null, - "parameterSlots": 2, - "returnSlots": 5 - }, - "abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr": { - "entryPoint": 10581, - "id": null, - "parameterSlots": 2, - "returnSlots": 5 - }, - "abi_decode_tuple_t_addresst_bool": { - "entryPoint": 10342, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_addresst_uint256": { - "entryPoint": 7865, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_addresst_uint256t_uint256": { - "entryPoint": 10732, - "id": null, - "parameterSlots": 2, - "returnSlots": 3 - }, - "abi_decode_tuple_t_addresst_uint256t_uint256t_bytes_memory_ptr": { - "entryPoint": 10167, - "id": null, - "parameterSlots": 2, - "returnSlots": 4 - }, - "abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr": { - "entryPoint": 9823, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_bytes32": { - "entryPoint": 8836, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_bytes32t_address": { - "entryPoint": 9491, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_bytes4": { - "entryPoint": 8059, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_bytes4_fromMemory": { - "entryPoint": 12983, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_string_memory_ptr": { - "entryPoint": 9555, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_uint256": { - "entryPoint": 8158, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_uint256t_string_memory_ptr": { - "entryPoint": 8690, - "id": null, - "parameterSlots": 2, - "returnSlots": 2 - }, - "abi_decode_tuple_t_uint256t_uint256t_string_memory_ptr": { - "entryPoint": 10406, - "id": null, - "parameterSlots": 2, - "returnSlots": 3 - }, - "abi_encodeUpdatedPos_t_uint256_to_t_uint256": { - "entryPoint": 10002, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_t_address_to_t_address_fromStack": { - "entryPoint": 11888, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack": { - "entryPoint": 10039, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_t_bool_to_t_bool_fromStack": { - "entryPoint": 8116, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_bytes32_to_t_bytes32_fromStack": { - "entryPoint": 8881, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack": { - "entryPoint": 12815, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_t_rational_1_by_1_to_t_uint256_fromStack": { - "entryPoint": 12236, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { - "entryPoint": 8290, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { - "entryPoint": 12354, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { - "entryPoint": 11019, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { - "entryPoint": 10867, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { - "entryPoint": 11191, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { - "entryPoint": 12319, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_t_uint256_to_t_uint256": { - "entryPoint": 9987, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_uint256_to_t_uint256_fromStack": { - "entryPoint": 7929, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_tuple_packed_t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe_t_string_storage_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { - "entryPoint": 11226, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_packed_t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe_t_string_storage_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_t_string_memory_ptr_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_t_string_memory_ptr_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { - "entryPoint": 12403, - "id": null, - "parameterSlots": 4, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { - "entryPoint": 12496, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed": { - "entryPoint": 11903, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed": { - "entryPoint": 13028, - "id": null, - "parameterSlots": 6, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed": { - "entryPoint": 12872, - "id": null, - "parameterSlots": 6, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed": { - "entryPoint": 12570, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": { - "entryPoint": 12151, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_address_t_uint256_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256__fromStack_reversed": { - "entryPoint": 12611, - "id": null, - "parameterSlots": 5, - "returnSlots": 1 - }, - "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed": { - "entryPoint": 10133, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed": { - "entryPoint": 12732, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { - "entryPoint": 8131, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": { - "entryPoint": 8896, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_rational_1_by_1__to_t_uint256__fromStack_reversed": { - "entryPoint": 12251, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 8347, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { - "entryPoint": 7944, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed": { - "entryPoint": 12063, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "allocate_memory": { - "entryPoint": 8487, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "allocate_unbounded": { - "entryPoint": 7697, - "id": null, - "parameterSlots": 0, - "returnSlots": 1 - }, - "array_allocation_size_t_array$_t_address_$dyn_memory_ptr": { - "entryPoint": 9628, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr": { - "entryPoint": 8923, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "array_allocation_size_t_bytes_memory_ptr": { - "entryPoint": 9123, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "array_allocation_size_t_string_memory_ptr": { - "entryPoint": 8514, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr": { - "entryPoint": 9971, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "array_dataslot_t_string_storage": { - "entryPoint": 10998, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "array_length_t_array$_t_uint256_$dyn_memory_ptr": { - "entryPoint": 9943, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "array_length_t_bytes_memory_ptr": { - "entryPoint": 12787, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "array_length_t_string_memory_ptr": { - "entryPoint": 8203, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr": { - "entryPoint": 10026, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack": { - "entryPoint": 9954, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack": { - "entryPoint": 12798, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { - "entryPoint": 8214, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack": { - "entryPoint": 10815, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "checked_add_t_uint256": { - "entryPoint": 12680, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "clean_up_bytearray_end_slots_t_string_storage": { - "entryPoint": 11537, - "id": null, - "parameterSlots": 3, - "returnSlots": 0 - }, - "cleanup_t_address": { - "entryPoint": 7749, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_bool": { - "entryPoint": 8104, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_bytes32": { - "entryPoint": 8782, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_bytes4": { - "entryPoint": 7971, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_rational_1_by_1": { - "entryPoint": 12192, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_uint160": { - "entryPoint": 7717, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_uint256": { - "entryPoint": 7811, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "clear_storage_range_t_bytes1": { - "entryPoint": 11502, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "convert_t_rational_1_by_1_to_t_uint256": { - "entryPoint": 12202, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "convert_t_uint256_to_t_uint256": { - "entryPoint": 11392, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { - "entryPoint": 11678, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "copy_calldata_to_memory_with_cleanup": { - "entryPoint": 8563, - "id": null, - "parameterSlots": 3, - "returnSlots": 0 - }, - "copy_memory_to_memory_with_cleanup": { - "entryPoint": 8231, - "id": null, - "parameterSlots": 3, - "returnSlots": 0 - }, - "divide_by_32_ceil": { - "entryPoint": 11271, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "extract_byte_array_length": { - "entryPoint": 10949, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "extract_used_part_and_set_length_of_short_byte_array": { - "entryPoint": 11650, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "finalize_allocation": { - "entryPoint": 8438, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "identity": { - "entryPoint": 11382, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "increment_t_uint256": { - "entryPoint": 11991, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "mask_bytes_dynamic": { - "entryPoint": 11620, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "panic_error_0x11": { - "entryPoint": 11944, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "panic_error_0x12": { - "entryPoint": 12523, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "panic_error_0x22": { - "entryPoint": 10902, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "panic_error_0x32": { - "entryPoint": 12104, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "panic_error_0x41": { - "entryPoint": 8391, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "prepare_store_t_uint256": { - "entryPoint": 11426, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { - "entryPoint": 8381, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef": { - "entryPoint": 8967, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { - "entryPoint": 8386, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { - "entryPoint": 7712, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { - "entryPoint": 7707, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "round_up_to_mul_of_32": { - "entryPoint": 8273, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "shift_left_dynamic": { - "entryPoint": 11287, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "shift_right_unsigned_dynamic": { - "entryPoint": 11607, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "storage_set_to_zero_t_uint256": { - "entryPoint": 11478, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "store_literal_in_memory_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe": { - "entryPoint": 10826, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "store_literal_in_memory_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972": { - "entryPoint": 11150, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "store_literal_in_memory_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527": { - "entryPoint": 12278, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "update_byte_slice_dynamic32": { - "entryPoint": 11300, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "update_storage_value_t_uint256_to_t_uint256": { - "entryPoint": 11436, - "id": null, - "parameterSlots": 3, - "returnSlots": 0 - }, - "validator_revert_t_address": { - "entryPoint": 7767, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "validator_revert_t_bool": { - "entryPoint": 10298, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "validator_revert_t_bytes32": { - "entryPoint": 8792, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "validator_revert_t_bytes4": { - "entryPoint": 8015, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "validator_revert_t_uint256": { - "entryPoint": 7821, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "zero_value_for_split_t_uint256": { - "entryPoint": 11473, - "id": null, - "parameterSlots": 0, - "returnSlots": 1 - } - }, - "generatedSources": [ - { - "ast": { - "nativeSrc": "0:42145:18", - "nodeType": "YulBlock", - "src": "0:42145:18", - "statements": [ - { - "body": { - "nativeSrc": "47:35:18", - "nodeType": "YulBlock", - "src": "47:35:18", - "statements": [ - { - "nativeSrc": "57:19:18", - "nodeType": "YulAssignment", - "src": "57:19:18", - "value": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "73:2:18", - "nodeType": "YulLiteral", - "src": "73:2:18", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "67:5:18", - "nodeType": "YulIdentifier", - "src": "67:5:18" - }, - "nativeSrc": "67:9:18", - "nodeType": "YulFunctionCall", - "src": "67:9:18" - }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "57:6:18", - "nodeType": "YulIdentifier", - "src": "57:6:18" - } - ] - } - ] - }, - "name": "allocate_unbounded", - "nativeSrc": "7:75:18", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "memPtr", - "nativeSrc": "40:6:18", - "nodeType": "YulTypedName", - "src": "40:6:18", - "type": "" - } - ], - "src": "7:75:18" - }, - { - "body": { - "nativeSrc": "177:28:18", - "nodeType": "YulBlock", - "src": "177:28:18", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "194:1:18", - "nodeType": "YulLiteral", - "src": "194:1:18", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "197:1:18", - "nodeType": "YulLiteral", - "src": "197:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "187:6:18", - "nodeType": "YulIdentifier", - "src": "187:6:18" - }, - "nativeSrc": "187:12:18", - "nodeType": "YulFunctionCall", - "src": "187:12:18" - }, - "nativeSrc": "187:12:18", - "nodeType": "YulExpressionStatement", - "src": "187:12:18" - } - ] - }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "88:117:18", - "nodeType": "YulFunctionDefinition", - "src": "88:117:18" - }, - { - "body": { - "nativeSrc": "300:28:18", - "nodeType": "YulBlock", - "src": "300:28:18", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "317:1:18", - "nodeType": "YulLiteral", - "src": "317:1:18", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "320:1:18", - "nodeType": "YulLiteral", - "src": "320:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "310:6:18", - "nodeType": "YulIdentifier", - "src": "310:6:18" - }, - "nativeSrc": "310:12:18", - "nodeType": "YulFunctionCall", - "src": "310:12:18" - }, - "nativeSrc": "310:12:18", - "nodeType": "YulExpressionStatement", - "src": "310:12:18" - } - ] - }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "211:117:18", - "nodeType": "YulFunctionDefinition", - "src": "211:117:18" - }, - { - "body": { - "nativeSrc": "379:81:18", - "nodeType": "YulBlock", - "src": "379:81:18", - "statements": [ - { - "nativeSrc": "389:65:18", - "nodeType": "YulAssignment", - "src": "389:65:18", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "404:5:18", - "nodeType": "YulIdentifier", - "src": "404:5:18" - }, - { - "kind": "number", - "nativeSrc": "411:42:18", - "nodeType": "YulLiteral", - "src": "411:42:18", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "400:3:18", - "nodeType": "YulIdentifier", - "src": "400:3:18" - }, - "nativeSrc": "400:54:18", - "nodeType": "YulFunctionCall", - "src": "400:54:18" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "389:7:18", - "nodeType": "YulIdentifier", - "src": "389:7:18" - } - ] - } - ] - }, - "name": "cleanup_t_uint160", - "nativeSrc": "334:126:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "361:5:18", - "nodeType": "YulTypedName", - "src": "361:5:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "371:7:18", - "nodeType": "YulTypedName", - "src": "371:7:18", - "type": "" - } - ], - "src": "334:126:18" - }, - { - "body": { - "nativeSrc": "511:51:18", - "nodeType": "YulBlock", - "src": "511:51:18", - "statements": [ - { - "nativeSrc": "521:35:18", - "nodeType": "YulAssignment", - "src": "521:35:18", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "550:5:18", - "nodeType": "YulIdentifier", - "src": "550:5:18" - } - ], - "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "532:17:18", - "nodeType": "YulIdentifier", - "src": "532:17:18" - }, - "nativeSrc": "532:24:18", - "nodeType": "YulFunctionCall", - "src": "532:24:18" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "521:7:18", - "nodeType": "YulIdentifier", - "src": "521:7:18" - } - ] - } - ] - }, - "name": "cleanup_t_address", - "nativeSrc": "466:96:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "493:5:18", - "nodeType": "YulTypedName", - "src": "493:5:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "503:7:18", - "nodeType": "YulTypedName", - "src": "503:7:18", - "type": "" - } - ], - "src": "466:96:18" - }, - { - "body": { - "nativeSrc": "611:79:18", - "nodeType": "YulBlock", - "src": "611:79:18", - "statements": [ - { - "body": { - "nativeSrc": "668:16:18", - "nodeType": "YulBlock", - "src": "668:16:18", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "677:1:18", - "nodeType": "YulLiteral", - "src": "677:1:18", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "680:1:18", - "nodeType": "YulLiteral", - "src": "680:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "670:6:18", - "nodeType": "YulIdentifier", - "src": "670:6:18" - }, - "nativeSrc": "670:12:18", - "nodeType": "YulFunctionCall", - "src": "670:12:18" - }, - "nativeSrc": "670:12:18", - "nodeType": "YulExpressionStatement", - "src": "670:12:18" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "634:5:18", - "nodeType": "YulIdentifier", - "src": "634:5:18" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "659:5:18", - "nodeType": "YulIdentifier", - "src": "659:5:18" - } - ], - "functionName": { - "name": "cleanup_t_address", - "nativeSrc": "641:17:18", - "nodeType": "YulIdentifier", - "src": "641:17:18" - }, - "nativeSrc": "641:24:18", - "nodeType": "YulFunctionCall", - "src": "641:24:18" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "631:2:18", - "nodeType": "YulIdentifier", - "src": "631:2:18" - }, - "nativeSrc": "631:35:18", - "nodeType": "YulFunctionCall", - "src": "631:35:18" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "624:6:18", - "nodeType": "YulIdentifier", - "src": "624:6:18" - }, - "nativeSrc": "624:43:18", - "nodeType": "YulFunctionCall", - "src": "624:43:18" - }, - "nativeSrc": "621:63:18", - "nodeType": "YulIf", - "src": "621:63:18" - } - ] - }, - "name": "validator_revert_t_address", - "nativeSrc": "568:122:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "604:5:18", - "nodeType": "YulTypedName", - "src": "604:5:18", - "type": "" - } - ], - "src": "568:122:18" - }, - { - "body": { - "nativeSrc": "748:87:18", - "nodeType": "YulBlock", - "src": "748:87:18", - "statements": [ - { - "nativeSrc": "758:29:18", - "nodeType": "YulAssignment", - "src": "758:29:18", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "780:6:18", - "nodeType": "YulIdentifier", - "src": "780:6:18" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "767:12:18", - "nodeType": "YulIdentifier", - "src": "767:12:18" - }, - "nativeSrc": "767:20:18", - "nodeType": "YulFunctionCall", - "src": "767:20:18" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "758:5:18", - "nodeType": "YulIdentifier", - "src": "758:5:18" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "823:5:18", - "nodeType": "YulIdentifier", - "src": "823:5:18" - } - ], - "functionName": { - "name": "validator_revert_t_address", - "nativeSrc": "796:26:18", - "nodeType": "YulIdentifier", - "src": "796:26:18" - }, - "nativeSrc": "796:33:18", - "nodeType": "YulFunctionCall", - "src": "796:33:18" - }, - "nativeSrc": "796:33:18", - "nodeType": "YulExpressionStatement", - "src": "796:33:18" - } - ] - }, - "name": "abi_decode_t_address", - "nativeSrc": "696:139:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "726:6:18", - "nodeType": "YulTypedName", - "src": "726:6:18", - "type": "" - }, - { - "name": "end", - "nativeSrc": "734:3:18", - "nodeType": "YulTypedName", - "src": "734:3:18", + "src": "4229:10:18", + "type": "" + }, + { + "name": "toInsert", + "nativeSrc": "4241:8:18", + "nodeType": "YulTypedName", + "src": "4241:8:18", "type": "" } ], "returnVariables": [ { - "name": "value", - "nativeSrc": "742:5:18", + "name": "result", + "nativeSrc": "4254:6:18", "nodeType": "YulTypedName", - "src": "742:5:18", + "src": "4254:6:18", "type": "" } ], - "src": "696:139:18" + "src": "4185:393:18" }, { "body": { - "nativeSrc": "886:32:18", + "nativeSrc": "4629:32:18", "nodeType": "YulBlock", - "src": "886:32:18", + "src": "4629:32:18", "statements": [ { - "nativeSrc": "896:16:18", + "nativeSrc": "4639:16:18", "nodeType": "YulAssignment", - "src": "896:16:18", + "src": "4639:16:18", "value": { "name": "value", - "nativeSrc": "907:5:18", + "nativeSrc": "4650:5:18", "nodeType": "YulIdentifier", - "src": "907:5:18" + "src": "4650:5:18" }, "variableNames": [ { "name": "cleaned", - "nativeSrc": "896:7:18", + "nativeSrc": "4639:7:18", "nodeType": "YulIdentifier", - "src": "896:7:18" + "src": "4639:7:18" } ] } ] }, "name": "cleanup_t_uint256", - "nativeSrc": "841:77:18", + "nativeSrc": "4584:77:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", - "nativeSrc": "868:5:18", + "nativeSrc": "4611:5:18", "nodeType": "YulTypedName", - "src": "868:5:18", + "src": "4611:5:18", "type": "" } ], "returnVariables": [ { "name": "cleaned", - "nativeSrc": "878:7:18", - "nodeType": "YulTypedName", - "src": "878:7:18", - "type": "" - } - ], - "src": "841:77:18" - }, - { - "body": { - "nativeSrc": "967:79:18", - "nodeType": "YulBlock", - "src": "967:79:18", - "statements": [ - { - "body": { - "nativeSrc": "1024:16:18", - "nodeType": "YulBlock", - "src": "1024:16:18", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "1033:1:18", - "nodeType": "YulLiteral", - "src": "1033:1:18", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "1036:1:18", - "nodeType": "YulLiteral", - "src": "1036:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "1026:6:18", - "nodeType": "YulIdentifier", - "src": "1026:6:18" - }, - "nativeSrc": "1026:12:18", - "nodeType": "YulFunctionCall", - "src": "1026:12:18" - }, - "nativeSrc": "1026:12:18", - "nodeType": "YulExpressionStatement", - "src": "1026:12:18" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "990:5:18", - "nodeType": "YulIdentifier", - "src": "990:5:18" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1015:5:18", - "nodeType": "YulIdentifier", - "src": "1015:5:18" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "997:17:18", - "nodeType": "YulIdentifier", - "src": "997:17:18" - }, - "nativeSrc": "997:24:18", - "nodeType": "YulFunctionCall", - "src": "997:24:18" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "987:2:18", - "nodeType": "YulIdentifier", - "src": "987:2:18" - }, - "nativeSrc": "987:35:18", - "nodeType": "YulFunctionCall", - "src": "987:35:18" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "980:6:18", - "nodeType": "YulIdentifier", - "src": "980:6:18" - }, - "nativeSrc": "980:43:18", - "nodeType": "YulFunctionCall", - "src": "980:43:18" - }, - "nativeSrc": "977:63:18", - "nodeType": "YulIf", - "src": "977:63:18" - } - ] - }, - "name": "validator_revert_t_uint256", - "nativeSrc": "924:122:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "960:5:18", + "nativeSrc": "4621:7:18", "nodeType": "YulTypedName", - "src": "960:5:18", + "src": "4621:7:18", "type": "" } ], - "src": "924:122:18" + "src": "4584:77:18" }, { "body": { - "nativeSrc": "1104:87:18", + "nativeSrc": "4699:28:18", "nodeType": "YulBlock", - "src": "1104:87:18", + "src": "4699:28:18", "statements": [ { - "nativeSrc": "1114:29:18", + "nativeSrc": "4709:12:18", "nodeType": "YulAssignment", - "src": "1114:29:18", + "src": "4709:12:18", "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "1136:6:18", - "nodeType": "YulIdentifier", - "src": "1136:6:18" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "1123:12:18", - "nodeType": "YulIdentifier", - "src": "1123:12:18" - }, - "nativeSrc": "1123:20:18", - "nodeType": "YulFunctionCall", - "src": "1123:20:18" + "name": "value", + "nativeSrc": "4716:5:18", + "nodeType": "YulIdentifier", + "src": "4716:5:18" }, "variableNames": [ { - "name": "value", - "nativeSrc": "1114:5:18", + "name": "ret", + "nativeSrc": "4709:3:18", "nodeType": "YulIdentifier", - "src": "1114:5:18" + "src": "4709:3:18" } ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "1179:5:18", - "nodeType": "YulIdentifier", - "src": "1179:5:18" - } - ], - "functionName": { - "name": "validator_revert_t_uint256", - "nativeSrc": "1152:26:18", - "nodeType": "YulIdentifier", - "src": "1152:26:18" - }, - "nativeSrc": "1152:33:18", - "nodeType": "YulFunctionCall", - "src": "1152:33:18" - }, - "nativeSrc": "1152:33:18", - "nodeType": "YulExpressionStatement", - "src": "1152:33:18" } ] }, - "name": "abi_decode_t_uint256", - "nativeSrc": "1052:139:18", + "name": "identity", + "nativeSrc": "4667:60:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", - "nativeSrc": "1082:6:18", - "nodeType": "YulTypedName", - "src": "1082:6:18", - "type": "" - }, - { - "name": "end", - "nativeSrc": "1090:3:18", + "name": "value", + "nativeSrc": "4685:5:18", "nodeType": "YulTypedName", - "src": "1090:3:18", + "src": "4685:5:18", "type": "" } ], "returnVariables": [ { - "name": "value", - "nativeSrc": "1098:5:18", + "name": "ret", + "nativeSrc": "4695:3:18", "nodeType": "YulTypedName", - "src": "1098:5:18", + "src": "4695:3:18", "type": "" } ], - "src": "1052:139:18" + "src": "4667:60:18" }, { "body": { - "nativeSrc": "1280:391:18", + "nativeSrc": "4793:82:18", "nodeType": "YulBlock", - "src": "1280:391:18", + "src": "4793:82:18", "statements": [ { - "body": { - "nativeSrc": "1326:83:18", - "nodeType": "YulBlock", - "src": "1326:83:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "1328:77:18", - "nodeType": "YulIdentifier", - "src": "1328:77:18" - }, - "nativeSrc": "1328:79:18", - "nodeType": "YulFunctionCall", - "src": "1328:79:18" - }, - "nativeSrc": "1328:79:18", - "nodeType": "YulExpressionStatement", - "src": "1328:79:18" - } - ] - }, - "condition": { + "nativeSrc": "4803:66:18", + "nodeType": "YulAssignment", + "src": "4803:66:18", + "value": { "arguments": [ { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "1301:7:18", - "nodeType": "YulIdentifier", - "src": "1301:7:18" - }, - { - "name": "headStart", - "nativeSrc": "1310:9:18", - "nodeType": "YulIdentifier", - "src": "1310:9:18" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "1297:3:18", - "nodeType": "YulIdentifier", - "src": "1297:3:18" - }, - "nativeSrc": "1297:23:18", - "nodeType": "YulFunctionCall", - "src": "1297:23:18" - }, - { - "kind": "number", - "nativeSrc": "1322:2:18", - "nodeType": "YulLiteral", - "src": "1322:2:18", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "1293:3:18", - "nodeType": "YulIdentifier", - "src": "1293:3:18" - }, - "nativeSrc": "1293:32:18", - "nodeType": "YulFunctionCall", - "src": "1293:32:18" - }, - "nativeSrc": "1290:119:18", - "nodeType": "YulIf", - "src": "1290:119:18" - }, - { - "nativeSrc": "1419:117:18", - "nodeType": "YulBlock", - "src": "1419:117:18", - "statements": [ - { - "nativeSrc": "1434:15:18", - "nodeType": "YulVariableDeclaration", - "src": "1434:15:18", - "value": { - "kind": "number", - "nativeSrc": "1448:1:18", - "nodeType": "YulLiteral", - "src": "1448:1:18", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "1438:6:18", - "nodeType": "YulTypedName", - "src": "1438:6:18", - "type": "" - } - ] - }, - { - "nativeSrc": "1463:63:18", - "nodeType": "YulAssignment", - "src": "1463:63:18", - "value": { "arguments": [ { "arguments": [ { - "name": "headStart", - "nativeSrc": "1498:9:18", - "nodeType": "YulIdentifier", - "src": "1498:9:18" - }, - { - "name": "offset", - "nativeSrc": "1509:6:18", + "name": "value", + "nativeSrc": "4861:5:18", "nodeType": "YulIdentifier", - "src": "1509:6:18" + "src": "4861:5:18" } ], "functionName": { - "name": "add", - "nativeSrc": "1494:3:18", + "name": "cleanup_t_uint256", + "nativeSrc": "4843:17:18", "nodeType": "YulIdentifier", - "src": "1494:3:18" + "src": "4843:17:18" }, - "nativeSrc": "1494:22:18", + "nativeSrc": "4843:24:18", "nodeType": "YulFunctionCall", - "src": "1494:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "1518:7:18", - "nodeType": "YulIdentifier", - "src": "1518:7:18" + "src": "4843:24:18" } ], "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "1473:20:18", + "name": "identity", + "nativeSrc": "4834:8:18", "nodeType": "YulIdentifier", - "src": "1473:20:18" + "src": "4834:8:18" }, - "nativeSrc": "1473:53:18", + "nativeSrc": "4834:34:18", "nodeType": "YulFunctionCall", - "src": "1473:53:18" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "1463:6:18", - "nodeType": "YulIdentifier", - "src": "1463:6:18" - } - ] - } - ] - }, - { - "nativeSrc": "1546:118:18", - "nodeType": "YulBlock", - "src": "1546:118:18", - "statements": [ - { - "nativeSrc": "1561:16:18", - "nodeType": "YulVariableDeclaration", - "src": "1561:16:18", - "value": { - "kind": "number", - "nativeSrc": "1575:2:18", - "nodeType": "YulLiteral", - "src": "1575:2:18", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "1565:6:18", - "nodeType": "YulTypedName", - "src": "1565:6:18", - "type": "" - } - ] + "src": "4834:34:18" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "4816:17:18", + "nodeType": "YulIdentifier", + "src": "4816:17:18" }, + "nativeSrc": "4816:53:18", + "nodeType": "YulFunctionCall", + "src": "4816:53:18" + }, + "variableNames": [ { - "nativeSrc": "1591:63:18", - "nodeType": "YulAssignment", - "src": "1591:63:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1626:9:18", - "nodeType": "YulIdentifier", - "src": "1626:9:18" - }, - { - "name": "offset", - "nativeSrc": "1637:6:18", - "nodeType": "YulIdentifier", - "src": "1637:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1622:3:18", - "nodeType": "YulIdentifier", - "src": "1622:3:18" - }, - "nativeSrc": "1622:22:18", - "nodeType": "YulFunctionCall", - "src": "1622:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "1646:7:18", - "nodeType": "YulIdentifier", - "src": "1646:7:18" - } - ], - "functionName": { - "name": "abi_decode_t_uint256", - "nativeSrc": "1601:20:18", - "nodeType": "YulIdentifier", - "src": "1601:20:18" - }, - "nativeSrc": "1601:53:18", - "nodeType": "YulFunctionCall", - "src": "1601:53:18" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "1591:6:18", - "nodeType": "YulIdentifier", - "src": "1591:6:18" - } - ] + "name": "converted", + "nativeSrc": "4803:9:18", + "nodeType": "YulIdentifier", + "src": "4803:9:18" } ] } ] }, - "name": "abi_decode_tuple_t_addresst_uint256", - "nativeSrc": "1197:474:18", + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "4733:142:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nativeSrc": "1242:9:18", - "nodeType": "YulTypedName", - "src": "1242:9:18", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "1253:7:18", - "nodeType": "YulTypedName", - "src": "1253:7:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "1265:6:18", - "nodeType": "YulTypedName", - "src": "1265:6:18", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "1273:6:18", + "name": "value", + "nativeSrc": "4773:5:18", "nodeType": "YulTypedName", - "src": "1273:6:18", + "src": "4773:5:18", "type": "" } ], - "src": "1197:474:18" - }, - { - "body": { - "nativeSrc": "1742:53:18", - "nodeType": "YulBlock", - "src": "1742:53:18", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "1759:3:18", - "nodeType": "YulIdentifier", - "src": "1759:3:18" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "1782:5:18", - "nodeType": "YulIdentifier", - "src": "1782:5:18" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "1764:17:18", - "nodeType": "YulIdentifier", - "src": "1764:17:18" - }, - "nativeSrc": "1764:24:18", - "nodeType": "YulFunctionCall", - "src": "1764:24:18" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "1752:6:18", - "nodeType": "YulIdentifier", - "src": "1752:6:18" - }, - "nativeSrc": "1752:37:18", - "nodeType": "YulFunctionCall", - "src": "1752:37:18" + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "4783:9:18", + "nodeType": "YulTypedName", + "src": "4783:9:18", + "type": "" + } + ], + "src": "4733:142:18" + }, + { + "body": { + "nativeSrc": "4928:28:18", + "nodeType": "YulBlock", + "src": "4928:28:18", + "statements": [ + { + "nativeSrc": "4938:12:18", + "nodeType": "YulAssignment", + "src": "4938:12:18", + "value": { + "name": "value", + "nativeSrc": "4945:5:18", + "nodeType": "YulIdentifier", + "src": "4945:5:18" }, - "nativeSrc": "1752:37:18", - "nodeType": "YulExpressionStatement", - "src": "1752:37:18" + "variableNames": [ + { + "name": "ret", + "nativeSrc": "4938:3:18", + "nodeType": "YulIdentifier", + "src": "4938:3:18" + } + ] } ] }, - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "1677:118:18", + "name": "prepare_store_t_uint256", + "nativeSrc": "4881:75:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", - "nativeSrc": "1730:5:18", + "nativeSrc": "4914:5:18", "nodeType": "YulTypedName", - "src": "1730:5:18", + "src": "4914:5:18", "type": "" - }, + } + ], + "returnVariables": [ { - "name": "pos", - "nativeSrc": "1737:3:18", + "name": "ret", + "nativeSrc": "4924:3:18", "nodeType": "YulTypedName", - "src": "1737:3:18", + "src": "4924:3:18", "type": "" } ], - "src": "1677:118:18" + "src": "4881:75:18" }, { "body": { - "nativeSrc": "1899:124:18", + "nativeSrc": "5038:193:18", "nodeType": "YulBlock", - "src": "1899:124:18", + "src": "5038:193:18", "statements": [ { - "nativeSrc": "1909:26:18", - "nodeType": "YulAssignment", - "src": "1909:26:18", + "nativeSrc": "5048:63:18", + "nodeType": "YulVariableDeclaration", + "src": "5048:63:18", "value": { "arguments": [ { - "name": "headStart", - "nativeSrc": "1921:9:18", + "name": "value_0", + "nativeSrc": "5103:7:18", "nodeType": "YulIdentifier", - "src": "1921:9:18" - }, - { - "kind": "number", - "nativeSrc": "1932:2:18", - "nodeType": "YulLiteral", - "src": "1932:2:18", - "type": "", - "value": "32" + "src": "5103:7:18" } ], "functionName": { - "name": "add", - "nativeSrc": "1917:3:18", + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "5072:30:18", "nodeType": "YulIdentifier", - "src": "1917:3:18" + "src": "5072:30:18" }, - "nativeSrc": "1917:18:18", + "nativeSrc": "5072:39:18", "nodeType": "YulFunctionCall", - "src": "1917:18:18" + "src": "5072:39:18" }, - "variableNames": [ + "variables": [ { - "name": "tail", - "nativeSrc": "1909:4:18", - "nodeType": "YulIdentifier", - "src": "1909:4:18" + "name": "convertedValue_0", + "nativeSrc": "5052:16:18", + "nodeType": "YulTypedName", + "src": "5052:16:18", + "type": "" } ] }, @@ -61174,1674 +60722,2437 @@ "expression": { "arguments": [ { - "name": "value0", - "nativeSrc": "1989:6:18", + "name": "slot", + "nativeSrc": "5127:4:18", "nodeType": "YulIdentifier", - "src": "1989:6:18" + "src": "5127:4:18" }, { "arguments": [ { - "name": "headStart", - "nativeSrc": "2002:9:18", + "arguments": [ + { + "name": "slot", + "nativeSrc": "5167:4:18", + "nodeType": "YulIdentifier", + "src": "5167:4:18" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "5161:5:18", + "nodeType": "YulIdentifier", + "src": "5161:5:18" + }, + "nativeSrc": "5161:11:18", + "nodeType": "YulFunctionCall", + "src": "5161:11:18" + }, + { + "name": "offset", + "nativeSrc": "5174:6:18", "nodeType": "YulIdentifier", - "src": "2002:9:18" + "src": "5174:6:18" }, { - "kind": "number", - "nativeSrc": "2013:1:18", - "nodeType": "YulLiteral", - "src": "2013:1:18", - "type": "", - "value": "0" + "arguments": [ + { + "name": "convertedValue_0", + "nativeSrc": "5206:16:18", + "nodeType": "YulIdentifier", + "src": "5206:16:18" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nativeSrc": "5182:23:18", + "nodeType": "YulIdentifier", + "src": "5182:23:18" + }, + "nativeSrc": "5182:41:18", + "nodeType": "YulFunctionCall", + "src": "5182:41:18" } ], "functionName": { - "name": "add", - "nativeSrc": "1998:3:18", + "name": "update_byte_slice_dynamic32", + "nativeSrc": "5133:27:18", "nodeType": "YulIdentifier", - "src": "1998:3:18" + "src": "5133:27:18" }, - "nativeSrc": "1998:17:18", + "nativeSrc": "5133:91:18", "nodeType": "YulFunctionCall", - "src": "1998:17:18" + "src": "5133:91:18" } ], "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "1945:43:18", + "name": "sstore", + "nativeSrc": "5120:6:18", "nodeType": "YulIdentifier", - "src": "1945:43:18" + "src": "5120:6:18" }, - "nativeSrc": "1945:71:18", + "nativeSrc": "5120:105:18", "nodeType": "YulFunctionCall", - "src": "1945:71:18" + "src": "5120:105:18" }, - "nativeSrc": "1945:71:18", + "nativeSrc": "5120:105:18", "nodeType": "YulExpressionStatement", - "src": "1945:71:18" + "src": "5120:105:18" } ] }, - "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", - "nativeSrc": "1801:222:18", + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "4962:269:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nativeSrc": "1871:9:18", + "name": "slot", + "nativeSrc": "5015:4:18", "nodeType": "YulTypedName", - "src": "1871:9:18", + "src": "5015:4:18", "type": "" }, { - "name": "value0", - "nativeSrc": "1883:6:18", + "name": "offset", + "nativeSrc": "5021:6:18", "nodeType": "YulTypedName", - "src": "1883:6:18", + "src": "5021:6:18", + "type": "" + }, + { + "name": "value_0", + "nativeSrc": "5029:7:18", + "nodeType": "YulTypedName", + "src": "5029:7:18", "type": "" } ], + "src": "4962:269:18" + }, + { + "body": { + "nativeSrc": "5286:24:18", + "nodeType": "YulBlock", + "src": "5286:24:18", + "statements": [ + { + "nativeSrc": "5296:8:18", + "nodeType": "YulAssignment", + "src": "5296:8:18", + "value": { + "kind": "number", + "nativeSrc": "5303:1:18", + "nodeType": "YulLiteral", + "src": "5303:1:18", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "5296:3:18", + "nodeType": "YulIdentifier", + "src": "5296:3:18" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "5237:73:18", + "nodeType": "YulFunctionDefinition", "returnVariables": [ { - "name": "tail", - "nativeSrc": "1894:4:18", + "name": "ret", + "nativeSrc": "5282:3:18", "nodeType": "YulTypedName", - "src": "1894:4:18", + "src": "5282:3:18", "type": "" } ], - "src": "1801:222:18" + "src": "5237:73:18" }, { "body": { - "nativeSrc": "2073:105:18", + "nativeSrc": "5369:136:18", "nodeType": "YulBlock", - "src": "2073:105:18", + "src": "5369:136:18", "statements": [ { - "nativeSrc": "2083:89:18", - "nodeType": "YulAssignment", - "src": "2083:89:18", + "nativeSrc": "5379:46:18", + "nodeType": "YulVariableDeclaration", + "src": "5379:46:18", "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "5393:30:18", + "nodeType": "YulIdentifier", + "src": "5393:30:18" + }, + "nativeSrc": "5393:32:18", + "nodeType": "YulFunctionCall", + "src": "5393:32:18" + }, + "variables": [ + { + "name": "zero_0", + "nativeSrc": "5383:6:18", + "nodeType": "YulTypedName", + "src": "5383:6:18", + "type": "" + } + ] + }, + { + "expression": { "arguments": [ { - "name": "value", - "nativeSrc": "2098:5:18", + "name": "slot", + "nativeSrc": "5478:4:18", "nodeType": "YulIdentifier", - "src": "2098:5:18" + "src": "5478:4:18" }, { - "kind": "number", - "nativeSrc": "2105:66:18", - "nodeType": "YulLiteral", - "src": "2105:66:18", - "type": "", - "value": "0xffffffff00000000000000000000000000000000000000000000000000000000" + "name": "offset", + "nativeSrc": "5484:6:18", + "nodeType": "YulIdentifier", + "src": "5484:6:18" + }, + { + "name": "zero_0", + "nativeSrc": "5492:6:18", + "nodeType": "YulIdentifier", + "src": "5492:6:18" } ], "functionName": { - "name": "and", - "nativeSrc": "2094:3:18", + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "5434:43:18", "nodeType": "YulIdentifier", - "src": "2094:3:18" + "src": "5434:43:18" }, - "nativeSrc": "2094:78:18", + "nativeSrc": "5434:65:18", "nodeType": "YulFunctionCall", - "src": "2094:78:18" + "src": "5434:65:18" }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "2083:7:18", - "nodeType": "YulIdentifier", - "src": "2083:7:18" - } - ] + "nativeSrc": "5434:65:18", + "nodeType": "YulExpressionStatement", + "src": "5434:65:18" } ] }, - "name": "cleanup_t_bytes4", - "nativeSrc": "2029:149:18", + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "5316:189:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", - "nativeSrc": "2055:5:18", + "name": "slot", + "nativeSrc": "5355:4:18", "nodeType": "YulTypedName", - "src": "2055:5:18", + "src": "5355:4:18", "type": "" - } - ], - "returnVariables": [ + }, { - "name": "cleaned", - "nativeSrc": "2065:7:18", + "name": "offset", + "nativeSrc": "5361:6:18", "nodeType": "YulTypedName", - "src": "2065:7:18", + "src": "5361:6:18", "type": "" } ], - "src": "2029:149:18" + "src": "5316:189:18" }, { "body": { - "nativeSrc": "2226:78:18", + "nativeSrc": "5561:136:18", "nodeType": "YulBlock", - "src": "2226:78:18", + "src": "5561:136:18", "statements": [ { "body": { - "nativeSrc": "2282:16:18", + "nativeSrc": "5628:63:18", "nodeType": "YulBlock", - "src": "2282:16:18", + "src": "5628:63:18", "statements": [ { "expression": { "arguments": [ { - "kind": "number", - "nativeSrc": "2291:1:18", - "nodeType": "YulLiteral", - "src": "2291:1:18", - "type": "", - "value": "0" + "name": "start", + "nativeSrc": "5672:5:18", + "nodeType": "YulIdentifier", + "src": "5672:5:18" }, { "kind": "number", - "nativeSrc": "2294:1:18", + "nativeSrc": "5679:1:18", "nodeType": "YulLiteral", - "src": "2294:1:18", + "src": "5679:1:18", "type": "", "value": "0" } ], "functionName": { - "name": "revert", - "nativeSrc": "2284:6:18", + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "5642:29:18", "nodeType": "YulIdentifier", - "src": "2284:6:18" + "src": "5642:29:18" }, - "nativeSrc": "2284:12:18", + "nativeSrc": "5642:39:18", "nodeType": "YulFunctionCall", - "src": "2284:12:18" + "src": "5642:39:18" }, - "nativeSrc": "2284:12:18", + "nativeSrc": "5642:39:18", "nodeType": "YulExpressionStatement", - "src": "2284:12:18" + "src": "5642:39:18" } ] }, "condition": { "arguments": [ { - "arguments": [ - { - "name": "value", - "nativeSrc": "2249:5:18", - "nodeType": "YulIdentifier", - "src": "2249:5:18" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "2273:5:18", - "nodeType": "YulIdentifier", - "src": "2273:5:18" - } - ], - "functionName": { - "name": "cleanup_t_bytes4", - "nativeSrc": "2256:16:18", - "nodeType": "YulIdentifier", - "src": "2256:16:18" - }, - "nativeSrc": "2256:23:18", - "nodeType": "YulFunctionCall", - "src": "2256:23:18" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "2246:2:18", - "nodeType": "YulIdentifier", - "src": "2246:2:18" - }, - "nativeSrc": "2246:34:18", - "nodeType": "YulFunctionCall", - "src": "2246:34:18" + "name": "start", + "nativeSrc": "5581:5:18", + "nodeType": "YulIdentifier", + "src": "5581:5:18" + }, + { + "name": "end", + "nativeSrc": "5588:3:18", + "nodeType": "YulIdentifier", + "src": "5588:3:18" } ], "functionName": { - "name": "iszero", - "nativeSrc": "2239:6:18", + "name": "lt", + "nativeSrc": "5578:2:18", "nodeType": "YulIdentifier", - "src": "2239:6:18" + "src": "5578:2:18" }, - "nativeSrc": "2239:42:18", + "nativeSrc": "5578:14:18", "nodeType": "YulFunctionCall", - "src": "2239:42:18" + "src": "5578:14:18" }, - "nativeSrc": "2236:62:18", - "nodeType": "YulIf", - "src": "2236:62:18" + "nativeSrc": "5571:120:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "5593:26:18", + "nodeType": "YulBlock", + "src": "5593:26:18", + "statements": [ + { + "nativeSrc": "5595:22:18", + "nodeType": "YulAssignment", + "src": "5595:22:18", + "value": { + "arguments": [ + { + "name": "start", + "nativeSrc": "5608:5:18", + "nodeType": "YulIdentifier", + "src": "5608:5:18" + }, + { + "kind": "number", + "nativeSrc": "5615:1:18", + "nodeType": "YulLiteral", + "src": "5615:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5604:3:18", + "nodeType": "YulIdentifier", + "src": "5604:3:18" + }, + "nativeSrc": "5604:13:18", + "nodeType": "YulFunctionCall", + "src": "5604:13:18" + }, + "variableNames": [ + { + "name": "start", + "nativeSrc": "5595:5:18", + "nodeType": "YulIdentifier", + "src": "5595:5:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "5575:2:18", + "nodeType": "YulBlock", + "src": "5575:2:18", + "statements": [] + }, + "src": "5571:120:18" } ] }, - "name": "validator_revert_t_bytes4", - "nativeSrc": "2184:120:18", + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "5511:186:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", - "nativeSrc": "2219:5:18", + "name": "start", + "nativeSrc": "5549:5:18", "nodeType": "YulTypedName", - "src": "2219:5:18", + "src": "5549:5:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "5556:3:18", + "nodeType": "YulTypedName", + "src": "5556:3:18", "type": "" } ], - "src": "2184:120:18" + "src": "5511:186:18" }, { "body": { - "nativeSrc": "2361:86:18", + "nativeSrc": "5782:464:18", "nodeType": "YulBlock", - "src": "2361:86:18", + "src": "5782:464:18", "statements": [ { - "nativeSrc": "2371:29:18", - "nodeType": "YulAssignment", - "src": "2371:29:18", - "value": { - "arguments": [ + "body": { + "nativeSrc": "5808:431:18", + "nodeType": "YulBlock", + "src": "5808:431:18", + "statements": [ { - "name": "offset", - "nativeSrc": "2393:6:18", - "nodeType": "YulIdentifier", - "src": "2393:6:18" + "nativeSrc": "5822:54:18", + "nodeType": "YulVariableDeclaration", + "src": "5822:54:18", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "5870:5:18", + "nodeType": "YulIdentifier", + "src": "5870:5:18" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "5838:31:18", + "nodeType": "YulIdentifier", + "src": "5838:31:18" + }, + "nativeSrc": "5838:38:18", + "nodeType": "YulFunctionCall", + "src": "5838:38:18" + }, + "variables": [ + { + "name": "dataArea", + "nativeSrc": "5826:8:18", + "nodeType": "YulTypedName", + "src": "5826:8:18", + "type": "" + } + ] + }, + { + "nativeSrc": "5889:63:18", + "nodeType": "YulVariableDeclaration", + "src": "5889:63:18", + "value": { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "5912:8:18", + "nodeType": "YulIdentifier", + "src": "5912:8:18" + }, + { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "5940:10:18", + "nodeType": "YulIdentifier", + "src": "5940:10:18" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "5922:17:18", + "nodeType": "YulIdentifier", + "src": "5922:17:18" + }, + "nativeSrc": "5922:29:18", + "nodeType": "YulFunctionCall", + "src": "5922:29:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5908:3:18", + "nodeType": "YulIdentifier", + "src": "5908:3:18" + }, + "nativeSrc": "5908:44:18", + "nodeType": "YulFunctionCall", + "src": "5908:44:18" + }, + "variables": [ + { + "name": "deleteStart", + "nativeSrc": "5893:11:18", + "nodeType": "YulTypedName", + "src": "5893:11:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "6109:27:18", + "nodeType": "YulBlock", + "src": "6109:27:18", + "statements": [ + { + "nativeSrc": "6111:23:18", + "nodeType": "YulAssignment", + "src": "6111:23:18", + "value": { + "name": "dataArea", + "nativeSrc": "6126:8:18", + "nodeType": "YulIdentifier", + "src": "6126:8:18" + }, + "variableNames": [ + { + "name": "deleteStart", + "nativeSrc": "6111:11:18", + "nodeType": "YulIdentifier", + "src": "6111:11:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "6093:10:18", + "nodeType": "YulIdentifier", + "src": "6093:10:18" + }, + { + "kind": "number", + "nativeSrc": "6105:2:18", + "nodeType": "YulLiteral", + "src": "6105:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "6090:2:18", + "nodeType": "YulIdentifier", + "src": "6090:2:18" + }, + "nativeSrc": "6090:18:18", + "nodeType": "YulFunctionCall", + "src": "6090:18:18" + }, + "nativeSrc": "6087:49:18", + "nodeType": "YulIf", + "src": "6087:49:18" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nativeSrc": "6178:11:18", + "nodeType": "YulIdentifier", + "src": "6178:11:18" + }, + { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "6195:8:18", + "nodeType": "YulIdentifier", + "src": "6195:8:18" + }, + { + "arguments": [ + { + "name": "len", + "nativeSrc": "6223:3:18", + "nodeType": "YulIdentifier", + "src": "6223:3:18" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "6205:17:18", + "nodeType": "YulIdentifier", + "src": "6205:17:18" + }, + "nativeSrc": "6205:22:18", + "nodeType": "YulFunctionCall", + "src": "6205:22:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6191:3:18", + "nodeType": "YulIdentifier", + "src": "6191:3:18" + }, + "nativeSrc": "6191:37:18", + "nodeType": "YulFunctionCall", + "src": "6191:37:18" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "6149:28:18", + "nodeType": "YulIdentifier", + "src": "6149:28:18" + }, + "nativeSrc": "6149:80:18", + "nodeType": "YulFunctionCall", + "src": "6149:80:18" + }, + "nativeSrc": "6149:80:18", + "nodeType": "YulExpressionStatement", + "src": "6149:80:18" } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "2380:12:18", - "nodeType": "YulIdentifier", - "src": "2380:12:18" - }, - "nativeSrc": "2380:20:18", - "nodeType": "YulFunctionCall", - "src": "2380:20:18" + ] }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "2371:5:18", - "nodeType": "YulIdentifier", - "src": "2371:5:18" - } - ] - }, - { - "expression": { + "condition": { "arguments": [ { - "name": "value", - "nativeSrc": "2435:5:18", + "name": "len", + "nativeSrc": "5799:3:18", "nodeType": "YulIdentifier", - "src": "2435:5:18" + "src": "5799:3:18" + }, + { + "kind": "number", + "nativeSrc": "5804:2:18", + "nodeType": "YulLiteral", + "src": "5804:2:18", + "type": "", + "value": "31" } ], "functionName": { - "name": "validator_revert_t_bytes4", - "nativeSrc": "2409:25:18", + "name": "gt", + "nativeSrc": "5796:2:18", "nodeType": "YulIdentifier", - "src": "2409:25:18" + "src": "5796:2:18" }, - "nativeSrc": "2409:32:18", + "nativeSrc": "5796:11:18", "nodeType": "YulFunctionCall", - "src": "2409:32:18" + "src": "5796:11:18" }, - "nativeSrc": "2409:32:18", - "nodeType": "YulExpressionStatement", - "src": "2409:32:18" + "nativeSrc": "5793:446:18", + "nodeType": "YulIf", + "src": "5793:446:18" } ] }, - "name": "abi_decode_t_bytes4", - "nativeSrc": "2310:137:18", + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "5703:543:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", - "nativeSrc": "2339:6:18", + "name": "array", + "nativeSrc": "5758:5:18", "nodeType": "YulTypedName", - "src": "2339:6:18", + "src": "5758:5:18", "type": "" }, { - "name": "end", - "nativeSrc": "2347:3:18", + "name": "len", + "nativeSrc": "5765:3:18", "nodeType": "YulTypedName", - "src": "2347:3:18", + "src": "5765:3:18", "type": "" - } - ], - "returnVariables": [ + }, { - "name": "value", - "nativeSrc": "2355:5:18", + "name": "startIndex", + "nativeSrc": "5770:10:18", "nodeType": "YulTypedName", - "src": "2355:5:18", + "src": "5770:10:18", "type": "" } ], - "src": "2310:137:18" + "src": "5703:543:18" }, { "body": { - "nativeSrc": "2518:262:18", + "nativeSrc": "6315:54:18", "nodeType": "YulBlock", - "src": "2518:262:18", + "src": "6315:54:18", "statements": [ { - "body": { - "nativeSrc": "2564:83:18", - "nodeType": "YulBlock", - "src": "2564:83:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "2566:77:18", - "nodeType": "YulIdentifier", - "src": "2566:77:18" - }, - "nativeSrc": "2566:79:18", - "nodeType": "YulFunctionCall", - "src": "2566:79:18" - }, - "nativeSrc": "2566:79:18", - "nodeType": "YulExpressionStatement", - "src": "2566:79:18" - } - ] - }, - "condition": { + "nativeSrc": "6325:37:18", + "nodeType": "YulAssignment", + "src": "6325:37:18", + "value": { "arguments": [ { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "2539:7:18", - "nodeType": "YulIdentifier", - "src": "2539:7:18" - }, - { - "name": "headStart", - "nativeSrc": "2548:9:18", - "nodeType": "YulIdentifier", - "src": "2548:9:18" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "2535:3:18", - "nodeType": "YulIdentifier", - "src": "2535:3:18" - }, - "nativeSrc": "2535:23:18", - "nodeType": "YulFunctionCall", - "src": "2535:23:18" + "name": "bits", + "nativeSrc": "6350:4:18", + "nodeType": "YulIdentifier", + "src": "6350:4:18" }, { - "kind": "number", - "nativeSrc": "2560:2:18", - "nodeType": "YulLiteral", - "src": "2560:2:18", - "type": "", - "value": "32" + "name": "value", + "nativeSrc": "6356:5:18", + "nodeType": "YulIdentifier", + "src": "6356:5:18" } ], "functionName": { - "name": "slt", - "nativeSrc": "2531:3:18", + "name": "shr", + "nativeSrc": "6346:3:18", "nodeType": "YulIdentifier", - "src": "2531:3:18" + "src": "6346:3:18" }, - "nativeSrc": "2531:32:18", + "nativeSrc": "6346:16:18", "nodeType": "YulFunctionCall", - "src": "2531:32:18" + "src": "6346:16:18" }, - "nativeSrc": "2528:119:18", - "nodeType": "YulIf", - "src": "2528:119:18" - }, - { - "nativeSrc": "2657:116:18", - "nodeType": "YulBlock", - "src": "2657:116:18", - "statements": [ - { - "nativeSrc": "2672:15:18", - "nodeType": "YulVariableDeclaration", - "src": "2672:15:18", - "value": { - "kind": "number", - "nativeSrc": "2686:1:18", - "nodeType": "YulLiteral", - "src": "2686:1:18", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "2676:6:18", - "nodeType": "YulTypedName", - "src": "2676:6:18", - "type": "" - } - ] - }, + "variableNames": [ { - "nativeSrc": "2701:62:18", - "nodeType": "YulAssignment", - "src": "2701:62:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2735:9:18", - "nodeType": "YulIdentifier", - "src": "2735:9:18" - }, - { - "name": "offset", - "nativeSrc": "2746:6:18", - "nodeType": "YulIdentifier", - "src": "2746:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2731:3:18", - "nodeType": "YulIdentifier", - "src": "2731:3:18" - }, - "nativeSrc": "2731:22:18", - "nodeType": "YulFunctionCall", - "src": "2731:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "2755:7:18", - "nodeType": "YulIdentifier", - "src": "2755:7:18" - } - ], - "functionName": { - "name": "abi_decode_t_bytes4", - "nativeSrc": "2711:19:18", - "nodeType": "YulIdentifier", - "src": "2711:19:18" - }, - "nativeSrc": "2711:52:18", - "nodeType": "YulFunctionCall", - "src": "2711:52:18" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "2701:6:18", - "nodeType": "YulIdentifier", - "src": "2701:6:18" - } - ] + "name": "newValue", + "nativeSrc": "6325:8:18", + "nodeType": "YulIdentifier", + "src": "6325:8:18" } ] } ] }, - "name": "abi_decode_tuple_t_bytes4", - "nativeSrc": "2453:327:18", + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "6252:117:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nativeSrc": "2488:9:18", + "name": "bits", + "nativeSrc": "6290:4:18", "nodeType": "YulTypedName", - "src": "2488:9:18", + "src": "6290:4:18", "type": "" }, { - "name": "dataEnd", - "nativeSrc": "2499:7:18", + "name": "value", + "nativeSrc": "6296:5:18", "nodeType": "YulTypedName", - "src": "2499:7:18", + "src": "6296:5:18", "type": "" } ], "returnVariables": [ { - "name": "value0", - "nativeSrc": "2511:6:18", + "name": "newValue", + "nativeSrc": "6306:8:18", "nodeType": "YulTypedName", - "src": "2511:6:18", + "src": "6306:8:18", "type": "" } ], - "src": "2453:327:18" + "src": "6252:117:18" }, { "body": { - "nativeSrc": "2828:48:18", + "nativeSrc": "6426:118:18", "nodeType": "YulBlock", - "src": "2828:48:18", + "src": "6426:118:18", "statements": [ { - "nativeSrc": "2838:32:18", - "nodeType": "YulAssignment", - "src": "2838:32:18", + "nativeSrc": "6436:68:18", + "nodeType": "YulVariableDeclaration", + "src": "6436:68:18", "value": { "arguments": [ { "arguments": [ { - "name": "value", - "nativeSrc": "2863:5:18", - "nodeType": "YulIdentifier", - "src": "2863:5:18" + "arguments": [ + { + "kind": "number", + "nativeSrc": "6485:1:18", + "nodeType": "YulLiteral", + "src": "6485:1:18", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nativeSrc": "6488:5:18", + "nodeType": "YulIdentifier", + "src": "6488:5:18" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "6481:3:18", + "nodeType": "YulIdentifier", + "src": "6481:3:18" + }, + "nativeSrc": "6481:13:18", + "nodeType": "YulFunctionCall", + "src": "6481:13:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6500:1:18", + "nodeType": "YulLiteral", + "src": "6500:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "6496:3:18", + "nodeType": "YulIdentifier", + "src": "6496:3:18" + }, + "nativeSrc": "6496:6:18", + "nodeType": "YulFunctionCall", + "src": "6496:6:18" } ], "functionName": { - "name": "iszero", - "nativeSrc": "2856:6:18", + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "6452:28:18", "nodeType": "YulIdentifier", - "src": "2856:6:18" + "src": "6452:28:18" }, - "nativeSrc": "2856:13:18", + "nativeSrc": "6452:51:18", "nodeType": "YulFunctionCall", - "src": "2856:13:18" + "src": "6452:51:18" } ], "functionName": { - "name": "iszero", - "nativeSrc": "2849:6:18", + "name": "not", + "nativeSrc": "6448:3:18", "nodeType": "YulIdentifier", - "src": "2849:6:18" + "src": "6448:3:18" }, - "nativeSrc": "2849:21:18", + "nativeSrc": "6448:56:18", "nodeType": "YulFunctionCall", - "src": "2849:21:18" + "src": "6448:56:18" }, - "variableNames": [ + "variables": [ { - "name": "cleaned", - "nativeSrc": "2838:7:18", - "nodeType": "YulIdentifier", - "src": "2838:7:18" + "name": "mask", + "nativeSrc": "6440:4:18", + "nodeType": "YulTypedName", + "src": "6440:4:18", + "type": "" } ] - } - ] - }, - "name": "cleanup_t_bool", - "nativeSrc": "2786:90:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "2810:5:18", - "nodeType": "YulTypedName", - "src": "2810:5:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "2820:7:18", - "nodeType": "YulTypedName", - "src": "2820:7:18", - "type": "" - } - ], - "src": "2786:90:18" - }, - { - "body": { - "nativeSrc": "2941:50:18", - "nodeType": "YulBlock", - "src": "2941:50:18", - "statements": [ + }, { - "expression": { + "nativeSrc": "6513:25:18", + "nodeType": "YulAssignment", + "src": "6513:25:18", + "value": { "arguments": [ { - "name": "pos", - "nativeSrc": "2958:3:18", + "name": "data", + "nativeSrc": "6527:4:18", "nodeType": "YulIdentifier", - "src": "2958:3:18" + "src": "6527:4:18" }, { - "arguments": [ - { - "name": "value", - "nativeSrc": "2978:5:18", - "nodeType": "YulIdentifier", - "src": "2978:5:18" - } - ], - "functionName": { - "name": "cleanup_t_bool", - "nativeSrc": "2963:14:18", - "nodeType": "YulIdentifier", - "src": "2963:14:18" - }, - "nativeSrc": "2963:21:18", - "nodeType": "YulFunctionCall", - "src": "2963:21:18" + "name": "mask", + "nativeSrc": "6533:4:18", + "nodeType": "YulIdentifier", + "src": "6533:4:18" } ], "functionName": { - "name": "mstore", - "nativeSrc": "2951:6:18", + "name": "and", + "nativeSrc": "6523:3:18", "nodeType": "YulIdentifier", - "src": "2951:6:18" + "src": "6523:3:18" }, - "nativeSrc": "2951:34:18", + "nativeSrc": "6523:15:18", "nodeType": "YulFunctionCall", - "src": "2951:34:18" + "src": "6523:15:18" }, - "nativeSrc": "2951:34:18", - "nodeType": "YulExpressionStatement", - "src": "2951:34:18" + "variableNames": [ + { + "name": "result", + "nativeSrc": "6513:6:18", + "nodeType": "YulIdentifier", + "src": "6513:6:18" + } + ] } ] }, - "name": "abi_encode_t_bool_to_t_bool_fromStack", - "nativeSrc": "2882:109:18", + "name": "mask_bytes_dynamic", + "nativeSrc": "6375:169:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", - "nativeSrc": "2929:5:18", + "name": "data", + "nativeSrc": "6403:4:18", "nodeType": "YulTypedName", - "src": "2929:5:18", + "src": "6403:4:18", "type": "" }, { - "name": "pos", - "nativeSrc": "2936:3:18", + "name": "bytes", + "nativeSrc": "6409:5:18", "nodeType": "YulTypedName", - "src": "2936:3:18", + "src": "6409:5:18", "type": "" } ], - "src": "2882:109:18" + "returnVariables": [ + { + "name": "result", + "nativeSrc": "6419:6:18", + "nodeType": "YulTypedName", + "src": "6419:6:18", + "type": "" + } + ], + "src": "6375:169:18" }, { "body": { - "nativeSrc": "3089:118:18", + "nativeSrc": "6630:214:18", "nodeType": "YulBlock", - "src": "3089:118:18", + "src": "6630:214:18", "statements": [ { - "nativeSrc": "3099:26:18", + "nativeSrc": "6763:37:18", "nodeType": "YulAssignment", - "src": "3099:26:18", + "src": "6763:37:18", "value": { "arguments": [ { - "name": "headStart", - "nativeSrc": "3111:9:18", + "name": "data", + "nativeSrc": "6790:4:18", "nodeType": "YulIdentifier", - "src": "3111:9:18" + "src": "6790:4:18" }, { - "kind": "number", - "nativeSrc": "3122:2:18", - "nodeType": "YulLiteral", - "src": "3122:2:18", - "type": "", - "value": "32" + "name": "len", + "nativeSrc": "6796:3:18", + "nodeType": "YulIdentifier", + "src": "6796:3:18" } ], "functionName": { - "name": "add", - "nativeSrc": "3107:3:18", + "name": "mask_bytes_dynamic", + "nativeSrc": "6771:18:18", "nodeType": "YulIdentifier", - "src": "3107:3:18" + "src": "6771:18:18" }, - "nativeSrc": "3107:18:18", + "nativeSrc": "6771:29:18", "nodeType": "YulFunctionCall", - "src": "3107:18:18" + "src": "6771:29:18" }, "variableNames": [ { - "name": "tail", - "nativeSrc": "3099:4:18", + "name": "data", + "nativeSrc": "6763:4:18", "nodeType": "YulIdentifier", - "src": "3099:4:18" + "src": "6763:4:18" } ] }, { - "expression": { + "nativeSrc": "6809:29:18", + "nodeType": "YulAssignment", + "src": "6809:29:18", + "value": { "arguments": [ { - "name": "value0", - "nativeSrc": "3173:6:18", + "name": "data", + "nativeSrc": "6820:4:18", "nodeType": "YulIdentifier", - "src": "3173:6:18" + "src": "6820:4:18" }, { "arguments": [ - { - "name": "headStart", - "nativeSrc": "3186:9:18", - "nodeType": "YulIdentifier", - "src": "3186:9:18" - }, { "kind": "number", - "nativeSrc": "3197:1:18", + "nativeSrc": "6830:1:18", "nodeType": "YulLiteral", - "src": "3197:1:18", + "src": "6830:1:18", "type": "", - "value": "0" + "value": "2" + }, + { + "name": "len", + "nativeSrc": "6833:3:18", + "nodeType": "YulIdentifier", + "src": "6833:3:18" } ], "functionName": { - "name": "add", - "nativeSrc": "3182:3:18", + "name": "mul", + "nativeSrc": "6826:3:18", "nodeType": "YulIdentifier", - "src": "3182:3:18" + "src": "6826:3:18" }, - "nativeSrc": "3182:17:18", + "nativeSrc": "6826:11:18", "nodeType": "YulFunctionCall", - "src": "3182:17:18" + "src": "6826:11:18" } ], "functionName": { - "name": "abi_encode_t_bool_to_t_bool_fromStack", - "nativeSrc": "3135:37:18", + "name": "or", + "nativeSrc": "6817:2:18", "nodeType": "YulIdentifier", - "src": "3135:37:18" + "src": "6817:2:18" }, - "nativeSrc": "3135:65:18", + "nativeSrc": "6817:21:18", "nodeType": "YulFunctionCall", - "src": "3135:65:18" + "src": "6817:21:18" }, - "nativeSrc": "3135:65:18", - "nodeType": "YulExpressionStatement", - "src": "3135:65:18" + "variableNames": [ + { + "name": "used", + "nativeSrc": "6809:4:18", + "nodeType": "YulIdentifier", + "src": "6809:4:18" + } + ] } ] }, - "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", - "nativeSrc": "2997:210:18", + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "6549:295:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nativeSrc": "3061:9:18", + "name": "data", + "nativeSrc": "6611:4:18", "nodeType": "YulTypedName", - "src": "3061:9:18", + "src": "6611:4:18", "type": "" }, { - "name": "value0", - "nativeSrc": "3073:6:18", + "name": "len", + "nativeSrc": "6617:3:18", "nodeType": "YulTypedName", - "src": "3073:6:18", + "src": "6617:3:18", "type": "" } ], "returnVariables": [ { - "name": "tail", - "nativeSrc": "3084:4:18", + "name": "used", + "nativeSrc": "6625:4:18", "nodeType": "YulTypedName", - "src": "3084:4:18", + "src": "6625:4:18", "type": "" } ], - "src": "2997:210:18" + "src": "6549:295:18" }, { "body": { - "nativeSrc": "3279:263:18", + "nativeSrc": "6941:1303:18", "nodeType": "YulBlock", - "src": "3279:263:18", + "src": "6941:1303:18", "statements": [ + { + "nativeSrc": "6952:51:18", + "nodeType": "YulVariableDeclaration", + "src": "6952:51:18", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "6999:3:18", + "nodeType": "YulIdentifier", + "src": "6999:3:18" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "6966:32:18", + "nodeType": "YulIdentifier", + "src": "6966:32:18" + }, + "nativeSrc": "6966:37:18", + "nodeType": "YulFunctionCall", + "src": "6966:37:18" + }, + "variables": [ + { + "name": "newLen", + "nativeSrc": "6956:6:18", + "nodeType": "YulTypedName", + "src": "6956:6:18", + "type": "" + } + ] + }, { "body": { - "nativeSrc": "3325:83:18", + "nativeSrc": "7088:22:18", "nodeType": "YulBlock", - "src": "3325:83:18", + "src": "7088:22:18", "statements": [ { "expression": { "arguments": [], "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "3327:77:18", + "name": "panic_error_0x41", + "nativeSrc": "7090:16:18", "nodeType": "YulIdentifier", - "src": "3327:77:18" + "src": "7090:16:18" }, - "nativeSrc": "3327:79:18", + "nativeSrc": "7090:18:18", "nodeType": "YulFunctionCall", - "src": "3327:79:18" + "src": "7090:18:18" }, - "nativeSrc": "3327:79:18", + "nativeSrc": "7090:18:18", "nodeType": "YulExpressionStatement", - "src": "3327:79:18" + "src": "7090:18:18" } ] }, "condition": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7060:6:18", + "nodeType": "YulIdentifier", + "src": "7060:6:18" + }, + { + "kind": "number", + "nativeSrc": "7068:18:18", + "nodeType": "YulLiteral", + "src": "7068:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7057:2:18", + "nodeType": "YulIdentifier", + "src": "7057:2:18" + }, + "nativeSrc": "7057:30:18", + "nodeType": "YulFunctionCall", + "src": "7057:30:18" + }, + "nativeSrc": "7054:56:18", + "nodeType": "YulIf", + "src": "7054:56:18" + }, + { + "nativeSrc": "7120:52:18", + "nodeType": "YulVariableDeclaration", + "src": "7120:52:18", + "value": { "arguments": [ { "arguments": [ { - "name": "dataEnd", - "nativeSrc": "3300:7:18", - "nodeType": "YulIdentifier", - "src": "3300:7:18" - }, - { - "name": "headStart", - "nativeSrc": "3309:9:18", + "name": "slot", + "nativeSrc": "7166:4:18", "nodeType": "YulIdentifier", - "src": "3309:9:18" + "src": "7166:4:18" } ], "functionName": { - "name": "sub", - "nativeSrc": "3296:3:18", + "name": "sload", + "nativeSrc": "7160:5:18", "nodeType": "YulIdentifier", - "src": "3296:3:18" + "src": "7160:5:18" }, - "nativeSrc": "3296:23:18", + "nativeSrc": "7160:11:18", "nodeType": "YulFunctionCall", - "src": "3296:23:18" + "src": "7160:11:18" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "7134:25:18", + "nodeType": "YulIdentifier", + "src": "7134:25:18" + }, + "nativeSrc": "7134:38:18", + "nodeType": "YulFunctionCall", + "src": "7134:38:18" + }, + "variables": [ + { + "name": "oldLen", + "nativeSrc": "7124:6:18", + "nodeType": "YulTypedName", + "src": "7124:6:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "7265:4:18", + "nodeType": "YulIdentifier", + "src": "7265:4:18" + }, + { + "name": "oldLen", + "nativeSrc": "7271:6:18", + "nodeType": "YulIdentifier", + "src": "7271:6:18" + }, + { + "name": "newLen", + "nativeSrc": "7279:6:18", + "nodeType": "YulIdentifier", + "src": "7279:6:18" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "7219:45:18", + "nodeType": "YulIdentifier", + "src": "7219:45:18" + }, + "nativeSrc": "7219:67:18", + "nodeType": "YulFunctionCall", + "src": "7219:67:18" + }, + "nativeSrc": "7219:67:18", + "nodeType": "YulExpressionStatement", + "src": "7219:67:18" + }, + { + "nativeSrc": "7296:18:18", + "nodeType": "YulVariableDeclaration", + "src": "7296:18:18", + "value": { + "kind": "number", + "nativeSrc": "7313:1:18", + "nodeType": "YulLiteral", + "src": "7313:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nativeSrc": "7300:9:18", + "nodeType": "YulTypedName", + "src": "7300:9:18", + "type": "" + } + ] + }, + { + "nativeSrc": "7324:17:18", + "nodeType": "YulAssignment", + "src": "7324:17:18", + "value": { + "kind": "number", + "nativeSrc": "7337:4:18", + "nodeType": "YulLiteral", + "src": "7337:4:18", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "7324:9:18", + "nodeType": "YulIdentifier", + "src": "7324:9:18" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "7388:611:18", + "nodeType": "YulBlock", + "src": "7388:611:18", + "statements": [ + { + "nativeSrc": "7402:37:18", + "nodeType": "YulVariableDeclaration", + "src": "7402:37:18", + "value": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7421:6:18", + "nodeType": "YulIdentifier", + "src": "7421:6:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7433:4:18", + "nodeType": "YulLiteral", + "src": "7433:4:18", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "7429:3:18", + "nodeType": "YulIdentifier", + "src": "7429:3:18" + }, + "nativeSrc": "7429:9:18", + "nodeType": "YulFunctionCall", + "src": "7429:9:18" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "7417:3:18", + "nodeType": "YulIdentifier", + "src": "7417:3:18" + }, + "nativeSrc": "7417:22:18", + "nodeType": "YulFunctionCall", + "src": "7417:22:18" + }, + "variables": [ + { + "name": "loopEnd", + "nativeSrc": "7406:7:18", + "nodeType": "YulTypedName", + "src": "7406:7:18", + "type": "" + } + ] + }, + { + "nativeSrc": "7453:51:18", + "nodeType": "YulVariableDeclaration", + "src": "7453:51:18", + "value": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "7499:4:18", + "nodeType": "YulIdentifier", + "src": "7499:4:18" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "7467:31:18", + "nodeType": "YulIdentifier", + "src": "7467:31:18" + }, + "nativeSrc": "7467:37:18", + "nodeType": "YulFunctionCall", + "src": "7467:37:18" + }, + "variables": [ + { + "name": "dstPtr", + "nativeSrc": "7457:6:18", + "nodeType": "YulTypedName", + "src": "7457:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "7517:10:18", + "nodeType": "YulVariableDeclaration", + "src": "7517:10:18", + "value": { + "kind": "number", + "nativeSrc": "7526:1:18", + "nodeType": "YulLiteral", + "src": "7526:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "7521:1:18", + "nodeType": "YulTypedName", + "src": "7521:1:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "7585:163:18", + "nodeType": "YulBlock", + "src": "7585:163:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "7610:6:18", + "nodeType": "YulIdentifier", + "src": "7610:6:18" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "7628:3:18", + "nodeType": "YulIdentifier", + "src": "7628:3:18" + }, + { + "name": "srcOffset", + "nativeSrc": "7633:9:18", + "nodeType": "YulIdentifier", + "src": "7633:9:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7624:3:18", + "nodeType": "YulIdentifier", + "src": "7624:3:18" + }, + "nativeSrc": "7624:19:18", + "nodeType": "YulFunctionCall", + "src": "7624:19:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "7618:5:18", + "nodeType": "YulIdentifier", + "src": "7618:5:18" + }, + "nativeSrc": "7618:26:18", + "nodeType": "YulFunctionCall", + "src": "7618:26:18" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "7603:6:18", + "nodeType": "YulIdentifier", + "src": "7603:6:18" + }, + "nativeSrc": "7603:42:18", + "nodeType": "YulFunctionCall", + "src": "7603:42:18" + }, + "nativeSrc": "7603:42:18", + "nodeType": "YulExpressionStatement", + "src": "7603:42:18" + }, + { + "nativeSrc": "7662:24:18", + "nodeType": "YulAssignment", + "src": "7662:24:18", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "7676:6:18", + "nodeType": "YulIdentifier", + "src": "7676:6:18" + }, + { + "kind": "number", + "nativeSrc": "7684:1:18", + "nodeType": "YulLiteral", + "src": "7684:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7672:3:18", + "nodeType": "YulIdentifier", + "src": "7672:3:18" + }, + "nativeSrc": "7672:14:18", + "nodeType": "YulFunctionCall", + "src": "7672:14:18" + }, + "variableNames": [ + { + "name": "dstPtr", + "nativeSrc": "7662:6:18", + "nodeType": "YulIdentifier", + "src": "7662:6:18" + } + ] + }, + { + "nativeSrc": "7703:31:18", + "nodeType": "YulAssignment", + "src": "7703:31:18", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nativeSrc": "7720:9:18", + "nodeType": "YulIdentifier", + "src": "7720:9:18" + }, + { + "kind": "number", + "nativeSrc": "7731:2:18", + "nodeType": "YulLiteral", + "src": "7731:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7716:3:18", + "nodeType": "YulIdentifier", + "src": "7716:3:18" + }, + "nativeSrc": "7716:18:18", + "nodeType": "YulFunctionCall", + "src": "7716:18:18" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "7703:9:18", + "nodeType": "YulIdentifier", + "src": "7703:9:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "7551:1:18", + "nodeType": "YulIdentifier", + "src": "7551:1:18" + }, + { + "name": "loopEnd", + "nativeSrc": "7554:7:18", + "nodeType": "YulIdentifier", + "src": "7554:7:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "7548:2:18", + "nodeType": "YulIdentifier", + "src": "7548:2:18" + }, + "nativeSrc": "7548:14:18", + "nodeType": "YulFunctionCall", + "src": "7548:14:18" + }, + "nativeSrc": "7540:208:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "7563:21:18", + "nodeType": "YulBlock", + "src": "7563:21:18", + "statements": [ + { + "nativeSrc": "7565:17:18", + "nodeType": "YulAssignment", + "src": "7565:17:18", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "7574:1:18", + "nodeType": "YulIdentifier", + "src": "7574:1:18" + }, + { + "kind": "number", + "nativeSrc": "7577:4:18", + "nodeType": "YulLiteral", + "src": "7577:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7570:3:18", + "nodeType": "YulIdentifier", + "src": "7570:3:18" + }, + "nativeSrc": "7570:12:18", + "nodeType": "YulFunctionCall", + "src": "7570:12:18" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "7565:1:18", + "nodeType": "YulIdentifier", + "src": "7565:1:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "7544:3:18", + "nodeType": "YulBlock", + "src": "7544:3:18", + "statements": [] + }, + "src": "7540:208:18" + }, + { + "body": { + "nativeSrc": "7784:156:18", + "nodeType": "YulBlock", + "src": "7784:156:18", + "statements": [ + { + "nativeSrc": "7802:43:18", + "nodeType": "YulVariableDeclaration", + "src": "7802:43:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "7829:3:18", + "nodeType": "YulIdentifier", + "src": "7829:3:18" + }, + { + "name": "srcOffset", + "nativeSrc": "7834:9:18", + "nodeType": "YulIdentifier", + "src": "7834:9:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7825:3:18", + "nodeType": "YulIdentifier", + "src": "7825:3:18" + }, + "nativeSrc": "7825:19:18", + "nodeType": "YulFunctionCall", + "src": "7825:19:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "7819:5:18", + "nodeType": "YulIdentifier", + "src": "7819:5:18" + }, + "nativeSrc": "7819:26:18", + "nodeType": "YulFunctionCall", + "src": "7819:26:18" + }, + "variables": [ + { + "name": "lastValue", + "nativeSrc": "7806:9:18", + "nodeType": "YulTypedName", + "src": "7806:9:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "7869:6:18", + "nodeType": "YulIdentifier", + "src": "7869:6:18" + }, + { + "arguments": [ + { + "name": "lastValue", + "nativeSrc": "7896:9:18", + "nodeType": "YulIdentifier", + "src": "7896:9:18" + }, + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7911:6:18", + "nodeType": "YulIdentifier", + "src": "7911:6:18" + }, + { + "kind": "number", + "nativeSrc": "7919:4:18", + "nodeType": "YulLiteral", + "src": "7919:4:18", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "7907:3:18", + "nodeType": "YulIdentifier", + "src": "7907:3:18" + }, + "nativeSrc": "7907:17:18", + "nodeType": "YulFunctionCall", + "src": "7907:17:18" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "7877:18:18", + "nodeType": "YulIdentifier", + "src": "7877:18:18" + }, + "nativeSrc": "7877:48:18", + "nodeType": "YulFunctionCall", + "src": "7877:48:18" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "7862:6:18", + "nodeType": "YulIdentifier", + "src": "7862:6:18" + }, + "nativeSrc": "7862:64:18", + "nodeType": "YulFunctionCall", + "src": "7862:64:18" + }, + "nativeSrc": "7862:64:18", + "nodeType": "YulExpressionStatement", + "src": "7862:64:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nativeSrc": "7767:7:18", + "nodeType": "YulIdentifier", + "src": "7767:7:18" + }, + { + "name": "newLen", + "nativeSrc": "7776:6:18", + "nodeType": "YulIdentifier", + "src": "7776:6:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "7764:2:18", + "nodeType": "YulIdentifier", + "src": "7764:2:18" + }, + "nativeSrc": "7764:19:18", + "nodeType": "YulFunctionCall", + "src": "7764:19:18" + }, + "nativeSrc": "7761:179:18", + "nodeType": "YulIf", + "src": "7761:179:18" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "7960:4:18", + "nodeType": "YulIdentifier", + "src": "7960:4:18" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "7974:6:18", + "nodeType": "YulIdentifier", + "src": "7974:6:18" + }, + { + "kind": "number", + "nativeSrc": "7982:1:18", + "nodeType": "YulLiteral", + "src": "7982:1:18", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "7970:3:18", + "nodeType": "YulIdentifier", + "src": "7970:3:18" + }, + "nativeSrc": "7970:14:18", + "nodeType": "YulFunctionCall", + "src": "7970:14:18" + }, + { + "kind": "number", + "nativeSrc": "7986:1:18", + "nodeType": "YulLiteral", + "src": "7986:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7966:3:18", + "nodeType": "YulIdentifier", + "src": "7966:3:18" + }, + "nativeSrc": "7966:22:18", + "nodeType": "YulFunctionCall", + "src": "7966:22:18" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "7953:6:18", + "nodeType": "YulIdentifier", + "src": "7953:6:18" + }, + "nativeSrc": "7953:36:18", + "nodeType": "YulFunctionCall", + "src": "7953:36:18" + }, + "nativeSrc": "7953:36:18", + "nodeType": "YulExpressionStatement", + "src": "7953:36:18" + } + ] }, - { - "kind": "number", - "nativeSrc": "3321:2:18", - "nodeType": "YulLiteral", - "src": "3321:2:18", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "3292:3:18", - "nodeType": "YulIdentifier", - "src": "3292:3:18" - }, - "nativeSrc": "3292:32:18", - "nodeType": "YulFunctionCall", - "src": "3292:32:18" - }, - "nativeSrc": "3289:119:18", - "nodeType": "YulIf", - "src": "3289:119:18" - }, - { - "nativeSrc": "3418:117:18", - "nodeType": "YulBlock", - "src": "3418:117:18", - "statements": [ - { - "nativeSrc": "3433:15:18", - "nodeType": "YulVariableDeclaration", - "src": "3433:15:18", + "nativeSrc": "7381:618:18", + "nodeType": "YulCase", + "src": "7381:618:18", "value": { "kind": "number", - "nativeSrc": "3447:1:18", + "nativeSrc": "7386:1:18", "nodeType": "YulLiteral", - "src": "3447:1:18", + "src": "7386:1:18", "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "3437:6:18", - "nodeType": "YulTypedName", - "src": "3437:6:18", - "type": "" - } - ] + "value": "1" + } }, { - "nativeSrc": "3462:63:18", - "nodeType": "YulAssignment", - "src": "3462:63:18", - "value": { - "arguments": [ + "body": { + "nativeSrc": "8016:222:18", + "nodeType": "YulBlock", + "src": "8016:222:18", + "statements": [ { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "3497:9:18", - "nodeType": "YulIdentifier", - "src": "3497:9:18" - }, + "nativeSrc": "8030:14:18", + "nodeType": "YulVariableDeclaration", + "src": "8030:14:18", + "value": { + "kind": "number", + "nativeSrc": "8043:1:18", + "nodeType": "YulLiteral", + "src": "8043:1:18", + "type": "", + "value": "0" + }, + "variables": [ { - "name": "offset", - "nativeSrc": "3508:6:18", - "nodeType": "YulIdentifier", - "src": "3508:6:18" + "name": "value", + "nativeSrc": "8034:5:18", + "nodeType": "YulTypedName", + "src": "8034:5:18", + "type": "" } - ], - "functionName": { - "name": "add", - "nativeSrc": "3493:3:18", + ] + }, + { + "body": { + "nativeSrc": "8067:67:18", + "nodeType": "YulBlock", + "src": "8067:67:18", + "statements": [ + { + "nativeSrc": "8085:35:18", + "nodeType": "YulAssignment", + "src": "8085:35:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "8104:3:18", + "nodeType": "YulIdentifier", + "src": "8104:3:18" + }, + { + "name": "srcOffset", + "nativeSrc": "8109:9:18", + "nodeType": "YulIdentifier", + "src": "8109:9:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8100:3:18", + "nodeType": "YulIdentifier", + "src": "8100:3:18" + }, + "nativeSrc": "8100:19:18", + "nodeType": "YulFunctionCall", + "src": "8100:19:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "8094:5:18", + "nodeType": "YulIdentifier", + "src": "8094:5:18" + }, + "nativeSrc": "8094:26:18", + "nodeType": "YulFunctionCall", + "src": "8094:26:18" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "8085:5:18", + "nodeType": "YulIdentifier", + "src": "8085:5:18" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nativeSrc": "8060:6:18", "nodeType": "YulIdentifier", - "src": "3493:3:18" + "src": "8060:6:18" }, - "nativeSrc": "3493:22:18", - "nodeType": "YulFunctionCall", - "src": "3493:22:18" + "nativeSrc": "8057:77:18", + "nodeType": "YulIf", + "src": "8057:77:18" }, { - "name": "dataEnd", - "nativeSrc": "3517:7:18", - "nodeType": "YulIdentifier", - "src": "3517:7:18" + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "8154:4:18", + "nodeType": "YulIdentifier", + "src": "8154:4:18" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "8213:5:18", + "nodeType": "YulIdentifier", + "src": "8213:5:18" + }, + { + "name": "newLen", + "nativeSrc": "8220:6:18", + "nodeType": "YulIdentifier", + "src": "8220:6:18" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "8160:52:18", + "nodeType": "YulIdentifier", + "src": "8160:52:18" + }, + "nativeSrc": "8160:67:18", + "nodeType": "YulFunctionCall", + "src": "8160:67:18" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "8147:6:18", + "nodeType": "YulIdentifier", + "src": "8147:6:18" + }, + "nativeSrc": "8147:81:18", + "nodeType": "YulFunctionCall", + "src": "8147:81:18" + }, + "nativeSrc": "8147:81:18", + "nodeType": "YulExpressionStatement", + "src": "8147:81:18" } - ], - "functionName": { - "name": "abi_decode_t_uint256", - "nativeSrc": "3472:20:18", - "nodeType": "YulIdentifier", - "src": "3472:20:18" - }, - "nativeSrc": "3472:53:18", - "nodeType": "YulFunctionCall", - "src": "3472:53:18" + ] }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "3462:6:18", - "nodeType": "YulIdentifier", - "src": "3462:6:18" - } - ] + "nativeSrc": "8008:230:18", + "nodeType": "YulCase", + "src": "8008:230:18", + "value": "default" } - ] - } - ] - }, - "name": "abi_decode_tuple_t_uint256", - "nativeSrc": "3213:329:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "3249:9:18", - "nodeType": "YulTypedName", - "src": "3249:9:18", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "3260:7:18", - "nodeType": "YulTypedName", - "src": "3260:7:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "3272:6:18", - "nodeType": "YulTypedName", - "src": "3272:6:18", - "type": "" - } - ], - "src": "3213:329:18" - }, - { - "body": { - "nativeSrc": "3607:40:18", - "nodeType": "YulBlock", - "src": "3607:40:18", - "statements": [ - { - "nativeSrc": "3618:22:18", - "nodeType": "YulAssignment", - "src": "3618:22:18", - "value": { + ], + "expression": { "arguments": [ { - "name": "value", - "nativeSrc": "3634:5:18", + "name": "newLen", + "nativeSrc": "7361:6:18", "nodeType": "YulIdentifier", - "src": "3634:5:18" + "src": "7361:6:18" + }, + { + "kind": "number", + "nativeSrc": "7369:2:18", + "nodeType": "YulLiteral", + "src": "7369:2:18", + "type": "", + "value": "31" } ], "functionName": { - "name": "mload", - "nativeSrc": "3628:5:18", + "name": "gt", + "nativeSrc": "7358:2:18", "nodeType": "YulIdentifier", - "src": "3628:5:18" + "src": "7358:2:18" }, - "nativeSrc": "3628:12:18", + "nativeSrc": "7358:14:18", "nodeType": "YulFunctionCall", - "src": "3628:12:18" + "src": "7358:14:18" }, - "variableNames": [ - { - "name": "length", - "nativeSrc": "3618:6:18", - "nodeType": "YulIdentifier", - "src": "3618:6:18" - } - ] + "nativeSrc": "7351:887:18", + "nodeType": "YulSwitch", + "src": "7351:887:18" } ] }, - "name": "array_length_t_string_memory_ptr", - "nativeSrc": "3548:99:18", + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nativeSrc": "6849:1395:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", - "nativeSrc": "3590:5:18", + "name": "slot", + "nativeSrc": "6930:4:18", "nodeType": "YulTypedName", - "src": "3590:5:18", + "src": "6930:4:18", "type": "" - } - ], - "returnVariables": [ + }, { - "name": "length", - "nativeSrc": "3600:6:18", + "name": "src", + "nativeSrc": "6936:3:18", "nodeType": "YulTypedName", - "src": "3600:6:18", + "src": "6936:3:18", "type": "" } ], - "src": "3548:99:18" + "src": "6849:1395:18" }, { "body": { - "nativeSrc": "3749:73:18", + "nativeSrc": "8346:73:18", "nodeType": "YulBlock", - "src": "3749:73:18", + "src": "8346:73:18", "statements": [ { "expression": { "arguments": [ { "name": "pos", - "nativeSrc": "3766:3:18", + "nativeSrc": "8363:3:18", "nodeType": "YulIdentifier", - "src": "3766:3:18" + "src": "8363:3:18" }, { "name": "length", - "nativeSrc": "3771:6:18", + "nativeSrc": "8368:6:18", "nodeType": "YulIdentifier", - "src": "3771:6:18" + "src": "8368:6:18" } ], "functionName": { "name": "mstore", - "nativeSrc": "3759:6:18", + "nativeSrc": "8356:6:18", "nodeType": "YulIdentifier", - "src": "3759:6:18" + "src": "8356:6:18" }, - "nativeSrc": "3759:19:18", + "nativeSrc": "8356:19:18", "nodeType": "YulFunctionCall", - "src": "3759:19:18" + "src": "8356:19:18" }, - "nativeSrc": "3759:19:18", + "nativeSrc": "8356:19:18", "nodeType": "YulExpressionStatement", - "src": "3759:19:18" + "src": "8356:19:18" }, { - "nativeSrc": "3787:29:18", + "nativeSrc": "8384:29:18", "nodeType": "YulAssignment", - "src": "3787:29:18", + "src": "8384:29:18", "value": { "arguments": [ { "name": "pos", - "nativeSrc": "3806:3:18", + "nativeSrc": "8403:3:18", "nodeType": "YulIdentifier", - "src": "3806:3:18" + "src": "8403:3:18" }, { "kind": "number", - "nativeSrc": "3811:4:18", + "nativeSrc": "8408:4:18", "nodeType": "YulLiteral", - "src": "3811:4:18", + "src": "8408:4:18", "type": "", "value": "0x20" } ], "functionName": { "name": "add", - "nativeSrc": "3802:3:18", + "nativeSrc": "8399:3:18", "nodeType": "YulIdentifier", - "src": "3802:3:18" + "src": "8399:3:18" }, - "nativeSrc": "3802:14:18", + "nativeSrc": "8399:14:18", "nodeType": "YulFunctionCall", - "src": "3802:14:18" + "src": "8399:14:18" }, "variableNames": [ { "name": "updated_pos", - "nativeSrc": "3787:11:18", + "nativeSrc": "8384:11:18", "nodeType": "YulIdentifier", - "src": "3787:11:18" + "src": "8384:11:18" } ] } ] }, "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nativeSrc": "3653:169:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "3721:3:18", - "nodeType": "YulTypedName", - "src": "3721:3:18", - "type": "" - }, - { - "name": "length", - "nativeSrc": "3726:6:18", - "nodeType": "YulTypedName", - "src": "3726:6:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updated_pos", - "nativeSrc": "3737:11:18", - "nodeType": "YulTypedName", - "src": "3737:11:18", - "type": "" - } - ], - "src": "3653:169:18" - }, - { - "body": { - "nativeSrc": "3890:184:18", - "nodeType": "YulBlock", - "src": "3890:184:18", - "statements": [ - { - "nativeSrc": "3900:10:18", - "nodeType": "YulVariableDeclaration", - "src": "3900:10:18", - "value": { - "kind": "number", - "nativeSrc": "3909:1:18", - "nodeType": "YulLiteral", - "src": "3909:1:18", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nativeSrc": "3904:1:18", - "nodeType": "YulTypedName", - "src": "3904:1:18", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "3969:63:18", - "nodeType": "YulBlock", - "src": "3969:63:18", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nativeSrc": "3994:3:18", - "nodeType": "YulIdentifier", - "src": "3994:3:18" - }, - { - "name": "i", - "nativeSrc": "3999:1:18", - "nodeType": "YulIdentifier", - "src": "3999:1:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3990:3:18", - "nodeType": "YulIdentifier", - "src": "3990:3:18" - }, - "nativeSrc": "3990:11:18", - "nodeType": "YulFunctionCall", - "src": "3990:11:18" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "4013:3:18", - "nodeType": "YulIdentifier", - "src": "4013:3:18" - }, - { - "name": "i", - "nativeSrc": "4018:1:18", - "nodeType": "YulIdentifier", - "src": "4018:1:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4009:3:18", - "nodeType": "YulIdentifier", - "src": "4009:3:18" - }, - "nativeSrc": "4009:11:18", - "nodeType": "YulFunctionCall", - "src": "4009:11:18" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "4003:5:18", - "nodeType": "YulIdentifier", - "src": "4003:5:18" - }, - "nativeSrc": "4003:18:18", - "nodeType": "YulFunctionCall", - "src": "4003:18:18" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "3983:6:18", - "nodeType": "YulIdentifier", - "src": "3983:6:18" - }, - "nativeSrc": "3983:39:18", - "nodeType": "YulFunctionCall", - "src": "3983:39:18" - }, - "nativeSrc": "3983:39:18", - "nodeType": "YulExpressionStatement", - "src": "3983:39:18" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nativeSrc": "3930:1:18", - "nodeType": "YulIdentifier", - "src": "3930:1:18" - }, - { - "name": "length", - "nativeSrc": "3933:6:18", - "nodeType": "YulIdentifier", - "src": "3933:6:18" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "3927:2:18", - "nodeType": "YulIdentifier", - "src": "3927:2:18" - }, - "nativeSrc": "3927:13:18", - "nodeType": "YulFunctionCall", - "src": "3927:13:18" - }, - "nativeSrc": "3919:113:18", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "3941:19:18", - "nodeType": "YulBlock", - "src": "3941:19:18", - "statements": [ - { - "nativeSrc": "3943:15:18", - "nodeType": "YulAssignment", - "src": "3943:15:18", - "value": { - "arguments": [ - { - "name": "i", - "nativeSrc": "3952:1:18", - "nodeType": "YulIdentifier", - "src": "3952:1:18" - }, - { - "kind": "number", - "nativeSrc": "3955:2:18", - "nodeType": "YulLiteral", - "src": "3955:2:18", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "3948:3:18", - "nodeType": "YulIdentifier", - "src": "3948:3:18" - }, - "nativeSrc": "3948:10:18", - "nodeType": "YulFunctionCall", - "src": "3948:10:18" - }, - "variableNames": [ - { - "name": "i", - "nativeSrc": "3943:1:18", - "nodeType": "YulIdentifier", - "src": "3943:1:18" - } - ] - } - ] - }, - "pre": { - "nativeSrc": "3923:3:18", - "nodeType": "YulBlock", - "src": "3923:3:18", - "statements": [] - }, - "src": "3919:113:18" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nativeSrc": "4052:3:18", - "nodeType": "YulIdentifier", - "src": "4052:3:18" - }, - { - "name": "length", - "nativeSrc": "4057:6:18", - "nodeType": "YulIdentifier", - "src": "4057:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4048:3:18", - "nodeType": "YulIdentifier", - "src": "4048:3:18" - }, - "nativeSrc": "4048:16:18", - "nodeType": "YulFunctionCall", - "src": "4048:16:18" - }, - { - "kind": "number", - "nativeSrc": "4066:1:18", - "nodeType": "YulLiteral", - "src": "4066:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "4041:6:18", - "nodeType": "YulIdentifier", - "src": "4041:6:18" - }, - "nativeSrc": "4041:27:18", - "nodeType": "YulFunctionCall", - "src": "4041:27:18" - }, - "nativeSrc": "4041:27:18", - "nodeType": "YulExpressionStatement", - "src": "4041:27:18" - } - ] - }, - "name": "copy_memory_to_memory_with_cleanup", - "nativeSrc": "3828:246:18", + "nativeSrc": "8250:169:18", "nodeType": "YulFunctionDefinition", "parameters": [ - { - "name": "src", - "nativeSrc": "3872:3:18", + { + "name": "pos", + "nativeSrc": "8318:3:18", "nodeType": "YulTypedName", - "src": "3872:3:18", + "src": "8318:3:18", "type": "" }, { - "name": "dst", - "nativeSrc": "3877:3:18", + "name": "length", + "nativeSrc": "8323:6:18", "nodeType": "YulTypedName", - "src": "3877:3:18", + "src": "8323:6:18", "type": "" - }, + } + ], + "returnVariables": [ { - "name": "length", - "nativeSrc": "3882:6:18", + "name": "updated_pos", + "nativeSrc": "8334:11:18", "nodeType": "YulTypedName", - "src": "3882:6:18", + "src": "8334:11:18", "type": "" } ], - "src": "3828:246:18" + "src": "8250:169:18" }, { "body": { - "nativeSrc": "4128:54:18", + "nativeSrc": "8531:63:18", "nodeType": "YulBlock", - "src": "4128:54:18", + "src": "8531:63:18", "statements": [ { - "nativeSrc": "4138:38:18", - "nodeType": "YulAssignment", - "src": "4138:38:18", - "value": { + "expression": { "arguments": [ { "arguments": [ { - "name": "value", - "nativeSrc": "4156:5:18", + "name": "memPtr", + "nativeSrc": "8553:6:18", "nodeType": "YulIdentifier", - "src": "4156:5:18" + "src": "8553:6:18" }, { "kind": "number", - "nativeSrc": "4163:2:18", + "nativeSrc": "8561:1:18", "nodeType": "YulLiteral", - "src": "4163:2:18", + "src": "8561:1:18", "type": "", - "value": "31" + "value": "0" } ], "functionName": { "name": "add", - "nativeSrc": "4152:3:18", + "nativeSrc": "8549:3:18", "nodeType": "YulIdentifier", - "src": "4152:3:18" + "src": "8549:3:18" }, - "nativeSrc": "4152:14:18", + "nativeSrc": "8549:14:18", "nodeType": "YulFunctionCall", - "src": "4152:14:18" + "src": "8549:14:18" }, { - "arguments": [ - { - "kind": "number", - "nativeSrc": "4172:2:18", - "nodeType": "YulLiteral", - "src": "4172:2:18", - "type": "", - "value": "31" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "4168:3:18", - "nodeType": "YulIdentifier", - "src": "4168:3:18" - }, - "nativeSrc": "4168:7:18", - "nodeType": "YulFunctionCall", - "src": "4168:7:18" + "hexValue": "5552492063616e6e6f7420626520656d707479", + "kind": "string", + "nativeSrc": "8565:21:18", + "nodeType": "YulLiteral", + "src": "8565:21:18", + "type": "", + "value": "URI cannot be empty" } ], "functionName": { - "name": "and", - "nativeSrc": "4148:3:18", + "name": "mstore", + "nativeSrc": "8542:6:18", "nodeType": "YulIdentifier", - "src": "4148:3:18" + "src": "8542:6:18" }, - "nativeSrc": "4148:28:18", + "nativeSrc": "8542:45:18", "nodeType": "YulFunctionCall", - "src": "4148:28:18" + "src": "8542:45:18" }, - "variableNames": [ - { - "name": "result", - "nativeSrc": "4138:6:18", - "nodeType": "YulIdentifier", - "src": "4138:6:18" - } - ] + "nativeSrc": "8542:45:18", + "nodeType": "YulExpressionStatement", + "src": "8542:45:18" } ] }, - "name": "round_up_to_mul_of_32", - "nativeSrc": "4080:102:18", + "name": "store_literal_in_memory_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231", + "nativeSrc": "8425:169:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", - "nativeSrc": "4111:5:18", - "nodeType": "YulTypedName", - "src": "4111:5:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "result", - "nativeSrc": "4121:6:18", + "name": "memPtr", + "nativeSrc": "8523:6:18", "nodeType": "YulTypedName", - "src": "4121:6:18", + "src": "8523:6:18", "type": "" } ], - "src": "4080:102:18" + "src": "8425:169:18" }, { "body": { - "nativeSrc": "4280:285:18", + "nativeSrc": "8746:220:18", "nodeType": "YulBlock", - "src": "4280:285:18", + "src": "8746:220:18", "statements": [ { - "nativeSrc": "4290:53:18", - "nodeType": "YulVariableDeclaration", - "src": "4290:53:18", + "nativeSrc": "8756:74:18", + "nodeType": "YulAssignment", + "src": "8756:74:18", "value": { "arguments": [ { - "name": "value", - "nativeSrc": "4337:5:18", + "name": "pos", + "nativeSrc": "8822:3:18", "nodeType": "YulIdentifier", - "src": "4337:5:18" + "src": "8822:3:18" + }, + { + "kind": "number", + "nativeSrc": "8827:2:18", + "nodeType": "YulLiteral", + "src": "8827:2:18", + "type": "", + "value": "19" } ], "functionName": { - "name": "array_length_t_string_memory_ptr", - "nativeSrc": "4304:32:18", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "8763:58:18", "nodeType": "YulIdentifier", - "src": "4304:32:18" + "src": "8763:58:18" }, - "nativeSrc": "4304:39:18", + "nativeSrc": "8763:67:18", "nodeType": "YulFunctionCall", - "src": "4304:39:18" + "src": "8763:67:18" }, - "variables": [ + "variableNames": [ { - "name": "length", - "nativeSrc": "4294:6:18", - "nodeType": "YulTypedName", - "src": "4294:6:18", - "type": "" + "name": "pos", + "nativeSrc": "8756:3:18", + "nodeType": "YulIdentifier", + "src": "8756:3:18" } ] }, { - "nativeSrc": "4352:78:18", + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "8928:3:18", + "nodeType": "YulIdentifier", + "src": "8928:3:18" + } + ], + "functionName": { + "name": "store_literal_in_memory_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231", + "nativeSrc": "8839:88:18", + "nodeType": "YulIdentifier", + "src": "8839:88:18" + }, + "nativeSrc": "8839:93:18", + "nodeType": "YulFunctionCall", + "src": "8839:93:18" + }, + "nativeSrc": "8839:93:18", + "nodeType": "YulExpressionStatement", + "src": "8839:93:18" + }, + { + "nativeSrc": "8941:19:18", "nodeType": "YulAssignment", - "src": "4352:78:18", + "src": "8941:19:18", "value": { "arguments": [ { "name": "pos", - "nativeSrc": "4418:3:18", + "nativeSrc": "8952:3:18", "nodeType": "YulIdentifier", - "src": "4418:3:18" + "src": "8952:3:18" }, { - "name": "length", - "nativeSrc": "4423:6:18", + "kind": "number", + "nativeSrc": "8957:2:18", + "nodeType": "YulLiteral", + "src": "8957:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8948:3:18", + "nodeType": "YulIdentifier", + "src": "8948:3:18" + }, + "nativeSrc": "8948:12:18", + "nodeType": "YulFunctionCall", + "src": "8948:12:18" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "8941:3:18", + "nodeType": "YulIdentifier", + "src": "8941:3:18" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack", + "nativeSrc": "8600:366:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "8734:3:18", + "nodeType": "YulTypedName", + "src": "8734:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "8742:3:18", + "nodeType": "YulTypedName", + "src": "8742:3:18", + "type": "" + } + ], + "src": "8600:366:18" + }, + { + "body": { + "nativeSrc": "9143:248:18", + "nodeType": "YulBlock", + "src": "9143:248:18", + "statements": [ + { + "nativeSrc": "9153:26:18", + "nodeType": "YulAssignment", + "src": "9153:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9165:9:18", "nodeType": "YulIdentifier", - "src": "4423:6:18" + "src": "9165:9:18" + }, + { + "kind": "number", + "nativeSrc": "9176:2:18", + "nodeType": "YulLiteral", + "src": "9176:2:18", + "type": "", + "value": "32" } ], "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nativeSrc": "4359:58:18", + "name": "add", + "nativeSrc": "9161:3:18", "nodeType": "YulIdentifier", - "src": "4359:58:18" + "src": "9161:3:18" }, - "nativeSrc": "4359:71:18", + "nativeSrc": "9161:18:18", "nodeType": "YulFunctionCall", - "src": "4359:71:18" + "src": "9161:18:18" }, "variableNames": [ { - "name": "pos", - "nativeSrc": "4352:3:18", + "name": "tail", + "nativeSrc": "9153:4:18", "nodeType": "YulIdentifier", - "src": "4352:3:18" + "src": "9153:4:18" } ] }, @@ -62851,1254 +63162,1553 @@ { "arguments": [ { - "name": "value", - "nativeSrc": "4478:5:18", + "name": "headStart", + "nativeSrc": "9200:9:18", "nodeType": "YulIdentifier", - "src": "4478:5:18" + "src": "9200:9:18" }, { "kind": "number", - "nativeSrc": "4485:4:18", + "nativeSrc": "9211:1:18", "nodeType": "YulLiteral", - "src": "4485:4:18", + "src": "9211:1:18", "type": "", - "value": "0x20" + "value": "0" } ], "functionName": { "name": "add", - "nativeSrc": "4474:3:18", + "nativeSrc": "9196:3:18", "nodeType": "YulIdentifier", - "src": "4474:3:18" + "src": "9196:3:18" }, - "nativeSrc": "4474:16:18", + "nativeSrc": "9196:17:18", "nodeType": "YulFunctionCall", - "src": "4474:16:18" + "src": "9196:17:18" }, { - "name": "pos", - "nativeSrc": "4492:3:18", - "nodeType": "YulIdentifier", - "src": "4492:3:18" - }, - { - "name": "length", - "nativeSrc": "4497:6:18", - "nodeType": "YulIdentifier", - "src": "4497:6:18" + "arguments": [ + { + "name": "tail", + "nativeSrc": "9219:4:18", + "nodeType": "YulIdentifier", + "src": "9219:4:18" + }, + { + "name": "headStart", + "nativeSrc": "9225:9:18", + "nodeType": "YulIdentifier", + "src": "9225:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9215:3:18", + "nodeType": "YulIdentifier", + "src": "9215:3:18" + }, + "nativeSrc": "9215:20:18", + "nodeType": "YulFunctionCall", + "src": "9215:20:18" } ], "functionName": { - "name": "copy_memory_to_memory_with_cleanup", - "nativeSrc": "4439:34:18", + "name": "mstore", + "nativeSrc": "9189:6:18", "nodeType": "YulIdentifier", - "src": "4439:34:18" + "src": "9189:6:18" }, - "nativeSrc": "4439:65:18", + "nativeSrc": "9189:47:18", "nodeType": "YulFunctionCall", - "src": "4439:65:18" + "src": "9189:47:18" }, - "nativeSrc": "4439:65:18", + "nativeSrc": "9189:47:18", "nodeType": "YulExpressionStatement", - "src": "4439:65:18" + "src": "9189:47:18" }, { - "nativeSrc": "4513:46:18", + "nativeSrc": "9245:139:18", "nodeType": "YulAssignment", - "src": "4513:46:18", + "src": "9245:139:18", "value": { "arguments": [ { - "name": "pos", - "nativeSrc": "4524:3:18", + "name": "tail", + "nativeSrc": "9379:4:18", "nodeType": "YulIdentifier", - "src": "4524:3:18" - }, - { - "arguments": [ - { - "name": "length", - "nativeSrc": "4551:6:18", - "nodeType": "YulIdentifier", - "src": "4551:6:18" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nativeSrc": "4529:21:18", - "nodeType": "YulIdentifier", - "src": "4529:21:18" - }, - "nativeSrc": "4529:29:18", - "nodeType": "YulFunctionCall", - "src": "4529:29:18" + "src": "9379:4:18" } ], "functionName": { - "name": "add", - "nativeSrc": "4520:3:18", + "name": "abi_encode_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack", + "nativeSrc": "9253:124:18", "nodeType": "YulIdentifier", - "src": "4520:3:18" + "src": "9253:124:18" }, - "nativeSrc": "4520:39:18", + "nativeSrc": "9253:131:18", "nodeType": "YulFunctionCall", - "src": "4520:39:18" + "src": "9253:131:18" }, "variableNames": [ { - "name": "end", - "nativeSrc": "4513:3:18", + "name": "tail", + "nativeSrc": "9245:4:18", "nodeType": "YulIdentifier", - "src": "4513:3:18" + "src": "9245:4:18" } ] } ] }, - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", - "nativeSrc": "4188:377:18", + "name": "abi_encode_tuple_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "8972:419:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", - "nativeSrc": "4261:5:18", - "nodeType": "YulTypedName", - "src": "4261:5:18", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "4268:3:18", + "name": "headStart", + "nativeSrc": "9123:9:18", "nodeType": "YulTypedName", - "src": "4268:3:18", + "src": "9123:9:18", "type": "" } ], "returnVariables": [ { - "name": "end", - "nativeSrc": "4276:3:18", + "name": "tail", + "nativeSrc": "9138:4:18", "nodeType": "YulTypedName", - "src": "4276:3:18", + "src": "9138:4:18", "type": "" } ], - "src": "4188:377:18" - }, + "src": "8972:419:18" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := mload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n function 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_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231(memPtr) {\n\n mstore(add(memPtr, 0), \"URI cannot be empty\")\n\n }\n\n function abi_encode_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 19)\n store_literal_in_memory_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", + "id": 18, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b50604051613edb380380613edb833981810160405281019061003291906103cb565b604051806020016040528060008152506100518161008b60201b60201c565b506100618161009e60201b60201c565b6100746000801b336100e560201b60201c565b5080600590816100849190610635565b5050610784565b806002908161009a9190610635565b5050565b60008151036100e2576040517f1897cf660000000000000000000000000000000000000000000000000000000081526004016100d990610764565b60405180910390fd5b50565b60006100f783836101e360201b60201c565b6101d85760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061017561024e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506101dd565b600090505b92915050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6102bd82610274565b810181811067ffffffffffffffff821117156102dc576102db610285565b5b80604052505050565b60006102ef610256565b90506102fb82826102b4565b919050565b600067ffffffffffffffff82111561031b5761031a610285565b5b61032482610274565b9050602081019050919050565b60005b8381101561034f578082015181840152602081019050610334565b60008484015250505050565b600061036e61036984610300565b6102e5565b90508281526020810184848401111561038a5761038961026f565b5b610395848285610331565b509392505050565b600082601f8301126103b2576103b161026a565b5b81516103c284826020860161035b565b91505092915050565b6000602082840312156103e1576103e0610260565b5b600082015167ffffffffffffffff8111156103ff576103fe610265565b5b61040b8482850161039d565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061046657607f821691505b6020821081036104795761047861041f565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026104e17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826104a4565b6104eb86836104a4565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600061053261052d61052884610503565b61050d565b610503565b9050919050565b6000819050919050565b61054c83610517565b61056061055882610539565b8484546104b1565b825550505050565b600090565b610575610568565b610580818484610543565b505050565b5b818110156105a45761059960008261056d565b600181019050610586565b5050565b601f8211156105e9576105ba8161047f565b6105c384610494565b810160208510156105d2578190505b6105e66105de85610494565b830182610585565b50505b505050565b600082821c905092915050565b600061060c600019846008026105ee565b1980831691505092915050565b600061062583836105fb565b9150826002028217905092915050565b61063e82610414565b67ffffffffffffffff81111561065757610656610285565b5b610661825461044e565b61066c8282856105a8565b600060209050601f83116001811461069f576000841561068d578287015190505b6106978582610619565b8655506106ff565b601f1984166106ad8661047f565b60005b828110156106d5578489015182556001820191506020850194506020810190506106b0565b868310156106f257848901516106ee601f8916826105fb565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f5552492063616e6e6f7420626520656d70747900000000000000000000000000600082015250565b600061074e601383610707565b915061075982610718565b602082019050919050565b6000602082019050818103600083015261077d81610741565b9050919050565b613748806107936000396000f3fe608060405234801561001057600080fd5b506004361061012b5760003560e01c806376b676f1116100ad578063d383f64611610071578063d383f64614610364578063d547741f1461036e578063e985e9c51461038a578063f242432a146103ba578063f5298aca146103d65761012b565b806376b676f1146102ae57806391d14854146102de578063931688cb1461030e578063a217fddf1461032a578063a22cb465146103485761012b565b80632f2ff15d116100f45780632f2ff15d1461020c57806336568abe146102285780634e1273f41461024457806361bc221a14610274578063731133e9146102925761012b565b8062fdd58e1461013057806301ffc9a7146101605780630e89341c14610190578063248a9ca3146101c05780632eb2c2d6146101f0575b600080fd5b61014a600480360381019061014591906121b1565b6103f2565b6040516101579190612200565b60405180910390f35b61017a60048036038101906101759190612273565b61044c565b60405161018791906122bb565b60405180910390f35b6101aa60048036038101906101a591906122d6565b61048c565b6040516101b79190612393565b60405180910390f35b6101da60048036038101906101d591906123eb565b610520565b6040516101e79190612427565b60405180910390f35b61020a6004803603810190610205919061263f565b610540565b005b6102266004803603810190610221919061270e565b6105e8565b005b610242600480360381019061023d919061270e565b61060a565b005b61025e60048036038101906102599190612811565b610685565b60405161026b9190612947565b60405180910390f35b61027c61078e565b6040516102899190612200565b60405180910390f35b6102ac60048036038101906102a79190612969565b610798565b005b6102c860048036038101906102c39190612a8d565b610856565b6040516102d59190612393565b60405180910390f35b6102f860048036038101906102f3919061270e565b6108de565b60405161030591906122bb565b60405180910390f35b61032860048036038101906103239190612ae9565b610949565b005b6103326109ad565b60405161033f9190612427565b60405180910390f35b610362600480360381019061035d9190612b5e565b6109b4565b005b61036c6109ca565b005b6103886004803603810190610383919061270e565b610a47565b005b6103a4600480360381019061039f9190612b9e565b610a69565b6040516103b191906122bb565b60405180910390f35b6103d460048036038101906103cf9190612bde565b610afd565b005b6103f060048036038101906103eb9190612c75565b610ba5565b005b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061046d3073ffffffffffffffffffffffffffffffffffffffff16610c87565b156104825761047b82610cd4565b9050610487565b600090505b919050565b60606002805461049b90612cf7565b80601f01602080910402602001604051908101604052809291908181526020018280546104c790612cf7565b80156105145780601f106104e957610100808354040283529160200191610514565b820191906000526020600020905b8154815290600101906020018083116104f757829003601f168201915b50505050509050919050565b600060036000838152602001908152602001600020600101549050919050565b600061054a610d4e565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561058f575061058d8682610a69565b155b156105d35780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016105ca929190612d37565b60405180910390fd5b6105e08686868686610d56565b505050505050565b6105f182610520565b6105fa81610e4e565b6106048383610e62565b50505050565b610612610d4e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610676576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106808282610f54565b505050565b606081518351146106d157815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016106c8929190612d60565b60405180910390fd5b6000835167ffffffffffffffff8111156106ee576106ed612447565b5b60405190808252806020026020018201604052801561071c5781602001602082028036833780820191505090505b50905060005b845181101561078357610759610741828761104790919063ffffffff16565b610754838761105b90919063ffffffff16565b6103f2565b82828151811061076c5761076b612d89565b5b602002602001018181525050806001019050610722565b508091505092915050565b6000600454905090565b826107a28161106f565b60016107ae86866103f2565b106107f25784846040517f788d25560000000000000000000000000000000000000000000000000000000081526004016107e9929190612db8565b60405180910390fd5b6107ff85856001856110b8565b838573ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f60016040516108479190612e26565b60405180910390a35050505050565b6060826108628161106f565b8260008151036108a7576040517fc29f9db300000000000000000000000000000000000000000000000000000000815260040161089e90612e8d565b60405180910390fd5b60056108b286611151565b856040516020016108c593929190613065565b6040516020818303038152906040529250505092915050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b61095681610e4e565b61095f8261121f565b7f309b29ded109b9e28fb9885757b3e0096eb75c51d23aa4635d68bcd569f6adc160058360405161099192919061313b565b60405180910390a181600590816109a891906132ff565b505050565b6000801b81565b6109c66109bf610d4e565b8383611266565b5050565b600060045490506109ed33826001604051806020016040528060008152506110b8565b803373ffffffffffffffffffffffffffffffffffffffff167fc65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c1660405160405180910390a3600181610a3e9190613400565b60048190555050565b610a5082610520565b610a5981610e4e565b610a638383610f54565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000610b07610d4e565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610b4c5750610b4a8682610a69565b155b15610b905780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610b87929190612d37565b60405180910390fd5b610b9d86868686866113d6565b505050505050565b81610baf8161106f565b83833373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610c235781816040517f8626cc03000000000000000000000000000000000000000000000000000000008152600401610c1a929190612db8565b60405180910390fd5b610c2f868660016114e1565b848673ffffffffffffffffffffffffffffffffffffffff167f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a6001604051610c779190612e26565b60405180910390a3505050505050565b6000610cb3827f01ffc9a700000000000000000000000000000000000000000000000000000000611588565b8015610ccd5750610ccb8263ffffffff60e01b611588565b155b9050919050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610d475750610d4682611627565b5b9050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610dc85760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610dbf9190613434565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610e3a5760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610e319190613434565b60405180910390fd5b610e478585858585611709565b5050505050565b610e5f81610e5a610d4e565b6117bb565b50565b6000610e6e83836108de565b610f495760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610ee6610d4e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610f4e565b600090505b92915050565b6000610f6083836108de565b1561103c5760006003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610fd9610d4e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611041565b600090505b92915050565b600060208202602084010151905092915050565b600060208202602084010151905092915050565b60045481106110b557806040517fc80a970c0000000000000000000000000000000000000000000000000000000081526004016110ac9190612200565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361112a5760006040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016111219190613434565b60405180910390fd5b600080611137858561180c565b91509150611149600087848487611709565b505050505050565b6060600060016111608461183c565b01905060008167ffffffffffffffff81111561117f5761117e612447565b5b6040519080825280601f01601f1916602001820160405280156111b15781602001600182028036833780820191505090505b509050600082602001820190505b600115611214578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816112085761120761344f565b5b049450600085036111bf575b819350505050919050565b6000815103611263576040517f1897cf6600000000000000000000000000000000000000000000000000000000815260040161125a906134ca565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112d85760006040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016112cf9190613434565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516113c991906122bb565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036114485760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161143f9190613434565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036114ba5760006040517f01a835140000000000000000000000000000000000000000000000000000000081526004016114b19190613434565b60405180910390fd5b6000806114c7858561180c565b915091506114d88787848487611709565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115535760006040517f01a8351400000000000000000000000000000000000000000000000000000000815260040161154a9190613434565b60405180910390fd5b600080611560848461180c565b91509150611581856000848460405180602001604052806000815250611709565b5050505050565b6000808260405160240161159c91906134f9565b6040516020818303038152906040526301ffc9a760e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000806000602060008551602087018a617530fa92503d9150600051905082801561160f575060208210155b801561161b5750600081115b94505050505092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806116f257507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061170257506117018261198f565b5b9050919050565b611715858585856119f9565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146117b4576000611753610d4e565b905060018451036117a357600061177460008661105b90919063ffffffff16565b9050600061178c60008661105b90919063ffffffff16565b905061179c838989858589611da1565b50506117b2565b6117b1818787878787611f55565b5b505b5050505050565b6117c582826108de565b6118085780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016117ff929190613514565b60405180910390fd5b5050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061189a577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816118905761188f61344f565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106118d7576d04ee2d6d415b85acef810000000083816118cd576118cc61344f565b5b0492506020810190505b662386f26fc10000831061190657662386f26fc1000083816118fc576118fb61344f565b5b0492506010810190505b6305f5e100831061192f576305f5e10083816119255761192461344f565b5b0492506008810190505b612710831061195457612710838161194a5761194961344f565b5b0492506004810190505b60648310611977576064838161196d5761196c61344f565b5b0492506002810190505b600a8310611986576001810190505b80915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b8051825114611a4357815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401611a3a929190612d60565b60405180910390fd5b6000611a4d610d4e565b905060005b8351811015611c5c576000611a70828661105b90919063ffffffff16565b90506000611a87838661105b90919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611bb457600080600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611b5c57888183856040517f03dee4c5000000000000000000000000000000000000000000000000000000008152600401611b53949392919061353d565b60405180910390fd5b81810360008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611c4f578060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c479190613400565b925050819055505b5050806001019050611a52565b506001835103611d1b576000611c7c60008561105b90919063ffffffff16565b90506000611c9460008561105b90919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611d0c929190612d60565b60405180910390a45050611d9a565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611d91929190613582565b60405180910390a45b5050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611f4d578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611e0295949392919061360e565b6020604051808303816000875af1925050508015611e3e57506040513d601f19601f82011682018060405250810190611e3b919061367d565b60015b611ec2573d8060008114611e6e576040519150601f19603f3d011682016040523d82523d6000602084013e611e73565b606091505b506000815103611eba57846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611eb19190613434565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611f4b57846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611f429190613434565b60405180910390fd5b505b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115612101578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611fb69594939291906136aa565b6020604051808303816000875af1925050508015611ff257506040513d601f19601f82011682018060405250810190611fef919061367d565b60015b612076573d8060008114612022576040519150601f19603f3d011682016040523d82523d6000602084013e612027565b606091505b50600081510361206e57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016120659190613434565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146120ff57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016120f69190613434565b60405180910390fd5b505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121488261211d565b9050919050565b6121588161213d565b811461216357600080fd5b50565b6000813590506121758161214f565b92915050565b6000819050919050565b61218e8161217b565b811461219957600080fd5b50565b6000813590506121ab81612185565b92915050565b600080604083850312156121c8576121c7612113565b5b60006121d685828601612166565b92505060206121e78582860161219c565b9150509250929050565b6121fa8161217b565b82525050565b600060208201905061221560008301846121f1565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6122508161221b565b811461225b57600080fd5b50565b60008135905061226d81612247565b92915050565b60006020828403121561228957612288612113565b5b60006122978482850161225e565b91505092915050565b60008115159050919050565b6122b5816122a0565b82525050565b60006020820190506122d060008301846122ac565b92915050565b6000602082840312156122ec576122eb612113565b5b60006122fa8482850161219c565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561233d578082015181840152602081019050612322565b60008484015250505050565b6000601f19601f8301169050919050565b600061236582612303565b61236f818561230e565b935061237f81856020860161231f565b61238881612349565b840191505092915050565b600060208201905081810360008301526123ad818461235a565b905092915050565b6000819050919050565b6123c8816123b5565b81146123d357600080fd5b50565b6000813590506123e5816123bf565b92915050565b60006020828403121561240157612400612113565b5b600061240f848285016123d6565b91505092915050565b612421816123b5565b82525050565b600060208201905061243c6000830184612418565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61247f82612349565b810181811067ffffffffffffffff8211171561249e5761249d612447565b5b80604052505050565b60006124b1612109565b90506124bd8282612476565b919050565b600067ffffffffffffffff8211156124dd576124dc612447565b5b602082029050602081019050919050565b600080fd5b6000612506612501846124c2565b6124a7565b90508083825260208201905060208402830185811115612529576125286124ee565b5b835b81811015612552578061253e888261219c565b84526020840193505060208101905061252b565b5050509392505050565b600082601f83011261257157612570612442565b5b81356125818482602086016124f3565b91505092915050565b600080fd5b600067ffffffffffffffff8211156125aa576125a9612447565b5b6125b382612349565b9050602081019050919050565b82818337600083830152505050565b60006125e26125dd8461258f565b6124a7565b9050828152602081018484840111156125fe576125fd61258a565b5b6126098482856125c0565b509392505050565b600082601f83011261262657612625612442565b5b81356126368482602086016125cf565b91505092915050565b600080600080600060a0868803121561265b5761265a612113565b5b600061266988828901612166565b955050602061267a88828901612166565b945050604086013567ffffffffffffffff81111561269b5761269a612118565b5b6126a78882890161255c565b935050606086013567ffffffffffffffff8111156126c8576126c7612118565b5b6126d48882890161255c565b925050608086013567ffffffffffffffff8111156126f5576126f4612118565b5b61270188828901612611565b9150509295509295909350565b6000806040838503121561272557612724612113565b5b6000612733858286016123d6565b925050602061274485828601612166565b9150509250929050565b600067ffffffffffffffff82111561276957612768612447565b5b602082029050602081019050919050565b600061278d6127888461274e565b6124a7565b905080838252602082019050602084028301858111156127b0576127af6124ee565b5b835b818110156127d957806127c58882612166565b8452602084019350506020810190506127b2565b5050509392505050565b600082601f8301126127f8576127f7612442565b5b813561280884826020860161277a565b91505092915050565b6000806040838503121561282857612827612113565b5b600083013567ffffffffffffffff81111561284657612845612118565b5b612852858286016127e3565b925050602083013567ffffffffffffffff81111561287357612872612118565b5b61287f8582860161255c565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6128be8161217b565b82525050565b60006128d083836128b5565b60208301905092915050565b6000602082019050919050565b60006128f482612889565b6128fe8185612894565b9350612909836128a5565b8060005b8381101561293a57815161292188826128c4565b975061292c836128dc565b92505060018101905061290d565b5085935050505092915050565b6000602082019050818103600083015261296181846128e9565b905092915050565b6000806000806080858703121561298357612982612113565b5b600061299187828801612166565b94505060206129a28782880161219c565b93505060406129b38782880161219c565b925050606085013567ffffffffffffffff8111156129d4576129d3612118565b5b6129e087828801612611565b91505092959194509250565b600067ffffffffffffffff821115612a0757612a06612447565b5b612a1082612349565b9050602081019050919050565b6000612a30612a2b846129ec565b6124a7565b905082815260208101848484011115612a4c57612a4b61258a565b5b612a578482856125c0565b509392505050565b600082601f830112612a7457612a73612442565b5b8135612a84848260208601612a1d565b91505092915050565b60008060408385031215612aa457612aa3612113565b5b6000612ab28582860161219c565b925050602083013567ffffffffffffffff811115612ad357612ad2612118565b5b612adf85828601612a5f565b9150509250929050565b600060208284031215612aff57612afe612113565b5b600082013567ffffffffffffffff811115612b1d57612b1c612118565b5b612b2984828501612a5f565b91505092915050565b612b3b816122a0565b8114612b4657600080fd5b50565b600081359050612b5881612b32565b92915050565b60008060408385031215612b7557612b74612113565b5b6000612b8385828601612166565b9250506020612b9485828601612b49565b9150509250929050565b60008060408385031215612bb557612bb4612113565b5b6000612bc385828601612166565b9250506020612bd485828601612166565b9150509250929050565b600080600080600060a08688031215612bfa57612bf9612113565b5b6000612c0888828901612166565b9550506020612c1988828901612166565b9450506040612c2a8882890161219c565b9350506060612c3b8882890161219c565b925050608086013567ffffffffffffffff811115612c5c57612c5b612118565b5b612c6888828901612611565b9150509295509295909350565b600080600060608486031215612c8e57612c8d612113565b5b6000612c9c86828701612166565b9350506020612cad8682870161219c565b9250506040612cbe8682870161219c565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612d0f57607f821691505b602082108103612d2257612d21612cc8565b5b50919050565b612d318161213d565b82525050565b6000604082019050612d4c6000830185612d28565b612d596020830184612d28565b9392505050565b6000604082019050612d7560008301856121f1565b612d8260208301846121f1565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050612dcd6000830185612d28565b612dda60208301846121f1565b9392505050565b6000819050919050565b6000819050919050565b6000612e10612e0b612e0684612de1565b612deb565b61217b565b9050919050565b612e2081612df5565b82525050565b6000602082019050612e3b6000830184612e17565b92915050565b7f4163636f756e742063616e6e6f7420626520656d707479000000000000000000600082015250565b6000612e7760178361230e565b9150612e8282612e41565b602082019050919050565b60006020820190508181036000830152612ea681612e6a565b9050919050565b600081905092915050565b60008190508160005260206000209050919050565b60008154612eda81612cf7565b612ee48186612ead565b94506001821660008114612eff5760018114612f1457612f47565b60ff1983168652811515820286019350612f47565b612f1d85612eb8565b60005b83811015612f3f57815481890152600182019150602081019050612f20565b838801955050505b50505092915050565b7f2f6170692f76312f6e66742f0000000000000000000000000000000000000000600082015250565b6000612f86600c83612ead565b9150612f9182612f50565b600c82019050919050565b6000612fa782612303565b612fb18185612ead565b9350612fc181856020860161231f565b80840191505092915050565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b6000613003600183612ead565b915061300e82612fcd565b600182019050919050565b7f2f72657075746174696f6e2d73636f7265000000000000000000000000000000600082015250565b600061304f601183612ead565b915061305a82613019565b601182019050919050565b60006130718286612ecd565b915061307c82612f79565b91506130888285612f9c565b915061309382612ff6565b915061309f8284612f9c565b91506130aa82613042565b9150819050949350505050565b600081546130c481612cf7565b6130ce818661230e565b945060018216600081146130e957600181146130ff57613132565b60ff198316865281151560200286019350613132565b61310885612eb8565b60005b8381101561312a5781548189015260018201915060208101905061310b565b808801955050505b50505092915050565b6000604082019050818103600083015261315581856130b7565b90508181036020830152613169818461235a565b90509392505050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026131bf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613182565b6131c98683613182565b95508019841693508086168417925050509392505050565b60006131fc6131f76131f28461217b565b612deb565b61217b565b9050919050565b6000819050919050565b613216836131e1565b61322a61322282613203565b84845461318f565b825550505050565b600090565b61323f613232565b61324a81848461320d565b505050565b5b8181101561326e57613263600082613237565b600181019050613250565b5050565b601f8211156132b35761328481612eb8565b61328d84613172565b8101602085101561329c578190505b6132b06132a885613172565b83018261324f565b50505b505050565b600082821c905092915050565b60006132d6600019846008026132b8565b1980831691505092915050565b60006132ef83836132c5565b9150826002028217905092915050565b61330882612303565b67ffffffffffffffff81111561332157613320612447565b5b61332b8254612cf7565b613336828285613272565b600060209050601f8311600181146133695760008415613357578287015190505b61336185826132e3565b8655506133c9565b601f19841661337786612eb8565b60005b8281101561339f5784890151825560018201915060208501945060208101905061337a565b868310156133bc57848901516133b8601f8916826132c5565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061340b8261217b565b91506134168361217b565b925082820190508082111561342e5761342d6133d1565b5b92915050565b60006020820190506134496000830184612d28565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f5552492063616e6e6f7420626520656d70747900000000000000000000000000600082015250565b60006134b460138361230e565b91506134bf8261347e565b602082019050919050565b600060208201905081810360008301526134e3816134a7565b9050919050565b6134f38161221b565b82525050565b600060208201905061350e60008301846134ea565b92915050565b60006040820190506135296000830185612d28565b6135366020830184612418565b9392505050565b60006080820190506135526000830187612d28565b61355f60208301866121f1565b61356c60408301856121f1565b61357960608301846121f1565b95945050505050565b6000604082019050818103600083015261359c81856128e9565b905081810360208301526135b081846128e9565b90509392505050565b600081519050919050565b600082825260208201905092915050565b60006135e0826135b9565b6135ea81856135c4565b93506135fa81856020860161231f565b61360381612349565b840191505092915050565b600060a0820190506136236000830188612d28565b6136306020830187612d28565b61363d60408301866121f1565b61364a60608301856121f1565b818103608083015261365c81846135d5565b90509695505050505050565b60008151905061367781612247565b92915050565b60006020828403121561369357613692612113565b5b60006136a184828501613668565b91505092915050565b600060a0820190506136bf6000830188612d28565b6136cc6020830187612d28565b81810360408301526136de81866128e9565b905081810360608301526136f281856128e9565b9050818103608083015261370681846135d5565b9050969550505050505056fea2646970667358221220240e9a7daab5d9eba2793e75f4bbf0e9a74f133868ac14d5e9561767bb722e8264736f6c634300081a0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x3EDB CODESIZE SUB DUP1 PUSH2 0x3EDB DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x32 SWAP2 SWAP1 PUSH2 0x3CB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x51 DUP2 PUSH2 0x8B PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP PUSH2 0x61 DUP2 PUSH2 0x9E PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x74 PUSH1 0x0 DUP1 SHL CALLER PUSH2 0xE5 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP DUP1 PUSH1 0x5 SWAP1 DUP2 PUSH2 0x84 SWAP2 SWAP1 PUSH2 0x635 JUMP JUMPDEST POP POP PUSH2 0x784 JUMP JUMPDEST DUP1 PUSH1 0x2 SWAP1 DUP2 PUSH2 0x9A SWAP2 SWAP1 PUSH2 0x635 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0xE2 JUMPI PUSH1 0x40 MLOAD PUSH32 0x1897CF6600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD9 SWAP1 PUSH2 0x764 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF7 DUP4 DUP4 PUSH2 0x1E3 PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST PUSH2 0x1D8 JUMPI PUSH1 0x1 PUSH1 0x3 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 0x175 PUSH2 0x24E 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 0x1DD JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 ADD PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x2BD DUP3 PUSH2 0x274 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x2DC JUMPI PUSH2 0x2DB PUSH2 0x285 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2EF PUSH2 0x256 JUMP JUMPDEST SWAP1 POP PUSH2 0x2FB DUP3 DUP3 PUSH2 0x2B4 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x31B JUMPI PUSH2 0x31A PUSH2 0x285 JUMP JUMPDEST JUMPDEST PUSH2 0x324 DUP3 PUSH2 0x274 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x34F JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x334 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x36E PUSH2 0x369 DUP5 PUSH2 0x300 JUMP JUMPDEST PUSH2 0x2E5 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x38A JUMPI PUSH2 0x389 PUSH2 0x26F JUMP JUMPDEST JUMPDEST PUSH2 0x395 DUP5 DUP3 DUP6 PUSH2 0x331 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3B2 JUMPI PUSH2 0x3B1 PUSH2 0x26A JUMP JUMPDEST JUMPDEST DUP2 MLOAD PUSH2 0x3C2 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x35B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3E1 JUMPI PUSH2 0x3E0 PUSH2 0x260 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3FF JUMPI PUSH2 0x3FE PUSH2 0x265 JUMP JUMPDEST JUMPDEST PUSH2 0x40B DUP5 DUP3 DUP6 ADD PUSH2 0x39D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x466 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x479 JUMPI PUSH2 0x478 PUSH2 0x41F 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 0x4E1 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x4A4 JUMP JUMPDEST PUSH2 0x4EB DUP7 DUP4 PUSH2 0x4A4 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 0x532 PUSH2 0x52D PUSH2 0x528 DUP5 PUSH2 0x503 JUMP JUMPDEST PUSH2 0x50D JUMP JUMPDEST PUSH2 0x503 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x54C DUP4 PUSH2 0x517 JUMP JUMPDEST PUSH2 0x560 PUSH2 0x558 DUP3 PUSH2 0x539 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x4B1 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x575 PUSH2 0x568 JUMP JUMPDEST PUSH2 0x580 DUP2 DUP5 DUP5 PUSH2 0x543 JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x5A4 JUMPI PUSH2 0x599 PUSH1 0x0 DUP3 PUSH2 0x56D JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x586 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x5E9 JUMPI PUSH2 0x5BA DUP2 PUSH2 0x47F JUMP JUMPDEST PUSH2 0x5C3 DUP5 PUSH2 0x494 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x5D2 JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x5E6 PUSH2 0x5DE DUP6 PUSH2 0x494 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x585 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 0x60C PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x5EE JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x625 DUP4 DUP4 PUSH2 0x5FB JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x63E DUP3 PUSH2 0x414 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x657 JUMPI PUSH2 0x656 PUSH2 0x285 JUMP JUMPDEST JUMPDEST PUSH2 0x661 DUP3 SLOAD PUSH2 0x44E JUMP JUMPDEST PUSH2 0x66C DUP3 DUP3 DUP6 PUSH2 0x5A8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x69F JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x68D JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x697 DUP6 DUP3 PUSH2 0x619 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x6FF JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x6AD DUP7 PUSH2 0x47F JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x6D5 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 0x6B0 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x6F2 JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x6EE PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x5FB 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 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x5552492063616E6E6F7420626520656D70747900000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x74E PUSH1 0x13 DUP4 PUSH2 0x707 JUMP JUMPDEST SWAP2 POP PUSH2 0x759 DUP3 PUSH2 0x718 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x77D DUP2 PUSH2 0x741 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3748 DUP1 PUSH2 0x793 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x12B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x76B676F1 GT PUSH2 0xAD JUMPI DUP1 PUSH4 0xD383F646 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xD383F646 EQ PUSH2 0x364 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x36E JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x38A JUMPI DUP1 PUSH4 0xF242432A EQ PUSH2 0x3BA JUMPI DUP1 PUSH4 0xF5298ACA EQ PUSH2 0x3D6 JUMPI PUSH2 0x12B JUMP JUMPDEST DUP1 PUSH4 0x76B676F1 EQ PUSH2 0x2AE JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x2DE JUMPI DUP1 PUSH4 0x931688CB EQ PUSH2 0x30E JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x32A JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x348 JUMPI PUSH2 0x12B JUMP JUMPDEST DUP1 PUSH4 0x2F2FF15D GT PUSH2 0xF4 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x228 JUMPI DUP1 PUSH4 0x4E1273F4 EQ PUSH2 0x244 JUMPI DUP1 PUSH4 0x61BC221A EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0x731133E9 EQ PUSH2 0x292 JUMPI PUSH2 0x12B JUMP JUMPDEST DUP1 PUSH3 0xFDD58E EQ PUSH2 0x130 JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x160 JUMPI DUP1 PUSH4 0xE89341C EQ PUSH2 0x190 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x1C0 JUMPI DUP1 PUSH4 0x2EB2C2D6 EQ PUSH2 0x1F0 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x145 SWAP2 SWAP1 PUSH2 0x21B1 JUMP JUMPDEST PUSH2 0x3F2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x157 SWAP2 SWAP1 PUSH2 0x2200 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x175 SWAP2 SWAP1 PUSH2 0x2273 JUMP JUMPDEST PUSH2 0x44C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x187 SWAP2 SWAP1 PUSH2 0x22BB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1AA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A5 SWAP2 SWAP1 PUSH2 0x22D6 JUMP JUMPDEST PUSH2 0x48C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B7 SWAP2 SWAP1 PUSH2 0x2393 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1DA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D5 SWAP2 SWAP1 PUSH2 0x23EB JUMP JUMPDEST PUSH2 0x520 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E7 SWAP2 SWAP1 PUSH2 0x2427 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x20A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x205 SWAP2 SWAP1 PUSH2 0x263F JUMP JUMPDEST PUSH2 0x540 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x226 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x221 SWAP2 SWAP1 PUSH2 0x270E JUMP JUMPDEST PUSH2 0x5E8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x242 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x23D SWAP2 SWAP1 PUSH2 0x270E JUMP JUMPDEST PUSH2 0x60A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x25E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x259 SWAP2 SWAP1 PUSH2 0x2811 JUMP JUMPDEST PUSH2 0x685 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x26B SWAP2 SWAP1 PUSH2 0x2947 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x27C PUSH2 0x78E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x289 SWAP2 SWAP1 PUSH2 0x2200 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2AC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A7 SWAP2 SWAP1 PUSH2 0x2969 JUMP JUMPDEST PUSH2 0x798 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2C8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2C3 SWAP2 SWAP1 PUSH2 0x2A8D JUMP JUMPDEST PUSH2 0x856 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D5 SWAP2 SWAP1 PUSH2 0x2393 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2F8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2F3 SWAP2 SWAP1 PUSH2 0x270E JUMP JUMPDEST PUSH2 0x8DE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x305 SWAP2 SWAP1 PUSH2 0x22BB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x328 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x323 SWAP2 SWAP1 PUSH2 0x2AE9 JUMP JUMPDEST PUSH2 0x949 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x332 PUSH2 0x9AD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x33F SWAP2 SWAP1 PUSH2 0x2427 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x362 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x35D SWAP2 SWAP1 PUSH2 0x2B5E JUMP JUMPDEST PUSH2 0x9B4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x36C PUSH2 0x9CA JUMP JUMPDEST STOP JUMPDEST PUSH2 0x388 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x383 SWAP2 SWAP1 PUSH2 0x270E JUMP JUMPDEST PUSH2 0xA47 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39F SWAP2 SWAP1 PUSH2 0x2B9E JUMP JUMPDEST PUSH2 0xA69 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3B1 SWAP2 SWAP1 PUSH2 0x22BB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3D4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3CF SWAP2 SWAP1 PUSH2 0x2BDE JUMP JUMPDEST PUSH2 0xAFD JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3F0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3EB SWAP2 SWAP1 PUSH2 0x2C75 JUMP JUMPDEST PUSH2 0xBA5 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x46D ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xC87 JUMP JUMPDEST ISZERO PUSH2 0x482 JUMPI PUSH2 0x47B DUP3 PUSH2 0xCD4 JUMP JUMPDEST SWAP1 POP PUSH2 0x487 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP1 SLOAD PUSH2 0x49B SWAP1 PUSH2 0x2CF7 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 0x4C7 SWAP1 PUSH2 0x2CF7 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x514 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x4E9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x514 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 0x4F7 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 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 PUSH2 0x54A PUSH2 0xD4E JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x58F JUMPI POP PUSH2 0x58D DUP7 DUP3 PUSH2 0xA69 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x5D3 JUMPI DUP1 DUP7 PUSH1 0x40 MLOAD PUSH32 0xE237D92200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CA SWAP3 SWAP2 SWAP1 PUSH2 0x2D37 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5E0 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0xD56 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x5F1 DUP3 PUSH2 0x520 JUMP JUMPDEST PUSH2 0x5FA DUP2 PUSH2 0xE4E JUMP JUMPDEST PUSH2 0x604 DUP4 DUP4 PUSH2 0xE62 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x612 PUSH2 0xD4E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x676 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6697B23200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x680 DUP3 DUP3 PUSH2 0xF54 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0x6D1 JUMPI DUP2 MLOAD DUP4 MLOAD PUSH1 0x40 MLOAD PUSH32 0x5B05999100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6C8 SWAP3 SWAP2 SWAP1 PUSH2 0x2D60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x6EE JUMPI PUSH2 0x6ED PUSH2 0x2447 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 0x71C JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x783 JUMPI PUSH2 0x759 PUSH2 0x741 DUP3 DUP8 PUSH2 0x1047 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x754 DUP4 DUP8 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x3F2 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x76C JUMPI PUSH2 0x76B PUSH2 0x2D89 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x722 JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST DUP3 PUSH2 0x7A2 DUP2 PUSH2 0x106F JUMP JUMPDEST PUSH1 0x1 PUSH2 0x7AE DUP7 DUP7 PUSH2 0x3F2 JUMP JUMPDEST LT PUSH2 0x7F2 JUMPI DUP5 DUP5 PUSH1 0x40 MLOAD PUSH32 0x788D255600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7E9 SWAP3 SWAP2 SWAP1 PUSH2 0x2DB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7FF DUP6 DUP6 PUSH1 0x1 DUP6 PUSH2 0x10B8 JUMP JUMPDEST DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4C209B5FC8AD50758F13E2E1088BA56A560DFF690A1C6FEF26394F4C03821C4F PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x847 SWAP2 SWAP1 PUSH2 0x2E26 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x862 DUP2 PUSH2 0x106F JUMP JUMPDEST DUP3 PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x8A7 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC29F9DB300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x89E SWAP1 PUSH2 0x2E8D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH2 0x8B2 DUP7 PUSH2 0x1151 JUMP JUMPDEST DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x8C5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3065 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 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 SHL PUSH2 0x956 DUP2 PUSH2 0xE4E JUMP JUMPDEST PUSH2 0x95F DUP3 PUSH2 0x121F JUMP JUMPDEST PUSH32 0x309B29DED109B9E28FB9885757B3E0096EB75C51D23AA4635D68BCD569F6ADC1 PUSH1 0x5 DUP4 PUSH1 0x40 MLOAD PUSH2 0x991 SWAP3 SWAP2 SWAP1 PUSH2 0x313B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP2 PUSH1 0x5 SWAP1 DUP2 PUSH2 0x9A8 SWAP2 SWAP1 PUSH2 0x32FF JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST PUSH2 0x9C6 PUSH2 0x9BF PUSH2 0xD4E JUMP JUMPDEST DUP4 DUP4 PUSH2 0x1266 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 SLOAD SWAP1 POP PUSH2 0x9ED CALLER DUP3 PUSH1 0x1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x10B8 JUMP JUMPDEST DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC65A3F767206D2FDCEDE0B094A4840E01C0DD0BE1888B5BA800346EAA0123C16 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 DUP2 PUSH2 0xA3E SWAP2 SWAP1 PUSH2 0x3400 JUMP JUMPDEST PUSH1 0x4 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0xA50 DUP3 PUSH2 0x520 JUMP JUMPDEST PUSH2 0xA59 DUP2 PUSH2 0xE4E JUMP JUMPDEST PUSH2 0xA63 DUP4 DUP4 PUSH2 0xF54 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB07 PUSH2 0xD4E JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0xB4C JUMPI POP PUSH2 0xB4A DUP7 DUP3 PUSH2 0xA69 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0xB90 JUMPI DUP1 DUP7 PUSH1 0x40 MLOAD PUSH32 0xE237D92200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB87 SWAP3 SWAP2 SWAP1 PUSH2 0x2D37 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB9D DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x13D6 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH2 0xBAF DUP2 PUSH2 0x106F JUMP JUMPDEST DUP4 DUP4 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xC23 JUMPI DUP2 DUP2 PUSH1 0x40 MLOAD PUSH32 0x8626CC0300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1A SWAP3 SWAP2 SWAP1 PUSH2 0x2DB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC2F DUP7 DUP7 PUSH1 0x1 PUSH2 0x14E1 JUMP JUMPDEST DUP5 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x49995E5DD6158CF69AD3E9777C46755A1A826A446C6416992167462DAD033B2A PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0xC77 SWAP2 SWAP1 PUSH2 0x2E26 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCB3 DUP3 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH2 0x1588 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xCCD JUMPI POP PUSH2 0xCCB DUP3 PUSH4 0xFFFFFFFF PUSH1 0xE0 SHL PUSH2 0x1588 JUMP JUMPDEST ISZERO JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xD47 JUMPI POP PUSH2 0xD46 DUP3 PUSH2 0x1627 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xDC8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xDBF SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xE3A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE31 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xE47 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0x1709 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0xE5F DUP2 PUSH2 0xE5A PUSH2 0xD4E JUMP JUMPDEST PUSH2 0x17BB JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE6E DUP4 DUP4 PUSH2 0x8DE JUMP JUMPDEST PUSH2 0xF49 JUMPI PUSH1 0x1 PUSH1 0x3 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 0xEE6 PUSH2 0xD4E 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 0xF4E JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF60 DUP4 DUP4 PUSH2 0x8DE JUMP JUMPDEST ISZERO PUSH2 0x103C JUMPI PUSH1 0x0 PUSH1 0x3 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 0xFD9 PUSH2 0xD4E 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 0x1041 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MUL PUSH1 0x20 DUP5 ADD ADD MLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MUL PUSH1 0x20 DUP5 ADD ADD MLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 LT PUSH2 0x10B5 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0xC80A970C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10AC SWAP2 SWAP1 PUSH2 0x2200 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x112A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1121 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1137 DUP6 DUP6 PUSH2 0x180C JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x1149 PUSH1 0x0 DUP8 DUP5 DUP5 DUP8 PUSH2 0x1709 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH2 0x1160 DUP5 PUSH2 0x183C JUMP JUMPDEST ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x117F JUMPI PUSH2 0x117E PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x11B1 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x20 ADD DUP3 ADD SWAP1 POP JUMPDEST PUSH1 0x1 ISZERO PUSH2 0x1214 JUMPI DUP1 DUP1 PUSH1 0x1 SWAP1 SUB SWAP2 POP POP PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DUP2 PUSH2 0x1208 JUMPI PUSH2 0x1207 PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP5 POP PUSH1 0x0 DUP6 SUB PUSH2 0x11BF JUMPI JUMPDEST DUP2 SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x1263 JUMPI PUSH1 0x40 MLOAD PUSH32 0x1897CF6600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x125A SWAP1 PUSH2 0x34CA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x12D8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xCED3E10000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12CF SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 DUP4 PUSH1 0x40 MLOAD PUSH2 0x13C9 SWAP2 SWAP1 PUSH2 0x22BB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1448 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x143F SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x14BA JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14B1 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x14C7 DUP6 DUP6 PUSH2 0x180C JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x14D8 DUP8 DUP8 DUP5 DUP5 DUP8 PUSH2 0x1709 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1553 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x154A SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1560 DUP5 DUP5 PUSH2 0x180C JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x1581 DUP6 PUSH1 0x0 DUP5 DUP5 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1709 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x159C SWAP2 SWAP1 PUSH2 0x34F9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x20 PUSH1 0x0 DUP6 MLOAD PUSH1 0x20 DUP8 ADD DUP11 PUSH2 0x7530 STATICCALL SWAP3 POP RETURNDATASIZE SWAP2 POP PUSH1 0x0 MLOAD SWAP1 POP DUP3 DUP1 ISZERO PUSH2 0x160F JUMPI POP PUSH1 0x20 DUP3 LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x161B JUMPI POP PUSH1 0x0 DUP2 GT JUMPDEST SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xD9B67A2600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x16F2 JUMPI POP PUSH32 0xE89341C00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x1702 JUMPI POP PUSH2 0x1701 DUP3 PUSH2 0x198F JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1715 DUP6 DUP6 DUP6 DUP6 PUSH2 0x19F9 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x17B4 JUMPI PUSH1 0x0 PUSH2 0x1753 PUSH2 0xD4E JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP5 MLOAD SUB PUSH2 0x17A3 JUMPI PUSH1 0x0 PUSH2 0x1774 PUSH1 0x0 DUP7 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x178C PUSH1 0x0 DUP7 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH2 0x179C DUP4 DUP10 DUP10 DUP6 DUP6 DUP10 PUSH2 0x1DA1 JUMP JUMPDEST POP POP PUSH2 0x17B2 JUMP JUMPDEST PUSH2 0x17B1 DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x1F55 JUMP JUMPDEST JUMPDEST POP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x17C5 DUP3 DUP3 PUSH2 0x8DE JUMP JUMPDEST PUSH2 0x1808 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH32 0xE2517D3F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x17FF SWAP3 SWAP2 SWAP1 PUSH2 0x3514 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1 DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH1 0x1 DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD PUSH1 0x40 MSTORE SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x189A JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DUP2 PUSH2 0x1890 JUMPI PUSH2 0x188F PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x40 DUP2 ADD SWAP1 POP JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x18D7 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DUP2 PUSH2 0x18CD JUMPI PUSH2 0x18CC PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x20 DUP2 ADD SWAP1 POP JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x1906 JUMPI PUSH7 0x2386F26FC10000 DUP4 DUP2 PUSH2 0x18FC JUMPI PUSH2 0x18FB PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x10 DUP2 ADD SWAP1 POP JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x192F JUMPI PUSH4 0x5F5E100 DUP4 DUP2 PUSH2 0x1925 JUMPI PUSH2 0x1924 PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x8 DUP2 ADD SWAP1 POP JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x1954 JUMPI PUSH2 0x2710 DUP4 DUP2 PUSH2 0x194A JUMPI PUSH2 0x1949 PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x4 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x1977 JUMPI PUSH1 0x64 DUP4 DUP2 PUSH2 0x196D JUMPI PUSH2 0x196C PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x2 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x1986 JUMPI PUSH1 0x1 DUP2 ADD SWAP1 POP JUMPDEST DUP1 SWAP2 POP 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 DUP1 MLOAD DUP3 MLOAD EQ PUSH2 0x1A43 JUMPI DUP2 MLOAD DUP2 MLOAD PUSH1 0x40 MLOAD PUSH32 0x5B05999100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A3A SWAP3 SWAP2 SWAP1 PUSH2 0x2D60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1A4D PUSH2 0xD4E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x1C5C JUMPI PUSH1 0x0 PUSH2 0x1A70 DUP3 DUP7 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1A87 DUP4 DUP7 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1BB4 JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x1B5C JUMPI DUP9 DUP2 DUP4 DUP6 PUSH1 0x40 MLOAD PUSH32 0x3DEE4C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B53 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x353D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1C4F JUMPI DUP1 PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1C47 SWAP2 SWAP1 PUSH2 0x3400 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x1A52 JUMP JUMPDEST POP PUSH1 0x1 DUP4 MLOAD SUB PUSH2 0x1D1B JUMPI PUSH1 0x0 PUSH2 0x1C7C PUSH1 0x0 DUP6 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1C94 PUSH1 0x0 DUP6 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x1D0C SWAP3 SWAP2 SWAP1 PUSH2 0x2D60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP PUSH2 0x1D9A JUMP JUMPDEST DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4A39DC06D4C0DBC64B70AF90FD698A233A518AA5D07E595D983B8C0526C8F7FB DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1D91 SWAP3 SWAP2 SWAP1 PUSH2 0x3582 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x1F4D JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF23A6E61 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E02 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x360E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1E3E JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1E3B SWAP2 SWAP1 PUSH2 0x367D JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1EC2 JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1E6E JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1E73 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x1EBA JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1EB1 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x1F4B JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1F42 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x2101 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xBC197C81 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1FB6 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x36AA JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1FF2 JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1FEF SWAP2 SWAP1 PUSH2 0x367D JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x2076 JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2022 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2027 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x206E JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2065 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x20FF JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x20F6 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2148 DUP3 PUSH2 0x211D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2158 DUP2 PUSH2 0x213D JUMP JUMPDEST DUP2 EQ PUSH2 0x2163 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2175 DUP2 PUSH2 0x214F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x218E DUP2 PUSH2 0x217B JUMP JUMPDEST DUP2 EQ PUSH2 0x2199 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x21AB DUP2 PUSH2 0x2185 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x21C8 JUMPI PUSH2 0x21C7 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x21D6 DUP6 DUP3 DUP7 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x21E7 DUP6 DUP3 DUP7 ADD PUSH2 0x219C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x21FA DUP2 PUSH2 0x217B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2215 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x21F1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2250 DUP2 PUSH2 0x221B JUMP JUMPDEST DUP2 EQ PUSH2 0x225B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x226D DUP2 PUSH2 0x2247 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2289 JUMPI PUSH2 0x2288 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2297 DUP5 DUP3 DUP6 ADD PUSH2 0x225E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x22B5 DUP2 PUSH2 0x22A0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x22D0 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x22AC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x22EC JUMPI PUSH2 0x22EB PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x22FA DUP5 DUP3 DUP6 ADD PUSH2 0x219C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x233D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2322 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2365 DUP3 PUSH2 0x2303 JUMP JUMPDEST PUSH2 0x236F DUP2 DUP6 PUSH2 0x230E JUMP JUMPDEST SWAP4 POP PUSH2 0x237F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x231F JUMP JUMPDEST PUSH2 0x2388 DUP2 PUSH2 0x2349 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 0x23AD DUP2 DUP5 PUSH2 0x235A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x23C8 DUP2 PUSH2 0x23B5 JUMP JUMPDEST DUP2 EQ PUSH2 0x23D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x23E5 DUP2 PUSH2 0x23BF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2401 JUMPI PUSH2 0x2400 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x240F DUP5 DUP3 DUP6 ADD PUSH2 0x23D6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2421 DUP2 PUSH2 0x23B5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x243C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2418 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x247F DUP3 PUSH2 0x2349 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x249E JUMPI PUSH2 0x249D PUSH2 0x2447 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24B1 PUSH2 0x2109 JUMP JUMPDEST SWAP1 POP PUSH2 0x24BD DUP3 DUP3 PUSH2 0x2476 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x24DD JUMPI PUSH2 0x24DC PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2506 PUSH2 0x2501 DUP5 PUSH2 0x24C2 JUMP JUMPDEST PUSH2 0x24A7 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 0x2529 JUMPI PUSH2 0x2528 PUSH2 0x24EE JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2552 JUMPI DUP1 PUSH2 0x253E DUP9 DUP3 PUSH2 0x219C JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x252B JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2571 JUMPI PUSH2 0x2570 PUSH2 0x2442 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2581 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x24F3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x25AA JUMPI PUSH2 0x25A9 PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH2 0x25B3 DUP3 PUSH2 0x2349 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 0x25E2 PUSH2 0x25DD DUP5 PUSH2 0x258F JUMP JUMPDEST PUSH2 0x24A7 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x25FE JUMPI PUSH2 0x25FD PUSH2 0x258A JUMP JUMPDEST JUMPDEST PUSH2 0x2609 DUP5 DUP3 DUP6 PUSH2 0x25C0 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2626 JUMPI PUSH2 0x2625 PUSH2 0x2442 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2636 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x25CF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x265B JUMPI PUSH2 0x265A PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2669 DUP9 DUP3 DUP10 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x267A DUP9 DUP3 DUP10 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x269B JUMPI PUSH2 0x269A PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x26A7 DUP9 DUP3 DUP10 ADD PUSH2 0x255C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x26C8 JUMPI PUSH2 0x26C7 PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x26D4 DUP9 DUP3 DUP10 ADD PUSH2 0x255C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x26F5 JUMPI PUSH2 0x26F4 PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x2701 DUP9 DUP3 DUP10 ADD PUSH2 0x2611 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2725 JUMPI PUSH2 0x2724 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2733 DUP6 DUP3 DUP7 ADD PUSH2 0x23D6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2744 DUP6 DUP3 DUP7 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2769 JUMPI PUSH2 0x2768 PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x278D PUSH2 0x2788 DUP5 PUSH2 0x274E JUMP JUMPDEST PUSH2 0x24A7 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 0x27B0 JUMPI PUSH2 0x27AF PUSH2 0x24EE JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x27D9 JUMPI DUP1 PUSH2 0x27C5 DUP9 DUP3 PUSH2 0x2166 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x27B2 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x27F8 JUMPI PUSH2 0x27F7 PUSH2 0x2442 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2808 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x277A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2828 JUMPI PUSH2 0x2827 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2846 JUMPI PUSH2 0x2845 PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x2852 DUP6 DUP3 DUP7 ADD PUSH2 0x27E3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2873 JUMPI PUSH2 0x2872 PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x287F DUP6 DUP3 DUP7 ADD PUSH2 0x255C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x28BE DUP2 PUSH2 0x217B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28D0 DUP4 DUP4 PUSH2 0x28B5 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 0x28F4 DUP3 PUSH2 0x2889 JUMP JUMPDEST PUSH2 0x28FE DUP2 DUP6 PUSH2 0x2894 JUMP JUMPDEST SWAP4 POP PUSH2 0x2909 DUP4 PUSH2 0x28A5 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x293A JUMPI DUP2 MLOAD PUSH2 0x2921 DUP9 DUP3 PUSH2 0x28C4 JUMP JUMPDEST SWAP8 POP PUSH2 0x292C DUP4 PUSH2 0x28DC JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x290D JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2961 DUP2 DUP5 PUSH2 0x28E9 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2983 JUMPI PUSH2 0x2982 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2991 DUP8 DUP3 DUP9 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x29A2 DUP8 DUP3 DUP9 ADD PUSH2 0x219C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x29B3 DUP8 DUP3 DUP9 ADD PUSH2 0x219C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x29D4 JUMPI PUSH2 0x29D3 PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x29E0 DUP8 DUP3 DUP9 ADD PUSH2 0x2611 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2A07 JUMPI PUSH2 0x2A06 PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH2 0x2A10 DUP3 PUSH2 0x2349 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A30 PUSH2 0x2A2B DUP5 PUSH2 0x29EC JUMP JUMPDEST PUSH2 0x24A7 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2A4C JUMPI PUSH2 0x2A4B PUSH2 0x258A JUMP JUMPDEST JUMPDEST PUSH2 0x2A57 DUP5 DUP3 DUP6 PUSH2 0x25C0 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2A74 JUMPI PUSH2 0x2A73 PUSH2 0x2442 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2A84 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2A1D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2AA4 JUMPI PUSH2 0x2AA3 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2AB2 DUP6 DUP3 DUP7 ADD PUSH2 0x219C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2AD3 JUMPI PUSH2 0x2AD2 PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x2ADF DUP6 DUP3 DUP7 ADD PUSH2 0x2A5F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AFF JUMPI PUSH2 0x2AFE PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2B1D JUMPI PUSH2 0x2B1C PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x2B29 DUP5 DUP3 DUP6 ADD PUSH2 0x2A5F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2B3B DUP2 PUSH2 0x22A0 JUMP JUMPDEST DUP2 EQ PUSH2 0x2B46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2B58 DUP2 PUSH2 0x2B32 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2B75 JUMPI PUSH2 0x2B74 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2B83 DUP6 DUP3 DUP7 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2B94 DUP6 DUP3 DUP7 ADD PUSH2 0x2B49 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2BB5 JUMPI PUSH2 0x2BB4 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2BC3 DUP6 DUP3 DUP7 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2BD4 DUP6 DUP3 DUP7 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2BFA JUMPI PUSH2 0x2BF9 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2C08 DUP9 DUP3 DUP10 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x2C19 DUP9 DUP3 DUP10 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x2C2A DUP9 DUP3 DUP10 ADD PUSH2 0x219C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x2C3B DUP9 DUP3 DUP10 ADD PUSH2 0x219C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2C5C JUMPI PUSH2 0x2C5B PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x2C68 DUP9 DUP3 DUP10 ADD PUSH2 0x2611 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2C8E JUMPI PUSH2 0x2C8D PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2C9C DUP7 DUP3 DUP8 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x2CAD DUP7 DUP3 DUP8 ADD PUSH2 0x219C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x2CBE DUP7 DUP3 DUP8 ADD PUSH2 0x219C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 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 0x2D0F JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2D22 JUMPI PUSH2 0x2D21 PUSH2 0x2CC8 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2D31 DUP2 PUSH2 0x213D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2D4C PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x2D59 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2D28 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2D75 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x21F1 JUMP JUMPDEST PUSH2 0x2D82 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x21F1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2DCD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x2DDA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x21F1 JUMP JUMPDEST 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 0x2E10 PUSH2 0x2E0B PUSH2 0x2E06 DUP5 PUSH2 0x2DE1 JUMP JUMPDEST PUSH2 0x2DEB JUMP JUMPDEST PUSH2 0x217B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2E20 DUP2 PUSH2 0x2DF5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2E3B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2E17 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4163636F756E742063616E6E6F7420626520656D707479000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E77 PUSH1 0x17 DUP4 PUSH2 0x230E JUMP JUMPDEST SWAP2 POP PUSH2 0x2E82 DUP3 PUSH2 0x2E41 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2EA6 DUP2 PUSH2 0x2E6A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x2EDA DUP2 PUSH2 0x2CF7 JUMP JUMPDEST PUSH2 0x2EE4 DUP2 DUP7 PUSH2 0x2EAD JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0x2EFF JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x2F14 JUMPI PUSH2 0x2F47 JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE DUP2 ISZERO ISZERO DUP3 MUL DUP7 ADD SWAP4 POP PUSH2 0x2F47 JUMP JUMPDEST PUSH2 0x2F1D DUP6 PUSH2 0x2EB8 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2F3F JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2F20 JUMP JUMPDEST DUP4 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x2F6170692F76312F6E66742F0000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F86 PUSH1 0xC DUP4 PUSH2 0x2EAD JUMP JUMPDEST SWAP2 POP PUSH2 0x2F91 DUP3 PUSH2 0x2F50 JUMP JUMPDEST PUSH1 0xC DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FA7 DUP3 PUSH2 0x2303 JUMP JUMPDEST PUSH2 0x2FB1 DUP2 DUP6 PUSH2 0x2EAD JUMP JUMPDEST SWAP4 POP PUSH2 0x2FC1 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x231F JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x2F00000000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3003 PUSH1 0x1 DUP4 PUSH2 0x2EAD JUMP JUMPDEST SWAP2 POP PUSH2 0x300E DUP3 PUSH2 0x2FCD JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x2F72657075746174696F6E2D73636F7265000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x304F PUSH1 0x11 DUP4 PUSH2 0x2EAD JUMP JUMPDEST SWAP2 POP PUSH2 0x305A DUP3 PUSH2 0x3019 JUMP JUMPDEST PUSH1 0x11 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3071 DUP3 DUP7 PUSH2 0x2ECD JUMP JUMPDEST SWAP2 POP PUSH2 0x307C DUP3 PUSH2 0x2F79 JUMP JUMPDEST SWAP2 POP PUSH2 0x3088 DUP3 DUP6 PUSH2 0x2F9C JUMP JUMPDEST SWAP2 POP PUSH2 0x3093 DUP3 PUSH2 0x2FF6 JUMP JUMPDEST SWAP2 POP PUSH2 0x309F DUP3 DUP5 PUSH2 0x2F9C JUMP JUMPDEST SWAP2 POP PUSH2 0x30AA DUP3 PUSH2 0x3042 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x30C4 DUP2 PUSH2 0x2CF7 JUMP JUMPDEST PUSH2 0x30CE DUP2 DUP7 PUSH2 0x230E JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0x30E9 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x30FF JUMPI PUSH2 0x3132 JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE DUP2 ISZERO ISZERO PUSH1 0x20 MUL DUP7 ADD SWAP4 POP PUSH2 0x3132 JUMP JUMPDEST PUSH2 0x3108 DUP6 PUSH2 0x2EB8 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x312A JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x310B JUMP JUMPDEST DUP1 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP 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 0x3155 DUP2 DUP6 PUSH2 0x30B7 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x3169 DUP2 DUP5 PUSH2 0x235A JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP 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 0x31BF PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x3182 JUMP JUMPDEST PUSH2 0x31C9 DUP7 DUP4 PUSH2 0x3182 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 0x31FC PUSH2 0x31F7 PUSH2 0x31F2 DUP5 PUSH2 0x217B JUMP JUMPDEST PUSH2 0x2DEB JUMP JUMPDEST PUSH2 0x217B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3216 DUP4 PUSH2 0x31E1 JUMP JUMPDEST PUSH2 0x322A PUSH2 0x3222 DUP3 PUSH2 0x3203 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x318F JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x323F PUSH2 0x3232 JUMP JUMPDEST PUSH2 0x324A DUP2 DUP5 DUP5 PUSH2 0x320D JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x326E JUMPI PUSH2 0x3263 PUSH1 0x0 DUP3 PUSH2 0x3237 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x3250 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x32B3 JUMPI PUSH2 0x3284 DUP2 PUSH2 0x2EB8 JUMP JUMPDEST PUSH2 0x328D DUP5 PUSH2 0x3172 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x329C JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x32B0 PUSH2 0x32A8 DUP6 PUSH2 0x3172 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x324F 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 0x32D6 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x32B8 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x32EF DUP4 DUP4 PUSH2 0x32C5 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x3308 DUP3 PUSH2 0x2303 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3321 JUMPI PUSH2 0x3320 PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH2 0x332B DUP3 SLOAD PUSH2 0x2CF7 JUMP JUMPDEST PUSH2 0x3336 DUP3 DUP3 DUP6 PUSH2 0x3272 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x3369 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x3357 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x3361 DUP6 DUP3 PUSH2 0x32E3 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x3377 DUP7 PUSH2 0x2EB8 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x339F 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 0x337A JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x33BC JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x33B8 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x32C5 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 PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x340B DUP3 PUSH2 0x217B JUMP JUMPDEST SWAP2 POP PUSH2 0x3416 DUP4 PUSH2 0x217B JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x342E JUMPI PUSH2 0x342D PUSH2 0x33D1 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3449 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2D28 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x5552492063616E6E6F7420626520656D70747900000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34B4 PUSH1 0x13 DUP4 PUSH2 0x230E JUMP JUMPDEST SWAP2 POP PUSH2 0x34BF DUP3 PUSH2 0x347E JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x34E3 DUP2 PUSH2 0x34A7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x34F3 DUP2 PUSH2 0x221B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x350E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x34EA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3529 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x3536 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2418 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x3552 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x355F PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x21F1 JUMP JUMPDEST PUSH2 0x356C PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x21F1 JUMP JUMPDEST PUSH2 0x3579 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x21F1 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x359C DUP2 DUP6 PUSH2 0x28E9 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x35B0 DUP2 DUP5 PUSH2 0x28E9 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 0x35E0 DUP3 PUSH2 0x35B9 JUMP JUMPDEST PUSH2 0x35EA DUP2 DUP6 PUSH2 0x35C4 JUMP JUMPDEST SWAP4 POP PUSH2 0x35FA DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x231F JUMP JUMPDEST PUSH2 0x3603 DUP2 PUSH2 0x2349 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x3623 PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x3630 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x363D PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x21F1 JUMP JUMPDEST PUSH2 0x364A PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x21F1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x365C DUP2 DUP5 PUSH2 0x35D5 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x3677 DUP2 PUSH2 0x2247 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3693 JUMPI PUSH2 0x3692 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x36A1 DUP5 DUP3 DUP6 ADD PUSH2 0x3668 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x36BF PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x36CC PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2D28 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x36DE DUP2 DUP7 PUSH2 0x28E9 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x36F2 DUP2 DUP6 PUSH2 0x28E9 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x3706 DUP2 DUP5 PUSH2 0x35D5 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x24 0xE SWAP11 PUSH30 0xAAB5D9EBA2793E75F4BBF0E9A74F133868AC14D5E9561767BB722E826473 PUSH16 0x6C634300081A00330000000000000000 ", + "sourceMap": "336:2840:16:-:0;;;497:178;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1251:62:3;;;;;;;;;;;;1293:13;1301:4;1293:7;;;:13;;:::i;:::-;1251:62;556:29:16::1;575:9;556:18;;;:29;;:::i;:::-;595:42;2232:4:0;606:18:16::0;::::1;626:10;595;;;:42;;:::i;:::-;;659:9;647;:21;;;;;;:::i;:::-;;497:178:::0;336:2840;;10282:86:3;10355:6;10348:4;:13;;;;;;:::i;:::-;;10282:86;:::o;827:174:16:-;929:1;911:6;905:20;:25;901:94;;953:31;;;;;;;;;;:::i;:::-;;;;;;;;901:94;827:174;:::o;6179:316:0:-;6256:4;6277:22;6285:4;6291:7;6277;;;:22;;:::i;:::-;6272:217;;6347:4;6315:6;:12;6322:4;6315:12;;;;;;;;;;;:20;;:29;6336:7;6315:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;6397:12;:10;;;:12;;:::i;:::-;6370:40;;6388:7;6370:40;;6382:4;6370:40;;;;;;;;;;6431:4;6424:11;;;;6272:217;6473:5;6466:12;;6179:316;;;;;:::o;2854:136::-;2931:4;2954:6;:12;2961:4;2954:12;;;;;;;;;;;:20;;:29;2975:7;2954:29;;;;;;;;;;;;;;;;;;;;;;;;;2947:36;;2854:136;;;;:::o;656:96:8:-;709:7;735:10;728:17;;656:96;:::o;7:75:18:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:102;621:6;672:2;668:7;663:2;656:5;652:14;648:28;638:38;;580:102;;;:::o;688:180::-;736:77;733:1;726:88;833:4;830:1;823:15;857:4;854:1;847:15;874:281;957:27;979:4;957:27;:::i;:::-;949:6;945:40;1087:6;1075:10;1072:22;1051:18;1039:10;1036:34;1033:62;1030:88;;;1098:18;;:::i;:::-;1030:88;1138:10;1134:2;1127:22;917:238;874:281;;:::o;1161:129::-;1195:6;1222:20;;:::i;:::-;1212:30;;1251:33;1279:4;1271:6;1251:33;:::i;:::-;1161:129;;;:::o;1296:308::-;1358:4;1448:18;1440:6;1437:30;1434:56;;;1470:18;;:::i;:::-;1434:56;1508:29;1530:6;1508:29;:::i;:::-;1500:37;;1592:4;1586;1582:15;1574:23;;1296:308;;;:::o;1610:248::-;1692:1;1702:113;1716:6;1713:1;1710:13;1702:113;;;1801:1;1796:3;1792:11;1786:18;1782:1;1777:3;1773:11;1766:39;1738:2;1735:1;1731:10;1726:15;;1702:113;;;1849:1;1840:6;1835:3;1831:16;1824:27;1672:186;1610:248;;;:::o;1864:434::-;1953:5;1978:66;1994:49;2036:6;1994:49;:::i;:::-;1978:66;:::i;:::-;1969:75;;2067:6;2060:5;2053:21;2105:4;2098:5;2094:16;2143:3;2134:6;2129:3;2125:16;2122:25;2119:112;;;2150:79;;:::i;:::-;2119:112;2240:52;2285:6;2280:3;2275;2240:52;:::i;:::-;1959:339;1864:434;;;;;:::o;2318:355::-;2385:5;2434:3;2427:4;2419:6;2415:17;2411:27;2401:122;;2442:79;;:::i;:::-;2401:122;2552:6;2546:13;2577:90;2663:3;2655:6;2648:4;2640:6;2636:17;2577:90;:::i;:::-;2568:99;;2391:282;2318:355;;;;:::o;2679:524::-;2759:6;2808:2;2796:9;2787:7;2783:23;2779:32;2776:119;;;2814:79;;:::i;:::-;2776:119;2955:1;2944:9;2940:17;2934:24;2985:18;2977:6;2974:30;2971:117;;;3007:79;;:::i;:::-;2971:117;3112:74;3178:7;3169:6;3158:9;3154:22;3112:74;:::i;:::-;3102:84;;2905:291;2679:524;;;;:::o;3209:99::-;3261:6;3295:5;3289:12;3279:22;;3209:99;;;:::o;3314:180::-;3362:77;3359:1;3352:88;3459:4;3456:1;3449:15;3483:4;3480:1;3473:15;3500:320;3544:6;3581:1;3575:4;3571:12;3561:22;;3628:1;3622:4;3618:12;3649:18;3639:81;;3705:4;3697:6;3693:17;3683:27;;3639:81;3767:2;3759:6;3756:14;3736:18;3733:38;3730:84;;3786:18;;:::i;:::-;3730:84;3551:269;3500:320;;;:::o;3826:141::-;3875:4;3898:3;3890:11;;3921:3;3918:1;3911:14;3955:4;3952:1;3942:18;3934:26;;3826:141;;;:::o;3973:93::-;4010:6;4057:2;4052;4045:5;4041:14;4037:23;4027:33;;3973:93;;;:::o;4072:107::-;4116:8;4166:5;4160:4;4156:16;4135:37;;4072:107;;;;:::o;4185:393::-;4254:6;4304:1;4292:10;4288:18;4327:97;4357:66;4346:9;4327:97;:::i;:::-;4445:39;4475:8;4464:9;4445:39;:::i;:::-;4433:51;;4517:4;4513:9;4506:5;4502:21;4493:30;;4566:4;4556:8;4552:19;4545:5;4542:30;4532:40;;4261:317;;4185:393;;;;;:::o;4584:77::-;4621:7;4650:5;4639:16;;4584:77;;;:::o;4667:60::-;4695:3;4716:5;4709:12;;4667:60;;;:::o;4733:142::-;4783:9;4816:53;4834:34;4843:24;4861:5;4843:24;:::i;:::-;4834:34;:::i;:::-;4816:53;:::i;:::-;4803:66;;4733:142;;;:::o;4881:75::-;4924:3;4945:5;4938:12;;4881:75;;;:::o;4962:269::-;5072:39;5103:7;5072:39;:::i;:::-;5133:91;5182:41;5206:16;5182:41;:::i;:::-;5174:6;5167:4;5161:11;5133:91;:::i;:::-;5127:4;5120:105;5038:193;4962:269;;;:::o;5237:73::-;5282:3;5237:73;:::o;5316:189::-;5393:32;;:::i;:::-;5434:65;5492:6;5484;5478:4;5434:65;:::i;:::-;5369:136;5316:189;;:::o;5511:186::-;5571:120;5588:3;5581:5;5578:14;5571:120;;;5642:39;5679:1;5672:5;5642:39;:::i;:::-;5615:1;5608:5;5604:13;5595:22;;5571:120;;;5511:186;;:::o;5703:543::-;5804:2;5799:3;5796:11;5793:446;;;5838:38;5870:5;5838:38;:::i;:::-;5922:29;5940:10;5922:29;:::i;:::-;5912:8;5908:44;6105:2;6093:10;6090:18;6087:49;;;6126:8;6111:23;;6087:49;6149:80;6205:22;6223:3;6205:22;:::i;:::-;6195:8;6191:37;6178:11;6149:80;:::i;:::-;5808:431;;5793:446;5703:543;;;:::o;6252:117::-;6306:8;6356:5;6350:4;6346:16;6325:37;;6252:117;;;;:::o;6375:169::-;6419:6;6452:51;6500:1;6496:6;6488:5;6485:1;6481:13;6452:51;:::i;:::-;6448:56;6533:4;6527;6523:15;6513:25;;6426:118;6375:169;;;;:::o;6549:295::-;6625:4;6771:29;6796:3;6790:4;6771:29;:::i;:::-;6763:37;;6833:3;6830:1;6826:11;6820:4;6817:21;6809:29;;6549:295;;;;:::o;6849:1395::-;6966:37;6999:3;6966:37;:::i;:::-;7068:18;7060:6;7057:30;7054:56;;;7090:18;;:::i;:::-;7054:56;7134:38;7166:4;7160:11;7134:38;:::i;:::-;7219:67;7279:6;7271;7265:4;7219:67;:::i;:::-;7313:1;7337:4;7324:17;;7369:2;7361:6;7358:14;7386:1;7381:618;;;;8043:1;8060:6;8057:77;;;8109:9;8104:3;8100:19;8094:26;8085:35;;8057:77;8160:67;8220:6;8213:5;8160:67;:::i;:::-;8154:4;8147:81;8016:222;7351:887;;7381:618;7433:4;7429:9;7421:6;7417:22;7467:37;7499:4;7467:37;:::i;:::-;7526:1;7540:208;7554:7;7551:1;7548:14;7540:208;;;7633:9;7628:3;7624:19;7618:26;7610:6;7603:42;7684:1;7676:6;7672:14;7662:24;;7731:2;7720:9;7716:18;7703:31;;7577:4;7574:1;7570:12;7565:17;;7540:208;;;7776:6;7767:7;7764:19;7761:179;;;7834:9;7829:3;7825:19;7819:26;7877:48;7919:4;7911:6;7907:17;7896:9;7877:48;:::i;:::-;7869:6;7862:64;7784:156;7761:179;7986:1;7982;7974:6;7970:14;7966:22;7960:4;7953:36;7388:611;;;7351:887;;6941:1303;;;6849:1395;;:::o;8250:169::-;8334:11;8368:6;8363:3;8356:19;8408:4;8403:3;8399:14;8384:29;;8250:169;;;;:::o;8425:::-;8565:21;8561:1;8553:6;8549:14;8542:45;8425:169;:::o;8600:366::-;8742:3;8763:67;8827:2;8822:3;8763:67;:::i;:::-;8756:74;;8839:93;8928:3;8839:93;:::i;:::-;8957:2;8952:3;8948:12;8941:19;;8600:366;;;:::o;8972:419::-;9138:4;9176:2;9165:9;9161:18;9153:26;;9225:9;9219:4;9215:20;9211:1;9200:9;9196:17;9189:47;9253:131;9379:4;9253:131;:::i;:::-;9245:139;;8972:419;;;:::o;336:2840:16:-;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@DEFAULT_ADMIN_ROLE_29": { + "entryPoint": 2477, + "id": 29, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_asSingletonArrays_1565": { + "entryPoint": 6156, + "id": 1565, + "parameterSlots": 2, + "returnSlots": 2 + }, + "@_burn_1332": { + "entryPoint": 5345, + "id": 1332, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_checkRole_114": { + "entryPoint": 6075, + "id": 114, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_checkRole_93": { + "entryPoint": 3662, + "id": 93, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_checkTokenId_3773": { + "entryPoint": 4207, + "id": 3773, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_doSafeBatchTransferAcceptanceCheck_1549": { + "entryPoint": 8021, + "id": 1549, + "parameterSlots": 6, + "returnSlots": 0 + }, + "@_doSafeTransferAcceptanceCheck_1479": { + "entryPoint": 7585, + "id": 1479, + "parameterSlots": 6, + "returnSlots": 0 + }, + "@_grantRole_256": { + "entryPoint": 3682, + "id": 256, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_mint_1241": { + "entryPoint": 4280, + "id": 1241, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_msgSender_1942": { + "entryPoint": 3406, + "id": 1942, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_revokeRole_294": { + "entryPoint": 3924, + "id": 294, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_safeBatchTransferFrom_1178": { + "entryPoint": 3414, + "id": 1178, + "parameterSlots": 5, + "returnSlots": 0 + }, + "@_safeTransferFrom_1123": { + "entryPoint": 5078, + "id": 1123, + "parameterSlots": 5, + "returnSlots": 0 + }, + "@_setApprovalForAll_1411": { + "entryPoint": 4710, + "id": 1411, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_updateWithAcceptanceCheck_1057": { + "entryPoint": 5897, + "id": 1057, + "parameterSlots": 5, + "returnSlots": 0 + }, + "@_update_981": { + "entryPoint": 6649, + "id": 981, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@balanceOfBatch_705": { + "entryPoint": 1669, + "id": 705, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@balanceOf_635": { + "entryPoint": 1010, + "id": 635, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@burn_3948": { + "entryPoint": 2981, + "id": 3948, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@counter_3848": { + "entryPoint": 1934, + "id": 3848, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getRoleAdmin_128": { + "entryPoint": 1312, + "id": 128, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@grantRole_147": { + "entryPoint": 1512, + "id": 147, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@hasRole_80": { + "entryPoint": 2270, + "id": 80, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@isApprovedForAll_738": { + "entryPoint": 2665, + "id": 738, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@issue_3876": { + "entryPoint": 2506, + "id": 3876, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@log10_3430": { + "entryPoint": 6204, + "id": 3430, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@mint_3918": { + "entryPoint": 1944, + "id": 3918, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@renounceRole_189": { + "entryPoint": 1546, + "id": 189, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@requireNonEmptyURI_3792": { + "entryPoint": 4639, + "id": 3792, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@revokeRole_166": { + "entryPoint": 2631, + "id": 166, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@safeBatchTransferFrom_828": { + "entryPoint": 1344, + "id": 828, + "parameterSlots": 5, + "returnSlots": 0 + }, + "@safeTransferFrom_782": { + "entryPoint": 2813, + "id": 782, + "parameterSlots": 5, + "returnSlots": 0 + }, + "@setApprovalForAll_721": { + "entryPoint": 2484, + "id": 721, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@supportsERC165InterfaceUnchecked_2543": { + "entryPoint": 5512, + "id": 2543, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@supportsERC165_2380": { + "entryPoint": 3207, + "id": 2380, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_2348": { + "entryPoint": 6543, + "id": 2348, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_3974": { + "entryPoint": 1100, + "id": 3974, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_607": { + "entryPoint": 5671, + "id": 607, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_62": { + "entryPoint": 3284, + "id": 62, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@toString_2138": { + "entryPoint": 4433, + "id": 2138, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@unsafeMemoryAccess_1916": { + "entryPoint": 4187, + "id": 1916, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@unsafeMemoryAccess_1929": { + "entryPoint": 4167, + "id": 1929, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@updateBaseURI_3996": { + "entryPoint": 2377, + "id": 3996, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@uri_4028": { + "entryPoint": 2134, + "id": 4028, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@uri_618": { + "entryPoint": 1164, + "id": 618, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 10106, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 9459, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_available_length_t_bytes_memory_ptr": { + "entryPoint": 9679, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_available_length_t_string_memory_ptr": { + "entryPoint": 10781, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_decode_t_address": { + "entryPoint": 8550, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 10211, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 9564, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bool": { + "entryPoint": 11081, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes32": { + "entryPoint": 9174, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes4": { + "entryPoint": 8798, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes4_fromMemory": { + "entryPoint": 13928, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_bytes_memory_ptr": { + "entryPoint": 9745, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_string_memory_ptr": { + "entryPoint": 10847, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_t_uint256": { + "entryPoint": 8604, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_address": { + "entryPoint": 11166, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr": { + "entryPoint": 9791, + "id": null, + "parameterSlots": 2, + "returnSlots": 5 + }, + "abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr": { + "entryPoint": 11230, + "id": null, + "parameterSlots": 2, + "returnSlots": 5 + }, + "abi_decode_tuple_t_addresst_bool": { + "entryPoint": 11102, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_uint256": { + "entryPoint": 8625, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_addresst_uint256t_uint256": { + "entryPoint": 11381, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_addresst_uint256t_uint256t_bytes_memory_ptr": { + "entryPoint": 10601, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 10257, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bytes32": { + "entryPoint": 9195, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes32t_address": { + "entryPoint": 9998, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_bytes4": { + "entryPoint": 8819, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes4_fromMemory": { + "entryPoint": 13949, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_string_memory_ptr": { + "entryPoint": 10985, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 8918, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_string_memory_ptr": { + "entryPoint": 10893, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_encodeUpdatedPos_t_uint256_to_t_uint256": { + "entryPoint": 10436, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_address_to_t_address_fromStack": { + "entryPoint": 11560, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack": { + "entryPoint": 10473, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_bool_to_t_bool_fromStack": { + "entryPoint": 8876, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes32_to_t_bytes32_fromStack": { + "entryPoint": 9240, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes4_to_t_bytes4_fromStack": { + "entryPoint": 13546, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack": { + "entryPoint": 13781, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_rational_1_by_1_to_t_uint256_fromStack": { + "entryPoint": 11799, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack": { + "entryPoint": 9050, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 12188, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack": { + "entryPoint": 12471, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 11981, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack": { + "entryPoint": 13479, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 12354, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619_to_t_string_memory_ptr_fromStack": { + "entryPoint": 11882, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 12153, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_to_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 12278, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_t_uint256_to_t_uint256": { + "entryPoint": 10421, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_t_uint256_to_t_uint256_fromStack": { + "entryPoint": 8689, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_packed_t_string_storage_t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7_t_string_memory_ptr_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_t_string_memory_ptr_t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 12389, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": 13364, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed": { + "entryPoint": 11575, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed": { + "entryPoint": 13994, + "id": null, + "parameterSlots": 6, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed": { + "entryPoint": 13838, + "id": null, + "parameterSlots": 6, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed": { + "entryPoint": 13588, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed": { + "entryPoint": 11704, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address_t_uint256_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 13629, + "id": null, + "parameterSlots": 5, + "returnSlots": 1 + }, + "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed": { + "entryPoint": 10567, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed": { + "entryPoint": 13698, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": 8891, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": { + "entryPoint": 9255, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed": { + "entryPoint": 13561, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_rational_1_by_1__to_t_uint256__fromStack_reversed": { + "entryPoint": 11814, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 9107, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_storage_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 12603, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 13514, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 11917, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": 8704, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": 11616, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 9383, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_unbounded": { + "entryPoint": 8457, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_t_array$_t_address_$dyn_memory_ptr": { + "entryPoint": 10062, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 9410, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_allocation_size_t_bytes_memory_ptr": { + "entryPoint": 9615, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_allocation_size_t_string_memory_ptr": { + "entryPoint": 10732, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 10405, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_t_string_storage": { + "entryPoint": 11960, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 10377, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_bytes_memory_ptr": { + "entryPoint": 13753, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_length_t_string_memory_ptr": { + "entryPoint": 8963, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 10460, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack": { + "entryPoint": 10388, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack": { + "entryPoint": 13764, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { + "entryPoint": 8974, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack": { + "entryPoint": 11949, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 13312, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_t_string_storage": { + "entryPoint": 12914, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "cleanup_t_address": { + "entryPoint": 8509, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bool": { + "entryPoint": 8864, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes32": { + "entryPoint": 9141, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_bytes4": { + "entryPoint": 8731, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_rational_1_by_1": { + "entryPoint": 11745, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint160": { + "entryPoint": 8477, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "cleanup_t_uint256": { + "entryPoint": 8571, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "clear_storage_range_t_bytes1": { + "entryPoint": 12879, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "convert_t_rational_1_by_1_to_t_uint256": { + "entryPoint": 11765, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "convert_t_uint256_to_t_uint256": { + "entryPoint": 12769, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 13055, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "copy_calldata_to_memory_with_cleanup": { + "entryPoint": 9664, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 8991, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "divide_by_32_ceil": { + "entryPoint": 12658, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_byte_array_length": { + "entryPoint": 11511, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": 13027, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "finalize_allocation": { + "entryPoint": 9334, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "identity": { + "entryPoint": 11755, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "mask_bytes_dynamic": { + "entryPoint": 12997, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 13265, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x12": { + "entryPoint": 13391, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x22": { + "entryPoint": 11464, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x32": { + "entryPoint": 11657, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 9287, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "prepare_store_t_uint256": { + "entryPoint": 12803, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d": { + "entryPoint": 9282, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef": { + "entryPoint": 9454, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae": { + "entryPoint": 9610, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { + "entryPoint": 8472, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { + "entryPoint": 8467, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "round_up_to_mul_of_32": { + "entryPoint": 9033, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "shift_left_dynamic": { + "entryPoint": 12674, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "shift_right_unsigned_dynamic": { + "entryPoint": 12984, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "storage_set_to_zero_t_uint256": { + "entryPoint": 12855, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "store_literal_in_memory_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231": { + "entryPoint": 13438, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55": { + "entryPoint": 12313, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619": { + "entryPoint": 11841, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7": { + "entryPoint": 12112, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "store_literal_in_memory_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527": { + "entryPoint": 12237, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "update_byte_slice_dynamic32": { + "entryPoint": 12687, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "update_storage_value_t_uint256_to_t_uint256": { + "entryPoint": 12813, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "validator_revert_t_address": { + "entryPoint": 8527, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bool": { + "entryPoint": 11058, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bytes32": { + "entryPoint": 9151, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_bytes4": { + "entryPoint": 8775, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "validator_revert_t_uint256": { + "entryPoint": 8581, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + }, + "zero_value_for_split_t_uint256": { + "entryPoint": 12850, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:42493:18", + "nodeType": "YulBlock", + "src": "0:42493:18", + "statements": [ { "body": { - "nativeSrc": "4689:195:18", + "nativeSrc": "47:35:18", "nodeType": "YulBlock", - "src": "4689:195:18", + "src": "47:35:18", "statements": [ { - "nativeSrc": "4699:26:18", - "nodeType": "YulAssignment", - "src": "4699:26:18", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4711:9:18", - "nodeType": "YulIdentifier", - "src": "4711:9:18" - }, - { - "kind": "number", - "nativeSrc": "4722:2:18", - "nodeType": "YulLiteral", - "src": "4722:2:18", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4707:3:18", - "nodeType": "YulIdentifier", - "src": "4707:3:18" - }, - "nativeSrc": "4707:18:18", - "nodeType": "YulFunctionCall", - "src": "4707:18:18" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "4699:4:18", - "nodeType": "YulIdentifier", - "src": "4699:4:18" - } - ] - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "4746:9:18", - "nodeType": "YulIdentifier", - "src": "4746:9:18" - }, - { - "kind": "number", - "nativeSrc": "4757:1:18", - "nodeType": "YulLiteral", - "src": "4757:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "4742:3:18", - "nodeType": "YulIdentifier", - "src": "4742:3:18" - }, - "nativeSrc": "4742:17:18", - "nodeType": "YulFunctionCall", - "src": "4742:17:18" - }, - { - "arguments": [ - { - "name": "tail", - "nativeSrc": "4765:4:18", - "nodeType": "YulIdentifier", - "src": "4765:4:18" - }, - { - "name": "headStart", - "nativeSrc": "4771:9:18", - "nodeType": "YulIdentifier", - "src": "4771:9:18" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "4761:3:18", - "nodeType": "YulIdentifier", - "src": "4761:3:18" - }, - "nativeSrc": "4761:20:18", - "nodeType": "YulFunctionCall", - "src": "4761:20:18" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "4735:6:18", - "nodeType": "YulIdentifier", - "src": "4735:6:18" - }, - "nativeSrc": "4735:47:18", - "nodeType": "YulFunctionCall", - "src": "4735:47:18" - }, - "nativeSrc": "4735:47:18", - "nodeType": "YulExpressionStatement", - "src": "4735:47:18" - }, - { - "nativeSrc": "4791:86:18", + "nativeSrc": "57:19:18", "nodeType": "YulAssignment", - "src": "4791:86:18", - "value": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "4863:6:18", - "nodeType": "YulIdentifier", - "src": "4863:6:18" - }, - { - "name": "tail", - "nativeSrc": "4872:4:18", - "nodeType": "YulIdentifier", - "src": "4872:4:18" - } - ], - "functionName": { - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", - "nativeSrc": "4799:63:18", - "nodeType": "YulIdentifier", - "src": "4799:63:18" - }, - "nativeSrc": "4799:78:18", - "nodeType": "YulFunctionCall", - "src": "4799:78:18" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "4791:4:18", - "nodeType": "YulIdentifier", - "src": "4791:4:18" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", - "nativeSrc": "4571:313:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "4661:9:18", - "nodeType": "YulTypedName", - "src": "4661:9:18", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "4673:6:18", - "nodeType": "YulTypedName", - "src": "4673:6:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "4684:4:18", - "nodeType": "YulTypedName", - "src": "4684:4:18", - "type": "" - } - ], - "src": "4571:313:18" - }, - { - "body": { - "nativeSrc": "4979:28:18", - "nodeType": "YulBlock", - "src": "4979:28:18", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "4996:1:18", - "nodeType": "YulLiteral", - "src": "4996:1:18", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "4999:1:18", - "nodeType": "YulLiteral", - "src": "4999:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "4989:6:18", - "nodeType": "YulIdentifier", - "src": "4989:6:18" - }, - "nativeSrc": "4989:12:18", - "nodeType": "YulFunctionCall", - "src": "4989:12:18" - }, - "nativeSrc": "4989:12:18", - "nodeType": "YulExpressionStatement", - "src": "4989:12:18" - } - ] - }, - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "4890:117:18", - "nodeType": "YulFunctionDefinition", - "src": "4890:117:18" - }, - { - "body": { - "nativeSrc": "5102:28:18", - "nodeType": "YulBlock", - "src": "5102:28:18", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "5119:1:18", - "nodeType": "YulLiteral", - "src": "5119:1:18", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "5122:1:18", - "nodeType": "YulLiteral", - "src": "5122:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "5112:6:18", - "nodeType": "YulIdentifier", - "src": "5112:6:18" - }, - "nativeSrc": "5112:12:18", - "nodeType": "YulFunctionCall", - "src": "5112:12:18" - }, - "nativeSrc": "5112:12:18", - "nodeType": "YulExpressionStatement", - "src": "5112:12:18" - } - ] - }, - "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", - "nativeSrc": "5013:117:18", - "nodeType": "YulFunctionDefinition", - "src": "5013:117:18" - }, - { - "body": { - "nativeSrc": "5164:152:18", - "nodeType": "YulBlock", - "src": "5164:152:18", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "5181:1:18", - "nodeType": "YulLiteral", - "src": "5181:1:18", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "5184:77:18", - "nodeType": "YulLiteral", - "src": "5184:77:18", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5174:6:18", - "nodeType": "YulIdentifier", - "src": "5174:6:18" - }, - "nativeSrc": "5174:88:18", - "nodeType": "YulFunctionCall", - "src": "5174:88:18" - }, - "nativeSrc": "5174:88:18", - "nodeType": "YulExpressionStatement", - "src": "5174:88:18" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "5278:1:18", - "nodeType": "YulLiteral", - "src": "5278:1:18", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "5281:4:18", - "nodeType": "YulLiteral", - "src": "5281:4:18", - "type": "", - "value": "0x41" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "5271:6:18", - "nodeType": "YulIdentifier", - "src": "5271:6:18" - }, - "nativeSrc": "5271:15:18", - "nodeType": "YulFunctionCall", - "src": "5271:15:18" - }, - "nativeSrc": "5271:15:18", - "nodeType": "YulExpressionStatement", - "src": "5271:15:18" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "5302:1:18", - "nodeType": "YulLiteral", - "src": "5302:1:18", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "5305:4:18", - "nodeType": "YulLiteral", - "src": "5305:4:18", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "5295:6:18", - "nodeType": "YulIdentifier", - "src": "5295:6:18" - }, - "nativeSrc": "5295:15:18", - "nodeType": "YulFunctionCall", - "src": "5295:15:18" - }, - "nativeSrc": "5295:15:18", - "nodeType": "YulExpressionStatement", - "src": "5295:15:18" - } - ] - }, - "name": "panic_error_0x41", - "nativeSrc": "5136:180:18", - "nodeType": "YulFunctionDefinition", - "src": "5136:180:18" - }, - { - "body": { - "nativeSrc": "5365:238:18", - "nodeType": "YulBlock", - "src": "5365:238:18", - "statements": [ - { - "nativeSrc": "5375:58:18", - "nodeType": "YulVariableDeclaration", - "src": "5375:58:18", + "src": "57:19:18", "value": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "5397:6:18", - "nodeType": "YulIdentifier", - "src": "5397:6:18" - }, - { - "arguments": [ - { - "name": "size", - "nativeSrc": "5427:4:18", - "nodeType": "YulIdentifier", - "src": "5427:4:18" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nativeSrc": "5405:21:18", - "nodeType": "YulIdentifier", - "src": "5405:21:18" - }, - "nativeSrc": "5405:27:18", - "nodeType": "YulFunctionCall", - "src": "5405:27:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "5393:3:18", - "nodeType": "YulIdentifier", - "src": "5393:3:18" - }, - "nativeSrc": "5393:40:18", - "nodeType": "YulFunctionCall", - "src": "5393:40:18" - }, - "variables": [ - { - "name": "newFreePtr", - "nativeSrc": "5379:10:18", - "nodeType": "YulTypedName", - "src": "5379:10:18", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "5544:22:18", - "nodeType": "YulBlock", - "src": "5544:22:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "5546:16:18", - "nodeType": "YulIdentifier", - "src": "5546:16:18" - }, - "nativeSrc": "5546:18:18", - "nodeType": "YulFunctionCall", - "src": "5546:18:18" - }, - "nativeSrc": "5546:18:18", - "nodeType": "YulExpressionStatement", - "src": "5546:18:18" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "5487:10:18", - "nodeType": "YulIdentifier", - "src": "5487:10:18" - }, - { - "kind": "number", - "nativeSrc": "5499:18:18", - "nodeType": "YulLiteral", - "src": "5499:18:18", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "5484:2:18", - "nodeType": "YulIdentifier", - "src": "5484:2:18" - }, - "nativeSrc": "5484:34:18", - "nodeType": "YulFunctionCall", - "src": "5484:34:18" - }, - { - "arguments": [ - { - "name": "newFreePtr", - "nativeSrc": "5523:10:18", - "nodeType": "YulIdentifier", - "src": "5523:10:18" - }, - { - "name": "memPtr", - "nativeSrc": "5535:6:18", - "nodeType": "YulIdentifier", - "src": "5535:6:18" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "5520:2:18", - "nodeType": "YulIdentifier", - "src": "5520:2:18" - }, - "nativeSrc": "5520:22:18", - "nodeType": "YulFunctionCall", - "src": "5520:22:18" - } - ], - "functionName": { - "name": "or", - "nativeSrc": "5481:2:18", - "nodeType": "YulIdentifier", - "src": "5481:2:18" - }, - "nativeSrc": "5481:62:18", - "nodeType": "YulFunctionCall", - "src": "5481:62:18" - }, - "nativeSrc": "5478:88:18", - "nodeType": "YulIf", - "src": "5478:88:18" - }, - { - "expression": { "arguments": [ { "kind": "number", - "nativeSrc": "5582:2:18", + "nativeSrc": "73:2:18", "nodeType": "YulLiteral", - "src": "5582:2:18", + "src": "73:2:18", "type": "", "value": "64" - }, - { - "name": "newFreePtr", - "nativeSrc": "5586:10:18", - "nodeType": "YulIdentifier", - "src": "5586:10:18" } ], "functionName": { - "name": "mstore", - "nativeSrc": "5575:6:18", - "nodeType": "YulIdentifier", - "src": "5575:6:18" - }, - "nativeSrc": "5575:22:18", - "nodeType": "YulFunctionCall", - "src": "5575:22:18" - }, - "nativeSrc": "5575:22:18", - "nodeType": "YulExpressionStatement", - "src": "5575:22:18" - } - ] - }, - "name": "finalize_allocation", - "nativeSrc": "5322:281:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nativeSrc": "5351:6:18", - "nodeType": "YulTypedName", - "src": "5351:6:18", - "type": "" - }, - { - "name": "size", - "nativeSrc": "5359:4:18", - "nodeType": "YulTypedName", - "src": "5359:4:18", - "type": "" - } - ], - "src": "5322:281:18" - }, - { - "body": { - "nativeSrc": "5650:88:18", - "nodeType": "YulBlock", - "src": "5650:88:18", - "statements": [ - { - "nativeSrc": "5660:30:18", - "nodeType": "YulAssignment", - "src": "5660:30:18", - "value": { - "arguments": [], - "functionName": { - "name": "allocate_unbounded", - "nativeSrc": "5670:18:18", + "name": "mload", + "nativeSrc": "67:5:18", "nodeType": "YulIdentifier", - "src": "5670:18:18" + "src": "67:5:18" }, - "nativeSrc": "5670:20:18", + "nativeSrc": "67:9:18", "nodeType": "YulFunctionCall", - "src": "5670:20:18" + "src": "67:9:18" }, "variableNames": [ { "name": "memPtr", - "nativeSrc": "5660:6:18", + "nativeSrc": "57:6:18", "nodeType": "YulIdentifier", - "src": "5660:6:18" + "src": "57:6:18" } ] - }, - { - "expression": { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "5719:6:18", - "nodeType": "YulIdentifier", - "src": "5719:6:18" - }, - { - "name": "size", - "nativeSrc": "5727:4:18", - "nodeType": "YulIdentifier", - "src": "5727:4:18" - } - ], - "functionName": { - "name": "finalize_allocation", - "nativeSrc": "5699:19:18", - "nodeType": "YulIdentifier", - "src": "5699:19:18" - }, - "nativeSrc": "5699:33:18", - "nodeType": "YulFunctionCall", - "src": "5699:33:18" - }, - "nativeSrc": "5699:33:18", - "nodeType": "YulExpressionStatement", - "src": "5699:33:18" } ] }, - "name": "allocate_memory", - "nativeSrc": "5609:129:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "size", - "nativeSrc": "5634:4:18", - "nodeType": "YulTypedName", - "src": "5634:4:18", - "type": "" - } - ], + "name": "allocate_unbounded", + "nativeSrc": "7:75:18", + "nodeType": "YulFunctionDefinition", "returnVariables": [ { "name": "memPtr", - "nativeSrc": "5643:6:18", + "nativeSrc": "40:6:18", "nodeType": "YulTypedName", - "src": "5643:6:18", + "src": "40:6:18", "type": "" } ], - "src": "5609:129:18" + "src": "7:75:18" }, { "body": { - "nativeSrc": "5811:241:18", + "nativeSrc": "177:28:18", "nodeType": "YulBlock", - "src": "5811:241:18", + "src": "177:28:18", "statements": [ { - "body": { - "nativeSrc": "5916:22:18", - "nodeType": "YulBlock", - "src": "5916:22:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "5918:16:18", - "nodeType": "YulIdentifier", - "src": "5918:16:18" - }, - "nativeSrc": "5918:18:18", - "nodeType": "YulFunctionCall", - "src": "5918:18:18" - }, - "nativeSrc": "5918:18:18", - "nodeType": "YulExpressionStatement", - "src": "5918:18:18" - } - ] - }, - "condition": { + "expression": { "arguments": [ { - "name": "length", - "nativeSrc": "5888:6:18", - "nodeType": "YulIdentifier", - "src": "5888:6:18" + "kind": "number", + "nativeSrc": "194:1:18", + "nodeType": "YulLiteral", + "src": "194:1:18", + "type": "", + "value": "0" }, { "kind": "number", - "nativeSrc": "5896:18:18", + "nativeSrc": "197:1:18", "nodeType": "YulLiteral", - "src": "5896:18:18", + "src": "197:1:18", "type": "", - "value": "0xffffffffffffffff" + "value": "0" } ], "functionName": { - "name": "gt", - "nativeSrc": "5885:2:18", + "name": "revert", + "nativeSrc": "187:6:18", "nodeType": "YulIdentifier", - "src": "5885:2:18" + "src": "187:6:18" }, - "nativeSrc": "5885:30:18", + "nativeSrc": "187:12:18", "nodeType": "YulFunctionCall", - "src": "5885:30:18" + "src": "187:12:18" }, - "nativeSrc": "5882:56:18", - "nodeType": "YulIf", - "src": "5882:56:18" - }, + "nativeSrc": "187:12:18", + "nodeType": "YulExpressionStatement", + "src": "187:12:18" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "88:117:18", + "nodeType": "YulFunctionDefinition", + "src": "88:117:18" + }, + { + "body": { + "nativeSrc": "300:28:18", + "nodeType": "YulBlock", + "src": "300:28:18", + "statements": [ { - "nativeSrc": "5948:37:18", - "nodeType": "YulAssignment", - "src": "5948:37:18", - "value": { + "expression": { "arguments": [ { - "name": "length", - "nativeSrc": "5978:6:18", - "nodeType": "YulIdentifier", - "src": "5978:6:18" + "kind": "number", + "nativeSrc": "317:1:18", + "nodeType": "YulLiteral", + "src": "317:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "320:1:18", + "nodeType": "YulLiteral", + "src": "320:1:18", + "type": "", + "value": "0" } ], "functionName": { - "name": "round_up_to_mul_of_32", - "nativeSrc": "5956:21:18", + "name": "revert", + "nativeSrc": "310:6:18", "nodeType": "YulIdentifier", - "src": "5956:21:18" + "src": "310:6:18" }, - "nativeSrc": "5956:29:18", + "nativeSrc": "310:12:18", "nodeType": "YulFunctionCall", - "src": "5956:29:18" + "src": "310:12:18" }, - "variableNames": [ - { - "name": "size", - "nativeSrc": "5948:4:18", - "nodeType": "YulIdentifier", - "src": "5948:4:18" - } - ] - }, + "nativeSrc": "310:12:18", + "nodeType": "YulExpressionStatement", + "src": "310:12:18" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "211:117:18", + "nodeType": "YulFunctionDefinition", + "src": "211:117:18" + }, + { + "body": { + "nativeSrc": "379:81:18", + "nodeType": "YulBlock", + "src": "379:81:18", + "statements": [ { - "nativeSrc": "6022:23:18", + "nativeSrc": "389:65:18", "nodeType": "YulAssignment", - "src": "6022:23:18", + "src": "389:65:18", "value": { "arguments": [ { - "name": "size", - "nativeSrc": "6034:4:18", + "name": "value", + "nativeSrc": "404:5:18", "nodeType": "YulIdentifier", - "src": "6034:4:18" + "src": "404:5:18" }, { "kind": "number", - "nativeSrc": "6040:4:18", + "nativeSrc": "411:42:18", "nodeType": "YulLiteral", - "src": "6040:4:18", + "src": "411:42:18", "type": "", - "value": "0x20" + "value": "0xffffffffffffffffffffffffffffffffffffffff" } ], "functionName": { - "name": "add", - "nativeSrc": "6030:3:18", + "name": "and", + "nativeSrc": "400:3:18", "nodeType": "YulIdentifier", - "src": "6030:3:18" + "src": "400:3:18" }, - "nativeSrc": "6030:15:18", + "nativeSrc": "400:54:18", "nodeType": "YulFunctionCall", - "src": "6030:15:18" + "src": "400:54:18" }, "variableNames": [ { - "name": "size", - "nativeSrc": "6022:4:18", + "name": "cleaned", + "nativeSrc": "389:7:18", "nodeType": "YulIdentifier", - "src": "6022:4:18" + "src": "389:7:18" } ] } ] }, - "name": "array_allocation_size_t_string_memory_ptr", - "nativeSrc": "5744:308:18", + "name": "cleanup_t_uint160", + "nativeSrc": "334:126:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "length", - "nativeSrc": "5795:6:18", + "name": "value", + "nativeSrc": "361:5:18", "nodeType": "YulTypedName", - "src": "5795:6:18", + "src": "361:5:18", "type": "" } ], "returnVariables": [ { - "name": "size", - "nativeSrc": "5806:4:18", + "name": "cleaned", + "nativeSrc": "371:7:18", "nodeType": "YulTypedName", - "src": "5806:4:18", + "src": "371:7:18", "type": "" } ], - "src": "5744:308:18" + "src": "334:126:18" }, { "body": { - "nativeSrc": "6122:82:18", + "nativeSrc": "511:51:18", "nodeType": "YulBlock", - "src": "6122:82:18", + "src": "511:51:18", "statements": [ { - "expression": { + "nativeSrc": "521:35:18", + "nodeType": "YulAssignment", + "src": "521:35:18", + "value": { "arguments": [ { - "name": "dst", - "nativeSrc": "6145:3:18", - "nodeType": "YulIdentifier", - "src": "6145:3:18" - }, - { - "name": "src", - "nativeSrc": "6150:3:18", - "nodeType": "YulIdentifier", - "src": "6150:3:18" - }, - { - "name": "length", - "nativeSrc": "6155:6:18", + "name": "value", + "nativeSrc": "550:5:18", "nodeType": "YulIdentifier", - "src": "6155:6:18" + "src": "550:5:18" } ], "functionName": { - "name": "calldatacopy", - "nativeSrc": "6132:12:18", + "name": "cleanup_t_uint160", + "nativeSrc": "532:17:18", "nodeType": "YulIdentifier", - "src": "6132:12:18" + "src": "532:17:18" }, - "nativeSrc": "6132:30:18", + "nativeSrc": "532:24:18", "nodeType": "YulFunctionCall", - "src": "6132:30:18" + "src": "532:24:18" }, - "nativeSrc": "6132:30:18", - "nodeType": "YulExpressionStatement", - "src": "6132:30:18" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "dst", - "nativeSrc": "6182:3:18", - "nodeType": "YulIdentifier", - "src": "6182:3:18" - }, - { - "name": "length", - "nativeSrc": "6187:6:18", - "nodeType": "YulIdentifier", - "src": "6187:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6178:3:18", - "nodeType": "YulIdentifier", - "src": "6178:3:18" - }, - "nativeSrc": "6178:16:18", - "nodeType": "YulFunctionCall", - "src": "6178:16:18" - }, - { - "kind": "number", - "nativeSrc": "6196:1:18", - "nodeType": "YulLiteral", - "src": "6196:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "6171:6:18", + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "521:7:18", "nodeType": "YulIdentifier", - "src": "6171:6:18" - }, - "nativeSrc": "6171:27:18", - "nodeType": "YulFunctionCall", - "src": "6171:27:18" - }, - "nativeSrc": "6171:27:18", - "nodeType": "YulExpressionStatement", - "src": "6171:27:18" + "src": "521:7:18" + } + ] } ] }, - "name": "copy_calldata_to_memory_with_cleanup", - "nativeSrc": "6058:146:18", + "name": "cleanup_t_address", + "nativeSrc": "466:96:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "src", - "nativeSrc": "6104:3:18", - "nodeType": "YulTypedName", - "src": "6104:3:18", - "type": "" - }, - { - "name": "dst", - "nativeSrc": "6109:3:18", + "name": "value", + "nativeSrc": "493:5:18", "nodeType": "YulTypedName", - "src": "6109:3:18", + "src": "493:5:18", "type": "" - }, + } + ], + "returnVariables": [ { - "name": "length", - "nativeSrc": "6114:6:18", + "name": "cleaned", + "nativeSrc": "503:7:18", "nodeType": "YulTypedName", - "src": "6114:6:18", + "src": "503:7:18", "type": "" } ], - "src": "6058:146:18" + "src": "466:96:18" }, { "body": { - "nativeSrc": "6294:341:18", + "nativeSrc": "611:79:18", "nodeType": "YulBlock", - "src": "6294:341:18", + "src": "611:79:18", "statements": [ - { - "nativeSrc": "6304:75:18", - "nodeType": "YulAssignment", - "src": "6304:75:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nativeSrc": "6371:6:18", - "nodeType": "YulIdentifier", - "src": "6371:6:18" - } - ], - "functionName": { - "name": "array_allocation_size_t_string_memory_ptr", - "nativeSrc": "6329:41:18", - "nodeType": "YulIdentifier", - "src": "6329:41:18" - }, - "nativeSrc": "6329:49:18", - "nodeType": "YulFunctionCall", - "src": "6329:49:18" - } - ], - "functionName": { - "name": "allocate_memory", - "nativeSrc": "6313:15:18", - "nodeType": "YulIdentifier", - "src": "6313:15:18" - }, - "nativeSrc": "6313:66:18", - "nodeType": "YulFunctionCall", - "src": "6313:66:18" - }, - "variableNames": [ - { - "name": "array", - "nativeSrc": "6304:5:18", - "nodeType": "YulIdentifier", - "src": "6304:5:18" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "array", - "nativeSrc": "6395:5:18", - "nodeType": "YulIdentifier", - "src": "6395:5:18" - }, - { - "name": "length", - "nativeSrc": "6402:6:18", - "nodeType": "YulIdentifier", - "src": "6402:6:18" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "6388:6:18", - "nodeType": "YulIdentifier", - "src": "6388:6:18" - }, - "nativeSrc": "6388:21:18", - "nodeType": "YulFunctionCall", - "src": "6388:21:18" - }, - "nativeSrc": "6388:21:18", - "nodeType": "YulExpressionStatement", - "src": "6388:21:18" - }, - { - "nativeSrc": "6418:27:18", - "nodeType": "YulVariableDeclaration", - "src": "6418:27:18", - "value": { - "arguments": [ - { - "name": "array", - "nativeSrc": "6433:5:18", - "nodeType": "YulIdentifier", - "src": "6433:5:18" - }, - { - "kind": "number", - "nativeSrc": "6440:4:18", - "nodeType": "YulLiteral", - "src": "6440:4:18", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6429:3:18", - "nodeType": "YulIdentifier", - "src": "6429:3:18" - }, - "nativeSrc": "6429:16:18", - "nodeType": "YulFunctionCall", - "src": "6429:16:18" - }, - "variables": [ - { - "name": "dst", - "nativeSrc": "6422:3:18", - "nodeType": "YulTypedName", - "src": "6422:3:18", - "type": "" - } - ] - }, { "body": { - "nativeSrc": "6483:83:18", + "nativeSrc": "668:16:18", "nodeType": "YulBlock", - "src": "6483:83:18", + "src": "668:16:18", "statements": [ { "expression": { - "arguments": [], + "arguments": [ + { + "kind": "number", + "nativeSrc": "677:1:18", + "nodeType": "YulLiteral", + "src": "677:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "680:1:18", + "nodeType": "YulLiteral", + "src": "680:1:18", + "type": "", + "value": "0" + } + ], "functionName": { - "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", - "nativeSrc": "6485:77:18", + "name": "revert", + "nativeSrc": "670:6:18", "nodeType": "YulIdentifier", - "src": "6485:77:18" + "src": "670:6:18" }, - "nativeSrc": "6485:79:18", + "nativeSrc": "670:12:18", "nodeType": "YulFunctionCall", - "src": "6485:79:18" + "src": "670:12:18" }, - "nativeSrc": "6485:79:18", + "nativeSrc": "670:12:18", "nodeType": "YulExpressionStatement", - "src": "6485:79:18" + "src": "670:12:18" } ] }, @@ -64107,152 +64717,261 @@ { "arguments": [ { - "name": "src", - "nativeSrc": "6464:3:18", + "name": "value", + "nativeSrc": "634:5:18", "nodeType": "YulIdentifier", - "src": "6464:3:18" + "src": "634:5:18" }, { - "name": "length", - "nativeSrc": "6469:6:18", - "nodeType": "YulIdentifier", - "src": "6469:6:18" + "arguments": [ + { + "name": "value", + "nativeSrc": "659:5:18", + "nodeType": "YulIdentifier", + "src": "659:5:18" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nativeSrc": "641:17:18", + "nodeType": "YulIdentifier", + "src": "641:17:18" + }, + "nativeSrc": "641:24:18", + "nodeType": "YulFunctionCall", + "src": "641:24:18" } ], "functionName": { - "name": "add", - "nativeSrc": "6460:3:18", + "name": "eq", + "nativeSrc": "631:2:18", "nodeType": "YulIdentifier", - "src": "6460:3:18" + "src": "631:2:18" }, - "nativeSrc": "6460:16:18", + "nativeSrc": "631:35:18", "nodeType": "YulFunctionCall", - "src": "6460:16:18" - }, + "src": "631:35:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "624:6:18", + "nodeType": "YulIdentifier", + "src": "624:6:18" + }, + "nativeSrc": "624:43:18", + "nodeType": "YulFunctionCall", + "src": "624:43:18" + }, + "nativeSrc": "621:63:18", + "nodeType": "YulIf", + "src": "621:63:18" + } + ] + }, + "name": "validator_revert_t_address", + "nativeSrc": "568:122:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "604:5:18", + "nodeType": "YulTypedName", + "src": "604:5:18", + "type": "" + } + ], + "src": "568:122:18" + }, + { + "body": { + "nativeSrc": "748:87:18", + "nodeType": "YulBlock", + "src": "748:87:18", + "statements": [ + { + "nativeSrc": "758:29:18", + "nodeType": "YulAssignment", + "src": "758:29:18", + "value": { + "arguments": [ { - "name": "end", - "nativeSrc": "6478:3:18", + "name": "offset", + "nativeSrc": "780:6:18", "nodeType": "YulIdentifier", - "src": "6478:3:18" + "src": "780:6:18" } ], "functionName": { - "name": "gt", - "nativeSrc": "6457:2:18", + "name": "calldataload", + "nativeSrc": "767:12:18", "nodeType": "YulIdentifier", - "src": "6457:2:18" + "src": "767:12:18" }, - "nativeSrc": "6457:25:18", + "nativeSrc": "767:20:18", "nodeType": "YulFunctionCall", - "src": "6457:25:18" + "src": "767:20:18" }, - "nativeSrc": "6454:112:18", - "nodeType": "YulIf", - "src": "6454:112:18" + "variableNames": [ + { + "name": "value", + "nativeSrc": "758:5:18", + "nodeType": "YulIdentifier", + "src": "758:5:18" + } + ] }, { "expression": { "arguments": [ { - "name": "src", - "nativeSrc": "6612:3:18", - "nodeType": "YulIdentifier", - "src": "6612:3:18" - }, - { - "name": "dst", - "nativeSrc": "6617:3:18", - "nodeType": "YulIdentifier", - "src": "6617:3:18" - }, - { - "name": "length", - "nativeSrc": "6622:6:18", + "name": "value", + "nativeSrc": "823:5:18", "nodeType": "YulIdentifier", - "src": "6622:6:18" + "src": "823:5:18" } ], "functionName": { - "name": "copy_calldata_to_memory_with_cleanup", - "nativeSrc": "6575:36:18", + "name": "validator_revert_t_address", + "nativeSrc": "796:26:18", "nodeType": "YulIdentifier", - "src": "6575:36:18" + "src": "796:26:18" }, - "nativeSrc": "6575:54:18", + "nativeSrc": "796:33:18", "nodeType": "YulFunctionCall", - "src": "6575:54:18" + "src": "796:33:18" }, - "nativeSrc": "6575:54:18", + "nativeSrc": "796:33:18", "nodeType": "YulExpressionStatement", - "src": "6575:54:18" + "src": "796:33:18" } ] }, - "name": "abi_decode_available_length_t_string_memory_ptr", - "nativeSrc": "6210:425:18", + "name": "abi_decode_t_address", + "nativeSrc": "696:139:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "src", - "nativeSrc": "6267:3:18", + "name": "offset", + "nativeSrc": "726:6:18", "nodeType": "YulTypedName", - "src": "6267:3:18", + "src": "726:6:18", "type": "" }, { - "name": "length", - "nativeSrc": "6272:6:18", + "name": "end", + "nativeSrc": "734:3:18", "nodeType": "YulTypedName", - "src": "6272:6:18", + "src": "734:3:18", "type": "" - }, + } + ], + "returnVariables": [ { - "name": "end", - "nativeSrc": "6280:3:18", + "name": "value", + "nativeSrc": "742:5:18", + "nodeType": "YulTypedName", + "src": "742:5:18", + "type": "" + } + ], + "src": "696:139:18" + }, + { + "body": { + "nativeSrc": "886:32:18", + "nodeType": "YulBlock", + "src": "886:32:18", + "statements": [ + { + "nativeSrc": "896:16:18", + "nodeType": "YulAssignment", + "src": "896:16:18", + "value": { + "name": "value", + "nativeSrc": "907:5:18", + "nodeType": "YulIdentifier", + "src": "907:5:18" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "896:7:18", + "nodeType": "YulIdentifier", + "src": "896:7:18" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nativeSrc": "841:77:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "868:5:18", "nodeType": "YulTypedName", - "src": "6280:3:18", + "src": "868:5:18", "type": "" } ], "returnVariables": [ { - "name": "array", - "nativeSrc": "6288:5:18", + "name": "cleaned", + "nativeSrc": "878:7:18", "nodeType": "YulTypedName", - "src": "6288:5:18", + "src": "878:7:18", "type": "" } ], - "src": "6210:425:18" + "src": "841:77:18" }, { "body": { - "nativeSrc": "6717:278:18", + "nativeSrc": "967:79:18", "nodeType": "YulBlock", - "src": "6717:278:18", + "src": "967:79:18", "statements": [ { "body": { - "nativeSrc": "6766:83:18", + "nativeSrc": "1024:16:18", "nodeType": "YulBlock", - "src": "6766:83:18", + "src": "1024:16:18", "statements": [ { "expression": { - "arguments": [], + "arguments": [ + { + "kind": "number", + "nativeSrc": "1033:1:18", + "nodeType": "YulLiteral", + "src": "1033:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1036:1:18", + "nodeType": "YulLiteral", + "src": "1036:1:18", + "type": "", + "value": "0" + } + ], "functionName": { - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "6768:77:18", + "name": "revert", + "nativeSrc": "1026:6:18", "nodeType": "YulIdentifier", - "src": "6768:77:18" + "src": "1026:6:18" }, - "nativeSrc": "6768:79:18", + "nativeSrc": "1026:12:18", "nodeType": "YulFunctionCall", - "src": "6768:79:18" + "src": "1026:12:18" }, - "nativeSrc": "6768:79:18", + "nativeSrc": "1026:12:18", "nodeType": "YulExpressionStatement", - "src": "6768:79:18" + "src": "1026:12:18" } ] }, @@ -64260,223 +64979,195 @@ "arguments": [ { "arguments": [ + { + "name": "value", + "nativeSrc": "990:5:18", + "nodeType": "YulIdentifier", + "src": "990:5:18" + }, { "arguments": [ { - "name": "offset", - "nativeSrc": "6745:6:18", + "name": "value", + "nativeSrc": "1015:5:18", "nodeType": "YulIdentifier", - "src": "6745:6:18" - }, - { - "kind": "number", - "nativeSrc": "6753:4:18", - "nodeType": "YulLiteral", - "src": "6753:4:18", - "type": "", - "value": "0x1f" + "src": "1015:5:18" } ], "functionName": { - "name": "add", - "nativeSrc": "6741:3:18", + "name": "cleanup_t_uint256", + "nativeSrc": "997:17:18", "nodeType": "YulIdentifier", - "src": "6741:3:18" + "src": "997:17:18" }, - "nativeSrc": "6741:17:18", + "nativeSrc": "997:24:18", "nodeType": "YulFunctionCall", - "src": "6741:17:18" - }, - { - "name": "end", - "nativeSrc": "6760:3:18", - "nodeType": "YulIdentifier", - "src": "6760:3:18" + "src": "997:24:18" } ], "functionName": { - "name": "slt", - "nativeSrc": "6737:3:18", + "name": "eq", + "nativeSrc": "987:2:18", "nodeType": "YulIdentifier", - "src": "6737:3:18" + "src": "987:2:18" }, - "nativeSrc": "6737:27:18", + "nativeSrc": "987:35:18", "nodeType": "YulFunctionCall", - "src": "6737:27:18" + "src": "987:35:18" } ], "functionName": { "name": "iszero", - "nativeSrc": "6730:6:18", + "nativeSrc": "980:6:18", "nodeType": "YulIdentifier", - "src": "6730:6:18" + "src": "980:6:18" }, - "nativeSrc": "6730:35:18", + "nativeSrc": "980:43:18", "nodeType": "YulFunctionCall", - "src": "6730:35:18" + "src": "980:43:18" }, - "nativeSrc": "6727:122:18", + "nativeSrc": "977:63:18", "nodeType": "YulIf", - "src": "6727:122:18" - }, + "src": "977:63:18" + } + ] + }, + "name": "validator_revert_t_uint256", + "nativeSrc": "924:122:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "960:5:18", + "nodeType": "YulTypedName", + "src": "960:5:18", + "type": "" + } + ], + "src": "924:122:18" + }, + { + "body": { + "nativeSrc": "1104:87:18", + "nodeType": "YulBlock", + "src": "1104:87:18", + "statements": [ { - "nativeSrc": "6858:34:18", - "nodeType": "YulVariableDeclaration", - "src": "6858:34:18", + "nativeSrc": "1114:29:18", + "nodeType": "YulAssignment", + "src": "1114:29:18", "value": { "arguments": [ { "name": "offset", - "nativeSrc": "6885:6:18", + "nativeSrc": "1136:6:18", "nodeType": "YulIdentifier", - "src": "6885:6:18" + "src": "1136:6:18" } ], "functionName": { "name": "calldataload", - "nativeSrc": "6872:12:18", + "nativeSrc": "1123:12:18", "nodeType": "YulIdentifier", - "src": "6872:12:18" + "src": "1123:12:18" }, - "nativeSrc": "6872:20:18", + "nativeSrc": "1123:20:18", "nodeType": "YulFunctionCall", - "src": "6872:20:18" + "src": "1123:20:18" }, - "variables": [ + "variableNames": [ { - "name": "length", - "nativeSrc": "6862:6:18", - "nodeType": "YulTypedName", - "src": "6862:6:18", - "type": "" + "name": "value", + "nativeSrc": "1114:5:18", + "nodeType": "YulIdentifier", + "src": "1114:5:18" } ] }, { - "nativeSrc": "6901:88:18", - "nodeType": "YulAssignment", - "src": "6901:88:18", - "value": { + "expression": { "arguments": [ { - "arguments": [ - { - "name": "offset", - "nativeSrc": "6962:6:18", - "nodeType": "YulIdentifier", - "src": "6962:6:18" - }, - { - "kind": "number", - "nativeSrc": "6970:4:18", - "nodeType": "YulLiteral", - "src": "6970:4:18", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "6958:3:18", - "nodeType": "YulIdentifier", - "src": "6958:3:18" - }, - "nativeSrc": "6958:17:18", - "nodeType": "YulFunctionCall", - "src": "6958:17:18" - }, - { - "name": "length", - "nativeSrc": "6977:6:18", - "nodeType": "YulIdentifier", - "src": "6977:6:18" - }, - { - "name": "end", - "nativeSrc": "6985:3:18", + "name": "value", + "nativeSrc": "1179:5:18", "nodeType": "YulIdentifier", - "src": "6985:3:18" + "src": "1179:5:18" } ], "functionName": { - "name": "abi_decode_available_length_t_string_memory_ptr", - "nativeSrc": "6910:47:18", + "name": "validator_revert_t_uint256", + "nativeSrc": "1152:26:18", "nodeType": "YulIdentifier", - "src": "6910:47:18" + "src": "1152:26:18" }, - "nativeSrc": "6910:79:18", + "nativeSrc": "1152:33:18", "nodeType": "YulFunctionCall", - "src": "6910:79:18" + "src": "1152:33:18" }, - "variableNames": [ - { - "name": "array", - "nativeSrc": "6901:5:18", - "nodeType": "YulIdentifier", - "src": "6901:5:18" - } - ] + "nativeSrc": "1152:33:18", + "nodeType": "YulExpressionStatement", + "src": "1152:33:18" } ] }, - "name": "abi_decode_t_string_memory_ptr", - "nativeSrc": "6655:340:18", + "name": "abi_decode_t_uint256", + "nativeSrc": "1052:139:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", - "nativeSrc": "6695:6:18", + "nativeSrc": "1082:6:18", "nodeType": "YulTypedName", - "src": "6695:6:18", + "src": "1082:6:18", "type": "" }, { "name": "end", - "nativeSrc": "6703:3:18", + "nativeSrc": "1090:3:18", "nodeType": "YulTypedName", - "src": "6703:3:18", + "src": "1090:3:18", "type": "" } ], "returnVariables": [ { - "name": "array", - "nativeSrc": "6711:5:18", + "name": "value", + "nativeSrc": "1098:5:18", "nodeType": "YulTypedName", - "src": "6711:5:18", + "src": "1098:5:18", "type": "" } ], - "src": "6655:340:18" + "src": "1052:139:18" }, { "body": { - "nativeSrc": "7094:561:18", + "nativeSrc": "1280:391:18", "nodeType": "YulBlock", - "src": "7094:561:18", + "src": "1280:391:18", "statements": [ { "body": { - "nativeSrc": "7140:83:18", + "nativeSrc": "1326:83:18", "nodeType": "YulBlock", - "src": "7140:83:18", + "src": "1326:83:18", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "7142:77:18", + "nativeSrc": "1328:77:18", "nodeType": "YulIdentifier", - "src": "7142:77:18" + "src": "1328:77:18" }, - "nativeSrc": "7142:79:18", + "nativeSrc": "1328:79:18", "nodeType": "YulFunctionCall", - "src": "7142:79:18" + "src": "1328:79:18" }, - "nativeSrc": "7142:79:18", + "nativeSrc": "1328:79:18", "nodeType": "YulExpressionStatement", - "src": "7142:79:18" + "src": "1328:79:18" } ] }, @@ -64486,305 +65177,217 @@ "arguments": [ { "name": "dataEnd", - "nativeSrc": "7115:7:18", + "nativeSrc": "1301:7:18", "nodeType": "YulIdentifier", - "src": "7115:7:18" + "src": "1301:7:18" }, { "name": "headStart", - "nativeSrc": "7124:9:18", + "nativeSrc": "1310:9:18", "nodeType": "YulIdentifier", - "src": "7124:9:18" + "src": "1310:9:18" } ], "functionName": { "name": "sub", - "nativeSrc": "7111:3:18", + "nativeSrc": "1297:3:18", "nodeType": "YulIdentifier", - "src": "7111:3:18" + "src": "1297:3:18" }, - "nativeSrc": "7111:23:18", + "nativeSrc": "1297:23:18", "nodeType": "YulFunctionCall", - "src": "7111:23:18" + "src": "1297:23:18" }, { "kind": "number", - "nativeSrc": "7136:2:18", + "nativeSrc": "1322:2:18", "nodeType": "YulLiteral", - "src": "7136:2:18", + "src": "1322:2:18", "type": "", "value": "64" } ], "functionName": { "name": "slt", - "nativeSrc": "7107:3:18", + "nativeSrc": "1293:3:18", "nodeType": "YulIdentifier", - "src": "7107:3:18" + "src": "1293:3:18" }, - "nativeSrc": "7107:32:18", + "nativeSrc": "1293:32:18", "nodeType": "YulFunctionCall", - "src": "7107:32:18" + "src": "1293:32:18" }, - "nativeSrc": "7104:119:18", + "nativeSrc": "1290:119:18", "nodeType": "YulIf", - "src": "7104:119:18" + "src": "1290:119:18" }, { - "nativeSrc": "7233:117:18", + "nativeSrc": "1419:117:18", "nodeType": "YulBlock", - "src": "7233:117:18", + "src": "1419:117:18", "statements": [ { - "nativeSrc": "7248:15:18", + "nativeSrc": "1434:15:18", "nodeType": "YulVariableDeclaration", - "src": "7248:15:18", + "src": "1434:15:18", "value": { "kind": "number", - "nativeSrc": "7262:1:18", + "nativeSrc": "1448:1:18", "nodeType": "YulLiteral", - "src": "7262:1:18", + "src": "1448:1:18", "type": "", "value": "0" }, "variables": [ { "name": "offset", - "nativeSrc": "7252:6:18", + "nativeSrc": "1438:6:18", "nodeType": "YulTypedName", - "src": "7252:6:18", + "src": "1438:6:18", "type": "" } ] }, { - "nativeSrc": "7277:63:18", + "nativeSrc": "1463:63:18", "nodeType": "YulAssignment", - "src": "7277:63:18", + "src": "1463:63:18", "value": { "arguments": [ { "arguments": [ { "name": "headStart", - "nativeSrc": "7312:9:18", + "nativeSrc": "1498:9:18", "nodeType": "YulIdentifier", - "src": "7312:9:18" + "src": "1498:9:18" }, { "name": "offset", - "nativeSrc": "7323:6:18", + "nativeSrc": "1509:6:18", "nodeType": "YulIdentifier", - "src": "7323:6:18" + "src": "1509:6:18" } ], "functionName": { "name": "add", - "nativeSrc": "7308:3:18", + "nativeSrc": "1494:3:18", "nodeType": "YulIdentifier", - "src": "7308:3:18" + "src": "1494:3:18" }, - "nativeSrc": "7308:22:18", + "nativeSrc": "1494:22:18", "nodeType": "YulFunctionCall", - "src": "7308:22:18" + "src": "1494:22:18" }, { "name": "dataEnd", - "nativeSrc": "7332:7:18", + "nativeSrc": "1518:7:18", "nodeType": "YulIdentifier", - "src": "7332:7:18" + "src": "1518:7:18" } ], "functionName": { - "name": "abi_decode_t_uint256", - "nativeSrc": "7287:20:18", + "name": "abi_decode_t_address", + "nativeSrc": "1473:20:18", "nodeType": "YulIdentifier", - "src": "7287:20:18" + "src": "1473:20:18" }, - "nativeSrc": "7287:53:18", + "nativeSrc": "1473:53:18", "nodeType": "YulFunctionCall", - "src": "7287:53:18" + "src": "1473:53:18" }, "variableNames": [ { "name": "value0", - "nativeSrc": "7277:6:18", + "nativeSrc": "1463:6:18", "nodeType": "YulIdentifier", - "src": "7277:6:18" + "src": "1463:6:18" } ] } ] }, { - "nativeSrc": "7360:288:18", + "nativeSrc": "1546:118:18", "nodeType": "YulBlock", - "src": "7360:288:18", + "src": "1546:118:18", "statements": [ { - "nativeSrc": "7375:46:18", + "nativeSrc": "1561:16:18", "nodeType": "YulVariableDeclaration", - "src": "7375:46:18", + "src": "1561:16:18", "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "7406:9:18", - "nodeType": "YulIdentifier", - "src": "7406:9:18" - }, - { - "kind": "number", - "nativeSrc": "7417:2:18", - "nodeType": "YulLiteral", - "src": "7417:2:18", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "7402:3:18", - "nodeType": "YulIdentifier", - "src": "7402:3:18" - }, - "nativeSrc": "7402:18:18", - "nodeType": "YulFunctionCall", - "src": "7402:18:18" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "7389:12:18", - "nodeType": "YulIdentifier", - "src": "7389:12:18" - }, - "nativeSrc": "7389:32:18", - "nodeType": "YulFunctionCall", - "src": "7389:32:18" + "kind": "number", + "nativeSrc": "1575:2:18", + "nodeType": "YulLiteral", + "src": "1575:2:18", + "type": "", + "value": "32" }, "variables": [ { "name": "offset", - "nativeSrc": "7379:6:18", + "nativeSrc": "1565:6:18", "nodeType": "YulTypedName", - "src": "7379:6:18", + "src": "1565:6:18", "type": "" } ] }, { - "body": { - "nativeSrc": "7468:83:18", - "nodeType": "YulBlock", - "src": "7468:83:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "7470:77:18", - "nodeType": "YulIdentifier", - "src": "7470:77:18" - }, - "nativeSrc": "7470:79:18", - "nodeType": "YulFunctionCall", - "src": "7470:79:18" - }, - "nativeSrc": "7470:79:18", - "nodeType": "YulExpressionStatement", - "src": "7470:79:18" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "7440:6:18", - "nodeType": "YulIdentifier", - "src": "7440:6:18" - }, - { - "kind": "number", - "nativeSrc": "7448:18:18", - "nodeType": "YulLiteral", - "src": "7448:18:18", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "7437:2:18", - "nodeType": "YulIdentifier", - "src": "7437:2:18" - }, - "nativeSrc": "7437:30:18", - "nodeType": "YulFunctionCall", - "src": "7437:30:18" - }, - "nativeSrc": "7434:117:18", - "nodeType": "YulIf", - "src": "7434:117:18" - }, - { - "nativeSrc": "7565:73:18", + "nativeSrc": "1591:63:18", "nodeType": "YulAssignment", - "src": "7565:73:18", + "src": "1591:63:18", "value": { "arguments": [ { "arguments": [ { "name": "headStart", - "nativeSrc": "7610:9:18", + "nativeSrc": "1626:9:18", "nodeType": "YulIdentifier", - "src": "7610:9:18" + "src": "1626:9:18" }, { "name": "offset", - "nativeSrc": "7621:6:18", + "nativeSrc": "1637:6:18", "nodeType": "YulIdentifier", - "src": "7621:6:18" + "src": "1637:6:18" } ], "functionName": { "name": "add", - "nativeSrc": "7606:3:18", + "nativeSrc": "1622:3:18", "nodeType": "YulIdentifier", - "src": "7606:3:18" + "src": "1622:3:18" }, - "nativeSrc": "7606:22:18", + "nativeSrc": "1622:22:18", "nodeType": "YulFunctionCall", - "src": "7606:22:18" + "src": "1622:22:18" }, { "name": "dataEnd", - "nativeSrc": "7630:7:18", + "nativeSrc": "1646:7:18", "nodeType": "YulIdentifier", - "src": "7630:7:18" + "src": "1646:7:18" } ], "functionName": { - "name": "abi_decode_t_string_memory_ptr", - "nativeSrc": "7575:30:18", + "name": "abi_decode_t_uint256", + "nativeSrc": "1601:20:18", "nodeType": "YulIdentifier", - "src": "7575:30:18" + "src": "1601:20:18" }, - "nativeSrc": "7575:63:18", + "nativeSrc": "1601:53:18", "nodeType": "YulFunctionCall", - "src": "7575:63:18" + "src": "1601:53:18" }, "variableNames": [ { "name": "value1", - "nativeSrc": "7565:6:18", + "nativeSrc": "1591:6:18", "nodeType": "YulIdentifier", - "src": "7565:6:18" + "src": "1591:6:18" } ] } @@ -64792,138 +65395,360 @@ } ] }, - "name": "abi_decode_tuple_t_uint256t_string_memory_ptr", - "nativeSrc": "7001:654:18", + "name": "abi_decode_tuple_t_addresst_uint256", + "nativeSrc": "1197:474:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1242:9:18", + "nodeType": "YulTypedName", + "src": "1242:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "1253:7:18", + "nodeType": "YulTypedName", + "src": "1253:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "1265:6:18", + "nodeType": "YulTypedName", + "src": "1265:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "1273:6:18", + "nodeType": "YulTypedName", + "src": "1273:6:18", + "type": "" + } + ], + "src": "1197:474:18" + }, + { + "body": { + "nativeSrc": "1742:53:18", + "nodeType": "YulBlock", + "src": "1742:53:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1759:3:18", + "nodeType": "YulIdentifier", + "src": "1759:3:18" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1782:5:18", + "nodeType": "YulIdentifier", + "src": "1782:5:18" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "1764:17:18", + "nodeType": "YulIdentifier", + "src": "1764:17:18" + }, + "nativeSrc": "1764:24:18", + "nodeType": "YulFunctionCall", + "src": "1764:24:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1752:6:18", + "nodeType": "YulIdentifier", + "src": "1752:6:18" + }, + "nativeSrc": "1752:37:18", + "nodeType": "YulFunctionCall", + "src": "1752:37:18" + }, + "nativeSrc": "1752:37:18", + "nodeType": "YulExpressionStatement", + "src": "1752:37:18" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "1677:118:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1730:5:18", + "nodeType": "YulTypedName", + "src": "1730:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "1737:3:18", + "nodeType": "YulTypedName", + "src": "1737:3:18", + "type": "" + } + ], + "src": "1677:118:18" + }, + { + "body": { + "nativeSrc": "1899:124:18", + "nodeType": "YulBlock", + "src": "1899:124:18", + "statements": [ + { + "nativeSrc": "1909:26:18", + "nodeType": "YulAssignment", + "src": "1909:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1921:9:18", + "nodeType": "YulIdentifier", + "src": "1921:9:18" + }, + { + "kind": "number", + "nativeSrc": "1932:2:18", + "nodeType": "YulLiteral", + "src": "1932:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1917:3:18", + "nodeType": "YulIdentifier", + "src": "1917:3:18" + }, + "nativeSrc": "1917:18:18", + "nodeType": "YulFunctionCall", + "src": "1917:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1909:4:18", + "nodeType": "YulIdentifier", + "src": "1909:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1989:6:18", + "nodeType": "YulIdentifier", + "src": "1989:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2002:9:18", + "nodeType": "YulIdentifier", + "src": "2002:9:18" + }, + { + "kind": "number", + "nativeSrc": "2013:1:18", + "nodeType": "YulLiteral", + "src": "2013:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1998:3:18", + "nodeType": "YulIdentifier", + "src": "1998:3:18" + }, + "nativeSrc": "1998:17:18", + "nodeType": "YulFunctionCall", + "src": "1998:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "1945:43:18", + "nodeType": "YulIdentifier", + "src": "1945:43:18" + }, + "nativeSrc": "1945:71:18", + "nodeType": "YulFunctionCall", + "src": "1945:71:18" + }, + "nativeSrc": "1945:71:18", + "nodeType": "YulExpressionStatement", + "src": "1945:71:18" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nativeSrc": "1801:222:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", - "nativeSrc": "7056:9:18", + "nativeSrc": "1871:9:18", "nodeType": "YulTypedName", - "src": "7056:9:18", + "src": "1871:9:18", "type": "" }, { - "name": "dataEnd", - "nativeSrc": "7067:7:18", + "name": "value0", + "nativeSrc": "1883:6:18", "nodeType": "YulTypedName", - "src": "7067:7:18", + "src": "1883:6:18", "type": "" } ], "returnVariables": [ { - "name": "value0", - "nativeSrc": "7079:6:18", - "nodeType": "YulTypedName", - "src": "7079:6:18", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "7087:6:18", + "name": "tail", + "nativeSrc": "1894:4:18", "nodeType": "YulTypedName", - "src": "7087:6:18", + "src": "1894:4:18", "type": "" } ], - "src": "7001:654:18" + "src": "1801:222:18" }, { "body": { - "nativeSrc": "7706:32:18", + "nativeSrc": "2073:105:18", "nodeType": "YulBlock", - "src": "7706:32:18", + "src": "2073:105:18", "statements": [ { - "nativeSrc": "7716:16:18", + "nativeSrc": "2083:89:18", "nodeType": "YulAssignment", - "src": "7716:16:18", + "src": "2083:89:18", "value": { - "name": "value", - "nativeSrc": "7727:5:18", - "nodeType": "YulIdentifier", - "src": "7727:5:18" + "arguments": [ + { + "name": "value", + "nativeSrc": "2098:5:18", + "nodeType": "YulIdentifier", + "src": "2098:5:18" + }, + { + "kind": "number", + "nativeSrc": "2105:66:18", + "nodeType": "YulLiteral", + "src": "2105:66:18", + "type": "", + "value": "0xffffffff00000000000000000000000000000000000000000000000000000000" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2094:3:18", + "nodeType": "YulIdentifier", + "src": "2094:3:18" + }, + "nativeSrc": "2094:78:18", + "nodeType": "YulFunctionCall", + "src": "2094:78:18" }, "variableNames": [ { "name": "cleaned", - "nativeSrc": "7716:7:18", + "nativeSrc": "2083:7:18", "nodeType": "YulIdentifier", - "src": "7716:7:18" + "src": "2083:7:18" } ] } ] }, - "name": "cleanup_t_bytes32", - "nativeSrc": "7661:77:18", + "name": "cleanup_t_bytes4", + "nativeSrc": "2029:149:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", - "nativeSrc": "7688:5:18", + "nativeSrc": "2055:5:18", "nodeType": "YulTypedName", - "src": "7688:5:18", + "src": "2055:5:18", "type": "" } ], "returnVariables": [ { "name": "cleaned", - "nativeSrc": "7698:7:18", + "nativeSrc": "2065:7:18", "nodeType": "YulTypedName", - "src": "7698:7:18", + "src": "2065:7:18", "type": "" } ], - "src": "7661:77:18" + "src": "2029:149:18" }, { "body": { - "nativeSrc": "7787:79:18", + "nativeSrc": "2226:78:18", "nodeType": "YulBlock", - "src": "7787:79:18", + "src": "2226:78:18", "statements": [ { "body": { - "nativeSrc": "7844:16:18", + "nativeSrc": "2282:16:18", "nodeType": "YulBlock", - "src": "7844:16:18", + "src": "2282:16:18", "statements": [ { "expression": { "arguments": [ { "kind": "number", - "nativeSrc": "7853:1:18", + "nativeSrc": "2291:1:18", "nodeType": "YulLiteral", - "src": "7853:1:18", + "src": "2291:1:18", "type": "", "value": "0" }, { "kind": "number", - "nativeSrc": "7856:1:18", + "nativeSrc": "2294:1:18", "nodeType": "YulLiteral", - "src": "7856:1:18", + "src": "2294:1:18", "type": "", "value": "0" } ], "functionName": { "name": "revert", - "nativeSrc": "7846:6:18", + "nativeSrc": "2284:6:18", "nodeType": "YulIdentifier", - "src": "7846:6:18" + "src": "2284:6:18" }, - "nativeSrc": "7846:12:18", + "nativeSrc": "2284:12:18", "nodeType": "YulFunctionCall", - "src": "7846:12:18" + "src": "2284:12:18" }, - "nativeSrc": "7846:12:18", + "nativeSrc": "2284:12:18", "nodeType": "YulExpressionStatement", - "src": "7846:12:18" + "src": "2284:12:18" } ] }, @@ -64933,106 +65758,106 @@ "arguments": [ { "name": "value", - "nativeSrc": "7810:5:18", + "nativeSrc": "2249:5:18", "nodeType": "YulIdentifier", - "src": "7810:5:18" + "src": "2249:5:18" }, { "arguments": [ { "name": "value", - "nativeSrc": "7835:5:18", + "nativeSrc": "2273:5:18", "nodeType": "YulIdentifier", - "src": "7835:5:18" + "src": "2273:5:18" } ], "functionName": { - "name": "cleanup_t_bytes32", - "nativeSrc": "7817:17:18", + "name": "cleanup_t_bytes4", + "nativeSrc": "2256:16:18", "nodeType": "YulIdentifier", - "src": "7817:17:18" + "src": "2256:16:18" }, - "nativeSrc": "7817:24:18", + "nativeSrc": "2256:23:18", "nodeType": "YulFunctionCall", - "src": "7817:24:18" + "src": "2256:23:18" } ], "functionName": { "name": "eq", - "nativeSrc": "7807:2:18", + "nativeSrc": "2246:2:18", "nodeType": "YulIdentifier", - "src": "7807:2:18" + "src": "2246:2:18" }, - "nativeSrc": "7807:35:18", + "nativeSrc": "2246:34:18", "nodeType": "YulFunctionCall", - "src": "7807:35:18" + "src": "2246:34:18" } ], "functionName": { "name": "iszero", - "nativeSrc": "7800:6:18", + "nativeSrc": "2239:6:18", "nodeType": "YulIdentifier", - "src": "7800:6:18" + "src": "2239:6:18" }, - "nativeSrc": "7800:43:18", + "nativeSrc": "2239:42:18", "nodeType": "YulFunctionCall", - "src": "7800:43:18" + "src": "2239:42:18" }, - "nativeSrc": "7797:63:18", + "nativeSrc": "2236:62:18", "nodeType": "YulIf", - "src": "7797:63:18" + "src": "2236:62:18" } ] }, - "name": "validator_revert_t_bytes32", - "nativeSrc": "7744:122:18", + "name": "validator_revert_t_bytes4", + "nativeSrc": "2184:120:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", - "nativeSrc": "7780:5:18", + "nativeSrc": "2219:5:18", "nodeType": "YulTypedName", - "src": "7780:5:18", + "src": "2219:5:18", "type": "" } ], - "src": "7744:122:18" + "src": "2184:120:18" }, { "body": { - "nativeSrc": "7924:87:18", + "nativeSrc": "2361:86:18", "nodeType": "YulBlock", - "src": "7924:87:18", + "src": "2361:86:18", "statements": [ { - "nativeSrc": "7934:29:18", + "nativeSrc": "2371:29:18", "nodeType": "YulAssignment", - "src": "7934:29:18", + "src": "2371:29:18", "value": { "arguments": [ { "name": "offset", - "nativeSrc": "7956:6:18", + "nativeSrc": "2393:6:18", "nodeType": "YulIdentifier", - "src": "7956:6:18" + "src": "2393:6:18" } ], "functionName": { "name": "calldataload", - "nativeSrc": "7943:12:18", + "nativeSrc": "2380:12:18", "nodeType": "YulIdentifier", - "src": "7943:12:18" + "src": "2380:12:18" }, - "nativeSrc": "7943:20:18", + "nativeSrc": "2380:20:18", "nodeType": "YulFunctionCall", - "src": "7943:20:18" + "src": "2380:20:18" }, "variableNames": [ { "name": "value", - "nativeSrc": "7934:5:18", + "nativeSrc": "2371:5:18", "nodeType": "YulIdentifier", - "src": "7934:5:18" + "src": "2371:5:18" } ] }, @@ -65041,85 +65866,85 @@ "arguments": [ { "name": "value", - "nativeSrc": "7999:5:18", + "nativeSrc": "2435:5:18", "nodeType": "YulIdentifier", - "src": "7999:5:18" + "src": "2435:5:18" } ], "functionName": { - "name": "validator_revert_t_bytes32", - "nativeSrc": "7972:26:18", + "name": "validator_revert_t_bytes4", + "nativeSrc": "2409:25:18", "nodeType": "YulIdentifier", - "src": "7972:26:18" + "src": "2409:25:18" }, - "nativeSrc": "7972:33:18", + "nativeSrc": "2409:32:18", "nodeType": "YulFunctionCall", - "src": "7972:33:18" + "src": "2409:32:18" }, - "nativeSrc": "7972:33:18", + "nativeSrc": "2409:32:18", "nodeType": "YulExpressionStatement", - "src": "7972:33:18" + "src": "2409:32:18" } ] }, - "name": "abi_decode_t_bytes32", - "nativeSrc": "7872:139:18", + "name": "abi_decode_t_bytes4", + "nativeSrc": "2310:137:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "offset", - "nativeSrc": "7902:6:18", + "nativeSrc": "2339:6:18", "nodeType": "YulTypedName", - "src": "7902:6:18", + "src": "2339:6:18", "type": "" }, { "name": "end", - "nativeSrc": "7910:3:18", + "nativeSrc": "2347:3:18", "nodeType": "YulTypedName", - "src": "7910:3:18", + "src": "2347:3:18", "type": "" } ], "returnVariables": [ { "name": "value", - "nativeSrc": "7918:5:18", + "nativeSrc": "2355:5:18", "nodeType": "YulTypedName", - "src": "7918:5:18", + "src": "2355:5:18", "type": "" } ], - "src": "7872:139:18" + "src": "2310:137:18" }, { "body": { - "nativeSrc": "8083:263:18", + "nativeSrc": "2518:262:18", "nodeType": "YulBlock", - "src": "8083:263:18", + "src": "2518:262:18", "statements": [ { "body": { - "nativeSrc": "8129:83:18", + "nativeSrc": "2564:83:18", "nodeType": "YulBlock", - "src": "8129:83:18", + "src": "2564:83:18", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "8131:77:18", + "nativeSrc": "2566:77:18", "nodeType": "YulIdentifier", - "src": "8131:77:18" + "src": "2566:77:18" }, - "nativeSrc": "8131:79:18", + "nativeSrc": "2566:79:18", "nodeType": "YulFunctionCall", - "src": "8131:79:18" + "src": "2566:79:18" }, - "nativeSrc": "8131:79:18", + "nativeSrc": "2566:79:18", "nodeType": "YulExpressionStatement", - "src": "8131:79:18" + "src": "2566:79:18" } ] }, @@ -65129,131 +65954,131 @@ "arguments": [ { "name": "dataEnd", - "nativeSrc": "8104:7:18", + "nativeSrc": "2539:7:18", "nodeType": "YulIdentifier", - "src": "8104:7:18" + "src": "2539:7:18" }, { "name": "headStart", - "nativeSrc": "8113:9:18", + "nativeSrc": "2548:9:18", "nodeType": "YulIdentifier", - "src": "8113:9:18" + "src": "2548:9:18" } ], "functionName": { "name": "sub", - "nativeSrc": "8100:3:18", + "nativeSrc": "2535:3:18", "nodeType": "YulIdentifier", - "src": "8100:3:18" + "src": "2535:3:18" }, - "nativeSrc": "8100:23:18", + "nativeSrc": "2535:23:18", "nodeType": "YulFunctionCall", - "src": "8100:23:18" + "src": "2535:23:18" }, { "kind": "number", - "nativeSrc": "8125:2:18", + "nativeSrc": "2560:2:18", "nodeType": "YulLiteral", - "src": "8125:2:18", + "src": "2560:2:18", "type": "", "value": "32" } ], "functionName": { "name": "slt", - "nativeSrc": "8096:3:18", + "nativeSrc": "2531:3:18", "nodeType": "YulIdentifier", - "src": "8096:3:18" + "src": "2531:3:18" }, - "nativeSrc": "8096:32:18", + "nativeSrc": "2531:32:18", "nodeType": "YulFunctionCall", - "src": "8096:32:18" + "src": "2531:32:18" }, - "nativeSrc": "8093:119:18", + "nativeSrc": "2528:119:18", "nodeType": "YulIf", - "src": "8093:119:18" + "src": "2528:119:18" }, { - "nativeSrc": "8222:117:18", + "nativeSrc": "2657:116:18", "nodeType": "YulBlock", - "src": "8222:117:18", + "src": "2657:116:18", "statements": [ { - "nativeSrc": "8237:15:18", + "nativeSrc": "2672:15:18", "nodeType": "YulVariableDeclaration", - "src": "8237:15:18", + "src": "2672:15:18", "value": { "kind": "number", - "nativeSrc": "8251:1:18", + "nativeSrc": "2686:1:18", "nodeType": "YulLiteral", - "src": "8251:1:18", + "src": "2686:1:18", "type": "", "value": "0" }, "variables": [ { "name": "offset", - "nativeSrc": "8241:6:18", + "nativeSrc": "2676:6:18", "nodeType": "YulTypedName", - "src": "8241:6:18", + "src": "2676:6:18", "type": "" } ] }, { - "nativeSrc": "8266:63:18", + "nativeSrc": "2701:62:18", "nodeType": "YulAssignment", - "src": "8266:63:18", + "src": "2701:62:18", "value": { "arguments": [ { "arguments": [ { "name": "headStart", - "nativeSrc": "8301:9:18", + "nativeSrc": "2735:9:18", "nodeType": "YulIdentifier", - "src": "8301:9:18" + "src": "2735:9:18" }, { "name": "offset", - "nativeSrc": "8312:6:18", + "nativeSrc": "2746:6:18", "nodeType": "YulIdentifier", - "src": "8312:6:18" + "src": "2746:6:18" } ], "functionName": { "name": "add", - "nativeSrc": "8297:3:18", + "nativeSrc": "2731:3:18", "nodeType": "YulIdentifier", - "src": "8297:3:18" + "src": "2731:3:18" }, - "nativeSrc": "8297:22:18", + "nativeSrc": "2731:22:18", "nodeType": "YulFunctionCall", - "src": "8297:22:18" + "src": "2731:22:18" }, { "name": "dataEnd", - "nativeSrc": "8321:7:18", + "nativeSrc": "2755:7:18", "nodeType": "YulIdentifier", - "src": "8321:7:18" + "src": "2755:7:18" } ], "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "8276:20:18", + "name": "abi_decode_t_bytes4", + "nativeSrc": "2711:19:18", "nodeType": "YulIdentifier", - "src": "8276:20:18" + "src": "2711:19:18" }, - "nativeSrc": "8276:53:18", + "nativeSrc": "2711:52:18", "nodeType": "YulFunctionCall", - "src": "8276:53:18" + "src": "2711:52:18" }, "variableNames": [ { "name": "value0", - "nativeSrc": "8266:6:18", + "nativeSrc": "2701:6:18", "nodeType": "YulIdentifier", - "src": "8266:6:18" + "src": "2701:6:18" } ] } @@ -65261,993 +66086,341 @@ } ] }, - "name": "abi_decode_tuple_t_bytes32", - "nativeSrc": "8017:329:18", + "name": "abi_decode_tuple_t_bytes4", + "nativeSrc": "2453:327:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", - "nativeSrc": "8053:9:18", + "nativeSrc": "2488:9:18", "nodeType": "YulTypedName", - "src": "8053:9:18", + "src": "2488:9:18", "type": "" }, { "name": "dataEnd", - "nativeSrc": "8064:7:18", + "nativeSrc": "2499:7:18", "nodeType": "YulTypedName", - "src": "8064:7:18", + "src": "2499:7:18", "type": "" } ], "returnVariables": [ { "name": "value0", - "nativeSrc": "8076:6:18", - "nodeType": "YulTypedName", - "src": "8076:6:18", - "type": "" - } - ], - "src": "8017:329:18" - }, - { - "body": { - "nativeSrc": "8417:53:18", - "nodeType": "YulBlock", - "src": "8417:53:18", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "8434:3:18", - "nodeType": "YulIdentifier", - "src": "8434:3:18" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "8457:5:18", - "nodeType": "YulIdentifier", - "src": "8457:5:18" - } - ], - "functionName": { - "name": "cleanup_t_bytes32", - "nativeSrc": "8439:17:18", - "nodeType": "YulIdentifier", - "src": "8439:17:18" - }, - "nativeSrc": "8439:24:18", - "nodeType": "YulFunctionCall", - "src": "8439:24:18" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "8427:6:18", - "nodeType": "YulIdentifier", - "src": "8427:6:18" - }, - "nativeSrc": "8427:37:18", - "nodeType": "YulFunctionCall", - "src": "8427:37:18" - }, - "nativeSrc": "8427:37:18", - "nodeType": "YulExpressionStatement", - "src": "8427:37:18" - } - ] - }, - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "8352:118:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "8405:5:18", - "nodeType": "YulTypedName", - "src": "8405:5:18", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "8412:3:18", - "nodeType": "YulTypedName", - "src": "8412:3:18", - "type": "" - } - ], - "src": "8352:118:18" - }, - { - "body": { - "nativeSrc": "8574:124:18", - "nodeType": "YulBlock", - "src": "8574:124:18", - "statements": [ - { - "nativeSrc": "8584:26:18", - "nodeType": "YulAssignment", - "src": "8584:26:18", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8596:9:18", - "nodeType": "YulIdentifier", - "src": "8596:9:18" - }, - { - "kind": "number", - "nativeSrc": "8607:2:18", - "nodeType": "YulLiteral", - "src": "8607:2:18", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8592:3:18", - "nodeType": "YulIdentifier", - "src": "8592:3:18" - }, - "nativeSrc": "8592:18:18", - "nodeType": "YulFunctionCall", - "src": "8592:18:18" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "8584:4:18", - "nodeType": "YulIdentifier", - "src": "8584:4:18" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "8664:6:18", - "nodeType": "YulIdentifier", - "src": "8664:6:18" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "8677:9:18", - "nodeType": "YulIdentifier", - "src": "8677:9:18" - }, - { - "kind": "number", - "nativeSrc": "8688:1:18", - "nodeType": "YulLiteral", - "src": "8688:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8673:3:18", - "nodeType": "YulIdentifier", - "src": "8673:3:18" - }, - "nativeSrc": "8673:17:18", - "nodeType": "YulFunctionCall", - "src": "8673:17:18" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "8620:43:18", - "nodeType": "YulIdentifier", - "src": "8620:43:18" - }, - "nativeSrc": "8620:71:18", - "nodeType": "YulFunctionCall", - "src": "8620:71:18" - }, - "nativeSrc": "8620:71:18", - "nodeType": "YulExpressionStatement", - "src": "8620:71:18" - } - ] - }, - "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", - "nativeSrc": "8476:222:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "8546:9:18", - "nodeType": "YulTypedName", - "src": "8546:9:18", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "8558:6:18", - "nodeType": "YulTypedName", - "src": "8558:6:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "8569:4:18", - "nodeType": "YulTypedName", - "src": "8569:4:18", - "type": "" - } - ], - "src": "8476:222:18" - }, - { - "body": { - "nativeSrc": "8786:229:18", - "nodeType": "YulBlock", - "src": "8786:229:18", - "statements": [ - { - "body": { - "nativeSrc": "8891:22:18", - "nodeType": "YulBlock", - "src": "8891:22:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "8893:16:18", - "nodeType": "YulIdentifier", - "src": "8893:16:18" - }, - "nativeSrc": "8893:18:18", - "nodeType": "YulFunctionCall", - "src": "8893:18:18" - }, - "nativeSrc": "8893:18:18", - "nodeType": "YulExpressionStatement", - "src": "8893:18:18" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "length", - "nativeSrc": "8863:6:18", - "nodeType": "YulIdentifier", - "src": "8863:6:18" - }, - { - "kind": "number", - "nativeSrc": "8871:18:18", - "nodeType": "YulLiteral", - "src": "8871:18:18", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "8860:2:18", - "nodeType": "YulIdentifier", - "src": "8860:2:18" - }, - "nativeSrc": "8860:30:18", - "nodeType": "YulFunctionCall", - "src": "8860:30:18" - }, - "nativeSrc": "8857:56:18", - "nodeType": "YulIf", - "src": "8857:56:18" - }, - { - "nativeSrc": "8923:25:18", - "nodeType": "YulAssignment", - "src": "8923:25:18", - "value": { - "arguments": [ - { - "name": "length", - "nativeSrc": "8935:6:18", - "nodeType": "YulIdentifier", - "src": "8935:6:18" - }, - { - "kind": "number", - "nativeSrc": "8943:4:18", - "nodeType": "YulLiteral", - "src": "8943:4:18", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "mul", - "nativeSrc": "8931:3:18", - "nodeType": "YulIdentifier", - "src": "8931:3:18" - }, - "nativeSrc": "8931:17:18", - "nodeType": "YulFunctionCall", - "src": "8931:17:18" - }, - "variableNames": [ - { - "name": "size", - "nativeSrc": "8923:4:18", - "nodeType": "YulIdentifier", - "src": "8923:4:18" - } - ] - }, - { - "nativeSrc": "8985:23:18", - "nodeType": "YulAssignment", - "src": "8985:23:18", - "value": { - "arguments": [ - { - "name": "size", - "nativeSrc": "8997:4:18", - "nodeType": "YulIdentifier", - "src": "8997:4:18" - }, - { - "kind": "number", - "nativeSrc": "9003:4:18", - "nodeType": "YulLiteral", - "src": "9003:4:18", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "8993:3:18", - "nodeType": "YulIdentifier", - "src": "8993:3:18" - }, - "nativeSrc": "8993:15:18", - "nodeType": "YulFunctionCall", - "src": "8993:15:18" - }, - "variableNames": [ - { - "name": "size", - "nativeSrc": "8985:4:18", - "nodeType": "YulIdentifier", - "src": "8985:4:18" - } - ] - } - ] - }, - "name": "array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "8704:311:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "length", - "nativeSrc": "8770:6:18", - "nodeType": "YulTypedName", - "src": "8770:6:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "size", - "nativeSrc": "8781:4:18", + "nativeSrc": "2511:6:18", "nodeType": "YulTypedName", - "src": "8781:4:18", + "src": "2511:6:18", "type": "" } ], - "src": "8704:311:18" - }, - { - "body": { - "nativeSrc": "9110:28:18", - "nodeType": "YulBlock", - "src": "9110:28:18", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "9127:1:18", - "nodeType": "YulLiteral", - "src": "9127:1:18", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "9130:1:18", - "nodeType": "YulLiteral", - "src": "9130:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "9120:6:18", - "nodeType": "YulIdentifier", - "src": "9120:6:18" - }, - "nativeSrc": "9120:12:18", - "nodeType": "YulFunctionCall", - "src": "9120:12:18" - }, - "nativeSrc": "9120:12:18", - "nodeType": "YulExpressionStatement", - "src": "9120:12:18" - } - ] - }, - "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", - "nativeSrc": "9021:117:18", - "nodeType": "YulFunctionDefinition", - "src": "9021:117:18" + "src": "2453:327:18" }, { "body": { - "nativeSrc": "9263:608:18", + "nativeSrc": "2828:48:18", "nodeType": "YulBlock", - "src": "9263:608:18", + "src": "2828:48:18", "statements": [ { - "nativeSrc": "9273:90:18", + "nativeSrc": "2838:32:18", "nodeType": "YulAssignment", - "src": "9273:90:18", + "src": "2838:32:18", "value": { "arguments": [ { "arguments": [ { - "name": "length", - "nativeSrc": "9355:6:18", + "name": "value", + "nativeSrc": "2863:5:18", "nodeType": "YulIdentifier", - "src": "9355:6:18" + "src": "2863:5:18" } ], "functionName": { - "name": "array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "9298:56:18", + "name": "iszero", + "nativeSrc": "2856:6:18", "nodeType": "YulIdentifier", - "src": "9298:56:18" + "src": "2856:6:18" }, - "nativeSrc": "9298:64:18", + "nativeSrc": "2856:13:18", "nodeType": "YulFunctionCall", - "src": "9298:64:18" + "src": "2856:13:18" } ], "functionName": { - "name": "allocate_memory", - "nativeSrc": "9282:15:18", + "name": "iszero", + "nativeSrc": "2849:6:18", "nodeType": "YulIdentifier", - "src": "9282:15:18" + "src": "2849:6:18" }, - "nativeSrc": "9282:81:18", + "nativeSrc": "2849:21:18", "nodeType": "YulFunctionCall", - "src": "9282:81:18" + "src": "2849:21:18" }, "variableNames": [ { - "name": "array", - "nativeSrc": "9273:5:18", + "name": "cleaned", + "nativeSrc": "2838:7:18", "nodeType": "YulIdentifier", - "src": "9273:5:18" - } - ] - }, - { - "nativeSrc": "9372:16:18", - "nodeType": "YulVariableDeclaration", - "src": "9372:16:18", - "value": { - "name": "array", - "nativeSrc": "9383:5:18", - "nodeType": "YulIdentifier", - "src": "9383:5:18" - }, - "variables": [ - { - "name": "dst", - "nativeSrc": "9376:3:18", - "nodeType": "YulTypedName", - "src": "9376:3:18", - "type": "" + "src": "2838:7:18" } ] - }, + } + ] + }, + "name": "cleanup_t_bool", + "nativeSrc": "2786:90:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2810:5:18", + "nodeType": "YulTypedName", + "src": "2810:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nativeSrc": "2820:7:18", + "nodeType": "YulTypedName", + "src": "2820:7:18", + "type": "" + } + ], + "src": "2786:90:18" + }, + { + "body": { + "nativeSrc": "2941:50:18", + "nodeType": "YulBlock", + "src": "2941:50:18", + "statements": [ { "expression": { "arguments": [ { - "name": "array", - "nativeSrc": "9405:5:18", + "name": "pos", + "nativeSrc": "2958:3:18", "nodeType": "YulIdentifier", - "src": "9405:5:18" + "src": "2958:3:18" }, { - "name": "length", - "nativeSrc": "9412:6:18", - "nodeType": "YulIdentifier", - "src": "9412:6:18" + "arguments": [ + { + "name": "value", + "nativeSrc": "2978:5:18", + "nodeType": "YulIdentifier", + "src": "2978:5:18" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nativeSrc": "2963:14:18", + "nodeType": "YulIdentifier", + "src": "2963:14:18" + }, + "nativeSrc": "2963:21:18", + "nodeType": "YulFunctionCall", + "src": "2963:21:18" } ], "functionName": { "name": "mstore", - "nativeSrc": "9398:6:18", + "nativeSrc": "2951:6:18", "nodeType": "YulIdentifier", - "src": "9398:6:18" + "src": "2951:6:18" }, - "nativeSrc": "9398:21:18", + "nativeSrc": "2951:34:18", "nodeType": "YulFunctionCall", - "src": "9398:21:18" + "src": "2951:34:18" }, - "nativeSrc": "9398:21:18", + "nativeSrc": "2951:34:18", "nodeType": "YulExpressionStatement", - "src": "9398:21:18" - }, + "src": "2951:34:18" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "2882:109:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2929:5:18", + "nodeType": "YulTypedName", + "src": "2929:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "2936:3:18", + "nodeType": "YulTypedName", + "src": "2936:3:18", + "type": "" + } + ], + "src": "2882:109:18" + }, + { + "body": { + "nativeSrc": "3089:118:18", + "nodeType": "YulBlock", + "src": "3089:118:18", + "statements": [ { - "nativeSrc": "9428:23:18", + "nativeSrc": "3099:26:18", "nodeType": "YulAssignment", - "src": "9428:23:18", + "src": "3099:26:18", "value": { "arguments": [ { - "name": "array", - "nativeSrc": "9439:5:18", + "name": "headStart", + "nativeSrc": "3111:9:18", "nodeType": "YulIdentifier", - "src": "9439:5:18" + "src": "3111:9:18" }, { "kind": "number", - "nativeSrc": "9446:4:18", + "nativeSrc": "3122:2:18", "nodeType": "YulLiteral", - "src": "9446:4:18", + "src": "3122:2:18", "type": "", - "value": "0x20" + "value": "32" } ], "functionName": { "name": "add", - "nativeSrc": "9435:3:18", + "nativeSrc": "3107:3:18", "nodeType": "YulIdentifier", - "src": "9435:3:18" + "src": "3107:3:18" }, - "nativeSrc": "9435:16:18", + "nativeSrc": "3107:18:18", "nodeType": "YulFunctionCall", - "src": "9435:16:18" + "src": "3107:18:18" }, "variableNames": [ { - "name": "dst", - "nativeSrc": "9428:3:18", + "name": "tail", + "nativeSrc": "3099:4:18", "nodeType": "YulIdentifier", - "src": "9428:3:18" + "src": "3099:4:18" } ] }, { - "nativeSrc": "9461:44:18", - "nodeType": "YulVariableDeclaration", - "src": "9461:44:18", - "value": { + "expression": { "arguments": [ { - "name": "offset", - "nativeSrc": "9479:6:18", + "name": "value0", + "nativeSrc": "3173:6:18", "nodeType": "YulIdentifier", - "src": "9479:6:18" + "src": "3173:6:18" }, { "arguments": [ { - "name": "length", - "nativeSrc": "9491:6:18", + "name": "headStart", + "nativeSrc": "3186:9:18", "nodeType": "YulIdentifier", - "src": "9491:6:18" + "src": "3186:9:18" }, { "kind": "number", - "nativeSrc": "9499:4:18", + "nativeSrc": "3197:1:18", "nodeType": "YulLiteral", - "src": "9499:4:18", + "src": "3197:1:18", "type": "", - "value": "0x20" + "value": "0" } ], "functionName": { - "name": "mul", - "nativeSrc": "9487:3:18", + "name": "add", + "nativeSrc": "3182:3:18", "nodeType": "YulIdentifier", - "src": "9487:3:18" + "src": "3182:3:18" }, - "nativeSrc": "9487:17:18", + "nativeSrc": "3182:17:18", "nodeType": "YulFunctionCall", - "src": "9487:17:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9475:3:18", - "nodeType": "YulIdentifier", - "src": "9475:3:18" - }, - "nativeSrc": "9475:30:18", - "nodeType": "YulFunctionCall", - "src": "9475:30:18" - }, - "variables": [ - { - "name": "srcEnd", - "nativeSrc": "9465:6:18", - "nodeType": "YulTypedName", - "src": "9465:6:18", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "9533:103:18", - "nodeType": "YulBlock", - "src": "9533:103:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", - "nativeSrc": "9547:77:18", - "nodeType": "YulIdentifier", - "src": "9547:77:18" - }, - "nativeSrc": "9547:79:18", - "nodeType": "YulFunctionCall", - "src": "9547:79:18" - }, - "nativeSrc": "9547:79:18", - "nodeType": "YulExpressionStatement", - "src": "9547:79:18" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "srcEnd", - "nativeSrc": "9520:6:18", - "nodeType": "YulIdentifier", - "src": "9520:6:18" - }, - { - "name": "end", - "nativeSrc": "9528:3:18", - "nodeType": "YulIdentifier", - "src": "9528:3:18" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "9517:2:18", - "nodeType": "YulIdentifier", - "src": "9517:2:18" - }, - "nativeSrc": "9517:15:18", - "nodeType": "YulFunctionCall", - "src": "9517:15:18" - }, - "nativeSrc": "9514:122:18", - "nodeType": "YulIf", - "src": "9514:122:18" - }, - { - "body": { - "nativeSrc": "9721:144:18", - "nodeType": "YulBlock", - "src": "9721:144:18", - "statements": [ - { - "nativeSrc": "9736:21:18", - "nodeType": "YulVariableDeclaration", - "src": "9736:21:18", - "value": { - "name": "src", - "nativeSrc": "9754:3:18", - "nodeType": "YulIdentifier", - "src": "9754:3:18" - }, - "variables": [ - { - "name": "elementPos", - "nativeSrc": "9740:10:18", - "nodeType": "YulTypedName", - "src": "9740:10:18", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "dst", - "nativeSrc": "9778:3:18", - "nodeType": "YulIdentifier", - "src": "9778:3:18" - }, - { - "arguments": [ - { - "name": "elementPos", - "nativeSrc": "9804:10:18", - "nodeType": "YulIdentifier", - "src": "9804:10:18" - }, - { - "name": "end", - "nativeSrc": "9816:3:18", - "nodeType": "YulIdentifier", - "src": "9816:3:18" - } - ], - "functionName": { - "name": "abi_decode_t_uint256", - "nativeSrc": "9783:20:18", - "nodeType": "YulIdentifier", - "src": "9783:20:18" - }, - "nativeSrc": "9783:37:18", - "nodeType": "YulFunctionCall", - "src": "9783:37:18" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "9771:6:18", - "nodeType": "YulIdentifier", - "src": "9771:6:18" - }, - "nativeSrc": "9771:50:18", - "nodeType": "YulFunctionCall", - "src": "9771:50:18" - }, - "nativeSrc": "9771:50:18", - "nodeType": "YulExpressionStatement", - "src": "9771:50:18" - }, - { - "nativeSrc": "9834:21:18", - "nodeType": "YulAssignment", - "src": "9834:21:18", - "value": { - "arguments": [ - { - "name": "dst", - "nativeSrc": "9845:3:18", - "nodeType": "YulIdentifier", - "src": "9845:3:18" - }, - { - "kind": "number", - "nativeSrc": "9850:4:18", - "nodeType": "YulLiteral", - "src": "9850:4:18", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9841:3:18", - "nodeType": "YulIdentifier", - "src": "9841:3:18" - }, - "nativeSrc": "9841:14:18", - "nodeType": "YulFunctionCall", - "src": "9841:14:18" - }, - "variableNames": [ - { - "name": "dst", - "nativeSrc": "9834:3:18", - "nodeType": "YulIdentifier", - "src": "9834:3:18" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "src", - "nativeSrc": "9674:3:18", - "nodeType": "YulIdentifier", - "src": "9674:3:18" - }, - { - "name": "srcEnd", - "nativeSrc": "9679:6:18", - "nodeType": "YulIdentifier", - "src": "9679:6:18" + "src": "3182:17:18" } ], "functionName": { - "name": "lt", - "nativeSrc": "9671:2:18", + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nativeSrc": "3135:37:18", "nodeType": "YulIdentifier", - "src": "9671:2:18" + "src": "3135:37:18" }, - "nativeSrc": "9671:15:18", + "nativeSrc": "3135:65:18", "nodeType": "YulFunctionCall", - "src": "9671:15:18" - }, - "nativeSrc": "9645:220:18", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "9687:25:18", - "nodeType": "YulBlock", - "src": "9687:25:18", - "statements": [ - { - "nativeSrc": "9689:21:18", - "nodeType": "YulAssignment", - "src": "9689:21:18", - "value": { - "arguments": [ - { - "name": "src", - "nativeSrc": "9700:3:18", - "nodeType": "YulIdentifier", - "src": "9700:3:18" - }, - { - "kind": "number", - "nativeSrc": "9705:4:18", - "nodeType": "YulLiteral", - "src": "9705:4:18", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9696:3:18", - "nodeType": "YulIdentifier", - "src": "9696:3:18" - }, - "nativeSrc": "9696:14:18", - "nodeType": "YulFunctionCall", - "src": "9696:14:18" - }, - "variableNames": [ - { - "name": "src", - "nativeSrc": "9689:3:18", - "nodeType": "YulIdentifier", - "src": "9689:3:18" - } - ] - } - ] - }, - "pre": { - "nativeSrc": "9649:21:18", - "nodeType": "YulBlock", - "src": "9649:21:18", - "statements": [ - { - "nativeSrc": "9651:17:18", - "nodeType": "YulVariableDeclaration", - "src": "9651:17:18", - "value": { - "name": "offset", - "nativeSrc": "9662:6:18", - "nodeType": "YulIdentifier", - "src": "9662:6:18" - }, - "variables": [ - { - "name": "src", - "nativeSrc": "9655:3:18", - "nodeType": "YulTypedName", - "src": "9655:3:18", - "type": "" - } - ] - } - ] + "src": "3135:65:18" }, - "src": "9645:220:18" + "nativeSrc": "3135:65:18", + "nodeType": "YulExpressionStatement", + "src": "3135:65:18" } ] }, - "name": "abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "9161:710:18", + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nativeSrc": "2997:210:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", - "nativeSrc": "9233:6:18", - "nodeType": "YulTypedName", - "src": "9233:6:18", - "type": "" - }, - { - "name": "length", - "nativeSrc": "9241:6:18", + "name": "headStart", + "nativeSrc": "3061:9:18", "nodeType": "YulTypedName", - "src": "9241:6:18", + "src": "3061:9:18", "type": "" }, { - "name": "end", - "nativeSrc": "9249:3:18", + "name": "value0", + "nativeSrc": "3073:6:18", "nodeType": "YulTypedName", - "src": "9249:3:18", + "src": "3073:6:18", "type": "" } ], "returnVariables": [ { - "name": "array", - "nativeSrc": "9257:5:18", + "name": "tail", + "nativeSrc": "3084:4:18", "nodeType": "YulTypedName", - "src": "9257:5:18", + "src": "3084:4:18", "type": "" } ], - "src": "9161:710:18" + "src": "2997:210:18" }, { "body": { - "nativeSrc": "9971:293:18", + "nativeSrc": "3279:263:18", "nodeType": "YulBlock", - "src": "9971:293:18", + "src": "3279:263:18", "statements": [ { "body": { - "nativeSrc": "10020:83:18", + "nativeSrc": "3325:83:18", "nodeType": "YulBlock", - "src": "10020:83:18", + "src": "3325:83:18", "statements": [ { "expression": { "arguments": [], "functionName": { - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "10022:77:18", + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "3327:77:18", "nodeType": "YulIdentifier", - "src": "10022:77:18" + "src": "3327:77:18" }, - "nativeSrc": "10022:79:18", + "nativeSrc": "3327:79:18", "nodeType": "YulFunctionCall", - "src": "10022:79:18" + "src": "3327:79:18" }, - "nativeSrc": "10022:79:18", + "nativeSrc": "3327:79:18", "nodeType": "YulExpressionStatement", - "src": "10022:79:18" + "src": "3327:79:18" } ] }, @@ -66256,1710 +66429,1223 @@ { "arguments": [ { - "arguments": [ - { - "name": "offset", - "nativeSrc": "9999:6:18", - "nodeType": "YulIdentifier", - "src": "9999:6:18" - }, - { - "kind": "number", - "nativeSrc": "10007:4:18", - "nodeType": "YulLiteral", - "src": "10007:4:18", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "9995:3:18", - "nodeType": "YulIdentifier", - "src": "9995:3:18" - }, - "nativeSrc": "9995:17:18", - "nodeType": "YulFunctionCall", - "src": "9995:17:18" + "name": "dataEnd", + "nativeSrc": "3300:7:18", + "nodeType": "YulIdentifier", + "src": "3300:7:18" }, { - "name": "end", - "nativeSrc": "10014:3:18", + "name": "headStart", + "nativeSrc": "3309:9:18", "nodeType": "YulIdentifier", - "src": "10014:3:18" + "src": "3309:9:18" } ], "functionName": { - "name": "slt", - "nativeSrc": "9991:3:18", + "name": "sub", + "nativeSrc": "3296:3:18", "nodeType": "YulIdentifier", - "src": "9991:3:18" + "src": "3296:3:18" }, - "nativeSrc": "9991:27:18", + "nativeSrc": "3296:23:18", "nodeType": "YulFunctionCall", - "src": "9991:27:18" + "src": "3296:23:18" + }, + { + "kind": "number", + "nativeSrc": "3321:2:18", + "nodeType": "YulLiteral", + "src": "3321:2:18", + "type": "", + "value": "32" } ], "functionName": { - "name": "iszero", - "nativeSrc": "9984:6:18", + "name": "slt", + "nativeSrc": "3292:3:18", "nodeType": "YulIdentifier", - "src": "9984:6:18" + "src": "3292:3:18" }, - "nativeSrc": "9984:35:18", + "nativeSrc": "3292:32:18", "nodeType": "YulFunctionCall", - "src": "9984:35:18" + "src": "3292:32:18" }, - "nativeSrc": "9981:122:18", + "nativeSrc": "3289:119:18", "nodeType": "YulIf", - "src": "9981:122:18" + "src": "3289:119:18" }, { - "nativeSrc": "10112:34:18", - "nodeType": "YulVariableDeclaration", - "src": "10112:34:18", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "10139:6:18", - "nodeType": "YulIdentifier", - "src": "10139:6:18" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "10126:12:18", - "nodeType": "YulIdentifier", - "src": "10126:12:18" + "nativeSrc": "3418:117:18", + "nodeType": "YulBlock", + "src": "3418:117:18", + "statements": [ + { + "nativeSrc": "3433:15:18", + "nodeType": "YulVariableDeclaration", + "src": "3433:15:18", + "value": { + "kind": "number", + "nativeSrc": "3447:1:18", + "nodeType": "YulLiteral", + "src": "3447:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "3437:6:18", + "nodeType": "YulTypedName", + "src": "3437:6:18", + "type": "" + } + ] }, - "nativeSrc": "10126:20:18", - "nodeType": "YulFunctionCall", - "src": "10126:20:18" - }, - "variables": [ { - "name": "length", - "nativeSrc": "10116:6:18", - "nodeType": "YulTypedName", - "src": "10116:6:18", - "type": "" - } - ] - }, - { - "nativeSrc": "10155:103:18", - "nodeType": "YulAssignment", - "src": "10155:103:18", - "value": { - "arguments": [ - { + "nativeSrc": "3462:63:18", + "nodeType": "YulAssignment", + "src": "3462:63:18", + "value": { "arguments": [ { - "name": "offset", - "nativeSrc": "10231:6:18", - "nodeType": "YulIdentifier", - "src": "10231:6:18" + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3497:9:18", + "nodeType": "YulIdentifier", + "src": "3497:9:18" + }, + { + "name": "offset", + "nativeSrc": "3508:6:18", + "nodeType": "YulIdentifier", + "src": "3508:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3493:3:18", + "nodeType": "YulIdentifier", + "src": "3493:3:18" + }, + "nativeSrc": "3493:22:18", + "nodeType": "YulFunctionCall", + "src": "3493:22:18" }, { - "kind": "number", - "nativeSrc": "10239:4:18", - "nodeType": "YulLiteral", - "src": "10239:4:18", - "type": "", - "value": "0x20" + "name": "dataEnd", + "nativeSrc": "3517:7:18", + "nodeType": "YulIdentifier", + "src": "3517:7:18" } ], "functionName": { - "name": "add", - "nativeSrc": "10227:3:18", + "name": "abi_decode_t_uint256", + "nativeSrc": "3472:20:18", "nodeType": "YulIdentifier", - "src": "10227:3:18" + "src": "3472:20:18" }, - "nativeSrc": "10227:17:18", + "nativeSrc": "3472:53:18", "nodeType": "YulFunctionCall", - "src": "10227:17:18" - }, - { - "name": "length", - "nativeSrc": "10246:6:18", - "nodeType": "YulIdentifier", - "src": "10246:6:18" + "src": "3472:53:18" }, - { - "name": "end", - "nativeSrc": "10254:3:18", - "nodeType": "YulIdentifier", - "src": "10254:3:18" - } - ], - "functionName": { - "name": "abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "10164:62:18", - "nodeType": "YulIdentifier", - "src": "10164:62:18" - }, - "nativeSrc": "10164:94:18", - "nodeType": "YulFunctionCall", - "src": "10164:94:18" - }, - "variableNames": [ - { - "name": "array", - "nativeSrc": "10155:5:18", - "nodeType": "YulIdentifier", - "src": "10155:5:18" + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3462:6:18", + "nodeType": "YulIdentifier", + "src": "3462:6:18" + } + ] } ] } ] }, - "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "9894:370:18", + "name": "abi_decode_tuple_t_uint256", + "nativeSrc": "3213:329:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", - "nativeSrc": "9949:6:18", + "name": "headStart", + "nativeSrc": "3249:9:18", "nodeType": "YulTypedName", - "src": "9949:6:18", + "src": "3249:9:18", "type": "" }, { - "name": "end", - "nativeSrc": "9957:3:18", + "name": "dataEnd", + "nativeSrc": "3260:7:18", "nodeType": "YulTypedName", - "src": "9957:3:18", + "src": "3260:7:18", "type": "" } ], "returnVariables": [ { - "name": "array", - "nativeSrc": "9965:5:18", + "name": "value0", + "nativeSrc": "3272:6:18", "nodeType": "YulTypedName", - "src": "9965:5:18", + "src": "3272:6:18", "type": "" } ], - "src": "9894:370:18" + "src": "3213:329:18" }, { "body": { - "nativeSrc": "10336:241:18", + "nativeSrc": "3607:40:18", "nodeType": "YulBlock", - "src": "10336:241:18", + "src": "3607:40:18", "statements": [ { - "body": { - "nativeSrc": "10441:22:18", - "nodeType": "YulBlock", - "src": "10441:22:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "10443:16:18", - "nodeType": "YulIdentifier", - "src": "10443:16:18" - }, - "nativeSrc": "10443:18:18", - "nodeType": "YulFunctionCall", - "src": "10443:18:18" - }, - "nativeSrc": "10443:18:18", - "nodeType": "YulExpressionStatement", - "src": "10443:18:18" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "length", - "nativeSrc": "10413:6:18", - "nodeType": "YulIdentifier", - "src": "10413:6:18" - }, - { - "kind": "number", - "nativeSrc": "10421:18:18", - "nodeType": "YulLiteral", - "src": "10421:18:18", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "10410:2:18", - "nodeType": "YulIdentifier", - "src": "10410:2:18" - }, - "nativeSrc": "10410:30:18", - "nodeType": "YulFunctionCall", - "src": "10410:30:18" - }, - "nativeSrc": "10407:56:18", - "nodeType": "YulIf", - "src": "10407:56:18" - }, - { - "nativeSrc": "10473:37:18", - "nodeType": "YulAssignment", - "src": "10473:37:18", - "value": { - "arguments": [ - { - "name": "length", - "nativeSrc": "10503:6:18", - "nodeType": "YulIdentifier", - "src": "10503:6:18" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nativeSrc": "10481:21:18", - "nodeType": "YulIdentifier", - "src": "10481:21:18" - }, - "nativeSrc": "10481:29:18", - "nodeType": "YulFunctionCall", - "src": "10481:29:18" - }, - "variableNames": [ - { - "name": "size", - "nativeSrc": "10473:4:18", - "nodeType": "YulIdentifier", - "src": "10473:4:18" - } - ] - }, - { - "nativeSrc": "10547:23:18", + "nativeSrc": "3618:22:18", "nodeType": "YulAssignment", - "src": "10547:23:18", + "src": "3618:22:18", "value": { "arguments": [ { - "name": "size", - "nativeSrc": "10559:4:18", + "name": "value", + "nativeSrc": "3634:5:18", "nodeType": "YulIdentifier", - "src": "10559:4:18" - }, - { - "kind": "number", - "nativeSrc": "10565:4:18", - "nodeType": "YulLiteral", - "src": "10565:4:18", - "type": "", - "value": "0x20" + "src": "3634:5:18" } ], "functionName": { - "name": "add", - "nativeSrc": "10555:3:18", + "name": "mload", + "nativeSrc": "3628:5:18", "nodeType": "YulIdentifier", - "src": "10555:3:18" + "src": "3628:5:18" }, - "nativeSrc": "10555:15:18", + "nativeSrc": "3628:12:18", "nodeType": "YulFunctionCall", - "src": "10555:15:18" + "src": "3628:12:18" }, "variableNames": [ { - "name": "size", - "nativeSrc": "10547:4:18", + "name": "length", + "nativeSrc": "3618:6:18", "nodeType": "YulIdentifier", - "src": "10547:4:18" + "src": "3618:6:18" } ] } ] }, - "name": "array_allocation_size_t_bytes_memory_ptr", - "nativeSrc": "10270:307:18", + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "3548:99:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "length", - "nativeSrc": "10320:6:18", + "name": "value", + "nativeSrc": "3590:5:18", "nodeType": "YulTypedName", - "src": "10320:6:18", + "src": "3590:5:18", "type": "" } ], "returnVariables": [ { - "name": "size", - "nativeSrc": "10331:4:18", + "name": "length", + "nativeSrc": "3600:6:18", "nodeType": "YulTypedName", - "src": "10331:4:18", + "src": "3600:6:18", "type": "" } ], - "src": "10270:307:18" + "src": "3548:99:18" }, { "body": { - "nativeSrc": "10666:340:18", + "nativeSrc": "3749:73:18", "nodeType": "YulBlock", - "src": "10666:340:18", + "src": "3749:73:18", "statements": [ - { - "nativeSrc": "10676:74:18", - "nodeType": "YulAssignment", - "src": "10676:74:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nativeSrc": "10742:6:18", - "nodeType": "YulIdentifier", - "src": "10742:6:18" - } - ], - "functionName": { - "name": "array_allocation_size_t_bytes_memory_ptr", - "nativeSrc": "10701:40:18", - "nodeType": "YulIdentifier", - "src": "10701:40:18" - }, - "nativeSrc": "10701:48:18", - "nodeType": "YulFunctionCall", - "src": "10701:48:18" - } - ], - "functionName": { - "name": "allocate_memory", - "nativeSrc": "10685:15:18", - "nodeType": "YulIdentifier", - "src": "10685:15:18" - }, - "nativeSrc": "10685:65:18", - "nodeType": "YulFunctionCall", - "src": "10685:65:18" - }, - "variableNames": [ - { - "name": "array", - "nativeSrc": "10676:5:18", - "nodeType": "YulIdentifier", - "src": "10676:5:18" - } - ] - }, { "expression": { "arguments": [ { - "name": "array", - "nativeSrc": "10766:5:18", + "name": "pos", + "nativeSrc": "3766:3:18", "nodeType": "YulIdentifier", - "src": "10766:5:18" + "src": "3766:3:18" }, { "name": "length", - "nativeSrc": "10773:6:18", + "nativeSrc": "3771:6:18", "nodeType": "YulIdentifier", - "src": "10773:6:18" + "src": "3771:6:18" } ], "functionName": { "name": "mstore", - "nativeSrc": "10759:6:18", + "nativeSrc": "3759:6:18", "nodeType": "YulIdentifier", - "src": "10759:6:18" + "src": "3759:6:18" }, - "nativeSrc": "10759:21:18", + "nativeSrc": "3759:19:18", "nodeType": "YulFunctionCall", - "src": "10759:21:18" + "src": "3759:19:18" }, - "nativeSrc": "10759:21:18", + "nativeSrc": "3759:19:18", "nodeType": "YulExpressionStatement", - "src": "10759:21:18" + "src": "3759:19:18" }, { - "nativeSrc": "10789:27:18", - "nodeType": "YulVariableDeclaration", - "src": "10789:27:18", + "nativeSrc": "3787:29:18", + "nodeType": "YulAssignment", + "src": "3787:29:18", "value": { "arguments": [ { - "name": "array", - "nativeSrc": "10804:5:18", + "name": "pos", + "nativeSrc": "3806:3:18", "nodeType": "YulIdentifier", - "src": "10804:5:18" + "src": "3806:3:18" }, { "kind": "number", - "nativeSrc": "10811:4:18", + "nativeSrc": "3811:4:18", "nodeType": "YulLiteral", - "src": "10811:4:18", + "src": "3811:4:18", "type": "", "value": "0x20" } ], "functionName": { "name": "add", - "nativeSrc": "10800:3:18", + "nativeSrc": "3802:3:18", "nodeType": "YulIdentifier", - "src": "10800:3:18" + "src": "3802:3:18" }, - "nativeSrc": "10800:16:18", + "nativeSrc": "3802:14:18", "nodeType": "YulFunctionCall", - "src": "10800:16:18" + "src": "3802:14:18" + }, + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "3787:11:18", + "nodeType": "YulIdentifier", + "src": "3787:11:18" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "3653:169:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "3721:3:18", + "nodeType": "YulTypedName", + "src": "3721:3:18", + "type": "" + }, + { + "name": "length", + "nativeSrc": "3726:6:18", + "nodeType": "YulTypedName", + "src": "3726:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "3737:11:18", + "nodeType": "YulTypedName", + "src": "3737:11:18", + "type": "" + } + ], + "src": "3653:169:18" + }, + { + "body": { + "nativeSrc": "3890:186:18", + "nodeType": "YulBlock", + "src": "3890:186:18", + "statements": [ + { + "nativeSrc": "3901:10:18", + "nodeType": "YulVariableDeclaration", + "src": "3901:10:18", + "value": { + "kind": "number", + "nativeSrc": "3910:1:18", + "nodeType": "YulLiteral", + "src": "3910:1:18", + "type": "", + "value": "0" }, "variables": [ { - "name": "dst", - "nativeSrc": "10793:3:18", + "name": "i", + "nativeSrc": "3905:1:18", "nodeType": "YulTypedName", - "src": "10793:3:18", + "src": "3905:1:18", "type": "" } ] }, { "body": { - "nativeSrc": "10854:83:18", + "nativeSrc": "3970:63:18", "nodeType": "YulBlock", - "src": "10854:83:18", + "src": "3970:63:18", "statements": [ { "expression": { - "arguments": [], + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "3995:3:18", + "nodeType": "YulIdentifier", + "src": "3995:3:18" + }, + { + "name": "i", + "nativeSrc": "4000:1:18", + "nodeType": "YulIdentifier", + "src": "4000:1:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3991:3:18", + "nodeType": "YulIdentifier", + "src": "3991:3:18" + }, + "nativeSrc": "3991:11:18", + "nodeType": "YulFunctionCall", + "src": "3991:11:18" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "4014:3:18", + "nodeType": "YulIdentifier", + "src": "4014:3:18" + }, + { + "name": "i", + "nativeSrc": "4019:1:18", + "nodeType": "YulIdentifier", + "src": "4019:1:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4010:3:18", + "nodeType": "YulIdentifier", + "src": "4010:3:18" + }, + "nativeSrc": "4010:11:18", + "nodeType": "YulFunctionCall", + "src": "4010:11:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4004:5:18", + "nodeType": "YulIdentifier", + "src": "4004:5:18" + }, + "nativeSrc": "4004:18:18", + "nodeType": "YulFunctionCall", + "src": "4004:18:18" + } + ], "functionName": { - "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", - "nativeSrc": "10856:77:18", + "name": "mstore", + "nativeSrc": "3984:6:18", "nodeType": "YulIdentifier", - "src": "10856:77:18" + "src": "3984:6:18" }, - "nativeSrc": "10856:79:18", + "nativeSrc": "3984:39:18", "nodeType": "YulFunctionCall", - "src": "10856:79:18" + "src": "3984:39:18" }, - "nativeSrc": "10856:79:18", + "nativeSrc": "3984:39:18", "nodeType": "YulExpressionStatement", - "src": "10856:79:18" + "src": "3984:39:18" } ] }, "condition": { "arguments": [ { - "arguments": [ - { - "name": "src", - "nativeSrc": "10835:3:18", - "nodeType": "YulIdentifier", - "src": "10835:3:18" - }, - { - "name": "length", - "nativeSrc": "10840:6:18", - "nodeType": "YulIdentifier", - "src": "10840:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "10831:3:18", - "nodeType": "YulIdentifier", - "src": "10831:3:18" - }, - "nativeSrc": "10831:16:18", - "nodeType": "YulFunctionCall", - "src": "10831:16:18" - }, - { - "name": "end", - "nativeSrc": "10849:3:18", - "nodeType": "YulIdentifier", - "src": "10849:3:18" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "10828:2:18", - "nodeType": "YulIdentifier", - "src": "10828:2:18" - }, - "nativeSrc": "10828:25:18", - "nodeType": "YulFunctionCall", - "src": "10828:25:18" - }, - "nativeSrc": "10825:112:18", - "nodeType": "YulIf", - "src": "10825:112:18" - }, - { - "expression": { - "arguments": [ - { - "name": "src", - "nativeSrc": "10983:3:18", - "nodeType": "YulIdentifier", - "src": "10983:3:18" - }, - { - "name": "dst", - "nativeSrc": "10988:3:18", + "name": "i", + "nativeSrc": "3931:1:18", "nodeType": "YulIdentifier", - "src": "10988:3:18" + "src": "3931:1:18" }, { "name": "length", - "nativeSrc": "10993:6:18", + "nativeSrc": "3934:6:18", "nodeType": "YulIdentifier", - "src": "10993:6:18" + "src": "3934:6:18" } ], "functionName": { - "name": "copy_calldata_to_memory_with_cleanup", - "nativeSrc": "10946:36:18", + "name": "lt", + "nativeSrc": "3928:2:18", "nodeType": "YulIdentifier", - "src": "10946:36:18" + "src": "3928:2:18" }, - "nativeSrc": "10946:54:18", + "nativeSrc": "3928:13:18", "nodeType": "YulFunctionCall", - "src": "10946:54:18" + "src": "3928:13:18" }, - "nativeSrc": "10946:54:18", - "nodeType": "YulExpressionStatement", - "src": "10946:54:18" - } - ] - }, - "name": "abi_decode_available_length_t_bytes_memory_ptr", - "nativeSrc": "10583:423:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "src", - "nativeSrc": "10639:3:18", - "nodeType": "YulTypedName", - "src": "10639:3:18", - "type": "" - }, - { - "name": "length", - "nativeSrc": "10644:6:18", - "nodeType": "YulTypedName", - "src": "10644:6:18", - "type": "" - }, - { - "name": "end", - "nativeSrc": "10652:3:18", - "nodeType": "YulTypedName", - "src": "10652:3:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nativeSrc": "10660:5:18", - "nodeType": "YulTypedName", - "src": "10660:5:18", - "type": "" - } - ], - "src": "10583:423:18" - }, - { - "body": { - "nativeSrc": "11086:277:18", - "nodeType": "YulBlock", - "src": "11086:277:18", - "statements": [ - { - "body": { - "nativeSrc": "11135:83:18", + "nativeSrc": "3920:113:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "3942:19:18", "nodeType": "YulBlock", - "src": "11135:83:18", + "src": "3942:19:18", "statements": [ { - "expression": { - "arguments": [], + "nativeSrc": "3944:15:18", + "nodeType": "YulAssignment", + "src": "3944:15:18", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "3953:1:18", + "nodeType": "YulIdentifier", + "src": "3953:1:18" + }, + { + "kind": "number", + "nativeSrc": "3956:2:18", + "nodeType": "YulLiteral", + "src": "3956:2:18", + "type": "", + "value": "32" + } + ], "functionName": { - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "11137:77:18", + "name": "add", + "nativeSrc": "3949:3:18", "nodeType": "YulIdentifier", - "src": "11137:77:18" + "src": "3949:3:18" }, - "nativeSrc": "11137:79:18", + "nativeSrc": "3949:10:18", "nodeType": "YulFunctionCall", - "src": "11137:79:18" + "src": "3949:10:18" }, - "nativeSrc": "11137:79:18", - "nodeType": "YulExpressionStatement", - "src": "11137:79:18" + "variableNames": [ + { + "name": "i", + "nativeSrc": "3944:1:18", + "nodeType": "YulIdentifier", + "src": "3944:1:18" + } + ] } ] }, - "condition": { + "pre": { + "nativeSrc": "3924:3:18", + "nodeType": "YulBlock", + "src": "3924:3:18", + "statements": [] + }, + "src": "3920:113:18" + }, + { + "expression": { "arguments": [ { "arguments": [ { - "arguments": [ - { - "name": "offset", - "nativeSrc": "11114:6:18", - "nodeType": "YulIdentifier", - "src": "11114:6:18" - }, - { - "kind": "number", - "nativeSrc": "11122:4:18", - "nodeType": "YulLiteral", - "src": "11122:4:18", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "11110:3:18", - "nodeType": "YulIdentifier", - "src": "11110:3:18" - }, - "nativeSrc": "11110:17:18", - "nodeType": "YulFunctionCall", - "src": "11110:17:18" + "name": "dst", + "nativeSrc": "4053:3:18", + "nodeType": "YulIdentifier", + "src": "4053:3:18" }, { - "name": "end", - "nativeSrc": "11129:3:18", + "name": "length", + "nativeSrc": "4058:6:18", "nodeType": "YulIdentifier", - "src": "11129:3:18" + "src": "4058:6:18" } ], "functionName": { - "name": "slt", - "nativeSrc": "11106:3:18", + "name": "add", + "nativeSrc": "4049:3:18", "nodeType": "YulIdentifier", - "src": "11106:3:18" + "src": "4049:3:18" }, - "nativeSrc": "11106:27:18", + "nativeSrc": "4049:16:18", "nodeType": "YulFunctionCall", - "src": "11106:27:18" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "11099:6:18", - "nodeType": "YulIdentifier", - "src": "11099:6:18" - }, - "nativeSrc": "11099:35:18", - "nodeType": "YulFunctionCall", - "src": "11099:35:18" - }, - "nativeSrc": "11096:122:18", - "nodeType": "YulIf", - "src": "11096:122:18" - }, - { - "nativeSrc": "11227:34:18", - "nodeType": "YulVariableDeclaration", - "src": "11227:34:18", - "value": { - "arguments": [ + "src": "4049:16:18" + }, { - "name": "offset", - "nativeSrc": "11254:6:18", - "nodeType": "YulIdentifier", - "src": "11254:6:18" + "kind": "number", + "nativeSrc": "4067:1:18", + "nodeType": "YulLiteral", + "src": "4067:1:18", + "type": "", + "value": "0" } ], "functionName": { - "name": "calldataload", - "nativeSrc": "11241:12:18", + "name": "mstore", + "nativeSrc": "4042:6:18", "nodeType": "YulIdentifier", - "src": "11241:12:18" + "src": "4042:6:18" }, - "nativeSrc": "11241:20:18", + "nativeSrc": "4042:27:18", "nodeType": "YulFunctionCall", - "src": "11241:20:18" + "src": "4042:27:18" }, - "variables": [ - { - "name": "length", - "nativeSrc": "11231:6:18", - "nodeType": "YulTypedName", - "src": "11231:6:18", - "type": "" - } - ] - }, + "nativeSrc": "4042:27:18", + "nodeType": "YulExpressionStatement", + "src": "4042:27:18" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "3828:248:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "3872:3:18", + "nodeType": "YulTypedName", + "src": "3872:3:18", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "3877:3:18", + "nodeType": "YulTypedName", + "src": "3877:3:18", + "type": "" + }, + { + "name": "length", + "nativeSrc": "3882:6:18", + "nodeType": "YulTypedName", + "src": "3882:6:18", + "type": "" + } + ], + "src": "3828:248:18" + }, + { + "body": { + "nativeSrc": "4130:54:18", + "nodeType": "YulBlock", + "src": "4130:54:18", + "statements": [ { - "nativeSrc": "11270:87:18", + "nativeSrc": "4140:38:18", "nodeType": "YulAssignment", - "src": "11270:87:18", + "src": "4140:38:18", "value": { "arguments": [ { "arguments": [ { - "name": "offset", - "nativeSrc": "11330:6:18", + "name": "value", + "nativeSrc": "4158:5:18", "nodeType": "YulIdentifier", - "src": "11330:6:18" + "src": "4158:5:18" }, { "kind": "number", - "nativeSrc": "11338:4:18", + "nativeSrc": "4165:2:18", "nodeType": "YulLiteral", - "src": "11338:4:18", + "src": "4165:2:18", "type": "", - "value": "0x20" + "value": "31" } ], "functionName": { "name": "add", - "nativeSrc": "11326:3:18", + "nativeSrc": "4154:3:18", "nodeType": "YulIdentifier", - "src": "11326:3:18" + "src": "4154:3:18" }, - "nativeSrc": "11326:17:18", + "nativeSrc": "4154:14:18", "nodeType": "YulFunctionCall", - "src": "11326:17:18" - }, - { - "name": "length", - "nativeSrc": "11345:6:18", - "nodeType": "YulIdentifier", - "src": "11345:6:18" + "src": "4154:14:18" }, { - "name": "end", - "nativeSrc": "11353:3:18", - "nodeType": "YulIdentifier", - "src": "11353:3:18" + "arguments": [ + { + "kind": "number", + "nativeSrc": "4174:2:18", + "nodeType": "YulLiteral", + "src": "4174:2:18", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "4170:3:18", + "nodeType": "YulIdentifier", + "src": "4170:3:18" + }, + "nativeSrc": "4170:7:18", + "nodeType": "YulFunctionCall", + "src": "4170:7:18" } ], "functionName": { - "name": "abi_decode_available_length_t_bytes_memory_ptr", - "nativeSrc": "11279:46:18", + "name": "and", + "nativeSrc": "4150:3:18", "nodeType": "YulIdentifier", - "src": "11279:46:18" + "src": "4150:3:18" }, - "nativeSrc": "11279:78:18", + "nativeSrc": "4150:28:18", "nodeType": "YulFunctionCall", - "src": "11279:78:18" + "src": "4150:28:18" }, "variableNames": [ { - "name": "array", - "nativeSrc": "11270:5:18", + "name": "result", + "nativeSrc": "4140:6:18", "nodeType": "YulIdentifier", - "src": "11270:5:18" + "src": "4140:6:18" } ] } ] }, - "name": "abi_decode_t_bytes_memory_ptr", - "nativeSrc": "11025:338:18", + "name": "round_up_to_mul_of_32", + "nativeSrc": "4082:102:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", - "nativeSrc": "11064:6:18", - "nodeType": "YulTypedName", - "src": "11064:6:18", - "type": "" - }, - { - "name": "end", - "nativeSrc": "11072:3:18", + "name": "value", + "nativeSrc": "4113:5:18", "nodeType": "YulTypedName", - "src": "11072:3:18", + "src": "4113:5:18", "type": "" } ], "returnVariables": [ { - "name": "array", - "nativeSrc": "11080:5:18", + "name": "result", + "nativeSrc": "4123:6:18", "nodeType": "YulTypedName", - "src": "11080:5:18", + "src": "4123:6:18", "type": "" } ], - "src": "11025:338:18" + "src": "4082:102:18" }, { "body": { - "nativeSrc": "11562:1316:18", + "nativeSrc": "4282:285:18", "nodeType": "YulBlock", - "src": "11562:1316:18", + "src": "4282:285:18", "statements": [ { - "body": { - "nativeSrc": "11609:83:18", - "nodeType": "YulBlock", - "src": "11609:83:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "11611:77:18", - "nodeType": "YulIdentifier", - "src": "11611:77:18" - }, - "nativeSrc": "11611:79:18", - "nodeType": "YulFunctionCall", - "src": "11611:79:18" - }, - "nativeSrc": "11611:79:18", - "nodeType": "YulExpressionStatement", - "src": "11611:79:18" - } - ] - }, - "condition": { + "nativeSrc": "4292:53:18", + "nodeType": "YulVariableDeclaration", + "src": "4292:53:18", + "value": { "arguments": [ { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "11583:7:18", - "nodeType": "YulIdentifier", - "src": "11583:7:18" - }, - { - "name": "headStart", - "nativeSrc": "11592:9:18", - "nodeType": "YulIdentifier", - "src": "11592:9:18" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "11579:3:18", - "nodeType": "YulIdentifier", - "src": "11579:3:18" - }, - "nativeSrc": "11579:23:18", - "nodeType": "YulFunctionCall", - "src": "11579:23:18" - }, - { - "kind": "number", - "nativeSrc": "11604:3:18", - "nodeType": "YulLiteral", - "src": "11604:3:18", - "type": "", - "value": "160" + "name": "value", + "nativeSrc": "4339:5:18", + "nodeType": "YulIdentifier", + "src": "4339:5:18" } ], "functionName": { - "name": "slt", - "nativeSrc": "11575:3:18", + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "4306:32:18", "nodeType": "YulIdentifier", - "src": "11575:3:18" + "src": "4306:32:18" }, - "nativeSrc": "11575:33:18", + "nativeSrc": "4306:39:18", "nodeType": "YulFunctionCall", - "src": "11575:33:18" + "src": "4306:39:18" }, - "nativeSrc": "11572:120:18", - "nodeType": "YulIf", - "src": "11572:120:18" - }, - { - "nativeSrc": "11702:117:18", - "nodeType": "YulBlock", - "src": "11702:117:18", - "statements": [ - { - "nativeSrc": "11717:15:18", - "nodeType": "YulVariableDeclaration", - "src": "11717:15:18", - "value": { - "kind": "number", - "nativeSrc": "11731:1:18", - "nodeType": "YulLiteral", - "src": "11731:1:18", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "11721:6:18", - "nodeType": "YulTypedName", - "src": "11721:6:18", - "type": "" - } - ] - }, + "variables": [ { - "nativeSrc": "11746:63:18", - "nodeType": "YulAssignment", - "src": "11746:63:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "11781:9:18", - "nodeType": "YulIdentifier", - "src": "11781:9:18" - }, - { - "name": "offset", - "nativeSrc": "11792:6:18", - "nodeType": "YulIdentifier", - "src": "11792:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "11777:3:18", - "nodeType": "YulIdentifier", - "src": "11777:3:18" - }, - "nativeSrc": "11777:22:18", - "nodeType": "YulFunctionCall", - "src": "11777:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "11801:7:18", - "nodeType": "YulIdentifier", - "src": "11801:7:18" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "11756:20:18", - "nodeType": "YulIdentifier", - "src": "11756:20:18" - }, - "nativeSrc": "11756:53:18", - "nodeType": "YulFunctionCall", - "src": "11756:53:18" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "11746:6:18", - "nodeType": "YulIdentifier", - "src": "11746:6:18" - } - ] + "name": "length", + "nativeSrc": "4296:6:18", + "nodeType": "YulTypedName", + "src": "4296:6:18", + "type": "" } ] }, { - "nativeSrc": "11829:118:18", - "nodeType": "YulBlock", - "src": "11829:118:18", - "statements": [ - { - "nativeSrc": "11844:16:18", - "nodeType": "YulVariableDeclaration", - "src": "11844:16:18", - "value": { - "kind": "number", - "nativeSrc": "11858:2:18", - "nodeType": "YulLiteral", - "src": "11858:2:18", - "type": "", - "value": "32" + "nativeSrc": "4354:78:18", + "nodeType": "YulAssignment", + "src": "4354:78:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "4420:3:18", + "nodeType": "YulIdentifier", + "src": "4420:3:18" }, - "variables": [ - { - "name": "offset", - "nativeSrc": "11848:6:18", - "nodeType": "YulTypedName", - "src": "11848:6:18", - "type": "" - } - ] + { + "name": "length", + "nativeSrc": "4425:6:18", + "nodeType": "YulIdentifier", + "src": "4425:6:18" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "4361:58:18", + "nodeType": "YulIdentifier", + "src": "4361:58:18" }, + "nativeSrc": "4361:71:18", + "nodeType": "YulFunctionCall", + "src": "4361:71:18" + }, + "variableNames": [ { - "nativeSrc": "11874:63:18", - "nodeType": "YulAssignment", - "src": "11874:63:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "11909:9:18", - "nodeType": "YulIdentifier", - "src": "11909:9:18" - }, - { - "name": "offset", - "nativeSrc": "11920:6:18", - "nodeType": "YulIdentifier", - "src": "11920:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "11905:3:18", - "nodeType": "YulIdentifier", - "src": "11905:3:18" - }, - "nativeSrc": "11905:22:18", - "nodeType": "YulFunctionCall", - "src": "11905:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "11929:7:18", - "nodeType": "YulIdentifier", - "src": "11929:7:18" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "11884:20:18", - "nodeType": "YulIdentifier", - "src": "11884:20:18" - }, - "nativeSrc": "11884:53:18", - "nodeType": "YulFunctionCall", - "src": "11884:53:18" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "11874:6:18", - "nodeType": "YulIdentifier", - "src": "11874:6:18" - } - ] + "name": "pos", + "nativeSrc": "4354:3:18", + "nodeType": "YulIdentifier", + "src": "4354:3:18" } ] }, { - "nativeSrc": "11957:303:18", - "nodeType": "YulBlock", - "src": "11957:303:18", - "statements": [ - { - "nativeSrc": "11972:46:18", - "nodeType": "YulVariableDeclaration", - "src": "11972:46:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "12003:9:18", - "nodeType": "YulIdentifier", - "src": "12003:9:18" - }, - { - "kind": "number", - "nativeSrc": "12014:2:18", - "nodeType": "YulLiteral", - "src": "12014:2:18", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "11999:3:18", - "nodeType": "YulIdentifier", - "src": "11999:3:18" - }, - "nativeSrc": "11999:18:18", - "nodeType": "YulFunctionCall", - "src": "11999:18:18" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "11986:12:18", - "nodeType": "YulIdentifier", - "src": "11986:12:18" - }, - "nativeSrc": "11986:32:18", - "nodeType": "YulFunctionCall", - "src": "11986:32:18" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "11976:6:18", - "nodeType": "YulTypedName", - "src": "11976:6:18", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "12065:83:18", - "nodeType": "YulBlock", - "src": "12065:83:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "12067:77:18", - "nodeType": "YulIdentifier", - "src": "12067:77:18" - }, - "nativeSrc": "12067:79:18", - "nodeType": "YulFunctionCall", - "src": "12067:79:18" - }, - "nativeSrc": "12067:79:18", - "nodeType": "YulExpressionStatement", - "src": "12067:79:18" - } - ] - }, - "condition": { + "expression": { + "arguments": [ + { "arguments": [ { - "name": "offset", - "nativeSrc": "12037:6:18", + "name": "value", + "nativeSrc": "4480:5:18", "nodeType": "YulIdentifier", - "src": "12037:6:18" + "src": "4480:5:18" }, { "kind": "number", - "nativeSrc": "12045:18:18", + "nativeSrc": "4487:4:18", "nodeType": "YulLiteral", - "src": "12045:18:18", + "src": "4487:4:18", "type": "", - "value": "0xffffffffffffffff" + "value": "0x20" } ], "functionName": { - "name": "gt", - "nativeSrc": "12034:2:18", + "name": "add", + "nativeSrc": "4476:3:18", "nodeType": "YulIdentifier", - "src": "12034:2:18" + "src": "4476:3:18" }, - "nativeSrc": "12034:30:18", + "nativeSrc": "4476:16:18", "nodeType": "YulFunctionCall", - "src": "12034:30:18" + "src": "4476:16:18" }, - "nativeSrc": "12031:117:18", - "nodeType": "YulIf", - "src": "12031:117:18" - }, - { - "nativeSrc": "12162:88:18", - "nodeType": "YulAssignment", - "src": "12162:88:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "12222:9:18", - "nodeType": "YulIdentifier", - "src": "12222:9:18" - }, - { - "name": "offset", - "nativeSrc": "12233:6:18", - "nodeType": "YulIdentifier", - "src": "12233:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12218:3:18", - "nodeType": "YulIdentifier", - "src": "12218:3:18" - }, - "nativeSrc": "12218:22:18", - "nodeType": "YulFunctionCall", - "src": "12218:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "12242:7:18", - "nodeType": "YulIdentifier", - "src": "12242:7:18" - } - ], - "functionName": { - "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "12172:45:18", - "nodeType": "YulIdentifier", - "src": "12172:45:18" - }, - "nativeSrc": "12172:78:18", - "nodeType": "YulFunctionCall", - "src": "12172:78:18" + { + "name": "pos", + "nativeSrc": "4494:3:18", + "nodeType": "YulIdentifier", + "src": "4494:3:18" }, - "variableNames": [ - { - "name": "value2", - "nativeSrc": "12162:6:18", - "nodeType": "YulIdentifier", - "src": "12162:6:18" - } - ] - } - ] + { + "name": "length", + "nativeSrc": "4499:6:18", + "nodeType": "YulIdentifier", + "src": "4499:6:18" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "4441:34:18", + "nodeType": "YulIdentifier", + "src": "4441:34:18" + }, + "nativeSrc": "4441:65:18", + "nodeType": "YulFunctionCall", + "src": "4441:65:18" + }, + "nativeSrc": "4441:65:18", + "nodeType": "YulExpressionStatement", + "src": "4441:65:18" }, { - "nativeSrc": "12270:303:18", - "nodeType": "YulBlock", - "src": "12270:303:18", - "statements": [ - { - "nativeSrc": "12285:46:18", - "nodeType": "YulVariableDeclaration", - "src": "12285:46:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "12316:9:18", - "nodeType": "YulIdentifier", - "src": "12316:9:18" - }, - { - "kind": "number", - "nativeSrc": "12327:2:18", - "nodeType": "YulLiteral", - "src": "12327:2:18", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12312:3:18", - "nodeType": "YulIdentifier", - "src": "12312:3:18" - }, - "nativeSrc": "12312:18:18", - "nodeType": "YulFunctionCall", - "src": "12312:18:18" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "12299:12:18", - "nodeType": "YulIdentifier", - "src": "12299:12:18" - }, - "nativeSrc": "12299:32:18", - "nodeType": "YulFunctionCall", - "src": "12299:32:18" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "12289:6:18", - "nodeType": "YulTypedName", - "src": "12289:6:18", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "12378:83:18", - "nodeType": "YulBlock", - "src": "12378:83:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "12380:77:18", - "nodeType": "YulIdentifier", - "src": "12380:77:18" - }, - "nativeSrc": "12380:79:18", - "nodeType": "YulFunctionCall", - "src": "12380:79:18" - }, - "nativeSrc": "12380:79:18", - "nodeType": "YulExpressionStatement", - "src": "12380:79:18" - } - ] + "nativeSrc": "4515:46:18", + "nodeType": "YulAssignment", + "src": "4515:46:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "4526:3:18", + "nodeType": "YulIdentifier", + "src": "4526:3:18" }, - "condition": { + { "arguments": [ { - "name": "offset", - "nativeSrc": "12350:6:18", + "name": "length", + "nativeSrc": "4553:6:18", "nodeType": "YulIdentifier", - "src": "12350:6:18" - }, - { - "kind": "number", - "nativeSrc": "12358:18:18", - "nodeType": "YulLiteral", - "src": "12358:18:18", - "type": "", - "value": "0xffffffffffffffff" + "src": "4553:6:18" } ], "functionName": { - "name": "gt", - "nativeSrc": "12347:2:18", + "name": "round_up_to_mul_of_32", + "nativeSrc": "4531:21:18", "nodeType": "YulIdentifier", - "src": "12347:2:18" + "src": "4531:21:18" }, - "nativeSrc": "12347:30:18", + "nativeSrc": "4531:29:18", "nodeType": "YulFunctionCall", - "src": "12347:30:18" - }, - "nativeSrc": "12344:117:18", - "nodeType": "YulIf", - "src": "12344:117:18" + "src": "4531:29:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4522:3:18", + "nodeType": "YulIdentifier", + "src": "4522:3:18" }, + "nativeSrc": "4522:39:18", + "nodeType": "YulFunctionCall", + "src": "4522:39:18" + }, + "variableNames": [ { - "nativeSrc": "12475:88:18", - "nodeType": "YulAssignment", - "src": "12475:88:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "12535:9:18", - "nodeType": "YulIdentifier", - "src": "12535:9:18" - }, - { - "name": "offset", - "nativeSrc": "12546:6:18", - "nodeType": "YulIdentifier", - "src": "12546:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12531:3:18", - "nodeType": "YulIdentifier", - "src": "12531:3:18" - }, - "nativeSrc": "12531:22:18", - "nodeType": "YulFunctionCall", - "src": "12531:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "12555:7:18", - "nodeType": "YulIdentifier", - "src": "12555:7:18" - } - ], - "functionName": { - "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "12485:45:18", - "nodeType": "YulIdentifier", - "src": "12485:45:18" - }, - "nativeSrc": "12485:78:18", - "nodeType": "YulFunctionCall", - "src": "12485:78:18" + "name": "end", + "nativeSrc": "4515:3:18", + "nodeType": "YulIdentifier", + "src": "4515:3:18" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "4190:377:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "4263:5:18", + "nodeType": "YulTypedName", + "src": "4263:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "4270:3:18", + "nodeType": "YulTypedName", + "src": "4270:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "4278:3:18", + "nodeType": "YulTypedName", + "src": "4278:3:18", + "type": "" + } + ], + "src": "4190:377:18" + }, + { + "body": { + "nativeSrc": "4691:195:18", + "nodeType": "YulBlock", + "src": "4691:195:18", + "statements": [ + { + "nativeSrc": "4701:26:18", + "nodeType": "YulAssignment", + "src": "4701:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4713:9:18", + "nodeType": "YulIdentifier", + "src": "4713:9:18" }, - "variableNames": [ - { - "name": "value3", - "nativeSrc": "12475:6:18", - "nodeType": "YulIdentifier", - "src": "12475:6:18" - } - ] + { + "kind": "number", + "nativeSrc": "4724:2:18", + "nodeType": "YulLiteral", + "src": "4724:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4709:3:18", + "nodeType": "YulIdentifier", + "src": "4709:3:18" + }, + "nativeSrc": "4709:18:18", + "nodeType": "YulFunctionCall", + "src": "4709:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "4701:4:18", + "nodeType": "YulIdentifier", + "src": "4701:4:18" } ] }, { - "nativeSrc": "12583:288:18", - "nodeType": "YulBlock", - "src": "12583:288:18", - "statements": [ - { - "nativeSrc": "12598:47:18", - "nodeType": "YulVariableDeclaration", - "src": "12598:47:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "12629:9:18", - "nodeType": "YulIdentifier", - "src": "12629:9:18" - }, - { - "kind": "number", - "nativeSrc": "12640:3:18", - "nodeType": "YulLiteral", - "src": "12640:3:18", - "type": "", - "value": "128" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12625:3:18", - "nodeType": "YulIdentifier", - "src": "12625:3:18" - }, - "nativeSrc": "12625:19:18", - "nodeType": "YulFunctionCall", - "src": "12625:19:18" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "12612:12:18", - "nodeType": "YulIdentifier", - "src": "12612:12:18" - }, - "nativeSrc": "12612:33:18", - "nodeType": "YulFunctionCall", - "src": "12612:33:18" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "12602:6:18", - "nodeType": "YulTypedName", - "src": "12602:6:18", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "12692:83:18", - "nodeType": "YulBlock", - "src": "12692:83:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "12694:77:18", - "nodeType": "YulIdentifier", - "src": "12694:77:18" - }, - "nativeSrc": "12694:79:18", - "nodeType": "YulFunctionCall", - "src": "12694:79:18" - }, - "nativeSrc": "12694:79:18", - "nodeType": "YulExpressionStatement", - "src": "12694:79:18" - } - ] - }, - "condition": { + "expression": { + "arguments": [ + { "arguments": [ { - "name": "offset", - "nativeSrc": "12664:6:18", + "name": "headStart", + "nativeSrc": "4748:9:18", "nodeType": "YulIdentifier", - "src": "12664:6:18" + "src": "4748:9:18" }, { "kind": "number", - "nativeSrc": "12672:18:18", + "nativeSrc": "4759:1:18", "nodeType": "YulLiteral", - "src": "12672:18:18", + "src": "4759:1:18", "type": "", - "value": "0xffffffffffffffff" + "value": "0" } ], "functionName": { - "name": "gt", - "nativeSrc": "12661:2:18", + "name": "add", + "nativeSrc": "4744:3:18", "nodeType": "YulIdentifier", - "src": "12661:2:18" + "src": "4744:3:18" }, - "nativeSrc": "12661:30:18", + "nativeSrc": "4744:17:18", "nodeType": "YulFunctionCall", - "src": "12661:30:18" + "src": "4744:17:18" }, - "nativeSrc": "12658:117:18", - "nodeType": "YulIf", - "src": "12658:117:18" - }, - { - "nativeSrc": "12789:72:18", - "nodeType": "YulAssignment", - "src": "12789:72:18", - "value": { + { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "12833:9:18", - "nodeType": "YulIdentifier", - "src": "12833:9:18" - }, - { - "name": "offset", - "nativeSrc": "12844:6:18", - "nodeType": "YulIdentifier", - "src": "12844:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "12829:3:18", - "nodeType": "YulIdentifier", - "src": "12829:3:18" - }, - "nativeSrc": "12829:22:18", - "nodeType": "YulFunctionCall", - "src": "12829:22:18" + "name": "tail", + "nativeSrc": "4767:4:18", + "nodeType": "YulIdentifier", + "src": "4767:4:18" }, { - "name": "dataEnd", - "nativeSrc": "12853:7:18", + "name": "headStart", + "nativeSrc": "4773:9:18", "nodeType": "YulIdentifier", - "src": "12853:7:18" + "src": "4773:9:18" } ], "functionName": { - "name": "abi_decode_t_bytes_memory_ptr", - "nativeSrc": "12799:29:18", + "name": "sub", + "nativeSrc": "4763:3:18", "nodeType": "YulIdentifier", - "src": "12799:29:18" + "src": "4763:3:18" }, - "nativeSrc": "12799:62:18", + "nativeSrc": "4763:20:18", "nodeType": "YulFunctionCall", - "src": "12799:62:18" + "src": "4763:20:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4737:6:18", + "nodeType": "YulIdentifier", + "src": "4737:6:18" + }, + "nativeSrc": "4737:47:18", + "nodeType": "YulFunctionCall", + "src": "4737:47:18" + }, + "nativeSrc": "4737:47:18", + "nodeType": "YulExpressionStatement", + "src": "4737:47:18" + }, + { + "nativeSrc": "4793:86:18", + "nodeType": "YulAssignment", + "src": "4793:86:18", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "4865:6:18", + "nodeType": "YulIdentifier", + "src": "4865:6:18" }, - "variableNames": [ - { - "name": "value4", - "nativeSrc": "12789:6:18", - "nodeType": "YulIdentifier", - "src": "12789:6:18" - } - ] + { + "name": "tail", + "nativeSrc": "4874:4:18", + "nodeType": "YulIdentifier", + "src": "4874:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "4801:63:18", + "nodeType": "YulIdentifier", + "src": "4801:63:18" + }, + "nativeSrc": "4801:78:18", + "nodeType": "YulFunctionCall", + "src": "4801:78:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "4793:4:18", + "nodeType": "YulIdentifier", + "src": "4793:4:18" } ] } ] }, - "name": "abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr", - "nativeSrc": "11369:1509:18", + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "4573:313:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", - "nativeSrc": "11500:9:18", + "nativeSrc": "4663:9:18", "nodeType": "YulTypedName", - "src": "11500:9:18", + "src": "4663:9:18", "type": "" }, { - "name": "dataEnd", - "nativeSrc": "11511:7:18", + "name": "value0", + "nativeSrc": "4675:6:18", "nodeType": "YulTypedName", - "src": "11511:7:18", + "src": "4675:6:18", "type": "" } ], "returnVariables": [ { - "name": "value0", - "nativeSrc": "11523:6:18", - "nodeType": "YulTypedName", - "src": "11523:6:18", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "11531:6:18", - "nodeType": "YulTypedName", - "src": "11531:6:18", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "11539:6:18", + "name": "tail", + "nativeSrc": "4686:4:18", "nodeType": "YulTypedName", - "src": "11539:6:18", + "src": "4686:4:18", "type": "" - }, + } + ], + "src": "4573:313:18" + }, + { + "body": { + "nativeSrc": "4937:32:18", + "nodeType": "YulBlock", + "src": "4937:32:18", + "statements": [ + { + "nativeSrc": "4947:16:18", + "nodeType": "YulAssignment", + "src": "4947:16:18", + "value": { + "name": "value", + "nativeSrc": "4958:5:18", + "nodeType": "YulIdentifier", + "src": "4958:5:18" + }, + "variableNames": [ + { + "name": "cleaned", + "nativeSrc": "4947:7:18", + "nodeType": "YulIdentifier", + "src": "4947:7:18" + } + ] + } + ] + }, + "name": "cleanup_t_bytes32", + "nativeSrc": "4892:77:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ { - "name": "value3", - "nativeSrc": "11547:6:18", + "name": "value", + "nativeSrc": "4919:5:18", "nodeType": "YulTypedName", - "src": "11547:6:18", + "src": "4919:5:18", "type": "" - }, + } + ], + "returnVariables": [ { - "name": "value4", - "nativeSrc": "11555:6:18", + "name": "cleaned", + "nativeSrc": "4929:7:18", "nodeType": "YulTypedName", - "src": "11555:6:18", + "src": "4929:7:18", "type": "" } ], - "src": "11369:1509:18" + "src": "4892:77:18" }, { "body": { - "nativeSrc": "12967:391:18", + "nativeSrc": "5018:79:18", "nodeType": "YulBlock", - "src": "12967:391:18", + "src": "5018:79:18", "statements": [ { "body": { - "nativeSrc": "13013:83:18", + "nativeSrc": "5075:16:18", "nodeType": "YulBlock", - "src": "13013:83:18", + "src": "5075:16:18", "statements": [ { "expression": { - "arguments": [], + "arguments": [ + { + "kind": "number", + "nativeSrc": "5084:1:18", + "nodeType": "YulLiteral", + "src": "5084:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5087:1:18", + "nodeType": "YulLiteral", + "src": "5087:1:18", + "type": "", + "value": "0" + } + ], "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "13015:77:18", + "name": "revert", + "nativeSrc": "5077:6:18", "nodeType": "YulIdentifier", - "src": "13015:77:18" + "src": "5077:6:18" }, - "nativeSrc": "13015:79:18", + "nativeSrc": "5077:12:18", "nodeType": "YulFunctionCall", - "src": "13015:79:18" + "src": "5077:12:18" }, - "nativeSrc": "13015:79:18", + "nativeSrc": "5077:12:18", "nodeType": "YulExpressionStatement", - "src": "13015:79:18" + "src": "5077:12:18" } ] }, @@ -67968,290 +67654,194 @@ { "arguments": [ { - "name": "dataEnd", - "nativeSrc": "12988:7:18", + "name": "value", + "nativeSrc": "5041:5:18", "nodeType": "YulIdentifier", - "src": "12988:7:18" + "src": "5041:5:18" }, { - "name": "headStart", - "nativeSrc": "12997:9:18", - "nodeType": "YulIdentifier", - "src": "12997:9:18" + "arguments": [ + { + "name": "value", + "nativeSrc": "5066:5:18", + "nodeType": "YulIdentifier", + "src": "5066:5:18" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nativeSrc": "5048:17:18", + "nodeType": "YulIdentifier", + "src": "5048:17:18" + }, + "nativeSrc": "5048:24:18", + "nodeType": "YulFunctionCall", + "src": "5048:24:18" } ], "functionName": { - "name": "sub", - "nativeSrc": "12984:3:18", + "name": "eq", + "nativeSrc": "5038:2:18", "nodeType": "YulIdentifier", - "src": "12984:3:18" + "src": "5038:2:18" }, - "nativeSrc": "12984:23:18", + "nativeSrc": "5038:35:18", "nodeType": "YulFunctionCall", - "src": "12984:23:18" - }, - { - "kind": "number", - "nativeSrc": "13009:2:18", - "nodeType": "YulLiteral", - "src": "13009:2:18", - "type": "", - "value": "64" + "src": "5038:35:18" } ], "functionName": { - "name": "slt", - "nativeSrc": "12980:3:18", + "name": "iszero", + "nativeSrc": "5031:6:18", "nodeType": "YulIdentifier", - "src": "12980:3:18" + "src": "5031:6:18" }, - "nativeSrc": "12980:32:18", + "nativeSrc": "5031:43:18", "nodeType": "YulFunctionCall", - "src": "12980:32:18" + "src": "5031:43:18" }, - "nativeSrc": "12977:119:18", + "nativeSrc": "5028:63:18", "nodeType": "YulIf", - "src": "12977:119:18" - }, + "src": "5028:63:18" + } + ] + }, + "name": "validator_revert_t_bytes32", + "nativeSrc": "4975:122:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5011:5:18", + "nodeType": "YulTypedName", + "src": "5011:5:18", + "type": "" + } + ], + "src": "4975:122:18" + }, + { + "body": { + "nativeSrc": "5155:87:18", + "nodeType": "YulBlock", + "src": "5155:87:18", + "statements": [ { - "nativeSrc": "13106:117:18", - "nodeType": "YulBlock", - "src": "13106:117:18", - "statements": [ - { - "nativeSrc": "13121:15:18", - "nodeType": "YulVariableDeclaration", - "src": "13121:15:18", - "value": { - "kind": "number", - "nativeSrc": "13135:1:18", - "nodeType": "YulLiteral", - "src": "13135:1:18", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "13125:6:18", - "nodeType": "YulTypedName", - "src": "13125:6:18", - "type": "" - } - ] + "nativeSrc": "5165:29:18", + "nodeType": "YulAssignment", + "src": "5165:29:18", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "5187:6:18", + "nodeType": "YulIdentifier", + "src": "5187:6:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "5174:12:18", + "nodeType": "YulIdentifier", + "src": "5174:12:18" }, + "nativeSrc": "5174:20:18", + "nodeType": "YulFunctionCall", + "src": "5174:20:18" + }, + "variableNames": [ { - "nativeSrc": "13150:63:18", - "nodeType": "YulAssignment", - "src": "13150:63:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "13185:9:18", - "nodeType": "YulIdentifier", - "src": "13185:9:18" - }, - { - "name": "offset", - "nativeSrc": "13196:6:18", - "nodeType": "YulIdentifier", - "src": "13196:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "13181:3:18", - "nodeType": "YulIdentifier", - "src": "13181:3:18" - }, - "nativeSrc": "13181:22:18", - "nodeType": "YulFunctionCall", - "src": "13181:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "13205:7:18", - "nodeType": "YulIdentifier", - "src": "13205:7:18" - } - ], - "functionName": { - "name": "abi_decode_t_bytes32", - "nativeSrc": "13160:20:18", - "nodeType": "YulIdentifier", - "src": "13160:20:18" - }, - "nativeSrc": "13160:53:18", - "nodeType": "YulFunctionCall", - "src": "13160:53:18" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "13150:6:18", - "nodeType": "YulIdentifier", - "src": "13150:6:18" - } - ] + "name": "value", + "nativeSrc": "5165:5:18", + "nodeType": "YulIdentifier", + "src": "5165:5:18" } ] }, { - "nativeSrc": "13233:118:18", - "nodeType": "YulBlock", - "src": "13233:118:18", - "statements": [ - { - "nativeSrc": "13248:16:18", - "nodeType": "YulVariableDeclaration", - "src": "13248:16:18", - "value": { - "kind": "number", - "nativeSrc": "13262:2:18", - "nodeType": "YulLiteral", - "src": "13262:2:18", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "13252:6:18", - "nodeType": "YulTypedName", - "src": "13252:6:18", - "type": "" - } - ] + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "5230:5:18", + "nodeType": "YulIdentifier", + "src": "5230:5:18" + } + ], + "functionName": { + "name": "validator_revert_t_bytes32", + "nativeSrc": "5203:26:18", + "nodeType": "YulIdentifier", + "src": "5203:26:18" }, - { - "nativeSrc": "13278:63:18", - "nodeType": "YulAssignment", - "src": "13278:63:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "13313:9:18", - "nodeType": "YulIdentifier", - "src": "13313:9:18" - }, - { - "name": "offset", - "nativeSrc": "13324:6:18", - "nodeType": "YulIdentifier", - "src": "13324:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "13309:3:18", - "nodeType": "YulIdentifier", - "src": "13309:3:18" - }, - "nativeSrc": "13309:22:18", - "nodeType": "YulFunctionCall", - "src": "13309:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "13333:7:18", - "nodeType": "YulIdentifier", - "src": "13333:7:18" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "13288:20:18", - "nodeType": "YulIdentifier", - "src": "13288:20:18" - }, - "nativeSrc": "13288:53:18", - "nodeType": "YulFunctionCall", - "src": "13288:53:18" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "13278:6:18", - "nodeType": "YulIdentifier", - "src": "13278:6:18" - } - ] - } - ] + "nativeSrc": "5203:33:18", + "nodeType": "YulFunctionCall", + "src": "5203:33:18" + }, + "nativeSrc": "5203:33:18", + "nodeType": "YulExpressionStatement", + "src": "5203:33:18" } ] }, - "name": "abi_decode_tuple_t_bytes32t_address", - "nativeSrc": "12884:474:18", + "name": "abi_decode_t_bytes32", + "nativeSrc": "5103:139:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nativeSrc": "12929:9:18", + "name": "offset", + "nativeSrc": "5133:6:18", "nodeType": "YulTypedName", - "src": "12929:9:18", + "src": "5133:6:18", "type": "" }, { - "name": "dataEnd", - "nativeSrc": "12940:7:18", + "name": "end", + "nativeSrc": "5141:3:18", "nodeType": "YulTypedName", - "src": "12940:7:18", + "src": "5141:3:18", "type": "" } ], "returnVariables": [ { - "name": "value0", - "nativeSrc": "12952:6:18", - "nodeType": "YulTypedName", - "src": "12952:6:18", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "12960:6:18", + "name": "value", + "nativeSrc": "5149:5:18", "nodeType": "YulTypedName", - "src": "12960:6:18", + "src": "5149:5:18", "type": "" } ], - "src": "12884:474:18" + "src": "5103:139:18" }, { "body": { - "nativeSrc": "13440:433:18", + "nativeSrc": "5314:263:18", "nodeType": "YulBlock", - "src": "13440:433:18", + "src": "5314:263:18", "statements": [ { "body": { - "nativeSrc": "13486:83:18", + "nativeSrc": "5360:83:18", "nodeType": "YulBlock", - "src": "13486:83:18", + "src": "5360:83:18", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "13488:77:18", + "nativeSrc": "5362:77:18", "nodeType": "YulIdentifier", - "src": "13488:77:18" + "src": "5362:77:18" }, - "nativeSrc": "13488:79:18", + "nativeSrc": "5362:79:18", "nodeType": "YulFunctionCall", - "src": "13488:79:18" + "src": "5362:79:18" }, - "nativeSrc": "13488:79:18", + "nativeSrc": "5362:79:18", "nodeType": "YulExpressionStatement", - "src": "13488:79:18" + "src": "5362:79:18" } ] }, @@ -68261,219 +67851,131 @@ "arguments": [ { "name": "dataEnd", - "nativeSrc": "13461:7:18", + "nativeSrc": "5335:7:18", "nodeType": "YulIdentifier", - "src": "13461:7:18" + "src": "5335:7:18" }, { "name": "headStart", - "nativeSrc": "13470:9:18", + "nativeSrc": "5344:9:18", "nodeType": "YulIdentifier", - "src": "13470:9:18" + "src": "5344:9:18" } ], "functionName": { "name": "sub", - "nativeSrc": "13457:3:18", - "nodeType": "YulIdentifier", - "src": "13457:3:18" - }, - "nativeSrc": "13457:23:18", - "nodeType": "YulFunctionCall", - "src": "13457:23:18" - }, - { - "kind": "number", - "nativeSrc": "13482:2:18", - "nodeType": "YulLiteral", - "src": "13482:2:18", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "13453:3:18", - "nodeType": "YulIdentifier", - "src": "13453:3:18" - }, - "nativeSrc": "13453:32:18", - "nodeType": "YulFunctionCall", - "src": "13453:32:18" - }, - "nativeSrc": "13450:119:18", - "nodeType": "YulIf", - "src": "13450:119:18" - }, - { - "nativeSrc": "13579:287:18", - "nodeType": "YulBlock", - "src": "13579:287:18", - "statements": [ - { - "nativeSrc": "13594:45:18", - "nodeType": "YulVariableDeclaration", - "src": "13594:45:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "13625:9:18", - "nodeType": "YulIdentifier", - "src": "13625:9:18" - }, - { - "kind": "number", - "nativeSrc": "13636:1:18", - "nodeType": "YulLiteral", - "src": "13636:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "13621:3:18", - "nodeType": "YulIdentifier", - "src": "13621:3:18" - }, - "nativeSrc": "13621:17:18", - "nodeType": "YulFunctionCall", - "src": "13621:17:18" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "13608:12:18", + "nativeSrc": "5331:3:18", "nodeType": "YulIdentifier", - "src": "13608:12:18" + "src": "5331:3:18" }, - "nativeSrc": "13608:31:18", + "nativeSrc": "5331:23:18", "nodeType": "YulFunctionCall", - "src": "13608:31:18" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "13598:6:18", - "nodeType": "YulTypedName", - "src": "13598:6:18", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "13686:83:18", - "nodeType": "YulBlock", - "src": "13686:83:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "13688:77:18", - "nodeType": "YulIdentifier", - "src": "13688:77:18" - }, - "nativeSrc": "13688:79:18", - "nodeType": "YulFunctionCall", - "src": "13688:79:18" - }, - "nativeSrc": "13688:79:18", - "nodeType": "YulExpressionStatement", - "src": "13688:79:18" - } - ] + "src": "5331:23:18" }, - "condition": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "13658:6:18", - "nodeType": "YulIdentifier", - "src": "13658:6:18" - }, - { - "kind": "number", - "nativeSrc": "13666:18:18", - "nodeType": "YulLiteral", - "src": "13666:18:18", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "13655:2:18", - "nodeType": "YulIdentifier", - "src": "13655:2:18" - }, - "nativeSrc": "13655:30:18", - "nodeType": "YulFunctionCall", - "src": "13655:30:18" + { + "kind": "number", + "nativeSrc": "5356:2:18", + "nodeType": "YulLiteral", + "src": "5356:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "5327:3:18", + "nodeType": "YulIdentifier", + "src": "5327:3:18" + }, + "nativeSrc": "5327:32:18", + "nodeType": "YulFunctionCall", + "src": "5327:32:18" + }, + "nativeSrc": "5324:119:18", + "nodeType": "YulIf", + "src": "5324:119:18" + }, + { + "nativeSrc": "5453:117:18", + "nodeType": "YulBlock", + "src": "5453:117:18", + "statements": [ + { + "nativeSrc": "5468:15:18", + "nodeType": "YulVariableDeclaration", + "src": "5468:15:18", + "value": { + "kind": "number", + "nativeSrc": "5482:1:18", + "nodeType": "YulLiteral", + "src": "5482:1:18", + "type": "", + "value": "0" }, - "nativeSrc": "13652:117:18", - "nodeType": "YulIf", - "src": "13652:117:18" + "variables": [ + { + "name": "offset", + "nativeSrc": "5472:6:18", + "nodeType": "YulTypedName", + "src": "5472:6:18", + "type": "" + } + ] }, { - "nativeSrc": "13783:73:18", + "nativeSrc": "5497:63:18", "nodeType": "YulAssignment", - "src": "13783:73:18", + "src": "5497:63:18", "value": { "arguments": [ { "arguments": [ { "name": "headStart", - "nativeSrc": "13828:9:18", + "nativeSrc": "5532:9:18", "nodeType": "YulIdentifier", - "src": "13828:9:18" + "src": "5532:9:18" }, { "name": "offset", - "nativeSrc": "13839:6:18", + "nativeSrc": "5543:6:18", "nodeType": "YulIdentifier", - "src": "13839:6:18" + "src": "5543:6:18" } ], "functionName": { "name": "add", - "nativeSrc": "13824:3:18", + "nativeSrc": "5528:3:18", "nodeType": "YulIdentifier", - "src": "13824:3:18" + "src": "5528:3:18" }, - "nativeSrc": "13824:22:18", + "nativeSrc": "5528:22:18", "nodeType": "YulFunctionCall", - "src": "13824:22:18" + "src": "5528:22:18" }, { "name": "dataEnd", - "nativeSrc": "13848:7:18", + "nativeSrc": "5552:7:18", "nodeType": "YulIdentifier", - "src": "13848:7:18" + "src": "5552:7:18" } ], "functionName": { - "name": "abi_decode_t_string_memory_ptr", - "nativeSrc": "13793:30:18", + "name": "abi_decode_t_bytes32", + "nativeSrc": "5507:20:18", "nodeType": "YulIdentifier", - "src": "13793:30:18" + "src": "5507:20:18" }, - "nativeSrc": "13793:63:18", + "nativeSrc": "5507:53:18", "nodeType": "YulFunctionCall", - "src": "13793:63:18" + "src": "5507:53:18" }, "variableNames": [ { "name": "value0", - "nativeSrc": "13783:6:18", + "nativeSrc": "5497:6:18", "nodeType": "YulIdentifier", - "src": "13783:6:18" + "src": "5497:6:18" } ] } @@ -68481,745 +67983,479 @@ } ] }, - "name": "abi_decode_tuple_t_string_memory_ptr", - "nativeSrc": "13364:509:18", + "name": "abi_decode_tuple_t_bytes32", + "nativeSrc": "5248:329:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", - "nativeSrc": "13410:9:18", + "nativeSrc": "5284:9:18", "nodeType": "YulTypedName", - "src": "13410:9:18", + "src": "5284:9:18", "type": "" }, { "name": "dataEnd", - "nativeSrc": "13421:7:18", + "nativeSrc": "5295:7:18", "nodeType": "YulTypedName", - "src": "13421:7:18", + "src": "5295:7:18", "type": "" } ], "returnVariables": [ { "name": "value0", - "nativeSrc": "13433:6:18", + "nativeSrc": "5307:6:18", "nodeType": "YulTypedName", - "src": "13433:6:18", + "src": "5307:6:18", "type": "" } ], - "src": "13364:509:18" + "src": "5248:329:18" }, { "body": { - "nativeSrc": "13961:229:18", + "nativeSrc": "5648:53:18", "nodeType": "YulBlock", - "src": "13961:229:18", + "src": "5648:53:18", "statements": [ { - "body": { - "nativeSrc": "14066:22:18", - "nodeType": "YulBlock", - "src": "14066:22:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "14068:16:18", - "nodeType": "YulIdentifier", - "src": "14068:16:18" - }, - "nativeSrc": "14068:18:18", - "nodeType": "YulFunctionCall", - "src": "14068:18:18" - }, - "nativeSrc": "14068:18:18", - "nodeType": "YulExpressionStatement", - "src": "14068:18:18" - } - ] - }, - "condition": { + "expression": { "arguments": [ { - "name": "length", - "nativeSrc": "14038:6:18", + "name": "pos", + "nativeSrc": "5665:3:18", "nodeType": "YulIdentifier", - "src": "14038:6:18" + "src": "5665:3:18" }, { - "kind": "number", - "nativeSrc": "14046:18:18", - "nodeType": "YulLiteral", - "src": "14046:18:18", - "type": "", - "value": "0xffffffffffffffff" + "arguments": [ + { + "name": "value", + "nativeSrc": "5688:5:18", + "nodeType": "YulIdentifier", + "src": "5688:5:18" + } + ], + "functionName": { + "name": "cleanup_t_bytes32", + "nativeSrc": "5670:17:18", + "nodeType": "YulIdentifier", + "src": "5670:17:18" + }, + "nativeSrc": "5670:24:18", + "nodeType": "YulFunctionCall", + "src": "5670:24:18" } ], "functionName": { - "name": "gt", - "nativeSrc": "14035:2:18", + "name": "mstore", + "nativeSrc": "5658:6:18", "nodeType": "YulIdentifier", - "src": "14035:2:18" + "src": "5658:6:18" }, - "nativeSrc": "14035:30:18", + "nativeSrc": "5658:37:18", "nodeType": "YulFunctionCall", - "src": "14035:30:18" + "src": "5658:37:18" }, - "nativeSrc": "14032:56:18", - "nodeType": "YulIf", - "src": "14032:56:18" - }, + "nativeSrc": "5658:37:18", + "nodeType": "YulExpressionStatement", + "src": "5658:37:18" + } + ] + }, + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "5583:118:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "5636:5:18", + "nodeType": "YulTypedName", + "src": "5636:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "5643:3:18", + "nodeType": "YulTypedName", + "src": "5643:3:18", + "type": "" + } + ], + "src": "5583:118:18" + }, + { + "body": { + "nativeSrc": "5805:124:18", + "nodeType": "YulBlock", + "src": "5805:124:18", + "statements": [ { - "nativeSrc": "14098:25:18", + "nativeSrc": "5815:26:18", "nodeType": "YulAssignment", - "src": "14098:25:18", + "src": "5815:26:18", "value": { "arguments": [ { - "name": "length", - "nativeSrc": "14110:6:18", + "name": "headStart", + "nativeSrc": "5827:9:18", "nodeType": "YulIdentifier", - "src": "14110:6:18" + "src": "5827:9:18" }, { "kind": "number", - "nativeSrc": "14118:4:18", + "nativeSrc": "5838:2:18", "nodeType": "YulLiteral", - "src": "14118:4:18", + "src": "5838:2:18", "type": "", - "value": "0x20" + "value": "32" } ], "functionName": { - "name": "mul", - "nativeSrc": "14106:3:18", + "name": "add", + "nativeSrc": "5823:3:18", "nodeType": "YulIdentifier", - "src": "14106:3:18" + "src": "5823:3:18" }, - "nativeSrc": "14106:17:18", + "nativeSrc": "5823:18:18", "nodeType": "YulFunctionCall", - "src": "14106:17:18" + "src": "5823:18:18" }, "variableNames": [ { - "name": "size", - "nativeSrc": "14098:4:18", + "name": "tail", + "nativeSrc": "5815:4:18", "nodeType": "YulIdentifier", - "src": "14098:4:18" + "src": "5815:4:18" } ] }, { - "nativeSrc": "14160:23:18", - "nodeType": "YulAssignment", - "src": "14160:23:18", - "value": { + "expression": { "arguments": [ { - "name": "size", - "nativeSrc": "14172:4:18", + "name": "value0", + "nativeSrc": "5895:6:18", "nodeType": "YulIdentifier", - "src": "14172:4:18" + "src": "5895:6:18" }, { - "kind": "number", - "nativeSrc": "14178:4:18", - "nodeType": "YulLiteral", - "src": "14178:4:18", - "type": "", - "value": "0x20" + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5908:9:18", + "nodeType": "YulIdentifier", + "src": "5908:9:18" + }, + { + "kind": "number", + "nativeSrc": "5919:1:18", + "nodeType": "YulLiteral", + "src": "5919:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5904:3:18", + "nodeType": "YulIdentifier", + "src": "5904:3:18" + }, + "nativeSrc": "5904:17:18", + "nodeType": "YulFunctionCall", + "src": "5904:17:18" } ], "functionName": { - "name": "add", - "nativeSrc": "14168:3:18", + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "5851:43:18", "nodeType": "YulIdentifier", - "src": "14168:3:18" + "src": "5851:43:18" }, - "nativeSrc": "14168:15:18", + "nativeSrc": "5851:71:18", "nodeType": "YulFunctionCall", - "src": "14168:15:18" + "src": "5851:71:18" }, - "variableNames": [ - { - "name": "size", - "nativeSrc": "14160:4:18", - "nodeType": "YulIdentifier", - "src": "14160:4:18" - } - ] + "nativeSrc": "5851:71:18", + "nodeType": "YulExpressionStatement", + "src": "5851:71:18" } ] }, - "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", - "nativeSrc": "13879:311:18", + "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", + "nativeSrc": "5707:222:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "length", - "nativeSrc": "13945:6:18", + "name": "headStart", + "nativeSrc": "5777:9:18", + "nodeType": "YulTypedName", + "src": "5777:9:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "5789:6:18", "nodeType": "YulTypedName", - "src": "13945:6:18", + "src": "5789:6:18", "type": "" } ], "returnVariables": [ { - "name": "size", - "nativeSrc": "13956:4:18", + "name": "tail", + "nativeSrc": "5800:4:18", "nodeType": "YulTypedName", - "src": "13956:4:18", + "src": "5800:4:18", "type": "" } ], - "src": "13879:311:18" + "src": "5707:222:18" }, { "body": { - "nativeSrc": "14315:608:18", + "nativeSrc": "6024:28:18", "nodeType": "YulBlock", - "src": "14315:608:18", + "src": "6024:28:18", "statements": [ - { - "nativeSrc": "14325:90:18", - "nodeType": "YulAssignment", - "src": "14325:90:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nativeSrc": "14407:6:18", - "nodeType": "YulIdentifier", - "src": "14407:6:18" - } - ], - "functionName": { - "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", - "nativeSrc": "14350:56:18", - "nodeType": "YulIdentifier", - "src": "14350:56:18" - }, - "nativeSrc": "14350:64:18", - "nodeType": "YulFunctionCall", - "src": "14350:64:18" - } - ], - "functionName": { - "name": "allocate_memory", - "nativeSrc": "14334:15:18", - "nodeType": "YulIdentifier", - "src": "14334:15:18" - }, - "nativeSrc": "14334:81:18", - "nodeType": "YulFunctionCall", - "src": "14334:81:18" - }, - "variableNames": [ - { - "name": "array", - "nativeSrc": "14325:5:18", - "nodeType": "YulIdentifier", - "src": "14325:5:18" - } - ] - }, - { - "nativeSrc": "14424:16:18", - "nodeType": "YulVariableDeclaration", - "src": "14424:16:18", - "value": { - "name": "array", - "nativeSrc": "14435:5:18", - "nodeType": "YulIdentifier", - "src": "14435:5:18" - }, - "variables": [ - { - "name": "dst", - "nativeSrc": "14428:3:18", - "nodeType": "YulTypedName", - "src": "14428:3:18", - "type": "" - } - ] - }, { "expression": { "arguments": [ { - "name": "array", - "nativeSrc": "14457:5:18", - "nodeType": "YulIdentifier", - "src": "14457:5:18" + "kind": "number", + "nativeSrc": "6041:1:18", + "nodeType": "YulLiteral", + "src": "6041:1:18", + "type": "", + "value": "0" }, { - "name": "length", - "nativeSrc": "14464:6:18", - "nodeType": "YulIdentifier", - "src": "14464:6:18" + "kind": "number", + "nativeSrc": "6044:1:18", + "nodeType": "YulLiteral", + "src": "6044:1:18", + "type": "", + "value": "0" } ], "functionName": { - "name": "mstore", - "nativeSrc": "14450:6:18", + "name": "revert", + "nativeSrc": "6034:6:18", "nodeType": "YulIdentifier", - "src": "14450:6:18" + "src": "6034:6:18" }, - "nativeSrc": "14450:21:18", + "nativeSrc": "6034:12:18", "nodeType": "YulFunctionCall", - "src": "14450:21:18" + "src": "6034:12:18" }, - "nativeSrc": "14450:21:18", + "nativeSrc": "6034:12:18", "nodeType": "YulExpressionStatement", - "src": "14450:21:18" - }, + "src": "6034:12:18" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "5935:117:18", + "nodeType": "YulFunctionDefinition", + "src": "5935:117:18" + }, + { + "body": { + "nativeSrc": "6086:152:18", + "nodeType": "YulBlock", + "src": "6086:152:18", + "statements": [ { - "nativeSrc": "14480:23:18", - "nodeType": "YulAssignment", - "src": "14480:23:18", - "value": { + "expression": { "arguments": [ { - "name": "array", - "nativeSrc": "14491:5:18", - "nodeType": "YulIdentifier", - "src": "14491:5:18" + "kind": "number", + "nativeSrc": "6103:1:18", + "nodeType": "YulLiteral", + "src": "6103:1:18", + "type": "", + "value": "0" }, { "kind": "number", - "nativeSrc": "14498:4:18", + "nativeSrc": "6106:77:18", "nodeType": "YulLiteral", - "src": "14498:4:18", + "src": "6106:77:18", "type": "", - "value": "0x20" + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { - "name": "add", - "nativeSrc": "14487:3:18", + "name": "mstore", + "nativeSrc": "6096:6:18", "nodeType": "YulIdentifier", - "src": "14487:3:18" + "src": "6096:6:18" }, - "nativeSrc": "14487:16:18", + "nativeSrc": "6096:88:18", "nodeType": "YulFunctionCall", - "src": "14487:16:18" + "src": "6096:88:18" }, - "variableNames": [ - { - "name": "dst", - "nativeSrc": "14480:3:18", - "nodeType": "YulIdentifier", - "src": "14480:3:18" - } - ] + "nativeSrc": "6096:88:18", + "nodeType": "YulExpressionStatement", + "src": "6096:88:18" }, { - "nativeSrc": "14513:44:18", - "nodeType": "YulVariableDeclaration", - "src": "14513:44:18", - "value": { + "expression": { "arguments": [ { - "name": "offset", - "nativeSrc": "14531:6:18", - "nodeType": "YulIdentifier", - "src": "14531:6:18" + "kind": "number", + "nativeSrc": "6200:1:18", + "nodeType": "YulLiteral", + "src": "6200:1:18", + "type": "", + "value": "4" }, { - "arguments": [ - { - "name": "length", - "nativeSrc": "14543:6:18", - "nodeType": "YulIdentifier", - "src": "14543:6:18" - }, - { - "kind": "number", - "nativeSrc": "14551:4:18", - "nodeType": "YulLiteral", - "src": "14551:4:18", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "mul", - "nativeSrc": "14539:3:18", - "nodeType": "YulIdentifier", - "src": "14539:3:18" - }, - "nativeSrc": "14539:17:18", - "nodeType": "YulFunctionCall", - "src": "14539:17:18" + "kind": "number", + "nativeSrc": "6203:4:18", + "nodeType": "YulLiteral", + "src": "6203:4:18", + "type": "", + "value": "0x41" } ], "functionName": { - "name": "add", - "nativeSrc": "14527:3:18", + "name": "mstore", + "nativeSrc": "6193:6:18", "nodeType": "YulIdentifier", - "src": "14527:3:18" + "src": "6193:6:18" }, - "nativeSrc": "14527:30:18", + "nativeSrc": "6193:15:18", "nodeType": "YulFunctionCall", - "src": "14527:30:18" + "src": "6193:15:18" }, - "variables": [ - { - "name": "srcEnd", - "nativeSrc": "14517:6:18", - "nodeType": "YulTypedName", - "src": "14517:6:18", - "type": "" - } - ] + "nativeSrc": "6193:15:18", + "nodeType": "YulExpressionStatement", + "src": "6193:15:18" }, { - "body": { - "nativeSrc": "14585:103:18", - "nodeType": "YulBlock", - "src": "14585:103:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", - "nativeSrc": "14599:77:18", - "nodeType": "YulIdentifier", - "src": "14599:77:18" - }, - "nativeSrc": "14599:79:18", - "nodeType": "YulFunctionCall", - "src": "14599:79:18" - }, - "nativeSrc": "14599:79:18", - "nodeType": "YulExpressionStatement", - "src": "14599:79:18" - } - ] - }, - "condition": { + "expression": { "arguments": [ { - "name": "srcEnd", - "nativeSrc": "14572:6:18", - "nodeType": "YulIdentifier", - "src": "14572:6:18" + "kind": "number", + "nativeSrc": "6224:1:18", + "nodeType": "YulLiteral", + "src": "6224:1:18", + "type": "", + "value": "0" }, { - "name": "end", - "nativeSrc": "14580:3:18", - "nodeType": "YulIdentifier", - "src": "14580:3:18" + "kind": "number", + "nativeSrc": "6227:4:18", + "nodeType": "YulLiteral", + "src": "6227:4:18", + "type": "", + "value": "0x24" } ], "functionName": { - "name": "gt", - "nativeSrc": "14569:2:18", + "name": "revert", + "nativeSrc": "6217:6:18", "nodeType": "YulIdentifier", - "src": "14569:2:18" + "src": "6217:6:18" }, - "nativeSrc": "14569:15:18", + "nativeSrc": "6217:15:18", "nodeType": "YulFunctionCall", - "src": "14569:15:18" + "src": "6217:15:18" }, - "nativeSrc": "14566:122:18", - "nodeType": "YulIf", - "src": "14566:122:18" - }, + "nativeSrc": "6217:15:18", + "nodeType": "YulExpressionStatement", + "src": "6217:15:18" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "6058:180:18", + "nodeType": "YulFunctionDefinition", + "src": "6058:180:18" + }, + { + "body": { + "nativeSrc": "6287:238:18", + "nodeType": "YulBlock", + "src": "6287:238:18", + "statements": [ { - "body": { - "nativeSrc": "14773:144:18", - "nodeType": "YulBlock", - "src": "14773:144:18", - "statements": [ - { - "nativeSrc": "14788:21:18", - "nodeType": "YulVariableDeclaration", - "src": "14788:21:18", - "value": { - "name": "src", - "nativeSrc": "14806:3:18", - "nodeType": "YulIdentifier", - "src": "14806:3:18" - }, - "variables": [ - { - "name": "elementPos", - "nativeSrc": "14792:10:18", - "nodeType": "YulTypedName", - "src": "14792:10:18", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "dst", - "nativeSrc": "14830:3:18", - "nodeType": "YulIdentifier", - "src": "14830:3:18" - }, - { - "arguments": [ - { - "name": "elementPos", - "nativeSrc": "14856:10:18", - "nodeType": "YulIdentifier", - "src": "14856:10:18" - }, - { - "name": "end", - "nativeSrc": "14868:3:18", - "nodeType": "YulIdentifier", - "src": "14868:3:18" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "14835:20:18", - "nodeType": "YulIdentifier", - "src": "14835:20:18" - }, - "nativeSrc": "14835:37:18", - "nodeType": "YulFunctionCall", - "src": "14835:37:18" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "14823:6:18", - "nodeType": "YulIdentifier", - "src": "14823:6:18" - }, - "nativeSrc": "14823:50:18", - "nodeType": "YulFunctionCall", - "src": "14823:50:18" - }, - "nativeSrc": "14823:50:18", - "nodeType": "YulExpressionStatement", - "src": "14823:50:18" - }, - { - "nativeSrc": "14886:21:18", - "nodeType": "YulAssignment", - "src": "14886:21:18", - "value": { - "arguments": [ - { - "name": "dst", - "nativeSrc": "14897:3:18", - "nodeType": "YulIdentifier", - "src": "14897:3:18" - }, - { - "kind": "number", - "nativeSrc": "14902:4:18", - "nodeType": "YulLiteral", - "src": "14902:4:18", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "14893:3:18", - "nodeType": "YulIdentifier", - "src": "14893:3:18" - }, - "nativeSrc": "14893:14:18", - "nodeType": "YulFunctionCall", - "src": "14893:14:18" - }, - "variableNames": [ - { - "name": "dst", - "nativeSrc": "14886:3:18", - "nodeType": "YulIdentifier", - "src": "14886:3:18" - } - ] - } - ] - }, - "condition": { + "nativeSrc": "6297:58:18", + "nodeType": "YulVariableDeclaration", + "src": "6297:58:18", + "value": { "arguments": [ { - "name": "src", - "nativeSrc": "14726:3:18", + "name": "memPtr", + "nativeSrc": "6319:6:18", "nodeType": "YulIdentifier", - "src": "14726:3:18" + "src": "6319:6:18" }, { - "name": "srcEnd", - "nativeSrc": "14731:6:18", - "nodeType": "YulIdentifier", - "src": "14731:6:18" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "14723:2:18", - "nodeType": "YulIdentifier", - "src": "14723:2:18" - }, - "nativeSrc": "14723:15:18", - "nodeType": "YulFunctionCall", - "src": "14723:15:18" - }, - "nativeSrc": "14697:220:18", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "14739:25:18", - "nodeType": "YulBlock", - "src": "14739:25:18", - "statements": [ - { - "nativeSrc": "14741:21:18", - "nodeType": "YulAssignment", - "src": "14741:21:18", - "value": { - "arguments": [ - { - "name": "src", - "nativeSrc": "14752:3:18", - "nodeType": "YulIdentifier", - "src": "14752:3:18" - }, - { - "kind": "number", - "nativeSrc": "14757:4:18", - "nodeType": "YulLiteral", - "src": "14757:4:18", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "14748:3:18", - "nodeType": "YulIdentifier", - "src": "14748:3:18" - }, - "nativeSrc": "14748:14:18", - "nodeType": "YulFunctionCall", - "src": "14748:14:18" - }, - "variableNames": [ + "arguments": [ { - "name": "src", - "nativeSrc": "14741:3:18", + "name": "size", + "nativeSrc": "6349:4:18", "nodeType": "YulIdentifier", - "src": "14741:3:18" + "src": "6349:4:18" } - ] - } - ] - }, - "pre": { - "nativeSrc": "14701:21:18", - "nodeType": "YulBlock", - "src": "14701:21:18", - "statements": [ - { - "nativeSrc": "14703:17:18", - "nodeType": "YulVariableDeclaration", - "src": "14703:17:18", - "value": { - "name": "offset", - "nativeSrc": "14714:6:18", + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "6327:21:18", "nodeType": "YulIdentifier", - "src": "14714:6:18" + "src": "6327:21:18" }, - "variables": [ - { - "name": "src", - "nativeSrc": "14707:3:18", - "nodeType": "YulTypedName", - "src": "14707:3:18", - "type": "" - } - ] + "nativeSrc": "6327:27:18", + "nodeType": "YulFunctionCall", + "src": "6327:27:18" } - ] - }, - "src": "14697:220:18" - } - ] - }, - "name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr", - "nativeSrc": "14213:710:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "14285:6:18", - "nodeType": "YulTypedName", - "src": "14285:6:18", - "type": "" - }, - { - "name": "length", - "nativeSrc": "14293:6:18", - "nodeType": "YulTypedName", - "src": "14293:6:18", - "type": "" - }, - { - "name": "end", - "nativeSrc": "14301:3:18", - "nodeType": "YulTypedName", - "src": "14301:3:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "array", - "nativeSrc": "14309:5:18", - "nodeType": "YulTypedName", - "src": "14309:5:18", - "type": "" - } - ], - "src": "14213:710:18" - }, - { - "body": { - "nativeSrc": "15023:293:18", - "nodeType": "YulBlock", - "src": "15023:293:18", - "statements": [ + ], + "functionName": { + "name": "add", + "nativeSrc": "6315:3:18", + "nodeType": "YulIdentifier", + "src": "6315:3:18" + }, + "nativeSrc": "6315:40:18", + "nodeType": "YulFunctionCall", + "src": "6315:40:18" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "6301:10:18", + "nodeType": "YulTypedName", + "src": "6301:10:18", + "type": "" + } + ] + }, { "body": { - "nativeSrc": "15072:83:18", + "nativeSrc": "6466:22:18", "nodeType": "YulBlock", - "src": "15072:83:18", + "src": "6466:22:18", "statements": [ { "expression": { "arguments": [], "functionName": { - "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", - "nativeSrc": "15074:77:18", + "name": "panic_error_0x41", + "nativeSrc": "6468:16:18", "nodeType": "YulIdentifier", - "src": "15074:77:18" + "src": "6468:16:18" }, - "nativeSrc": "15074:79:18", + "nativeSrc": "6468:18:18", "nodeType": "YulFunctionCall", - "src": "15074:79:18" + "src": "6468:18:18" }, - "nativeSrc": "15074:79:18", + "nativeSrc": "6468:18:18", "nodeType": "YulExpressionStatement", - "src": "15074:79:18" + "src": "6468:18:18" } ] }, @@ -69228,1785 +68464,2014 @@ { "arguments": [ { - "arguments": [ - { - "name": "offset", - "nativeSrc": "15051:6:18", - "nodeType": "YulIdentifier", - "src": "15051:6:18" - }, - { - "kind": "number", - "nativeSrc": "15059:4:18", - "nodeType": "YulLiteral", - "src": "15059:4:18", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "15047:3:18", - "nodeType": "YulIdentifier", - "src": "15047:3:18" - }, - "nativeSrc": "15047:17:18", - "nodeType": "YulFunctionCall", - "src": "15047:17:18" + "name": "newFreePtr", + "nativeSrc": "6409:10:18", + "nodeType": "YulIdentifier", + "src": "6409:10:18" }, { - "name": "end", - "nativeSrc": "15066:3:18", + "kind": "number", + "nativeSrc": "6421:18:18", + "nodeType": "YulLiteral", + "src": "6421:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "6406:2:18", + "nodeType": "YulIdentifier", + "src": "6406:2:18" + }, + "nativeSrc": "6406:34:18", + "nodeType": "YulFunctionCall", + "src": "6406:34:18" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "6445:10:18", + "nodeType": "YulIdentifier", + "src": "6445:10:18" + }, + { + "name": "memPtr", + "nativeSrc": "6457:6:18", "nodeType": "YulIdentifier", - "src": "15066:3:18" + "src": "6457:6:18" } ], "functionName": { - "name": "slt", - "nativeSrc": "15043:3:18", + "name": "lt", + "nativeSrc": "6442:2:18", "nodeType": "YulIdentifier", - "src": "15043:3:18" + "src": "6442:2:18" }, - "nativeSrc": "15043:27:18", + "nativeSrc": "6442:22:18", "nodeType": "YulFunctionCall", - "src": "15043:27:18" + "src": "6442:22:18" } ], "functionName": { - "name": "iszero", - "nativeSrc": "15036:6:18", + "name": "or", + "nativeSrc": "6403:2:18", "nodeType": "YulIdentifier", - "src": "15036:6:18" + "src": "6403:2:18" }, - "nativeSrc": "15036:35:18", + "nativeSrc": "6403:62:18", "nodeType": "YulFunctionCall", - "src": "15036:35:18" + "src": "6403:62:18" }, - "nativeSrc": "15033:122:18", + "nativeSrc": "6400:88:18", "nodeType": "YulIf", - "src": "15033:122:18" + "src": "6400:88:18" }, { - "nativeSrc": "15164:34:18", - "nodeType": "YulVariableDeclaration", - "src": "15164:34:18", - "value": { + "expression": { "arguments": [ { - "name": "offset", - "nativeSrc": "15191:6:18", + "kind": "number", + "nativeSrc": "6504:2:18", + "nodeType": "YulLiteral", + "src": "6504:2:18", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "6508:10:18", "nodeType": "YulIdentifier", - "src": "15191:6:18" + "src": "6508:10:18" } ], "functionName": { - "name": "calldataload", - "nativeSrc": "15178:12:18", + "name": "mstore", + "nativeSrc": "6497:6:18", "nodeType": "YulIdentifier", - "src": "15178:12:18" + "src": "6497:6:18" }, - "nativeSrc": "15178:20:18", + "nativeSrc": "6497:22:18", "nodeType": "YulFunctionCall", - "src": "15178:20:18" + "src": "6497:22:18" }, - "variables": [ + "nativeSrc": "6497:22:18", + "nodeType": "YulExpressionStatement", + "src": "6497:22:18" + } + ] + }, + "name": "finalize_allocation", + "nativeSrc": "6244:281:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "6273:6:18", + "nodeType": "YulTypedName", + "src": "6273:6:18", + "type": "" + }, + { + "name": "size", + "nativeSrc": "6281:4:18", + "nodeType": "YulTypedName", + "src": "6281:4:18", + "type": "" + } + ], + "src": "6244:281:18" + }, + { + "body": { + "nativeSrc": "6572:88:18", + "nodeType": "YulBlock", + "src": "6572:88:18", + "statements": [ + { + "nativeSrc": "6582:30:18", + "nodeType": "YulAssignment", + "src": "6582:30:18", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nativeSrc": "6592:18:18", + "nodeType": "YulIdentifier", + "src": "6592:18:18" + }, + "nativeSrc": "6592:20:18", + "nodeType": "YulFunctionCall", + "src": "6592:20:18" + }, + "variableNames": [ { - "name": "length", - "nativeSrc": "15168:6:18", - "nodeType": "YulTypedName", - "src": "15168:6:18", - "type": "" + "name": "memPtr", + "nativeSrc": "6582:6:18", + "nodeType": "YulIdentifier", + "src": "6582:6:18" } ] }, { - "nativeSrc": "15207:103:18", - "nodeType": "YulAssignment", - "src": "15207:103:18", - "value": { + "expression": { "arguments": [ { - "arguments": [ - { - "name": "offset", - "nativeSrc": "15283:6:18", - "nodeType": "YulIdentifier", - "src": "15283:6:18" - }, - { - "kind": "number", - "nativeSrc": "15291:4:18", - "nodeType": "YulLiteral", - "src": "15291:4:18", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "15279:3:18", - "nodeType": "YulIdentifier", - "src": "15279:3:18" - }, - "nativeSrc": "15279:17:18", - "nodeType": "YulFunctionCall", - "src": "15279:17:18" - }, - { - "name": "length", - "nativeSrc": "15298:6:18", + "name": "memPtr", + "nativeSrc": "6641:6:18", "nodeType": "YulIdentifier", - "src": "15298:6:18" + "src": "6641:6:18" }, { - "name": "end", - "nativeSrc": "15306:3:18", + "name": "size", + "nativeSrc": "6649:4:18", "nodeType": "YulIdentifier", - "src": "15306:3:18" + "src": "6649:4:18" } ], "functionName": { - "name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr", - "nativeSrc": "15216:62:18", + "name": "finalize_allocation", + "nativeSrc": "6621:19:18", "nodeType": "YulIdentifier", - "src": "15216:62:18" + "src": "6621:19:18" }, - "nativeSrc": "15216:94:18", + "nativeSrc": "6621:33:18", "nodeType": "YulFunctionCall", - "src": "15216:94:18" + "src": "6621:33:18" }, - "variableNames": [ - { - "name": "array", - "nativeSrc": "15207:5:18", - "nodeType": "YulIdentifier", - "src": "15207:5:18" - } - ] + "nativeSrc": "6621:33:18", + "nodeType": "YulExpressionStatement", + "src": "6621:33:18" } ] }, - "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr", - "nativeSrc": "14946:370:18", + "name": "allocate_memory", + "nativeSrc": "6531:129:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", - "nativeSrc": "15001:6:18", - "nodeType": "YulTypedName", - "src": "15001:6:18", - "type": "" - }, - { - "name": "end", - "nativeSrc": "15009:3:18", + "name": "size", + "nativeSrc": "6556:4:18", "nodeType": "YulTypedName", - "src": "15009:3:18", + "src": "6556:4:18", "type": "" } ], "returnVariables": [ { - "name": "array", - "nativeSrc": "15017:5:18", + "name": "memPtr", + "nativeSrc": "6565:6:18", "nodeType": "YulTypedName", - "src": "15017:5:18", + "src": "6565:6:18", "type": "" } ], - "src": "14946:370:18" + "src": "6531:129:18" }, { "body": { - "nativeSrc": "15455:761:18", + "nativeSrc": "6748:229:18", "nodeType": "YulBlock", - "src": "15455:761:18", + "src": "6748:229:18", "statements": [ { "body": { - "nativeSrc": "15501:83:18", + "nativeSrc": "6853:22:18", "nodeType": "YulBlock", - "src": "15501:83:18", + "src": "6853:22:18", "statements": [ { "expression": { "arguments": [], "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "15503:77:18", + "name": "panic_error_0x41", + "nativeSrc": "6855:16:18", "nodeType": "YulIdentifier", - "src": "15503:77:18" + "src": "6855:16:18" }, - "nativeSrc": "15503:79:18", + "nativeSrc": "6855:18:18", "nodeType": "YulFunctionCall", - "src": "15503:79:18" + "src": "6855:18:18" }, - "nativeSrc": "15503:79:18", + "nativeSrc": "6855:18:18", "nodeType": "YulExpressionStatement", - "src": "15503:79:18" + "src": "6855:18:18" } ] }, "condition": { "arguments": [ { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "15476:7:18", - "nodeType": "YulIdentifier", - "src": "15476:7:18" - }, - { - "name": "headStart", - "nativeSrc": "15485:9:18", - "nodeType": "YulIdentifier", - "src": "15485:9:18" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "15472:3:18", - "nodeType": "YulIdentifier", - "src": "15472:3:18" - }, - "nativeSrc": "15472:23:18", - "nodeType": "YulFunctionCall", - "src": "15472:23:18" + "name": "length", + "nativeSrc": "6825:6:18", + "nodeType": "YulIdentifier", + "src": "6825:6:18" }, { "kind": "number", - "nativeSrc": "15497:2:18", + "nativeSrc": "6833:18:18", "nodeType": "YulLiteral", - "src": "15497:2:18", + "src": "6833:18:18", "type": "", - "value": "64" + "value": "0xffffffffffffffff" } ], "functionName": { - "name": "slt", - "nativeSrc": "15468:3:18", + "name": "gt", + "nativeSrc": "6822:2:18", "nodeType": "YulIdentifier", - "src": "15468:3:18" + "src": "6822:2:18" }, - "nativeSrc": "15468:32:18", + "nativeSrc": "6822:30:18", "nodeType": "YulFunctionCall", - "src": "15468:32:18" + "src": "6822:30:18" }, - "nativeSrc": "15465:119:18", + "nativeSrc": "6819:56:18", "nodeType": "YulIf", - "src": "15465:119:18" + "src": "6819:56:18" }, { - "nativeSrc": "15594:302:18", - "nodeType": "YulBlock", - "src": "15594:302:18", - "statements": [ - { - "nativeSrc": "15609:45:18", - "nodeType": "YulVariableDeclaration", - "src": "15609:45:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "15640:9:18", - "nodeType": "YulIdentifier", - "src": "15640:9:18" - }, - { - "kind": "number", - "nativeSrc": "15651:1:18", - "nodeType": "YulLiteral", - "src": "15651:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "15636:3:18", - "nodeType": "YulIdentifier", - "src": "15636:3:18" - }, - "nativeSrc": "15636:17:18", - "nodeType": "YulFunctionCall", - "src": "15636:17:18" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "15623:12:18", - "nodeType": "YulIdentifier", - "src": "15623:12:18" - }, - "nativeSrc": "15623:31:18", - "nodeType": "YulFunctionCall", - "src": "15623:31:18" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "15613:6:18", - "nodeType": "YulTypedName", - "src": "15613:6:18", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "15701:83:18", - "nodeType": "YulBlock", - "src": "15701:83:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "15703:77:18", - "nodeType": "YulIdentifier", - "src": "15703:77:18" - }, - "nativeSrc": "15703:79:18", - "nodeType": "YulFunctionCall", - "src": "15703:79:18" - }, - "nativeSrc": "15703:79:18", - "nodeType": "YulExpressionStatement", - "src": "15703:79:18" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "15673:6:18", - "nodeType": "YulIdentifier", - "src": "15673:6:18" - }, - { - "kind": "number", - "nativeSrc": "15681:18:18", - "nodeType": "YulLiteral", - "src": "15681:18:18", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "15670:2:18", - "nodeType": "YulIdentifier", - "src": "15670:2:18" - }, - "nativeSrc": "15670:30:18", - "nodeType": "YulFunctionCall", - "src": "15670:30:18" + "nativeSrc": "6885:25:18", + "nodeType": "YulAssignment", + "src": "6885:25:18", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "6897:6:18", + "nodeType": "YulIdentifier", + "src": "6897:6:18" }, - "nativeSrc": "15667:117:18", - "nodeType": "YulIf", - "src": "15667:117:18" + { + "kind": "number", + "nativeSrc": "6905:4:18", + "nodeType": "YulLiteral", + "src": "6905:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "6893:3:18", + "nodeType": "YulIdentifier", + "src": "6893:3:18" }, + "nativeSrc": "6893:17:18", + "nodeType": "YulFunctionCall", + "src": "6893:17:18" + }, + "variableNames": [ { - "nativeSrc": "15798:88:18", - "nodeType": "YulAssignment", - "src": "15798:88:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "15858:9:18", - "nodeType": "YulIdentifier", - "src": "15858:9:18" - }, - { - "name": "offset", - "nativeSrc": "15869:6:18", - "nodeType": "YulIdentifier", - "src": "15869:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "15854:3:18", - "nodeType": "YulIdentifier", - "src": "15854:3:18" - }, - "nativeSrc": "15854:22:18", - "nodeType": "YulFunctionCall", - "src": "15854:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "15878:7:18", - "nodeType": "YulIdentifier", - "src": "15878:7:18" - } - ], - "functionName": { - "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr", - "nativeSrc": "15808:45:18", - "nodeType": "YulIdentifier", - "src": "15808:45:18" - }, - "nativeSrc": "15808:78:18", - "nodeType": "YulFunctionCall", - "src": "15808:78:18" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "15798:6:18", - "nodeType": "YulIdentifier", - "src": "15798:6:18" - } - ] + "name": "size", + "nativeSrc": "6885:4:18", + "nodeType": "YulIdentifier", + "src": "6885:4:18" } ] }, { - "nativeSrc": "15906:303:18", - "nodeType": "YulBlock", - "src": "15906:303:18", - "statements": [ - { - "nativeSrc": "15921:46:18", - "nodeType": "YulVariableDeclaration", - "src": "15921:46:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "15952:9:18", - "nodeType": "YulIdentifier", - "src": "15952:9:18" - }, - { - "kind": "number", - "nativeSrc": "15963:2:18", - "nodeType": "YulLiteral", - "src": "15963:2:18", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "15948:3:18", - "nodeType": "YulIdentifier", - "src": "15948:3:18" - }, - "nativeSrc": "15948:18:18", - "nodeType": "YulFunctionCall", - "src": "15948:18:18" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "15935:12:18", - "nodeType": "YulIdentifier", - "src": "15935:12:18" - }, - "nativeSrc": "15935:32:18", - "nodeType": "YulFunctionCall", - "src": "15935:32:18" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "15925:6:18", - "nodeType": "YulTypedName", - "src": "15925:6:18", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "16014:83:18", - "nodeType": "YulBlock", - "src": "16014:83:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "16016:77:18", - "nodeType": "YulIdentifier", - "src": "16016:77:18" - }, - "nativeSrc": "16016:79:18", - "nodeType": "YulFunctionCall", - "src": "16016:79:18" - }, - "nativeSrc": "16016:79:18", - "nodeType": "YulExpressionStatement", - "src": "16016:79:18" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "15986:6:18", - "nodeType": "YulIdentifier", - "src": "15986:6:18" - }, - { - "kind": "number", - "nativeSrc": "15994:18:18", - "nodeType": "YulLiteral", - "src": "15994:18:18", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "15983:2:18", - "nodeType": "YulIdentifier", - "src": "15983:2:18" - }, - "nativeSrc": "15983:30:18", - "nodeType": "YulFunctionCall", - "src": "15983:30:18" + "nativeSrc": "6947:23:18", + "nodeType": "YulAssignment", + "src": "6947:23:18", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "6959:4:18", + "nodeType": "YulIdentifier", + "src": "6959:4:18" }, - "nativeSrc": "15980:117:18", - "nodeType": "YulIf", - "src": "15980:117:18" + { + "kind": "number", + "nativeSrc": "6965:4:18", + "nodeType": "YulLiteral", + "src": "6965:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6955:3:18", + "nodeType": "YulIdentifier", + "src": "6955:3:18" }, + "nativeSrc": "6955:15:18", + "nodeType": "YulFunctionCall", + "src": "6955:15:18" + }, + "variableNames": [ { - "nativeSrc": "16111:88:18", - "nodeType": "YulAssignment", - "src": "16111:88:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "16171:9:18", - "nodeType": "YulIdentifier", - "src": "16171:9:18" - }, - { - "name": "offset", - "nativeSrc": "16182:6:18", - "nodeType": "YulIdentifier", - "src": "16182:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "16167:3:18", - "nodeType": "YulIdentifier", - "src": "16167:3:18" - }, - "nativeSrc": "16167:22:18", - "nodeType": "YulFunctionCall", - "src": "16167:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "16191:7:18", - "nodeType": "YulIdentifier", - "src": "16191:7:18" - } - ], - "functionName": { - "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "16121:45:18", - "nodeType": "YulIdentifier", - "src": "16121:45:18" - }, - "nativeSrc": "16121:78:18", - "nodeType": "YulFunctionCall", - "src": "16121:78:18" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "16111:6:18", - "nodeType": "YulIdentifier", - "src": "16111:6:18" - } - ] + "name": "size", + "nativeSrc": "6947:4:18", + "nodeType": "YulIdentifier", + "src": "6947:4:18" } ] } ] }, - "name": "abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "15322:894:18", + "name": "array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "6666:311:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nativeSrc": "15417:9:18", - "nodeType": "YulTypedName", - "src": "15417:9:18", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "15428:7:18", + "name": "length", + "nativeSrc": "6732:6:18", "nodeType": "YulTypedName", - "src": "15428:7:18", + "src": "6732:6:18", "type": "" } ], "returnVariables": [ { - "name": "value0", - "nativeSrc": "15440:6:18", - "nodeType": "YulTypedName", - "src": "15440:6:18", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "15448:6:18", + "name": "size", + "nativeSrc": "6743:4:18", "nodeType": "YulTypedName", - "src": "15448:6:18", + "src": "6743:4:18", "type": "" } ], - "src": "15322:894:18" + "src": "6666:311:18" + }, + { + "body": { + "nativeSrc": "7072:28:18", + "nodeType": "YulBlock", + "src": "7072:28:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7089:1:18", + "nodeType": "YulLiteral", + "src": "7089:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "7092:1:18", + "nodeType": "YulLiteral", + "src": "7092:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "7082:6:18", + "nodeType": "YulIdentifier", + "src": "7082:6:18" + }, + "nativeSrc": "7082:12:18", + "nodeType": "YulFunctionCall", + "src": "7082:12:18" + }, + "nativeSrc": "7082:12:18", + "nodeType": "YulExpressionStatement", + "src": "7082:12:18" + } + ] + }, + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nativeSrc": "6983:117:18", + "nodeType": "YulFunctionDefinition", + "src": "6983:117:18" }, { "body": { - "nativeSrc": "16296:40:18", + "nativeSrc": "7225:608:18", "nodeType": "YulBlock", - "src": "16296:40:18", + "src": "7225:608:18", "statements": [ { - "nativeSrc": "16307:22:18", + "nativeSrc": "7235:90:18", "nodeType": "YulAssignment", - "src": "16307:22:18", + "src": "7235:90:18", "value": { "arguments": [ { - "name": "value", - "nativeSrc": "16323:5:18", - "nodeType": "YulIdentifier", - "src": "16323:5:18" + "arguments": [ + { + "name": "length", + "nativeSrc": "7317:6:18", + "nodeType": "YulIdentifier", + "src": "7317:6:18" + } + ], + "functionName": { + "name": "array_allocation_size_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "7260:56:18", + "nodeType": "YulIdentifier", + "src": "7260:56:18" + }, + "nativeSrc": "7260:64:18", + "nodeType": "YulFunctionCall", + "src": "7260:64:18" } ], "functionName": { - "name": "mload", - "nativeSrc": "16317:5:18", + "name": "allocate_memory", + "nativeSrc": "7244:15:18", "nodeType": "YulIdentifier", - "src": "16317:5:18" + "src": "7244:15:18" }, - "nativeSrc": "16317:12:18", + "nativeSrc": "7244:81:18", "nodeType": "YulFunctionCall", - "src": "16317:12:18" + "src": "7244:81:18" }, "variableNames": [ { - "name": "length", - "nativeSrc": "16307:6:18", + "name": "array", + "nativeSrc": "7235:5:18", "nodeType": "YulIdentifier", - "src": "16307:6:18" + "src": "7235:5:18" } ] - } - ] - }, - "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "16222:114:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "16279:5:18", - "nodeType": "YulTypedName", - "src": "16279:5:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nativeSrc": "16289:6:18", - "nodeType": "YulTypedName", - "src": "16289:6:18", - "type": "" - } - ], - "src": "16222:114:18" - }, - { - "body": { - "nativeSrc": "16453:73:18", - "nodeType": "YulBlock", - "src": "16453:73:18", - "statements": [ + }, + { + "nativeSrc": "7334:16:18", + "nodeType": "YulVariableDeclaration", + "src": "7334:16:18", + "value": { + "name": "array", + "nativeSrc": "7345:5:18", + "nodeType": "YulIdentifier", + "src": "7345:5:18" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "7338:3:18", + "nodeType": "YulTypedName", + "src": "7338:3:18", + "type": "" + } + ] + }, { "expression": { "arguments": [ { - "name": "pos", - "nativeSrc": "16470:3:18", + "name": "array", + "nativeSrc": "7367:5:18", "nodeType": "YulIdentifier", - "src": "16470:3:18" + "src": "7367:5:18" }, { "name": "length", - "nativeSrc": "16475:6:18", + "nativeSrc": "7374:6:18", "nodeType": "YulIdentifier", - "src": "16475:6:18" + "src": "7374:6:18" } ], "functionName": { "name": "mstore", - "nativeSrc": "16463:6:18", + "nativeSrc": "7360:6:18", "nodeType": "YulIdentifier", - "src": "16463:6:18" + "src": "7360:6:18" }, - "nativeSrc": "16463:19:18", + "nativeSrc": "7360:21:18", "nodeType": "YulFunctionCall", - "src": "16463:19:18" + "src": "7360:21:18" }, - "nativeSrc": "16463:19:18", + "nativeSrc": "7360:21:18", "nodeType": "YulExpressionStatement", - "src": "16463:19:18" + "src": "7360:21:18" }, { - "nativeSrc": "16491:29:18", + "nativeSrc": "7390:23:18", "nodeType": "YulAssignment", - "src": "16491:29:18", + "src": "7390:23:18", "value": { "arguments": [ { - "name": "pos", - "nativeSrc": "16510:3:18", + "name": "array", + "nativeSrc": "7401:5:18", "nodeType": "YulIdentifier", - "src": "16510:3:18" + "src": "7401:5:18" }, { "kind": "number", - "nativeSrc": "16515:4:18", + "nativeSrc": "7408:4:18", "nodeType": "YulLiteral", - "src": "16515:4:18", + "src": "7408:4:18", "type": "", "value": "0x20" } ], "functionName": { "name": "add", - "nativeSrc": "16506:3:18", + "nativeSrc": "7397:3:18", "nodeType": "YulIdentifier", - "src": "16506:3:18" + "src": "7397:3:18" }, - "nativeSrc": "16506:14:18", + "nativeSrc": "7397:16:18", "nodeType": "YulFunctionCall", - "src": "16506:14:18" + "src": "7397:16:18" }, "variableNames": [ { - "name": "updated_pos", - "nativeSrc": "16491:11:18", + "name": "dst", + "nativeSrc": "7390:3:18", + "nodeType": "YulIdentifier", + "src": "7390:3:18" + } + ] + }, + { + "nativeSrc": "7423:44:18", + "nodeType": "YulVariableDeclaration", + "src": "7423:44:18", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "7441:6:18", + "nodeType": "YulIdentifier", + "src": "7441:6:18" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "7453:6:18", + "nodeType": "YulIdentifier", + "src": "7453:6:18" + }, + { + "kind": "number", + "nativeSrc": "7461:4:18", + "nodeType": "YulLiteral", + "src": "7461:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "7449:3:18", + "nodeType": "YulIdentifier", + "src": "7449:3:18" + }, + "nativeSrc": "7449:17:18", + "nodeType": "YulFunctionCall", + "src": "7449:17:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7437:3:18", "nodeType": "YulIdentifier", - "src": "16491:11:18" + "src": "7437:3:18" + }, + "nativeSrc": "7437:30:18", + "nodeType": "YulFunctionCall", + "src": "7437:30:18" + }, + "variables": [ + { + "name": "srcEnd", + "nativeSrc": "7427:6:18", + "nodeType": "YulTypedName", + "src": "7427:6:18", + "type": "" } ] + }, + { + "body": { + "nativeSrc": "7495:103:18", + "nodeType": "YulBlock", + "src": "7495:103:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nativeSrc": "7509:77:18", + "nodeType": "YulIdentifier", + "src": "7509:77:18" + }, + "nativeSrc": "7509:79:18", + "nodeType": "YulFunctionCall", + "src": "7509:79:18" + }, + "nativeSrc": "7509:79:18", + "nodeType": "YulExpressionStatement", + "src": "7509:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "srcEnd", + "nativeSrc": "7482:6:18", + "nodeType": "YulIdentifier", + "src": "7482:6:18" + }, + { + "name": "end", + "nativeSrc": "7490:3:18", + "nodeType": "YulIdentifier", + "src": "7490:3:18" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7479:2:18", + "nodeType": "YulIdentifier", + "src": "7479:2:18" + }, + "nativeSrc": "7479:15:18", + "nodeType": "YulFunctionCall", + "src": "7479:15:18" + }, + "nativeSrc": "7476:122:18", + "nodeType": "YulIf", + "src": "7476:122:18" + }, + { + "body": { + "nativeSrc": "7683:144:18", + "nodeType": "YulBlock", + "src": "7683:144:18", + "statements": [ + { + "nativeSrc": "7698:21:18", + "nodeType": "YulVariableDeclaration", + "src": "7698:21:18", + "value": { + "name": "src", + "nativeSrc": "7716:3:18", + "nodeType": "YulIdentifier", + "src": "7716:3:18" + }, + "variables": [ + { + "name": "elementPos", + "nativeSrc": "7702:10:18", + "nodeType": "YulTypedName", + "src": "7702:10:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "7740:3:18", + "nodeType": "YulIdentifier", + "src": "7740:3:18" + }, + { + "arguments": [ + { + "name": "elementPos", + "nativeSrc": "7766:10:18", + "nodeType": "YulIdentifier", + "src": "7766:10:18" + }, + { + "name": "end", + "nativeSrc": "7778:3:18", + "nodeType": "YulIdentifier", + "src": "7778:3:18" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "7745:20:18", + "nodeType": "YulIdentifier", + "src": "7745:20:18" + }, + "nativeSrc": "7745:37:18", + "nodeType": "YulFunctionCall", + "src": "7745:37:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7733:6:18", + "nodeType": "YulIdentifier", + "src": "7733:6:18" + }, + "nativeSrc": "7733:50:18", + "nodeType": "YulFunctionCall", + "src": "7733:50:18" + }, + "nativeSrc": "7733:50:18", + "nodeType": "YulExpressionStatement", + "src": "7733:50:18" + }, + { + "nativeSrc": "7796:21:18", + "nodeType": "YulAssignment", + "src": "7796:21:18", + "value": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "7807:3:18", + "nodeType": "YulIdentifier", + "src": "7807:3:18" + }, + { + "kind": "number", + "nativeSrc": "7812:4:18", + "nodeType": "YulLiteral", + "src": "7812:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7803:3:18", + "nodeType": "YulIdentifier", + "src": "7803:3:18" + }, + "nativeSrc": "7803:14:18", + "nodeType": "YulFunctionCall", + "src": "7803:14:18" + }, + "variableNames": [ + { + "name": "dst", + "nativeSrc": "7796:3:18", + "nodeType": "YulIdentifier", + "src": "7796:3:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "src", + "nativeSrc": "7636:3:18", + "nodeType": "YulIdentifier", + "src": "7636:3:18" + }, + { + "name": "srcEnd", + "nativeSrc": "7641:6:18", + "nodeType": "YulIdentifier", + "src": "7641:6:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "7633:2:18", + "nodeType": "YulIdentifier", + "src": "7633:2:18" + }, + "nativeSrc": "7633:15:18", + "nodeType": "YulFunctionCall", + "src": "7633:15:18" + }, + "nativeSrc": "7607:220:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "7649:25:18", + "nodeType": "YulBlock", + "src": "7649:25:18", + "statements": [ + { + "nativeSrc": "7651:21:18", + "nodeType": "YulAssignment", + "src": "7651:21:18", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "7662:3:18", + "nodeType": "YulIdentifier", + "src": "7662:3:18" + }, + { + "kind": "number", + "nativeSrc": "7667:4:18", + "nodeType": "YulLiteral", + "src": "7667:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7658:3:18", + "nodeType": "YulIdentifier", + "src": "7658:3:18" + }, + "nativeSrc": "7658:14:18", + "nodeType": "YulFunctionCall", + "src": "7658:14:18" + }, + "variableNames": [ + { + "name": "src", + "nativeSrc": "7651:3:18", + "nodeType": "YulIdentifier", + "src": "7651:3:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "7611:21:18", + "nodeType": "YulBlock", + "src": "7611:21:18", + "statements": [ + { + "nativeSrc": "7613:17:18", + "nodeType": "YulVariableDeclaration", + "src": "7613:17:18", + "value": { + "name": "offset", + "nativeSrc": "7624:6:18", + "nodeType": "YulIdentifier", + "src": "7624:6:18" + }, + "variables": [ + { + "name": "src", + "nativeSrc": "7617:3:18", + "nodeType": "YulTypedName", + "src": "7617:3:18", + "type": "" + } + ] + } + ] + }, + "src": "7607:220:18" } ] }, - "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", - "nativeSrc": "16342:184:18", + "name": "abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "7123:710:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", - "nativeSrc": "16425:3:18", + "name": "offset", + "nativeSrc": "7195:6:18", "nodeType": "YulTypedName", - "src": "16425:3:18", + "src": "7195:6:18", "type": "" }, { "name": "length", - "nativeSrc": "16430:6:18", + "nativeSrc": "7203:6:18", + "nodeType": "YulTypedName", + "src": "7203:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "7211:3:18", "nodeType": "YulTypedName", - "src": "16430:6:18", + "src": "7211:3:18", "type": "" } ], "returnVariables": [ { - "name": "updated_pos", - "nativeSrc": "16441:11:18", + "name": "array", + "nativeSrc": "7219:5:18", "nodeType": "YulTypedName", - "src": "16441:11:18", + "src": "7219:5:18", "type": "" } ], - "src": "16342:184:18" + "src": "7123:710:18" }, { "body": { - "nativeSrc": "16604:60:18", + "nativeSrc": "7933:293:18", "nodeType": "YulBlock", - "src": "16604:60:18", + "src": "7933:293:18", "statements": [ { - "nativeSrc": "16614:11:18", - "nodeType": "YulAssignment", - "src": "16614:11:18", + "body": { + "nativeSrc": "7982:83:18", + "nodeType": "YulBlock", + "src": "7982:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "7984:77:18", + "nodeType": "YulIdentifier", + "src": "7984:77:18" + }, + "nativeSrc": "7984:79:18", + "nodeType": "YulFunctionCall", + "src": "7984:79:18" + }, + "nativeSrc": "7984:79:18", + "nodeType": "YulExpressionStatement", + "src": "7984:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "7961:6:18", + "nodeType": "YulIdentifier", + "src": "7961:6:18" + }, + { + "kind": "number", + "nativeSrc": "7969:4:18", + "nodeType": "YulLiteral", + "src": "7969:4:18", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7957:3:18", + "nodeType": "YulIdentifier", + "src": "7957:3:18" + }, + "nativeSrc": "7957:17:18", + "nodeType": "YulFunctionCall", + "src": "7957:17:18" + }, + { + "name": "end", + "nativeSrc": "7976:3:18", + "nodeType": "YulIdentifier", + "src": "7976:3:18" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "7953:3:18", + "nodeType": "YulIdentifier", + "src": "7953:3:18" + }, + "nativeSrc": "7953:27:18", + "nodeType": "YulFunctionCall", + "src": "7953:27:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "7946:6:18", + "nodeType": "YulIdentifier", + "src": "7946:6:18" + }, + "nativeSrc": "7946:35:18", + "nodeType": "YulFunctionCall", + "src": "7946:35:18" + }, + "nativeSrc": "7943:122:18", + "nodeType": "YulIf", + "src": "7943:122:18" + }, + { + "nativeSrc": "8074:34:18", + "nodeType": "YulVariableDeclaration", + "src": "8074:34:18", "value": { - "name": "ptr", - "nativeSrc": "16622:3:18", - "nodeType": "YulIdentifier", - "src": "16622:3:18" + "arguments": [ + { + "name": "offset", + "nativeSrc": "8101:6:18", + "nodeType": "YulIdentifier", + "src": "8101:6:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8088:12:18", + "nodeType": "YulIdentifier", + "src": "8088:12:18" + }, + "nativeSrc": "8088:20:18", + "nodeType": "YulFunctionCall", + "src": "8088:20:18" }, - "variableNames": [ + "variables": [ { - "name": "data", - "nativeSrc": "16614:4:18", - "nodeType": "YulIdentifier", - "src": "16614:4:18" + "name": "length", + "nativeSrc": "8078:6:18", + "nodeType": "YulTypedName", + "src": "8078:6:18", + "type": "" } ] }, { - "nativeSrc": "16635:22:18", + "nativeSrc": "8117:103:18", "nodeType": "YulAssignment", - "src": "16635:22:18", + "src": "8117:103:18", "value": { "arguments": [ { - "name": "ptr", - "nativeSrc": "16647:3:18", + "arguments": [ + { + "name": "offset", + "nativeSrc": "8193:6:18", + "nodeType": "YulIdentifier", + "src": "8193:6:18" + }, + { + "kind": "number", + "nativeSrc": "8201:4:18", + "nodeType": "YulLiteral", + "src": "8201:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8189:3:18", + "nodeType": "YulIdentifier", + "src": "8189:3:18" + }, + "nativeSrc": "8189:17:18", + "nodeType": "YulFunctionCall", + "src": "8189:17:18" + }, + { + "name": "length", + "nativeSrc": "8208:6:18", "nodeType": "YulIdentifier", - "src": "16647:3:18" + "src": "8208:6:18" }, { - "kind": "number", - "nativeSrc": "16652:4:18", - "nodeType": "YulLiteral", - "src": "16652:4:18", - "type": "", - "value": "0x20" + "name": "end", + "nativeSrc": "8216:3:18", + "nodeType": "YulIdentifier", + "src": "8216:3:18" } ], "functionName": { - "name": "add", - "nativeSrc": "16643:3:18", + "name": "abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "8126:62:18", "nodeType": "YulIdentifier", - "src": "16643:3:18" + "src": "8126:62:18" }, - "nativeSrc": "16643:14:18", + "nativeSrc": "8126:94:18", "nodeType": "YulFunctionCall", - "src": "16643:14:18" + "src": "8126:94:18" }, "variableNames": [ { - "name": "data", - "nativeSrc": "16635:4:18", + "name": "array", + "nativeSrc": "8117:5:18", "nodeType": "YulIdentifier", - "src": "16635:4:18" + "src": "8117:5:18" } ] } ] }, - "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "16532:132:18", + "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "7856:370:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "ptr", - "nativeSrc": "16591:3:18", + "name": "offset", + "nativeSrc": "7911:6:18", + "nodeType": "YulTypedName", + "src": "7911:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "7919:3:18", "nodeType": "YulTypedName", - "src": "16591:3:18", + "src": "7919:3:18", "type": "" } ], "returnVariables": [ { - "name": "data", - "nativeSrc": "16599:4:18", + "name": "array", + "nativeSrc": "7927:5:18", "nodeType": "YulTypedName", - "src": "16599:4:18", + "src": "7927:5:18", "type": "" } ], - "src": "16532:132:18" + "src": "7856:370:18" }, { "body": { - "nativeSrc": "16725:53:18", + "nativeSrc": "8321:28:18", "nodeType": "YulBlock", - "src": "16725:53:18", + "src": "8321:28:18", "statements": [ { "expression": { "arguments": [ { - "name": "pos", - "nativeSrc": "16742:3:18", - "nodeType": "YulIdentifier", - "src": "16742:3:18" + "kind": "number", + "nativeSrc": "8338:1:18", + "nodeType": "YulLiteral", + "src": "8338:1:18", + "type": "", + "value": "0" }, { - "arguments": [ - { - "name": "value", - "nativeSrc": "16765:5:18", - "nodeType": "YulIdentifier", - "src": "16765:5:18" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "16747:17:18", - "nodeType": "YulIdentifier", - "src": "16747:17:18" - }, - "nativeSrc": "16747:24:18", - "nodeType": "YulFunctionCall", - "src": "16747:24:18" + "kind": "number", + "nativeSrc": "8341:1:18", + "nodeType": "YulLiteral", + "src": "8341:1:18", + "type": "", + "value": "0" } ], "functionName": { - "name": "mstore", - "nativeSrc": "16735:6:18", + "name": "revert", + "nativeSrc": "8331:6:18", "nodeType": "YulIdentifier", - "src": "16735:6:18" + "src": "8331:6:18" }, - "nativeSrc": "16735:37:18", + "nativeSrc": "8331:12:18", "nodeType": "YulFunctionCall", - "src": "16735:37:18" + "src": "8331:12:18" }, - "nativeSrc": "16735:37:18", + "nativeSrc": "8331:12:18", "nodeType": "YulExpressionStatement", - "src": "16735:37:18" + "src": "8331:12:18" } ] }, - "name": "abi_encode_t_uint256_to_t_uint256", - "nativeSrc": "16670:108:18", + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "8232:117:18", "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "16713:5:18", - "nodeType": "YulTypedName", - "src": "16713:5:18", - "type": "" - }, - { - "name": "pos", - "nativeSrc": "16720:3:18", - "nodeType": "YulTypedName", - "src": "16720:3:18", - "type": "" - } - ], - "src": "16670:108:18" + "src": "8232:117:18" }, { "body": { - "nativeSrc": "16864:99:18", + "nativeSrc": "8421:241:18", "nodeType": "YulBlock", - "src": "16864:99:18", + "src": "8421:241:18", "statements": [ { - "expression": { + "body": { + "nativeSrc": "8526:22:18", + "nodeType": "YulBlock", + "src": "8526:22:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "8528:16:18", + "nodeType": "YulIdentifier", + "src": "8528:16:18" + }, + "nativeSrc": "8528:18:18", + "nodeType": "YulFunctionCall", + "src": "8528:18:18" + }, + "nativeSrc": "8528:18:18", + "nodeType": "YulExpressionStatement", + "src": "8528:18:18" + } + ] + }, + "condition": { "arguments": [ { - "name": "value0", - "nativeSrc": "16908:6:18", + "name": "length", + "nativeSrc": "8498:6:18", "nodeType": "YulIdentifier", - "src": "16908:6:18" + "src": "8498:6:18" }, { - "name": "pos", - "nativeSrc": "16916:3:18", + "kind": "number", + "nativeSrc": "8506:18:18", + "nodeType": "YulLiteral", + "src": "8506:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "8495:2:18", + "nodeType": "YulIdentifier", + "src": "8495:2:18" + }, + "nativeSrc": "8495:30:18", + "nodeType": "YulFunctionCall", + "src": "8495:30:18" + }, + "nativeSrc": "8492:56:18", + "nodeType": "YulIf", + "src": "8492:56:18" + }, + { + "nativeSrc": "8558:37:18", + "nodeType": "YulAssignment", + "src": "8558:37:18", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "8588:6:18", "nodeType": "YulIdentifier", - "src": "16916:3:18" + "src": "8588:6:18" } ], "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256", - "nativeSrc": "16874:33:18", + "name": "round_up_to_mul_of_32", + "nativeSrc": "8566:21:18", "nodeType": "YulIdentifier", - "src": "16874:33:18" + "src": "8566:21:18" }, - "nativeSrc": "16874:46:18", + "nativeSrc": "8566:29:18", "nodeType": "YulFunctionCall", - "src": "16874:46:18" + "src": "8566:29:18" }, - "nativeSrc": "16874:46:18", - "nodeType": "YulExpressionStatement", - "src": "16874:46:18" + "variableNames": [ + { + "name": "size", + "nativeSrc": "8558:4:18", + "nodeType": "YulIdentifier", + "src": "8558:4:18" + } + ] }, { - "nativeSrc": "16929:28:18", + "nativeSrc": "8632:23:18", "nodeType": "YulAssignment", - "src": "16929:28:18", + "src": "8632:23:18", "value": { "arguments": [ { - "name": "pos", - "nativeSrc": "16947:3:18", + "name": "size", + "nativeSrc": "8644:4:18", "nodeType": "YulIdentifier", - "src": "16947:3:18" + "src": "8644:4:18" }, { "kind": "number", - "nativeSrc": "16952:4:18", + "nativeSrc": "8650:4:18", "nodeType": "YulLiteral", - "src": "16952:4:18", + "src": "8650:4:18", "type": "", "value": "0x20" } ], "functionName": { "name": "add", - "nativeSrc": "16943:3:18", + "nativeSrc": "8640:3:18", "nodeType": "YulIdentifier", - "src": "16943:3:18" + "src": "8640:3:18" }, - "nativeSrc": "16943:14:18", + "nativeSrc": "8640:15:18", "nodeType": "YulFunctionCall", - "src": "16943:14:18" + "src": "8640:15:18" }, "variableNames": [ { - "name": "updatedPos", - "nativeSrc": "16929:10:18", + "name": "size", + "nativeSrc": "8632:4:18", "nodeType": "YulIdentifier", - "src": "16929:10:18" + "src": "8632:4:18" } ] } ] }, - "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", - "nativeSrc": "16784:179:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value0", - "nativeSrc": "16837:6:18", - "nodeType": "YulTypedName", - "src": "16837:6:18", - "type": "" - }, + "name": "array_allocation_size_t_bytes_memory_ptr", + "nativeSrc": "8355:307:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ { - "name": "pos", - "nativeSrc": "16845:3:18", + "name": "length", + "nativeSrc": "8405:6:18", "nodeType": "YulTypedName", - "src": "16845:3:18", + "src": "8405:6:18", "type": "" } ], "returnVariables": [ { - "name": "updatedPos", - "nativeSrc": "16853:10:18", + "name": "size", + "nativeSrc": "8416:4:18", "nodeType": "YulTypedName", - "src": "16853:10:18", + "src": "8416:4:18", "type": "" } ], - "src": "16784:179:18" + "src": "8355:307:18" }, { "body": { - "nativeSrc": "17044:38:18", + "nativeSrc": "8732:84:18", "nodeType": "YulBlock", - "src": "17044:38:18", + "src": "8732:84:18", "statements": [ { - "nativeSrc": "17054:22:18", - "nodeType": "YulAssignment", - "src": "17054:22:18", - "value": { + "expression": { "arguments": [ { - "name": "ptr", - "nativeSrc": "17066:3:18", + "name": "dst", + "nativeSrc": "8756:3:18", + "nodeType": "YulIdentifier", + "src": "8756:3:18" + }, + { + "name": "src", + "nativeSrc": "8761:3:18", "nodeType": "YulIdentifier", - "src": "17066:3:18" + "src": "8761:3:18" + }, + { + "name": "length", + "nativeSrc": "8766:6:18", + "nodeType": "YulIdentifier", + "src": "8766:6:18" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "8743:12:18", + "nodeType": "YulIdentifier", + "src": "8743:12:18" + }, + "nativeSrc": "8743:30:18", + "nodeType": "YulFunctionCall", + "src": "8743:30:18" + }, + "nativeSrc": "8743:30:18", + "nodeType": "YulExpressionStatement", + "src": "8743:30:18" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "8793:3:18", + "nodeType": "YulIdentifier", + "src": "8793:3:18" + }, + { + "name": "length", + "nativeSrc": "8798:6:18", + "nodeType": "YulIdentifier", + "src": "8798:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8789:3:18", + "nodeType": "YulIdentifier", + "src": "8789:3:18" + }, + "nativeSrc": "8789:16:18", + "nodeType": "YulFunctionCall", + "src": "8789:16:18" }, { "kind": "number", - "nativeSrc": "17071:4:18", + "nativeSrc": "8807:1:18", "nodeType": "YulLiteral", - "src": "17071:4:18", + "src": "8807:1:18", "type": "", - "value": "0x20" + "value": "0" } ], "functionName": { - "name": "add", - "nativeSrc": "17062:3:18", + "name": "mstore", + "nativeSrc": "8782:6:18", "nodeType": "YulIdentifier", - "src": "17062:3:18" + "src": "8782:6:18" }, - "nativeSrc": "17062:14:18", + "nativeSrc": "8782:27:18", "nodeType": "YulFunctionCall", - "src": "17062:14:18" + "src": "8782:27:18" }, - "variableNames": [ - { - "name": "next", - "nativeSrc": "17054:4:18", - "nodeType": "YulIdentifier", - "src": "17054:4:18" - } - ] + "nativeSrc": "8782:27:18", + "nodeType": "YulExpressionStatement", + "src": "8782:27:18" } ] }, - "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "16969:113:18", + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "8668:148:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "ptr", - "nativeSrc": "17031:3:18", + "name": "src", + "nativeSrc": "8714:3:18", "nodeType": "YulTypedName", - "src": "17031:3:18", + "src": "8714:3:18", "type": "" - } - ], - "returnVariables": [ + }, { - "name": "next", - "nativeSrc": "17039:4:18", + "name": "dst", + "nativeSrc": "8719:3:18", + "nodeType": "YulTypedName", + "src": "8719:3:18", + "type": "" + }, + { + "name": "length", + "nativeSrc": "8724:6:18", "nodeType": "YulTypedName", - "src": "17039:4:18", + "src": "8724:6:18", "type": "" } ], - "src": "16969:113:18" + "src": "8668:148:18" }, { "body": { - "nativeSrc": "17242:608:18", + "nativeSrc": "8905:340:18", "nodeType": "YulBlock", - "src": "17242:608:18", + "src": "8905:340:18", "statements": [ { - "nativeSrc": "17252:68:18", - "nodeType": "YulVariableDeclaration", - "src": "17252:68:18", + "nativeSrc": "8915:74:18", + "nodeType": "YulAssignment", + "src": "8915:74:18", "value": { "arguments": [ { - "name": "value", - "nativeSrc": "17314:5:18", - "nodeType": "YulIdentifier", - "src": "17314:5:18" + "arguments": [ + { + "name": "length", + "nativeSrc": "8981:6:18", + "nodeType": "YulIdentifier", + "src": "8981:6:18" + } + ], + "functionName": { + "name": "array_allocation_size_t_bytes_memory_ptr", + "nativeSrc": "8940:40:18", + "nodeType": "YulIdentifier", + "src": "8940:40:18" + }, + "nativeSrc": "8940:48:18", + "nodeType": "YulFunctionCall", + "src": "8940:48:18" } ], "functionName": { - "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "17266:47:18", + "name": "allocate_memory", + "nativeSrc": "8924:15:18", "nodeType": "YulIdentifier", - "src": "17266:47:18" + "src": "8924:15:18" }, - "nativeSrc": "17266:54:18", + "nativeSrc": "8924:65:18", "nodeType": "YulFunctionCall", - "src": "17266:54:18" + "src": "8924:65:18" }, - "variables": [ + "variableNames": [ { - "name": "length", - "nativeSrc": "17256:6:18", - "nodeType": "YulTypedName", - "src": "17256:6:18", - "type": "" + "name": "array", + "nativeSrc": "8915:5:18", + "nodeType": "YulIdentifier", + "src": "8915:5:18" } ] }, { - "nativeSrc": "17329:93:18", - "nodeType": "YulAssignment", - "src": "17329:93:18", - "value": { + "expression": { "arguments": [ { - "name": "pos", - "nativeSrc": "17410:3:18", + "name": "array", + "nativeSrc": "9005:5:18", "nodeType": "YulIdentifier", - "src": "17410:3:18" + "src": "9005:5:18" }, { "name": "length", - "nativeSrc": "17415:6:18", + "nativeSrc": "9012:6:18", "nodeType": "YulIdentifier", - "src": "17415:6:18" + "src": "9012:6:18" } ], "functionName": { - "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", - "nativeSrc": "17336:73:18", + "name": "mstore", + "nativeSrc": "8998:6:18", "nodeType": "YulIdentifier", - "src": "17336:73:18" + "src": "8998:6:18" }, - "nativeSrc": "17336:86:18", + "nativeSrc": "8998:21:18", "nodeType": "YulFunctionCall", - "src": "17336:86:18" + "src": "8998:21:18" }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "17329:3:18", - "nodeType": "YulIdentifier", - "src": "17329:3:18" - } - ] + "nativeSrc": "8998:21:18", + "nodeType": "YulExpressionStatement", + "src": "8998:21:18" }, { - "nativeSrc": "17431:71:18", + "nativeSrc": "9028:27:18", "nodeType": "YulVariableDeclaration", - "src": "17431:71:18", + "src": "9028:27:18", "value": { "arguments": [ { - "name": "value", - "nativeSrc": "17496:5:18", + "name": "array", + "nativeSrc": "9043:5:18", "nodeType": "YulIdentifier", - "src": "17496:5:18" + "src": "9043:5:18" + }, + { + "kind": "number", + "nativeSrc": "9050:4:18", + "nodeType": "YulLiteral", + "src": "9050:4:18", + "type": "", + "value": "0x20" } ], "functionName": { - "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "17446:49:18", + "name": "add", + "nativeSrc": "9039:3:18", "nodeType": "YulIdentifier", - "src": "17446:49:18" + "src": "9039:3:18" }, - "nativeSrc": "17446:56:18", + "nativeSrc": "9039:16:18", "nodeType": "YulFunctionCall", - "src": "17446:56:18" - }, - "variables": [ - { - "name": "baseRef", - "nativeSrc": "17435:7:18", - "nodeType": "YulTypedName", - "src": "17435:7:18", - "type": "" - } - ] - }, - { - "nativeSrc": "17511:21:18", - "nodeType": "YulVariableDeclaration", - "src": "17511:21:18", - "value": { - "name": "baseRef", - "nativeSrc": "17525:7:18", - "nodeType": "YulIdentifier", - "src": "17525:7:18" + "src": "9039:16:18" }, "variables": [ { - "name": "srcPtr", - "nativeSrc": "17515:6:18", + "name": "dst", + "nativeSrc": "9032:3:18", "nodeType": "YulTypedName", - "src": "17515:6:18", + "src": "9032:3:18", "type": "" } ] }, { "body": { - "nativeSrc": "17601:224:18", + "nativeSrc": "9093:83:18", "nodeType": "YulBlock", - "src": "17601:224:18", + "src": "9093:83:18", "statements": [ { - "nativeSrc": "17615:34:18", - "nodeType": "YulVariableDeclaration", - "src": "17615:34:18", - "value": { - "arguments": [ - { - "name": "srcPtr", - "nativeSrc": "17642:6:18", - "nodeType": "YulIdentifier", - "src": "17642:6:18" - } - ], + "expression": { + "arguments": [], "functionName": { - "name": "mload", - "nativeSrc": "17636:5:18", + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "9095:77:18", "nodeType": "YulIdentifier", - "src": "17636:5:18" + "src": "9095:77:18" }, - "nativeSrc": "17636:13:18", + "nativeSrc": "9095:79:18", "nodeType": "YulFunctionCall", - "src": "17636:13:18" + "src": "9095:79:18" }, - "variables": [ - { - "name": "elementValue0", - "nativeSrc": "17619:13:18", - "nodeType": "YulTypedName", - "src": "17619:13:18", - "type": "" - } - ] - }, + "nativeSrc": "9095:79:18", + "nodeType": "YulExpressionStatement", + "src": "9095:79:18" + } + ] + }, + "condition": { + "arguments": [ { - "nativeSrc": "17662:70:18", - "nodeType": "YulAssignment", - "src": "17662:70:18", - "value": { - "arguments": [ - { - "name": "elementValue0", - "nativeSrc": "17713:13:18", - "nodeType": "YulIdentifier", - "src": "17713:13:18" - }, - { - "name": "pos", - "nativeSrc": "17728:3:18", - "nodeType": "YulIdentifier", - "src": "17728:3:18" - } - ], - "functionName": { - "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", - "nativeSrc": "17669:43:18", + "arguments": [ + { + "name": "src", + "nativeSrc": "9074:3:18", "nodeType": "YulIdentifier", - "src": "17669:43:18" + "src": "9074:3:18" }, - "nativeSrc": "17669:63:18", - "nodeType": "YulFunctionCall", - "src": "17669:63:18" - }, - "variableNames": [ { - "name": "pos", - "nativeSrc": "17662:3:18", + "name": "length", + "nativeSrc": "9079:6:18", "nodeType": "YulIdentifier", - "src": "17662:3:18" + "src": "9079:6:18" } - ] + ], + "functionName": { + "name": "add", + "nativeSrc": "9070:3:18", + "nodeType": "YulIdentifier", + "src": "9070:3:18" + }, + "nativeSrc": "9070:16:18", + "nodeType": "YulFunctionCall", + "src": "9070:16:18" }, { - "nativeSrc": "17745:70:18", - "nodeType": "YulAssignment", - "src": "17745:70:18", - "value": { - "arguments": [ - { - "name": "srcPtr", - "nativeSrc": "17808:6:18", - "nodeType": "YulIdentifier", - "src": "17808:6:18" - } - ], - "functionName": { - "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", - "nativeSrc": "17755:52:18", - "nodeType": "YulIdentifier", - "src": "17755:52:18" - }, - "nativeSrc": "17755:60:18", - "nodeType": "YulFunctionCall", - "src": "17755:60:18" - }, - "variableNames": [ - { - "name": "srcPtr", - "nativeSrc": "17745:6:18", - "nodeType": "YulIdentifier", - "src": "17745:6:18" - } - ] + "name": "end", + "nativeSrc": "9088:3:18", + "nodeType": "YulIdentifier", + "src": "9088:3:18" } - ] + ], + "functionName": { + "name": "gt", + "nativeSrc": "9067:2:18", + "nodeType": "YulIdentifier", + "src": "9067:2:18" + }, + "nativeSrc": "9067:25:18", + "nodeType": "YulFunctionCall", + "src": "9067:25:18" }, - "condition": { + "nativeSrc": "9064:112:18", + "nodeType": "YulIf", + "src": "9064:112:18" + }, + { + "expression": { "arguments": [ { - "name": "i", - "nativeSrc": "17563:1:18", + "name": "src", + "nativeSrc": "9222:3:18", + "nodeType": "YulIdentifier", + "src": "9222:3:18" + }, + { + "name": "dst", + "nativeSrc": "9227:3:18", "nodeType": "YulIdentifier", - "src": "17563:1:18" + "src": "9227:3:18" }, { "name": "length", - "nativeSrc": "17566:6:18", + "nativeSrc": "9232:6:18", "nodeType": "YulIdentifier", - "src": "17566:6:18" + "src": "9232:6:18" } ], "functionName": { - "name": "lt", - "nativeSrc": "17560:2:18", + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "9185:36:18", "nodeType": "YulIdentifier", - "src": "17560:2:18" + "src": "9185:36:18" }, - "nativeSrc": "17560:13:18", + "nativeSrc": "9185:54:18", "nodeType": "YulFunctionCall", - "src": "17560:13:18" - }, - "nativeSrc": "17541:284:18", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "17574:18:18", - "nodeType": "YulBlock", - "src": "17574:18:18", - "statements": [ - { - "nativeSrc": "17576:14:18", - "nodeType": "YulAssignment", - "src": "17576:14:18", - "value": { - "arguments": [ - { - "name": "i", - "nativeSrc": "17585:1:18", - "nodeType": "YulIdentifier", - "src": "17585:1:18" - }, - { - "kind": "number", - "nativeSrc": "17588:1:18", - "nodeType": "YulLiteral", - "src": "17588:1:18", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "17581:3:18", - "nodeType": "YulIdentifier", - "src": "17581:3:18" - }, - "nativeSrc": "17581:9:18", - "nodeType": "YulFunctionCall", - "src": "17581:9:18" - }, - "variableNames": [ - { - "name": "i", - "nativeSrc": "17576:1:18", - "nodeType": "YulIdentifier", - "src": "17576:1:18" - } - ] - } - ] - }, - "pre": { - "nativeSrc": "17545:14:18", - "nodeType": "YulBlock", - "src": "17545:14:18", - "statements": [ - { - "nativeSrc": "17547:10:18", - "nodeType": "YulVariableDeclaration", - "src": "17547:10:18", - "value": { - "kind": "number", - "nativeSrc": "17556:1:18", - "nodeType": "YulLiteral", - "src": "17556:1:18", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nativeSrc": "17551:1:18", - "nodeType": "YulTypedName", - "src": "17551:1:18", - "type": "" - } - ] - } - ] - }, - "src": "17541:284:18" - }, - { - "nativeSrc": "17834:10:18", - "nodeType": "YulAssignment", - "src": "17834:10:18", - "value": { - "name": "pos", - "nativeSrc": "17841:3:18", - "nodeType": "YulIdentifier", - "src": "17841:3:18" + "src": "9185:54:18" }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "17834:3:18", - "nodeType": "YulIdentifier", - "src": "17834:3:18" - } - ] + "nativeSrc": "9185:54:18", + "nodeType": "YulExpressionStatement", + "src": "9185:54:18" } ] }, - "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", - "nativeSrc": "17118:732:18", + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nativeSrc": "8822:423:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", - "nativeSrc": "17221:5:18", + "name": "src", + "nativeSrc": "8878:3:18", "nodeType": "YulTypedName", - "src": "17221:5:18", + "src": "8878:3:18", "type": "" }, { - "name": "pos", - "nativeSrc": "17228:3:18", + "name": "length", + "nativeSrc": "8883:6:18", + "nodeType": "YulTypedName", + "src": "8883:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "8891:3:18", "nodeType": "YulTypedName", - "src": "17228:3:18", + "src": "8891:3:18", "type": "" } ], "returnVariables": [ { - "name": "end", - "nativeSrc": "17237:3:18", + "name": "array", + "nativeSrc": "8899:5:18", "nodeType": "YulTypedName", - "src": "17237:3:18", + "src": "8899:5:18", "type": "" } ], - "src": "17118:732:18" + "src": "8822:423:18" }, { "body": { - "nativeSrc": "18004:225:18", + "nativeSrc": "9325:277:18", "nodeType": "YulBlock", - "src": "18004:225:18", + "src": "9325:277:18", "statements": [ { - "nativeSrc": "18014:26:18", - "nodeType": "YulAssignment", - "src": "18014:26:18", + "body": { + "nativeSrc": "9374:83:18", + "nodeType": "YulBlock", + "src": "9374:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "9376:77:18", + "nodeType": "YulIdentifier", + "src": "9376:77:18" + }, + "nativeSrc": "9376:79:18", + "nodeType": "YulFunctionCall", + "src": "9376:79:18" + }, + "nativeSrc": "9376:79:18", + "nodeType": "YulExpressionStatement", + "src": "9376:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "9353:6:18", + "nodeType": "YulIdentifier", + "src": "9353:6:18" + }, + { + "kind": "number", + "nativeSrc": "9361:4:18", + "nodeType": "YulLiteral", + "src": "9361:4:18", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9349:3:18", + "nodeType": "YulIdentifier", + "src": "9349:3:18" + }, + "nativeSrc": "9349:17:18", + "nodeType": "YulFunctionCall", + "src": "9349:17:18" + }, + { + "name": "end", + "nativeSrc": "9368:3:18", + "nodeType": "YulIdentifier", + "src": "9368:3:18" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "9345:3:18", + "nodeType": "YulIdentifier", + "src": "9345:3:18" + }, + "nativeSrc": "9345:27:18", + "nodeType": "YulFunctionCall", + "src": "9345:27:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "9338:6:18", + "nodeType": "YulIdentifier", + "src": "9338:6:18" + }, + "nativeSrc": "9338:35:18", + "nodeType": "YulFunctionCall", + "src": "9338:35:18" + }, + "nativeSrc": "9335:122:18", + "nodeType": "YulIf", + "src": "9335:122:18" + }, + { + "nativeSrc": "9466:34:18", + "nodeType": "YulVariableDeclaration", + "src": "9466:34:18", "value": { "arguments": [ { - "name": "headStart", - "nativeSrc": "18026:9:18", + "name": "offset", + "nativeSrc": "9493:6:18", "nodeType": "YulIdentifier", - "src": "18026:9:18" - }, - { - "kind": "number", - "nativeSrc": "18037:2:18", - "nodeType": "YulLiteral", - "src": "18037:2:18", - "type": "", - "value": "32" + "src": "9493:6:18" } ], "functionName": { - "name": "add", - "nativeSrc": "18022:3:18", + "name": "calldataload", + "nativeSrc": "9480:12:18", "nodeType": "YulIdentifier", - "src": "18022:3:18" + "src": "9480:12:18" }, - "nativeSrc": "18022:18:18", + "nativeSrc": "9480:20:18", "nodeType": "YulFunctionCall", - "src": "18022:18:18" + "src": "9480:20:18" }, - "variableNames": [ + "variables": [ { - "name": "tail", - "nativeSrc": "18014:4:18", - "nodeType": "YulIdentifier", - "src": "18014:4:18" + "name": "length", + "nativeSrc": "9470:6:18", + "nodeType": "YulTypedName", + "src": "9470:6:18", + "type": "" } ] }, { - "expression": { + "nativeSrc": "9509:87:18", + "nodeType": "YulAssignment", + "src": "9509:87:18", + "value": { "arguments": [ { "arguments": [ { - "name": "headStart", - "nativeSrc": "18061:9:18", + "name": "offset", + "nativeSrc": "9569:6:18", "nodeType": "YulIdentifier", - "src": "18061:9:18" + "src": "9569:6:18" }, { "kind": "number", - "nativeSrc": "18072:1:18", + "nativeSrc": "9577:4:18", "nodeType": "YulLiteral", - "src": "18072:1:18", + "src": "9577:4:18", "type": "", - "value": "0" + "value": "0x20" } ], "functionName": { "name": "add", - "nativeSrc": "18057:3:18", + "nativeSrc": "9565:3:18", "nodeType": "YulIdentifier", - "src": "18057:3:18" + "src": "9565:3:18" }, - "nativeSrc": "18057:17:18", + "nativeSrc": "9565:17:18", "nodeType": "YulFunctionCall", - "src": "18057:17:18" + "src": "9565:17:18" }, { - "arguments": [ - { - "name": "tail", - "nativeSrc": "18080:4:18", - "nodeType": "YulIdentifier", - "src": "18080:4:18" - }, - { - "name": "headStart", - "nativeSrc": "18086:9:18", - "nodeType": "YulIdentifier", - "src": "18086:9:18" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "18076:3:18", - "nodeType": "YulIdentifier", - "src": "18076:3:18" - }, - "nativeSrc": "18076:20:18", - "nodeType": "YulFunctionCall", - "src": "18076:20:18" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "18050:6:18", - "nodeType": "YulIdentifier", - "src": "18050:6:18" - }, - "nativeSrc": "18050:47:18", - "nodeType": "YulFunctionCall", - "src": "18050:47:18" - }, - "nativeSrc": "18050:47:18", - "nodeType": "YulExpressionStatement", - "src": "18050:47:18" - }, - { - "nativeSrc": "18106:116:18", - "nodeType": "YulAssignment", - "src": "18106:116:18", - "value": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "18208:6:18", + "name": "length", + "nativeSrc": "9584:6:18", "nodeType": "YulIdentifier", - "src": "18208:6:18" + "src": "9584:6:18" }, { - "name": "tail", - "nativeSrc": "18217:4:18", + "name": "end", + "nativeSrc": "9592:3:18", "nodeType": "YulIdentifier", - "src": "18217:4:18" + "src": "9592:3:18" } ], "functionName": { - "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", - "nativeSrc": "18114:93:18", + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nativeSrc": "9518:46:18", "nodeType": "YulIdentifier", - "src": "18114:93:18" + "src": "9518:46:18" }, - "nativeSrc": "18114:108:18", + "nativeSrc": "9518:78:18", "nodeType": "YulFunctionCall", - "src": "18114:108:18" + "src": "9518:78:18" }, "variableNames": [ { - "name": "tail", - "nativeSrc": "18106:4:18", + "name": "array", + "nativeSrc": "9509:5:18", "nodeType": "YulIdentifier", - "src": "18106:4:18" + "src": "9509:5:18" } ] } ] }, - "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", - "nativeSrc": "17856:373:18", + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "9264:338:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nativeSrc": "17976:9:18", + "name": "offset", + "nativeSrc": "9303:6:18", "nodeType": "YulTypedName", - "src": "17976:9:18", + "src": "9303:6:18", "type": "" }, { - "name": "value0", - "nativeSrc": "17988:6:18", + "name": "end", + "nativeSrc": "9311:3:18", "nodeType": "YulTypedName", - "src": "17988:6:18", + "src": "9311:3:18", "type": "" } ], "returnVariables": [ { - "name": "tail", - "nativeSrc": "17999:4:18", + "name": "array", + "nativeSrc": "9319:5:18", "nodeType": "YulTypedName", - "src": "17999:4:18", + "src": "9319:5:18", "type": "" } ], - "src": "17856:373:18" + "src": "9264:338:18" }, { "body": { - "nativeSrc": "18361:817:18", + "nativeSrc": "9801:1316:18", "nodeType": "YulBlock", - "src": "18361:817:18", + "src": "9801:1316:18", "statements": [ { "body": { - "nativeSrc": "18408:83:18", + "nativeSrc": "9848:83:18", "nodeType": "YulBlock", - "src": "18408:83:18", + "src": "9848:83:18", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "18410:77:18", + "nativeSrc": "9850:77:18", "nodeType": "YulIdentifier", - "src": "18410:77:18" + "src": "9850:77:18" }, - "nativeSrc": "18410:79:18", + "nativeSrc": "9850:79:18", "nodeType": "YulFunctionCall", - "src": "18410:79:18" + "src": "9850:79:18" }, - "nativeSrc": "18410:79:18", + "nativeSrc": "9850:79:18", "nodeType": "YulExpressionStatement", - "src": "18410:79:18" + "src": "9850:79:18" } ] }, @@ -71016,389 +70481,303 @@ "arguments": [ { "name": "dataEnd", - "nativeSrc": "18382:7:18", + "nativeSrc": "9822:7:18", "nodeType": "YulIdentifier", - "src": "18382:7:18" + "src": "9822:7:18" }, { "name": "headStart", - "nativeSrc": "18391:9:18", + "nativeSrc": "9831:9:18", "nodeType": "YulIdentifier", - "src": "18391:9:18" + "src": "9831:9:18" } ], "functionName": { "name": "sub", - "nativeSrc": "18378:3:18", + "nativeSrc": "9818:3:18", "nodeType": "YulIdentifier", - "src": "18378:3:18" + "src": "9818:3:18" }, - "nativeSrc": "18378:23:18", + "nativeSrc": "9818:23:18", "nodeType": "YulFunctionCall", - "src": "18378:23:18" + "src": "9818:23:18" }, { "kind": "number", - "nativeSrc": "18403:3:18", + "nativeSrc": "9843:3:18", "nodeType": "YulLiteral", - "src": "18403:3:18", + "src": "9843:3:18", "type": "", - "value": "128" + "value": "160" } ], "functionName": { "name": "slt", - "nativeSrc": "18374:3:18", + "nativeSrc": "9814:3:18", "nodeType": "YulIdentifier", - "src": "18374:3:18" + "src": "9814:3:18" }, - "nativeSrc": "18374:33:18", + "nativeSrc": "9814:33:18", "nodeType": "YulFunctionCall", - "src": "18374:33:18" + "src": "9814:33:18" }, - "nativeSrc": "18371:120:18", + "nativeSrc": "9811:120:18", "nodeType": "YulIf", - "src": "18371:120:18" + "src": "9811:120:18" }, { - "nativeSrc": "18501:117:18", + "nativeSrc": "9941:117:18", "nodeType": "YulBlock", - "src": "18501:117:18", + "src": "9941:117:18", "statements": [ { - "nativeSrc": "18516:15:18", + "nativeSrc": "9956:15:18", "nodeType": "YulVariableDeclaration", - "src": "18516:15:18", + "src": "9956:15:18", "value": { "kind": "number", - "nativeSrc": "18530:1:18", + "nativeSrc": "9970:1:18", "nodeType": "YulLiteral", - "src": "18530:1:18", + "src": "9970:1:18", "type": "", "value": "0" }, "variables": [ { "name": "offset", - "nativeSrc": "18520:6:18", + "nativeSrc": "9960:6:18", "nodeType": "YulTypedName", - "src": "18520:6:18", + "src": "9960:6:18", "type": "" } ] }, { - "nativeSrc": "18545:63:18", + "nativeSrc": "9985:63:18", "nodeType": "YulAssignment", - "src": "18545:63:18", + "src": "9985:63:18", "value": { "arguments": [ { "arguments": [ { "name": "headStart", - "nativeSrc": "18580:9:18", + "nativeSrc": "10020:9:18", "nodeType": "YulIdentifier", - "src": "18580:9:18" + "src": "10020:9:18" }, { "name": "offset", - "nativeSrc": "18591:6:18", + "nativeSrc": "10031:6:18", "nodeType": "YulIdentifier", - "src": "18591:6:18" + "src": "10031:6:18" } ], "functionName": { "name": "add", - "nativeSrc": "18576:3:18", + "nativeSrc": "10016:3:18", "nodeType": "YulIdentifier", - "src": "18576:3:18" + "src": "10016:3:18" }, - "nativeSrc": "18576:22:18", + "nativeSrc": "10016:22:18", "nodeType": "YulFunctionCall", - "src": "18576:22:18" + "src": "10016:22:18" }, { "name": "dataEnd", - "nativeSrc": "18600:7:18", + "nativeSrc": "10040:7:18", "nodeType": "YulIdentifier", - "src": "18600:7:18" + "src": "10040:7:18" } ], "functionName": { "name": "abi_decode_t_address", - "nativeSrc": "18555:20:18", + "nativeSrc": "9995:20:18", "nodeType": "YulIdentifier", - "src": "18555:20:18" + "src": "9995:20:18" }, - "nativeSrc": "18555:53:18", + "nativeSrc": "9995:53:18", "nodeType": "YulFunctionCall", - "src": "18555:53:18" + "src": "9995:53:18" }, "variableNames": [ { "name": "value0", - "nativeSrc": "18545:6:18", - "nodeType": "YulIdentifier", - "src": "18545:6:18" - } - ] - } - ] - }, - { - "nativeSrc": "18628:118:18", - "nodeType": "YulBlock", - "src": "18628:118:18", - "statements": [ - { - "nativeSrc": "18643:16:18", - "nodeType": "YulVariableDeclaration", - "src": "18643:16:18", - "value": { - "kind": "number", - "nativeSrc": "18657:2:18", - "nodeType": "YulLiteral", - "src": "18657:2:18", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "18647:6:18", - "nodeType": "YulTypedName", - "src": "18647:6:18", - "type": "" - } - ] - }, - { - "nativeSrc": "18673:63:18", - "nodeType": "YulAssignment", - "src": "18673:63:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "18708:9:18", - "nodeType": "YulIdentifier", - "src": "18708:9:18" - }, - { - "name": "offset", - "nativeSrc": "18719:6:18", - "nodeType": "YulIdentifier", - "src": "18719:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "18704:3:18", - "nodeType": "YulIdentifier", - "src": "18704:3:18" - }, - "nativeSrc": "18704:22:18", - "nodeType": "YulFunctionCall", - "src": "18704:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "18728:7:18", - "nodeType": "YulIdentifier", - "src": "18728:7:18" - } - ], - "functionName": { - "name": "abi_decode_t_uint256", - "nativeSrc": "18683:20:18", - "nodeType": "YulIdentifier", - "src": "18683:20:18" - }, - "nativeSrc": "18683:53:18", - "nodeType": "YulFunctionCall", - "src": "18683:53:18" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "18673:6:18", + "nativeSrc": "9985:6:18", "nodeType": "YulIdentifier", - "src": "18673:6:18" + "src": "9985:6:18" } ] } ] }, { - "nativeSrc": "18756:118:18", + "nativeSrc": "10068:118:18", "nodeType": "YulBlock", - "src": "18756:118:18", + "src": "10068:118:18", "statements": [ { - "nativeSrc": "18771:16:18", + "nativeSrc": "10083:16:18", "nodeType": "YulVariableDeclaration", - "src": "18771:16:18", + "src": "10083:16:18", "value": { "kind": "number", - "nativeSrc": "18785:2:18", + "nativeSrc": "10097:2:18", "nodeType": "YulLiteral", - "src": "18785:2:18", + "src": "10097:2:18", "type": "", - "value": "64" + "value": "32" }, "variables": [ { "name": "offset", - "nativeSrc": "18775:6:18", + "nativeSrc": "10087:6:18", "nodeType": "YulTypedName", - "src": "18775:6:18", + "src": "10087:6:18", "type": "" } ] }, { - "nativeSrc": "18801:63:18", + "nativeSrc": "10113:63:18", "nodeType": "YulAssignment", - "src": "18801:63:18", + "src": "10113:63:18", "value": { "arguments": [ { "arguments": [ { "name": "headStart", - "nativeSrc": "18836:9:18", + "nativeSrc": "10148:9:18", "nodeType": "YulIdentifier", - "src": "18836:9:18" + "src": "10148:9:18" }, { "name": "offset", - "nativeSrc": "18847:6:18", + "nativeSrc": "10159:6:18", "nodeType": "YulIdentifier", - "src": "18847:6:18" + "src": "10159:6:18" } ], "functionName": { "name": "add", - "nativeSrc": "18832:3:18", + "nativeSrc": "10144:3:18", "nodeType": "YulIdentifier", - "src": "18832:3:18" + "src": "10144:3:18" }, - "nativeSrc": "18832:22:18", + "nativeSrc": "10144:22:18", "nodeType": "YulFunctionCall", - "src": "18832:22:18" + "src": "10144:22:18" }, { "name": "dataEnd", - "nativeSrc": "18856:7:18", + "nativeSrc": "10168:7:18", "nodeType": "YulIdentifier", - "src": "18856:7:18" + "src": "10168:7:18" } ], "functionName": { - "name": "abi_decode_t_uint256", - "nativeSrc": "18811:20:18", + "name": "abi_decode_t_address", + "nativeSrc": "10123:20:18", "nodeType": "YulIdentifier", - "src": "18811:20:18" + "src": "10123:20:18" }, - "nativeSrc": "18811:53:18", + "nativeSrc": "10123:53:18", "nodeType": "YulFunctionCall", - "src": "18811:53:18" + "src": "10123:53:18" }, "variableNames": [ { - "name": "value2", - "nativeSrc": "18801:6:18", + "name": "value1", + "nativeSrc": "10113:6:18", "nodeType": "YulIdentifier", - "src": "18801:6:18" + "src": "10113:6:18" } ] } ] }, { - "nativeSrc": "18884:287:18", + "nativeSrc": "10196:303:18", "nodeType": "YulBlock", - "src": "18884:287:18", + "src": "10196:303:18", "statements": [ { - "nativeSrc": "18899:46:18", + "nativeSrc": "10211:46:18", "nodeType": "YulVariableDeclaration", - "src": "18899:46:18", + "src": "10211:46:18", "value": { "arguments": [ { "arguments": [ { "name": "headStart", - "nativeSrc": "18930:9:18", + "nativeSrc": "10242:9:18", "nodeType": "YulIdentifier", - "src": "18930:9:18" + "src": "10242:9:18" }, { "kind": "number", - "nativeSrc": "18941:2:18", + "nativeSrc": "10253:2:18", "nodeType": "YulLiteral", - "src": "18941:2:18", + "src": "10253:2:18", "type": "", - "value": "96" + "value": "64" } ], "functionName": { "name": "add", - "nativeSrc": "18926:3:18", + "nativeSrc": "10238:3:18", "nodeType": "YulIdentifier", - "src": "18926:3:18" + "src": "10238:3:18" }, - "nativeSrc": "18926:18:18", + "nativeSrc": "10238:18:18", "nodeType": "YulFunctionCall", - "src": "18926:18:18" + "src": "10238:18:18" } ], "functionName": { "name": "calldataload", - "nativeSrc": "18913:12:18", + "nativeSrc": "10225:12:18", "nodeType": "YulIdentifier", - "src": "18913:12:18" + "src": "10225:12:18" }, - "nativeSrc": "18913:32:18", + "nativeSrc": "10225:32:18", "nodeType": "YulFunctionCall", - "src": "18913:32:18" + "src": "10225:32:18" }, "variables": [ { "name": "offset", - "nativeSrc": "18903:6:18", + "nativeSrc": "10215:6:18", "nodeType": "YulTypedName", - "src": "18903:6:18", + "src": "10215:6:18", "type": "" } ] }, { "body": { - "nativeSrc": "18992:83:18", + "nativeSrc": "10304:83:18", "nodeType": "YulBlock", - "src": "18992:83:18", + "src": "10304:83:18", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "18994:77:18", + "nativeSrc": "10306:77:18", "nodeType": "YulIdentifier", - "src": "18994:77:18" + "src": "10306:77:18" }, - "nativeSrc": "18994:79:18", + "nativeSrc": "10306:79:18", "nodeType": "YulFunctionCall", - "src": "18994:79:18" + "src": "10306:79:18" }, - "nativeSrc": "18994:79:18", + "nativeSrc": "10306:79:18", "nodeType": "YulExpressionStatement", - "src": "18994:79:18" + "src": "10306:79:18" } ] }, @@ -71406,606 +70785,435 @@ "arguments": [ { "name": "offset", - "nativeSrc": "18964:6:18", + "nativeSrc": "10276:6:18", "nodeType": "YulIdentifier", - "src": "18964:6:18" + "src": "10276:6:18" }, { "kind": "number", - "nativeSrc": "18972:18:18", + "nativeSrc": "10284:18:18", "nodeType": "YulLiteral", - "src": "18972:18:18", + "src": "10284:18:18", "type": "", "value": "0xffffffffffffffff" } ], "functionName": { "name": "gt", - "nativeSrc": "18961:2:18", + "nativeSrc": "10273:2:18", "nodeType": "YulIdentifier", - "src": "18961:2:18" + "src": "10273:2:18" }, - "nativeSrc": "18961:30:18", + "nativeSrc": "10273:30:18", "nodeType": "YulFunctionCall", - "src": "18961:30:18" + "src": "10273:30:18" }, - "nativeSrc": "18958:117:18", + "nativeSrc": "10270:117:18", "nodeType": "YulIf", - "src": "18958:117:18" + "src": "10270:117:18" }, { - "nativeSrc": "19089:72:18", + "nativeSrc": "10401:88:18", "nodeType": "YulAssignment", - "src": "19089:72:18", + "src": "10401:88:18", "value": { "arguments": [ { "arguments": [ { "name": "headStart", - "nativeSrc": "19133:9:18", + "nativeSrc": "10461:9:18", "nodeType": "YulIdentifier", - "src": "19133:9:18" + "src": "10461:9:18" }, { "name": "offset", - "nativeSrc": "19144:6:18", + "nativeSrc": "10472:6:18", "nodeType": "YulIdentifier", - "src": "19144:6:18" + "src": "10472:6:18" } ], "functionName": { "name": "add", - "nativeSrc": "19129:3:18", + "nativeSrc": "10457:3:18", "nodeType": "YulIdentifier", - "src": "19129:3:18" + "src": "10457:3:18" }, - "nativeSrc": "19129:22:18", + "nativeSrc": "10457:22:18", "nodeType": "YulFunctionCall", - "src": "19129:22:18" + "src": "10457:22:18" }, { "name": "dataEnd", - "nativeSrc": "19153:7:18", + "nativeSrc": "10481:7:18", "nodeType": "YulIdentifier", - "src": "19153:7:18" + "src": "10481:7:18" } ], "functionName": { - "name": "abi_decode_t_bytes_memory_ptr", - "nativeSrc": "19099:29:18", + "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "10411:45:18", "nodeType": "YulIdentifier", - "src": "19099:29:18" + "src": "10411:45:18" }, - "nativeSrc": "19099:62:18", + "nativeSrc": "10411:78:18", "nodeType": "YulFunctionCall", - "src": "19099:62:18" + "src": "10411:78:18" }, "variableNames": [ { - "name": "value3", - "nativeSrc": "19089:6:18", + "name": "value2", + "nativeSrc": "10401:6:18", "nodeType": "YulIdentifier", - "src": "19089:6:18" + "src": "10401:6:18" } ] } ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_uint256t_uint256t_bytes_memory_ptr", - "nativeSrc": "18235:943:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "18307:9:18", - "nodeType": "YulTypedName", - "src": "18307:9:18", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "18318:7:18", - "nodeType": "YulTypedName", - "src": "18318:7:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "18330:6:18", - "nodeType": "YulTypedName", - "src": "18330:6:18", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "18338:6:18", - "nodeType": "YulTypedName", - "src": "18338:6:18", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "18346:6:18", - "nodeType": "YulTypedName", - "src": "18346:6:18", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "18354:6:18", - "nodeType": "YulTypedName", - "src": "18354:6:18", - "type": "" - } - ], - "src": "18235:943:18" - }, - { - "body": { - "nativeSrc": "19224:76:18", - "nodeType": "YulBlock", - "src": "19224:76:18", - "statements": [ + }, { - "body": { - "nativeSrc": "19278:16:18", - "nodeType": "YulBlock", - "src": "19278:16:18", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "19287:1:18", - "nodeType": "YulLiteral", - "src": "19287:1:18", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "19290:1:18", - "nodeType": "YulLiteral", - "src": "19290:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "19280:6:18", - "nodeType": "YulIdentifier", - "src": "19280:6:18" - }, - "nativeSrc": "19280:12:18", - "nodeType": "YulFunctionCall", - "src": "19280:12:18" - }, - "nativeSrc": "19280:12:18", - "nodeType": "YulExpressionStatement", - "src": "19280:12:18" - } - ] - }, - "condition": { - "arguments": [ - { + "nativeSrc": "10509:303:18", + "nodeType": "YulBlock", + "src": "10509:303:18", + "statements": [ + { + "nativeSrc": "10524:46:18", + "nodeType": "YulVariableDeclaration", + "src": "10524:46:18", + "value": { "arguments": [ - { - "name": "value", - "nativeSrc": "19247:5:18", - "nodeType": "YulIdentifier", - "src": "19247:5:18" - }, { "arguments": [ { - "name": "value", - "nativeSrc": "19269:5:18", + "name": "headStart", + "nativeSrc": "10555:9:18", "nodeType": "YulIdentifier", - "src": "19269:5:18" + "src": "10555:9:18" + }, + { + "kind": "number", + "nativeSrc": "10566:2:18", + "nodeType": "YulLiteral", + "src": "10566:2:18", + "type": "", + "value": "96" } ], "functionName": { - "name": "cleanup_t_bool", - "nativeSrc": "19254:14:18", + "name": "add", + "nativeSrc": "10551:3:18", "nodeType": "YulIdentifier", - "src": "19254:14:18" + "src": "10551:3:18" }, - "nativeSrc": "19254:21:18", + "nativeSrc": "10551:18:18", "nodeType": "YulFunctionCall", - "src": "19254:21:18" + "src": "10551:18:18" } ], "functionName": { - "name": "eq", - "nativeSrc": "19244:2:18", + "name": "calldataload", + "nativeSrc": "10538:12:18", "nodeType": "YulIdentifier", - "src": "19244:2:18" + "src": "10538:12:18" }, - "nativeSrc": "19244:32:18", + "nativeSrc": "10538:32:18", "nodeType": "YulFunctionCall", - "src": "19244:32:18" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "19237:6:18", - "nodeType": "YulIdentifier", - "src": "19237:6:18" - }, - "nativeSrc": "19237:40:18", - "nodeType": "YulFunctionCall", - "src": "19237:40:18" - }, - "nativeSrc": "19234:60:18", - "nodeType": "YulIf", - "src": "19234:60:18" - } - ] - }, - "name": "validator_revert_t_bool", - "nativeSrc": "19184:116:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "19217:5:18", - "nodeType": "YulTypedName", - "src": "19217:5:18", - "type": "" - } - ], - "src": "19184:116:18" - }, - { - "body": { - "nativeSrc": "19355:84:18", - "nodeType": "YulBlock", - "src": "19355:84:18", - "statements": [ - { - "nativeSrc": "19365:29:18", - "nodeType": "YulAssignment", - "src": "19365:29:18", - "value": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "19387:6:18", - "nodeType": "YulIdentifier", - "src": "19387:6:18" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "19374:12:18", - "nodeType": "YulIdentifier", - "src": "19374:12:18" + "src": "10538:32:18" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "10528:6:18", + "nodeType": "YulTypedName", + "src": "10528:6:18", + "type": "" + } + ] }, - "nativeSrc": "19374:20:18", - "nodeType": "YulFunctionCall", - "src": "19374:20:18" - }, - "variableNames": [ { - "name": "value", - "nativeSrc": "19365:5:18", - "nodeType": "YulIdentifier", - "src": "19365:5:18" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "19427:5:18", - "nodeType": "YulIdentifier", - "src": "19427:5:18" - } - ], - "functionName": { - "name": "validator_revert_t_bool", - "nativeSrc": "19403:23:18", - "nodeType": "YulIdentifier", - "src": "19403:23:18" - }, - "nativeSrc": "19403:30:18", - "nodeType": "YulFunctionCall", - "src": "19403:30:18" - }, - "nativeSrc": "19403:30:18", - "nodeType": "YulExpressionStatement", - "src": "19403:30:18" - } - ] - }, - "name": "abi_decode_t_bool", - "nativeSrc": "19306:133:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "offset", - "nativeSrc": "19333:6:18", - "nodeType": "YulTypedName", - "src": "19333:6:18", - "type": "" - }, - { - "name": "end", - "nativeSrc": "19341:3:18", - "nodeType": "YulTypedName", - "src": "19341:3:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value", - "nativeSrc": "19349:5:18", - "nodeType": "YulTypedName", - "src": "19349:5:18", - "type": "" - } - ], - "src": "19306:133:18" - }, - { - "body": { - "nativeSrc": "19525:388:18", - "nodeType": "YulBlock", - "src": "19525:388:18", - "statements": [ - { - "body": { - "nativeSrc": "19571:83:18", - "nodeType": "YulBlock", - "src": "19571:83:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "19573:77:18", - "nodeType": "YulIdentifier", - "src": "19573:77:18" - }, - "nativeSrc": "19573:79:18", - "nodeType": "YulFunctionCall", - "src": "19573:79:18" - }, - "nativeSrc": "19573:79:18", - "nodeType": "YulExpressionStatement", - "src": "19573:79:18" - } - ] - }, - "condition": { - "arguments": [ - { + "body": { + "nativeSrc": "10617:83:18", + "nodeType": "YulBlock", + "src": "10617:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "10619:77:18", + "nodeType": "YulIdentifier", + "src": "10619:77:18" + }, + "nativeSrc": "10619:79:18", + "nodeType": "YulFunctionCall", + "src": "10619:79:18" + }, + "nativeSrc": "10619:79:18", + "nodeType": "YulExpressionStatement", + "src": "10619:79:18" + } + ] + }, + "condition": { "arguments": [ { - "name": "dataEnd", - "nativeSrc": "19546:7:18", + "name": "offset", + "nativeSrc": "10589:6:18", "nodeType": "YulIdentifier", - "src": "19546:7:18" + "src": "10589:6:18" }, { - "name": "headStart", - "nativeSrc": "19555:9:18", - "nodeType": "YulIdentifier", - "src": "19555:9:18" + "kind": "number", + "nativeSrc": "10597:18:18", + "nodeType": "YulLiteral", + "src": "10597:18:18", + "type": "", + "value": "0xffffffffffffffff" } ], "functionName": { - "name": "sub", - "nativeSrc": "19542:3:18", + "name": "gt", + "nativeSrc": "10586:2:18", "nodeType": "YulIdentifier", - "src": "19542:3:18" + "src": "10586:2:18" }, - "nativeSrc": "19542:23:18", + "nativeSrc": "10586:30:18", "nodeType": "YulFunctionCall", - "src": "19542:23:18" - }, - { - "kind": "number", - "nativeSrc": "19567:2:18", - "nodeType": "YulLiteral", - "src": "19567:2:18", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "19538:3:18", - "nodeType": "YulIdentifier", - "src": "19538:3:18" - }, - "nativeSrc": "19538:32:18", - "nodeType": "YulFunctionCall", - "src": "19538:32:18" - }, - "nativeSrc": "19535:119:18", - "nodeType": "YulIf", - "src": "19535:119:18" - }, - { - "nativeSrc": "19664:117:18", - "nodeType": "YulBlock", - "src": "19664:117:18", - "statements": [ - { - "nativeSrc": "19679:15:18", - "nodeType": "YulVariableDeclaration", - "src": "19679:15:18", - "value": { - "kind": "number", - "nativeSrc": "19693:1:18", - "nodeType": "YulLiteral", - "src": "19693:1:18", - "type": "", - "value": "0" + "src": "10586:30:18" }, - "variables": [ - { - "name": "offset", - "nativeSrc": "19683:6:18", - "nodeType": "YulTypedName", - "src": "19683:6:18", - "type": "" - } - ] + "nativeSrc": "10583:117:18", + "nodeType": "YulIf", + "src": "10583:117:18" }, { - "nativeSrc": "19708:63:18", + "nativeSrc": "10714:88:18", "nodeType": "YulAssignment", - "src": "19708:63:18", + "src": "10714:88:18", "value": { "arguments": [ { "arguments": [ { "name": "headStart", - "nativeSrc": "19743:9:18", + "nativeSrc": "10774:9:18", "nodeType": "YulIdentifier", - "src": "19743:9:18" + "src": "10774:9:18" }, { "name": "offset", - "nativeSrc": "19754:6:18", + "nativeSrc": "10785:6:18", "nodeType": "YulIdentifier", - "src": "19754:6:18" + "src": "10785:6:18" } ], "functionName": { "name": "add", - "nativeSrc": "19739:3:18", + "nativeSrc": "10770:3:18", "nodeType": "YulIdentifier", - "src": "19739:3:18" + "src": "10770:3:18" }, - "nativeSrc": "19739:22:18", + "nativeSrc": "10770:22:18", "nodeType": "YulFunctionCall", - "src": "19739:22:18" + "src": "10770:22:18" }, { "name": "dataEnd", - "nativeSrc": "19763:7:18", + "nativeSrc": "10794:7:18", "nodeType": "YulIdentifier", - "src": "19763:7:18" + "src": "10794:7:18" } ], "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "19718:20:18", + "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "10724:45:18", "nodeType": "YulIdentifier", - "src": "19718:20:18" + "src": "10724:45:18" }, - "nativeSrc": "19718:53:18", + "nativeSrc": "10724:78:18", "nodeType": "YulFunctionCall", - "src": "19718:53:18" + "src": "10724:78:18" }, "variableNames": [ { - "name": "value0", - "nativeSrc": "19708:6:18", + "name": "value3", + "nativeSrc": "10714:6:18", "nodeType": "YulIdentifier", - "src": "19708:6:18" + "src": "10714:6:18" } ] } ] }, { - "nativeSrc": "19791:115:18", + "nativeSrc": "10822:288:18", "nodeType": "YulBlock", - "src": "19791:115:18", + "src": "10822:288:18", "statements": [ { - "nativeSrc": "19806:16:18", + "nativeSrc": "10837:47:18", "nodeType": "YulVariableDeclaration", - "src": "19806:16:18", + "src": "10837:47:18", "value": { - "kind": "number", - "nativeSrc": "19820:2:18", - "nodeType": "YulLiteral", - "src": "19820:2:18", - "type": "", - "value": "32" + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10868:9:18", + "nodeType": "YulIdentifier", + "src": "10868:9:18" + }, + { + "kind": "number", + "nativeSrc": "10879:3:18", + "nodeType": "YulLiteral", + "src": "10879:3:18", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10864:3:18", + "nodeType": "YulIdentifier", + "src": "10864:3:18" + }, + "nativeSrc": "10864:19:18", + "nodeType": "YulFunctionCall", + "src": "10864:19:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "10851:12:18", + "nodeType": "YulIdentifier", + "src": "10851:12:18" + }, + "nativeSrc": "10851:33:18", + "nodeType": "YulFunctionCall", + "src": "10851:33:18" }, "variables": [ { "name": "offset", - "nativeSrc": "19810:6:18", + "nativeSrc": "10841:6:18", "nodeType": "YulTypedName", - "src": "19810:6:18", + "src": "10841:6:18", "type": "" } ] }, { - "nativeSrc": "19836:60:18", + "body": { + "nativeSrc": "10931:83:18", + "nodeType": "YulBlock", + "src": "10931:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "10933:77:18", + "nodeType": "YulIdentifier", + "src": "10933:77:18" + }, + "nativeSrc": "10933:79:18", + "nodeType": "YulFunctionCall", + "src": "10933:79:18" + }, + "nativeSrc": "10933:79:18", + "nodeType": "YulExpressionStatement", + "src": "10933:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "10903:6:18", + "nodeType": "YulIdentifier", + "src": "10903:6:18" + }, + { + "kind": "number", + "nativeSrc": "10911:18:18", + "nodeType": "YulLiteral", + "src": "10911:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "10900:2:18", + "nodeType": "YulIdentifier", + "src": "10900:2:18" + }, + "nativeSrc": "10900:30:18", + "nodeType": "YulFunctionCall", + "src": "10900:30:18" + }, + "nativeSrc": "10897:117:18", + "nodeType": "YulIf", + "src": "10897:117:18" + }, + { + "nativeSrc": "11028:72:18", "nodeType": "YulAssignment", - "src": "19836:60:18", + "src": "11028:72:18", "value": { "arguments": [ { "arguments": [ { "name": "headStart", - "nativeSrc": "19868:9:18", + "nativeSrc": "11072:9:18", "nodeType": "YulIdentifier", - "src": "19868:9:18" + "src": "11072:9:18" }, { "name": "offset", - "nativeSrc": "19879:6:18", + "nativeSrc": "11083:6:18", "nodeType": "YulIdentifier", - "src": "19879:6:18" + "src": "11083:6:18" } ], "functionName": { "name": "add", - "nativeSrc": "19864:3:18", + "nativeSrc": "11068:3:18", "nodeType": "YulIdentifier", - "src": "19864:3:18" + "src": "11068:3:18" }, - "nativeSrc": "19864:22:18", + "nativeSrc": "11068:22:18", "nodeType": "YulFunctionCall", - "src": "19864:22:18" + "src": "11068:22:18" }, { "name": "dataEnd", - "nativeSrc": "19888:7:18", + "nativeSrc": "11092:7:18", "nodeType": "YulIdentifier", - "src": "19888:7:18" + "src": "11092:7:18" } ], "functionName": { - "name": "abi_decode_t_bool", - "nativeSrc": "19846:17:18", + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "11038:29:18", "nodeType": "YulIdentifier", - "src": "19846:17:18" + "src": "11038:29:18" }, - "nativeSrc": "19846:50:18", + "nativeSrc": "11038:62:18", "nodeType": "YulFunctionCall", - "src": "19846:50:18" + "src": "11038:62:18" }, "variableNames": [ { - "name": "value1", - "nativeSrc": "19836:6:18", + "name": "value4", + "nativeSrc": "11028:6:18", "nodeType": "YulIdentifier", - "src": "19836:6:18" + "src": "11028:6:18" } ] } @@ -72013,71 +71221,92 @@ } ] }, - "name": "abi_decode_tuple_t_addresst_bool", - "nativeSrc": "19445:468:18", + "name": "abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr", + "nativeSrc": "9608:1509:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", - "nativeSrc": "19487:9:18", + "nativeSrc": "9739:9:18", "nodeType": "YulTypedName", - "src": "19487:9:18", + "src": "9739:9:18", "type": "" }, { "name": "dataEnd", - "nativeSrc": "19498:7:18", + "nativeSrc": "9750:7:18", "nodeType": "YulTypedName", - "src": "19498:7:18", + "src": "9750:7:18", "type": "" } ], "returnVariables": [ { "name": "value0", - "nativeSrc": "19510:6:18", + "nativeSrc": "9762:6:18", "nodeType": "YulTypedName", - "src": "19510:6:18", + "src": "9762:6:18", "type": "" }, { "name": "value1", - "nativeSrc": "19518:6:18", + "nativeSrc": "9770:6:18", + "nodeType": "YulTypedName", + "src": "9770:6:18", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "9778:6:18", + "nodeType": "YulTypedName", + "src": "9778:6:18", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "9786:6:18", + "nodeType": "YulTypedName", + "src": "9786:6:18", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "9794:6:18", "nodeType": "YulTypedName", - "src": "19518:6:18", + "src": "9794:6:18", "type": "" } ], - "src": "19445:468:18" + "src": "9608:1509:18" }, { "body": { - "nativeSrc": "20029:689:18", + "nativeSrc": "11206:391:18", "nodeType": "YulBlock", - "src": "20029:689:18", + "src": "11206:391:18", "statements": [ { "body": { - "nativeSrc": "20075:83:18", + "nativeSrc": "11252:83:18", "nodeType": "YulBlock", - "src": "20075:83:18", + "src": "11252:83:18", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "20077:77:18", + "nativeSrc": "11254:77:18", "nodeType": "YulIdentifier", - "src": "20077:77:18" + "src": "11254:77:18" }, - "nativeSrc": "20077:79:18", + "nativeSrc": "11254:79:18", "nodeType": "YulFunctionCall", - "src": "20077:79:18" + "src": "11254:79:18" }, - "nativeSrc": "20077:79:18", + "nativeSrc": "11254:79:18", "nodeType": "YulExpressionStatement", - "src": "20077:79:18" + "src": "11254:79:18" } ] }, @@ -72087,391 +71316,217 @@ "arguments": [ { "name": "dataEnd", - "nativeSrc": "20050:7:18", + "nativeSrc": "11227:7:18", "nodeType": "YulIdentifier", - "src": "20050:7:18" + "src": "11227:7:18" }, { "name": "headStart", - "nativeSrc": "20059:9:18", + "nativeSrc": "11236:9:18", "nodeType": "YulIdentifier", - "src": "20059:9:18" + "src": "11236:9:18" } ], "functionName": { "name": "sub", - "nativeSrc": "20046:3:18", + "nativeSrc": "11223:3:18", "nodeType": "YulIdentifier", - "src": "20046:3:18" + "src": "11223:3:18" }, - "nativeSrc": "20046:23:18", + "nativeSrc": "11223:23:18", "nodeType": "YulFunctionCall", - "src": "20046:23:18" + "src": "11223:23:18" }, { "kind": "number", - "nativeSrc": "20071:2:18", + "nativeSrc": "11248:2:18", "nodeType": "YulLiteral", - "src": "20071:2:18", + "src": "11248:2:18", "type": "", - "value": "96" + "value": "64" } ], "functionName": { "name": "slt", - "nativeSrc": "20042:3:18", + "nativeSrc": "11219:3:18", "nodeType": "YulIdentifier", - "src": "20042:3:18" + "src": "11219:3:18" }, - "nativeSrc": "20042:32:18", + "nativeSrc": "11219:32:18", "nodeType": "YulFunctionCall", - "src": "20042:32:18" + "src": "11219:32:18" }, - "nativeSrc": "20039:119:18", + "nativeSrc": "11216:119:18", "nodeType": "YulIf", - "src": "20039:119:18" + "src": "11216:119:18" }, { - "nativeSrc": "20168:117:18", + "nativeSrc": "11345:117:18", "nodeType": "YulBlock", - "src": "20168:117:18", + "src": "11345:117:18", "statements": [ { - "nativeSrc": "20183:15:18", + "nativeSrc": "11360:15:18", "nodeType": "YulVariableDeclaration", - "src": "20183:15:18", + "src": "11360:15:18", "value": { "kind": "number", - "nativeSrc": "20197:1:18", + "nativeSrc": "11374:1:18", "nodeType": "YulLiteral", - "src": "20197:1:18", + "src": "11374:1:18", "type": "", "value": "0" }, "variables": [ { "name": "offset", - "nativeSrc": "20187:6:18", + "nativeSrc": "11364:6:18", "nodeType": "YulTypedName", - "src": "20187:6:18", + "src": "11364:6:18", "type": "" } ] }, { - "nativeSrc": "20212:63:18", + "nativeSrc": "11389:63:18", "nodeType": "YulAssignment", - "src": "20212:63:18", + "src": "11389:63:18", "value": { "arguments": [ { "arguments": [ { "name": "headStart", - "nativeSrc": "20247:9:18", + "nativeSrc": "11424:9:18", "nodeType": "YulIdentifier", - "src": "20247:9:18" + "src": "11424:9:18" }, { "name": "offset", - "nativeSrc": "20258:6:18", + "nativeSrc": "11435:6:18", "nodeType": "YulIdentifier", - "src": "20258:6:18" + "src": "11435:6:18" } ], "functionName": { "name": "add", - "nativeSrc": "20243:3:18", + "nativeSrc": "11420:3:18", "nodeType": "YulIdentifier", - "src": "20243:3:18" + "src": "11420:3:18" }, - "nativeSrc": "20243:22:18", + "nativeSrc": "11420:22:18", "nodeType": "YulFunctionCall", - "src": "20243:22:18" + "src": "11420:22:18" }, { "name": "dataEnd", - "nativeSrc": "20267:7:18", + "nativeSrc": "11444:7:18", "nodeType": "YulIdentifier", - "src": "20267:7:18" + "src": "11444:7:18" } ], "functionName": { - "name": "abi_decode_t_uint256", - "nativeSrc": "20222:20:18", + "name": "abi_decode_t_bytes32", + "nativeSrc": "11399:20:18", "nodeType": "YulIdentifier", - "src": "20222:20:18" + "src": "11399:20:18" }, - "nativeSrc": "20222:53:18", + "nativeSrc": "11399:53:18", "nodeType": "YulFunctionCall", - "src": "20222:53:18" + "src": "11399:53:18" }, "variableNames": [ { "name": "value0", - "nativeSrc": "20212:6:18", + "nativeSrc": "11389:6:18", "nodeType": "YulIdentifier", - "src": "20212:6:18" + "src": "11389:6:18" } ] } ] }, { - "nativeSrc": "20295:118:18", + "nativeSrc": "11472:118:18", "nodeType": "YulBlock", - "src": "20295:118:18", + "src": "11472:118:18", "statements": [ { - "nativeSrc": "20310:16:18", + "nativeSrc": "11487:16:18", "nodeType": "YulVariableDeclaration", - "src": "20310:16:18", + "src": "11487:16:18", "value": { "kind": "number", - "nativeSrc": "20324:2:18", + "nativeSrc": "11501:2:18", "nodeType": "YulLiteral", - "src": "20324:2:18", + "src": "11501:2:18", "type": "", "value": "32" }, "variables": [ - { - "name": "offset", - "nativeSrc": "20314:6:18", - "nodeType": "YulTypedName", - "src": "20314:6:18", - "type": "" - } - ] - }, - { - "nativeSrc": "20340:63:18", - "nodeType": "YulAssignment", - "src": "20340:63:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "20375:9:18", - "nodeType": "YulIdentifier", - "src": "20375:9:18" - }, - { - "name": "offset", - "nativeSrc": "20386:6:18", - "nodeType": "YulIdentifier", - "src": "20386:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "20371:3:18", - "nodeType": "YulIdentifier", - "src": "20371:3:18" - }, - "nativeSrc": "20371:22:18", - "nodeType": "YulFunctionCall", - "src": "20371:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "20395:7:18", - "nodeType": "YulIdentifier", - "src": "20395:7:18" - } - ], - "functionName": { - "name": "abi_decode_t_uint256", - "nativeSrc": "20350:20:18", - "nodeType": "YulIdentifier", - "src": "20350:20:18" - }, - "nativeSrc": "20350:53:18", - "nodeType": "YulFunctionCall", - "src": "20350:53:18" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "20340:6:18", - "nodeType": "YulIdentifier", - "src": "20340:6:18" - } - ] - } - ] - }, - { - "nativeSrc": "20423:288:18", - "nodeType": "YulBlock", - "src": "20423:288:18", - "statements": [ - { - "nativeSrc": "20438:46:18", - "nodeType": "YulVariableDeclaration", - "src": "20438:46:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "20469:9:18", - "nodeType": "YulIdentifier", - "src": "20469:9:18" - }, - { - "kind": "number", - "nativeSrc": "20480:2:18", - "nodeType": "YulLiteral", - "src": "20480:2:18", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "20465:3:18", - "nodeType": "YulIdentifier", - "src": "20465:3:18" - }, - "nativeSrc": "20465:18:18", - "nodeType": "YulFunctionCall", - "src": "20465:18:18" - } - ], - "functionName": { - "name": "calldataload", - "nativeSrc": "20452:12:18", - "nodeType": "YulIdentifier", - "src": "20452:12:18" - }, - "nativeSrc": "20452:32:18", - "nodeType": "YulFunctionCall", - "src": "20452:32:18" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "20442:6:18", - "nodeType": "YulTypedName", - "src": "20442:6:18", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "20531:83:18", - "nodeType": "YulBlock", - "src": "20531:83:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "20533:77:18", - "nodeType": "YulIdentifier", - "src": "20533:77:18" - }, - "nativeSrc": "20533:79:18", - "nodeType": "YulFunctionCall", - "src": "20533:79:18" - }, - "nativeSrc": "20533:79:18", - "nodeType": "YulExpressionStatement", - "src": "20533:79:18" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "offset", - "nativeSrc": "20503:6:18", - "nodeType": "YulIdentifier", - "src": "20503:6:18" - }, - { - "kind": "number", - "nativeSrc": "20511:18:18", - "nodeType": "YulLiteral", - "src": "20511:18:18", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "20500:2:18", - "nodeType": "YulIdentifier", - "src": "20500:2:18" - }, - "nativeSrc": "20500:30:18", - "nodeType": "YulFunctionCall", - "src": "20500:30:18" - }, - "nativeSrc": "20497:117:18", - "nodeType": "YulIf", - "src": "20497:117:18" + { + "name": "offset", + "nativeSrc": "11491:6:18", + "nodeType": "YulTypedName", + "src": "11491:6:18", + "type": "" + } + ] }, { - "nativeSrc": "20628:73:18", + "nativeSrc": "11517:63:18", "nodeType": "YulAssignment", - "src": "20628:73:18", + "src": "11517:63:18", "value": { "arguments": [ { "arguments": [ { "name": "headStart", - "nativeSrc": "20673:9:18", + "nativeSrc": "11552:9:18", "nodeType": "YulIdentifier", - "src": "20673:9:18" + "src": "11552:9:18" }, { "name": "offset", - "nativeSrc": "20684:6:18", + "nativeSrc": "11563:6:18", "nodeType": "YulIdentifier", - "src": "20684:6:18" + "src": "11563:6:18" } ], "functionName": { "name": "add", - "nativeSrc": "20669:3:18", + "nativeSrc": "11548:3:18", "nodeType": "YulIdentifier", - "src": "20669:3:18" + "src": "11548:3:18" }, - "nativeSrc": "20669:22:18", + "nativeSrc": "11548:22:18", "nodeType": "YulFunctionCall", - "src": "20669:22:18" + "src": "11548:22:18" }, { "name": "dataEnd", - "nativeSrc": "20693:7:18", + "nativeSrc": "11572:7:18", "nodeType": "YulIdentifier", - "src": "20693:7:18" + "src": "11572:7:18" } ], "functionName": { - "name": "abi_decode_t_string_memory_ptr", - "nativeSrc": "20638:30:18", + "name": "abi_decode_t_address", + "nativeSrc": "11527:20:18", "nodeType": "YulIdentifier", - "src": "20638:30:18" + "src": "11527:20:18" }, - "nativeSrc": "20638:63:18", + "nativeSrc": "11527:53:18", "nodeType": "YulFunctionCall", - "src": "20638:63:18" + "src": "11527:53:18" }, "variableNames": [ { - "name": "value2", - "nativeSrc": "20628:6:18", + "name": "value1", + "nativeSrc": "11517:6:18", "nodeType": "YulIdentifier", - "src": "20628:6:18" + "src": "11517:6:18" } ] } @@ -72479,370 +71534,976 @@ } ] }, - "name": "abi_decode_tuple_t_uint256t_uint256t_string_memory_ptr", - "nativeSrc": "19919:799:18", + "name": "abi_decode_tuple_t_bytes32t_address", + "nativeSrc": "11123:474:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", - "nativeSrc": "19983:9:18", + "nativeSrc": "11168:9:18", "nodeType": "YulTypedName", - "src": "19983:9:18", + "src": "11168:9:18", "type": "" }, { "name": "dataEnd", - "nativeSrc": "19994:7:18", + "nativeSrc": "11179:7:18", "nodeType": "YulTypedName", - "src": "19994:7:18", + "src": "11179:7:18", "type": "" } ], "returnVariables": [ { "name": "value0", - "nativeSrc": "20006:6:18", + "nativeSrc": "11191:6:18", "nodeType": "YulTypedName", - "src": "20006:6:18", + "src": "11191:6:18", "type": "" }, { "name": "value1", - "nativeSrc": "20014:6:18", - "nodeType": "YulTypedName", - "src": "20014:6:18", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "20022:6:18", + "nativeSrc": "11199:6:18", "nodeType": "YulTypedName", - "src": "20022:6:18", + "src": "11199:6:18", "type": "" } ], - "src": "19919:799:18" + "src": "11123:474:18" }, { "body": { - "nativeSrc": "20807:391:18", + "nativeSrc": "11685:229:18", "nodeType": "YulBlock", - "src": "20807:391:18", + "src": "11685:229:18", "statements": [ { "body": { - "nativeSrc": "20853:83:18", + "nativeSrc": "11790:22:18", "nodeType": "YulBlock", - "src": "20853:83:18", + "src": "11790:22:18", "statements": [ { "expression": { "arguments": [], "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "20855:77:18", + "name": "panic_error_0x41", + "nativeSrc": "11792:16:18", "nodeType": "YulIdentifier", - "src": "20855:77:18" + "src": "11792:16:18" }, - "nativeSrc": "20855:79:18", + "nativeSrc": "11792:18:18", "nodeType": "YulFunctionCall", - "src": "20855:79:18" + "src": "11792:18:18" }, - "nativeSrc": "20855:79:18", + "nativeSrc": "11792:18:18", "nodeType": "YulExpressionStatement", - "src": "20855:79:18" + "src": "11792:18:18" } ] }, "condition": { "arguments": [ { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "20828:7:18", - "nodeType": "YulIdentifier", - "src": "20828:7:18" - }, - { - "name": "headStart", - "nativeSrc": "20837:9:18", - "nodeType": "YulIdentifier", - "src": "20837:9:18" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "20824:3:18", - "nodeType": "YulIdentifier", - "src": "20824:3:18" - }, - "nativeSrc": "20824:23:18", - "nodeType": "YulFunctionCall", - "src": "20824:23:18" + "name": "length", + "nativeSrc": "11762:6:18", + "nodeType": "YulIdentifier", + "src": "11762:6:18" }, { "kind": "number", - "nativeSrc": "20849:2:18", + "nativeSrc": "11770:18:18", "nodeType": "YulLiteral", - "src": "20849:2:18", + "src": "11770:18:18", "type": "", - "value": "64" + "value": "0xffffffffffffffff" } ], "functionName": { - "name": "slt", - "nativeSrc": "20820:3:18", + "name": "gt", + "nativeSrc": "11759:2:18", "nodeType": "YulIdentifier", - "src": "20820:3:18" + "src": "11759:2:18" }, - "nativeSrc": "20820:32:18", + "nativeSrc": "11759:30:18", "nodeType": "YulFunctionCall", - "src": "20820:32:18" + "src": "11759:30:18" }, - "nativeSrc": "20817:119:18", + "nativeSrc": "11756:56:18", "nodeType": "YulIf", - "src": "20817:119:18" + "src": "11756:56:18" }, { - "nativeSrc": "20946:117:18", - "nodeType": "YulBlock", - "src": "20946:117:18", - "statements": [ - { - "nativeSrc": "20961:15:18", - "nodeType": "YulVariableDeclaration", - "src": "20961:15:18", - "value": { + "nativeSrc": "11822:25:18", + "nodeType": "YulAssignment", + "src": "11822:25:18", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "11834:6:18", + "nodeType": "YulIdentifier", + "src": "11834:6:18" + }, + { "kind": "number", - "nativeSrc": "20975:1:18", + "nativeSrc": "11842:4:18", "nodeType": "YulLiteral", - "src": "20975:1:18", + "src": "11842:4:18", "type": "", - "value": "0" + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "11830:3:18", + "nodeType": "YulIdentifier", + "src": "11830:3:18" + }, + "nativeSrc": "11830:17:18", + "nodeType": "YulFunctionCall", + "src": "11830:17:18" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "11822:4:18", + "nodeType": "YulIdentifier", + "src": "11822:4:18" + } + ] + }, + { + "nativeSrc": "11884:23:18", + "nodeType": "YulAssignment", + "src": "11884:23:18", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "11896:4:18", + "nodeType": "YulIdentifier", + "src": "11896:4:18" }, - "variables": [ - { - "name": "offset", - "nativeSrc": "20965:6:18", - "nodeType": "YulTypedName", - "src": "20965:6:18", - "type": "" - } - ] + { + "kind": "number", + "nativeSrc": "11902:4:18", + "nodeType": "YulLiteral", + "src": "11902:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11892:3:18", + "nodeType": "YulIdentifier", + "src": "11892:3:18" }, + "nativeSrc": "11892:15:18", + "nodeType": "YulFunctionCall", + "src": "11892:15:18" + }, + "variableNames": [ { - "nativeSrc": "20990:63:18", - "nodeType": "YulAssignment", - "src": "20990:63:18", - "value": { + "name": "size", + "nativeSrc": "11884:4:18", + "nodeType": "YulIdentifier", + "src": "11884:4:18" + } + ] + } + ] + }, + "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "11603:311:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "11669:6:18", + "nodeType": "YulTypedName", + "src": "11669:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "11680:4:18", + "nodeType": "YulTypedName", + "src": "11680:4:18", + "type": "" + } + ], + "src": "11603:311:18" + }, + { + "body": { + "nativeSrc": "12039:608:18", + "nodeType": "YulBlock", + "src": "12039:608:18", + "statements": [ + { + "nativeSrc": "12049:90:18", + "nodeType": "YulAssignment", + "src": "12049:90:18", + "value": { + "arguments": [ + { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "21025:9:18", - "nodeType": "YulIdentifier", - "src": "21025:9:18" - }, - { - "name": "offset", - "nativeSrc": "21036:6:18", - "nodeType": "YulIdentifier", - "src": "21036:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "21021:3:18", - "nodeType": "YulIdentifier", - "src": "21021:3:18" - }, - "nativeSrc": "21021:22:18", - "nodeType": "YulFunctionCall", - "src": "21021:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "21045:7:18", + "name": "length", + "nativeSrc": "12131:6:18", "nodeType": "YulIdentifier", - "src": "21045:7:18" + "src": "12131:6:18" } ], "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "21000:20:18", + "name": "array_allocation_size_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "12074:56:18", "nodeType": "YulIdentifier", - "src": "21000:20:18" + "src": "12074:56:18" }, - "nativeSrc": "21000:53:18", + "nativeSrc": "12074:64:18", "nodeType": "YulFunctionCall", - "src": "21000:53:18" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "20990:6:18", - "nodeType": "YulIdentifier", - "src": "20990:6:18" - } - ] + "src": "12074:64:18" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "12058:15:18", + "nodeType": "YulIdentifier", + "src": "12058:15:18" + }, + "nativeSrc": "12058:81:18", + "nodeType": "YulFunctionCall", + "src": "12058:81:18" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "12049:5:18", + "nodeType": "YulIdentifier", + "src": "12049:5:18" } ] }, { - "nativeSrc": "21073:118:18", - "nodeType": "YulBlock", - "src": "21073:118:18", - "statements": [ + "nativeSrc": "12148:16:18", + "nodeType": "YulVariableDeclaration", + "src": "12148:16:18", + "value": { + "name": "array", + "nativeSrc": "12159:5:18", + "nodeType": "YulIdentifier", + "src": "12159:5:18" + }, + "variables": [ { - "nativeSrc": "21088:16:18", - "nodeType": "YulVariableDeclaration", - "src": "21088:16:18", - "value": { + "name": "dst", + "nativeSrc": "12152:3:18", + "nodeType": "YulTypedName", + "src": "12152:3:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nativeSrc": "12181:5:18", + "nodeType": "YulIdentifier", + "src": "12181:5:18" + }, + { + "name": "length", + "nativeSrc": "12188:6:18", + "nodeType": "YulIdentifier", + "src": "12188:6:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12174:6:18", + "nodeType": "YulIdentifier", + "src": "12174:6:18" + }, + "nativeSrc": "12174:21:18", + "nodeType": "YulFunctionCall", + "src": "12174:21:18" + }, + "nativeSrc": "12174:21:18", + "nodeType": "YulExpressionStatement", + "src": "12174:21:18" + }, + { + "nativeSrc": "12204:23:18", + "nodeType": "YulAssignment", + "src": "12204:23:18", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "12215:5:18", + "nodeType": "YulIdentifier", + "src": "12215:5:18" + }, + { "kind": "number", - "nativeSrc": "21102:2:18", + "nativeSrc": "12222:4:18", "nodeType": "YulLiteral", - "src": "21102:2:18", + "src": "12222:4:18", "type": "", - "value": "32" + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12211:3:18", + "nodeType": "YulIdentifier", + "src": "12211:3:18" + }, + "nativeSrc": "12211:16:18", + "nodeType": "YulFunctionCall", + "src": "12211:16:18" + }, + "variableNames": [ + { + "name": "dst", + "nativeSrc": "12204:3:18", + "nodeType": "YulIdentifier", + "src": "12204:3:18" + } + ] + }, + { + "nativeSrc": "12237:44:18", + "nodeType": "YulVariableDeclaration", + "src": "12237:44:18", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "12255:6:18", + "nodeType": "YulIdentifier", + "src": "12255:6:18" }, - "variables": [ - { - "name": "offset", - "nativeSrc": "21092:6:18", - "nodeType": "YulTypedName", - "src": "21092:6:18", - "type": "" - } - ] + { + "arguments": [ + { + "name": "length", + "nativeSrc": "12267:6:18", + "nodeType": "YulIdentifier", + "src": "12267:6:18" + }, + { + "kind": "number", + "nativeSrc": "12275:4:18", + "nodeType": "YulLiteral", + "src": "12275:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "12263:3:18", + "nodeType": "YulIdentifier", + "src": "12263:3:18" + }, + "nativeSrc": "12263:17:18", + "nodeType": "YulFunctionCall", + "src": "12263:17:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12251:3:18", + "nodeType": "YulIdentifier", + "src": "12251:3:18" }, + "nativeSrc": "12251:30:18", + "nodeType": "YulFunctionCall", + "src": "12251:30:18" + }, + "variables": [ { - "nativeSrc": "21118:63:18", - "nodeType": "YulAssignment", - "src": "21118:63:18", - "value": { + "name": "srcEnd", + "nativeSrc": "12241:6:18", + "nodeType": "YulTypedName", + "src": "12241:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "12309:103:18", + "nodeType": "YulBlock", + "src": "12309:103:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_81385d8c0b31fffe14be1da910c8bd3a80be4cfa248e04f42ec0faea3132a8ef", + "nativeSrc": "12323:77:18", + "nodeType": "YulIdentifier", + "src": "12323:77:18" + }, + "nativeSrc": "12323:79:18", + "nodeType": "YulFunctionCall", + "src": "12323:79:18" + }, + "nativeSrc": "12323:79:18", + "nodeType": "YulExpressionStatement", + "src": "12323:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "srcEnd", + "nativeSrc": "12296:6:18", + "nodeType": "YulIdentifier", + "src": "12296:6:18" + }, + { + "name": "end", + "nativeSrc": "12304:3:18", + "nodeType": "YulIdentifier", + "src": "12304:3:18" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "12293:2:18", + "nodeType": "YulIdentifier", + "src": "12293:2:18" + }, + "nativeSrc": "12293:15:18", + "nodeType": "YulFunctionCall", + "src": "12293:15:18" + }, + "nativeSrc": "12290:122:18", + "nodeType": "YulIf", + "src": "12290:122:18" + }, + { + "body": { + "nativeSrc": "12497:144:18", + "nodeType": "YulBlock", + "src": "12497:144:18", + "statements": [ + { + "nativeSrc": "12512:21:18", + "nodeType": "YulVariableDeclaration", + "src": "12512:21:18", + "value": { + "name": "src", + "nativeSrc": "12530:3:18", + "nodeType": "YulIdentifier", + "src": "12530:3:18" + }, + "variables": [ + { + "name": "elementPos", + "nativeSrc": "12516:10:18", + "nodeType": "YulTypedName", + "src": "12516:10:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "12554:3:18", + "nodeType": "YulIdentifier", + "src": "12554:3:18" + }, + { + "arguments": [ + { + "name": "elementPos", + "nativeSrc": "12580:10:18", + "nodeType": "YulIdentifier", + "src": "12580:10:18" + }, + { + "name": "end", + "nativeSrc": "12592:3:18", + "nodeType": "YulIdentifier", + "src": "12592:3:18" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "12559:20:18", + "nodeType": "YulIdentifier", + "src": "12559:20:18" + }, + "nativeSrc": "12559:37:18", + "nodeType": "YulFunctionCall", + "src": "12559:37:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12547:6:18", + "nodeType": "YulIdentifier", + "src": "12547:6:18" + }, + "nativeSrc": "12547:50:18", + "nodeType": "YulFunctionCall", + "src": "12547:50:18" + }, + "nativeSrc": "12547:50:18", + "nodeType": "YulExpressionStatement", + "src": "12547:50:18" + }, + { + "nativeSrc": "12610:21:18", + "nodeType": "YulAssignment", + "src": "12610:21:18", + "value": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "12621:3:18", + "nodeType": "YulIdentifier", + "src": "12621:3:18" + }, + { + "kind": "number", + "nativeSrc": "12626:4:18", + "nodeType": "YulLiteral", + "src": "12626:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12617:3:18", + "nodeType": "YulIdentifier", + "src": "12617:3:18" + }, + "nativeSrc": "12617:14:18", + "nodeType": "YulFunctionCall", + "src": "12617:14:18" + }, + "variableNames": [ + { + "name": "dst", + "nativeSrc": "12610:3:18", + "nodeType": "YulIdentifier", + "src": "12610:3:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "src", + "nativeSrc": "12450:3:18", + "nodeType": "YulIdentifier", + "src": "12450:3:18" + }, + { + "name": "srcEnd", + "nativeSrc": "12455:6:18", + "nodeType": "YulIdentifier", + "src": "12455:6:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "12447:2:18", + "nodeType": "YulIdentifier", + "src": "12447:2:18" + }, + "nativeSrc": "12447:15:18", + "nodeType": "YulFunctionCall", + "src": "12447:15:18" + }, + "nativeSrc": "12421:220:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "12463:25:18", + "nodeType": "YulBlock", + "src": "12463:25:18", + "statements": [ + { + "nativeSrc": "12465:21:18", + "nodeType": "YulAssignment", + "src": "12465:21:18", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "12476:3:18", + "nodeType": "YulIdentifier", + "src": "12476:3:18" + }, + { + "kind": "number", + "nativeSrc": "12481:4:18", + "nodeType": "YulLiteral", + "src": "12481:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12472:3:18", + "nodeType": "YulIdentifier", + "src": "12472:3:18" + }, + "nativeSrc": "12472:14:18", + "nodeType": "YulFunctionCall", + "src": "12472:14:18" + }, + "variableNames": [ + { + "name": "src", + "nativeSrc": "12465:3:18", + "nodeType": "YulIdentifier", + "src": "12465:3:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "12425:21:18", + "nodeType": "YulBlock", + "src": "12425:21:18", + "statements": [ + { + "nativeSrc": "12427:17:18", + "nodeType": "YulVariableDeclaration", + "src": "12427:17:18", + "value": { + "name": "offset", + "nativeSrc": "12438:6:18", + "nodeType": "YulIdentifier", + "src": "12438:6:18" + }, + "variables": [ + { + "name": "src", + "nativeSrc": "12431:3:18", + "nodeType": "YulTypedName", + "src": "12431:3:18", + "type": "" + } + ] + } + ] + }, + "src": "12421:220:18" + } + ] + }, + "name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "11937:710:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "12009:6:18", + "nodeType": "YulTypedName", + "src": "12009:6:18", + "type": "" + }, + { + "name": "length", + "nativeSrc": "12017:6:18", + "nodeType": "YulTypedName", + "src": "12017:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "12025:3:18", + "nodeType": "YulTypedName", + "src": "12025:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "12033:5:18", + "nodeType": "YulTypedName", + "src": "12033:5:18", + "type": "" + } + ], + "src": "11937:710:18" + }, + { + "body": { + "nativeSrc": "12747:293:18", + "nodeType": "YulBlock", + "src": "12747:293:18", + "statements": [ + { + "body": { + "nativeSrc": "12796:83:18", + "nodeType": "YulBlock", + "src": "12796:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "12798:77:18", + "nodeType": "YulIdentifier", + "src": "12798:77:18" + }, + "nativeSrc": "12798:79:18", + "nodeType": "YulFunctionCall", + "src": "12798:79:18" + }, + "nativeSrc": "12798:79:18", + "nodeType": "YulExpressionStatement", + "src": "12798:79:18" + } + ] + }, + "condition": { + "arguments": [ + { "arguments": [ { "arguments": [ { - "name": "headStart", - "nativeSrc": "21153:9:18", + "name": "offset", + "nativeSrc": "12775:6:18", "nodeType": "YulIdentifier", - "src": "21153:9:18" + "src": "12775:6:18" }, { - "name": "offset", - "nativeSrc": "21164:6:18", - "nodeType": "YulIdentifier", - "src": "21164:6:18" + "kind": "number", + "nativeSrc": "12783:4:18", + "nodeType": "YulLiteral", + "src": "12783:4:18", + "type": "", + "value": "0x1f" } ], "functionName": { "name": "add", - "nativeSrc": "21149:3:18", + "nativeSrc": "12771:3:18", "nodeType": "YulIdentifier", - "src": "21149:3:18" + "src": "12771:3:18" }, - "nativeSrc": "21149:22:18", + "nativeSrc": "12771:17:18", "nodeType": "YulFunctionCall", - "src": "21149:22:18" + "src": "12771:17:18" }, { - "name": "dataEnd", - "nativeSrc": "21173:7:18", + "name": "end", + "nativeSrc": "12790:3:18", "nodeType": "YulIdentifier", - "src": "21173:7:18" + "src": "12790:3:18" } ], "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "21128:20:18", + "name": "slt", + "nativeSrc": "12767:3:18", "nodeType": "YulIdentifier", - "src": "21128:20:18" + "src": "12767:3:18" }, - "nativeSrc": "21128:53:18", + "nativeSrc": "12767:27:18", "nodeType": "YulFunctionCall", - "src": "21128:53:18" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "21118:6:18", + "src": "12767:27:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "12760:6:18", + "nodeType": "YulIdentifier", + "src": "12760:6:18" + }, + "nativeSrc": "12760:35:18", + "nodeType": "YulFunctionCall", + "src": "12760:35:18" + }, + "nativeSrc": "12757:122:18", + "nodeType": "YulIf", + "src": "12757:122:18" + }, + { + "nativeSrc": "12888:34:18", + "nodeType": "YulVariableDeclaration", + "src": "12888:34:18", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "12915:6:18", + "nodeType": "YulIdentifier", + "src": "12915:6:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "12902:12:18", + "nodeType": "YulIdentifier", + "src": "12902:12:18" + }, + "nativeSrc": "12902:20:18", + "nodeType": "YulFunctionCall", + "src": "12902:20:18" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "12892:6:18", + "nodeType": "YulTypedName", + "src": "12892:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "12931:103:18", + "nodeType": "YulAssignment", + "src": "12931:103:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "13007:6:18", + "nodeType": "YulIdentifier", + "src": "13007:6:18" + }, + { + "kind": "number", + "nativeSrc": "13015:4:18", + "nodeType": "YulLiteral", + "src": "13015:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13003:3:18", "nodeType": "YulIdentifier", - "src": "21118:6:18" - } - ] + "src": "13003:3:18" + }, + "nativeSrc": "13003:17:18", + "nodeType": "YulFunctionCall", + "src": "13003:17:18" + }, + { + "name": "length", + "nativeSrc": "13022:6:18", + "nodeType": "YulIdentifier", + "src": "13022:6:18" + }, + { + "name": "end", + "nativeSrc": "13030:3:18", + "nodeType": "YulIdentifier", + "src": "13030:3:18" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "12940:62:18", + "nodeType": "YulIdentifier", + "src": "12940:62:18" + }, + "nativeSrc": "12940:94:18", + "nodeType": "YulFunctionCall", + "src": "12940:94:18" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "12931:5:18", + "nodeType": "YulIdentifier", + "src": "12931:5:18" } ] } ] }, - "name": "abi_decode_tuple_t_addresst_address", - "nativeSrc": "20724:474:18", + "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "12670:370:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nativeSrc": "20769:9:18", + "name": "offset", + "nativeSrc": "12725:6:18", "nodeType": "YulTypedName", - "src": "20769:9:18", + "src": "12725:6:18", "type": "" }, { - "name": "dataEnd", - "nativeSrc": "20780:7:18", + "name": "end", + "nativeSrc": "12733:3:18", "nodeType": "YulTypedName", - "src": "20780:7:18", + "src": "12733:3:18", "type": "" } ], "returnVariables": [ { - "name": "value0", - "nativeSrc": "20792:6:18", - "nodeType": "YulTypedName", - "src": "20792:6:18", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "20800:6:18", + "name": "array", + "nativeSrc": "12741:5:18", "nodeType": "YulTypedName", - "src": "20800:6:18", + "src": "12741:5:18", "type": "" } ], - "src": "20724:474:18" + "src": "12670:370:18" }, { "body": { - "nativeSrc": "21347:946:18", + "nativeSrc": "13179:761:18", "nodeType": "YulBlock", - "src": "21347:946:18", + "src": "13179:761:18", "statements": [ { "body": { - "nativeSrc": "21394:83:18", + "nativeSrc": "13225:83:18", "nodeType": "YulBlock", - "src": "21394:83:18", + "src": "13225:83:18", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "21396:77:18", + "nativeSrc": "13227:77:18", "nodeType": "YulIdentifier", - "src": "21396:77:18" + "src": "13227:77:18" }, - "nativeSrc": "21396:79:18", + "nativeSrc": "13227:79:18", "nodeType": "YulFunctionCall", - "src": "21396:79:18" + "src": "13227:79:18" }, - "nativeSrc": "21396:79:18", + "nativeSrc": "13227:79:18", "nodeType": "YulExpressionStatement", - "src": "21396:79:18" + "src": "13227:79:18" } ] }, @@ -72852,475 +72513,131 @@ "arguments": [ { "name": "dataEnd", - "nativeSrc": "21368:7:18", + "nativeSrc": "13200:7:18", "nodeType": "YulIdentifier", - "src": "21368:7:18" + "src": "13200:7:18" }, { "name": "headStart", - "nativeSrc": "21377:9:18", + "nativeSrc": "13209:9:18", "nodeType": "YulIdentifier", - "src": "21377:9:18" + "src": "13209:9:18" } ], "functionName": { "name": "sub", - "nativeSrc": "21364:3:18", + "nativeSrc": "13196:3:18", "nodeType": "YulIdentifier", - "src": "21364:3:18" + "src": "13196:3:18" }, - "nativeSrc": "21364:23:18", + "nativeSrc": "13196:23:18", "nodeType": "YulFunctionCall", - "src": "21364:23:18" + "src": "13196:23:18" }, { "kind": "number", - "nativeSrc": "21389:3:18", + "nativeSrc": "13221:2:18", "nodeType": "YulLiteral", - "src": "21389:3:18", + "src": "13221:2:18", "type": "", - "value": "160" + "value": "64" } ], "functionName": { "name": "slt", - "nativeSrc": "21360:3:18", + "nativeSrc": "13192:3:18", "nodeType": "YulIdentifier", - "src": "21360:3:18" + "src": "13192:3:18" }, - "nativeSrc": "21360:33:18", + "nativeSrc": "13192:32:18", "nodeType": "YulFunctionCall", - "src": "21360:33:18" + "src": "13192:32:18" }, - "nativeSrc": "21357:120:18", + "nativeSrc": "13189:119:18", "nodeType": "YulIf", - "src": "21357:120:18" - }, - { - "nativeSrc": "21487:117:18", - "nodeType": "YulBlock", - "src": "21487:117:18", - "statements": [ - { - "nativeSrc": "21502:15:18", - "nodeType": "YulVariableDeclaration", - "src": "21502:15:18", - "value": { - "kind": "number", - "nativeSrc": "21516:1:18", - "nodeType": "YulLiteral", - "src": "21516:1:18", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "21506:6:18", - "nodeType": "YulTypedName", - "src": "21506:6:18", - "type": "" - } - ] - }, - { - "nativeSrc": "21531:63:18", - "nodeType": "YulAssignment", - "src": "21531:63:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "21566:9:18", - "nodeType": "YulIdentifier", - "src": "21566:9:18" - }, - { - "name": "offset", - "nativeSrc": "21577:6:18", - "nodeType": "YulIdentifier", - "src": "21577:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "21562:3:18", - "nodeType": "YulIdentifier", - "src": "21562:3:18" - }, - "nativeSrc": "21562:22:18", - "nodeType": "YulFunctionCall", - "src": "21562:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "21586:7:18", - "nodeType": "YulIdentifier", - "src": "21586:7:18" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "21541:20:18", - "nodeType": "YulIdentifier", - "src": "21541:20:18" - }, - "nativeSrc": "21541:53:18", - "nodeType": "YulFunctionCall", - "src": "21541:53:18" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "21531:6:18", - "nodeType": "YulIdentifier", - "src": "21531:6:18" - } - ] - } - ] - }, - { - "nativeSrc": "21614:118:18", - "nodeType": "YulBlock", - "src": "21614:118:18", - "statements": [ - { - "nativeSrc": "21629:16:18", - "nodeType": "YulVariableDeclaration", - "src": "21629:16:18", - "value": { - "kind": "number", - "nativeSrc": "21643:2:18", - "nodeType": "YulLiteral", - "src": "21643:2:18", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "21633:6:18", - "nodeType": "YulTypedName", - "src": "21633:6:18", - "type": "" - } - ] - }, - { - "nativeSrc": "21659:63:18", - "nodeType": "YulAssignment", - "src": "21659:63:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "21694:9:18", - "nodeType": "YulIdentifier", - "src": "21694:9:18" - }, - { - "name": "offset", - "nativeSrc": "21705:6:18", - "nodeType": "YulIdentifier", - "src": "21705:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "21690:3:18", - "nodeType": "YulIdentifier", - "src": "21690:3:18" - }, - "nativeSrc": "21690:22:18", - "nodeType": "YulFunctionCall", - "src": "21690:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "21714:7:18", - "nodeType": "YulIdentifier", - "src": "21714:7:18" - } - ], - "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "21669:20:18", - "nodeType": "YulIdentifier", - "src": "21669:20:18" - }, - "nativeSrc": "21669:53:18", - "nodeType": "YulFunctionCall", - "src": "21669:53:18" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "21659:6:18", - "nodeType": "YulIdentifier", - "src": "21659:6:18" - } - ] - } - ] - }, - { - "nativeSrc": "21742:118:18", - "nodeType": "YulBlock", - "src": "21742:118:18", - "statements": [ - { - "nativeSrc": "21757:16:18", - "nodeType": "YulVariableDeclaration", - "src": "21757:16:18", - "value": { - "kind": "number", - "nativeSrc": "21771:2:18", - "nodeType": "YulLiteral", - "src": "21771:2:18", - "type": "", - "value": "64" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "21761:6:18", - "nodeType": "YulTypedName", - "src": "21761:6:18", - "type": "" - } - ] - }, - { - "nativeSrc": "21787:63:18", - "nodeType": "YulAssignment", - "src": "21787:63:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "21822:9:18", - "nodeType": "YulIdentifier", - "src": "21822:9:18" - }, - { - "name": "offset", - "nativeSrc": "21833:6:18", - "nodeType": "YulIdentifier", - "src": "21833:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "21818:3:18", - "nodeType": "YulIdentifier", - "src": "21818:3:18" - }, - "nativeSrc": "21818:22:18", - "nodeType": "YulFunctionCall", - "src": "21818:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "21842:7:18", - "nodeType": "YulIdentifier", - "src": "21842:7:18" - } - ], - "functionName": { - "name": "abi_decode_t_uint256", - "nativeSrc": "21797:20:18", - "nodeType": "YulIdentifier", - "src": "21797:20:18" - }, - "nativeSrc": "21797:53:18", - "nodeType": "YulFunctionCall", - "src": "21797:53:18" - }, - "variableNames": [ - { - "name": "value2", - "nativeSrc": "21787:6:18", - "nodeType": "YulIdentifier", - "src": "21787:6:18" - } - ] - } - ] - }, - { - "nativeSrc": "21870:118:18", - "nodeType": "YulBlock", - "src": "21870:118:18", - "statements": [ - { - "nativeSrc": "21885:16:18", - "nodeType": "YulVariableDeclaration", - "src": "21885:16:18", - "value": { - "kind": "number", - "nativeSrc": "21899:2:18", - "nodeType": "YulLiteral", - "src": "21899:2:18", - "type": "", - "value": "96" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "21889:6:18", - "nodeType": "YulTypedName", - "src": "21889:6:18", - "type": "" - } - ] - }, - { - "nativeSrc": "21915:63:18", - "nodeType": "YulAssignment", - "src": "21915:63:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "21950:9:18", - "nodeType": "YulIdentifier", - "src": "21950:9:18" - }, - { - "name": "offset", - "nativeSrc": "21961:6:18", - "nodeType": "YulIdentifier", - "src": "21961:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "21946:3:18", - "nodeType": "YulIdentifier", - "src": "21946:3:18" - }, - "nativeSrc": "21946:22:18", - "nodeType": "YulFunctionCall", - "src": "21946:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "21970:7:18", - "nodeType": "YulIdentifier", - "src": "21970:7:18" - } - ], - "functionName": { - "name": "abi_decode_t_uint256", - "nativeSrc": "21925:20:18", - "nodeType": "YulIdentifier", - "src": "21925:20:18" - }, - "nativeSrc": "21925:53:18", - "nodeType": "YulFunctionCall", - "src": "21925:53:18" - }, - "variableNames": [ - { - "name": "value3", - "nativeSrc": "21915:6:18", - "nodeType": "YulIdentifier", - "src": "21915:6:18" - } - ] - } - ] + "src": "13189:119:18" }, { - "nativeSrc": "21998:288:18", + "nativeSrc": "13318:302:18", "nodeType": "YulBlock", - "src": "21998:288:18", + "src": "13318:302:18", "statements": [ { - "nativeSrc": "22013:47:18", + "nativeSrc": "13333:45:18", "nodeType": "YulVariableDeclaration", - "src": "22013:47:18", + "src": "13333:45:18", "value": { "arguments": [ { "arguments": [ { "name": "headStart", - "nativeSrc": "22044:9:18", + "nativeSrc": "13364:9:18", "nodeType": "YulIdentifier", - "src": "22044:9:18" + "src": "13364:9:18" }, { "kind": "number", - "nativeSrc": "22055:3:18", + "nativeSrc": "13375:1:18", "nodeType": "YulLiteral", - "src": "22055:3:18", + "src": "13375:1:18", "type": "", - "value": "128" + "value": "0" } ], "functionName": { "name": "add", - "nativeSrc": "22040:3:18", + "nativeSrc": "13360:3:18", "nodeType": "YulIdentifier", - "src": "22040:3:18" + "src": "13360:3:18" }, - "nativeSrc": "22040:19:18", + "nativeSrc": "13360:17:18", "nodeType": "YulFunctionCall", - "src": "22040:19:18" + "src": "13360:17:18" } ], "functionName": { "name": "calldataload", - "nativeSrc": "22027:12:18", + "nativeSrc": "13347:12:18", "nodeType": "YulIdentifier", - "src": "22027:12:18" + "src": "13347:12:18" }, - "nativeSrc": "22027:33:18", + "nativeSrc": "13347:31:18", "nodeType": "YulFunctionCall", - "src": "22027:33:18" + "src": "13347:31:18" }, "variables": [ { "name": "offset", - "nativeSrc": "22017:6:18", + "nativeSrc": "13337:6:18", "nodeType": "YulTypedName", - "src": "22017:6:18", + "src": "13337:6:18", "type": "" } ] }, { "body": { - "nativeSrc": "22107:83:18", + "nativeSrc": "13425:83:18", "nodeType": "YulBlock", - "src": "22107:83:18", + "src": "13425:83:18", "statements": [ { "expression": { "arguments": [], "functionName": { "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "22109:77:18", + "nativeSrc": "13427:77:18", "nodeType": "YulIdentifier", - "src": "22109:77:18" + "src": "13427:77:18" }, - "nativeSrc": "22109:79:18", + "nativeSrc": "13427:79:18", "nodeType": "YulFunctionCall", - "src": "22109:79:18" + "src": "13427:79:18" }, - "nativeSrc": "22109:79:18", + "nativeSrc": "13427:79:18", "nodeType": "YulExpressionStatement", - "src": "22109:79:18" + "src": "13427:79:18" } ] }, @@ -73328,486 +72645,261 @@ "arguments": [ { "name": "offset", - "nativeSrc": "22079:6:18", + "nativeSrc": "13397:6:18", "nodeType": "YulIdentifier", - "src": "22079:6:18" + "src": "13397:6:18" }, { "kind": "number", - "nativeSrc": "22087:18:18", + "nativeSrc": "13405:18:18", "nodeType": "YulLiteral", - "src": "22087:18:18", + "src": "13405:18:18", "type": "", "value": "0xffffffffffffffff" } ], "functionName": { "name": "gt", - "nativeSrc": "22076:2:18", - "nodeType": "YulIdentifier", - "src": "22076:2:18" - }, - "nativeSrc": "22076:30:18", - "nodeType": "YulFunctionCall", - "src": "22076:30:18" - }, - "nativeSrc": "22073:117:18", - "nodeType": "YulIf", - "src": "22073:117:18" - }, - { - "nativeSrc": "22204:72:18", - "nodeType": "YulAssignment", - "src": "22204:72:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "22248:9:18", - "nodeType": "YulIdentifier", - "src": "22248:9:18" - }, - { - "name": "offset", - "nativeSrc": "22259:6:18", - "nodeType": "YulIdentifier", - "src": "22259:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "22244:3:18", - "nodeType": "YulIdentifier", - "src": "22244:3:18" - }, - "nativeSrc": "22244:22:18", - "nodeType": "YulFunctionCall", - "src": "22244:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "22268:7:18", - "nodeType": "YulIdentifier", - "src": "22268:7:18" - } - ], - "functionName": { - "name": "abi_decode_t_bytes_memory_ptr", - "nativeSrc": "22214:29:18", - "nodeType": "YulIdentifier", - "src": "22214:29:18" - }, - "nativeSrc": "22214:62:18", - "nodeType": "YulFunctionCall", - "src": "22214:62:18" - }, - "variableNames": [ - { - "name": "value4", - "nativeSrc": "22204:6:18", - "nodeType": "YulIdentifier", - "src": "22204:6:18" - } - ] - } - ] - } - ] - }, - "name": "abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr", - "nativeSrc": "21204:1089:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "21285:9:18", - "nodeType": "YulTypedName", - "src": "21285:9:18", - "type": "" - }, - { - "name": "dataEnd", - "nativeSrc": "21296:7:18", - "nodeType": "YulTypedName", - "src": "21296:7:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "value0", - "nativeSrc": "21308:6:18", - "nodeType": "YulTypedName", - "src": "21308:6:18", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "21316:6:18", - "nodeType": "YulTypedName", - "src": "21316:6:18", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "21324:6:18", - "nodeType": "YulTypedName", - "src": "21324:6:18", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "21332:6:18", - "nodeType": "YulTypedName", - "src": "21332:6:18", - "type": "" - }, - { - "name": "value4", - "nativeSrc": "21340:6:18", - "nodeType": "YulTypedName", - "src": "21340:6:18", - "type": "" - } - ], - "src": "21204:1089:18" - }, - { - "body": { - "nativeSrc": "22399:519:18", - "nodeType": "YulBlock", - "src": "22399:519:18", - "statements": [ - { - "body": { - "nativeSrc": "22445:83:18", - "nodeType": "YulBlock", - "src": "22445:83:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "22447:77:18", - "nodeType": "YulIdentifier", - "src": "22447:77:18" - }, - "nativeSrc": "22447:79:18", - "nodeType": "YulFunctionCall", - "src": "22447:79:18" - }, - "nativeSrc": "22447:79:18", - "nodeType": "YulExpressionStatement", - "src": "22447:79:18" - } - ] - }, - "condition": { - "arguments": [ - { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "22420:7:18", - "nodeType": "YulIdentifier", - "src": "22420:7:18" - }, - { - "name": "headStart", - "nativeSrc": "22429:9:18", - "nodeType": "YulIdentifier", - "src": "22429:9:18" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "22416:3:18", + "nativeSrc": "13394:2:18", "nodeType": "YulIdentifier", - "src": "22416:3:18" + "src": "13394:2:18" }, - "nativeSrc": "22416:23:18", + "nativeSrc": "13394:30:18", "nodeType": "YulFunctionCall", - "src": "22416:23:18" - }, - { - "kind": "number", - "nativeSrc": "22441:2:18", - "nodeType": "YulLiteral", - "src": "22441:2:18", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "slt", - "nativeSrc": "22412:3:18", - "nodeType": "YulIdentifier", - "src": "22412:3:18" - }, - "nativeSrc": "22412:32:18", - "nodeType": "YulFunctionCall", - "src": "22412:32:18" - }, - "nativeSrc": "22409:119:18", - "nodeType": "YulIf", - "src": "22409:119:18" - }, - { - "nativeSrc": "22538:117:18", - "nodeType": "YulBlock", - "src": "22538:117:18", - "statements": [ - { - "nativeSrc": "22553:15:18", - "nodeType": "YulVariableDeclaration", - "src": "22553:15:18", - "value": { - "kind": "number", - "nativeSrc": "22567:1:18", - "nodeType": "YulLiteral", - "src": "22567:1:18", - "type": "", - "value": "0" + "src": "13394:30:18" }, - "variables": [ - { - "name": "offset", - "nativeSrc": "22557:6:18", - "nodeType": "YulTypedName", - "src": "22557:6:18", - "type": "" - } - ] + "nativeSrc": "13391:117:18", + "nodeType": "YulIf", + "src": "13391:117:18" }, { - "nativeSrc": "22582:63:18", + "nativeSrc": "13522:88:18", "nodeType": "YulAssignment", - "src": "22582:63:18", + "src": "13522:88:18", "value": { "arguments": [ { "arguments": [ { "name": "headStart", - "nativeSrc": "22617:9:18", + "nativeSrc": "13582:9:18", "nodeType": "YulIdentifier", - "src": "22617:9:18" + "src": "13582:9:18" }, { "name": "offset", - "nativeSrc": "22628:6:18", + "nativeSrc": "13593:6:18", "nodeType": "YulIdentifier", - "src": "22628:6:18" + "src": "13593:6:18" } ], "functionName": { "name": "add", - "nativeSrc": "22613:3:18", + "nativeSrc": "13578:3:18", "nodeType": "YulIdentifier", - "src": "22613:3:18" + "src": "13578:3:18" }, - "nativeSrc": "22613:22:18", + "nativeSrc": "13578:22:18", "nodeType": "YulFunctionCall", - "src": "22613:22:18" + "src": "13578:22:18" }, { "name": "dataEnd", - "nativeSrc": "22637:7:18", + "nativeSrc": "13602:7:18", "nodeType": "YulIdentifier", - "src": "22637:7:18" + "src": "13602:7:18" } ], "functionName": { - "name": "abi_decode_t_address", - "nativeSrc": "22592:20:18", + "name": "abi_decode_t_array$_t_address_$dyn_memory_ptr", + "nativeSrc": "13532:45:18", "nodeType": "YulIdentifier", - "src": "22592:20:18" + "src": "13532:45:18" }, - "nativeSrc": "22592:53:18", + "nativeSrc": "13532:78:18", "nodeType": "YulFunctionCall", - "src": "22592:53:18" + "src": "13532:78:18" }, "variableNames": [ { "name": "value0", - "nativeSrc": "22582:6:18", + "nativeSrc": "13522:6:18", "nodeType": "YulIdentifier", - "src": "22582:6:18" + "src": "13522:6:18" } ] } ] }, { - "nativeSrc": "22665:118:18", + "nativeSrc": "13630:303:18", "nodeType": "YulBlock", - "src": "22665:118:18", + "src": "13630:303:18", "statements": [ { - "nativeSrc": "22680:16:18", + "nativeSrc": "13645:46:18", "nodeType": "YulVariableDeclaration", - "src": "22680:16:18", - "value": { - "kind": "number", - "nativeSrc": "22694:2:18", - "nodeType": "YulLiteral", - "src": "22694:2:18", - "type": "", - "value": "32" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "22684:6:18", - "nodeType": "YulTypedName", - "src": "22684:6:18", - "type": "" - } - ] - }, - { - "nativeSrc": "22710:63:18", - "nodeType": "YulAssignment", - "src": "22710:63:18", + "src": "13645:46:18", "value": { "arguments": [ { "arguments": [ { "name": "headStart", - "nativeSrc": "22745:9:18", + "nativeSrc": "13676:9:18", "nodeType": "YulIdentifier", - "src": "22745:9:18" + "src": "13676:9:18" }, { - "name": "offset", - "nativeSrc": "22756:6:18", - "nodeType": "YulIdentifier", - "src": "22756:6:18" + "kind": "number", + "nativeSrc": "13687:2:18", + "nodeType": "YulLiteral", + "src": "13687:2:18", + "type": "", + "value": "32" } ], "functionName": { "name": "add", - "nativeSrc": "22741:3:18", + "nativeSrc": "13672:3:18", "nodeType": "YulIdentifier", - "src": "22741:3:18" + "src": "13672:3:18" }, - "nativeSrc": "22741:22:18", + "nativeSrc": "13672:18:18", "nodeType": "YulFunctionCall", - "src": "22741:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "22765:7:18", - "nodeType": "YulIdentifier", - "src": "22765:7:18" + "src": "13672:18:18" } ], "functionName": { - "name": "abi_decode_t_uint256", - "nativeSrc": "22720:20:18", + "name": "calldataload", + "nativeSrc": "13659:12:18", "nodeType": "YulIdentifier", - "src": "22720:20:18" + "src": "13659:12:18" }, - "nativeSrc": "22720:53:18", + "nativeSrc": "13659:32:18", "nodeType": "YulFunctionCall", - "src": "22720:53:18" - }, - "variableNames": [ - { - "name": "value1", - "nativeSrc": "22710:6:18", - "nodeType": "YulIdentifier", - "src": "22710:6:18" - } - ] - } - ] - }, - { - "nativeSrc": "22793:118:18", - "nodeType": "YulBlock", - "src": "22793:118:18", - "statements": [ - { - "nativeSrc": "22808:16:18", - "nodeType": "YulVariableDeclaration", - "src": "22808:16:18", - "value": { - "kind": "number", - "nativeSrc": "22822:2:18", - "nodeType": "YulLiteral", - "src": "22822:2:18", - "type": "", - "value": "64" + "src": "13659:32:18" }, "variables": [ { "name": "offset", - "nativeSrc": "22812:6:18", + "nativeSrc": "13649:6:18", "nodeType": "YulTypedName", - "src": "22812:6:18", + "src": "13649:6:18", "type": "" } ] }, { - "nativeSrc": "22838:63:18", + "body": { + "nativeSrc": "13738:83:18", + "nodeType": "YulBlock", + "src": "13738:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "13740:77:18", + "nodeType": "YulIdentifier", + "src": "13740:77:18" + }, + "nativeSrc": "13740:79:18", + "nodeType": "YulFunctionCall", + "src": "13740:79:18" + }, + "nativeSrc": "13740:79:18", + "nodeType": "YulExpressionStatement", + "src": "13740:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "13710:6:18", + "nodeType": "YulIdentifier", + "src": "13710:6:18" + }, + { + "kind": "number", + "nativeSrc": "13718:18:18", + "nodeType": "YulLiteral", + "src": "13718:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "13707:2:18", + "nodeType": "YulIdentifier", + "src": "13707:2:18" + }, + "nativeSrc": "13707:30:18", + "nodeType": "YulFunctionCall", + "src": "13707:30:18" + }, + "nativeSrc": "13704:117:18", + "nodeType": "YulIf", + "src": "13704:117:18" + }, + { + "nativeSrc": "13835:88:18", "nodeType": "YulAssignment", - "src": "22838:63:18", + "src": "13835:88:18", "value": { "arguments": [ { "arguments": [ { "name": "headStart", - "nativeSrc": "22873:9:18", + "nativeSrc": "13895:9:18", "nodeType": "YulIdentifier", - "src": "22873:9:18" + "src": "13895:9:18" }, { "name": "offset", - "nativeSrc": "22884:6:18", + "nativeSrc": "13906:6:18", "nodeType": "YulIdentifier", - "src": "22884:6:18" + "src": "13906:6:18" } ], "functionName": { "name": "add", - "nativeSrc": "22869:3:18", + "nativeSrc": "13891:3:18", "nodeType": "YulIdentifier", - "src": "22869:3:18" + "src": "13891:3:18" }, - "nativeSrc": "22869:22:18", + "nativeSrc": "13891:22:18", "nodeType": "YulFunctionCall", - "src": "22869:22:18" + "src": "13891:22:18" }, { "name": "dataEnd", - "nativeSrc": "22893:7:18", + "nativeSrc": "13915:7:18", "nodeType": "YulIdentifier", - "src": "22893:7:18" + "src": "13915:7:18" } ], "functionName": { - "name": "abi_decode_t_uint256", - "nativeSrc": "22848:20:18", + "name": "abi_decode_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "13845:45:18", "nodeType": "YulIdentifier", - "src": "22848:20:18" + "src": "13845:45:18" }, - "nativeSrc": "22848:53:18", + "nativeSrc": "13845:78:18", "nodeType": "YulFunctionCall", - "src": "22848:53:18" + "src": "13845:78:18" }, "variableNames": [ { - "name": "value2", - "nativeSrc": "22838:6:18", + "name": "value1", + "nativeSrc": "13835:6:18", "nodeType": "YulIdentifier", - "src": "22838:6:18" + "src": "13835:6:18" } ] } @@ -73815,2685 +72907,3178 @@ } ] }, - "name": "abi_decode_tuple_t_addresst_uint256t_uint256", - "nativeSrc": "22299:619:18", + "name": "abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "13046:894:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", - "nativeSrc": "22353:9:18", + "nativeSrc": "13141:9:18", "nodeType": "YulTypedName", - "src": "22353:9:18", + "src": "13141:9:18", "type": "" }, { "name": "dataEnd", - "nativeSrc": "22364:7:18", + "nativeSrc": "13152:7:18", "nodeType": "YulTypedName", - "src": "22364:7:18", + "src": "13152:7:18", "type": "" } ], "returnVariables": [ { "name": "value0", - "nativeSrc": "22376:6:18", + "nativeSrc": "13164:6:18", "nodeType": "YulTypedName", - "src": "22376:6:18", + "src": "13164:6:18", "type": "" }, { "name": "value1", - "nativeSrc": "22384:6:18", - "nodeType": "YulTypedName", - "src": "22384:6:18", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "22392:6:18", + "nativeSrc": "13172:6:18", "nodeType": "YulTypedName", - "src": "22392:6:18", + "src": "13172:6:18", "type": "" } ], - "src": "22299:619:18" + "src": "13046:894:18" }, { "body": { - "nativeSrc": "23038:34:18", + "nativeSrc": "14020:40:18", "nodeType": "YulBlock", - "src": "23038:34:18", + "src": "14020:40:18", "statements": [ { - "nativeSrc": "23048:18:18", + "nativeSrc": "14031:22:18", "nodeType": "YulAssignment", - "src": "23048:18:18", + "src": "14031:22:18", "value": { - "name": "pos", - "nativeSrc": "23063:3:18", - "nodeType": "YulIdentifier", - "src": "23063:3:18" + "arguments": [ + { + "name": "value", + "nativeSrc": "14047:5:18", + "nodeType": "YulIdentifier", + "src": "14047:5:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "14041:5:18", + "nodeType": "YulIdentifier", + "src": "14041:5:18" + }, + "nativeSrc": "14041:12:18", + "nodeType": "YulFunctionCall", + "src": "14041:12:18" }, "variableNames": [ { - "name": "updated_pos", - "nativeSrc": "23048:11:18", + "name": "length", + "nativeSrc": "14031:6:18", "nodeType": "YulIdentifier", - "src": "23048:11:18" + "src": "14031:6:18" } ] } ] }, - "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "22924:148:18", + "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "13946:114:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", - "nativeSrc": "23010:3:18", - "nodeType": "YulTypedName", - "src": "23010:3:18", - "type": "" - }, - { - "name": "length", - "nativeSrc": "23015:6:18", + "name": "value", + "nativeSrc": "14003:5:18", "nodeType": "YulTypedName", - "src": "23015:6:18", + "src": "14003:5:18", "type": "" } ], "returnVariables": [ { - "name": "updated_pos", - "nativeSrc": "23026:11:18", + "name": "length", + "nativeSrc": "14013:6:18", "nodeType": "YulTypedName", - "src": "23026:11:18", + "src": "14013:6:18", "type": "" } ], - "src": "22924:148:18" + "src": "13946:114:18" }, { "body": { - "nativeSrc": "23184:55:18", + "nativeSrc": "14177:73:18", "nodeType": "YulBlock", - "src": "23184:55:18", + "src": "14177:73:18", "statements": [ { "expression": { "arguments": [ { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "23206:6:18", - "nodeType": "YulIdentifier", - "src": "23206:6:18" - }, - { - "kind": "number", - "nativeSrc": "23214:1:18", - "nodeType": "YulLiteral", - "src": "23214:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "23202:3:18", - "nodeType": "YulIdentifier", - "src": "23202:3:18" - }, - "nativeSrc": "23202:14:18", - "nodeType": "YulFunctionCall", - "src": "23202:14:18" + "name": "pos", + "nativeSrc": "14194:3:18", + "nodeType": "YulIdentifier", + "src": "14194:3:18" }, { - "hexValue": "697066733a2f2f", - "kind": "string", - "nativeSrc": "23218:9:18", - "nodeType": "YulLiteral", - "src": "23218:9:18", - "type": "", - "value": "ipfs://" + "name": "length", + "nativeSrc": "14199:6:18", + "nodeType": "YulIdentifier", + "src": "14199:6:18" } ], "functionName": { "name": "mstore", - "nativeSrc": "23195:6:18", + "nativeSrc": "14187:6:18", "nodeType": "YulIdentifier", - "src": "23195:6:18" + "src": "14187:6:18" }, - "nativeSrc": "23195:33:18", + "nativeSrc": "14187:19:18", "nodeType": "YulFunctionCall", - "src": "23195:33:18" + "src": "14187:19:18" }, - "nativeSrc": "23195:33:18", + "nativeSrc": "14187:19:18", "nodeType": "YulExpressionStatement", - "src": "23195:33:18" - } - ] - }, - "name": "store_literal_in_memory_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe", - "nativeSrc": "23078:161:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nativeSrc": "23176:6:18", - "nodeType": "YulTypedName", - "src": "23176:6:18", - "type": "" - } - ], - "src": "23078:161:18" - }, - { - "body": { - "nativeSrc": "23413:252:18", - "nodeType": "YulBlock", - "src": "23413:252:18", - "statements": [ + "src": "14187:19:18" + }, { - "nativeSrc": "23427:91:18", + "nativeSrc": "14215:29:18", "nodeType": "YulAssignment", - "src": "23427:91:18", + "src": "14215:29:18", "value": { "arguments": [ { "name": "pos", - "nativeSrc": "23511:3:18", + "nativeSrc": "14234:3:18", "nodeType": "YulIdentifier", - "src": "23511:3:18" + "src": "14234:3:18" }, { "kind": "number", - "nativeSrc": "23516:1:18", + "nativeSrc": "14239:4:18", "nodeType": "YulLiteral", - "src": "23516:1:18", + "src": "14239:4:18", "type": "", - "value": "7" + "value": "0x20" } ], "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "23434:76:18", + "name": "add", + "nativeSrc": "14230:3:18", "nodeType": "YulIdentifier", - "src": "23434:76:18" + "src": "14230:3:18" }, - "nativeSrc": "23434:84:18", + "nativeSrc": "14230:14:18", "nodeType": "YulFunctionCall", - "src": "23434:84:18" + "src": "14230:14:18" }, "variableNames": [ { - "name": "pos", - "nativeSrc": "23427:3:18", + "name": "updated_pos", + "nativeSrc": "14215:11:18", "nodeType": "YulIdentifier", - "src": "23427:3:18" + "src": "14215:11:18" } ] - }, + } + ] + }, + "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nativeSrc": "14066:184:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "14149:3:18", + "nodeType": "YulTypedName", + "src": "14149:3:18", + "type": "" + }, + { + "name": "length", + "nativeSrc": "14154:6:18", + "nodeType": "YulTypedName", + "src": "14154:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "14165:11:18", + "nodeType": "YulTypedName", + "src": "14165:11:18", + "type": "" + } + ], + "src": "14066:184:18" + }, + { + "body": { + "nativeSrc": "14328:60:18", + "nodeType": "YulBlock", + "src": "14328:60:18", + "statements": [ { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "23620:3:18", - "nodeType": "YulIdentifier", - "src": "23620:3:18" - } - ], - "functionName": { - "name": "store_literal_in_memory_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe", - "nativeSrc": "23531:88:18", - "nodeType": "YulIdentifier", - "src": "23531:88:18" - }, - "nativeSrc": "23531:93:18", - "nodeType": "YulFunctionCall", - "src": "23531:93:18" + "nativeSrc": "14338:11:18", + "nodeType": "YulAssignment", + "src": "14338:11:18", + "value": { + "name": "ptr", + "nativeSrc": "14346:3:18", + "nodeType": "YulIdentifier", + "src": "14346:3:18" }, - "nativeSrc": "23531:93:18", - "nodeType": "YulExpressionStatement", - "src": "23531:93:18" + "variableNames": [ + { + "name": "data", + "nativeSrc": "14338:4:18", + "nodeType": "YulIdentifier", + "src": "14338:4:18" + } + ] }, { - "nativeSrc": "23637:18:18", + "nativeSrc": "14359:22:18", "nodeType": "YulAssignment", - "src": "23637:18:18", + "src": "14359:22:18", "value": { "arguments": [ { - "name": "pos", - "nativeSrc": "23648:3:18", + "name": "ptr", + "nativeSrc": "14371:3:18", "nodeType": "YulIdentifier", - "src": "23648:3:18" + "src": "14371:3:18" }, { "kind": "number", - "nativeSrc": "23653:1:18", + "nativeSrc": "14376:4:18", "nodeType": "YulLiteral", - "src": "23653:1:18", + "src": "14376:4:18", "type": "", - "value": "7" + "value": "0x20" } ], "functionName": { "name": "add", - "nativeSrc": "23644:3:18", + "nativeSrc": "14367:3:18", "nodeType": "YulIdentifier", - "src": "23644:3:18" + "src": "14367:3:18" }, - "nativeSrc": "23644:11:18", + "nativeSrc": "14367:14:18", "nodeType": "YulFunctionCall", - "src": "23644:11:18" + "src": "14367:14:18" }, "variableNames": [ { - "name": "end", - "nativeSrc": "23637:3:18", + "name": "data", + "nativeSrc": "14359:4:18", "nodeType": "YulIdentifier", - "src": "23637:3:18" + "src": "14359:4:18" } ] } ] }, - "name": "abi_encode_t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "23249:416:18", + "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "14256:132:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", - "nativeSrc": "23401:3:18", + "name": "ptr", + "nativeSrc": "14315:3:18", "nodeType": "YulTypedName", - "src": "23401:3:18", + "src": "14315:3:18", "type": "" } ], "returnVariables": [ { - "name": "end", - "nativeSrc": "23409:3:18", + "name": "data", + "nativeSrc": "14323:4:18", "nodeType": "YulTypedName", - "src": "23409:3:18", + "src": "14323:4:18", "type": "" } ], - "src": "23249:416:18" + "src": "14256:132:18" }, { "body": { - "nativeSrc": "23703:168:18", + "nativeSrc": "14449:53:18", "nodeType": "YulBlock", - "src": "23703:168:18", + "src": "14449:53:18", "statements": [ { "expression": { "arguments": [ { - "kind": "number", - "nativeSrc": "23724:1:18", - "nodeType": "YulLiteral", - "src": "23724:1:18", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "23727:77:18", - "nodeType": "YulLiteral", - "src": "23727:77:18", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "23717:6:18", - "nodeType": "YulIdentifier", - "src": "23717:6:18" - }, - "nativeSrc": "23717:88:18", - "nodeType": "YulFunctionCall", - "src": "23717:88:18" - }, - "nativeSrc": "23717:88:18", - "nodeType": "YulExpressionStatement", - "src": "23717:88:18" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "23825:1:18", - "nodeType": "YulLiteral", - "src": "23825:1:18", - "type": "", - "value": "4" + "name": "pos", + "nativeSrc": "14466:3:18", + "nodeType": "YulIdentifier", + "src": "14466:3:18" }, { - "kind": "number", - "nativeSrc": "23828:4:18", - "nodeType": "YulLiteral", - "src": "23828:4:18", - "type": "", - "value": "0x22" + "arguments": [ + { + "name": "value", + "nativeSrc": "14489:5:18", + "nodeType": "YulIdentifier", + "src": "14489:5:18" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "14471:17:18", + "nodeType": "YulIdentifier", + "src": "14471:17:18" + }, + "nativeSrc": "14471:24:18", + "nodeType": "YulFunctionCall", + "src": "14471:24:18" } ], "functionName": { "name": "mstore", - "nativeSrc": "23818:6:18", - "nodeType": "YulIdentifier", - "src": "23818:6:18" - }, - "nativeSrc": "23818:15:18", - "nodeType": "YulFunctionCall", - "src": "23818:15:18" - }, - "nativeSrc": "23818:15:18", - "nodeType": "YulExpressionStatement", - "src": "23818:15:18" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "23853:1:18", - "nodeType": "YulLiteral", - "src": "23853:1:18", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "23856:4:18", - "nodeType": "YulLiteral", - "src": "23856:4:18", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "23846:6:18", + "nativeSrc": "14459:6:18", "nodeType": "YulIdentifier", - "src": "23846:6:18" + "src": "14459:6:18" }, - "nativeSrc": "23846:15:18", + "nativeSrc": "14459:37:18", "nodeType": "YulFunctionCall", - "src": "23846:15:18" + "src": "14459:37:18" }, - "nativeSrc": "23846:15:18", + "nativeSrc": "14459:37:18", "nodeType": "YulExpressionStatement", - "src": "23846:15:18" + "src": "14459:37:18" } ] }, - "name": "panic_error_0x22", - "nativeSrc": "23675:196:18", + "name": "abi_encode_t_uint256_to_t_uint256", + "nativeSrc": "14394:108:18", "nodeType": "YulFunctionDefinition", - "src": "23675:196:18" + "parameters": [ + { + "name": "value", + "nativeSrc": "14437:5:18", + "nodeType": "YulTypedName", + "src": "14437:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "14444:3:18", + "nodeType": "YulTypedName", + "src": "14444:3:18", + "type": "" + } + ], + "src": "14394:108:18" }, { "body": { - "nativeSrc": "23932:305:18", + "nativeSrc": "14588:99:18", "nodeType": "YulBlock", - "src": "23932:305:18", + "src": "14588:99:18", "statements": [ { - "nativeSrc": "23946:22:18", - "nodeType": "YulAssignment", - "src": "23946:22:18", - "value": { + "expression": { "arguments": [ { - "name": "data", - "nativeSrc": "23960:4:18", + "name": "value0", + "nativeSrc": "14632:6:18", "nodeType": "YulIdentifier", - "src": "23960:4:18" + "src": "14632:6:18" }, { - "kind": "number", - "nativeSrc": "23966:1:18", - "nodeType": "YulLiteral", - "src": "23966:1:18", - "type": "", - "value": "2" + "name": "pos", + "nativeSrc": "14640:3:18", + "nodeType": "YulIdentifier", + "src": "14640:3:18" } ], "functionName": { - "name": "div", - "nativeSrc": "23956:3:18", + "name": "abi_encode_t_uint256_to_t_uint256", + "nativeSrc": "14598:33:18", "nodeType": "YulIdentifier", - "src": "23956:3:18" + "src": "14598:33:18" }, - "nativeSrc": "23956:12:18", + "nativeSrc": "14598:46:18", "nodeType": "YulFunctionCall", - "src": "23956:12:18" + "src": "14598:46:18" }, - "variableNames": [ - { - "name": "length", - "nativeSrc": "23946:6:18", - "nodeType": "YulIdentifier", - "src": "23946:6:18" - } - ] + "nativeSrc": "14598:46:18", + "nodeType": "YulExpressionStatement", + "src": "14598:46:18" }, { - "nativeSrc": "23981:38:18", - "nodeType": "YulVariableDeclaration", - "src": "23981:38:18", + "nativeSrc": "14653:28:18", + "nodeType": "YulAssignment", + "src": "14653:28:18", "value": { "arguments": [ { - "name": "data", - "nativeSrc": "24011:4:18", + "name": "pos", + "nativeSrc": "14671:3:18", "nodeType": "YulIdentifier", - "src": "24011:4:18" + "src": "14671:3:18" }, { "kind": "number", - "nativeSrc": "24017:1:18", + "nativeSrc": "14676:4:18", "nodeType": "YulLiteral", - "src": "24017:1:18", + "src": "14676:4:18", "type": "", - "value": "1" + "value": "0x20" } ], "functionName": { - "name": "and", - "nativeSrc": "24007:3:18", + "name": "add", + "nativeSrc": "14667:3:18", "nodeType": "YulIdentifier", - "src": "24007:3:18" + "src": "14667:3:18" }, - "nativeSrc": "24007:12:18", + "nativeSrc": "14667:14:18", "nodeType": "YulFunctionCall", - "src": "24007:12:18" + "src": "14667:14:18" }, - "variables": [ + "variableNames": [ { - "name": "outOfPlaceEncoding", - "nativeSrc": "23985:18:18", - "nodeType": "YulTypedName", - "src": "23985:18:18", - "type": "" + "name": "updatedPos", + "nativeSrc": "14653:10:18", + "nodeType": "YulIdentifier", + "src": "14653:10:18" } ] - }, - { - "body": { - "nativeSrc": "24062:59:18", - "nodeType": "YulBlock", - "src": "24062:59:18", - "statements": [ - { - "nativeSrc": "24080:27:18", - "nodeType": "YulAssignment", - "src": "24080:27:18", - "value": { - "arguments": [ - { - "name": "length", - "nativeSrc": "24094:6:18", - "nodeType": "YulIdentifier", - "src": "24094:6:18" - }, - { - "kind": "number", - "nativeSrc": "24102:4:18", - "nodeType": "YulLiteral", - "src": "24102:4:18", - "type": "", - "value": "0x7f" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "24090:3:18", - "nodeType": "YulIdentifier", - "src": "24090:3:18" - }, - "nativeSrc": "24090:17:18", - "nodeType": "YulFunctionCall", - "src": "24090:17:18" - }, - "variableNames": [ - { - "name": "length", - "nativeSrc": "24080:6:18", - "nodeType": "YulIdentifier", - "src": "24080:6:18" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "outOfPlaceEncoding", - "nativeSrc": "24042:18:18", - "nodeType": "YulIdentifier", - "src": "24042:18:18" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "24035:6:18", - "nodeType": "YulIdentifier", - "src": "24035:6:18" - }, - "nativeSrc": "24035:26:18", - "nodeType": "YulFunctionCall", - "src": "24035:26:18" - }, - "nativeSrc": "24032:89:18", - "nodeType": "YulIf", - "src": "24032:89:18" - }, - { - "body": { - "nativeSrc": "24177:50:18", - "nodeType": "YulBlock", - "src": "24177:50:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x22", - "nativeSrc": "24195:16:18", - "nodeType": "YulIdentifier", - "src": "24195:16:18" - }, - "nativeSrc": "24195:18:18", - "nodeType": "YulFunctionCall", - "src": "24195:18:18" - }, - "nativeSrc": "24195:18:18", - "nodeType": "YulExpressionStatement", - "src": "24195:18:18" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "outOfPlaceEncoding", - "nativeSrc": "24141:18:18", - "nodeType": "YulIdentifier", - "src": "24141:18:18" - }, - { - "arguments": [ - { - "name": "length", - "nativeSrc": "24164:6:18", - "nodeType": "YulIdentifier", - "src": "24164:6:18" - }, - { - "kind": "number", - "nativeSrc": "24172:2:18", - "nodeType": "YulLiteral", - "src": "24172:2:18", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "24161:2:18", - "nodeType": "YulIdentifier", - "src": "24161:2:18" - }, - "nativeSrc": "24161:14:18", - "nodeType": "YulFunctionCall", - "src": "24161:14:18" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "24138:2:18", - "nodeType": "YulIdentifier", - "src": "24138:2:18" - }, - "nativeSrc": "24138:38:18", - "nodeType": "YulFunctionCall", - "src": "24138:38:18" - }, - "nativeSrc": "24135:92:18", - "nodeType": "YulIf", - "src": "24135:92:18" } ] }, - "name": "extract_byte_array_length", - "nativeSrc": "23881:356:18", + "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", + "nativeSrc": "14508:179:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "data", - "nativeSrc": "23916:4:18", + "name": "value0", + "nativeSrc": "14561:6:18", "nodeType": "YulTypedName", - "src": "23916:4:18", + "src": "14561:6:18", "type": "" - } - ], - "returnVariables": [ + }, { - "name": "length", - "nativeSrc": "23925:6:18", + "name": "pos", + "nativeSrc": "14569:3:18", "nodeType": "YulTypedName", - "src": "23925:6:18", + "src": "14569:3:18", "type": "" } ], - "src": "23881:356:18" - }, - { - "body": { - "nativeSrc": "24301:103:18", - "nodeType": "YulBlock", - "src": "24301:103:18", - "statements": [ - { - "nativeSrc": "24315:11:18", - "nodeType": "YulAssignment", - "src": "24315:11:18", - "value": { - "name": "ptr", - "nativeSrc": "24323:3:18", - "nodeType": "YulIdentifier", - "src": "24323:3:18" - }, - "variableNames": [ - { - "name": "data", - "nativeSrc": "24315:4:18", - "nodeType": "YulIdentifier", - "src": "24315:4:18" - } - ] - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "24347:1:18", - "nodeType": "YulLiteral", - "src": "24347:1:18", - "type": "", - "value": "0" - }, - { - "name": "ptr", - "nativeSrc": "24350:3:18", - "nodeType": "YulIdentifier", - "src": "24350:3:18" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "24340:6:18", - "nodeType": "YulIdentifier", - "src": "24340:6:18" - }, - "nativeSrc": "24340:14:18", - "nodeType": "YulFunctionCall", - "src": "24340:14:18" - }, - "nativeSrc": "24340:14:18", - "nodeType": "YulExpressionStatement", - "src": "24340:14:18" - }, + "returnVariables": [ + { + "name": "updatedPos", + "nativeSrc": "14577:10:18", + "nodeType": "YulTypedName", + "src": "14577:10:18", + "type": "" + } + ], + "src": "14508:179:18" + }, + { + "body": { + "nativeSrc": "14768:38:18", + "nodeType": "YulBlock", + "src": "14768:38:18", + "statements": [ { - "nativeSrc": "24367:26:18", + "nativeSrc": "14778:22:18", "nodeType": "YulAssignment", - "src": "24367:26:18", + "src": "14778:22:18", "value": { "arguments": [ { - "kind": "number", - "nativeSrc": "24385:1:18", - "nodeType": "YulLiteral", - "src": "24385:1:18", - "type": "", - "value": "0" + "name": "ptr", + "nativeSrc": "14790:3:18", + "nodeType": "YulIdentifier", + "src": "14790:3:18" }, { "kind": "number", - "nativeSrc": "24388:4:18", + "nativeSrc": "14795:4:18", "nodeType": "YulLiteral", - "src": "24388:4:18", + "src": "14795:4:18", "type": "", "value": "0x20" } ], "functionName": { - "name": "keccak256", - "nativeSrc": "24375:9:18", + "name": "add", + "nativeSrc": "14786:3:18", "nodeType": "YulIdentifier", - "src": "24375:9:18" + "src": "14786:3:18" }, - "nativeSrc": "24375:18:18", + "nativeSrc": "14786:14:18", "nodeType": "YulFunctionCall", - "src": "24375:18:18" + "src": "14786:14:18" }, "variableNames": [ { - "name": "data", - "nativeSrc": "24367:4:18", + "name": "next", + "nativeSrc": "14778:4:18", "nodeType": "YulIdentifier", - "src": "24367:4:18" + "src": "14778:4:18" } ] } ] }, - "name": "array_dataslot_t_string_storage", - "nativeSrc": "24247:157:18", + "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "14693:113:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "ptr", - "nativeSrc": "24288:3:18", + "nativeSrc": "14755:3:18", "nodeType": "YulTypedName", - "src": "24288:3:18", + "src": "14755:3:18", "type": "" } ], "returnVariables": [ { - "name": "data", - "nativeSrc": "24296:4:18", + "name": "next", + "nativeSrc": "14763:4:18", "nodeType": "YulTypedName", - "src": "24296:4:18", + "src": "14763:4:18", "type": "" } ], - "src": "24247:157:18" + "src": "14693:113:18" }, { "body": { - "nativeSrc": "24549:847:18", + "nativeSrc": "14966:608:18", "nodeType": "YulBlock", - "src": "24549:847:18", + "src": "14966:608:18", "statements": [ { - "nativeSrc": "24563:29:18", + "nativeSrc": "14976:68:18", "nodeType": "YulVariableDeclaration", - "src": "24563:29:18", + "src": "14976:68:18", "value": { "arguments": [ { "name": "value", - "nativeSrc": "24586:5:18", + "nativeSrc": "15038:5:18", "nodeType": "YulIdentifier", - "src": "24586:5:18" + "src": "15038:5:18" } ], "functionName": { - "name": "sload", - "nativeSrc": "24580:5:18", + "name": "array_length_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "14990:47:18", "nodeType": "YulIdentifier", - "src": "24580:5:18" + "src": "14990:47:18" }, - "nativeSrc": "24580:12:18", + "nativeSrc": "14990:54:18", "nodeType": "YulFunctionCall", - "src": "24580:12:18" + "src": "14990:54:18" }, "variables": [ { - "name": "slotValue", - "nativeSrc": "24567:9:18", + "name": "length", + "nativeSrc": "14980:6:18", "nodeType": "YulTypedName", - "src": "24567:9:18", + "src": "14980:6:18", "type": "" } ] }, { - "nativeSrc": "24605:50:18", - "nodeType": "YulVariableDeclaration", - "src": "24605:50:18", + "nativeSrc": "15053:93:18", + "nodeType": "YulAssignment", + "src": "15053:93:18", "value": { "arguments": [ { - "name": "slotValue", - "nativeSrc": "24645:9:18", + "name": "pos", + "nativeSrc": "15134:3:18", + "nodeType": "YulIdentifier", + "src": "15134:3:18" + }, + { + "name": "length", + "nativeSrc": "15139:6:18", "nodeType": "YulIdentifier", - "src": "24645:9:18" + "src": "15139:6:18" } ], "functionName": { - "name": "extract_byte_array_length", - "nativeSrc": "24619:25:18", + "name": "array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nativeSrc": "15060:73:18", "nodeType": "YulIdentifier", - "src": "24619:25:18" + "src": "15060:73:18" }, - "nativeSrc": "24619:36:18", + "nativeSrc": "15060:86:18", "nodeType": "YulFunctionCall", - "src": "24619:36:18" + "src": "15060:86:18" }, - "variables": [ + "variableNames": [ { - "name": "length", - "nativeSrc": "24609:6:18", - "nodeType": "YulTypedName", - "src": "24609:6:18", - "type": "" + "name": "pos", + "nativeSrc": "15053:3:18", + "nodeType": "YulIdentifier", + "src": "15053:3:18" } ] }, { - "nativeSrc": "24668:96:18", - "nodeType": "YulAssignment", - "src": "24668:96:18", + "nativeSrc": "15155:71:18", + "nodeType": "YulVariableDeclaration", + "src": "15155:71:18", "value": { "arguments": [ { - "name": "pos", - "nativeSrc": "24752:3:18", - "nodeType": "YulIdentifier", - "src": "24752:3:18" - }, - { - "name": "length", - "nativeSrc": "24757:6:18", + "name": "value", + "nativeSrc": "15220:5:18", "nodeType": "YulIdentifier", - "src": "24757:6:18" + "src": "15220:5:18" } ], "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "24675:76:18", + "name": "array_dataslot_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "15170:49:18", "nodeType": "YulIdentifier", - "src": "24675:76:18" + "src": "15170:49:18" }, - "nativeSrc": "24675:89:18", + "nativeSrc": "15170:56:18", "nodeType": "YulFunctionCall", - "src": "24675:89:18" + "src": "15170:56:18" }, - "variableNames": [ + "variables": [ { - "name": "pos", - "nativeSrc": "24668:3:18", - "nodeType": "YulIdentifier", - "src": "24668:3:18" + "name": "baseRef", + "nativeSrc": "15159:7:18", + "nodeType": "YulTypedName", + "src": "15159:7:18", + "type": "" } ] }, { - "cases": [ + "nativeSrc": "15235:21:18", + "nodeType": "YulVariableDeclaration", + "src": "15235:21:18", + "value": { + "name": "baseRef", + "nativeSrc": "15249:7:18", + "nodeType": "YulIdentifier", + "src": "15249:7:18" + }, + "variables": [ { - "body": { - "nativeSrc": "24821:175:18", - "nodeType": "YulBlock", - "src": "24821:175:18", - "statements": [ + "name": "srcPtr", + "nativeSrc": "15239:6:18", + "nodeType": "YulTypedName", + "src": "15239:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "15325:224:18", + "nodeType": "YulBlock", + "src": "15325:224:18", + "statements": [ + { + "nativeSrc": "15339:34:18", + "nodeType": "YulVariableDeclaration", + "src": "15339:34:18", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "15366:6:18", + "nodeType": "YulIdentifier", + "src": "15366:6:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "15360:5:18", + "nodeType": "YulIdentifier", + "src": "15360:5:18" + }, + "nativeSrc": "15360:13:18", + "nodeType": "YulFunctionCall", + "src": "15360:13:18" + }, + "variables": [ { - "expression": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "24882:3:18", - "nodeType": "YulIdentifier", - "src": "24882:3:18" - }, - { - "arguments": [ - { - "name": "slotValue", - "nativeSrc": "24891:9:18", - "nodeType": "YulIdentifier", - "src": "24891:9:18" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "24906:4:18", - "nodeType": "YulLiteral", - "src": "24906:4:18", - "type": "", - "value": "0xff" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "24902:3:18", - "nodeType": "YulIdentifier", - "src": "24902:3:18" - }, - "nativeSrc": "24902:9:18", - "nodeType": "YulFunctionCall", - "src": "24902:9:18" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "24887:3:18", - "nodeType": "YulIdentifier", - "src": "24887:3:18" - }, - "nativeSrc": "24887:25:18", - "nodeType": "YulFunctionCall", - "src": "24887:25:18" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "24875:6:18", - "nodeType": "YulIdentifier", - "src": "24875:6:18" - }, - "nativeSrc": "24875:38:18", - "nodeType": "YulFunctionCall", - "src": "24875:38:18" + "name": "elementValue0", + "nativeSrc": "15343:13:18", + "nodeType": "YulTypedName", + "src": "15343:13:18", + "type": "" + } + ] + }, + { + "nativeSrc": "15386:70:18", + "nodeType": "YulAssignment", + "src": "15386:70:18", + "value": { + "arguments": [ + { + "name": "elementValue0", + "nativeSrc": "15437:13:18", + "nodeType": "YulIdentifier", + "src": "15437:13:18" }, - "nativeSrc": "24875:38:18", - "nodeType": "YulExpressionStatement", - "src": "24875:38:18" + { + "name": "pos", + "nativeSrc": "15452:3:18", + "nodeType": "YulIdentifier", + "src": "15452:3:18" + } + ], + "functionName": { + "name": "abi_encodeUpdatedPos_t_uint256_to_t_uint256", + "nativeSrc": "15393:43:18", + "nodeType": "YulIdentifier", + "src": "15393:43:18" }, + "nativeSrc": "15393:63:18", + "nodeType": "YulFunctionCall", + "src": "15393:63:18" + }, + "variableNames": [ { - "nativeSrc": "24930:52:18", - "nodeType": "YulAssignment", - "src": "24930:52:18", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "24941:3:18", - "nodeType": "YulIdentifier", - "src": "24941:3:18" - }, - { - "arguments": [ - { - "name": "length", - "nativeSrc": "24950:6:18", - "nodeType": "YulIdentifier", - "src": "24950:6:18" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "length", - "nativeSrc": "24972:6:18", - "nodeType": "YulIdentifier", - "src": "24972:6:18" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "24965:6:18", - "nodeType": "YulIdentifier", - "src": "24965:6:18" - }, - "nativeSrc": "24965:14:18", - "nodeType": "YulFunctionCall", - "src": "24965:14:18" - } - ], - "functionName": { - "name": "iszero", - "nativeSrc": "24958:6:18", - "nodeType": "YulIdentifier", - "src": "24958:6:18" - }, - "nativeSrc": "24958:22:18", - "nodeType": "YulFunctionCall", - "src": "24958:22:18" - } - ], - "functionName": { - "name": "mul", - "nativeSrc": "24946:3:18", - "nodeType": "YulIdentifier", - "src": "24946:3:18" - }, - "nativeSrc": "24946:35:18", - "nodeType": "YulFunctionCall", - "src": "24946:35:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "24937:3:18", - "nodeType": "YulIdentifier", - "src": "24937:3:18" - }, - "nativeSrc": "24937:45:18", - "nodeType": "YulFunctionCall", - "src": "24937:45:18" - }, - "variableNames": [ - { - "name": "ret", - "nativeSrc": "24930:3:18", - "nodeType": "YulIdentifier", - "src": "24930:3:18" - } - ] + "name": "pos", + "nativeSrc": "15386:3:18", + "nodeType": "YulIdentifier", + "src": "15386:3:18" } ] }, - "nativeSrc": "24814:182:18", - "nodeType": "YulCase", - "src": "24814:182:18", - "value": { - "kind": "number", - "nativeSrc": "24819:1:18", - "nodeType": "YulLiteral", - "src": "24819:1:18", - "type": "", - "value": "0" + { + "nativeSrc": "15469:70:18", + "nodeType": "YulAssignment", + "src": "15469:70:18", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "15532:6:18", + "nodeType": "YulIdentifier", + "src": "15532:6:18" + } + ], + "functionName": { + "name": "array_nextElement_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "15479:52:18", + "nodeType": "YulIdentifier", + "src": "15479:52:18" + }, + "nativeSrc": "15479:60:18", + "nodeType": "YulFunctionCall", + "src": "15479:60:18" + }, + "variableNames": [ + { + "name": "srcPtr", + "nativeSrc": "15469:6:18", + "nodeType": "YulIdentifier", + "src": "15469:6:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "15287:1:18", + "nodeType": "YulIdentifier", + "src": "15287:1:18" + }, + { + "name": "length", + "nativeSrc": "15290:6:18", + "nodeType": "YulIdentifier", + "src": "15290:6:18" } + ], + "functionName": { + "name": "lt", + "nativeSrc": "15284:2:18", + "nodeType": "YulIdentifier", + "src": "15284:2:18" }, - { - "body": { - "nativeSrc": "25016:370:18", - "nodeType": "YulBlock", - "src": "25016:370:18", - "statements": [ - { - "nativeSrc": "25069:53:18", - "nodeType": "YulVariableDeclaration", - "src": "25069:53:18", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "25116:5:18", - "nodeType": "YulIdentifier", - "src": "25116:5:18" - } - ], - "functionName": { - "name": "array_dataslot_t_string_storage", - "nativeSrc": "25084:31:18", - "nodeType": "YulIdentifier", - "src": "25084:31:18" - }, - "nativeSrc": "25084:38:18", - "nodeType": "YulFunctionCall", - "src": "25084:38:18" + "nativeSrc": "15284:13:18", + "nodeType": "YulFunctionCall", + "src": "15284:13:18" + }, + "nativeSrc": "15265:284:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "15298:18:18", + "nodeType": "YulBlock", + "src": "15298:18:18", + "statements": [ + { + "nativeSrc": "15300:14:18", + "nodeType": "YulAssignment", + "src": "15300:14:18", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "15309:1:18", + "nodeType": "YulIdentifier", + "src": "15309:1:18" }, - "variables": [ - { - "name": "dataPos", - "nativeSrc": "25073:7:18", - "nodeType": "YulTypedName", - "src": "25073:7:18", - "type": "" - } - ] - }, - { - "nativeSrc": "25139:10:18", - "nodeType": "YulVariableDeclaration", - "src": "25139:10:18", - "value": { + { "kind": "number", - "nativeSrc": "25148:1:18", + "nativeSrc": "15312:1:18", "nodeType": "YulLiteral", - "src": "25148:1:18", + "src": "15312:1:18", "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nativeSrc": "25143:1:18", - "nodeType": "YulTypedName", - "src": "25143:1:18", - "type": "" - } - ] + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15305:3:18", + "nodeType": "YulIdentifier", + "src": "15305:3:18" }, + "nativeSrc": "15305:9:18", + "nodeType": "YulFunctionCall", + "src": "15305:9:18" + }, + "variableNames": [ { - "body": { - "nativeSrc": "25210:122:18", - "nodeType": "YulBlock", - "src": "25210:122:18", - "statements": [ - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "pos", - "nativeSrc": "25243:3:18", - "nodeType": "YulIdentifier", - "src": "25243:3:18" - }, - { - "name": "i", - "nativeSrc": "25248:1:18", - "nodeType": "YulIdentifier", - "src": "25248:1:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "25239:3:18", - "nodeType": "YulIdentifier", - "src": "25239:3:18" - }, - "nativeSrc": "25239:11:18", - "nodeType": "YulFunctionCall", - "src": "25239:11:18" - }, - { - "arguments": [ - { - "name": "dataPos", - "nativeSrc": "25258:7:18", - "nodeType": "YulIdentifier", - "src": "25258:7:18" - } - ], - "functionName": { - "name": "sload", - "nativeSrc": "25252:5:18", - "nodeType": "YulIdentifier", - "src": "25252:5:18" - }, - "nativeSrc": "25252:14:18", - "nodeType": "YulFunctionCall", - "src": "25252:14:18" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "25232:6:18", - "nodeType": "YulIdentifier", - "src": "25232:6:18" - }, - "nativeSrc": "25232:35:18", - "nodeType": "YulFunctionCall", - "src": "25232:35:18" - }, - "nativeSrc": "25232:35:18", - "nodeType": "YulExpressionStatement", - "src": "25232:35:18" - }, - { - "nativeSrc": "25288:26:18", - "nodeType": "YulAssignment", - "src": "25288:26:18", - "value": { - "arguments": [ - { - "name": "dataPos", - "nativeSrc": "25303:7:18", - "nodeType": "YulIdentifier", - "src": "25303:7:18" - }, - { - "kind": "number", - "nativeSrc": "25312:1:18", - "nodeType": "YulLiteral", - "src": "25312:1:18", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "25299:3:18", - "nodeType": "YulIdentifier", - "src": "25299:3:18" - }, - "nativeSrc": "25299:15:18", - "nodeType": "YulFunctionCall", - "src": "25299:15:18" - }, - "variableNames": [ - { - "name": "dataPos", - "nativeSrc": "25288:7:18", - "nodeType": "YulIdentifier", - "src": "25288:7:18" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nativeSrc": "25177:1:18", - "nodeType": "YulIdentifier", - "src": "25177:1:18" - }, - { - "name": "length", - "nativeSrc": "25180:6:18", - "nodeType": "YulIdentifier", - "src": "25180:6:18" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "25174:2:18", - "nodeType": "YulIdentifier", - "src": "25174:2:18" - }, - "nativeSrc": "25174:13:18", - "nodeType": "YulFunctionCall", - "src": "25174:13:18" - }, - "nativeSrc": "25166:166:18", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "25188:21:18", - "nodeType": "YulBlock", - "src": "25188:21:18", - "statements": [ - { - "nativeSrc": "25190:17:18", - "nodeType": "YulAssignment", - "src": "25190:17:18", - "value": { - "arguments": [ - { - "name": "i", - "nativeSrc": "25199:1:18", - "nodeType": "YulIdentifier", - "src": "25199:1:18" - }, - { - "kind": "number", - "nativeSrc": "25202:4:18", - "nodeType": "YulLiteral", - "src": "25202:4:18", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "25195:3:18", - "nodeType": "YulIdentifier", - "src": "25195:3:18" - }, - "nativeSrc": "25195:12:18", - "nodeType": "YulFunctionCall", - "src": "25195:12:18" - }, - "variableNames": [ - { - "name": "i", - "nativeSrc": "25190:1:18", - "nodeType": "YulIdentifier", - "src": "25190:1:18" - } - ] - } - ] - }, - "pre": { - "nativeSrc": "25170:3:18", - "nodeType": "YulBlock", - "src": "25170:3:18", - "statements": [] - }, - "src": "25166:166:18" - }, + "name": "i", + "nativeSrc": "15300:1:18", + "nodeType": "YulIdentifier", + "src": "15300:1:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "15269:14:18", + "nodeType": "YulBlock", + "src": "15269:14:18", + "statements": [ + { + "nativeSrc": "15271:10:18", + "nodeType": "YulVariableDeclaration", + "src": "15271:10:18", + "value": { + "kind": "number", + "nativeSrc": "15280:1:18", + "nodeType": "YulLiteral", + "src": "15280:1:18", + "type": "", + "value": "0" + }, + "variables": [ { - "nativeSrc": "25349:23:18", - "nodeType": "YulAssignment", - "src": "25349:23:18", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "25360:3:18", - "nodeType": "YulIdentifier", - "src": "25360:3:18" - }, - { - "name": "length", - "nativeSrc": "25365:6:18", - "nodeType": "YulIdentifier", - "src": "25365:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "25356:3:18", - "nodeType": "YulIdentifier", - "src": "25356:3:18" - }, - "nativeSrc": "25356:16:18", - "nodeType": "YulFunctionCall", - "src": "25356:16:18" - }, - "variableNames": [ - { - "name": "ret", - "nativeSrc": "25349:3:18", - "nodeType": "YulIdentifier", - "src": "25349:3:18" - } - ] + "name": "i", + "nativeSrc": "15275:1:18", + "nodeType": "YulTypedName", + "src": "15275:1:18", + "type": "" } ] + } + ] + }, + "src": "15265:284:18" + }, + { + "nativeSrc": "15558:10:18", + "nodeType": "YulAssignment", + "src": "15558:10:18", + "value": { + "name": "pos", + "nativeSrc": "15565:3:18", + "nodeType": "YulIdentifier", + "src": "15565:3:18" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "15558:3:18", + "nodeType": "YulIdentifier", + "src": "15558:3:18" + } + ] + } + ] + }, + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nativeSrc": "14842:732:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "14945:5:18", + "nodeType": "YulTypedName", + "src": "14945:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "14952:3:18", + "nodeType": "YulTypedName", + "src": "14952:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "14961:3:18", + "nodeType": "YulTypedName", + "src": "14961:3:18", + "type": "" + } + ], + "src": "14842:732:18" + }, + { + "body": { + "nativeSrc": "15728:225:18", + "nodeType": "YulBlock", + "src": "15728:225:18", + "statements": [ + { + "nativeSrc": "15738:26:18", + "nodeType": "YulAssignment", + "src": "15738:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15750:9:18", + "nodeType": "YulIdentifier", + "src": "15750:9:18" }, - "nativeSrc": "25009:377:18", - "nodeType": "YulCase", - "src": "25009:377:18", - "value": { + { "kind": "number", - "nativeSrc": "25014:1:18", + "nativeSrc": "15761:2:18", "nodeType": "YulLiteral", - "src": "25014:1:18", + "src": "15761:2:18", "type": "", - "value": "1" + "value": "32" } + ], + "functionName": { + "name": "add", + "nativeSrc": "15746:3:18", + "nodeType": "YulIdentifier", + "src": "15746:3:18" + }, + "nativeSrc": "15746:18:18", + "nodeType": "YulFunctionCall", + "src": "15746:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "15738:4:18", + "nodeType": "YulIdentifier", + "src": "15738:4:18" } - ], + ] + }, + { "expression": { "arguments": [ { - "name": "slotValue", - "nativeSrc": "24788:9:18", + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15785:9:18", + "nodeType": "YulIdentifier", + "src": "15785:9:18" + }, + { + "kind": "number", + "nativeSrc": "15796:1:18", + "nodeType": "YulLiteral", + "src": "15796:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15781:3:18", + "nodeType": "YulIdentifier", + "src": "15781:3:18" + }, + "nativeSrc": "15781:17:18", + "nodeType": "YulFunctionCall", + "src": "15781:17:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "15804:4:18", + "nodeType": "YulIdentifier", + "src": "15804:4:18" + }, + { + "name": "headStart", + "nativeSrc": "15810:9:18", + "nodeType": "YulIdentifier", + "src": "15810:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "15800:3:18", + "nodeType": "YulIdentifier", + "src": "15800:3:18" + }, + "nativeSrc": "15800:20:18", + "nodeType": "YulFunctionCall", + "src": "15800:20:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15774:6:18", + "nodeType": "YulIdentifier", + "src": "15774:6:18" + }, + "nativeSrc": "15774:47:18", + "nodeType": "YulFunctionCall", + "src": "15774:47:18" + }, + "nativeSrc": "15774:47:18", + "nodeType": "YulExpressionStatement", + "src": "15774:47:18" + }, + { + "nativeSrc": "15830:116:18", + "nodeType": "YulAssignment", + "src": "15830:116:18", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "15932:6:18", "nodeType": "YulIdentifier", - "src": "24788:9:18" + "src": "15932:6:18" }, { - "kind": "number", - "nativeSrc": "24799:1:18", - "nodeType": "YulLiteral", - "src": "24799:1:18", - "type": "", - "value": "1" + "name": "tail", + "nativeSrc": "15941:4:18", + "nodeType": "YulIdentifier", + "src": "15941:4:18" } ], "functionName": { - "name": "and", - "nativeSrc": "24784:3:18", + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nativeSrc": "15838:93:18", "nodeType": "YulIdentifier", - "src": "24784:3:18" + "src": "15838:93:18" }, - "nativeSrc": "24784:17:18", + "nativeSrc": "15838:108:18", "nodeType": "YulFunctionCall", - "src": "24784:17:18" + "src": "15838:108:18" }, - "nativeSrc": "24777:609:18", - "nodeType": "YulSwitch", - "src": "24777:609:18" + "variableNames": [ + { + "name": "tail", + "nativeSrc": "15830:4:18", + "nodeType": "YulIdentifier", + "src": "15830:4:18" + } + ] } ] }, - "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "24442:954:18", + "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", + "nativeSrc": "15580:373:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", - "nativeSrc": "24530:5:18", + "name": "headStart", + "nativeSrc": "15700:9:18", "nodeType": "YulTypedName", - "src": "24530:5:18", + "src": "15700:9:18", "type": "" }, { - "name": "pos", - "nativeSrc": "24537:3:18", + "name": "value0", + "nativeSrc": "15712:6:18", "nodeType": "YulTypedName", - "src": "24537:3:18", + "src": "15712:6:18", "type": "" } ], "returnVariables": [ { - "name": "ret", - "nativeSrc": "24545:3:18", + "name": "tail", + "nativeSrc": "15723:4:18", "nodeType": "YulTypedName", - "src": "24545:3:18", + "src": "15723:4:18", "type": "" } ], - "src": "24442:954:18" + "src": "15580:373:18" }, { "body": { - "nativeSrc": "25512:57:18", + "nativeSrc": "16085:817:18", "nodeType": "YulBlock", - "src": "25512:57:18", + "src": "16085:817:18", "statements": [ { - "expression": { + "body": { + "nativeSrc": "16132:83:18", + "nodeType": "YulBlock", + "src": "16132:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "16134:77:18", + "nodeType": "YulIdentifier", + "src": "16134:77:18" + }, + "nativeSrc": "16134:79:18", + "nodeType": "YulFunctionCall", + "src": "16134:79:18" + }, + "nativeSrc": "16134:79:18", + "nodeType": "YulExpressionStatement", + "src": "16134:79:18" + } + ] + }, + "condition": { "arguments": [ { "arguments": [ { - "name": "memPtr", - "nativeSrc": "25538:6:18", + "name": "dataEnd", + "nativeSrc": "16106:7:18", "nodeType": "YulIdentifier", - "src": "25538:6:18" + "src": "16106:7:18" }, { - "kind": "number", - "nativeSrc": "25546:1:18", - "nodeType": "YulLiteral", - "src": "25546:1:18", - "type": "", - "value": "0" + "name": "headStart", + "nativeSrc": "16115:9:18", + "nodeType": "YulIdentifier", + "src": "16115:9:18" } ], "functionName": { - "name": "add", - "nativeSrc": "25534:3:18", + "name": "sub", + "nativeSrc": "16102:3:18", "nodeType": "YulIdentifier", - "src": "25534:3:18" + "src": "16102:3:18" }, - "nativeSrc": "25534:14:18", + "nativeSrc": "16102:23:18", "nodeType": "YulFunctionCall", - "src": "25534:14:18" + "src": "16102:23:18" }, { - "hexValue": "2e6a736f6e", - "kind": "string", - "nativeSrc": "25550:7:18", + "kind": "number", + "nativeSrc": "16127:3:18", "nodeType": "YulLiteral", - "src": "25550:7:18", + "src": "16127:3:18", "type": "", - "value": ".json" + "value": "128" } ], "functionName": { - "name": "mstore", - "nativeSrc": "25527:6:18", + "name": "slt", + "nativeSrc": "16098:3:18", "nodeType": "YulIdentifier", - "src": "25527:6:18" + "src": "16098:3:18" }, - "nativeSrc": "25527:31:18", + "nativeSrc": "16098:33:18", "nodeType": "YulFunctionCall", - "src": "25527:31:18" + "src": "16098:33:18" }, - "nativeSrc": "25527:31:18", - "nodeType": "YulExpressionStatement", - "src": "25527:31:18" + "nativeSrc": "16095:120:18", + "nodeType": "YulIf", + "src": "16095:120:18" + }, + { + "nativeSrc": "16225:117:18", + "nodeType": "YulBlock", + "src": "16225:117:18", + "statements": [ + { + "nativeSrc": "16240:15:18", + "nodeType": "YulVariableDeclaration", + "src": "16240:15:18", + "value": { + "kind": "number", + "nativeSrc": "16254:1:18", + "nodeType": "YulLiteral", + "src": "16254:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "16244:6:18", + "nodeType": "YulTypedName", + "src": "16244:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "16269:63:18", + "nodeType": "YulAssignment", + "src": "16269:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16304:9:18", + "nodeType": "YulIdentifier", + "src": "16304:9:18" + }, + { + "name": "offset", + "nativeSrc": "16315:6:18", + "nodeType": "YulIdentifier", + "src": "16315:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16300:3:18", + "nodeType": "YulIdentifier", + "src": "16300:3:18" + }, + "nativeSrc": "16300:22:18", + "nodeType": "YulFunctionCall", + "src": "16300:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "16324:7:18", + "nodeType": "YulIdentifier", + "src": "16324:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "16279:20:18", + "nodeType": "YulIdentifier", + "src": "16279:20:18" + }, + "nativeSrc": "16279:53:18", + "nodeType": "YulFunctionCall", + "src": "16279:53:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "16269:6:18", + "nodeType": "YulIdentifier", + "src": "16269:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "16352:118:18", + "nodeType": "YulBlock", + "src": "16352:118:18", + "statements": [ + { + "nativeSrc": "16367:16:18", + "nodeType": "YulVariableDeclaration", + "src": "16367:16:18", + "value": { + "kind": "number", + "nativeSrc": "16381:2:18", + "nodeType": "YulLiteral", + "src": "16381:2:18", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "16371:6:18", + "nodeType": "YulTypedName", + "src": "16371:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "16397:63:18", + "nodeType": "YulAssignment", + "src": "16397:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16432:9:18", + "nodeType": "YulIdentifier", + "src": "16432:9:18" + }, + { + "name": "offset", + "nativeSrc": "16443:6:18", + "nodeType": "YulIdentifier", + "src": "16443:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16428:3:18", + "nodeType": "YulIdentifier", + "src": "16428:3:18" + }, + "nativeSrc": "16428:22:18", + "nodeType": "YulFunctionCall", + "src": "16428:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "16452:7:18", + "nodeType": "YulIdentifier", + "src": "16452:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "16407:20:18", + "nodeType": "YulIdentifier", + "src": "16407:20:18" + }, + "nativeSrc": "16407:53:18", + "nodeType": "YulFunctionCall", + "src": "16407:53:18" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "16397:6:18", + "nodeType": "YulIdentifier", + "src": "16397:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "16480:118:18", + "nodeType": "YulBlock", + "src": "16480:118:18", + "statements": [ + { + "nativeSrc": "16495:16:18", + "nodeType": "YulVariableDeclaration", + "src": "16495:16:18", + "value": { + "kind": "number", + "nativeSrc": "16509:2:18", + "nodeType": "YulLiteral", + "src": "16509:2:18", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "16499:6:18", + "nodeType": "YulTypedName", + "src": "16499:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "16525:63:18", + "nodeType": "YulAssignment", + "src": "16525:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16560:9:18", + "nodeType": "YulIdentifier", + "src": "16560:9:18" + }, + { + "name": "offset", + "nativeSrc": "16571:6:18", + "nodeType": "YulIdentifier", + "src": "16571:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16556:3:18", + "nodeType": "YulIdentifier", + "src": "16556:3:18" + }, + "nativeSrc": "16556:22:18", + "nodeType": "YulFunctionCall", + "src": "16556:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "16580:7:18", + "nodeType": "YulIdentifier", + "src": "16580:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "16535:20:18", + "nodeType": "YulIdentifier", + "src": "16535:20:18" + }, + "nativeSrc": "16535:53:18", + "nodeType": "YulFunctionCall", + "src": "16535:53:18" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "16525:6:18", + "nodeType": "YulIdentifier", + "src": "16525:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "16608:287:18", + "nodeType": "YulBlock", + "src": "16608:287:18", + "statements": [ + { + "nativeSrc": "16623:46:18", + "nodeType": "YulVariableDeclaration", + "src": "16623:46:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16654:9:18", + "nodeType": "YulIdentifier", + "src": "16654:9:18" + }, + { + "kind": "number", + "nativeSrc": "16665:2:18", + "nodeType": "YulLiteral", + "src": "16665:2:18", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16650:3:18", + "nodeType": "YulIdentifier", + "src": "16650:3:18" + }, + "nativeSrc": "16650:18:18", + "nodeType": "YulFunctionCall", + "src": "16650:18:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "16637:12:18", + "nodeType": "YulIdentifier", + "src": "16637:12:18" + }, + "nativeSrc": "16637:32:18", + "nodeType": "YulFunctionCall", + "src": "16637:32:18" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "16627:6:18", + "nodeType": "YulTypedName", + "src": "16627:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "16716:83:18", + "nodeType": "YulBlock", + "src": "16716:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "16718:77:18", + "nodeType": "YulIdentifier", + "src": "16718:77:18" + }, + "nativeSrc": "16718:79:18", + "nodeType": "YulFunctionCall", + "src": "16718:79:18" + }, + "nativeSrc": "16718:79:18", + "nodeType": "YulExpressionStatement", + "src": "16718:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "16688:6:18", + "nodeType": "YulIdentifier", + "src": "16688:6:18" + }, + { + "kind": "number", + "nativeSrc": "16696:18:18", + "nodeType": "YulLiteral", + "src": "16696:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "16685:2:18", + "nodeType": "YulIdentifier", + "src": "16685:2:18" + }, + "nativeSrc": "16685:30:18", + "nodeType": "YulFunctionCall", + "src": "16685:30:18" + }, + "nativeSrc": "16682:117:18", + "nodeType": "YulIf", + "src": "16682:117:18" + }, + { + "nativeSrc": "16813:72:18", + "nodeType": "YulAssignment", + "src": "16813:72:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16857:9:18", + "nodeType": "YulIdentifier", + "src": "16857:9:18" + }, + { + "name": "offset", + "nativeSrc": "16868:6:18", + "nodeType": "YulIdentifier", + "src": "16868:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16853:3:18", + "nodeType": "YulIdentifier", + "src": "16853:3:18" + }, + "nativeSrc": "16853:22:18", + "nodeType": "YulFunctionCall", + "src": "16853:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "16877:7:18", + "nodeType": "YulIdentifier", + "src": "16877:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "16823:29:18", + "nodeType": "YulIdentifier", + "src": "16823:29:18" + }, + "nativeSrc": "16823:62:18", + "nodeType": "YulFunctionCall", + "src": "16823:62:18" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "16813:6:18", + "nodeType": "YulIdentifier", + "src": "16813:6:18" + } + ] + } + ] } ] }, - "name": "store_literal_in_memory_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972", - "nativeSrc": "25406:163:18", + "name": "abi_decode_tuple_t_addresst_uint256t_uint256t_bytes_memory_ptr", + "nativeSrc": "15959:943:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "memPtr", - "nativeSrc": "25504:6:18", + "name": "headStart", + "nativeSrc": "16031:9:18", + "nodeType": "YulTypedName", + "src": "16031:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "16042:7:18", + "nodeType": "YulTypedName", + "src": "16042:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "16054:6:18", + "nodeType": "YulTypedName", + "src": "16054:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "16062:6:18", + "nodeType": "YulTypedName", + "src": "16062:6:18", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "16070:6:18", + "nodeType": "YulTypedName", + "src": "16070:6:18", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "16078:6:18", "nodeType": "YulTypedName", - "src": "25504:6:18", + "src": "16078:6:18", "type": "" } ], - "src": "25406:163:18" + "src": "15959:943:18" }, { "body": { - "nativeSrc": "25743:252:18", + "nativeSrc": "16975:241:18", "nodeType": "YulBlock", - "src": "25743:252:18", + "src": "16975:241:18", "statements": [ { - "nativeSrc": "25757:91:18", - "nodeType": "YulAssignment", - "src": "25757:91:18", - "value": { + "body": { + "nativeSrc": "17080:22:18", + "nodeType": "YulBlock", + "src": "17080:22:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "17082:16:18", + "nodeType": "YulIdentifier", + "src": "17082:16:18" + }, + "nativeSrc": "17082:18:18", + "nodeType": "YulFunctionCall", + "src": "17082:18:18" + }, + "nativeSrc": "17082:18:18", + "nodeType": "YulExpressionStatement", + "src": "17082:18:18" + } + ] + }, + "condition": { "arguments": [ { - "name": "pos", - "nativeSrc": "25841:3:18", + "name": "length", + "nativeSrc": "17052:6:18", "nodeType": "YulIdentifier", - "src": "25841:3:18" + "src": "17052:6:18" }, { "kind": "number", - "nativeSrc": "25846:1:18", + "nativeSrc": "17060:18:18", "nodeType": "YulLiteral", - "src": "25846:1:18", + "src": "17060:18:18", "type": "", - "value": "5" + "value": "0xffffffffffffffff" } ], "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "25764:76:18", + "name": "gt", + "nativeSrc": "17049:2:18", "nodeType": "YulIdentifier", - "src": "25764:76:18" + "src": "17049:2:18" }, - "nativeSrc": "25764:84:18", + "nativeSrc": "17049:30:18", "nodeType": "YulFunctionCall", - "src": "25764:84:18" + "src": "17049:30:18" }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "25757:3:18", - "nodeType": "YulIdentifier", - "src": "25757:3:18" - } - ] + "nativeSrc": "17046:56:18", + "nodeType": "YulIf", + "src": "17046:56:18" }, { - "expression": { + "nativeSrc": "17112:37:18", + "nodeType": "YulAssignment", + "src": "17112:37:18", + "value": { "arguments": [ { - "name": "pos", - "nativeSrc": "25950:3:18", + "name": "length", + "nativeSrc": "17142:6:18", "nodeType": "YulIdentifier", - "src": "25950:3:18" + "src": "17142:6:18" } ], "functionName": { - "name": "store_literal_in_memory_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972", - "nativeSrc": "25861:88:18", + "name": "round_up_to_mul_of_32", + "nativeSrc": "17120:21:18", "nodeType": "YulIdentifier", - "src": "25861:88:18" + "src": "17120:21:18" }, - "nativeSrc": "25861:93:18", + "nativeSrc": "17120:29:18", "nodeType": "YulFunctionCall", - "src": "25861:93:18" + "src": "17120:29:18" }, - "nativeSrc": "25861:93:18", - "nodeType": "YulExpressionStatement", - "src": "25861:93:18" + "variableNames": [ + { + "name": "size", + "nativeSrc": "17112:4:18", + "nodeType": "YulIdentifier", + "src": "17112:4:18" + } + ] }, { - "nativeSrc": "25967:18:18", + "nativeSrc": "17186:23:18", "nodeType": "YulAssignment", - "src": "25967:18:18", + "src": "17186:23:18", "value": { "arguments": [ { - "name": "pos", - "nativeSrc": "25978:3:18", + "name": "size", + "nativeSrc": "17198:4:18", "nodeType": "YulIdentifier", - "src": "25978:3:18" + "src": "17198:4:18" }, { "kind": "number", - "nativeSrc": "25983:1:18", + "nativeSrc": "17204:4:18", "nodeType": "YulLiteral", - "src": "25983:1:18", + "src": "17204:4:18", "type": "", - "value": "5" + "value": "0x20" } ], "functionName": { "name": "add", - "nativeSrc": "25974:3:18", + "nativeSrc": "17194:3:18", "nodeType": "YulIdentifier", - "src": "25974:3:18" + "src": "17194:3:18" }, - "nativeSrc": "25974:11:18", + "nativeSrc": "17194:15:18", "nodeType": "YulFunctionCall", - "src": "25974:11:18" + "src": "17194:15:18" }, "variableNames": [ { - "name": "end", - "nativeSrc": "25967:3:18", + "name": "size", + "nativeSrc": "17186:4:18", "nodeType": "YulIdentifier", - "src": "25967:3:18" + "src": "17186:4:18" } ] } ] }, - "name": "abi_encode_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "25579:416:18", + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "16908:308:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", - "nativeSrc": "25731:3:18", + "name": "length", + "nativeSrc": "16959:6:18", "nodeType": "YulTypedName", - "src": "25731:3:18", + "src": "16959:6:18", "type": "" } ], "returnVariables": [ { - "name": "end", - "nativeSrc": "25739:3:18", + "name": "size", + "nativeSrc": "16970:4:18", "nodeType": "YulTypedName", - "src": "25739:3:18", + "src": "16970:4:18", "type": "" } ], - "src": "25579:416:18" + "src": "16908:308:18" }, { "body": { - "nativeSrc": "26340:486:18", + "nativeSrc": "17306:341:18", "nodeType": "YulBlock", - "src": "26340:486:18", + "src": "17306:341:18", "statements": [ { - "nativeSrc": "26355:155:18", + "nativeSrc": "17316:75:18", "nodeType": "YulAssignment", - "src": "26355:155:18", + "src": "17316:75:18", "value": { "arguments": [ { - "name": "pos", - "nativeSrc": "26506:3:18", - "nodeType": "YulIdentifier", - "src": "26506:3:18" + "arguments": [ + { + "name": "length", + "nativeSrc": "17383:6:18", + "nodeType": "YulIdentifier", + "src": "17383:6:18" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nativeSrc": "17341:41:18", + "nodeType": "YulIdentifier", + "src": "17341:41:18" + }, + "nativeSrc": "17341:49:18", + "nodeType": "YulFunctionCall", + "src": "17341:49:18" } ], "functionName": { - "name": "abi_encode_t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "26362:142:18", + "name": "allocate_memory", + "nativeSrc": "17325:15:18", "nodeType": "YulIdentifier", - "src": "26362:142:18" + "src": "17325:15:18" }, - "nativeSrc": "26362:148:18", + "nativeSrc": "17325:66:18", "nodeType": "YulFunctionCall", - "src": "26362:148:18" + "src": "17325:66:18" }, "variableNames": [ { - "name": "pos", - "nativeSrc": "26355:3:18", + "name": "array", + "nativeSrc": "17316:5:18", "nodeType": "YulIdentifier", - "src": "26355:3:18" + "src": "17316:5:18" } ] }, { - "nativeSrc": "26524:99:18", - "nodeType": "YulAssignment", - "src": "26524:99:18", - "value": { + "expression": { "arguments": [ { - "name": "value0", - "nativeSrc": "26610:6:18", + "name": "array", + "nativeSrc": "17407:5:18", "nodeType": "YulIdentifier", - "src": "26610:6:18" + "src": "17407:5:18" }, { - "name": "pos", - "nativeSrc": "26619:3:18", + "name": "length", + "nativeSrc": "17414:6:18", "nodeType": "YulIdentifier", - "src": "26619:3:18" + "src": "17414:6:18" } ], "functionName": { - "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "26531:78:18", + "name": "mstore", + "nativeSrc": "17400:6:18", "nodeType": "YulIdentifier", - "src": "26531:78:18" + "src": "17400:6:18" }, - "nativeSrc": "26531:92:18", + "nativeSrc": "17400:21:18", "nodeType": "YulFunctionCall", - "src": "26531:92:18" + "src": "17400:21:18" }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "26524:3:18", - "nodeType": "YulIdentifier", - "src": "26524:3:18" - } - ] + "nativeSrc": "17400:21:18", + "nodeType": "YulExpressionStatement", + "src": "17400:21:18" }, { - "nativeSrc": "26637:155:18", - "nodeType": "YulAssignment", - "src": "26637:155:18", + "nativeSrc": "17430:27:18", + "nodeType": "YulVariableDeclaration", + "src": "17430:27:18", "value": { "arguments": [ { - "name": "pos", - "nativeSrc": "26788:3:18", + "name": "array", + "nativeSrc": "17445:5:18", "nodeType": "YulIdentifier", - "src": "26788:3:18" + "src": "17445:5:18" + }, + { + "kind": "number", + "nativeSrc": "17452:4:18", + "nodeType": "YulLiteral", + "src": "17452:4:18", + "type": "", + "value": "0x20" } ], "functionName": { - "name": "abi_encode_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "26644:142:18", + "name": "add", + "nativeSrc": "17441:3:18", "nodeType": "YulIdentifier", - "src": "26644:142:18" + "src": "17441:3:18" }, - "nativeSrc": "26644:148:18", + "nativeSrc": "17441:16:18", "nodeType": "YulFunctionCall", - "src": "26644:148:18" + "src": "17441:16:18" }, - "variableNames": [ + "variables": [ { - "name": "pos", - "nativeSrc": "26637:3:18", - "nodeType": "YulIdentifier", - "src": "26637:3:18" + "name": "dst", + "nativeSrc": "17434:3:18", + "nodeType": "YulTypedName", + "src": "17434:3:18", + "type": "" } ] }, { - "nativeSrc": "26806:10:18", - "nodeType": "YulAssignment", - "src": "26806:10:18", - "value": { - "name": "pos", - "nativeSrc": "26813:3:18", - "nodeType": "YulIdentifier", - "src": "26813:3:18" + "body": { + "nativeSrc": "17495:83:18", + "nodeType": "YulBlock", + "src": "17495:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nativeSrc": "17497:77:18", + "nodeType": "YulIdentifier", + "src": "17497:77:18" + }, + "nativeSrc": "17497:79:18", + "nodeType": "YulFunctionCall", + "src": "17497:79:18" + }, + "nativeSrc": "17497:79:18", + "nodeType": "YulExpressionStatement", + "src": "17497:79:18" + } + ] }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "26806:3:18", + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "17476:3:18", + "nodeType": "YulIdentifier", + "src": "17476:3:18" + }, + { + "name": "length", + "nativeSrc": "17481:6:18", + "nodeType": "YulIdentifier", + "src": "17481:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17472:3:18", + "nodeType": "YulIdentifier", + "src": "17472:3:18" + }, + "nativeSrc": "17472:16:18", + "nodeType": "YulFunctionCall", + "src": "17472:16:18" + }, + { + "name": "end", + "nativeSrc": "17490:3:18", + "nodeType": "YulIdentifier", + "src": "17490:3:18" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "17469:2:18", "nodeType": "YulIdentifier", - "src": "26806:3:18" - } - ] + "src": "17469:2:18" + }, + "nativeSrc": "17469:25:18", + "nodeType": "YulFunctionCall", + "src": "17469:25:18" + }, + "nativeSrc": "17466:112:18", + "nodeType": "YulIf", + "src": "17466:112:18" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nativeSrc": "17624:3:18", + "nodeType": "YulIdentifier", + "src": "17624:3:18" + }, + { + "name": "dst", + "nativeSrc": "17629:3:18", + "nodeType": "YulIdentifier", + "src": "17629:3:18" + }, + { + "name": "length", + "nativeSrc": "17634:6:18", + "nodeType": "YulIdentifier", + "src": "17634:6:18" + } + ], + "functionName": { + "name": "copy_calldata_to_memory_with_cleanup", + "nativeSrc": "17587:36:18", + "nodeType": "YulIdentifier", + "src": "17587:36:18" + }, + "nativeSrc": "17587:54:18", + "nodeType": "YulFunctionCall", + "src": "17587:54:18" + }, + "nativeSrc": "17587:54:18", + "nodeType": "YulExpressionStatement", + "src": "17587:54:18" } ] }, - "name": "abi_encode_tuple_packed_t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe_t_string_storage_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", - "nativeSrc": "26005:821:18", + "name": "abi_decode_available_length_t_string_memory_ptr", + "nativeSrc": "17222:425:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", - "nativeSrc": "26319:3:18", + "name": "src", + "nativeSrc": "17279:3:18", "nodeType": "YulTypedName", - "src": "26319:3:18", + "src": "17279:3:18", "type": "" }, { - "name": "value0", - "nativeSrc": "26325:6:18", + "name": "length", + "nativeSrc": "17284:6:18", "nodeType": "YulTypedName", - "src": "26325:6:18", + "src": "17284:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "17292:3:18", + "nodeType": "YulTypedName", + "src": "17292:3:18", "type": "" } ], "returnVariables": [ { - "name": "end", - "nativeSrc": "26336:3:18", + "name": "array", + "nativeSrc": "17300:5:18", "nodeType": "YulTypedName", - "src": "26336:3:18", + "src": "17300:5:18", "type": "" } ], - "src": "26005:821:18" + "src": "17222:425:18" }, { "body": { - "nativeSrc": "26880:57:18", + "nativeSrc": "17729:278:18", "nodeType": "YulBlock", - "src": "26880:57:18", + "src": "17729:278:18", "statements": [ { - "nativeSrc": "26894:33:18", + "body": { + "nativeSrc": "17778:83:18", + "nodeType": "YulBlock", + "src": "17778:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nativeSrc": "17780:77:18", + "nodeType": "YulIdentifier", + "src": "17780:77:18" + }, + "nativeSrc": "17780:79:18", + "nodeType": "YulFunctionCall", + "src": "17780:79:18" + }, + "nativeSrc": "17780:79:18", + "nodeType": "YulExpressionStatement", + "src": "17780:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "17757:6:18", + "nodeType": "YulIdentifier", + "src": "17757:6:18" + }, + { + "kind": "number", + "nativeSrc": "17765:4:18", + "nodeType": "YulLiteral", + "src": "17765:4:18", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17753:3:18", + "nodeType": "YulIdentifier", + "src": "17753:3:18" + }, + "nativeSrc": "17753:17:18", + "nodeType": "YulFunctionCall", + "src": "17753:17:18" + }, + { + "name": "end", + "nativeSrc": "17772:3:18", + "nodeType": "YulIdentifier", + "src": "17772:3:18" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "17749:3:18", + "nodeType": "YulIdentifier", + "src": "17749:3:18" + }, + "nativeSrc": "17749:27:18", + "nodeType": "YulFunctionCall", + "src": "17749:27:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "17742:6:18", + "nodeType": "YulIdentifier", + "src": "17742:6:18" + }, + "nativeSrc": "17742:35:18", + "nodeType": "YulFunctionCall", + "src": "17742:35:18" + }, + "nativeSrc": "17739:122:18", + "nodeType": "YulIf", + "src": "17739:122:18" + }, + { + "nativeSrc": "17870:34:18", + "nodeType": "YulVariableDeclaration", + "src": "17870:34:18", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "17897:6:18", + "nodeType": "YulIdentifier", + "src": "17897:6:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "17884:12:18", + "nodeType": "YulIdentifier", + "src": "17884:12:18" + }, + "nativeSrc": "17884:20:18", + "nodeType": "YulFunctionCall", + "src": "17884:20:18" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "17874:6:18", + "nodeType": "YulTypedName", + "src": "17874:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "17913:88:18", "nodeType": "YulAssignment", - "src": "26894:33:18", + "src": "17913:88:18", "value": { "arguments": [ { "arguments": [ { - "name": "value", - "nativeSrc": "26912:5:18", + "name": "offset", + "nativeSrc": "17974:6:18", "nodeType": "YulIdentifier", - "src": "26912:5:18" + "src": "17974:6:18" }, { "kind": "number", - "nativeSrc": "26919:2:18", + "nativeSrc": "17982:4:18", "nodeType": "YulLiteral", - "src": "26919:2:18", + "src": "17982:4:18", "type": "", - "value": "31" + "value": "0x20" } ], "functionName": { "name": "add", - "nativeSrc": "26908:3:18", + "nativeSrc": "17970:3:18", "nodeType": "YulIdentifier", - "src": "26908:3:18" + "src": "17970:3:18" }, - "nativeSrc": "26908:14:18", + "nativeSrc": "17970:17:18", "nodeType": "YulFunctionCall", - "src": "26908:14:18" + "src": "17970:17:18" }, { - "kind": "number", - "nativeSrc": "26924:2:18", - "nodeType": "YulLiteral", - "src": "26924:2:18", - "type": "", - "value": "32" + "name": "length", + "nativeSrc": "17989:6:18", + "nodeType": "YulIdentifier", + "src": "17989:6:18" + }, + { + "name": "end", + "nativeSrc": "17997:3:18", + "nodeType": "YulIdentifier", + "src": "17997:3:18" } ], "functionName": { - "name": "div", - "nativeSrc": "26904:3:18", + "name": "abi_decode_available_length_t_string_memory_ptr", + "nativeSrc": "17922:47:18", "nodeType": "YulIdentifier", - "src": "26904:3:18" + "src": "17922:47:18" }, - "nativeSrc": "26904:23:18", + "nativeSrc": "17922:79:18", "nodeType": "YulFunctionCall", - "src": "26904:23:18" + "src": "17922:79:18" }, "variableNames": [ { - "name": "result", - "nativeSrc": "26894:6:18", + "name": "array", + "nativeSrc": "17913:5:18", "nodeType": "YulIdentifier", - "src": "26894:6:18" + "src": "17913:5:18" } ] } ] }, - "name": "divide_by_32_ceil", - "nativeSrc": "26836:101:18", + "name": "abi_decode_t_string_memory_ptr", + "nativeSrc": "17667:340:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", - "nativeSrc": "26863:5:18", + "name": "offset", + "nativeSrc": "17707:6:18", "nodeType": "YulTypedName", - "src": "26863:5:18", + "src": "17707:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "17715:3:18", + "nodeType": "YulTypedName", + "src": "17715:3:18", "type": "" } ], "returnVariables": [ { - "name": "result", - "nativeSrc": "26873:6:18", + "name": "array", + "nativeSrc": "17723:5:18", "nodeType": "YulTypedName", - "src": "26873:6:18", + "src": "17723:5:18", "type": "" } ], - "src": "26836:101:18" + "src": "17667:340:18" }, { "body": { - "nativeSrc": "27000:66:18", + "nativeSrc": "18106:561:18", "nodeType": "YulBlock", - "src": "27000:66:18", + "src": "18106:561:18", "statements": [ { - "nativeSrc": "27014:41:18", - "nodeType": "YulAssignment", - "src": "27014:41:18", - "value": { + "body": { + "nativeSrc": "18152:83:18", + "nodeType": "YulBlock", + "src": "18152:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "18154:77:18", + "nodeType": "YulIdentifier", + "src": "18154:77:18" + }, + "nativeSrc": "18154:79:18", + "nodeType": "YulFunctionCall", + "src": "18154:79:18" + }, + "nativeSrc": "18154:79:18", + "nodeType": "YulExpressionStatement", + "src": "18154:79:18" + } + ] + }, + "condition": { "arguments": [ { - "name": "bits", - "nativeSrc": "27043:4:18", - "nodeType": "YulIdentifier", - "src": "27043:4:18" + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "18127:7:18", + "nodeType": "YulIdentifier", + "src": "18127:7:18" + }, + { + "name": "headStart", + "nativeSrc": "18136:9:18", + "nodeType": "YulIdentifier", + "src": "18136:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "18123:3:18", + "nodeType": "YulIdentifier", + "src": "18123:3:18" + }, + "nativeSrc": "18123:23:18", + "nodeType": "YulFunctionCall", + "src": "18123:23:18" + }, + { + "kind": "number", + "nativeSrc": "18148:2:18", + "nodeType": "YulLiteral", + "src": "18148:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "18119:3:18", + "nodeType": "YulIdentifier", + "src": "18119:3:18" + }, + "nativeSrc": "18119:32:18", + "nodeType": "YulFunctionCall", + "src": "18119:32:18" + }, + "nativeSrc": "18116:119:18", + "nodeType": "YulIf", + "src": "18116:119:18" + }, + { + "nativeSrc": "18245:117:18", + "nodeType": "YulBlock", + "src": "18245:117:18", + "statements": [ + { + "nativeSrc": "18260:15:18", + "nodeType": "YulVariableDeclaration", + "src": "18260:15:18", + "value": { + "kind": "number", + "nativeSrc": "18274:1:18", + "nodeType": "YulLiteral", + "src": "18274:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "18264:6:18", + "nodeType": "YulTypedName", + "src": "18264:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "18289:63:18", + "nodeType": "YulAssignment", + "src": "18289:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18324:9:18", + "nodeType": "YulIdentifier", + "src": "18324:9:18" + }, + { + "name": "offset", + "nativeSrc": "18335:6:18", + "nodeType": "YulIdentifier", + "src": "18335:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18320:3:18", + "nodeType": "YulIdentifier", + "src": "18320:3:18" + }, + "nativeSrc": "18320:22:18", + "nodeType": "YulFunctionCall", + "src": "18320:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "18344:7:18", + "nodeType": "YulIdentifier", + "src": "18344:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "18299:20:18", + "nodeType": "YulIdentifier", + "src": "18299:20:18" + }, + "nativeSrc": "18299:53:18", + "nodeType": "YulFunctionCall", + "src": "18299:53:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "18289:6:18", + "nodeType": "YulIdentifier", + "src": "18289:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "18372:288:18", + "nodeType": "YulBlock", + "src": "18372:288:18", + "statements": [ + { + "nativeSrc": "18387:46:18", + "nodeType": "YulVariableDeclaration", + "src": "18387:46:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18418:9:18", + "nodeType": "YulIdentifier", + "src": "18418:9:18" + }, + { + "kind": "number", + "nativeSrc": "18429:2:18", + "nodeType": "YulLiteral", + "src": "18429:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18414:3:18", + "nodeType": "YulIdentifier", + "src": "18414:3:18" + }, + "nativeSrc": "18414:18:18", + "nodeType": "YulFunctionCall", + "src": "18414:18:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "18401:12:18", + "nodeType": "YulIdentifier", + "src": "18401:12:18" + }, + "nativeSrc": "18401:32:18", + "nodeType": "YulFunctionCall", + "src": "18401:32:18" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "18391:6:18", + "nodeType": "YulTypedName", + "src": "18391:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "18480:83:18", + "nodeType": "YulBlock", + "src": "18480:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "18482:77:18", + "nodeType": "YulIdentifier", + "src": "18482:77:18" + }, + "nativeSrc": "18482:79:18", + "nodeType": "YulFunctionCall", + "src": "18482:79:18" + }, + "nativeSrc": "18482:79:18", + "nodeType": "YulExpressionStatement", + "src": "18482:79:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "18452:6:18", + "nodeType": "YulIdentifier", + "src": "18452:6:18" + }, + { + "kind": "number", + "nativeSrc": "18460:18:18", + "nodeType": "YulLiteral", + "src": "18460:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "18449:2:18", + "nodeType": "YulIdentifier", + "src": "18449:2:18" + }, + "nativeSrc": "18449:30:18", + "nodeType": "YulFunctionCall", + "src": "18449:30:18" + }, + "nativeSrc": "18446:117:18", + "nodeType": "YulIf", + "src": "18446:117:18" + }, + { + "nativeSrc": "18577:73:18", + "nodeType": "YulAssignment", + "src": "18577:73:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18622:9:18", + "nodeType": "YulIdentifier", + "src": "18622:9:18" + }, + { + "name": "offset", + "nativeSrc": "18633:6:18", + "nodeType": "YulIdentifier", + "src": "18633:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18618:3:18", + "nodeType": "YulIdentifier", + "src": "18618:3:18" + }, + "nativeSrc": "18618:22:18", + "nodeType": "YulFunctionCall", + "src": "18618:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "18642:7:18", + "nodeType": "YulIdentifier", + "src": "18642:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nativeSrc": "18587:30:18", + "nodeType": "YulIdentifier", + "src": "18587:30:18" + }, + "nativeSrc": "18587:63:18", + "nodeType": "YulFunctionCall", + "src": "18587:63:18" }, - { - "name": "value", - "nativeSrc": "27049:5:18", - "nodeType": "YulIdentifier", - "src": "27049:5:18" - } - ], - "functionName": { - "name": "shl", - "nativeSrc": "27039:3:18", - "nodeType": "YulIdentifier", - "src": "27039:3:18" - }, - "nativeSrc": "27039:16:18", - "nodeType": "YulFunctionCall", - "src": "27039:16:18" - }, - "variableNames": [ - { - "name": "newValue", - "nativeSrc": "27014:8:18", - "nodeType": "YulIdentifier", - "src": "27014:8:18" + "variableNames": [ + { + "name": "value1", + "nativeSrc": "18577:6:18", + "nodeType": "YulIdentifier", + "src": "18577:6:18" + } + ] } ] } ] }, - "name": "shift_left_dynamic", - "nativeSrc": "26947:119:18", + "name": "abi_decode_tuple_t_uint256t_string_memory_ptr", + "nativeSrc": "18013:654:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "bits", - "nativeSrc": "26975:4:18", + "name": "headStart", + "nativeSrc": "18068:9:18", "nodeType": "YulTypedName", - "src": "26975:4:18", + "src": "18068:9:18", "type": "" }, { - "name": "value", - "nativeSrc": "26981:5:18", + "name": "dataEnd", + "nativeSrc": "18079:7:18", "nodeType": "YulTypedName", - "src": "26981:5:18", + "src": "18079:7:18", "type": "" } ], "returnVariables": [ { - "name": "newValue", - "nativeSrc": "26991:8:18", + "name": "value0", + "nativeSrc": "18091:6:18", + "nodeType": "YulTypedName", + "src": "18091:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "18099:6:18", "nodeType": "YulTypedName", - "src": "26991:8:18", + "src": "18099:6:18", "type": "" } ], - "src": "26947:119:18" + "src": "18013:654:18" }, { "body": { - "nativeSrc": "27152:341:18", + "nativeSrc": "18749:433:18", "nodeType": "YulBlock", - "src": "27152:341:18", + "src": "18749:433:18", "statements": [ { - "nativeSrc": "27166:35:18", - "nodeType": "YulVariableDeclaration", - "src": "27166:35:18", - "value": { - "arguments": [ - { - "name": "shiftBytes", - "nativeSrc": "27187:10:18", - "nodeType": "YulIdentifier", - "src": "27187:10:18" - }, + "body": { + "nativeSrc": "18795:83:18", + "nodeType": "YulBlock", + "src": "18795:83:18", + "statements": [ { - "kind": "number", - "nativeSrc": "27199:1:18", - "nodeType": "YulLiteral", - "src": "27199:1:18", - "type": "", - "value": "8" + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "18797:77:18", + "nodeType": "YulIdentifier", + "src": "18797:77:18" + }, + "nativeSrc": "18797:79:18", + "nodeType": "YulFunctionCall", + "src": "18797:79:18" + }, + "nativeSrc": "18797:79:18", + "nodeType": "YulExpressionStatement", + "src": "18797:79:18" } - ], - "functionName": { - "name": "mul", - "nativeSrc": "27183:3:18", - "nodeType": "YulIdentifier", - "src": "27183:3:18" - }, - "nativeSrc": "27183:18:18", - "nodeType": "YulFunctionCall", - "src": "27183:18:18" + ] }, - "variables": [ - { - "name": "shiftBits", - "nativeSrc": "27170:9:18", - "nodeType": "YulTypedName", - "src": "27170:9:18", - "type": "" - } - ] - }, - { - "nativeSrc": "27214:109:18", - "nodeType": "YulVariableDeclaration", - "src": "27214:109:18", - "value": { + "condition": { "arguments": [ { - "name": "shiftBits", - "nativeSrc": "27245:9:18", - "nodeType": "YulIdentifier", - "src": "27245:9:18" + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "18770:7:18", + "nodeType": "YulIdentifier", + "src": "18770:7:18" + }, + { + "name": "headStart", + "nativeSrc": "18779:9:18", + "nodeType": "YulIdentifier", + "src": "18779:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "18766:3:18", + "nodeType": "YulIdentifier", + "src": "18766:3:18" + }, + "nativeSrc": "18766:23:18", + "nodeType": "YulFunctionCall", + "src": "18766:23:18" }, { "kind": "number", - "nativeSrc": "27256:66:18", + "nativeSrc": "18791:2:18", "nodeType": "YulLiteral", - "src": "27256:66:18", + "src": "18791:2:18", "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + "value": "32" } ], "functionName": { - "name": "shift_left_dynamic", - "nativeSrc": "27226:18:18", + "name": "slt", + "nativeSrc": "18762:3:18", "nodeType": "YulIdentifier", - "src": "27226:18:18" + "src": "18762:3:18" }, - "nativeSrc": "27226:97:18", + "nativeSrc": "18762:32:18", "nodeType": "YulFunctionCall", - "src": "27226:97:18" + "src": "18762:32:18" }, - "variables": [ - { - "name": "mask", - "nativeSrc": "27218:4:18", - "nodeType": "YulTypedName", - "src": "27218:4:18", - "type": "" - } - ] + "nativeSrc": "18759:119:18", + "nodeType": "YulIf", + "src": "18759:119:18" }, { - "nativeSrc": "27336:51:18", - "nodeType": "YulAssignment", - "src": "27336:51:18", - "value": { - "arguments": [ - { - "name": "shiftBits", - "nativeSrc": "27367:9:18", - "nodeType": "YulIdentifier", - "src": "27367:9:18" - }, - { - "name": "toInsert", - "nativeSrc": "27378:8:18", - "nodeType": "YulIdentifier", - "src": "27378:8:18" - } - ], - "functionName": { - "name": "shift_left_dynamic", - "nativeSrc": "27348:18:18", - "nodeType": "YulIdentifier", - "src": "27348:18:18" - }, - "nativeSrc": "27348:39:18", - "nodeType": "YulFunctionCall", - "src": "27348:39:18" - }, - "variableNames": [ + "nativeSrc": "18888:287:18", + "nodeType": "YulBlock", + "src": "18888:287:18", + "statements": [ { - "name": "toInsert", - "nativeSrc": "27336:8:18", - "nodeType": "YulIdentifier", - "src": "27336:8:18" - } - ] - }, - { - "nativeSrc": "27400:30:18", - "nodeType": "YulAssignment", - "src": "27400:30:18", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "27413:5:18", - "nodeType": "YulIdentifier", - "src": "27413:5:18" - }, - { + "nativeSrc": "18903:45:18", + "nodeType": "YulVariableDeclaration", + "src": "18903:45:18", + "value": { "arguments": [ { - "name": "mask", - "nativeSrc": "27424:4:18", - "nodeType": "YulIdentifier", - "src": "27424:4:18" + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18934:9:18", + "nodeType": "YulIdentifier", + "src": "18934:9:18" + }, + { + "kind": "number", + "nativeSrc": "18945:1:18", + "nodeType": "YulLiteral", + "src": "18945:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18930:3:18", + "nodeType": "YulIdentifier", + "src": "18930:3:18" + }, + "nativeSrc": "18930:17:18", + "nodeType": "YulFunctionCall", + "src": "18930:17:18" } ], "functionName": { - "name": "not", - "nativeSrc": "27420:3:18", + "name": "calldataload", + "nativeSrc": "18917:12:18", "nodeType": "YulIdentifier", - "src": "27420:3:18" + "src": "18917:12:18" }, - "nativeSrc": "27420:9:18", + "nativeSrc": "18917:31:18", "nodeType": "YulFunctionCall", - "src": "27420:9:18" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "27409:3:18", - "nodeType": "YulIdentifier", - "src": "27409:3:18" + "src": "18917:31:18" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "18907:6:18", + "nodeType": "YulTypedName", + "src": "18907:6:18", + "type": "" + } + ] }, - "nativeSrc": "27409:21:18", - "nodeType": "YulFunctionCall", - "src": "27409:21:18" - }, - "variableNames": [ { - "name": "value", - "nativeSrc": "27400:5:18", - "nodeType": "YulIdentifier", - "src": "27400:5:18" - } - ] - }, - { - "nativeSrc": "27443:40:18", - "nodeType": "YulAssignment", - "src": "27443:40:18", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "27456:5:18", - "nodeType": "YulIdentifier", - "src": "27456:5:18" + "body": { + "nativeSrc": "18995:83:18", + "nodeType": "YulBlock", + "src": "18995:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "18997:77:18", + "nodeType": "YulIdentifier", + "src": "18997:77:18" + }, + "nativeSrc": "18997:79:18", + "nodeType": "YulFunctionCall", + "src": "18997:79:18" + }, + "nativeSrc": "18997:79:18", + "nodeType": "YulExpressionStatement", + "src": "18997:79:18" + } + ] }, - { + "condition": { "arguments": [ { - "name": "toInsert", - "nativeSrc": "27467:8:18", + "name": "offset", + "nativeSrc": "18967:6:18", "nodeType": "YulIdentifier", - "src": "27467:8:18" + "src": "18967:6:18" }, { - "name": "mask", - "nativeSrc": "27477:4:18", - "nodeType": "YulIdentifier", - "src": "27477:4:18" + "kind": "number", + "nativeSrc": "18975:18:18", + "nodeType": "YulLiteral", + "src": "18975:18:18", + "type": "", + "value": "0xffffffffffffffff" } ], "functionName": { - "name": "and", - "nativeSrc": "27463:3:18", + "name": "gt", + "nativeSrc": "18964:2:18", "nodeType": "YulIdentifier", - "src": "27463:3:18" + "src": "18964:2:18" }, - "nativeSrc": "27463:19:18", + "nativeSrc": "18964:30:18", "nodeType": "YulFunctionCall", - "src": "27463:19:18" - } - ], - "functionName": { - "name": "or", - "nativeSrc": "27453:2:18", - "nodeType": "YulIdentifier", - "src": "27453:2:18" + "src": "18964:30:18" + }, + "nativeSrc": "18961:117:18", + "nodeType": "YulIf", + "src": "18961:117:18" }, - "nativeSrc": "27453:30:18", - "nodeType": "YulFunctionCall", - "src": "27453:30:18" - }, - "variableNames": [ - { - "name": "result", - "nativeSrc": "27443:6:18", - "nodeType": "YulIdentifier", - "src": "27443:6:18" - } - ] - } - ] - }, - "name": "update_byte_slice_dynamic32", - "nativeSrc": "27076:417:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "27113:5:18", - "nodeType": "YulTypedName", - "src": "27113:5:18", - "type": "" - }, - { - "name": "shiftBytes", - "nativeSrc": "27120:10:18", - "nodeType": "YulTypedName", - "src": "27120:10:18", - "type": "" - }, - { - "name": "toInsert", - "nativeSrc": "27132:8:18", - "nodeType": "YulTypedName", - "src": "27132:8:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "result", - "nativeSrc": "27145:6:18", - "nodeType": "YulTypedName", - "src": "27145:6:18", - "type": "" - } - ], - "src": "27076:417:18" - }, - { - "body": { - "nativeSrc": "27535:36:18", - "nodeType": "YulBlock", - "src": "27535:36:18", - "statements": [ - { - "nativeSrc": "27549:12:18", - "nodeType": "YulAssignment", - "src": "27549:12:18", - "value": { - "name": "value", - "nativeSrc": "27556:5:18", - "nodeType": "YulIdentifier", - "src": "27556:5:18" - }, - "variableNames": [ { - "name": "ret", - "nativeSrc": "27549:3:18", - "nodeType": "YulIdentifier", - "src": "27549:3:18" - } - ] - } - ] - }, - "name": "identity", - "nativeSrc": "27503:68:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "27521:5:18", - "nodeType": "YulTypedName", - "src": "27521:5:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "ret", - "nativeSrc": "27531:3:18", - "nodeType": "YulTypedName", - "src": "27531:3:18", - "type": "" - } - ], - "src": "27503:68:18" - }, - { - "body": { - "nativeSrc": "27641:90:18", - "nodeType": "YulBlock", - "src": "27641:90:18", - "statements": [ - { - "nativeSrc": "27655:66:18", - "nodeType": "YulAssignment", - "src": "27655:66:18", - "value": { - "arguments": [ - { + "nativeSrc": "19092:73:18", + "nodeType": "YulAssignment", + "src": "19092:73:18", + "value": { "arguments": [ { "arguments": [ { - "name": "value", - "nativeSrc": "27713:5:18", + "name": "headStart", + "nativeSrc": "19137:9:18", + "nodeType": "YulIdentifier", + "src": "19137:9:18" + }, + { + "name": "offset", + "nativeSrc": "19148:6:18", "nodeType": "YulIdentifier", - "src": "27713:5:18" + "src": "19148:6:18" } ], "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "27695:17:18", + "name": "add", + "nativeSrc": "19133:3:18", "nodeType": "YulIdentifier", - "src": "27695:17:18" + "src": "19133:3:18" }, - "nativeSrc": "27695:24:18", + "nativeSrc": "19133:22:18", "nodeType": "YulFunctionCall", - "src": "27695:24:18" + "src": "19133:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "19157:7:18", + "nodeType": "YulIdentifier", + "src": "19157:7:18" } ], "functionName": { - "name": "identity", - "nativeSrc": "27686:8:18", + "name": "abi_decode_t_string_memory_ptr", + "nativeSrc": "19102:30:18", "nodeType": "YulIdentifier", - "src": "27686:8:18" + "src": "19102:30:18" }, - "nativeSrc": "27686:34:18", + "nativeSrc": "19102:63:18", "nodeType": "YulFunctionCall", - "src": "27686:34:18" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "27668:17:18", - "nodeType": "YulIdentifier", - "src": "27668:17:18" - }, - "nativeSrc": "27668:53:18", - "nodeType": "YulFunctionCall", - "src": "27668:53:18" - }, - "variableNames": [ - { - "name": "converted", - "nativeSrc": "27655:9:18", - "nodeType": "YulIdentifier", - "src": "27655:9:18" + "src": "19102:63:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "19092:6:18", + "nodeType": "YulIdentifier", + "src": "19092:6:18" + } + ] } ] } ] }, - "name": "convert_t_uint256_to_t_uint256", - "nativeSrc": "27581:150:18", + "name": "abi_decode_tuple_t_string_memory_ptr", + "nativeSrc": "18673:509:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", - "nativeSrc": "27621:5:18", - "nodeType": "YulTypedName", - "src": "27621:5:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "converted", - "nativeSrc": "27631:9:18", + "name": "headStart", + "nativeSrc": "18719:9:18", "nodeType": "YulTypedName", - "src": "27631:9:18", + "src": "18719:9:18", "type": "" - } - ], - "src": "27581:150:18" - }, - { - "body": { - "nativeSrc": "27788:36:18", - "nodeType": "YulBlock", - "src": "27788:36:18", - "statements": [ - { - "nativeSrc": "27802:12:18", - "nodeType": "YulAssignment", - "src": "27802:12:18", - "value": { - "name": "value", - "nativeSrc": "27809:5:18", - "nodeType": "YulIdentifier", - "src": "27809:5:18" - }, - "variableNames": [ - { - "name": "ret", - "nativeSrc": "27802:3:18", - "nodeType": "YulIdentifier", - "src": "27802:3:18" - } - ] - } - ] - }, - "name": "prepare_store_t_uint256", - "nativeSrc": "27741:83:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ + }, { - "name": "value", - "nativeSrc": "27774:5:18", + "name": "dataEnd", + "nativeSrc": "18730:7:18", "nodeType": "YulTypedName", - "src": "27774:5:18", + "src": "18730:7:18", "type": "" } ], "returnVariables": [ { - "name": "ret", - "nativeSrc": "27784:3:18", + "name": "value0", + "nativeSrc": "18742:6:18", "nodeType": "YulTypedName", - "src": "27784:3:18", + "src": "18742:6:18", "type": "" } ], - "src": "27741:83:18" + "src": "18673:509:18" }, { "body": { - "nativeSrc": "27910:205:18", + "nativeSrc": "19228:76:18", "nodeType": "YulBlock", - "src": "27910:205:18", + "src": "19228:76:18", "statements": [ { - "nativeSrc": "27924:63:18", - "nodeType": "YulVariableDeclaration", - "src": "27924:63:18", - "value": { - "arguments": [ + "body": { + "nativeSrc": "19282:16:18", + "nodeType": "YulBlock", + "src": "19282:16:18", + "statements": [ { - "name": "value_0", - "nativeSrc": "27979:7:18", - "nodeType": "YulIdentifier", - "src": "27979:7:18" + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19291:1:18", + "nodeType": "YulLiteral", + "src": "19291:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "19294:1:18", + "nodeType": "YulLiteral", + "src": "19294:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "19284:6:18", + "nodeType": "YulIdentifier", + "src": "19284:6:18" + }, + "nativeSrc": "19284:12:18", + "nodeType": "YulFunctionCall", + "src": "19284:12:18" + }, + "nativeSrc": "19284:12:18", + "nodeType": "YulExpressionStatement", + "src": "19284:12:18" } - ], - "functionName": { - "name": "convert_t_uint256_to_t_uint256", - "nativeSrc": "27948:30:18", - "nodeType": "YulIdentifier", - "src": "27948:30:18" - }, - "nativeSrc": "27948:39:18", - "nodeType": "YulFunctionCall", - "src": "27948:39:18" + ] }, - "variables": [ - { - "name": "convertedValue_0", - "nativeSrc": "27928:16:18", - "nodeType": "YulTypedName", - "src": "27928:16:18", - "type": "" - } - ] - }, - { - "expression": { + "condition": { "arguments": [ - { - "name": "slot", - "nativeSrc": "28007:4:18", - "nodeType": "YulIdentifier", - "src": "28007:4:18" - }, { "arguments": [ { - "arguments": [ - { - "name": "slot", - "nativeSrc": "28047:4:18", - "nodeType": "YulIdentifier", - "src": "28047:4:18" - } - ], - "functionName": { - "name": "sload", - "nativeSrc": "28041:5:18", - "nodeType": "YulIdentifier", - "src": "28041:5:18" - }, - "nativeSrc": "28041:11:18", - "nodeType": "YulFunctionCall", - "src": "28041:11:18" - }, - { - "name": "offset", - "nativeSrc": "28054:6:18", + "name": "value", + "nativeSrc": "19251:5:18", "nodeType": "YulIdentifier", - "src": "28054:6:18" + "src": "19251:5:18" }, { "arguments": [ { - "name": "convertedValue_0", - "nativeSrc": "28086:16:18", + "name": "value", + "nativeSrc": "19273:5:18", "nodeType": "YulIdentifier", - "src": "28086:16:18" + "src": "19273:5:18" } ], "functionName": { - "name": "prepare_store_t_uint256", - "nativeSrc": "28062:23:18", + "name": "cleanup_t_bool", + "nativeSrc": "19258:14:18", "nodeType": "YulIdentifier", - "src": "28062:23:18" + "src": "19258:14:18" }, - "nativeSrc": "28062:41:18", + "nativeSrc": "19258:21:18", "nodeType": "YulFunctionCall", - "src": "28062:41:18" + "src": "19258:21:18" } ], "functionName": { - "name": "update_byte_slice_dynamic32", - "nativeSrc": "28013:27:18", + "name": "eq", + "nativeSrc": "19248:2:18", "nodeType": "YulIdentifier", - "src": "28013:27:18" + "src": "19248:2:18" }, - "nativeSrc": "28013:91:18", + "nativeSrc": "19248:32:18", "nodeType": "YulFunctionCall", - "src": "28013:91:18" + "src": "19248:32:18" } ], "functionName": { - "name": "sstore", - "nativeSrc": "28000:6:18", + "name": "iszero", + "nativeSrc": "19241:6:18", "nodeType": "YulIdentifier", - "src": "28000:6:18" + "src": "19241:6:18" }, - "nativeSrc": "28000:105:18", + "nativeSrc": "19241:40:18", "nodeType": "YulFunctionCall", - "src": "28000:105:18" + "src": "19241:40:18" }, - "nativeSrc": "28000:105:18", - "nodeType": "YulExpressionStatement", - "src": "28000:105:18" + "nativeSrc": "19238:60:18", + "nodeType": "YulIf", + "src": "19238:60:18" } ] }, - "name": "update_storage_value_t_uint256_to_t_uint256", - "nativeSrc": "27834:281:18", + "name": "validator_revert_t_bool", + "nativeSrc": "19188:116:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "slot", - "nativeSrc": "27887:4:18", - "nodeType": "YulTypedName", - "src": "27887:4:18", - "type": "" - }, - { - "name": "offset", - "nativeSrc": "27893:6:18", - "nodeType": "YulTypedName", - "src": "27893:6:18", - "type": "" - }, - { - "name": "value_0", - "nativeSrc": "27901:7:18", + "name": "value", + "nativeSrc": "19221:5:18", "nodeType": "YulTypedName", - "src": "27901:7:18", + "src": "19221:5:18", "type": "" } ], - "src": "27834:281:18" + "src": "19188:116:18" }, { "body": { - "nativeSrc": "28174:32:18", + "nativeSrc": "19359:84:18", "nodeType": "YulBlock", - "src": "28174:32:18", + "src": "19359:84:18", "statements": [ { - "nativeSrc": "28188:8:18", + "nativeSrc": "19369:29:18", "nodeType": "YulAssignment", - "src": "28188:8:18", - "value": { - "kind": "number", - "nativeSrc": "28195:1:18", - "nodeType": "YulLiteral", - "src": "28195:1:18", - "type": "", - "value": "0" - }, - "variableNames": [ - { - "name": "ret", - "nativeSrc": "28188:3:18", - "nodeType": "YulIdentifier", - "src": "28188:3:18" - } - ] - } - ] - }, - "name": "zero_value_for_split_t_uint256", - "nativeSrc": "28125:81:18", - "nodeType": "YulFunctionDefinition", - "returnVariables": [ - { - "name": "ret", - "nativeSrc": "28170:3:18", - "nodeType": "YulTypedName", - "src": "28170:3:18", - "type": "" - } - ], - "src": "28125:81:18" - }, - { - "body": { - "nativeSrc": "28269:148:18", - "nodeType": "YulBlock", - "src": "28269:148:18", - "statements": [ - { - "nativeSrc": "28283:46:18", - "nodeType": "YulVariableDeclaration", - "src": "28283:46:18", + "src": "19369:29:18", "value": { - "arguments": [], + "arguments": [ + { + "name": "offset", + "nativeSrc": "19391:6:18", + "nodeType": "YulIdentifier", + "src": "19391:6:18" + } + ], "functionName": { - "name": "zero_value_for_split_t_uint256", - "nativeSrc": "28297:30:18", + "name": "calldataload", + "nativeSrc": "19378:12:18", "nodeType": "YulIdentifier", - "src": "28297:30:18" + "src": "19378:12:18" }, - "nativeSrc": "28297:32:18", + "nativeSrc": "19378:20:18", "nodeType": "YulFunctionCall", - "src": "28297:32:18" + "src": "19378:20:18" }, - "variables": [ + "variableNames": [ { - "name": "zero_0", - "nativeSrc": "28287:6:18", - "nodeType": "YulTypedName", - "src": "28287:6:18", - "type": "" + "name": "value", + "nativeSrc": "19369:5:18", + "nodeType": "YulIdentifier", + "src": "19369:5:18" } ] }, @@ -76501,2004 +76086,2174 @@ "expression": { "arguments": [ { - "name": "slot", - "nativeSrc": "28386:4:18", - "nodeType": "YulIdentifier", - "src": "28386:4:18" - }, - { - "name": "offset", - "nativeSrc": "28392:6:18", - "nodeType": "YulIdentifier", - "src": "28392:6:18" - }, - { - "name": "zero_0", - "nativeSrc": "28400:6:18", + "name": "value", + "nativeSrc": "19431:5:18", "nodeType": "YulIdentifier", - "src": "28400:6:18" + "src": "19431:5:18" } ], "functionName": { - "name": "update_storage_value_t_uint256_to_t_uint256", - "nativeSrc": "28342:43:18", + "name": "validator_revert_t_bool", + "nativeSrc": "19407:23:18", "nodeType": "YulIdentifier", - "src": "28342:43:18" + "src": "19407:23:18" }, - "nativeSrc": "28342:65:18", + "nativeSrc": "19407:30:18", "nodeType": "YulFunctionCall", - "src": "28342:65:18" + "src": "19407:30:18" }, - "nativeSrc": "28342:65:18", + "nativeSrc": "19407:30:18", "nodeType": "YulExpressionStatement", - "src": "28342:65:18" + "src": "19407:30:18" } ] }, - "name": "storage_set_to_zero_t_uint256", - "nativeSrc": "28216:201:18", + "name": "abi_decode_t_bool", + "nativeSrc": "19310:133:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "slot", - "nativeSrc": "28255:4:18", + "name": "offset", + "nativeSrc": "19337:6:18", "nodeType": "YulTypedName", - "src": "28255:4:18", + "src": "19337:6:18", "type": "" }, { - "name": "offset", - "nativeSrc": "28261:6:18", + "name": "end", + "nativeSrc": "19345:3:18", + "nodeType": "YulTypedName", + "src": "19345:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "19353:5:18", "nodeType": "YulTypedName", - "src": "28261:6:18", + "src": "19353:5:18", "type": "" } ], - "src": "28216:201:18" + "src": "19310:133:18" }, { "body": { - "nativeSrc": "28477:156:18", + "nativeSrc": "19529:388:18", "nodeType": "YulBlock", - "src": "28477:156:18", + "src": "19529:388:18", "statements": [ { "body": { - "nativeSrc": "28552:71:18", + "nativeSrc": "19575:83:18", "nodeType": "YulBlock", - "src": "28552:71:18", + "src": "19575:83:18", "statements": [ { "expression": { - "arguments": [ - { - "name": "start", - "nativeSrc": "28600:5:18", - "nodeType": "YulIdentifier", - "src": "28600:5:18" - }, - { - "kind": "number", - "nativeSrc": "28607:1:18", - "nodeType": "YulLiteral", - "src": "28607:1:18", - "type": "", - "value": "0" - } - ], + "arguments": [], "functionName": { - "name": "storage_set_to_zero_t_uint256", - "nativeSrc": "28570:29:18", + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "19577:77:18", "nodeType": "YulIdentifier", - "src": "28570:29:18" + "src": "19577:77:18" }, - "nativeSrc": "28570:39:18", + "nativeSrc": "19577:79:18", "nodeType": "YulFunctionCall", - "src": "28570:39:18" + "src": "19577:79:18" }, - "nativeSrc": "28570:39:18", + "nativeSrc": "19577:79:18", "nodeType": "YulExpressionStatement", - "src": "28570:39:18" + "src": "19577:79:18" } ] }, "condition": { "arguments": [ { - "name": "start", - "nativeSrc": "28501:5:18", - "nodeType": "YulIdentifier", - "src": "28501:5:18" + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "19550:7:18", + "nodeType": "YulIdentifier", + "src": "19550:7:18" + }, + { + "name": "headStart", + "nativeSrc": "19559:9:18", + "nodeType": "YulIdentifier", + "src": "19559:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "19546:3:18", + "nodeType": "YulIdentifier", + "src": "19546:3:18" + }, + "nativeSrc": "19546:23:18", + "nodeType": "YulFunctionCall", + "src": "19546:23:18" }, { - "name": "end", - "nativeSrc": "28508:3:18", - "nodeType": "YulIdentifier", - "src": "28508:3:18" + "kind": "number", + "nativeSrc": "19571:2:18", + "nodeType": "YulLiteral", + "src": "19571:2:18", + "type": "", + "value": "64" } ], "functionName": { - "name": "lt", - "nativeSrc": "28498:2:18", + "name": "slt", + "nativeSrc": "19542:3:18", "nodeType": "YulIdentifier", - "src": "28498:2:18" + "src": "19542:3:18" }, - "nativeSrc": "28498:14:18", + "nativeSrc": "19542:32:18", "nodeType": "YulFunctionCall", - "src": "28498:14:18" + "src": "19542:32:18" }, - "nativeSrc": "28491:132:18", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "28513:26:18", - "nodeType": "YulBlock", - "src": "28513:26:18", - "statements": [ - { - "nativeSrc": "28515:22:18", - "nodeType": "YulAssignment", - "src": "28515:22:18", - "value": { - "arguments": [ - { - "name": "start", - "nativeSrc": "28528:5:18", + "nativeSrc": "19539:119:18", + "nodeType": "YulIf", + "src": "19539:119:18" + }, + { + "nativeSrc": "19668:117:18", + "nodeType": "YulBlock", + "src": "19668:117:18", + "statements": [ + { + "nativeSrc": "19683:15:18", + "nodeType": "YulVariableDeclaration", + "src": "19683:15:18", + "value": { + "kind": "number", + "nativeSrc": "19697:1:18", + "nodeType": "YulLiteral", + "src": "19697:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "19687:6:18", + "nodeType": "YulTypedName", + "src": "19687:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "19712:63:18", + "nodeType": "YulAssignment", + "src": "19712:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19747:9:18", + "nodeType": "YulIdentifier", + "src": "19747:9:18" + }, + { + "name": "offset", + "nativeSrc": "19758:6:18", + "nodeType": "YulIdentifier", + "src": "19758:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19743:3:18", "nodeType": "YulIdentifier", - "src": "28528:5:18" + "src": "19743:3:18" }, - { - "kind": "number", - "nativeSrc": "28535:1:18", - "nodeType": "YulLiteral", - "src": "28535:1:18", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "28524:3:18", - "nodeType": "YulIdentifier", - "src": "28524:3:18" + "nativeSrc": "19743:22:18", + "nodeType": "YulFunctionCall", + "src": "19743:22:18" }, - "nativeSrc": "28524:13:18", - "nodeType": "YulFunctionCall", - "src": "28524:13:18" + { + "name": "dataEnd", + "nativeSrc": "19767:7:18", + "nodeType": "YulIdentifier", + "src": "19767:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "19722:20:18", + "nodeType": "YulIdentifier", + "src": "19722:20:18" }, - "variableNames": [ + "nativeSrc": "19722:53:18", + "nodeType": "YulFunctionCall", + "src": "19722:53:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "19712:6:18", + "nodeType": "YulIdentifier", + "src": "19712:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "19795:115:18", + "nodeType": "YulBlock", + "src": "19795:115:18", + "statements": [ + { + "nativeSrc": "19810:16:18", + "nodeType": "YulVariableDeclaration", + "src": "19810:16:18", + "value": { + "kind": "number", + "nativeSrc": "19824:2:18", + "nodeType": "YulLiteral", + "src": "19824:2:18", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "19814:6:18", + "nodeType": "YulTypedName", + "src": "19814:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "19840:60:18", + "nodeType": "YulAssignment", + "src": "19840:60:18", + "value": { + "arguments": [ { - "name": "start", - "nativeSrc": "28515:5:18", + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19872:9:18", + "nodeType": "YulIdentifier", + "src": "19872:9:18" + }, + { + "name": "offset", + "nativeSrc": "19883:6:18", + "nodeType": "YulIdentifier", + "src": "19883:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19868:3:18", + "nodeType": "YulIdentifier", + "src": "19868:3:18" + }, + "nativeSrc": "19868:22:18", + "nodeType": "YulFunctionCall", + "src": "19868:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "19892:7:18", "nodeType": "YulIdentifier", - "src": "28515:5:18" + "src": "19892:7:18" } - ] - } - ] - }, - "pre": { - "nativeSrc": "28495:2:18", - "nodeType": "YulBlock", - "src": "28495:2:18", - "statements": [] - }, - "src": "28491:132:18" + ], + "functionName": { + "name": "abi_decode_t_bool", + "nativeSrc": "19850:17:18", + "nodeType": "YulIdentifier", + "src": "19850:17:18" + }, + "nativeSrc": "19850:50:18", + "nodeType": "YulFunctionCall", + "src": "19850:50:18" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "19840:6:18", + "nodeType": "YulIdentifier", + "src": "19840:6:18" + } + ] + } + ] } ] }, - "name": "clear_storage_range_t_bytes1", - "nativeSrc": "28427:206:18", + "name": "abi_decode_tuple_t_addresst_bool", + "nativeSrc": "19449:468:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "start", - "nativeSrc": "28465:5:18", + "name": "headStart", + "nativeSrc": "19491:9:18", "nodeType": "YulTypedName", - "src": "28465:5:18", + "src": "19491:9:18", "type": "" }, { - "name": "end", - "nativeSrc": "28472:3:18", + "name": "dataEnd", + "nativeSrc": "19502:7:18", + "nodeType": "YulTypedName", + "src": "19502:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "19514:6:18", + "nodeType": "YulTypedName", + "src": "19514:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "19522:6:18", "nodeType": "YulTypedName", - "src": "28472:3:18", + "src": "19522:6:18", "type": "" } ], - "src": "28427:206:18" + "src": "19449:468:18" }, { "body": { - "nativeSrc": "28722:496:18", + "nativeSrc": "20006:391:18", "nodeType": "YulBlock", - "src": "28722:496:18", + "src": "20006:391:18", "statements": [ { "body": { - "nativeSrc": "28752:455:18", + "nativeSrc": "20052:83:18", "nodeType": "YulBlock", - "src": "28752:455:18", + "src": "20052:83:18", "statements": [ - { - "nativeSrc": "28770:54:18", - "nodeType": "YulVariableDeclaration", - "src": "28770:54:18", - "value": { - "arguments": [ - { - "name": "array", - "nativeSrc": "28818:5:18", - "nodeType": "YulIdentifier", - "src": "28818:5:18" - } - ], - "functionName": { - "name": "array_dataslot_t_string_storage", - "nativeSrc": "28786:31:18", - "nodeType": "YulIdentifier", - "src": "28786:31:18" - }, - "nativeSrc": "28786:38:18", - "nodeType": "YulFunctionCall", - "src": "28786:38:18" - }, - "variables": [ - { - "name": "dataArea", - "nativeSrc": "28774:8:18", - "nodeType": "YulTypedName", - "src": "28774:8:18", - "type": "" - } - ] - }, - { - "nativeSrc": "28841:63:18", - "nodeType": "YulVariableDeclaration", - "src": "28841:63:18", - "value": { - "arguments": [ - { - "name": "dataArea", - "nativeSrc": "28864:8:18", - "nodeType": "YulIdentifier", - "src": "28864:8:18" - }, - { - "arguments": [ - { - "name": "startIndex", - "nativeSrc": "28892:10:18", - "nodeType": "YulIdentifier", - "src": "28892:10:18" - } - ], - "functionName": { - "name": "divide_by_32_ceil", - "nativeSrc": "28874:17:18", - "nodeType": "YulIdentifier", - "src": "28874:17:18" - }, - "nativeSrc": "28874:29:18", - "nodeType": "YulFunctionCall", - "src": "28874:29:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "28860:3:18", - "nodeType": "YulIdentifier", - "src": "28860:3:18" - }, - "nativeSrc": "28860:44:18", - "nodeType": "YulFunctionCall", - "src": "28860:44:18" - }, - "variables": [ - { - "name": "deleteStart", - "nativeSrc": "28845:11:18", - "nodeType": "YulTypedName", - "src": "28845:11:18", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "29069:27:18", - "nodeType": "YulBlock", - "src": "29069:27:18", - "statements": [ - { - "nativeSrc": "29071:23:18", - "nodeType": "YulAssignment", - "src": "29071:23:18", - "value": { - "name": "dataArea", - "nativeSrc": "29086:8:18", - "nodeType": "YulIdentifier", - "src": "29086:8:18" - }, - "variableNames": [ - { - "name": "deleteStart", - "nativeSrc": "29071:11:18", - "nodeType": "YulIdentifier", - "src": "29071:11:18" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "startIndex", - "nativeSrc": "29053:10:18", - "nodeType": "YulIdentifier", - "src": "29053:10:18" - }, - { - "kind": "number", - "nativeSrc": "29065:2:18", - "nodeType": "YulLiteral", - "src": "29065:2:18", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "29050:2:18", - "nodeType": "YulIdentifier", - "src": "29050:2:18" - }, - "nativeSrc": "29050:18:18", - "nodeType": "YulFunctionCall", - "src": "29050:18:18" - }, - "nativeSrc": "29047:49:18", - "nodeType": "YulIf", - "src": "29047:49:18" - }, { "expression": { - "arguments": [ - { - "name": "deleteStart", - "nativeSrc": "29142:11:18", - "nodeType": "YulIdentifier", - "src": "29142:11:18" - }, - { - "arguments": [ - { - "name": "dataArea", - "nativeSrc": "29159:8:18", - "nodeType": "YulIdentifier", - "src": "29159:8:18" - }, - { - "arguments": [ - { - "name": "len", - "nativeSrc": "29187:3:18", - "nodeType": "YulIdentifier", - "src": "29187:3:18" - } - ], - "functionName": { - "name": "divide_by_32_ceil", - "nativeSrc": "29169:17:18", - "nodeType": "YulIdentifier", - "src": "29169:17:18" - }, - "nativeSrc": "29169:22:18", - "nodeType": "YulFunctionCall", - "src": "29169:22:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "29155:3:18", - "nodeType": "YulIdentifier", - "src": "29155:3:18" - }, - "nativeSrc": "29155:37:18", - "nodeType": "YulFunctionCall", - "src": "29155:37:18" - } - ], + "arguments": [], "functionName": { - "name": "clear_storage_range_t_bytes1", - "nativeSrc": "29113:28:18", + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "20054:77:18", "nodeType": "YulIdentifier", - "src": "29113:28:18" + "src": "20054:77:18" }, - "nativeSrc": "29113:80:18", + "nativeSrc": "20054:79:18", "nodeType": "YulFunctionCall", - "src": "29113:80:18" + "src": "20054:79:18" }, - "nativeSrc": "29113:80:18", + "nativeSrc": "20054:79:18", "nodeType": "YulExpressionStatement", - "src": "29113:80:18" + "src": "20054:79:18" } ] }, "condition": { "arguments": [ { - "name": "len", - "nativeSrc": "28743:3:18", - "nodeType": "YulIdentifier", - "src": "28743:3:18" + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "20027:7:18", + "nodeType": "YulIdentifier", + "src": "20027:7:18" + }, + { + "name": "headStart", + "nativeSrc": "20036:9:18", + "nodeType": "YulIdentifier", + "src": "20036:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "20023:3:18", + "nodeType": "YulIdentifier", + "src": "20023:3:18" + }, + "nativeSrc": "20023:23:18", + "nodeType": "YulFunctionCall", + "src": "20023:23:18" }, { "kind": "number", - "nativeSrc": "28748:2:18", + "nativeSrc": "20048:2:18", "nodeType": "YulLiteral", - "src": "28748:2:18", + "src": "20048:2:18", "type": "", - "value": "31" + "value": "64" } ], "functionName": { - "name": "gt", - "nativeSrc": "28740:2:18", + "name": "slt", + "nativeSrc": "20019:3:18", "nodeType": "YulIdentifier", - "src": "28740:2:18" + "src": "20019:3:18" }, - "nativeSrc": "28740:11:18", + "nativeSrc": "20019:32:18", "nodeType": "YulFunctionCall", - "src": "28740:11:18" + "src": "20019:32:18" }, - "nativeSrc": "28737:470:18", + "nativeSrc": "20016:119:18", "nodeType": "YulIf", - "src": "28737:470:18" + "src": "20016:119:18" + }, + { + "nativeSrc": "20145:117:18", + "nodeType": "YulBlock", + "src": "20145:117:18", + "statements": [ + { + "nativeSrc": "20160:15:18", + "nodeType": "YulVariableDeclaration", + "src": "20160:15:18", + "value": { + "kind": "number", + "nativeSrc": "20174:1:18", + "nodeType": "YulLiteral", + "src": "20174:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "20164:6:18", + "nodeType": "YulTypedName", + "src": "20164:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "20189:63:18", + "nodeType": "YulAssignment", + "src": "20189:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20224:9:18", + "nodeType": "YulIdentifier", + "src": "20224:9:18" + }, + { + "name": "offset", + "nativeSrc": "20235:6:18", + "nodeType": "YulIdentifier", + "src": "20235:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20220:3:18", + "nodeType": "YulIdentifier", + "src": "20220:3:18" + }, + "nativeSrc": "20220:22:18", + "nodeType": "YulFunctionCall", + "src": "20220:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "20244:7:18", + "nodeType": "YulIdentifier", + "src": "20244:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "20199:20:18", + "nodeType": "YulIdentifier", + "src": "20199:20:18" + }, + "nativeSrc": "20199:53:18", + "nodeType": "YulFunctionCall", + "src": "20199:53:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "20189:6:18", + "nodeType": "YulIdentifier", + "src": "20189:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "20272:118:18", + "nodeType": "YulBlock", + "src": "20272:118:18", + "statements": [ + { + "nativeSrc": "20287:16:18", + "nodeType": "YulVariableDeclaration", + "src": "20287:16:18", + "value": { + "kind": "number", + "nativeSrc": "20301:2:18", + "nodeType": "YulLiteral", + "src": "20301:2:18", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "20291:6:18", + "nodeType": "YulTypedName", + "src": "20291:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "20317:63:18", + "nodeType": "YulAssignment", + "src": "20317:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20352:9:18", + "nodeType": "YulIdentifier", + "src": "20352:9:18" + }, + { + "name": "offset", + "nativeSrc": "20363:6:18", + "nodeType": "YulIdentifier", + "src": "20363:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20348:3:18", + "nodeType": "YulIdentifier", + "src": "20348:3:18" + }, + "nativeSrc": "20348:22:18", + "nodeType": "YulFunctionCall", + "src": "20348:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "20372:7:18", + "nodeType": "YulIdentifier", + "src": "20372:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "20327:20:18", + "nodeType": "YulIdentifier", + "src": "20327:20:18" + }, + "nativeSrc": "20327:53:18", + "nodeType": "YulFunctionCall", + "src": "20327:53:18" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "20317:6:18", + "nodeType": "YulIdentifier", + "src": "20317:6:18" + } + ] + } + ] } ] }, - "name": "clean_up_bytearray_end_slots_t_string_storage", - "nativeSrc": "28643:575:18", + "name": "abi_decode_tuple_t_addresst_address", + "nativeSrc": "19923:474:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "array", - "nativeSrc": "28698:5:18", + "name": "headStart", + "nativeSrc": "19968:9:18", "nodeType": "YulTypedName", - "src": "28698:5:18", + "src": "19968:9:18", "type": "" }, { - "name": "len", - "nativeSrc": "28705:3:18", + "name": "dataEnd", + "nativeSrc": "19979:7:18", + "nodeType": "YulTypedName", + "src": "19979:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "19991:6:18", "nodeType": "YulTypedName", - "src": "28705:3:18", + "src": "19991:6:18", "type": "" }, { - "name": "startIndex", - "nativeSrc": "28710:10:18", + "name": "value1", + "nativeSrc": "19999:6:18", "nodeType": "YulTypedName", - "src": "28710:10:18", + "src": "19999:6:18", "type": "" } ], - "src": "28643:575:18" + "src": "19923:474:18" }, { "body": { - "nativeSrc": "29291:66:18", + "nativeSrc": "20546:946:18", "nodeType": "YulBlock", - "src": "29291:66:18", + "src": "20546:946:18", "statements": [ { - "nativeSrc": "29305:41:18", - "nodeType": "YulAssignment", - "src": "29305:41:18", - "value": { + "body": { + "nativeSrc": "20593:83:18", + "nodeType": "YulBlock", + "src": "20593:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "20595:77:18", + "nodeType": "YulIdentifier", + "src": "20595:77:18" + }, + "nativeSrc": "20595:79:18", + "nodeType": "YulFunctionCall", + "src": "20595:79:18" + }, + "nativeSrc": "20595:79:18", + "nodeType": "YulExpressionStatement", + "src": "20595:79:18" + } + ] + }, + "condition": { "arguments": [ { - "name": "bits", - "nativeSrc": "29334:4:18", - "nodeType": "YulIdentifier", - "src": "29334:4:18" + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "20567:7:18", + "nodeType": "YulIdentifier", + "src": "20567:7:18" + }, + { + "name": "headStart", + "nativeSrc": "20576:9:18", + "nodeType": "YulIdentifier", + "src": "20576:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "20563:3:18", + "nodeType": "YulIdentifier", + "src": "20563:3:18" + }, + "nativeSrc": "20563:23:18", + "nodeType": "YulFunctionCall", + "src": "20563:23:18" }, { - "name": "value", - "nativeSrc": "29340:5:18", - "nodeType": "YulIdentifier", - "src": "29340:5:18" + "kind": "number", + "nativeSrc": "20588:3:18", + "nodeType": "YulLiteral", + "src": "20588:3:18", + "type": "", + "value": "160" } ], "functionName": { - "name": "shr", - "nativeSrc": "29330:3:18", + "name": "slt", + "nativeSrc": "20559:3:18", "nodeType": "YulIdentifier", - "src": "29330:3:18" + "src": "20559:3:18" }, - "nativeSrc": "29330:16:18", + "nativeSrc": "20559:33:18", "nodeType": "YulFunctionCall", - "src": "29330:16:18" + "src": "20559:33:18" }, - "variableNames": [ - { - "name": "newValue", - "nativeSrc": "29305:8:18", - "nodeType": "YulIdentifier", - "src": "29305:8:18" - } - ] - } - ] - }, - "name": "shift_right_unsigned_dynamic", - "nativeSrc": "29228:129:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "bits", - "nativeSrc": "29266:4:18", - "nodeType": "YulTypedName", - "src": "29266:4:18", - "type": "" - }, - { - "name": "value", - "nativeSrc": "29272:5:18", - "nodeType": "YulTypedName", - "src": "29272:5:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "newValue", - "nativeSrc": "29282:8:18", - "nodeType": "YulTypedName", - "src": "29282:8:18", - "type": "" - } - ], - "src": "29228:129:18" - }, - { - "body": { - "nativeSrc": "29418:130:18", - "nodeType": "YulBlock", - "src": "29418:130:18", - "statements": [ + "nativeSrc": "20556:120:18", + "nodeType": "YulIf", + "src": "20556:120:18" + }, { - "nativeSrc": "29432:68:18", - "nodeType": "YulVariableDeclaration", - "src": "29432:68:18", - "value": { - "arguments": [ - { + "nativeSrc": "20686:117:18", + "nodeType": "YulBlock", + "src": "20686:117:18", + "statements": [ + { + "nativeSrc": "20701:15:18", + "nodeType": "YulVariableDeclaration", + "src": "20701:15:18", + "value": { + "kind": "number", + "nativeSrc": "20715:1:18", + "nodeType": "YulLiteral", + "src": "20715:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "20705:6:18", + "nodeType": "YulTypedName", + "src": "20705:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "20730:63:18", + "nodeType": "YulAssignment", + "src": "20730:63:18", + "value": { "arguments": [ { "arguments": [ { - "kind": "number", - "nativeSrc": "29481:1:18", - "nodeType": "YulLiteral", - "src": "29481:1:18", - "type": "", - "value": "8" + "name": "headStart", + "nativeSrc": "20765:9:18", + "nodeType": "YulIdentifier", + "src": "20765:9:18" }, { - "name": "bytes", - "nativeSrc": "29484:5:18", + "name": "offset", + "nativeSrc": "20776:6:18", "nodeType": "YulIdentifier", - "src": "29484:5:18" + "src": "20776:6:18" } ], "functionName": { - "name": "mul", - "nativeSrc": "29477:3:18", + "name": "add", + "nativeSrc": "20761:3:18", "nodeType": "YulIdentifier", - "src": "29477:3:18" + "src": "20761:3:18" }, - "nativeSrc": "29477:13:18", + "nativeSrc": "20761:22:18", "nodeType": "YulFunctionCall", - "src": "29477:13:18" + "src": "20761:22:18" }, + { + "name": "dataEnd", + "nativeSrc": "20785:7:18", + "nodeType": "YulIdentifier", + "src": "20785:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "20740:20:18", + "nodeType": "YulIdentifier", + "src": "20740:20:18" + }, + "nativeSrc": "20740:53:18", + "nodeType": "YulFunctionCall", + "src": "20740:53:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "20730:6:18", + "nodeType": "YulIdentifier", + "src": "20730:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "20813:118:18", + "nodeType": "YulBlock", + "src": "20813:118:18", + "statements": [ + { + "nativeSrc": "20828:16:18", + "nodeType": "YulVariableDeclaration", + "src": "20828:16:18", + "value": { + "kind": "number", + "nativeSrc": "20842:2:18", + "nodeType": "YulLiteral", + "src": "20842:2:18", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "20832:6:18", + "nodeType": "YulTypedName", + "src": "20832:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "20858:63:18", + "nodeType": "YulAssignment", + "src": "20858:63:18", + "value": { + "arguments": [ { "arguments": [ { - "kind": "number", - "nativeSrc": "29496:1:18", - "nodeType": "YulLiteral", - "src": "29496:1:18", - "type": "", - "value": "0" + "name": "headStart", + "nativeSrc": "20893:9:18", + "nodeType": "YulIdentifier", + "src": "20893:9:18" + }, + { + "name": "offset", + "nativeSrc": "20904:6:18", + "nodeType": "YulIdentifier", + "src": "20904:6:18" } ], "functionName": { - "name": "not", - "nativeSrc": "29492:3:18", + "name": "add", + "nativeSrc": "20889:3:18", "nodeType": "YulIdentifier", - "src": "29492:3:18" + "src": "20889:3:18" }, - "nativeSrc": "29492:6:18", + "nativeSrc": "20889:22:18", "nodeType": "YulFunctionCall", - "src": "29492:6:18" + "src": "20889:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "20913:7:18", + "nodeType": "YulIdentifier", + "src": "20913:7:18" } ], "functionName": { - "name": "shift_right_unsigned_dynamic", - "nativeSrc": "29448:28:18", + "name": "abi_decode_t_address", + "nativeSrc": "20868:20:18", "nodeType": "YulIdentifier", - "src": "29448:28:18" + "src": "20868:20:18" }, - "nativeSrc": "29448:51:18", + "nativeSrc": "20868:53:18", "nodeType": "YulFunctionCall", - "src": "29448:51:18" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "29444:3:18", - "nodeType": "YulIdentifier", - "src": "29444:3:18" - }, - "nativeSrc": "29444:56:18", - "nodeType": "YulFunctionCall", - "src": "29444:56:18" - }, - "variables": [ - { - "name": "mask", - "nativeSrc": "29436:4:18", - "nodeType": "YulTypedName", - "src": "29436:4:18", - "type": "" + "src": "20868:53:18" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "20858:6:18", + "nodeType": "YulIdentifier", + "src": "20858:6:18" + } + ] } ] }, { - "nativeSrc": "29513:25:18", - "nodeType": "YulAssignment", - "src": "29513:25:18", - "value": { - "arguments": [ - { - "name": "data", - "nativeSrc": "29527:4:18", - "nodeType": "YulIdentifier", - "src": "29527:4:18" + "nativeSrc": "20941:118:18", + "nodeType": "YulBlock", + "src": "20941:118:18", + "statements": [ + { + "nativeSrc": "20956:16:18", + "nodeType": "YulVariableDeclaration", + "src": "20956:16:18", + "value": { + "kind": "number", + "nativeSrc": "20970:2:18", + "nodeType": "YulLiteral", + "src": "20970:2:18", + "type": "", + "value": "64" }, - { - "name": "mask", - "nativeSrc": "29533:4:18", - "nodeType": "YulIdentifier", - "src": "29533:4:18" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "29523:3:18", - "nodeType": "YulIdentifier", - "src": "29523:3:18" + "variables": [ + { + "name": "offset", + "nativeSrc": "20960:6:18", + "nodeType": "YulTypedName", + "src": "20960:6:18", + "type": "" + } + ] }, - "nativeSrc": "29523:15:18", - "nodeType": "YulFunctionCall", - "src": "29523:15:18" - }, - "variableNames": [ { - "name": "result", - "nativeSrc": "29513:6:18", - "nodeType": "YulIdentifier", - "src": "29513:6:18" + "nativeSrc": "20986:63:18", + "nodeType": "YulAssignment", + "src": "20986:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21021:9:18", + "nodeType": "YulIdentifier", + "src": "21021:9:18" + }, + { + "name": "offset", + "nativeSrc": "21032:6:18", + "nodeType": "YulIdentifier", + "src": "21032:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21017:3:18", + "nodeType": "YulIdentifier", + "src": "21017:3:18" + }, + "nativeSrc": "21017:22:18", + "nodeType": "YulFunctionCall", + "src": "21017:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "21041:7:18", + "nodeType": "YulIdentifier", + "src": "21041:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "20996:20:18", + "nodeType": "YulIdentifier", + "src": "20996:20:18" + }, + "nativeSrc": "20996:53:18", + "nodeType": "YulFunctionCall", + "src": "20996:53:18" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "20986:6:18", + "nodeType": "YulIdentifier", + "src": "20986:6:18" + } + ] } ] - } - ] - }, - "name": "mask_bytes_dynamic", - "nativeSrc": "29367:181:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "data", - "nativeSrc": "29395:4:18", - "nodeType": "YulTypedName", - "src": "29395:4:18", - "type": "" - }, - { - "name": "bytes", - "nativeSrc": "29401:5:18", - "nodeType": "YulTypedName", - "src": "29401:5:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "result", - "nativeSrc": "29411:6:18", - "nodeType": "YulTypedName", - "src": "29411:6:18", - "type": "" - } - ], - "src": "29367:181:18" - }, - { - "body": { - "nativeSrc": "29638:234:18", - "nodeType": "YulBlock", - "src": "29638:234:18", - "statements": [ + }, { - "nativeSrc": "29783:37:18", - "nodeType": "YulAssignment", - "src": "29783:37:18", - "value": { - "arguments": [ - { - "name": "data", - "nativeSrc": "29810:4:18", - "nodeType": "YulIdentifier", - "src": "29810:4:18" + "nativeSrc": "21069:118:18", + "nodeType": "YulBlock", + "src": "21069:118:18", + "statements": [ + { + "nativeSrc": "21084:16:18", + "nodeType": "YulVariableDeclaration", + "src": "21084:16:18", + "value": { + "kind": "number", + "nativeSrc": "21098:2:18", + "nodeType": "YulLiteral", + "src": "21098:2:18", + "type": "", + "value": "96" }, - { - "name": "len", - "nativeSrc": "29816:3:18", - "nodeType": "YulIdentifier", - "src": "29816:3:18" - } - ], - "functionName": { - "name": "mask_bytes_dynamic", - "nativeSrc": "29791:18:18", - "nodeType": "YulIdentifier", - "src": "29791:18:18" + "variables": [ + { + "name": "offset", + "nativeSrc": "21088:6:18", + "nodeType": "YulTypedName", + "src": "21088:6:18", + "type": "" + } + ] }, - "nativeSrc": "29791:29:18", - "nodeType": "YulFunctionCall", - "src": "29791:29:18" - }, - "variableNames": [ { - "name": "data", - "nativeSrc": "29783:4:18", - "nodeType": "YulIdentifier", - "src": "29783:4:18" + "nativeSrc": "21114:63:18", + "nodeType": "YulAssignment", + "src": "21114:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21149:9:18", + "nodeType": "YulIdentifier", + "src": "21149:9:18" + }, + { + "name": "offset", + "nativeSrc": "21160:6:18", + "nodeType": "YulIdentifier", + "src": "21160:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21145:3:18", + "nodeType": "YulIdentifier", + "src": "21145:3:18" + }, + "nativeSrc": "21145:22:18", + "nodeType": "YulFunctionCall", + "src": "21145:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "21169:7:18", + "nodeType": "YulIdentifier", + "src": "21169:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "21124:20:18", + "nodeType": "YulIdentifier", + "src": "21124:20:18" + }, + "nativeSrc": "21124:53:18", + "nodeType": "YulFunctionCall", + "src": "21124:53:18" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "21114:6:18", + "nodeType": "YulIdentifier", + "src": "21114:6:18" + } + ] } ] }, { - "nativeSrc": "29833:29:18", - "nodeType": "YulAssignment", - "src": "29833:29:18", - "value": { - "arguments": [ - { - "name": "data", - "nativeSrc": "29844:4:18", - "nodeType": "YulIdentifier", - "src": "29844:4:18" + "nativeSrc": "21197:288:18", + "nodeType": "YulBlock", + "src": "21197:288:18", + "statements": [ + { + "nativeSrc": "21212:47:18", + "nodeType": "YulVariableDeclaration", + "src": "21212:47:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21243:9:18", + "nodeType": "YulIdentifier", + "src": "21243:9:18" + }, + { + "kind": "number", + "nativeSrc": "21254:3:18", + "nodeType": "YulLiteral", + "src": "21254:3:18", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21239:3:18", + "nodeType": "YulIdentifier", + "src": "21239:3:18" + }, + "nativeSrc": "21239:19:18", + "nodeType": "YulFunctionCall", + "src": "21239:19:18" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "21226:12:18", + "nodeType": "YulIdentifier", + "src": "21226:12:18" + }, + "nativeSrc": "21226:33:18", + "nodeType": "YulFunctionCall", + "src": "21226:33:18" }, - { + "variables": [ + { + "name": "offset", + "nativeSrc": "21216:6:18", + "nodeType": "YulTypedName", + "src": "21216:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "21306:83:18", + "nodeType": "YulBlock", + "src": "21306:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nativeSrc": "21308:77:18", + "nodeType": "YulIdentifier", + "src": "21308:77:18" + }, + "nativeSrc": "21308:79:18", + "nodeType": "YulFunctionCall", + "src": "21308:79:18" + }, + "nativeSrc": "21308:79:18", + "nodeType": "YulExpressionStatement", + "src": "21308:79:18" + } + ] + }, + "condition": { "arguments": [ + { + "name": "offset", + "nativeSrc": "21278:6:18", + "nodeType": "YulIdentifier", + "src": "21278:6:18" + }, { "kind": "number", - "nativeSrc": "29854:1:18", + "nativeSrc": "21286:18:18", "nodeType": "YulLiteral", - "src": "29854:1:18", + "src": "21286:18:18", "type": "", - "value": "2" + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "21275:2:18", + "nodeType": "YulIdentifier", + "src": "21275:2:18" + }, + "nativeSrc": "21275:30:18", + "nodeType": "YulFunctionCall", + "src": "21275:30:18" + }, + "nativeSrc": "21272:117:18", + "nodeType": "YulIf", + "src": "21272:117:18" + }, + { + "nativeSrc": "21403:72:18", + "nodeType": "YulAssignment", + "src": "21403:72:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21447:9:18", + "nodeType": "YulIdentifier", + "src": "21447:9:18" + }, + { + "name": "offset", + "nativeSrc": "21458:6:18", + "nodeType": "YulIdentifier", + "src": "21458:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21443:3:18", + "nodeType": "YulIdentifier", + "src": "21443:3:18" + }, + "nativeSrc": "21443:22:18", + "nodeType": "YulFunctionCall", + "src": "21443:22:18" }, { - "name": "len", - "nativeSrc": "29857:3:18", + "name": "dataEnd", + "nativeSrc": "21467:7:18", "nodeType": "YulIdentifier", - "src": "29857:3:18" + "src": "21467:7:18" } ], "functionName": { - "name": "mul", - "nativeSrc": "29850:3:18", + "name": "abi_decode_t_bytes_memory_ptr", + "nativeSrc": "21413:29:18", "nodeType": "YulIdentifier", - "src": "29850:3:18" + "src": "21413:29:18" }, - "nativeSrc": "29850:11:18", + "nativeSrc": "21413:62:18", "nodeType": "YulFunctionCall", - "src": "29850:11:18" - } - ], - "functionName": { - "name": "or", - "nativeSrc": "29841:2:18", - "nodeType": "YulIdentifier", - "src": "29841:2:18" - }, - "nativeSrc": "29841:21:18", - "nodeType": "YulFunctionCall", - "src": "29841:21:18" - }, - "variableNames": [ - { - "name": "used", - "nativeSrc": "29833:4:18", - "nodeType": "YulIdentifier", - "src": "29833:4:18" + "src": "21413:62:18" + }, + "variableNames": [ + { + "name": "value4", + "nativeSrc": "21403:6:18", + "nodeType": "YulIdentifier", + "src": "21403:6:18" + } + ] } ] } ] }, - "name": "extract_used_part_and_set_length_of_short_byte_array", - "nativeSrc": "29557:315:18", + "name": "abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr", + "nativeSrc": "20403:1089:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "data", - "nativeSrc": "29619:4:18", + "name": "headStart", + "nativeSrc": "20484:9:18", "nodeType": "YulTypedName", - "src": "29619:4:18", + "src": "20484:9:18", "type": "" }, { - "name": "len", - "nativeSrc": "29625:3:18", + "name": "dataEnd", + "nativeSrc": "20495:7:18", "nodeType": "YulTypedName", - "src": "29625:3:18", + "src": "20495:7:18", "type": "" } ], "returnVariables": [ { - "name": "used", - "nativeSrc": "29633:4:18", + "name": "value0", + "nativeSrc": "20507:6:18", + "nodeType": "YulTypedName", + "src": "20507:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "20515:6:18", + "nodeType": "YulTypedName", + "src": "20515:6:18", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "20523:6:18", + "nodeType": "YulTypedName", + "src": "20523:6:18", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "20531:6:18", + "nodeType": "YulTypedName", + "src": "20531:6:18", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "20539:6:18", "nodeType": "YulTypedName", - "src": "29633:4:18", + "src": "20539:6:18", "type": "" } ], - "src": "29557:315:18" + "src": "20403:1089:18" }, { "body": { - "nativeSrc": "29973:1431:18", + "nativeSrc": "21598:519:18", "nodeType": "YulBlock", - "src": "29973:1431:18", + "src": "21598:519:18", "statements": [ - { - "nativeSrc": "29988:51:18", - "nodeType": "YulVariableDeclaration", - "src": "29988:51:18", - "value": { - "arguments": [ - { - "name": "src", - "nativeSrc": "30035:3:18", - "nodeType": "YulIdentifier", - "src": "30035:3:18" - } - ], - "functionName": { - "name": "array_length_t_string_memory_ptr", - "nativeSrc": "30002:32:18", - "nodeType": "YulIdentifier", - "src": "30002:32:18" - }, - "nativeSrc": "30002:37:18", - "nodeType": "YulFunctionCall", - "src": "30002:37:18" - }, - "variables": [ - { - "name": "newLen", - "nativeSrc": "29992:6:18", - "nodeType": "YulTypedName", - "src": "29992:6:18", - "type": "" - } - ] - }, { "body": { - "nativeSrc": "30132:22:18", + "nativeSrc": "21644:83:18", "nodeType": "YulBlock", - "src": "30132:22:18", + "src": "21644:83:18", "statements": [ { "expression": { "arguments": [], "functionName": { - "name": "panic_error_0x41", - "nativeSrc": "30134:16:18", + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "21646:77:18", "nodeType": "YulIdentifier", - "src": "30134:16:18" + "src": "21646:77:18" }, - "nativeSrc": "30134:18:18", + "nativeSrc": "21646:79:18", "nodeType": "YulFunctionCall", - "src": "30134:18:18" + "src": "21646:79:18" }, - "nativeSrc": "30134:18:18", + "nativeSrc": "21646:79:18", "nodeType": "YulExpressionStatement", - "src": "30134:18:18" + "src": "21646:79:18" } ] }, "condition": { - "arguments": [ - { - "name": "newLen", - "nativeSrc": "30104:6:18", - "nodeType": "YulIdentifier", - "src": "30104:6:18" - }, - { - "kind": "number", - "nativeSrc": "30112:18:18", - "nodeType": "YulLiteral", - "src": "30112:18:18", - "type": "", - "value": "0xffffffffffffffff" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "30101:2:18", - "nodeType": "YulIdentifier", - "src": "30101:2:18" - }, - "nativeSrc": "30101:30:18", - "nodeType": "YulFunctionCall", - "src": "30101:30:18" - }, - "nativeSrc": "30098:56:18", - "nodeType": "YulIf", - "src": "30098:56:18" - }, - { - "nativeSrc": "30168:52:18", - "nodeType": "YulVariableDeclaration", - "src": "30168:52:18", - "value": { "arguments": [ { "arguments": [ { - "name": "slot", - "nativeSrc": "30214:4:18", + "name": "dataEnd", + "nativeSrc": "21619:7:18", + "nodeType": "YulIdentifier", + "src": "21619:7:18" + }, + { + "name": "headStart", + "nativeSrc": "21628:9:18", "nodeType": "YulIdentifier", - "src": "30214:4:18" + "src": "21628:9:18" } ], "functionName": { - "name": "sload", - "nativeSrc": "30208:5:18", + "name": "sub", + "nativeSrc": "21615:3:18", "nodeType": "YulIdentifier", - "src": "30208:5:18" + "src": "21615:3:18" }, - "nativeSrc": "30208:11:18", + "nativeSrc": "21615:23:18", "nodeType": "YulFunctionCall", - "src": "30208:11:18" - } - ], - "functionName": { - "name": "extract_byte_array_length", - "nativeSrc": "30182:25:18", - "nodeType": "YulIdentifier", - "src": "30182:25:18" - }, - "nativeSrc": "30182:38:18", - "nodeType": "YulFunctionCall", - "src": "30182:38:18" - }, - "variables": [ - { - "name": "oldLen", - "nativeSrc": "30172:6:18", - "nodeType": "YulTypedName", - "src": "30172:6:18", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "slot", - "nativeSrc": "30321:4:18", - "nodeType": "YulIdentifier", - "src": "30321:4:18" - }, - { - "name": "oldLen", - "nativeSrc": "30327:6:18", - "nodeType": "YulIdentifier", - "src": "30327:6:18" + "src": "21615:23:18" }, { - "name": "newLen", - "nativeSrc": "30335:6:18", - "nodeType": "YulIdentifier", - "src": "30335:6:18" + "kind": "number", + "nativeSrc": "21640:2:18", + "nodeType": "YulLiteral", + "src": "21640:2:18", + "type": "", + "value": "96" } ], "functionName": { - "name": "clean_up_bytearray_end_slots_t_string_storage", - "nativeSrc": "30275:45:18", + "name": "slt", + "nativeSrc": "21611:3:18", "nodeType": "YulIdentifier", - "src": "30275:45:18" + "src": "21611:3:18" }, - "nativeSrc": "30275:67:18", + "nativeSrc": "21611:32:18", "nodeType": "YulFunctionCall", - "src": "30275:67:18" - }, - "nativeSrc": "30275:67:18", - "nodeType": "YulExpressionStatement", - "src": "30275:67:18" - }, - { - "nativeSrc": "30356:18:18", - "nodeType": "YulVariableDeclaration", - "src": "30356:18:18", - "value": { - "kind": "number", - "nativeSrc": "30373:1:18", - "nodeType": "YulLiteral", - "src": "30373:1:18", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "srcOffset", - "nativeSrc": "30360:9:18", - "nodeType": "YulTypedName", - "src": "30360:9:18", - "type": "" - } - ] - }, - { - "nativeSrc": "30388:17:18", - "nodeType": "YulAssignment", - "src": "30388:17:18", - "value": { - "kind": "number", - "nativeSrc": "30401:4:18", - "nodeType": "YulLiteral", - "src": "30401:4:18", - "type": "", - "value": "0x20" + "src": "21611:32:18" }, - "variableNames": [ - { - "name": "srcOffset", - "nativeSrc": "30388:9:18", - "nodeType": "YulIdentifier", - "src": "30388:9:18" - } - ] + "nativeSrc": "21608:119:18", + "nodeType": "YulIf", + "src": "21608:119:18" }, { - "cases": [ + "nativeSrc": "21737:117:18", + "nodeType": "YulBlock", + "src": "21737:117:18", + "statements": [ { - "body": { - "nativeSrc": "30460:667:18", - "nodeType": "YulBlock", - "src": "30460:667:18", - "statements": [ - { - "nativeSrc": "30478:37:18", - "nodeType": "YulVariableDeclaration", - "src": "30478:37:18", - "value": { - "arguments": [ - { - "name": "newLen", - "nativeSrc": "30497:6:18", - "nodeType": "YulIdentifier", - "src": "30497:6:18" - }, - { - "arguments": [ - { - "kind": "number", - "nativeSrc": "30509:4:18", - "nodeType": "YulLiteral", - "src": "30509:4:18", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "not", - "nativeSrc": "30505:3:18", - "nodeType": "YulIdentifier", - "src": "30505:3:18" - }, - "nativeSrc": "30505:9:18", - "nodeType": "YulFunctionCall", - "src": "30505:9:18" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "30493:3:18", - "nodeType": "YulIdentifier", - "src": "30493:3:18" - }, - "nativeSrc": "30493:22:18", - "nodeType": "YulFunctionCall", - "src": "30493:22:18" - }, - "variables": [ - { - "name": "loopEnd", - "nativeSrc": "30482:7:18", - "nodeType": "YulTypedName", - "src": "30482:7:18", - "type": "" - } - ] - }, - { - "nativeSrc": "30533:51:18", - "nodeType": "YulVariableDeclaration", - "src": "30533:51:18", - "value": { - "arguments": [ - { - "name": "slot", - "nativeSrc": "30579:4:18", - "nodeType": "YulIdentifier", - "src": "30579:4:18" - } - ], - "functionName": { - "name": "array_dataslot_t_string_storage", - "nativeSrc": "30547:31:18", - "nodeType": "YulIdentifier", - "src": "30547:31:18" - }, - "nativeSrc": "30547:37:18", - "nodeType": "YulFunctionCall", - "src": "30547:37:18" - }, - "variables": [ - { - "name": "dstPtr", - "nativeSrc": "30537:6:18", - "nodeType": "YulTypedName", - "src": "30537:6:18", - "type": "" - } - ] - }, - { - "nativeSrc": "30601:10:18", - "nodeType": "YulVariableDeclaration", - "src": "30601:10:18", - "value": { - "kind": "number", - "nativeSrc": "30610:1:18", - "nodeType": "YulLiteral", - "src": "30610:1:18", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "i", - "nativeSrc": "30605:1:18", - "nodeType": "YulTypedName", - "src": "30605:1:18", - "type": "" - } - ] - }, - { - "body": { - "nativeSrc": "30673:179:18", - "nodeType": "YulBlock", - "src": "30673:179:18", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "dstPtr", - "nativeSrc": "30702:6:18", - "nodeType": "YulIdentifier", - "src": "30702:6:18" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "30720:3:18", - "nodeType": "YulIdentifier", - "src": "30720:3:18" - }, - { - "name": "srcOffset", - "nativeSrc": "30725:9:18", - "nodeType": "YulIdentifier", - "src": "30725:9:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "30716:3:18", - "nodeType": "YulIdentifier", - "src": "30716:3:18" - }, - "nativeSrc": "30716:19:18", - "nodeType": "YulFunctionCall", - "src": "30716:19:18" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "30710:5:18", - "nodeType": "YulIdentifier", - "src": "30710:5:18" - }, - "nativeSrc": "30710:26:18", - "nodeType": "YulFunctionCall", - "src": "30710:26:18" - } - ], - "functionName": { - "name": "sstore", - "nativeSrc": "30695:6:18", - "nodeType": "YulIdentifier", - "src": "30695:6:18" - }, - "nativeSrc": "30695:42:18", - "nodeType": "YulFunctionCall", - "src": "30695:42:18" - }, - "nativeSrc": "30695:42:18", - "nodeType": "YulExpressionStatement", - "src": "30695:42:18" - }, - { - "nativeSrc": "30758:24:18", - "nodeType": "YulAssignment", - "src": "30758:24:18", - "value": { - "arguments": [ - { - "name": "dstPtr", - "nativeSrc": "30772:6:18", - "nodeType": "YulIdentifier", - "src": "30772:6:18" - }, - { - "kind": "number", - "nativeSrc": "30780:1:18", - "nodeType": "YulLiteral", - "src": "30780:1:18", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "30768:3:18", - "nodeType": "YulIdentifier", - "src": "30768:3:18" - }, - "nativeSrc": "30768:14:18", - "nodeType": "YulFunctionCall", - "src": "30768:14:18" - }, - "variableNames": [ - { - "name": "dstPtr", - "nativeSrc": "30758:6:18", - "nodeType": "YulIdentifier", - "src": "30758:6:18" - } - ] - }, - { - "nativeSrc": "30803:31:18", - "nodeType": "YulAssignment", - "src": "30803:31:18", - "value": { - "arguments": [ - { - "name": "srcOffset", - "nativeSrc": "30820:9:18", - "nodeType": "YulIdentifier", - "src": "30820:9:18" - }, - { - "kind": "number", - "nativeSrc": "30831:2:18", - "nodeType": "YulLiteral", - "src": "30831:2:18", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "30816:3:18", - "nodeType": "YulIdentifier", - "src": "30816:3:18" - }, - "nativeSrc": "30816:18:18", - "nodeType": "YulFunctionCall", - "src": "30816:18:18" - }, - "variableNames": [ - { - "name": "srcOffset", - "nativeSrc": "30803:9:18", - "nodeType": "YulIdentifier", - "src": "30803:9:18" - } - ] - } - ] - }, - "condition": { - "arguments": [ - { - "name": "i", - "nativeSrc": "30639:1:18", - "nodeType": "YulIdentifier", - "src": "30639:1:18" - }, - { - "name": "loopEnd", - "nativeSrc": "30642:7:18", - "nodeType": "YulIdentifier", - "src": "30642:7:18" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "30636:2:18", - "nodeType": "YulIdentifier", - "src": "30636:2:18" - }, - "nativeSrc": "30636:14:18", - "nodeType": "YulFunctionCall", - "src": "30636:14:18" - }, - "nativeSrc": "30628:224:18", - "nodeType": "YulForLoop", - "post": { - "nativeSrc": "30651:21:18", - "nodeType": "YulBlock", - "src": "30651:21:18", - "statements": [ - { - "nativeSrc": "30653:17:18", - "nodeType": "YulAssignment", - "src": "30653:17:18", - "value": { - "arguments": [ - { - "name": "i", - "nativeSrc": "30662:1:18", - "nodeType": "YulIdentifier", - "src": "30662:1:18" - }, - { - "kind": "number", - "nativeSrc": "30665:4:18", - "nodeType": "YulLiteral", - "src": "30665:4:18", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "30658:3:18", - "nodeType": "YulIdentifier", - "src": "30658:3:18" - }, - "nativeSrc": "30658:12:18", - "nodeType": "YulFunctionCall", - "src": "30658:12:18" - }, - "variableNames": [ - { - "name": "i", - "nativeSrc": "30653:1:18", - "nodeType": "YulIdentifier", - "src": "30653:1:18" - } - ] - } - ] - }, - "pre": { - "nativeSrc": "30632:3:18", - "nodeType": "YulBlock", - "src": "30632:3:18", - "statements": [] - }, - "src": "30628:224:18" - }, - { - "body": { - "nativeSrc": "30892:168:18", - "nodeType": "YulBlock", - "src": "30892:168:18", - "statements": [ - { - "nativeSrc": "30914:43:18", - "nodeType": "YulVariableDeclaration", - "src": "30914:43:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "30941:3:18", - "nodeType": "YulIdentifier", - "src": "30941:3:18" - }, - { - "name": "srcOffset", - "nativeSrc": "30946:9:18", - "nodeType": "YulIdentifier", - "src": "30946:9:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "30937:3:18", - "nodeType": "YulIdentifier", - "src": "30937:3:18" - }, - "nativeSrc": "30937:19:18", - "nodeType": "YulFunctionCall", - "src": "30937:19:18" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "30931:5:18", - "nodeType": "YulIdentifier", - "src": "30931:5:18" - }, - "nativeSrc": "30931:26:18", - "nodeType": "YulFunctionCall", - "src": "30931:26:18" - }, - "variables": [ - { - "name": "lastValue", - "nativeSrc": "30918:9:18", - "nodeType": "YulTypedName", - "src": "30918:9:18", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "dstPtr", - "nativeSrc": "30985:6:18", - "nodeType": "YulIdentifier", - "src": "30985:6:18" - }, - { - "arguments": [ - { - "name": "lastValue", - "nativeSrc": "31012:9:18", - "nodeType": "YulIdentifier", - "src": "31012:9:18" - }, - { - "arguments": [ - { - "name": "newLen", - "nativeSrc": "31027:6:18", - "nodeType": "YulIdentifier", - "src": "31027:6:18" - }, - { - "kind": "number", - "nativeSrc": "31035:4:18", - "nodeType": "YulLiteral", - "src": "31035:4:18", - "type": "", - "value": "0x1f" - } - ], - "functionName": { - "name": "and", - "nativeSrc": "31023:3:18", - "nodeType": "YulIdentifier", - "src": "31023:3:18" - }, - "nativeSrc": "31023:17:18", - "nodeType": "YulFunctionCall", - "src": "31023:17:18" - } - ], - "functionName": { - "name": "mask_bytes_dynamic", - "nativeSrc": "30993:18:18", - "nodeType": "YulIdentifier", - "src": "30993:18:18" - }, - "nativeSrc": "30993:48:18", - "nodeType": "YulFunctionCall", - "src": "30993:48:18" - } - ], - "functionName": { - "name": "sstore", - "nativeSrc": "30978:6:18", - "nodeType": "YulIdentifier", - "src": "30978:6:18" - }, - "nativeSrc": "30978:64:18", - "nodeType": "YulFunctionCall", - "src": "30978:64:18" - }, - "nativeSrc": "30978:64:18", - "nodeType": "YulExpressionStatement", - "src": "30978:64:18" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "loopEnd", - "nativeSrc": "30875:7:18", - "nodeType": "YulIdentifier", - "src": "30875:7:18" - }, - { - "name": "newLen", - "nativeSrc": "30884:6:18", - "nodeType": "YulIdentifier", - "src": "30884:6:18" - } - ], - "functionName": { - "name": "lt", - "nativeSrc": "30872:2:18", + "nativeSrc": "21752:15:18", + "nodeType": "YulVariableDeclaration", + "src": "21752:15:18", + "value": { + "kind": "number", + "nativeSrc": "21766:1:18", + "nodeType": "YulLiteral", + "src": "21766:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "21756:6:18", + "nodeType": "YulTypedName", + "src": "21756:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "21781:63:18", + "nodeType": "YulAssignment", + "src": "21781:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21816:9:18", "nodeType": "YulIdentifier", - "src": "30872:2:18" + "src": "21816:9:18" }, - "nativeSrc": "30872:19:18", - "nodeType": "YulFunctionCall", - "src": "30872:19:18" + { + "name": "offset", + "nativeSrc": "21827:6:18", + "nodeType": "YulIdentifier", + "src": "21827:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21812:3:18", + "nodeType": "YulIdentifier", + "src": "21812:3:18" }, - "nativeSrc": "30869:191:18", - "nodeType": "YulIf", - "src": "30869:191:18" + "nativeSrc": "21812:22:18", + "nodeType": "YulFunctionCall", + "src": "21812:22:18" }, { - "expression": { - "arguments": [ - { - "name": "slot", - "nativeSrc": "31084:4:18", - "nodeType": "YulIdentifier", - "src": "31084:4:18" - }, - { - "arguments": [ - { - "arguments": [ - { - "name": "newLen", - "nativeSrc": "31098:6:18", - "nodeType": "YulIdentifier", - "src": "31098:6:18" - }, - { - "kind": "number", - "nativeSrc": "31106:1:18", - "nodeType": "YulLiteral", - "src": "31106:1:18", - "type": "", - "value": "2" - } - ], - "functionName": { - "name": "mul", - "nativeSrc": "31094:3:18", - "nodeType": "YulIdentifier", - "src": "31094:3:18" - }, - "nativeSrc": "31094:14:18", - "nodeType": "YulFunctionCall", - "src": "31094:14:18" - }, - { - "kind": "number", - "nativeSrc": "31110:1:18", - "nodeType": "YulLiteral", - "src": "31110:1:18", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "31090:3:18", - "nodeType": "YulIdentifier", - "src": "31090:3:18" - }, - "nativeSrc": "31090:22:18", - "nodeType": "YulFunctionCall", - "src": "31090:22:18" - } - ], - "functionName": { - "name": "sstore", - "nativeSrc": "31077:6:18", - "nodeType": "YulIdentifier", - "src": "31077:6:18" - }, - "nativeSrc": "31077:36:18", - "nodeType": "YulFunctionCall", - "src": "31077:36:18" - }, - "nativeSrc": "31077:36:18", - "nodeType": "YulExpressionStatement", - "src": "31077:36:18" + "name": "dataEnd", + "nativeSrc": "21836:7:18", + "nodeType": "YulIdentifier", + "src": "21836:7:18" } - ] + ], + "functionName": { + "name": "abi_decode_t_address", + "nativeSrc": "21791:20:18", + "nodeType": "YulIdentifier", + "src": "21791:20:18" + }, + "nativeSrc": "21791:53:18", + "nodeType": "YulFunctionCall", + "src": "21791:53:18" }, - "nativeSrc": "30453:674:18", - "nodeType": "YulCase", - "src": "30453:674:18", + "variableNames": [ + { + "name": "value0", + "nativeSrc": "21781:6:18", + "nodeType": "YulIdentifier", + "src": "21781:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "21864:118:18", + "nodeType": "YulBlock", + "src": "21864:118:18", + "statements": [ + { + "nativeSrc": "21879:16:18", + "nodeType": "YulVariableDeclaration", + "src": "21879:16:18", "value": { "kind": "number", - "nativeSrc": "30458:1:18", + "nativeSrc": "21893:2:18", "nodeType": "YulLiteral", - "src": "30458:1:18", + "src": "21893:2:18", "type": "", - "value": "1" - } + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "21883:6:18", + "nodeType": "YulTypedName", + "src": "21883:6:18", + "type": "" + } + ] }, { - "body": { - "nativeSrc": "31148:246:18", - "nodeType": "YulBlock", - "src": "31148:246:18", - "statements": [ + "nativeSrc": "21909:63:18", + "nodeType": "YulAssignment", + "src": "21909:63:18", + "value": { + "arguments": [ { - "nativeSrc": "31166:14:18", - "nodeType": "YulVariableDeclaration", - "src": "31166:14:18", - "value": { - "kind": "number", - "nativeSrc": "31179:1:18", - "nodeType": "YulLiteral", - "src": "31179:1:18", - "type": "", - "value": "0" - }, - "variables": [ + "arguments": [ { - "name": "value", - "nativeSrc": "31170:5:18", - "nodeType": "YulTypedName", - "src": "31170:5:18", - "type": "" + "name": "headStart", + "nativeSrc": "21944:9:18", + "nodeType": "YulIdentifier", + "src": "21944:9:18" + }, + { + "name": "offset", + "nativeSrc": "21955:6:18", + "nodeType": "YulIdentifier", + "src": "21955:6:18" } - ] - }, - { - "body": { - "nativeSrc": "31207:75:18", - "nodeType": "YulBlock", - "src": "31207:75:18", - "statements": [ - { - "nativeSrc": "31229:35:18", - "nodeType": "YulAssignment", - "src": "31229:35:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "src", - "nativeSrc": "31248:3:18", - "nodeType": "YulIdentifier", - "src": "31248:3:18" - }, - { - "name": "srcOffset", - "nativeSrc": "31253:9:18", - "nodeType": "YulIdentifier", - "src": "31253:9:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "31244:3:18", - "nodeType": "YulIdentifier", - "src": "31244:3:18" - }, - "nativeSrc": "31244:19:18", - "nodeType": "YulFunctionCall", - "src": "31244:19:18" - } - ], - "functionName": { - "name": "mload", - "nativeSrc": "31238:5:18", - "nodeType": "YulIdentifier", - "src": "31238:5:18" - }, - "nativeSrc": "31238:26:18", - "nodeType": "YulFunctionCall", - "src": "31238:26:18" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "31229:5:18", - "nodeType": "YulIdentifier", - "src": "31229:5:18" - } - ] - } - ] - }, - "condition": { - "name": "newLen", - "nativeSrc": "31200:6:18", + ], + "functionName": { + "name": "add", + "nativeSrc": "21940:3:18", "nodeType": "YulIdentifier", - "src": "31200:6:18" + "src": "21940:3:18" }, - "nativeSrc": "31197:85:18", - "nodeType": "YulIf", - "src": "31197:85:18" + "nativeSrc": "21940:22:18", + "nodeType": "YulFunctionCall", + "src": "21940:22:18" }, { - "expression": { - "arguments": [ - { - "name": "slot", - "nativeSrc": "31306:4:18", - "nodeType": "YulIdentifier", - "src": "31306:4:18" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "31365:5:18", - "nodeType": "YulIdentifier", - "src": "31365:5:18" - }, - { - "name": "newLen", - "nativeSrc": "31372:6:18", - "nodeType": "YulIdentifier", - "src": "31372:6:18" - } - ], - "functionName": { - "name": "extract_used_part_and_set_length_of_short_byte_array", - "nativeSrc": "31312:52:18", - "nodeType": "YulIdentifier", - "src": "31312:52:18" - }, - "nativeSrc": "31312:67:18", - "nodeType": "YulFunctionCall", - "src": "31312:67:18" - } - ], - "functionName": { - "name": "sstore", - "nativeSrc": "31299:6:18", + "name": "dataEnd", + "nativeSrc": "21964:7:18", + "nodeType": "YulIdentifier", + "src": "21964:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "21919:20:18", + "nodeType": "YulIdentifier", + "src": "21919:20:18" + }, + "nativeSrc": "21919:53:18", + "nodeType": "YulFunctionCall", + "src": "21919:53:18" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "21909:6:18", + "nodeType": "YulIdentifier", + "src": "21909:6:18" + } + ] + } + ] + }, + { + "nativeSrc": "21992:118:18", + "nodeType": "YulBlock", + "src": "21992:118:18", + "statements": [ + { + "nativeSrc": "22007:16:18", + "nodeType": "YulVariableDeclaration", + "src": "22007:16:18", + "value": { + "kind": "number", + "nativeSrc": "22021:2:18", + "nodeType": "YulLiteral", + "src": "22021:2:18", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "22011:6:18", + "nodeType": "YulTypedName", + "src": "22011:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "22037:63:18", + "nodeType": "YulAssignment", + "src": "22037:63:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22072:9:18", "nodeType": "YulIdentifier", - "src": "31299:6:18" + "src": "22072:9:18" }, - "nativeSrc": "31299:81:18", - "nodeType": "YulFunctionCall", - "src": "31299:81:18" + { + "name": "offset", + "nativeSrc": "22083:6:18", + "nodeType": "YulIdentifier", + "src": "22083:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22068:3:18", + "nodeType": "YulIdentifier", + "src": "22068:3:18" }, - "nativeSrc": "31299:81:18", - "nodeType": "YulExpressionStatement", - "src": "31299:81:18" + "nativeSrc": "22068:22:18", + "nodeType": "YulFunctionCall", + "src": "22068:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "22092:7:18", + "nodeType": "YulIdentifier", + "src": "22092:7:18" } - ] + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nativeSrc": "22047:20:18", + "nodeType": "YulIdentifier", + "src": "22047:20:18" + }, + "nativeSrc": "22047:53:18", + "nodeType": "YulFunctionCall", + "src": "22047:53:18" }, - "nativeSrc": "31140:254:18", - "nodeType": "YulCase", - "src": "31140:254:18", - "value": "default" + "variableNames": [ + { + "name": "value2", + "nativeSrc": "22037:6:18", + "nodeType": "YulIdentifier", + "src": "22037:6:18" + } + ] } - ], + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256t_uint256", + "nativeSrc": "21498:619:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "21552:9:18", + "nodeType": "YulTypedName", + "src": "21552:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "21563:7:18", + "nodeType": "YulTypedName", + "src": "21563:7:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "21575:6:18", + "nodeType": "YulTypedName", + "src": "21575:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "21583:6:18", + "nodeType": "YulTypedName", + "src": "21583:6:18", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "21591:6:18", + "nodeType": "YulTypedName", + "src": "21591:6:18", + "type": "" + } + ], + "src": "21498:619:18" + }, + { + "body": { + "nativeSrc": "22151:152:18", + "nodeType": "YulBlock", + "src": "22151:152:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22168:1:18", + "nodeType": "YulLiteral", + "src": "22168:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "22171:77:18", + "nodeType": "YulLiteral", + "src": "22171:77:18", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22161:6:18", + "nodeType": "YulIdentifier", + "src": "22161:6:18" + }, + "nativeSrc": "22161:88:18", + "nodeType": "YulFunctionCall", + "src": "22161:88:18" + }, + "nativeSrc": "22161:88:18", + "nodeType": "YulExpressionStatement", + "src": "22161:88:18" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22265:1:18", + "nodeType": "YulLiteral", + "src": "22265:1:18", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "22268:4:18", + "nodeType": "YulLiteral", + "src": "22268:4:18", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22258:6:18", + "nodeType": "YulIdentifier", + "src": "22258:6:18" + }, + "nativeSrc": "22258:15:18", + "nodeType": "YulFunctionCall", + "src": "22258:15:18" + }, + "nativeSrc": "22258:15:18", + "nodeType": "YulExpressionStatement", + "src": "22258:15:18" + }, + { "expression": { "arguments": [ { - "name": "newLen", - "nativeSrc": "30429:6:18", + "kind": "number", + "nativeSrc": "22289:1:18", + "nodeType": "YulLiteral", + "src": "22289:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "22292:4:18", + "nodeType": "YulLiteral", + "src": "22292:4:18", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "22282:6:18", + "nodeType": "YulIdentifier", + "src": "22282:6:18" + }, + "nativeSrc": "22282:15:18", + "nodeType": "YulFunctionCall", + "src": "22282:15:18" + }, + "nativeSrc": "22282:15:18", + "nodeType": "YulExpressionStatement", + "src": "22282:15:18" + } + ] + }, + "name": "panic_error_0x22", + "nativeSrc": "22123:180:18", + "nodeType": "YulFunctionDefinition", + "src": "22123:180:18" + }, + { + "body": { + "nativeSrc": "22360:269:18", + "nodeType": "YulBlock", + "src": "22360:269:18", + "statements": [ + { + "nativeSrc": "22370:22:18", + "nodeType": "YulAssignment", + "src": "22370:22:18", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "22384:4:18", + "nodeType": "YulIdentifier", + "src": "22384:4:18" + }, + { + "kind": "number", + "nativeSrc": "22390:1:18", + "nodeType": "YulLiteral", + "src": "22390:1:18", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "22380:3:18", + "nodeType": "YulIdentifier", + "src": "22380:3:18" + }, + "nativeSrc": "22380:12:18", + "nodeType": "YulFunctionCall", + "src": "22380:12:18" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "22370:6:18", + "nodeType": "YulIdentifier", + "src": "22370:6:18" + } + ] + }, + { + "nativeSrc": "22401:38:18", + "nodeType": "YulVariableDeclaration", + "src": "22401:38:18", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "22431:4:18", + "nodeType": "YulIdentifier", + "src": "22431:4:18" + }, + { + "kind": "number", + "nativeSrc": "22437:1:18", + "nodeType": "YulLiteral", + "src": "22437:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "22427:3:18", + "nodeType": "YulIdentifier", + "src": "22427:3:18" + }, + "nativeSrc": "22427:12:18", + "nodeType": "YulFunctionCall", + "src": "22427:12:18" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "22405:18:18", + "nodeType": "YulTypedName", + "src": "22405:18:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "22478:51:18", + "nodeType": "YulBlock", + "src": "22478:51:18", + "statements": [ + { + "nativeSrc": "22492:27:18", + "nodeType": "YulAssignment", + "src": "22492:27:18", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "22506:6:18", + "nodeType": "YulIdentifier", + "src": "22506:6:18" + }, + { + "kind": "number", + "nativeSrc": "22514:4:18", + "nodeType": "YulLiteral", + "src": "22514:4:18", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "22502:3:18", + "nodeType": "YulIdentifier", + "src": "22502:3:18" + }, + "nativeSrc": "22502:17:18", + "nodeType": "YulFunctionCall", + "src": "22502:17:18" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "22492:6:18", + "nodeType": "YulIdentifier", + "src": "22492:6:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "22458:18:18", + "nodeType": "YulIdentifier", + "src": "22458:18:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "22451:6:18", + "nodeType": "YulIdentifier", + "src": "22451:6:18" + }, + "nativeSrc": "22451:26:18", + "nodeType": "YulFunctionCall", + "src": "22451:26:18" + }, + "nativeSrc": "22448:81:18", + "nodeType": "YulIf", + "src": "22448:81:18" + }, + { + "body": { + "nativeSrc": "22581:42:18", + "nodeType": "YulBlock", + "src": "22581:42:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nativeSrc": "22595:16:18", + "nodeType": "YulIdentifier", + "src": "22595:16:18" + }, + "nativeSrc": "22595:18:18", + "nodeType": "YulFunctionCall", + "src": "22595:18:18" + }, + "nativeSrc": "22595:18:18", + "nodeType": "YulExpressionStatement", + "src": "22595:18:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "22545:18:18", "nodeType": "YulIdentifier", - "src": "30429:6:18" + "src": "22545:18:18" }, { - "kind": "number", - "nativeSrc": "30437:2:18", - "nodeType": "YulLiteral", - "src": "30437:2:18", - "type": "", - "value": "31" + "arguments": [ + { + "name": "length", + "nativeSrc": "22568:6:18", + "nodeType": "YulIdentifier", + "src": "22568:6:18" + }, + { + "kind": "number", + "nativeSrc": "22576:2:18", + "nodeType": "YulLiteral", + "src": "22576:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "22565:2:18", + "nodeType": "YulIdentifier", + "src": "22565:2:18" + }, + "nativeSrc": "22565:14:18", + "nodeType": "YulFunctionCall", + "src": "22565:14:18" } ], "functionName": { - "name": "gt", - "nativeSrc": "30426:2:18", + "name": "eq", + "nativeSrc": "22542:2:18", "nodeType": "YulIdentifier", - "src": "30426:2:18" + "src": "22542:2:18" }, - "nativeSrc": "30426:14:18", + "nativeSrc": "22542:38:18", "nodeType": "YulFunctionCall", - "src": "30426:14:18" + "src": "22542:38:18" }, - "nativeSrc": "30419:975:18", - "nodeType": "YulSwitch", - "src": "30419:975:18" + "nativeSrc": "22539:84:18", + "nodeType": "YulIf", + "src": "22539:84:18" } ] }, - "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", - "nativeSrc": "29881:1523:18", + "name": "extract_byte_array_length", + "nativeSrc": "22309:320:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "slot", - "nativeSrc": "29962:4:18", + "name": "data", + "nativeSrc": "22344:4:18", "nodeType": "YulTypedName", - "src": "29962:4:18", + "src": "22344:4:18", "type": "" - }, + } + ], + "returnVariables": [ { - "name": "src", - "nativeSrc": "29968:3:18", + "name": "length", + "nativeSrc": "22353:6:18", "nodeType": "YulTypedName", - "src": "29968:3:18", + "src": "22353:6:18", "type": "" } ], - "src": "29881:1523:18" + "src": "22309:320:18" }, { "body": { - "nativeSrc": "31479:61:18", + "nativeSrc": "22700:53:18", "nodeType": "YulBlock", - "src": "31479:61:18", + "src": "22700:53:18", "statements": [ { "expression": { "arguments": [ { "name": "pos", - "nativeSrc": "31500:3:18", + "nativeSrc": "22717:3:18", "nodeType": "YulIdentifier", - "src": "31500:3:18" + "src": "22717:3:18" }, { "arguments": [ { "name": "value", - "nativeSrc": "31523:5:18", + "nativeSrc": "22740:5:18", "nodeType": "YulIdentifier", - "src": "31523:5:18" + "src": "22740:5:18" } ], "functionName": { "name": "cleanup_t_address", - "nativeSrc": "31505:17:18", + "nativeSrc": "22722:17:18", "nodeType": "YulIdentifier", - "src": "31505:17:18" + "src": "22722:17:18" }, - "nativeSrc": "31505:24:18", + "nativeSrc": "22722:24:18", "nodeType": "YulFunctionCall", - "src": "31505:24:18" + "src": "22722:24:18" } ], "functionName": { "name": "mstore", - "nativeSrc": "31493:6:18", + "nativeSrc": "22710:6:18", "nodeType": "YulIdentifier", - "src": "31493:6:18" + "src": "22710:6:18" }, - "nativeSrc": "31493:37:18", + "nativeSrc": "22710:37:18", "nodeType": "YulFunctionCall", - "src": "31493:37:18" + "src": "22710:37:18" }, - "nativeSrc": "31493:37:18", + "nativeSrc": "22710:37:18", "nodeType": "YulExpressionStatement", - "src": "31493:37:18" + "src": "22710:37:18" } ] }, "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "31414:126:18", + "nativeSrc": "22635:118:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", - "nativeSrc": "31467:5:18", + "nativeSrc": "22688:5:18", "nodeType": "YulTypedName", - "src": "31467:5:18", + "src": "22688:5:18", "type": "" }, { "name": "pos", - "nativeSrc": "31474:3:18", + "nativeSrc": "22695:3:18", "nodeType": "YulTypedName", - "src": "31474:3:18", + "src": "22695:3:18", "type": "" } ], - "src": "31414:126:18" + "src": "22635:118:18" }, { "body": { - "nativeSrc": "31676:222:18", + "nativeSrc": "22885:206:18", "nodeType": "YulBlock", - "src": "31676:222:18", + "src": "22885:206:18", "statements": [ { - "nativeSrc": "31690:26:18", + "nativeSrc": "22895:26:18", "nodeType": "YulAssignment", - "src": "31690:26:18", + "src": "22895:26:18", "value": { "arguments": [ { "name": "headStart", - "nativeSrc": "31702:9:18", + "nativeSrc": "22907:9:18", "nodeType": "YulIdentifier", - "src": "31702:9:18" + "src": "22907:9:18" }, { "kind": "number", - "nativeSrc": "31713:2:18", + "nativeSrc": "22918:2:18", "nodeType": "YulLiteral", - "src": "31713:2:18", + "src": "22918:2:18", "type": "", "value": "64" } ], "functionName": { "name": "add", - "nativeSrc": "31698:3:18", + "nativeSrc": "22903:3:18", "nodeType": "YulIdentifier", - "src": "31698:3:18" + "src": "22903:3:18" }, - "nativeSrc": "31698:18:18", + "nativeSrc": "22903:18:18", "nodeType": "YulFunctionCall", - "src": "31698:18:18" + "src": "22903:18:18" }, "variableNames": [ { "name": "tail", - "nativeSrc": "31690:4:18", + "nativeSrc": "22895:4:18", "nodeType": "YulIdentifier", - "src": "31690:4:18" + "src": "22895:4:18" } ] }, @@ -78507,459 +78262,185 @@ "arguments": [ { "name": "value0", - "nativeSrc": "31774:6:18", + "nativeSrc": "22975:6:18", "nodeType": "YulIdentifier", - "src": "31774:6:18" + "src": "22975:6:18" }, { "arguments": [ { "name": "headStart", - "nativeSrc": "31787:9:18", + "nativeSrc": "22988:9:18", "nodeType": "YulIdentifier", - "src": "31787:9:18" + "src": "22988:9:18" }, { "kind": "number", - "nativeSrc": "31798:1:18", + "nativeSrc": "22999:1:18", "nodeType": "YulLiteral", - "src": "31798:1:18", + "src": "22999:1:18", "type": "", "value": "0" } ], "functionName": { "name": "add", - "nativeSrc": "31783:3:18", + "nativeSrc": "22984:3:18", "nodeType": "YulIdentifier", - "src": "31783:3:18" + "src": "22984:3:18" }, - "nativeSrc": "31783:17:18", + "nativeSrc": "22984:17:18", "nodeType": "YulFunctionCall", - "src": "31783:17:18" + "src": "22984:17:18" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "31730:43:18", + "nativeSrc": "22931:43:18", "nodeType": "YulIdentifier", - "src": "31730:43:18" + "src": "22931:43:18" }, - "nativeSrc": "31730:71:18", + "nativeSrc": "22931:71:18", "nodeType": "YulFunctionCall", - "src": "31730:71:18" + "src": "22931:71:18" }, - "nativeSrc": "31730:71:18", + "nativeSrc": "22931:71:18", "nodeType": "YulExpressionStatement", - "src": "31730:71:18" + "src": "22931:71:18" }, { "expression": { "arguments": [ { "name": "value1", - "nativeSrc": "31859:6:18", + "nativeSrc": "23056:6:18", "nodeType": "YulIdentifier", - "src": "31859:6:18" + "src": "23056:6:18" }, { "arguments": [ { "name": "headStart", - "nativeSrc": "31872:9:18", + "nativeSrc": "23069:9:18", "nodeType": "YulIdentifier", - "src": "31872:9:18" + "src": "23069:9:18" }, { "kind": "number", - "nativeSrc": "31883:2:18", + "nativeSrc": "23080:2:18", "nodeType": "YulLiteral", - "src": "31883:2:18", + "src": "23080:2:18", "type": "", "value": "32" } ], "functionName": { "name": "add", - "nativeSrc": "31868:3:18", + "nativeSrc": "23065:3:18", "nodeType": "YulIdentifier", - "src": "31868:3:18" + "src": "23065:3:18" }, - "nativeSrc": "31868:18:18", + "nativeSrc": "23065:18:18", "nodeType": "YulFunctionCall", - "src": "31868:18:18" + "src": "23065:18:18" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "31815:43:18", + "nativeSrc": "23012:43:18", "nodeType": "YulIdentifier", - "src": "31815:43:18" + "src": "23012:43:18" }, - "nativeSrc": "31815:72:18", + "nativeSrc": "23012:72:18", "nodeType": "YulFunctionCall", - "src": "31815:72:18" + "src": "23012:72:18" }, - "nativeSrc": "31815:72:18", + "nativeSrc": "23012:72:18", "nodeType": "YulExpressionStatement", - "src": "31815:72:18" + "src": "23012:72:18" } ] }, "name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed", - "nativeSrc": "31550:348:18", + "nativeSrc": "22759:332:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", - "nativeSrc": "31640:9:18", + "nativeSrc": "22849:9:18", "nodeType": "YulTypedName", - "src": "31640:9:18", + "src": "22849:9:18", "type": "" }, { "name": "value1", - "nativeSrc": "31652:6:18", + "nativeSrc": "22861:6:18", "nodeType": "YulTypedName", - "src": "31652:6:18", + "src": "22861:6:18", "type": "" }, { "name": "value0", - "nativeSrc": "31660:6:18", + "nativeSrc": "22869:6:18", "nodeType": "YulTypedName", - "src": "31660:6:18", + "src": "22869:6:18", "type": "" } ], "returnVariables": [ { "name": "tail", - "nativeSrc": "31671:4:18", - "nodeType": "YulTypedName", - "src": "31671:4:18", - "type": "" - } - ], - "src": "31550:348:18" - }, - { - "body": { - "nativeSrc": "31936:168:18", - "nodeType": "YulBlock", - "src": "31936:168:18", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "31957:1:18", - "nodeType": "YulLiteral", - "src": "31957:1:18", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "31960:77:18", - "nodeType": "YulLiteral", - "src": "31960:77:18", - "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "31950:6:18", - "nodeType": "YulIdentifier", - "src": "31950:6:18" - }, - "nativeSrc": "31950:88:18", - "nodeType": "YulFunctionCall", - "src": "31950:88:18" - }, - "nativeSrc": "31950:88:18", - "nodeType": "YulExpressionStatement", - "src": "31950:88:18" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "32058:1:18", - "nodeType": "YulLiteral", - "src": "32058:1:18", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "32061:4:18", - "nodeType": "YulLiteral", - "src": "32061:4:18", - "type": "", - "value": "0x11" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "32051:6:18", - "nodeType": "YulIdentifier", - "src": "32051:6:18" - }, - "nativeSrc": "32051:15:18", - "nodeType": "YulFunctionCall", - "src": "32051:15:18" - }, - "nativeSrc": "32051:15:18", - "nodeType": "YulExpressionStatement", - "src": "32051:15:18" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "32086:1:18", - "nodeType": "YulLiteral", - "src": "32086:1:18", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "32089:4:18", - "nodeType": "YulLiteral", - "src": "32089:4:18", - "type": "", - "value": "0x24" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "32079:6:18", - "nodeType": "YulIdentifier", - "src": "32079:6:18" - }, - "nativeSrc": "32079:15:18", - "nodeType": "YulFunctionCall", - "src": "32079:15:18" - }, - "nativeSrc": "32079:15:18", - "nodeType": "YulExpressionStatement", - "src": "32079:15:18" - } - ] - }, - "name": "panic_error_0x11", - "nativeSrc": "31908:196:18", - "nodeType": "YulFunctionDefinition", - "src": "31908:196:18" - }, - { - "body": { - "nativeSrc": "32157:206:18", - "nodeType": "YulBlock", - "src": "32157:206:18", - "statements": [ - { - "nativeSrc": "32171:33:18", - "nodeType": "YulAssignment", - "src": "32171:33:18", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "32198:5:18", - "nodeType": "YulIdentifier", - "src": "32198:5:18" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "32180:17:18", - "nodeType": "YulIdentifier", - "src": "32180:17:18" - }, - "nativeSrc": "32180:24:18", - "nodeType": "YulFunctionCall", - "src": "32180:24:18" - }, - "variableNames": [ - { - "name": "value", - "nativeSrc": "32171:5:18", - "nodeType": "YulIdentifier", - "src": "32171:5:18" - } - ] - }, - { - "body": { - "nativeSrc": "32298:22:18", - "nodeType": "YulBlock", - "src": "32298:22:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nativeSrc": "32300:16:18", - "nodeType": "YulIdentifier", - "src": "32300:16:18" - }, - "nativeSrc": "32300:18:18", - "nodeType": "YulFunctionCall", - "src": "32300:18:18" - }, - "nativeSrc": "32300:18:18", - "nodeType": "YulExpressionStatement", - "src": "32300:18:18" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "value", - "nativeSrc": "32223:5:18", - "nodeType": "YulIdentifier", - "src": "32223:5:18" - }, - { - "kind": "number", - "nativeSrc": "32230:66:18", - "nodeType": "YulLiteral", - "src": "32230:66:18", - "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "32220:2:18", - "nodeType": "YulIdentifier", - "src": "32220:2:18" - }, - "nativeSrc": "32220:77:18", - "nodeType": "YulFunctionCall", - "src": "32220:77:18" - }, - "nativeSrc": "32217:103:18", - "nodeType": "YulIf", - "src": "32217:103:18" - }, - { - "nativeSrc": "32333:20:18", - "nodeType": "YulAssignment", - "src": "32333:20:18", - "value": { - "arguments": [ - { - "name": "value", - "nativeSrc": "32344:5:18", - "nodeType": "YulIdentifier", - "src": "32344:5:18" - }, - { - "kind": "number", - "nativeSrc": "32351:1:18", - "nodeType": "YulLiteral", - "src": "32351:1:18", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "32340:3:18", - "nodeType": "YulIdentifier", - "src": "32340:3:18" - }, - "nativeSrc": "32340:13:18", - "nodeType": "YulFunctionCall", - "src": "32340:13:18" - }, - "variableNames": [ - { - "name": "ret", - "nativeSrc": "32333:3:18", - "nodeType": "YulIdentifier", - "src": "32333:3:18" - } - ] - } - ] - }, - "name": "increment_t_uint256", - "nativeSrc": "32114:249:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "32143:5:18", - "nodeType": "YulTypedName", - "src": "32143:5:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "ret", - "nativeSrc": "32153:3:18", + "nativeSrc": "22880:4:18", "nodeType": "YulTypedName", - "src": "32153:3:18", + "src": "22880:4:18", "type": "" } ], - "src": "32114:249:18" + "src": "22759:332:18" }, { "body": { - "nativeSrc": "32499:222:18", + "nativeSrc": "23223:206:18", "nodeType": "YulBlock", - "src": "32499:222:18", + "src": "23223:206:18", "statements": [ { - "nativeSrc": "32513:26:18", + "nativeSrc": "23233:26:18", "nodeType": "YulAssignment", - "src": "32513:26:18", + "src": "23233:26:18", "value": { "arguments": [ { "name": "headStart", - "nativeSrc": "32525:9:18", + "nativeSrc": "23245:9:18", "nodeType": "YulIdentifier", - "src": "32525:9:18" + "src": "23245:9:18" }, { "kind": "number", - "nativeSrc": "32536:2:18", + "nativeSrc": "23256:2:18", "nodeType": "YulLiteral", - "src": "32536:2:18", + "src": "23256:2:18", "type": "", "value": "64" } ], "functionName": { "name": "add", - "nativeSrc": "32521:3:18", + "nativeSrc": "23241:3:18", "nodeType": "YulIdentifier", - "src": "32521:3:18" + "src": "23241:3:18" }, - "nativeSrc": "32521:18:18", + "nativeSrc": "23241:18:18", "nodeType": "YulFunctionCall", - "src": "32521:18:18" + "src": "23241:18:18" }, "variableNames": [ { "name": "tail", - "nativeSrc": "32513:4:18", + "nativeSrc": "23233:4:18", "nodeType": "YulIdentifier", - "src": "32513:4:18" + "src": "23233:4:18" } ] }, @@ -78968,300 +78449,300 @@ "arguments": [ { "name": "value0", - "nativeSrc": "32597:6:18", + "nativeSrc": "23313:6:18", "nodeType": "YulIdentifier", - "src": "32597:6:18" + "src": "23313:6:18" }, { "arguments": [ { "name": "headStart", - "nativeSrc": "32610:9:18", + "nativeSrc": "23326:9:18", "nodeType": "YulIdentifier", - "src": "32610:9:18" + "src": "23326:9:18" }, { "kind": "number", - "nativeSrc": "32621:1:18", + "nativeSrc": "23337:1:18", "nodeType": "YulLiteral", - "src": "32621:1:18", + "src": "23337:1:18", "type": "", "value": "0" } ], "functionName": { "name": "add", - "nativeSrc": "32606:3:18", + "nativeSrc": "23322:3:18", "nodeType": "YulIdentifier", - "src": "32606:3:18" + "src": "23322:3:18" }, - "nativeSrc": "32606:17:18", + "nativeSrc": "23322:17:18", "nodeType": "YulFunctionCall", - "src": "32606:17:18" + "src": "23322:17:18" } ], "functionName": { "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "32553:43:18", + "nativeSrc": "23269:43:18", "nodeType": "YulIdentifier", - "src": "32553:43:18" + "src": "23269:43:18" }, - "nativeSrc": "32553:71:18", + "nativeSrc": "23269:71:18", "nodeType": "YulFunctionCall", - "src": "32553:71:18" + "src": "23269:71:18" }, - "nativeSrc": "32553:71:18", + "nativeSrc": "23269:71:18", "nodeType": "YulExpressionStatement", - "src": "32553:71:18" + "src": "23269:71:18" }, { "expression": { "arguments": [ { "name": "value1", - "nativeSrc": "32682:6:18", + "nativeSrc": "23394:6:18", "nodeType": "YulIdentifier", - "src": "32682:6:18" + "src": "23394:6:18" }, { "arguments": [ { "name": "headStart", - "nativeSrc": "32695:9:18", + "nativeSrc": "23407:9:18", "nodeType": "YulIdentifier", - "src": "32695:9:18" + "src": "23407:9:18" }, { "kind": "number", - "nativeSrc": "32706:2:18", + "nativeSrc": "23418:2:18", "nodeType": "YulLiteral", - "src": "32706:2:18", + "src": "23418:2:18", "type": "", "value": "32" } ], "functionName": { "name": "add", - "nativeSrc": "32691:3:18", + "nativeSrc": "23403:3:18", "nodeType": "YulIdentifier", - "src": "32691:3:18" + "src": "23403:3:18" }, - "nativeSrc": "32691:18:18", + "nativeSrc": "23403:18:18", "nodeType": "YulFunctionCall", - "src": "32691:18:18" + "src": "23403:18:18" } ], "functionName": { "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "32638:43:18", + "nativeSrc": "23350:43:18", "nodeType": "YulIdentifier", - "src": "32638:43:18" + "src": "23350:43:18" }, - "nativeSrc": "32638:72:18", + "nativeSrc": "23350:72:18", "nodeType": "YulFunctionCall", - "src": "32638:72:18" + "src": "23350:72:18" }, - "nativeSrc": "32638:72:18", + "nativeSrc": "23350:72:18", "nodeType": "YulExpressionStatement", - "src": "32638:72:18" + "src": "23350:72:18" } ] }, "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed", - "nativeSrc": "32373:348:18", + "nativeSrc": "23097:332:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", - "nativeSrc": "32463:9:18", + "nativeSrc": "23187:9:18", "nodeType": "YulTypedName", - "src": "32463:9:18", + "src": "23187:9:18", "type": "" }, { "name": "value1", - "nativeSrc": "32475:6:18", + "nativeSrc": "23199:6:18", "nodeType": "YulTypedName", - "src": "32475:6:18", + "src": "23199:6:18", "type": "" }, { "name": "value0", - "nativeSrc": "32483:6:18", + "nativeSrc": "23207:6:18", "nodeType": "YulTypedName", - "src": "32483:6:18", + "src": "23207:6:18", "type": "" } ], "returnVariables": [ { "name": "tail", - "nativeSrc": "32494:4:18", + "nativeSrc": "23218:4:18", "nodeType": "YulTypedName", - "src": "32494:4:18", + "src": "23218:4:18", "type": "" } ], - "src": "32373:348:18" + "src": "23097:332:18" }, { "body": { - "nativeSrc": "32759:168:18", + "nativeSrc": "23463:152:18", "nodeType": "YulBlock", - "src": "32759:168:18", + "src": "23463:152:18", "statements": [ { "expression": { "arguments": [ { "kind": "number", - "nativeSrc": "32780:1:18", + "nativeSrc": "23480:1:18", "nodeType": "YulLiteral", - "src": "32780:1:18", + "src": "23480:1:18", "type": "", "value": "0" }, { "kind": "number", - "nativeSrc": "32783:77:18", + "nativeSrc": "23483:77:18", "nodeType": "YulLiteral", - "src": "32783:77:18", + "src": "23483:77:18", "type": "", "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { "name": "mstore", - "nativeSrc": "32773:6:18", + "nativeSrc": "23473:6:18", "nodeType": "YulIdentifier", - "src": "32773:6:18" + "src": "23473:6:18" }, - "nativeSrc": "32773:88:18", + "nativeSrc": "23473:88:18", "nodeType": "YulFunctionCall", - "src": "32773:88:18" + "src": "23473:88:18" }, - "nativeSrc": "32773:88:18", + "nativeSrc": "23473:88:18", "nodeType": "YulExpressionStatement", - "src": "32773:88:18" + "src": "23473:88:18" }, { "expression": { "arguments": [ { "kind": "number", - "nativeSrc": "32881:1:18", + "nativeSrc": "23577:1:18", "nodeType": "YulLiteral", - "src": "32881:1:18", + "src": "23577:1:18", "type": "", "value": "4" }, { "kind": "number", - "nativeSrc": "32884:4:18", + "nativeSrc": "23580:4:18", "nodeType": "YulLiteral", - "src": "32884:4:18", + "src": "23580:4:18", "type": "", "value": "0x32" } ], "functionName": { "name": "mstore", - "nativeSrc": "32874:6:18", + "nativeSrc": "23570:6:18", "nodeType": "YulIdentifier", - "src": "32874:6:18" + "src": "23570:6:18" }, - "nativeSrc": "32874:15:18", + "nativeSrc": "23570:15:18", "nodeType": "YulFunctionCall", - "src": "32874:15:18" + "src": "23570:15:18" }, - "nativeSrc": "32874:15:18", + "nativeSrc": "23570:15:18", "nodeType": "YulExpressionStatement", - "src": "32874:15:18" + "src": "23570:15:18" }, { "expression": { "arguments": [ { "kind": "number", - "nativeSrc": "32909:1:18", + "nativeSrc": "23601:1:18", "nodeType": "YulLiteral", - "src": "32909:1:18", + "src": "23601:1:18", "type": "", "value": "0" }, { "kind": "number", - "nativeSrc": "32912:4:18", + "nativeSrc": "23604:4:18", "nodeType": "YulLiteral", - "src": "32912:4:18", + "src": "23604:4:18", "type": "", "value": "0x24" } ], "functionName": { "name": "revert", - "nativeSrc": "32902:6:18", + "nativeSrc": "23594:6:18", "nodeType": "YulIdentifier", - "src": "32902:6:18" + "src": "23594:6:18" }, - "nativeSrc": "32902:15:18", + "nativeSrc": "23594:15:18", "nodeType": "YulFunctionCall", - "src": "32902:15:18" + "src": "23594:15:18" }, - "nativeSrc": "32902:15:18", + "nativeSrc": "23594:15:18", "nodeType": "YulExpressionStatement", - "src": "32902:15:18" + "src": "23594:15:18" } ] }, "name": "panic_error_0x32", - "nativeSrc": "32731:196:18", + "nativeSrc": "23435:180:18", "nodeType": "YulFunctionDefinition", - "src": "32731:196:18" + "src": "23435:180:18" }, { "body": { - "nativeSrc": "33063:222:18", + "nativeSrc": "23747:206:18", "nodeType": "YulBlock", - "src": "33063:222:18", + "src": "23747:206:18", "statements": [ { - "nativeSrc": "33077:26:18", + "nativeSrc": "23757:26:18", "nodeType": "YulAssignment", - "src": "33077:26:18", + "src": "23757:26:18", "value": { "arguments": [ { "name": "headStart", - "nativeSrc": "33089:9:18", + "nativeSrc": "23769:9:18", "nodeType": "YulIdentifier", - "src": "33089:9:18" + "src": "23769:9:18" }, { "kind": "number", - "nativeSrc": "33100:2:18", + "nativeSrc": "23780:2:18", "nodeType": "YulLiteral", - "src": "33100:2:18", + "src": "23780:2:18", "type": "", "value": "64" } ], "functionName": { "name": "add", - "nativeSrc": "33085:3:18", + "nativeSrc": "23765:3:18", "nodeType": "YulIdentifier", - "src": "33085:3:18" + "src": "23765:3:18" }, - "nativeSrc": "33085:18:18", + "nativeSrc": "23765:18:18", "nodeType": "YulFunctionCall", - "src": "33085:18:18" + "src": "23765:18:18" }, "variableNames": [ { "name": "tail", - "nativeSrc": "33077:4:18", + "nativeSrc": "23757:4:18", "nodeType": "YulIdentifier", - "src": "33077:4:18" + "src": "23757:4:18" } ] }, @@ -79270,202 +78751,252 @@ "arguments": [ { "name": "value0", - "nativeSrc": "33161:6:18", + "nativeSrc": "23837:6:18", "nodeType": "YulIdentifier", - "src": "33161:6:18" + "src": "23837:6:18" }, { "arguments": [ { "name": "headStart", - "nativeSrc": "33174:9:18", + "nativeSrc": "23850:9:18", "nodeType": "YulIdentifier", - "src": "33174:9:18" + "src": "23850:9:18" }, { "kind": "number", - "nativeSrc": "33185:1:18", + "nativeSrc": "23861:1:18", "nodeType": "YulLiteral", - "src": "33185:1:18", + "src": "23861:1:18", "type": "", "value": "0" } ], "functionName": { "name": "add", - "nativeSrc": "33170:3:18", + "nativeSrc": "23846:3:18", "nodeType": "YulIdentifier", - "src": "33170:3:18" + "src": "23846:3:18" }, - "nativeSrc": "33170:17:18", + "nativeSrc": "23846:17:18", "nodeType": "YulFunctionCall", - "src": "33170:17:18" + "src": "23846:17:18" } ], "functionName": { "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "33117:43:18", + "nativeSrc": "23793:43:18", "nodeType": "YulIdentifier", - "src": "33117:43:18" + "src": "23793:43:18" }, - "nativeSrc": "33117:71:18", + "nativeSrc": "23793:71:18", "nodeType": "YulFunctionCall", - "src": "33117:71:18" + "src": "23793:71:18" }, - "nativeSrc": "33117:71:18", + "nativeSrc": "23793:71:18", "nodeType": "YulExpressionStatement", - "src": "33117:71:18" + "src": "23793:71:18" }, { "expression": { "arguments": [ { "name": "value1", - "nativeSrc": "33246:6:18", + "nativeSrc": "23918:6:18", "nodeType": "YulIdentifier", - "src": "33246:6:18" + "src": "23918:6:18" }, { "arguments": [ { "name": "headStart", - "nativeSrc": "33259:9:18", + "nativeSrc": "23931:9:18", "nodeType": "YulIdentifier", - "src": "33259:9:18" + "src": "23931:9:18" }, { "kind": "number", - "nativeSrc": "33270:2:18", + "nativeSrc": "23942:2:18", "nodeType": "YulLiteral", - "src": "33270:2:18", + "src": "23942:2:18", "type": "", "value": "32" } ], "functionName": { "name": "add", - "nativeSrc": "33255:3:18", + "nativeSrc": "23927:3:18", "nodeType": "YulIdentifier", - "src": "33255:3:18" + "src": "23927:3:18" }, - "nativeSrc": "33255:18:18", + "nativeSrc": "23927:18:18", "nodeType": "YulFunctionCall", - "src": "33255:18:18" + "src": "23927:18:18" } ], "functionName": { "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "33202:43:18", + "nativeSrc": "23874:43:18", "nodeType": "YulIdentifier", - "src": "33202:43:18" + "src": "23874:43:18" }, - "nativeSrc": "33202:72:18", + "nativeSrc": "23874:72:18", "nodeType": "YulFunctionCall", - "src": "33202:72:18" + "src": "23874:72:18" }, - "nativeSrc": "33202:72:18", + "nativeSrc": "23874:72:18", "nodeType": "YulExpressionStatement", - "src": "33202:72:18" + "src": "23874:72:18" } ] }, "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", - "nativeSrc": "32937:348:18", + "nativeSrc": "23621:332:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", - "nativeSrc": "33027:9:18", + "nativeSrc": "23711:9:18", "nodeType": "YulTypedName", - "src": "33027:9:18", + "src": "23711:9:18", "type": "" }, { "name": "value1", - "nativeSrc": "33039:6:18", + "nativeSrc": "23723:6:18", "nodeType": "YulTypedName", - "src": "33039:6:18", + "src": "23723:6:18", "type": "" }, { "name": "value0", - "nativeSrc": "33047:6:18", + "nativeSrc": "23731:6:18", "nodeType": "YulTypedName", - "src": "33047:6:18", + "src": "23731:6:18", "type": "" } ], "returnVariables": [ { "name": "tail", - "nativeSrc": "33058:4:18", + "nativeSrc": "23742:4:18", "nodeType": "YulTypedName", - "src": "33058:4:18", + "src": "23742:4:18", "type": "" } ], - "src": "32937:348:18" + "src": "23621:332:18" }, { "body": { - "nativeSrc": "33348:40:18", + "nativeSrc": "24012:32:18", "nodeType": "YulBlock", - "src": "33348:40:18", + "src": "24012:32:18", "statements": [ { - "nativeSrc": "33362:16:18", + "nativeSrc": "24022:16:18", "nodeType": "YulAssignment", - "src": "33362:16:18", + "src": "24022:16:18", "value": { "name": "value", - "nativeSrc": "33373:5:18", + "nativeSrc": "24033:5:18", "nodeType": "YulIdentifier", - "src": "33373:5:18" + "src": "24033:5:18" }, "variableNames": [ { "name": "cleaned", - "nativeSrc": "33362:7:18", + "nativeSrc": "24022:7:18", "nodeType": "YulIdentifier", - "src": "33362:7:18" + "src": "24022:7:18" } ] } ] }, "name": "cleanup_t_rational_1_by_1", - "nativeSrc": "33295:93:18", + "nativeSrc": "23959:85:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", - "nativeSrc": "33330:5:18", + "nativeSrc": "23994:5:18", "nodeType": "YulTypedName", - "src": "33330:5:18", + "src": "23994:5:18", "type": "" } ], "returnVariables": [ { "name": "cleaned", - "nativeSrc": "33340:7:18", + "nativeSrc": "24004:7:18", + "nodeType": "YulTypedName", + "src": "24004:7:18", + "type": "" + } + ], + "src": "23959:85:18" + }, + { + "body": { + "nativeSrc": "24082:28:18", + "nodeType": "YulBlock", + "src": "24082:28:18", + "statements": [ + { + "nativeSrc": "24092:12:18", + "nodeType": "YulAssignment", + "src": "24092:12:18", + "value": { + "name": "value", + "nativeSrc": "24099:5:18", + "nodeType": "YulIdentifier", + "src": "24099:5:18" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "24092:3:18", + "nodeType": "YulIdentifier", + "src": "24092:3:18" + } + ] + } + ] + }, + "name": "identity", + "nativeSrc": "24050:60:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "24068:5:18", "nodeType": "YulTypedName", - "src": "33340:7:18", + "src": "24068:5:18", "type": "" } ], - "src": "33295:93:18" + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "24078:3:18", + "nodeType": "YulTypedName", + "src": "24078:3:18", + "type": "" + } + ], + "src": "24050:60:18" }, { "body": { - "nativeSrc": "33466:98:18", + "nativeSrc": "24184:90:18", "nodeType": "YulBlock", - "src": "33466:98:18", + "src": "24184:90:18", "statements": [ { - "nativeSrc": "33480:74:18", + "nativeSrc": "24194:74:18", "nodeType": "YulAssignment", - "src": "33480:74:18", + "src": "24194:74:18", "value": { "arguments": [ { @@ -79474,397 +79005,741 @@ "arguments": [ { "name": "value", - "nativeSrc": "33546:5:18", + "nativeSrc": "24260:5:18", "nodeType": "YulIdentifier", - "src": "33546:5:18" + "src": "24260:5:18" } ], "functionName": { "name": "cleanup_t_rational_1_by_1", - "nativeSrc": "33520:25:18", + "nativeSrc": "24234:25:18", "nodeType": "YulIdentifier", - "src": "33520:25:18" + "src": "24234:25:18" }, - "nativeSrc": "33520:32:18", + "nativeSrc": "24234:32:18", "nodeType": "YulFunctionCall", - "src": "33520:32:18" + "src": "24234:32:18" } ], "functionName": { "name": "identity", - "nativeSrc": "33511:8:18", + "nativeSrc": "24225:8:18", "nodeType": "YulIdentifier", - "src": "33511:8:18" + "src": "24225:8:18" }, - "nativeSrc": "33511:42:18", + "nativeSrc": "24225:42:18", "nodeType": "YulFunctionCall", - "src": "33511:42:18" + "src": "24225:42:18" } ], "functionName": { "name": "cleanup_t_uint256", - "nativeSrc": "33493:17:18", + "nativeSrc": "24207:17:18", "nodeType": "YulIdentifier", - "src": "33493:17:18" + "src": "24207:17:18" }, - "nativeSrc": "33493:61:18", + "nativeSrc": "24207:61:18", "nodeType": "YulFunctionCall", - "src": "33493:61:18" + "src": "24207:61:18" }, "variableNames": [ { "name": "converted", - "nativeSrc": "33480:9:18", + "nativeSrc": "24194:9:18", "nodeType": "YulIdentifier", - "src": "33480:9:18" + "src": "24194:9:18" } ] } ] }, "name": "convert_t_rational_1_by_1_to_t_uint256", - "nativeSrc": "33398:166:18", + "nativeSrc": "24116:158:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", - "nativeSrc": "33446:5:18", + "nativeSrc": "24164:5:18", "nodeType": "YulTypedName", - "src": "33446:5:18", + "src": "24164:5:18", "type": "" } ], "returnVariables": [ { "name": "converted", - "nativeSrc": "33456:9:18", + "nativeSrc": "24174:9:18", "nodeType": "YulTypedName", - "src": "33456:9:18", + "src": "24174:9:18", "type": "" } ], - "src": "33398:166:18" + "src": "24116:158:18" }, { "body": { - "nativeSrc": "33647:82:18", + "nativeSrc": "24353:74:18", "nodeType": "YulBlock", - "src": "33647:82:18", + "src": "24353:74:18", "statements": [ { "expression": { "arguments": [ { "name": "pos", - "nativeSrc": "33668:3:18", + "nativeSrc": "24370:3:18", "nodeType": "YulIdentifier", - "src": "33668:3:18" + "src": "24370:3:18" }, { "arguments": [ { "name": "value", - "nativeSrc": "33712:5:18", + "nativeSrc": "24414:5:18", "nodeType": "YulIdentifier", - "src": "33712:5:18" + "src": "24414:5:18" } ], "functionName": { "name": "convert_t_rational_1_by_1_to_t_uint256", - "nativeSrc": "33673:38:18", + "nativeSrc": "24375:38:18", + "nodeType": "YulIdentifier", + "src": "24375:38:18" + }, + "nativeSrc": "24375:45:18", + "nodeType": "YulFunctionCall", + "src": "24375:45:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24363:6:18", + "nodeType": "YulIdentifier", + "src": "24363:6:18" + }, + "nativeSrc": "24363:58:18", + "nodeType": "YulFunctionCall", + "src": "24363:58:18" + }, + "nativeSrc": "24363:58:18", + "nodeType": "YulExpressionStatement", + "src": "24363:58:18" + } + ] + }, + "name": "abi_encode_t_rational_1_by_1_to_t_uint256_fromStack", + "nativeSrc": "24280:147:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "24341:5:18", + "nodeType": "YulTypedName", + "src": "24341:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "24348:3:18", + "nodeType": "YulTypedName", + "src": "24348:3:18", + "type": "" + } + ], + "src": "24280:147:18" + }, + { + "body": { + "nativeSrc": "24539:132:18", + "nodeType": "YulBlock", + "src": "24539:132:18", + "statements": [ + { + "nativeSrc": "24549:26:18", + "nodeType": "YulAssignment", + "src": "24549:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "24561:9:18", + "nodeType": "YulIdentifier", + "src": "24561:9:18" + }, + { + "kind": "number", + "nativeSrc": "24572:2:18", + "nodeType": "YulLiteral", + "src": "24572:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24557:3:18", + "nodeType": "YulIdentifier", + "src": "24557:3:18" + }, + "nativeSrc": "24557:18:18", + "nodeType": "YulFunctionCall", + "src": "24557:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "24549:4:18", + "nodeType": "YulIdentifier", + "src": "24549:4:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "24637:6:18", + "nodeType": "YulIdentifier", + "src": "24637:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "24650:9:18", + "nodeType": "YulIdentifier", + "src": "24650:9:18" + }, + { + "kind": "number", + "nativeSrc": "24661:1:18", + "nodeType": "YulLiteral", + "src": "24661:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24646:3:18", + "nodeType": "YulIdentifier", + "src": "24646:3:18" + }, + "nativeSrc": "24646:17:18", + "nodeType": "YulFunctionCall", + "src": "24646:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_rational_1_by_1_to_t_uint256_fromStack", + "nativeSrc": "24585:51:18", + "nodeType": "YulIdentifier", + "src": "24585:51:18" + }, + "nativeSrc": "24585:79:18", + "nodeType": "YulFunctionCall", + "src": "24585:79:18" + }, + "nativeSrc": "24585:79:18", + "nodeType": "YulExpressionStatement", + "src": "24585:79:18" + } + ] + }, + "name": "abi_encode_tuple_t_rational_1_by_1__to_t_uint256__fromStack_reversed", + "nativeSrc": "24433:238:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "24511:9:18", + "nodeType": "YulTypedName", + "src": "24511:9:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "24523:6:18", + "nodeType": "YulTypedName", + "src": "24523:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "24534:4:18", + "nodeType": "YulTypedName", + "src": "24534:4:18", + "type": "" + } + ], + "src": "24433:238:18" + }, + { + "body": { + "nativeSrc": "24783:67:18", + "nodeType": "YulBlock", + "src": "24783:67:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "24805:6:18", + "nodeType": "YulIdentifier", + "src": "24805:6:18" + }, + { + "kind": "number", + "nativeSrc": "24813:1:18", + "nodeType": "YulLiteral", + "src": "24813:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24801:3:18", "nodeType": "YulIdentifier", - "src": "33673:38:18" + "src": "24801:3:18" }, - "nativeSrc": "33673:45:18", + "nativeSrc": "24801:14:18", "nodeType": "YulFunctionCall", - "src": "33673:45:18" + "src": "24801:14:18" + }, + { + "hexValue": "4163636f756e742063616e6e6f7420626520656d707479", + "kind": "string", + "nativeSrc": "24817:25:18", + "nodeType": "YulLiteral", + "src": "24817:25:18", + "type": "", + "value": "Account cannot be empty" } ], "functionName": { "name": "mstore", - "nativeSrc": "33661:6:18", + "nativeSrc": "24794:6:18", + "nodeType": "YulIdentifier", + "src": "24794:6:18" + }, + "nativeSrc": "24794:49:18", + "nodeType": "YulFunctionCall", + "src": "24794:49:18" + }, + "nativeSrc": "24794:49:18", + "nodeType": "YulExpressionStatement", + "src": "24794:49:18" + } + ] + }, + "name": "store_literal_in_memory_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619", + "nativeSrc": "24677:173:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "24775:6:18", + "nodeType": "YulTypedName", + "src": "24775:6:18", + "type": "" + } + ], + "src": "24677:173:18" + }, + { + "body": { + "nativeSrc": "25002:220:18", + "nodeType": "YulBlock", + "src": "25002:220:18", + "statements": [ + { + "nativeSrc": "25012:74:18", + "nodeType": "YulAssignment", + "src": "25012:74:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25078:3:18", + "nodeType": "YulIdentifier", + "src": "25078:3:18" + }, + { + "kind": "number", + "nativeSrc": "25083:2:18", + "nodeType": "YulLiteral", + "src": "25083:2:18", + "type": "", + "value": "23" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "25019:58:18", + "nodeType": "YulIdentifier", + "src": "25019:58:18" + }, + "nativeSrc": "25019:67:18", + "nodeType": "YulFunctionCall", + "src": "25019:67:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "25012:3:18", + "nodeType": "YulIdentifier", + "src": "25012:3:18" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25184:3:18", + "nodeType": "YulIdentifier", + "src": "25184:3:18" + } + ], + "functionName": { + "name": "store_literal_in_memory_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619", + "nativeSrc": "25095:88:18", "nodeType": "YulIdentifier", - "src": "33661:6:18" + "src": "25095:88:18" }, - "nativeSrc": "33661:58:18", + "nativeSrc": "25095:93:18", "nodeType": "YulFunctionCall", - "src": "33661:58:18" + "src": "25095:93:18" }, - "nativeSrc": "33661:58:18", + "nativeSrc": "25095:93:18", "nodeType": "YulExpressionStatement", - "src": "33661:58:18" + "src": "25095:93:18" + }, + { + "nativeSrc": "25197:19:18", + "nodeType": "YulAssignment", + "src": "25197:19:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25208:3:18", + "nodeType": "YulIdentifier", + "src": "25208:3:18" + }, + { + "kind": "number", + "nativeSrc": "25213:2:18", + "nodeType": "YulLiteral", + "src": "25213:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25204:3:18", + "nodeType": "YulIdentifier", + "src": "25204:3:18" + }, + "nativeSrc": "25204:12:18", + "nodeType": "YulFunctionCall", + "src": "25204:12:18" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "25197:3:18", + "nodeType": "YulIdentifier", + "src": "25197:3:18" + } + ] } ] }, - "name": "abi_encode_t_rational_1_by_1_to_t_uint256_fromStack", - "nativeSrc": "33574:155:18", + "name": "abi_encode_t_stringliteral_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619_to_t_string_memory_ptr_fromStack", + "nativeSrc": "24856:366:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", - "nativeSrc": "33635:5:18", + "name": "pos", + "nativeSrc": "24990:3:18", "nodeType": "YulTypedName", - "src": "33635:5:18", + "src": "24990:3:18", "type": "" - }, + } + ], + "returnVariables": [ { - "name": "pos", - "nativeSrc": "33642:3:18", + "name": "end", + "nativeSrc": "24998:3:18", "nodeType": "YulTypedName", - "src": "33642:3:18", + "src": "24998:3:18", "type": "" } ], - "src": "33574:155:18" + "src": "24856:366:18" }, { "body": { - "nativeSrc": "33845:144:18", + "nativeSrc": "25399:248:18", "nodeType": "YulBlock", - "src": "33845:144:18", + "src": "25399:248:18", "statements": [ { - "nativeSrc": "33859:26:18", + "nativeSrc": "25409:26:18", "nodeType": "YulAssignment", - "src": "33859:26:18", + "src": "25409:26:18", "value": { "arguments": [ { "name": "headStart", - "nativeSrc": "33871:9:18", + "nativeSrc": "25421:9:18", "nodeType": "YulIdentifier", - "src": "33871:9:18" + "src": "25421:9:18" }, { "kind": "number", - "nativeSrc": "33882:2:18", + "nativeSrc": "25432:2:18", "nodeType": "YulLiteral", - "src": "33882:2:18", + "src": "25432:2:18", "type": "", "value": "32" } ], "functionName": { "name": "add", - "nativeSrc": "33867:3:18", + "nativeSrc": "25417:3:18", "nodeType": "YulIdentifier", - "src": "33867:3:18" + "src": "25417:3:18" }, - "nativeSrc": "33867:18:18", + "nativeSrc": "25417:18:18", "nodeType": "YulFunctionCall", - "src": "33867:18:18" + "src": "25417:18:18" }, "variableNames": [ { "name": "tail", - "nativeSrc": "33859:4:18", + "nativeSrc": "25409:4:18", "nodeType": "YulIdentifier", - "src": "33859:4:18" + "src": "25409:4:18" } ] }, { "expression": { "arguments": [ - { - "name": "value0", - "nativeSrc": "33951:6:18", - "nodeType": "YulIdentifier", - "src": "33951:6:18" - }, { "arguments": [ { "name": "headStart", - "nativeSrc": "33964:9:18", + "nativeSrc": "25456:9:18", "nodeType": "YulIdentifier", - "src": "33964:9:18" + "src": "25456:9:18" }, { "kind": "number", - "nativeSrc": "33975:1:18", + "nativeSrc": "25467:1:18", "nodeType": "YulLiteral", - "src": "33975:1:18", + "src": "25467:1:18", "type": "", "value": "0" } ], "functionName": { "name": "add", - "nativeSrc": "33960:3:18", + "nativeSrc": "25452:3:18", + "nodeType": "YulIdentifier", + "src": "25452:3:18" + }, + "nativeSrc": "25452:17:18", + "nodeType": "YulFunctionCall", + "src": "25452:17:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "25475:4:18", + "nodeType": "YulIdentifier", + "src": "25475:4:18" + }, + { + "name": "headStart", + "nativeSrc": "25481:9:18", + "nodeType": "YulIdentifier", + "src": "25481:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "25471:3:18", "nodeType": "YulIdentifier", - "src": "33960:3:18" + "src": "25471:3:18" }, - "nativeSrc": "33960:17:18", + "nativeSrc": "25471:20:18", "nodeType": "YulFunctionCall", - "src": "33960:17:18" + "src": "25471:20:18" } ], "functionName": { - "name": "abi_encode_t_rational_1_by_1_to_t_uint256_fromStack", - "nativeSrc": "33899:51:18", + "name": "mstore", + "nativeSrc": "25445:6:18", "nodeType": "YulIdentifier", - "src": "33899:51:18" + "src": "25445:6:18" }, - "nativeSrc": "33899:79:18", + "nativeSrc": "25445:47:18", "nodeType": "YulFunctionCall", - "src": "33899:79:18" + "src": "25445:47:18" }, - "nativeSrc": "33899:79:18", + "nativeSrc": "25445:47:18", "nodeType": "YulExpressionStatement", - "src": "33899:79:18" + "src": "25445:47:18" + }, + { + "nativeSrc": "25501:139:18", + "nodeType": "YulAssignment", + "src": "25501:139:18", + "value": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "25635:4:18", + "nodeType": "YulIdentifier", + "src": "25635:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619_to_t_string_memory_ptr_fromStack", + "nativeSrc": "25509:124:18", + "nodeType": "YulIdentifier", + "src": "25509:124:18" + }, + "nativeSrc": "25509:131:18", + "nodeType": "YulFunctionCall", + "src": "25509:131:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "25501:4:18", + "nodeType": "YulIdentifier", + "src": "25501:4:18" + } + ] } ] }, - "name": "abi_encode_tuple_t_rational_1_by_1__to_t_uint256__fromStack_reversed", - "nativeSrc": "33739:250:18", + "name": "abi_encode_tuple_t_stringliteral_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "25228:419:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", - "nativeSrc": "33817:9:18", - "nodeType": "YulTypedName", - "src": "33817:9:18", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "33829:6:18", + "nativeSrc": "25379:9:18", "nodeType": "YulTypedName", - "src": "33829:6:18", + "src": "25379:9:18", "type": "" } ], "returnVariables": [ { "name": "tail", - "nativeSrc": "33840:4:18", + "nativeSrc": "25394:4:18", "nodeType": "YulTypedName", - "src": "33840:4:18", + "src": "25394:4:18", "type": "" } ], - "src": "33739:250:18" + "src": "25228:419:18" }, { "body": { - "nativeSrc": "34105:53:18", + "nativeSrc": "25767:34:18", "nodeType": "YulBlock", - "src": "34105:53:18", + "src": "25767:34:18", "statements": [ { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "34131:6:18", - "nodeType": "YulIdentifier", - "src": "34131:6:18" - }, - { - "kind": "number", - "nativeSrc": "34139:1:18", - "nodeType": "YulLiteral", - "src": "34139:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "34127:3:18", - "nodeType": "YulIdentifier", - "src": "34127:3:18" - }, - "nativeSrc": "34127:14:18", - "nodeType": "YulFunctionCall", - "src": "34127:14:18" - }, - { - "hexValue": "2f", - "kind": "string", - "nativeSrc": "34143:3:18", - "nodeType": "YulLiteral", - "src": "34143:3:18", - "type": "", - "value": "/" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "34120:6:18", - "nodeType": "YulIdentifier", - "src": "34120:6:18" - }, - "nativeSrc": "34120:27:18", - "nodeType": "YulFunctionCall", - "src": "34120:27:18" + "nativeSrc": "25777:18:18", + "nodeType": "YulAssignment", + "src": "25777:18:18", + "value": { + "name": "pos", + "nativeSrc": "25792:3:18", + "nodeType": "YulIdentifier", + "src": "25792:3:18" }, - "nativeSrc": "34120:27:18", - "nodeType": "YulExpressionStatement", - "src": "34120:27:18" + "variableNames": [ + { + "name": "updated_pos", + "nativeSrc": "25777:11:18", + "nodeType": "YulIdentifier", + "src": "25777:11:18" + } + ] } ] }, - "name": "store_literal_in_memory_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527", - "nativeSrc": "33999:159:18", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "25653:148:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "memPtr", - "nativeSrc": "34097:6:18", + "name": "pos", + "nativeSrc": "25739:3:18", + "nodeType": "YulTypedName", + "src": "25739:3:18", + "type": "" + }, + { + "name": "length", + "nativeSrc": "25744:6:18", + "nodeType": "YulTypedName", + "src": "25744:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nativeSrc": "25755:11:18", "nodeType": "YulTypedName", - "src": "34097:6:18", + "src": "25755:11:18", "type": "" } ], - "src": "33999:159:18" + "src": "25653:148:18" }, { "body": { - "nativeSrc": "34332:252:18", + "nativeSrc": "25861:87:18", "nodeType": "YulBlock", - "src": "34332:252:18", + "src": "25861:87:18", "statements": [ { - "nativeSrc": "34346:91:18", + "nativeSrc": "25871:11:18", "nodeType": "YulAssignment", - "src": "34346:91:18", + "src": "25871:11:18", "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "34430:3:18", - "nodeType": "YulIdentifier", - "src": "34430:3:18" - }, - { - "kind": "number", - "nativeSrc": "34435:1:18", - "nodeType": "YulLiteral", - "src": "34435:1:18", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "34353:76:18", - "nodeType": "YulIdentifier", - "src": "34353:76:18" - }, - "nativeSrc": "34353:84:18", - "nodeType": "YulFunctionCall", - "src": "34353:84:18" + "name": "ptr", + "nativeSrc": "25879:3:18", + "nodeType": "YulIdentifier", + "src": "25879:3:18" }, "variableNames": [ { - "name": "pos", - "nativeSrc": "34346:3:18", + "name": "data", + "nativeSrc": "25871:4:18", "nodeType": "YulIdentifier", - "src": "34346:3:18" + "src": "25871:4:18" } ] }, @@ -79872,1687 +79747,1494 @@ "expression": { "arguments": [ { - "name": "pos", - "nativeSrc": "34539:3:18", + "kind": "number", + "nativeSrc": "25899:1:18", + "nodeType": "YulLiteral", + "src": "25899:1:18", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nativeSrc": "25902:3:18", "nodeType": "YulIdentifier", - "src": "34539:3:18" + "src": "25902:3:18" } ], "functionName": { - "name": "store_literal_in_memory_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527", - "nativeSrc": "34450:88:18", + "name": "mstore", + "nativeSrc": "25892:6:18", "nodeType": "YulIdentifier", - "src": "34450:88:18" + "src": "25892:6:18" }, - "nativeSrc": "34450:93:18", + "nativeSrc": "25892:14:18", "nodeType": "YulFunctionCall", - "src": "34450:93:18" + "src": "25892:14:18" }, - "nativeSrc": "34450:93:18", + "nativeSrc": "25892:14:18", "nodeType": "YulExpressionStatement", - "src": "34450:93:18" + "src": "25892:14:18" }, { - "nativeSrc": "34556:18:18", + "nativeSrc": "25915:26:18", "nodeType": "YulAssignment", - "src": "34556:18:18", + "src": "25915:26:18", "value": { "arguments": [ { - "name": "pos", - "nativeSrc": "34567:3:18", - "nodeType": "YulIdentifier", - "src": "34567:3:18" + "kind": "number", + "nativeSrc": "25933:1:18", + "nodeType": "YulLiteral", + "src": "25933:1:18", + "type": "", + "value": "0" }, { "kind": "number", - "nativeSrc": "34572:1:18", + "nativeSrc": "25936:4:18", "nodeType": "YulLiteral", - "src": "34572:1:18", + "src": "25936:4:18", "type": "", - "value": "1" + "value": "0x20" } ], "functionName": { - "name": "add", - "nativeSrc": "34563:3:18", + "name": "keccak256", + "nativeSrc": "25923:9:18", "nodeType": "YulIdentifier", - "src": "34563:3:18" + "src": "25923:9:18" }, - "nativeSrc": "34563:11:18", + "nativeSrc": "25923:18:18", "nodeType": "YulFunctionCall", - "src": "34563:11:18" + "src": "25923:18:18" }, "variableNames": [ { - "name": "end", - "nativeSrc": "34556:3:18", + "name": "data", + "nativeSrc": "25915:4:18", "nodeType": "YulIdentifier", - "src": "34556:3:18" + "src": "25915:4:18" } ] } ] }, - "name": "abi_encode_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "34168:416:18", + "name": "array_dataslot_t_string_storage", + "nativeSrc": "25807:141:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", - "nativeSrc": "34320:3:18", + "name": "ptr", + "nativeSrc": "25848:3:18", "nodeType": "YulTypedName", - "src": "34320:3:18", + "src": "25848:3:18", "type": "" } ], "returnVariables": [ { - "name": "end", - "nativeSrc": "34328:3:18", + "name": "data", + "nativeSrc": "25856:4:18", "nodeType": "YulTypedName", - "src": "34328:3:18", + "src": "25856:4:18", "type": "" } ], - "src": "34168:416:18" + "src": "25807:141:18" }, { "body": { - "nativeSrc": "34704:300:18", + "nativeSrc": "26085:767:18", "nodeType": "YulBlock", - "src": "34704:300:18", + "src": "26085:767:18", "statements": [ { - "nativeSrc": "34718:53:18", + "nativeSrc": "26095:29:18", "nodeType": "YulVariableDeclaration", - "src": "34718:53:18", + "src": "26095:29:18", "value": { "arguments": [ { "name": "value", - "nativeSrc": "34765:5:18", + "nativeSrc": "26118:5:18", "nodeType": "YulIdentifier", - "src": "34765:5:18" + "src": "26118:5:18" } ], "functionName": { - "name": "array_length_t_string_memory_ptr", - "nativeSrc": "34732:32:18", + "name": "sload", + "nativeSrc": "26112:5:18", + "nodeType": "YulIdentifier", + "src": "26112:5:18" + }, + "nativeSrc": "26112:12:18", + "nodeType": "YulFunctionCall", + "src": "26112:12:18" + }, + "variables": [ + { + "name": "slotValue", + "nativeSrc": "26099:9:18", + "nodeType": "YulTypedName", + "src": "26099:9:18", + "type": "" + } + ] + }, + { + "nativeSrc": "26133:50:18", + "nodeType": "YulVariableDeclaration", + "src": "26133:50:18", + "value": { + "arguments": [ + { + "name": "slotValue", + "nativeSrc": "26173:9:18", + "nodeType": "YulIdentifier", + "src": "26173:9:18" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "26147:25:18", "nodeType": "YulIdentifier", - "src": "34732:32:18" + "src": "26147:25:18" }, - "nativeSrc": "34732:39:18", + "nativeSrc": "26147:36:18", "nodeType": "YulFunctionCall", - "src": "34732:39:18" + "src": "26147:36:18" }, "variables": [ { "name": "length", - "nativeSrc": "34722:6:18", + "nativeSrc": "26137:6:18", "nodeType": "YulTypedName", - "src": "34722:6:18", + "src": "26137:6:18", "type": "" } ] }, { - "nativeSrc": "34784:96:18", + "nativeSrc": "26192:96:18", "nodeType": "YulAssignment", - "src": "34784:96:18", + "src": "26192:96:18", "value": { "arguments": [ { "name": "pos", - "nativeSrc": "34868:3:18", + "nativeSrc": "26276:3:18", "nodeType": "YulIdentifier", - "src": "34868:3:18" + "src": "26276:3:18" }, { "name": "length", - "nativeSrc": "34873:6:18", + "nativeSrc": "26281:6:18", "nodeType": "YulIdentifier", - "src": "34873:6:18" + "src": "26281:6:18" } ], "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "34791:76:18", + "nativeSrc": "26199:76:18", "nodeType": "YulIdentifier", - "src": "34791:76:18" + "src": "26199:76:18" }, - "nativeSrc": "34791:89:18", + "nativeSrc": "26199:89:18", "nodeType": "YulFunctionCall", - "src": "34791:89:18" + "src": "26199:89:18" }, "variableNames": [ { "name": "pos", - "nativeSrc": "34784:3:18", + "nativeSrc": "26192:3:18", "nodeType": "YulIdentifier", - "src": "34784:3:18" + "src": "26192:3:18" } ] }, { - "expression": { - "arguments": [ - { - "arguments": [ + "cases": [ + { + "body": { + "nativeSrc": "26337:159:18", + "nodeType": "YulBlock", + "src": "26337:159:18", + "statements": [ { - "name": "value", - "nativeSrc": "34932:5:18", - "nodeType": "YulIdentifier", - "src": "34932:5:18" + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "26390:3:18", + "nodeType": "YulIdentifier", + "src": "26390:3:18" + }, + { + "arguments": [ + { + "name": "slotValue", + "nativeSrc": "26399:9:18", + "nodeType": "YulIdentifier", + "src": "26399:9:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "26414:4:18", + "nodeType": "YulLiteral", + "src": "26414:4:18", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "26410:3:18", + "nodeType": "YulIdentifier", + "src": "26410:3:18" + }, + "nativeSrc": "26410:9:18", + "nodeType": "YulFunctionCall", + "src": "26410:9:18" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "26395:3:18", + "nodeType": "YulIdentifier", + "src": "26395:3:18" + }, + "nativeSrc": "26395:25:18", + "nodeType": "YulFunctionCall", + "src": "26395:25:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "26383:6:18", + "nodeType": "YulIdentifier", + "src": "26383:6:18" + }, + "nativeSrc": "26383:38:18", + "nodeType": "YulFunctionCall", + "src": "26383:38:18" + }, + "nativeSrc": "26383:38:18", + "nodeType": "YulExpressionStatement", + "src": "26383:38:18" }, { - "kind": "number", - "nativeSrc": "34939:4:18", - "nodeType": "YulLiteral", - "src": "34939:4:18", - "type": "", - "value": "0x20" + "nativeSrc": "26434:52:18", + "nodeType": "YulAssignment", + "src": "26434:52:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "26445:3:18", + "nodeType": "YulIdentifier", + "src": "26445:3:18" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "26454:6:18", + "nodeType": "YulIdentifier", + "src": "26454:6:18" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "26476:6:18", + "nodeType": "YulIdentifier", + "src": "26476:6:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "26469:6:18", + "nodeType": "YulIdentifier", + "src": "26469:6:18" + }, + "nativeSrc": "26469:14:18", + "nodeType": "YulFunctionCall", + "src": "26469:14:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "26462:6:18", + "nodeType": "YulIdentifier", + "src": "26462:6:18" + }, + "nativeSrc": "26462:22:18", + "nodeType": "YulFunctionCall", + "src": "26462:22:18" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "26450:3:18", + "nodeType": "YulIdentifier", + "src": "26450:3:18" + }, + "nativeSrc": "26450:35:18", + "nodeType": "YulFunctionCall", + "src": "26450:35:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26441:3:18", + "nodeType": "YulIdentifier", + "src": "26441:3:18" + }, + "nativeSrc": "26441:45:18", + "nodeType": "YulFunctionCall", + "src": "26441:45:18" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "26434:3:18", + "nodeType": "YulIdentifier", + "src": "26434:3:18" + } + ] + } + ] + }, + "nativeSrc": "26330:166:18", + "nodeType": "YulCase", + "src": "26330:166:18", + "value": { + "kind": "number", + "nativeSrc": "26335:1:18", + "nodeType": "YulLiteral", + "src": "26335:1:18", + "type": "", + "value": "0" + } + }, + { + "body": { + "nativeSrc": "26512:334:18", + "nodeType": "YulBlock", + "src": "26512:334:18", + "statements": [ + { + "nativeSrc": "26557:53:18", + "nodeType": "YulVariableDeclaration", + "src": "26557:53:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "26604:5:18", + "nodeType": "YulIdentifier", + "src": "26604:5:18" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "26572:31:18", + "nodeType": "YulIdentifier", + "src": "26572:31:18" + }, + "nativeSrc": "26572:38:18", + "nodeType": "YulFunctionCall", + "src": "26572:38:18" + }, + "variables": [ + { + "name": "dataPos", + "nativeSrc": "26561:7:18", + "nodeType": "YulTypedName", + "src": "26561:7:18", + "type": "" + } + ] + }, + { + "nativeSrc": "26623:10:18", + "nodeType": "YulVariableDeclaration", + "src": "26623:10:18", + "value": { + "kind": "number", + "nativeSrc": "26632:1:18", + "nodeType": "YulLiteral", + "src": "26632:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "26627:1:18", + "nodeType": "YulTypedName", + "src": "26627:1:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "26690:110:18", + "nodeType": "YulBlock", + "src": "26690:110:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "26719:3:18", + "nodeType": "YulIdentifier", + "src": "26719:3:18" + }, + { + "name": "i", + "nativeSrc": "26724:1:18", + "nodeType": "YulIdentifier", + "src": "26724:1:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26715:3:18", + "nodeType": "YulIdentifier", + "src": "26715:3:18" + }, + "nativeSrc": "26715:11:18", + "nodeType": "YulFunctionCall", + "src": "26715:11:18" + }, + { + "arguments": [ + { + "name": "dataPos", + "nativeSrc": "26734:7:18", + "nodeType": "YulIdentifier", + "src": "26734:7:18" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "26728:5:18", + "nodeType": "YulIdentifier", + "src": "26728:5:18" + }, + "nativeSrc": "26728:14:18", + "nodeType": "YulFunctionCall", + "src": "26728:14:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "26708:6:18", + "nodeType": "YulIdentifier", + "src": "26708:6:18" + }, + "nativeSrc": "26708:35:18", + "nodeType": "YulFunctionCall", + "src": "26708:35:18" + }, + "nativeSrc": "26708:35:18", + "nodeType": "YulExpressionStatement", + "src": "26708:35:18" + }, + { + "nativeSrc": "26760:26:18", + "nodeType": "YulAssignment", + "src": "26760:26:18", + "value": { + "arguments": [ + { + "name": "dataPos", + "nativeSrc": "26775:7:18", + "nodeType": "YulIdentifier", + "src": "26775:7:18" + }, + { + "kind": "number", + "nativeSrc": "26784:1:18", + "nodeType": "YulLiteral", + "src": "26784:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26771:3:18", + "nodeType": "YulIdentifier", + "src": "26771:3:18" + }, + "nativeSrc": "26771:15:18", + "nodeType": "YulFunctionCall", + "src": "26771:15:18" + }, + "variableNames": [ + { + "name": "dataPos", + "nativeSrc": "26760:7:18", + "nodeType": "YulIdentifier", + "src": "26760:7:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "26657:1:18", + "nodeType": "YulIdentifier", + "src": "26657:1:18" + }, + { + "name": "length", + "nativeSrc": "26660:6:18", + "nodeType": "YulIdentifier", + "src": "26660:6:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "26654:2:18", + "nodeType": "YulIdentifier", + "src": "26654:2:18" + }, + "nativeSrc": "26654:13:18", + "nodeType": "YulFunctionCall", + "src": "26654:13:18" + }, + "nativeSrc": "26646:154:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "26668:21:18", + "nodeType": "YulBlock", + "src": "26668:21:18", + "statements": [ + { + "nativeSrc": "26670:17:18", + "nodeType": "YulAssignment", + "src": "26670:17:18", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "26679:1:18", + "nodeType": "YulIdentifier", + "src": "26679:1:18" + }, + { + "kind": "number", + "nativeSrc": "26682:4:18", + "nodeType": "YulLiteral", + "src": "26682:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26675:3:18", + "nodeType": "YulIdentifier", + "src": "26675:3:18" + }, + "nativeSrc": "26675:12:18", + "nodeType": "YulFunctionCall", + "src": "26675:12:18" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "26670:1:18", + "nodeType": "YulIdentifier", + "src": "26670:1:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "26650:3:18", + "nodeType": "YulBlock", + "src": "26650:3:18", + "statements": [] + }, + "src": "26646:154:18" + }, + { + "nativeSrc": "26813:23:18", + "nodeType": "YulAssignment", + "src": "26813:23:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "26824:3:18", + "nodeType": "YulIdentifier", + "src": "26824:3:18" + }, + { + "name": "length", + "nativeSrc": "26829:6:18", + "nodeType": "YulIdentifier", + "src": "26829:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26820:3:18", + "nodeType": "YulIdentifier", + "src": "26820:3:18" + }, + "nativeSrc": "26820:16:18", + "nodeType": "YulFunctionCall", + "src": "26820:16:18" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "26813:3:18", + "nodeType": "YulIdentifier", + "src": "26813:3:18" + } + ] } - ], - "functionName": { - "name": "add", - "nativeSrc": "34928:3:18", - "nodeType": "YulIdentifier", - "src": "34928:3:18" - }, - "nativeSrc": "34928:16:18", - "nodeType": "YulFunctionCall", - "src": "34928:16:18" - }, - { - "name": "pos", - "nativeSrc": "34946:3:18", - "nodeType": "YulIdentifier", - "src": "34946:3:18" + ] }, - { - "name": "length", - "nativeSrc": "34951:6:18", - "nodeType": "YulIdentifier", - "src": "34951:6:18" + "nativeSrc": "26505:341:18", + "nodeType": "YulCase", + "src": "26505:341:18", + "value": { + "kind": "number", + "nativeSrc": "26510:1:18", + "nodeType": "YulLiteral", + "src": "26510:1:18", + "type": "", + "value": "1" } - ], - "functionName": { - "name": "copy_memory_to_memory_with_cleanup", - "nativeSrc": "34893:34:18", - "nodeType": "YulIdentifier", - "src": "34893:34:18" - }, - "nativeSrc": "34893:65:18", - "nodeType": "YulFunctionCall", - "src": "34893:65:18" - }, - "nativeSrc": "34893:65:18", - "nodeType": "YulExpressionStatement", - "src": "34893:65:18" - }, - { - "nativeSrc": "34971:23:18", - "nodeType": "YulAssignment", - "src": "34971:23:18", - "value": { + } + ], + "expression": { "arguments": [ { - "name": "pos", - "nativeSrc": "34982:3:18", + "name": "slotValue", + "nativeSrc": "26308:9:18", "nodeType": "YulIdentifier", - "src": "34982:3:18" + "src": "26308:9:18" }, { - "name": "length", - "nativeSrc": "34987:6:18", - "nodeType": "YulIdentifier", - "src": "34987:6:18" + "kind": "number", + "nativeSrc": "26319:1:18", + "nodeType": "YulLiteral", + "src": "26319:1:18", + "type": "", + "value": "1" } ], "functionName": { - "name": "add", - "nativeSrc": "34978:3:18", + "name": "and", + "nativeSrc": "26304:3:18", "nodeType": "YulIdentifier", - "src": "34978:3:18" + "src": "26304:3:18" }, - "nativeSrc": "34978:16:18", + "nativeSrc": "26304:17:18", "nodeType": "YulFunctionCall", - "src": "34978:16:18" + "src": "26304:17:18" }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "34971:3:18", - "nodeType": "YulIdentifier", - "src": "34971:3:18" - } - ] + "nativeSrc": "26297:549:18", + "nodeType": "YulSwitch", + "src": "26297:549:18" } ] }, - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "34594:410:18", + "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "25978:874:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", - "nativeSrc": "34685:5:18", + "nativeSrc": "26066:5:18", "nodeType": "YulTypedName", - "src": "34685:5:18", + "src": "26066:5:18", "type": "" }, { "name": "pos", - "nativeSrc": "34692:3:18", - "nodeType": "YulTypedName", - "src": "34692:3:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "end", - "nativeSrc": "34700:3:18", - "nodeType": "YulTypedName", - "src": "34700:3:18", - "type": "" - } - ], - "src": "34594:410:18" - }, - { - "body": { - "nativeSrc": "35647:1056:18", - "nodeType": "YulBlock", - "src": "35647:1056:18", - "statements": [ - { - "nativeSrc": "35662:155:18", - "nodeType": "YulAssignment", - "src": "35662:155:18", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "35813:3:18", - "nodeType": "YulIdentifier", - "src": "35813:3:18" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "35669:142:18", - "nodeType": "YulIdentifier", - "src": "35669:142:18" - }, - "nativeSrc": "35669:148:18", - "nodeType": "YulFunctionCall", - "src": "35669:148:18" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "35662:3:18", - "nodeType": "YulIdentifier", - "src": "35662:3:18" - } - ] - }, - { - "nativeSrc": "35831:99:18", - "nodeType": "YulAssignment", - "src": "35831:99:18", - "value": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "35917:6:18", - "nodeType": "YulIdentifier", - "src": "35917:6:18" - }, - { - "name": "pos", - "nativeSrc": "35926:3:18", - "nodeType": "YulIdentifier", - "src": "35926:3:18" - } - ], - "functionName": { - "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "35838:78:18", - "nodeType": "YulIdentifier", - "src": "35838:78:18" - }, - "nativeSrc": "35838:92:18", - "nodeType": "YulFunctionCall", - "src": "35838:92:18" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "35831:3:18", - "nodeType": "YulIdentifier", - "src": "35831:3:18" - } - ] - }, - { - "nativeSrc": "35944:155:18", - "nodeType": "YulAssignment", - "src": "35944:155:18", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "36095:3:18", - "nodeType": "YulIdentifier", - "src": "36095:3:18" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "35951:142:18", - "nodeType": "YulIdentifier", - "src": "35951:142:18" - }, - "nativeSrc": "35951:148:18", - "nodeType": "YulFunctionCall", - "src": "35951:148:18" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "35944:3:18", - "nodeType": "YulIdentifier", - "src": "35944:3:18" - } - ] - }, - { - "nativeSrc": "36113:102:18", - "nodeType": "YulAssignment", - "src": "36113:102:18", - "value": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "36202:6:18", - "nodeType": "YulIdentifier", - "src": "36202:6:18" - }, - { - "name": "pos", - "nativeSrc": "36211:3:18", - "nodeType": "YulIdentifier", - "src": "36211:3:18" - } - ], - "functionName": { - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "36120:81:18", - "nodeType": "YulIdentifier", - "src": "36120:81:18" - }, - "nativeSrc": "36120:95:18", - "nodeType": "YulFunctionCall", - "src": "36120:95:18" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "36113:3:18", - "nodeType": "YulIdentifier", - "src": "36113:3:18" - } - ] - }, - { - "nativeSrc": "36229:155:18", - "nodeType": "YulAssignment", - "src": "36229:155:18", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "36380:3:18", - "nodeType": "YulIdentifier", - "src": "36380:3:18" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "36236:142:18", - "nodeType": "YulIdentifier", - "src": "36236:142:18" - }, - "nativeSrc": "36236:148:18", - "nodeType": "YulFunctionCall", - "src": "36236:148:18" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "36229:3:18", - "nodeType": "YulIdentifier", - "src": "36229:3:18" - } - ] - }, - { - "nativeSrc": "36398:102:18", - "nodeType": "YulAssignment", - "src": "36398:102:18", - "value": { - "arguments": [ - { - "name": "value2", - "nativeSrc": "36487:6:18", - "nodeType": "YulIdentifier", - "src": "36487:6:18" - }, - { - "name": "pos", - "nativeSrc": "36496:3:18", - "nodeType": "YulIdentifier", - "src": "36496:3:18" - } - ], - "functionName": { - "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "36405:81:18", - "nodeType": "YulIdentifier", - "src": "36405:81:18" - }, - "nativeSrc": "36405:95:18", - "nodeType": "YulFunctionCall", - "src": "36405:95:18" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "36398:3:18", - "nodeType": "YulIdentifier", - "src": "36398:3:18" - } - ] - }, - { - "nativeSrc": "36514:155:18", - "nodeType": "YulAssignment", - "src": "36514:155:18", - "value": { - "arguments": [ - { - "name": "pos", - "nativeSrc": "36665:3:18", - "nodeType": "YulIdentifier", - "src": "36665:3:18" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972_to_t_string_memory_ptr_nonPadded_inplace_fromStack", - "nativeSrc": "36521:142:18", - "nodeType": "YulIdentifier", - "src": "36521:142:18" - }, - "nativeSrc": "36521:148:18", - "nodeType": "YulFunctionCall", - "src": "36521:148:18" - }, - "variableNames": [ - { - "name": "pos", - "nativeSrc": "36514:3:18", - "nodeType": "YulIdentifier", - "src": "36514:3:18" - } - ] - }, - { - "nativeSrc": "36683:10:18", - "nodeType": "YulAssignment", - "src": "36683:10:18", - "value": { - "name": "pos", - "nativeSrc": "36690:3:18", - "nodeType": "YulIdentifier", - "src": "36690:3:18" - }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "36683:3:18", - "nodeType": "YulIdentifier", - "src": "36683:3:18" - } - ] - } - ] - }, - "name": "abi_encode_tuple_packed_t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe_t_string_storage_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_t_string_memory_ptr_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_t_string_memory_ptr_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", - "nativeSrc": "35014:1689:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "35610:3:18", - "nodeType": "YulTypedName", - "src": "35610:3:18", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "35616:6:18", - "nodeType": "YulTypedName", - "src": "35616:6:18", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "35624:6:18", - "nodeType": "YulTypedName", - "src": "35624:6:18", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "35632:6:18", + "nativeSrc": "26073:3:18", "nodeType": "YulTypedName", - "src": "35632:6:18", + "src": "26073:3:18", "type": "" } ], "returnVariables": [ { - "name": "end", - "nativeSrc": "35643:3:18", + "name": "ret", + "nativeSrc": "26081:3:18", "nodeType": "YulTypedName", - "src": "35643:3:18", + "src": "26081:3:18", "type": "" } ], - "src": "35014:1689:18" + "src": "25978:874:18" }, { "body": { - "nativeSrc": "36811:136:18", + "nativeSrc": "26964:56:18", "nodeType": "YulBlock", - "src": "36811:136:18", + "src": "26964:56:18", "statements": [ - { - "nativeSrc": "36825:26:18", - "nodeType": "YulAssignment", - "src": "36825:26:18", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "36837:9:18", - "nodeType": "YulIdentifier", - "src": "36837:9:18" - }, - { - "kind": "number", - "nativeSrc": "36848:2:18", - "nodeType": "YulLiteral", - "src": "36848:2:18", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "36833:3:18", - "nodeType": "YulIdentifier", - "src": "36833:3:18" - }, - "nativeSrc": "36833:18:18", - "nodeType": "YulFunctionCall", - "src": "36833:18:18" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "36825:4:18", - "nodeType": "YulIdentifier", - "src": "36825:4:18" - } - ] - }, { "expression": { "arguments": [ - { - "name": "value0", - "nativeSrc": "36909:6:18", - "nodeType": "YulIdentifier", - "src": "36909:6:18" - }, { "arguments": [ { - "name": "headStart", - "nativeSrc": "36922:9:18", + "name": "memPtr", + "nativeSrc": "26986:6:18", "nodeType": "YulIdentifier", - "src": "36922:9:18" + "src": "26986:6:18" }, { "kind": "number", - "nativeSrc": "36933:1:18", + "nativeSrc": "26994:1:18", "nodeType": "YulLiteral", - "src": "36933:1:18", + "src": "26994:1:18", "type": "", "value": "0" } ], "functionName": { "name": "add", - "nativeSrc": "36918:3:18", + "nativeSrc": "26982:3:18", "nodeType": "YulIdentifier", - "src": "36918:3:18" + "src": "26982:3:18" }, - "nativeSrc": "36918:17:18", + "nativeSrc": "26982:14:18", "nodeType": "YulFunctionCall", - "src": "36918:17:18" + "src": "26982:14:18" + }, + { + "hexValue": "2f6170692f76312f6e66742f", + "kind": "string", + "nativeSrc": "26998:14:18", + "nodeType": "YulLiteral", + "src": "26998:14:18", + "type": "", + "value": "/api/v1/nft/" } ], "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "36865:43:18", + "name": "mstore", + "nativeSrc": "26975:6:18", "nodeType": "YulIdentifier", - "src": "36865:43:18" + "src": "26975:6:18" }, - "nativeSrc": "36865:71:18", + "nativeSrc": "26975:38:18", "nodeType": "YulFunctionCall", - "src": "36865:71:18" + "src": "26975:38:18" }, - "nativeSrc": "36865:71:18", + "nativeSrc": "26975:38:18", "nodeType": "YulExpressionStatement", - "src": "36865:71:18" + "src": "26975:38:18" } ] }, - "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", - "nativeSrc": "36713:234:18", + "name": "store_literal_in_memory_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7", + "nativeSrc": "26858:162:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nativeSrc": "36783:9:18", - "nodeType": "YulTypedName", - "src": "36783:9:18", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "36795:6:18", - "nodeType": "YulTypedName", - "src": "36795:6:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "36806:4:18", + "name": "memPtr", + "nativeSrc": "26956:6:18", "nodeType": "YulTypedName", - "src": "36806:4:18", + "src": "26956:6:18", "type": "" } ], - "src": "36713:234:18" + "src": "26858:162:18" }, { "body": { - "nativeSrc": "36985:168:18", + "nativeSrc": "27190:238:18", "nodeType": "YulBlock", - "src": "36985:168:18", + "src": "27190:238:18", "statements": [ { - "expression": { + "nativeSrc": "27200:92:18", + "nodeType": "YulAssignment", + "src": "27200:92:18", + "value": { "arguments": [ { - "kind": "number", - "nativeSrc": "37006:1:18", - "nodeType": "YulLiteral", - "src": "37006:1:18", - "type": "", - "value": "0" + "name": "pos", + "nativeSrc": "27284:3:18", + "nodeType": "YulIdentifier", + "src": "27284:3:18" }, { "kind": "number", - "nativeSrc": "37009:77:18", + "nativeSrc": "27289:2:18", "nodeType": "YulLiteral", - "src": "37009:77:18", + "src": "27289:2:18", "type": "", - "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + "value": "12" } ], "functionName": { - "name": "mstore", - "nativeSrc": "36999:6:18", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "27207:76:18", "nodeType": "YulIdentifier", - "src": "36999:6:18" + "src": "27207:76:18" }, - "nativeSrc": "36999:88:18", + "nativeSrc": "27207:85:18", "nodeType": "YulFunctionCall", - "src": "36999:88:18" + "src": "27207:85:18" }, - "nativeSrc": "36999:88:18", - "nodeType": "YulExpressionStatement", - "src": "36999:88:18" - }, - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "37107:1:18", - "nodeType": "YulLiteral", - "src": "37107:1:18", - "type": "", - "value": "4" - }, - { - "kind": "number", - "nativeSrc": "37110:4:18", - "nodeType": "YulLiteral", - "src": "37110:4:18", - "type": "", - "value": "0x12" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "37100:6:18", + "variableNames": [ + { + "name": "pos", + "nativeSrc": "27200:3:18", "nodeType": "YulIdentifier", - "src": "37100:6:18" - }, - "nativeSrc": "37100:15:18", - "nodeType": "YulFunctionCall", - "src": "37100:15:18" - }, - "nativeSrc": "37100:15:18", - "nodeType": "YulExpressionStatement", - "src": "37100:15:18" + "src": "27200:3:18" + } + ] }, { "expression": { "arguments": [ { - "kind": "number", - "nativeSrc": "37135:1:18", - "nodeType": "YulLiteral", - "src": "37135:1:18", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "37138:4:18", - "nodeType": "YulLiteral", - "src": "37138:4:18", - "type": "", - "value": "0x24" + "name": "pos", + "nativeSrc": "27390:3:18", + "nodeType": "YulIdentifier", + "src": "27390:3:18" } ], "functionName": { - "name": "revert", - "nativeSrc": "37128:6:18", + "name": "store_literal_in_memory_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7", + "nativeSrc": "27301:88:18", "nodeType": "YulIdentifier", - "src": "37128:6:18" + "src": "27301:88:18" }, - "nativeSrc": "37128:15:18", + "nativeSrc": "27301:93:18", "nodeType": "YulFunctionCall", - "src": "37128:15:18" + "src": "27301:93:18" }, - "nativeSrc": "37128:15:18", + "nativeSrc": "27301:93:18", "nodeType": "YulExpressionStatement", - "src": "37128:15:18" - } - ] - }, - "name": "panic_error_0x12", - "nativeSrc": "36957:196:18", - "nodeType": "YulFunctionDefinition", - "src": "36957:196:18" - }, - { - "body": { - "nativeSrc": "37289:222:18", - "nodeType": "YulBlock", - "src": "37289:222:18", - "statements": [ + "src": "27301:93:18" + }, { - "nativeSrc": "37303:26:18", + "nativeSrc": "27403:19:18", "nodeType": "YulAssignment", - "src": "37303:26:18", + "src": "27403:19:18", "value": { "arguments": [ { - "name": "headStart", - "nativeSrc": "37315:9:18", + "name": "pos", + "nativeSrc": "27414:3:18", "nodeType": "YulIdentifier", - "src": "37315:9:18" + "src": "27414:3:18" }, { "kind": "number", - "nativeSrc": "37326:2:18", + "nativeSrc": "27419:2:18", "nodeType": "YulLiteral", - "src": "37326:2:18", + "src": "27419:2:18", "type": "", - "value": "64" + "value": "12" } ], "functionName": { "name": "add", - "nativeSrc": "37311:3:18", + "nativeSrc": "27410:3:18", "nodeType": "YulIdentifier", - "src": "37311:3:18" + "src": "27410:3:18" }, - "nativeSrc": "37311:18:18", + "nativeSrc": "27410:12:18", "nodeType": "YulFunctionCall", - "src": "37311:18:18" + "src": "27410:12:18" }, "variableNames": [ { - "name": "tail", - "nativeSrc": "37303:4:18", + "name": "end", + "nativeSrc": "27403:3:18", "nodeType": "YulIdentifier", - "src": "37303:4:18" + "src": "27403:3:18" } ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "37387:6:18", - "nodeType": "YulIdentifier", - "src": "37387:6:18" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "37400:9:18", - "nodeType": "YulIdentifier", - "src": "37400:9:18" - }, - { - "kind": "number", - "nativeSrc": "37411:1:18", - "nodeType": "YulLiteral", - "src": "37411:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "37396:3:18", - "nodeType": "YulIdentifier", - "src": "37396:3:18" - }, - "nativeSrc": "37396:17:18", - "nodeType": "YulFunctionCall", - "src": "37396:17:18" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "37343:43:18", - "nodeType": "YulIdentifier", - "src": "37343:43:18" - }, - "nativeSrc": "37343:71:18", - "nodeType": "YulFunctionCall", - "src": "37343:71:18" - }, - "nativeSrc": "37343:71:18", - "nodeType": "YulExpressionStatement", - "src": "37343:71:18" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "37472:6:18", - "nodeType": "YulIdentifier", - "src": "37472:6:18" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "37485:9:18", - "nodeType": "YulIdentifier", - "src": "37485:9:18" - }, - { - "kind": "number", - "nativeSrc": "37496:2:18", - "nodeType": "YulLiteral", - "src": "37496:2:18", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "37481:3:18", - "nodeType": "YulIdentifier", - "src": "37481:3:18" - }, - "nativeSrc": "37481:18:18", - "nodeType": "YulFunctionCall", - "src": "37481:18:18" - } - ], - "functionName": { - "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", - "nativeSrc": "37428:43:18", - "nodeType": "YulIdentifier", - "src": "37428:43:18" - }, - "nativeSrc": "37428:72:18", - "nodeType": "YulFunctionCall", - "src": "37428:72:18" - }, - "nativeSrc": "37428:72:18", - "nodeType": "YulExpressionStatement", - "src": "37428:72:18" } ] }, - "name": "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed", - "nativeSrc": "37163:348:18", + "name": "abi_encode_t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "27026:402:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nativeSrc": "37253:9:18", - "nodeType": "YulTypedName", - "src": "37253:9:18", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "37265:6:18", - "nodeType": "YulTypedName", - "src": "37265:6:18", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "37273:6:18", + "name": "pos", + "nativeSrc": "27178:3:18", "nodeType": "YulTypedName", - "src": "37273:6:18", + "src": "27178:3:18", "type": "" } ], "returnVariables": [ { - "name": "tail", - "nativeSrc": "37284:4:18", + "name": "end", + "nativeSrc": "27186:3:18", "nodeType": "YulTypedName", - "src": "37284:4:18", + "src": "27186:3:18", "type": "" } ], - "src": "37163:348:18" + "src": "27026:402:18" }, { "body": { - "nativeSrc": "37703:395:18", + "nativeSrc": "27544:280:18", "nodeType": "YulBlock", - "src": "37703:395:18", + "src": "27544:280:18", "statements": [ { - "nativeSrc": "37717:27:18", - "nodeType": "YulAssignment", - "src": "37717:27:18", + "nativeSrc": "27554:53:18", + "nodeType": "YulVariableDeclaration", + "src": "27554:53:18", "value": { "arguments": [ { - "name": "headStart", - "nativeSrc": "37729:9:18", + "name": "value", + "nativeSrc": "27601:5:18", "nodeType": "YulIdentifier", - "src": "37729:9:18" - }, - { - "kind": "number", - "nativeSrc": "37740:3:18", - "nodeType": "YulLiteral", - "src": "37740:3:18", - "type": "", - "value": "128" + "src": "27601:5:18" } ], "functionName": { - "name": "add", - "nativeSrc": "37725:3:18", + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "27568:32:18", "nodeType": "YulIdentifier", - "src": "37725:3:18" + "src": "27568:32:18" }, - "nativeSrc": "37725:19:18", + "nativeSrc": "27568:39:18", "nodeType": "YulFunctionCall", - "src": "37725:19:18" + "src": "27568:39:18" }, - "variableNames": [ + "variables": [ { - "name": "tail", - "nativeSrc": "37717:4:18", - "nodeType": "YulIdentifier", - "src": "37717:4:18" + "name": "length", + "nativeSrc": "27558:6:18", + "nodeType": "YulTypedName", + "src": "27558:6:18", + "type": "" } ] }, { - "expression": { + "nativeSrc": "27616:96:18", + "nodeType": "YulAssignment", + "src": "27616:96:18", + "value": { "arguments": [ { - "name": "value0", - "nativeSrc": "37802:6:18", + "name": "pos", + "nativeSrc": "27700:3:18", "nodeType": "YulIdentifier", - "src": "37802:6:18" + "src": "27700:3:18" }, { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "37815:9:18", - "nodeType": "YulIdentifier", - "src": "37815:9:18" - }, - { - "kind": "number", - "nativeSrc": "37826:1:18", - "nodeType": "YulLiteral", - "src": "37826:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "37811:3:18", - "nodeType": "YulIdentifier", - "src": "37811:3:18" - }, - "nativeSrc": "37811:17:18", - "nodeType": "YulFunctionCall", - "src": "37811:17:18" + "name": "length", + "nativeSrc": "27705:6:18", + "nodeType": "YulIdentifier", + "src": "27705:6:18" } ], "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "37758:43:18", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "27623:76:18", "nodeType": "YulIdentifier", - "src": "37758:43:18" + "src": "27623:76:18" }, - "nativeSrc": "37758:71:18", + "nativeSrc": "27623:89:18", "nodeType": "YulFunctionCall", - "src": "37758:71:18" + "src": "27623:89:18" }, - "nativeSrc": "37758:71:18", - "nodeType": "YulExpressionStatement", - "src": "37758:71:18" + "variableNames": [ + { + "name": "pos", + "nativeSrc": "27616:3:18", + "nodeType": "YulIdentifier", + "src": "27616:3:18" + } + ] }, { "expression": { "arguments": [ - { - "name": "value1", - "nativeSrc": "37887:6:18", - "nodeType": "YulIdentifier", - "src": "37887:6:18" - }, { "arguments": [ { - "name": "headStart", - "nativeSrc": "37900:9:18", + "name": "value", + "nativeSrc": "27760:5:18", "nodeType": "YulIdentifier", - "src": "37900:9:18" + "src": "27760:5:18" }, { "kind": "number", - "nativeSrc": "37911:2:18", + "nativeSrc": "27767:4:18", "nodeType": "YulLiteral", - "src": "37911:2:18", + "src": "27767:4:18", "type": "", - "value": "32" + "value": "0x20" } ], "functionName": { "name": "add", - "nativeSrc": "37896:3:18", + "nativeSrc": "27756:3:18", "nodeType": "YulIdentifier", - "src": "37896:3:18" + "src": "27756:3:18" }, - "nativeSrc": "37896:18:18", + "nativeSrc": "27756:16:18", "nodeType": "YulFunctionCall", - "src": "37896:18:18" + "src": "27756:16:18" + }, + { + "name": "pos", + "nativeSrc": "27774:3:18", + "nodeType": "YulIdentifier", + "src": "27774:3:18" + }, + { + "name": "length", + "nativeSrc": "27779:6:18", + "nodeType": "YulIdentifier", + "src": "27779:6:18" } ], "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "37843:43:18", + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "27721:34:18", "nodeType": "YulIdentifier", - "src": "37843:43:18" + "src": "27721:34:18" }, - "nativeSrc": "37843:72:18", + "nativeSrc": "27721:65:18", "nodeType": "YulFunctionCall", - "src": "37843:72:18" + "src": "27721:65:18" }, - "nativeSrc": "37843:72:18", + "nativeSrc": "27721:65:18", "nodeType": "YulExpressionStatement", - "src": "37843:72:18" + "src": "27721:65:18" }, { - "expression": { + "nativeSrc": "27795:23:18", + "nodeType": "YulAssignment", + "src": "27795:23:18", + "value": { "arguments": [ { - "name": "value2", - "nativeSrc": "37973:6:18", + "name": "pos", + "nativeSrc": "27806:3:18", "nodeType": "YulIdentifier", - "src": "37973:6:18" + "src": "27806:3:18" }, { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "37986:9:18", - "nodeType": "YulIdentifier", - "src": "37986:9:18" - }, - { - "kind": "number", - "nativeSrc": "37997:2:18", - "nodeType": "YulLiteral", - "src": "37997:2:18", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "37982:3:18", - "nodeType": "YulIdentifier", - "src": "37982:3:18" - }, - "nativeSrc": "37982:18:18", - "nodeType": "YulFunctionCall", - "src": "37982:18:18" + "name": "length", + "nativeSrc": "27811:6:18", + "nodeType": "YulIdentifier", + "src": "27811:6:18" } ], "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "37929:43:18", + "name": "add", + "nativeSrc": "27802:3:18", "nodeType": "YulIdentifier", - "src": "37929:43:18" + "src": "27802:3:18" }, - "nativeSrc": "37929:72:18", + "nativeSrc": "27802:16:18", "nodeType": "YulFunctionCall", - "src": "37929:72:18" + "src": "27802:16:18" }, - "nativeSrc": "37929:72:18", - "nodeType": "YulExpressionStatement", - "src": "37929:72:18" - }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "27795:3:18", + "nodeType": "YulIdentifier", + "src": "27795:3:18" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "27434:390:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "27525:5:18", + "nodeType": "YulTypedName", + "src": "27525:5:18", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "27532:3:18", + "nodeType": "YulTypedName", + "src": "27532:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "27540:3:18", + "nodeType": "YulTypedName", + "src": "27540:3:18", + "type": "" + } + ], + "src": "27434:390:18" + }, + { + "body": { + "nativeSrc": "27936:45:18", + "nodeType": "YulBlock", + "src": "27936:45:18", + "statements": [ { "expression": { "arguments": [ - { - "name": "value3", - "nativeSrc": "38059:6:18", - "nodeType": "YulIdentifier", - "src": "38059:6:18" - }, { "arguments": [ { - "name": "headStart", - "nativeSrc": "38072:9:18", + "name": "memPtr", + "nativeSrc": "27958:6:18", "nodeType": "YulIdentifier", - "src": "38072:9:18" + "src": "27958:6:18" }, { "kind": "number", - "nativeSrc": "38083:2:18", + "nativeSrc": "27966:1:18", "nodeType": "YulLiteral", - "src": "38083:2:18", + "src": "27966:1:18", "type": "", - "value": "96" + "value": "0" } ], "functionName": { "name": "add", - "nativeSrc": "38068:3:18", + "nativeSrc": "27954:3:18", "nodeType": "YulIdentifier", - "src": "38068:3:18" + "src": "27954:3:18" }, - "nativeSrc": "38068:18:18", + "nativeSrc": "27954:14:18", "nodeType": "YulFunctionCall", - "src": "38068:18:18" + "src": "27954:14:18" + }, + { + "hexValue": "2f", + "kind": "string", + "nativeSrc": "27970:3:18", + "nodeType": "YulLiteral", + "src": "27970:3:18", + "type": "", + "value": "/" } ], "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "38015:43:18", + "name": "mstore", + "nativeSrc": "27947:6:18", "nodeType": "YulIdentifier", - "src": "38015:43:18" + "src": "27947:6:18" }, - "nativeSrc": "38015:72:18", + "nativeSrc": "27947:27:18", "nodeType": "YulFunctionCall", - "src": "38015:72:18" + "src": "27947:27:18" }, - "nativeSrc": "38015:72:18", + "nativeSrc": "27947:27:18", "nodeType": "YulExpressionStatement", - "src": "38015:72:18" + "src": "27947:27:18" } ] }, - "name": "abi_encode_tuple_t_address_t_uint256_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256__fromStack_reversed", - "nativeSrc": "37521:577:18", + "name": "store_literal_in_memory_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527", + "nativeSrc": "27830:151:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nativeSrc": "37651:9:18", - "nodeType": "YulTypedName", - "src": "37651:9:18", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "37663:6:18", - "nodeType": "YulTypedName", - "src": "37663:6:18", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "37671:6:18", - "nodeType": "YulTypedName", - "src": "37671:6:18", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "37679:6:18", - "nodeType": "YulTypedName", - "src": "37679:6:18", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "37687:6:18", - "nodeType": "YulTypedName", - "src": "37687:6:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "37698:4:18", + "name": "memPtr", + "nativeSrc": "27928:6:18", "nodeType": "YulTypedName", - "src": "37698:4:18", + "src": "27928:6:18", "type": "" } ], - "src": "37521:577:18" + "src": "27830:151:18" }, { "body": { - "nativeSrc": "38152:167:18", + "nativeSrc": "28151:236:18", "nodeType": "YulBlock", - "src": "38152:167:18", + "src": "28151:236:18", "statements": [ { - "nativeSrc": "38166:25:18", + "nativeSrc": "28161:91:18", "nodeType": "YulAssignment", - "src": "38166:25:18", + "src": "28161:91:18", "value": { "arguments": [ { - "name": "x", - "nativeSrc": "38189:1:18", + "name": "pos", + "nativeSrc": "28245:3:18", "nodeType": "YulIdentifier", - "src": "38189:1:18" + "src": "28245:3:18" + }, + { + "kind": "number", + "nativeSrc": "28250:1:18", + "nodeType": "YulLiteral", + "src": "28250:1:18", + "type": "", + "value": "1" } ], "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "38171:17:18", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "28168:76:18", "nodeType": "YulIdentifier", - "src": "38171:17:18" + "src": "28168:76:18" }, - "nativeSrc": "38171:20:18", + "nativeSrc": "28168:84:18", "nodeType": "YulFunctionCall", - "src": "38171:20:18" + "src": "28168:84:18" }, "variableNames": [ { - "name": "x", - "nativeSrc": "38166:1:18", + "name": "pos", + "nativeSrc": "28161:3:18", "nodeType": "YulIdentifier", - "src": "38166:1:18" + "src": "28161:3:18" } ] }, { - "nativeSrc": "38204:25:18", - "nodeType": "YulAssignment", - "src": "38204:25:18", - "value": { + "expression": { "arguments": [ { - "name": "y", - "nativeSrc": "38227:1:18", + "name": "pos", + "nativeSrc": "28350:3:18", "nodeType": "YulIdentifier", - "src": "38227:1:18" + "src": "28350:3:18" } ], "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "38209:17:18", + "name": "store_literal_in_memory_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527", + "nativeSrc": "28261:88:18", "nodeType": "YulIdentifier", - "src": "38209:17:18" + "src": "28261:88:18" }, - "nativeSrc": "38209:20:18", + "nativeSrc": "28261:93:18", "nodeType": "YulFunctionCall", - "src": "38209:20:18" + "src": "28261:93:18" }, - "variableNames": [ - { - "name": "y", - "nativeSrc": "38204:1:18", - "nodeType": "YulIdentifier", - "src": "38204:1:18" - } - ] + "nativeSrc": "28261:93:18", + "nodeType": "YulExpressionStatement", + "src": "28261:93:18" }, { - "nativeSrc": "38242:16:18", + "nativeSrc": "28363:18:18", "nodeType": "YulAssignment", - "src": "38242:16:18", + "src": "28363:18:18", "value": { "arguments": [ { - "name": "x", - "nativeSrc": "38253:1:18", + "name": "pos", + "nativeSrc": "28374:3:18", "nodeType": "YulIdentifier", - "src": "38253:1:18" + "src": "28374:3:18" }, { - "name": "y", - "nativeSrc": "38256:1:18", - "nodeType": "YulIdentifier", - "src": "38256:1:18" + "kind": "number", + "nativeSrc": "28379:1:18", + "nodeType": "YulLiteral", + "src": "28379:1:18", + "type": "", + "value": "1" } ], "functionName": { "name": "add", - "nativeSrc": "38249:3:18", + "nativeSrc": "28370:3:18", "nodeType": "YulIdentifier", - "src": "38249:3:18" + "src": "28370:3:18" }, - "nativeSrc": "38249:9:18", + "nativeSrc": "28370:11:18", "nodeType": "YulFunctionCall", - "src": "38249:9:18" + "src": "28370:11:18" }, "variableNames": [ { - "name": "sum", - "nativeSrc": "38242:3:18", + "name": "end", + "nativeSrc": "28363:3:18", "nodeType": "YulIdentifier", - "src": "38242:3:18" + "src": "28363:3:18" } ] - }, - { - "body": { - "nativeSrc": "38286:22:18", - "nodeType": "YulBlock", - "src": "38286:22:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "panic_error_0x11", - "nativeSrc": "38288:16:18", - "nodeType": "YulIdentifier", - "src": "38288:16:18" - }, - "nativeSrc": "38288:18:18", - "nodeType": "YulFunctionCall", - "src": "38288:18:18" - }, - "nativeSrc": "38288:18:18", - "nodeType": "YulExpressionStatement", - "src": "38288:18:18" - } - ] - }, - "condition": { - "arguments": [ - { - "name": "x", - "nativeSrc": "38278:1:18", - "nodeType": "YulIdentifier", - "src": "38278:1:18" - }, - { - "name": "sum", - "nativeSrc": "38281:3:18", - "nodeType": "YulIdentifier", - "src": "38281:3:18" - } - ], - "functionName": { - "name": "gt", - "nativeSrc": "38275:2:18", - "nodeType": "YulIdentifier", - "src": "38275:2:18" - }, - "nativeSrc": "38275:10:18", - "nodeType": "YulFunctionCall", - "src": "38275:10:18" - }, - "nativeSrc": "38272:36:18", - "nodeType": "YulIf", - "src": "38272:36:18" } ] }, - "name": "checked_add_t_uint256", - "nativeSrc": "38108:211:18", + "name": "abi_encode_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "27987:400:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "x", - "nativeSrc": "38139:1:18", - "nodeType": "YulTypedName", - "src": "38139:1:18", - "type": "" - }, - { - "name": "y", - "nativeSrc": "38142:1:18", + "name": "pos", + "nativeSrc": "28139:3:18", "nodeType": "YulTypedName", - "src": "38142:1:18", + "src": "28139:3:18", "type": "" } ], "returnVariables": [ { - "name": "sum", - "nativeSrc": "38148:3:18", + "name": "end", + "nativeSrc": "28147:3:18", "nodeType": "YulTypedName", - "src": "38148:3:18", + "src": "28147:3:18", "type": "" } ], - "src": "38108:211:18" + "src": "27987:400:18" }, { "body": { - "nativeSrc": "38555:432:18", + "nativeSrc": "28499:61:18", "nodeType": "YulBlock", - "src": "38555:432:18", + "src": "28499:61:18", "statements": [ - { - "nativeSrc": "38569:26:18", - "nodeType": "YulAssignment", - "src": "38569:26:18", - "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "38581:9:18", - "nodeType": "YulIdentifier", - "src": "38581:9:18" - }, - { - "kind": "number", - "nativeSrc": "38592:2:18", - "nodeType": "YulLiteral", - "src": "38592:2:18", - "type": "", - "value": "64" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "38577:3:18", - "nodeType": "YulIdentifier", - "src": "38577:3:18" - }, - "nativeSrc": "38577:18:18", - "nodeType": "YulFunctionCall", - "src": "38577:18:18" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "38569:4:18", - "nodeType": "YulIdentifier", - "src": "38569:4:18" - } - ] - }, { "expression": { "arguments": [ { "arguments": [ { - "name": "headStart", - "nativeSrc": "38620:9:18", + "name": "memPtr", + "nativeSrc": "28521:6:18", "nodeType": "YulIdentifier", - "src": "38620:9:18" + "src": "28521:6:18" }, { "kind": "number", - "nativeSrc": "38631:1:18", + "nativeSrc": "28529:1:18", "nodeType": "YulLiteral", - "src": "38631:1:18", + "src": "28529:1:18", "type": "", "value": "0" } ], "functionName": { "name": "add", - "nativeSrc": "38616:3:18", + "nativeSrc": "28517:3:18", "nodeType": "YulIdentifier", - "src": "38616:3:18" + "src": "28517:3:18" }, - "nativeSrc": "38616:17:18", + "nativeSrc": "28517:14:18", "nodeType": "YulFunctionCall", - "src": "38616:17:18" + "src": "28517:14:18" }, { - "arguments": [ - { - "name": "tail", - "nativeSrc": "38639:4:18", - "nodeType": "YulIdentifier", - "src": "38639:4:18" - }, - { - "name": "headStart", - "nativeSrc": "38645:9:18", - "nodeType": "YulIdentifier", - "src": "38645:9:18" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "38635:3:18", - "nodeType": "YulIdentifier", - "src": "38635:3:18" - }, - "nativeSrc": "38635:20:18", - "nodeType": "YulFunctionCall", - "src": "38635:20:18" + "hexValue": "2f72657075746174696f6e2d73636f7265", + "kind": "string", + "nativeSrc": "28533:19:18", + "nodeType": "YulLiteral", + "src": "28533:19:18", + "type": "", + "value": "/reputation-score" } ], "functionName": { "name": "mstore", - "nativeSrc": "38609:6:18", + "nativeSrc": "28510:6:18", "nodeType": "YulIdentifier", - "src": "38609:6:18" + "src": "28510:6:18" }, - "nativeSrc": "38609:47:18", + "nativeSrc": "28510:43:18", "nodeType": "YulFunctionCall", - "src": "38609:47:18" + "src": "28510:43:18" }, - "nativeSrc": "38609:47:18", + "nativeSrc": "28510:43:18", "nodeType": "YulExpressionStatement", - "src": "38609:47:18" - }, + "src": "28510:43:18" + } + ] + }, + "name": "store_literal_in_memory_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55", + "nativeSrc": "28393:167:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nativeSrc": "28491:6:18", + "nodeType": "YulTypedName", + "src": "28491:6:18", + "type": "" + } + ], + "src": "28393:167:18" + }, + { + "body": { + "nativeSrc": "28730:238:18", + "nodeType": "YulBlock", + "src": "28730:238:18", + "statements": [ { - "nativeSrc": "38669:116:18", + "nativeSrc": "28740:92:18", "nodeType": "YulAssignment", - "src": "38669:116:18", + "src": "28740:92:18", "value": { "arguments": [ { - "name": "value0", - "nativeSrc": "38771:6:18", + "name": "pos", + "nativeSrc": "28824:3:18", "nodeType": "YulIdentifier", - "src": "38771:6:18" + "src": "28824:3:18" }, { - "name": "tail", - "nativeSrc": "38780:4:18", - "nodeType": "YulIdentifier", - "src": "38780:4:18" + "kind": "number", + "nativeSrc": "28829:2:18", + "nodeType": "YulLiteral", + "src": "28829:2:18", + "type": "", + "value": "17" } ], "functionName": { - "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", - "nativeSrc": "38677:93:18", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "28747:76:18", "nodeType": "YulIdentifier", - "src": "38677:93:18" + "src": "28747:76:18" }, - "nativeSrc": "38677:108:18", + "nativeSrc": "28747:85:18", "nodeType": "YulFunctionCall", - "src": "38677:108:18" + "src": "28747:85:18" }, "variableNames": [ { - "name": "tail", - "nativeSrc": "38669:4:18", + "name": "pos", + "nativeSrc": "28740:3:18", "nodeType": "YulIdentifier", - "src": "38669:4:18" + "src": "28740:3:18" } ] }, @@ -81560,786 +81242,1175 @@ "expression": { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "38810:9:18", - "nodeType": "YulIdentifier", - "src": "38810:9:18" - }, - { - "kind": "number", - "nativeSrc": "38821:2:18", - "nodeType": "YulLiteral", - "src": "38821:2:18", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "38806:3:18", - "nodeType": "YulIdentifier", - "src": "38806:3:18" - }, - "nativeSrc": "38806:18:18", - "nodeType": "YulFunctionCall", - "src": "38806:18:18" - }, - { - "arguments": [ - { - "name": "tail", - "nativeSrc": "38830:4:18", - "nodeType": "YulIdentifier", - "src": "38830:4:18" - }, - { - "name": "headStart", - "nativeSrc": "38836:9:18", - "nodeType": "YulIdentifier", - "src": "38836:9:18" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "38826:3:18", - "nodeType": "YulIdentifier", - "src": "38826:3:18" - }, - "nativeSrc": "38826:20:18", - "nodeType": "YulFunctionCall", - "src": "38826:20:18" + "name": "pos", + "nativeSrc": "28930:3:18", + "nodeType": "YulIdentifier", + "src": "28930:3:18" } ], "functionName": { - "name": "mstore", - "nativeSrc": "38799:6:18", + "name": "store_literal_in_memory_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55", + "nativeSrc": "28841:88:18", "nodeType": "YulIdentifier", - "src": "38799:6:18" + "src": "28841:88:18" }, - "nativeSrc": "38799:48:18", + "nativeSrc": "28841:93:18", "nodeType": "YulFunctionCall", - "src": "38799:48:18" + "src": "28841:93:18" }, - "nativeSrc": "38799:48:18", + "nativeSrc": "28841:93:18", "nodeType": "YulExpressionStatement", - "src": "38799:48:18" + "src": "28841:93:18" }, { - "nativeSrc": "38860:116:18", + "nativeSrc": "28943:19:18", "nodeType": "YulAssignment", - "src": "38860:116:18", + "src": "28943:19:18", "value": { "arguments": [ { - "name": "value1", - "nativeSrc": "38962:6:18", + "name": "pos", + "nativeSrc": "28954:3:18", "nodeType": "YulIdentifier", - "src": "38962:6:18" + "src": "28954:3:18" }, { - "name": "tail", - "nativeSrc": "38971:4:18", - "nodeType": "YulIdentifier", - "src": "38971:4:18" + "kind": "number", + "nativeSrc": "28959:2:18", + "nodeType": "YulLiteral", + "src": "28959:2:18", + "type": "", + "value": "17" } ], "functionName": { - "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", - "nativeSrc": "38868:93:18", + "name": "add", + "nativeSrc": "28950:3:18", "nodeType": "YulIdentifier", - "src": "38868:93:18" + "src": "28950:3:18" }, - "nativeSrc": "38868:108:18", + "nativeSrc": "28950:12:18", "nodeType": "YulFunctionCall", - "src": "38868:108:18" + "src": "28950:12:18" }, "variableNames": [ { - "name": "tail", - "nativeSrc": "38860:4:18", + "name": "end", + "nativeSrc": "28943:3:18", "nodeType": "YulIdentifier", - "src": "38860:4:18" + "src": "28943:3:18" } ] } ] }, - "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", - "nativeSrc": "38329:658:18", + "name": "abi_encode_t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "28566:402:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nativeSrc": "38519:9:18", - "nodeType": "YulTypedName", - "src": "38519:9:18", - "type": "" - }, - { - "name": "value1", - "nativeSrc": "38531:6:18", - "nodeType": "YulTypedName", - "src": "38531:6:18", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "38539:6:18", + "name": "pos", + "nativeSrc": "28718:3:18", "nodeType": "YulTypedName", - "src": "38539:6:18", + "src": "28718:3:18", "type": "" } ], "returnVariables": [ { - "name": "tail", - "nativeSrc": "38550:4:18", + "name": "end", + "nativeSrc": "28726:3:18", "nodeType": "YulTypedName", - "src": "38550:4:18", + "src": "28726:3:18", "type": "" } ], - "src": "38329:658:18" + "src": "28566:402:18" }, { "body": { - "nativeSrc": "39055:48:18", + "nativeSrc": "29506:855:18", "nodeType": "YulBlock", - "src": "39055:48:18", + "src": "29506:855:18", "statements": [ { - "nativeSrc": "39070:22:18", + "nativeSrc": "29517:99:18", "nodeType": "YulAssignment", - "src": "39070:22:18", + "src": "29517:99:18", "value": { "arguments": [ { - "name": "value", - "nativeSrc": "39086:5:18", + "name": "value0", + "nativeSrc": "29603:6:18", + "nodeType": "YulIdentifier", + "src": "29603:6:18" + }, + { + "name": "pos", + "nativeSrc": "29612:3:18", "nodeType": "YulIdentifier", - "src": "39086:5:18" + "src": "29612:3:18" } ], "functionName": { - "name": "mload", - "nativeSrc": "39080:5:18", + "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "29524:78:18", "nodeType": "YulIdentifier", - "src": "39080:5:18" + "src": "29524:78:18" }, - "nativeSrc": "39080:12:18", + "nativeSrc": "29524:92:18", "nodeType": "YulFunctionCall", - "src": "39080:12:18" + "src": "29524:92:18" }, "variableNames": [ { - "name": "length", - "nativeSrc": "39070:6:18", + "name": "pos", + "nativeSrc": "29517:3:18", "nodeType": "YulIdentifier", - "src": "39070:6:18" + "src": "29517:3:18" } ] - } - ] - }, - "name": "array_length_t_bytes_memory_ptr", - "nativeSrc": "38997:106:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "39038:5:18", - "nodeType": "YulTypedName", - "src": "39038:5:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "length", - "nativeSrc": "39048:6:18", - "nodeType": "YulTypedName", - "src": "39048:6:18", - "type": "" - } - ], - "src": "38997:106:18" - }, - { - "body": { - "nativeSrc": "39208:85:18", - "nodeType": "YulBlock", - "src": "39208:85:18", - "statements": [ + }, { - "expression": { + "nativeSrc": "29626:155:18", + "nodeType": "YulAssignment", + "src": "29626:155:18", + "value": { "arguments": [ { "name": "pos", - "nativeSrc": "39229:3:18", + "nativeSrc": "29777:3:18", + "nodeType": "YulIdentifier", + "src": "29777:3:18" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "29633:142:18", + "nodeType": "YulIdentifier", + "src": "29633:142:18" + }, + "nativeSrc": "29633:148:18", + "nodeType": "YulFunctionCall", + "src": "29633:148:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "29626:3:18", + "nodeType": "YulIdentifier", + "src": "29626:3:18" + } + ] + }, + { + "nativeSrc": "29791:102:18", + "nodeType": "YulAssignment", + "src": "29791:102:18", + "value": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "29880:6:18", "nodeType": "YulIdentifier", - "src": "39229:3:18" + "src": "29880:6:18" }, { - "name": "length", - "nativeSrc": "39234:6:18", + "name": "pos", + "nativeSrc": "29889:3:18", "nodeType": "YulIdentifier", - "src": "39234:6:18" + "src": "29889:3:18" } ], "functionName": { - "name": "mstore", - "nativeSrc": "39222:6:18", + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "29798:81:18", "nodeType": "YulIdentifier", - "src": "39222:6:18" + "src": "29798:81:18" }, - "nativeSrc": "39222:19:18", + "nativeSrc": "29798:95:18", "nodeType": "YulFunctionCall", - "src": "39222:19:18" + "src": "29798:95:18" }, - "nativeSrc": "39222:19:18", - "nodeType": "YulExpressionStatement", - "src": "39222:19:18" + "variableNames": [ + { + "name": "pos", + "nativeSrc": "29791:3:18", + "nodeType": "YulIdentifier", + "src": "29791:3:18" + } + ] }, { - "nativeSrc": "39254:29:18", + "nativeSrc": "29903:155:18", "nodeType": "YulAssignment", - "src": "39254:29:18", + "src": "29903:155:18", "value": { "arguments": [ { "name": "pos", - "nativeSrc": "39273:3:18", + "nativeSrc": "30054:3:18", + "nodeType": "YulIdentifier", + "src": "30054:3:18" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "29910:142:18", + "nodeType": "YulIdentifier", + "src": "29910:142:18" + }, + "nativeSrc": "29910:148:18", + "nodeType": "YulFunctionCall", + "src": "29910:148:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "29903:3:18", + "nodeType": "YulIdentifier", + "src": "29903:3:18" + } + ] + }, + { + "nativeSrc": "30068:102:18", + "nodeType": "YulAssignment", + "src": "30068:102:18", + "value": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "30157:6:18", "nodeType": "YulIdentifier", - "src": "39273:3:18" + "src": "30157:6:18" }, { - "kind": "number", - "nativeSrc": "39278:4:18", - "nodeType": "YulLiteral", - "src": "39278:4:18", - "type": "", - "value": "0x20" + "name": "pos", + "nativeSrc": "30166:3:18", + "nodeType": "YulIdentifier", + "src": "30166:3:18" } ], "functionName": { - "name": "add", - "nativeSrc": "39269:3:18", + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "30075:81:18", + "nodeType": "YulIdentifier", + "src": "30075:81:18" + }, + "nativeSrc": "30075:95:18", + "nodeType": "YulFunctionCall", + "src": "30075:95:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "30068:3:18", + "nodeType": "YulIdentifier", + "src": "30068:3:18" + } + ] + }, + { + "nativeSrc": "30180:155:18", + "nodeType": "YulAssignment", + "src": "30180:155:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "30331:3:18", + "nodeType": "YulIdentifier", + "src": "30331:3:18" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nativeSrc": "30187:142:18", "nodeType": "YulIdentifier", - "src": "39269:3:18" + "src": "30187:142:18" }, - "nativeSrc": "39269:14:18", + "nativeSrc": "30187:148:18", "nodeType": "YulFunctionCall", - "src": "39269:14:18" + "src": "30187:148:18" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "30180:3:18", + "nodeType": "YulIdentifier", + "src": "30180:3:18" + } + ] + }, + { + "nativeSrc": "30345:10:18", + "nodeType": "YulAssignment", + "src": "30345:10:18", + "value": { + "name": "pos", + "nativeSrc": "30352:3:18", + "nodeType": "YulIdentifier", + "src": "30352:3:18" }, "variableNames": [ { - "name": "updated_pos", - "nativeSrc": "39254:11:18", + "name": "end", + "nativeSrc": "30345:3:18", "nodeType": "YulIdentifier", - "src": "39254:11:18" + "src": "30345:3:18" } ] } ] }, - "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", - "nativeSrc": "39113:180:18", + "name": "abi_encode_tuple_packed_t_string_storage_t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7_t_string_memory_ptr_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_t_string_memory_ptr_t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "28974:1387:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", - "nativeSrc": "39180:3:18", + "nativeSrc": "29469:3:18", "nodeType": "YulTypedName", - "src": "39180:3:18", + "src": "29469:3:18", "type": "" }, { - "name": "length", - "nativeSrc": "39185:6:18", + "name": "value2", + "nativeSrc": "29475:6:18", + "nodeType": "YulTypedName", + "src": "29475:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "29483:6:18", + "nodeType": "YulTypedName", + "src": "29483:6:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "29491:6:18", "nodeType": "YulTypedName", - "src": "39185:6:18", + "src": "29491:6:18", "type": "" } ], "returnVariables": [ { - "name": "updated_pos", - "nativeSrc": "39196:11:18", + "name": "end", + "nativeSrc": "29502:3:18", "nodeType": "YulTypedName", - "src": "39196:11:18", + "src": "29502:3:18", "type": "" } ], - "src": "39113:180:18" + "src": "28974:1387:18" }, { "body": { - "nativeSrc": "39393:303:18", + "nativeSrc": "30480:742:18", "nodeType": "YulBlock", - "src": "39393:303:18", + "src": "30480:742:18", "statements": [ { - "nativeSrc": "39407:52:18", + "nativeSrc": "30490:29:18", "nodeType": "YulVariableDeclaration", - "src": "39407:52:18", + "src": "30490:29:18", "value": { "arguments": [ { "name": "value", - "nativeSrc": "39453:5:18", + "nativeSrc": "30513:5:18", "nodeType": "YulIdentifier", - "src": "39453:5:18" + "src": "30513:5:18" } ], "functionName": { - "name": "array_length_t_bytes_memory_ptr", - "nativeSrc": "39421:31:18", + "name": "sload", + "nativeSrc": "30507:5:18", "nodeType": "YulIdentifier", - "src": "39421:31:18" + "src": "30507:5:18" }, - "nativeSrc": "39421:38:18", + "nativeSrc": "30507:12:18", "nodeType": "YulFunctionCall", - "src": "39421:38:18" + "src": "30507:12:18" }, "variables": [ { - "name": "length", - "nativeSrc": "39411:6:18", + "name": "slotValue", + "nativeSrc": "30494:9:18", "nodeType": "YulTypedName", - "src": "39411:6:18", + "src": "30494:9:18", "type": "" } ] }, { - "nativeSrc": "39472:77:18", - "nodeType": "YulAssignment", - "src": "39472:77:18", + "nativeSrc": "30528:50:18", + "nodeType": "YulVariableDeclaration", + "src": "30528:50:18", "value": { "arguments": [ { - "name": "pos", - "nativeSrc": "39537:3:18", - "nodeType": "YulIdentifier", - "src": "39537:3:18" - }, - { - "name": "length", - "nativeSrc": "39542:6:18", + "name": "slotValue", + "nativeSrc": "30568:9:18", "nodeType": "YulIdentifier", - "src": "39542:6:18" + "src": "30568:9:18" } ], "functionName": { - "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", - "nativeSrc": "39479:57:18", + "name": "extract_byte_array_length", + "nativeSrc": "30542:25:18", "nodeType": "YulIdentifier", - "src": "39479:57:18" + "src": "30542:25:18" }, - "nativeSrc": "39479:70:18", + "nativeSrc": "30542:36:18", "nodeType": "YulFunctionCall", - "src": "39479:70:18" + "src": "30542:36:18" }, - "variableNames": [ + "variables": [ { - "name": "pos", - "nativeSrc": "39472:3:18", - "nodeType": "YulIdentifier", - "src": "39472:3:18" + "name": "length", + "nativeSrc": "30532:6:18", + "nodeType": "YulTypedName", + "src": "30532:6:18", + "type": "" } ] }, { - "expression": { + "nativeSrc": "30587:78:18", + "nodeType": "YulAssignment", + "src": "30587:78:18", + "value": { "arguments": [ - { - "arguments": [ - { - "name": "value", - "nativeSrc": "39601:5:18", - "nodeType": "YulIdentifier", - "src": "39601:5:18" - }, - { - "kind": "number", - "nativeSrc": "39608:4:18", - "nodeType": "YulLiteral", - "src": "39608:4:18", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "39597:3:18", - "nodeType": "YulIdentifier", - "src": "39597:3:18" - }, - "nativeSrc": "39597:16:18", - "nodeType": "YulFunctionCall", - "src": "39597:16:18" - }, { "name": "pos", - "nativeSrc": "39615:3:18", + "nativeSrc": "30653:3:18", "nodeType": "YulIdentifier", - "src": "39615:3:18" + "src": "30653:3:18" }, { "name": "length", - "nativeSrc": "39620:6:18", + "nativeSrc": "30658:6:18", "nodeType": "YulIdentifier", - "src": "39620:6:18" + "src": "30658:6:18" } ], "functionName": { - "name": "copy_memory_to_memory_with_cleanup", - "nativeSrc": "39562:34:18", + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nativeSrc": "30594:58:18", "nodeType": "YulIdentifier", - "src": "39562:34:18" + "src": "30594:58:18" }, - "nativeSrc": "39562:65:18", + "nativeSrc": "30594:71:18", "nodeType": "YulFunctionCall", - "src": "39562:65:18" + "src": "30594:71:18" }, - "nativeSrc": "39562:65:18", - "nodeType": "YulExpressionStatement", - "src": "39562:65:18" + "variableNames": [ + { + "name": "pos", + "nativeSrc": "30587:3:18", + "nodeType": "YulIdentifier", + "src": "30587:3:18" + } + ] }, { - "nativeSrc": "39640:46:18", - "nodeType": "YulAssignment", - "src": "39640:46:18", - "value": { + "cases": [ + { + "body": { + "nativeSrc": "30714:157:18", + "nodeType": "YulBlock", + "src": "30714:157:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "30767:3:18", + "nodeType": "YulIdentifier", + "src": "30767:3:18" + }, + { + "arguments": [ + { + "name": "slotValue", + "nativeSrc": "30776:9:18", + "nodeType": "YulIdentifier", + "src": "30776:9:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "30791:4:18", + "nodeType": "YulLiteral", + "src": "30791:4:18", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "30787:3:18", + "nodeType": "YulIdentifier", + "src": "30787:3:18" + }, + "nativeSrc": "30787:9:18", + "nodeType": "YulFunctionCall", + "src": "30787:9:18" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "30772:3:18", + "nodeType": "YulIdentifier", + "src": "30772:3:18" + }, + "nativeSrc": "30772:25:18", + "nodeType": "YulFunctionCall", + "src": "30772:25:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "30760:6:18", + "nodeType": "YulIdentifier", + "src": "30760:6:18" + }, + "nativeSrc": "30760:38:18", + "nodeType": "YulFunctionCall", + "src": "30760:38:18" + }, + "nativeSrc": "30760:38:18", + "nodeType": "YulExpressionStatement", + "src": "30760:38:18" + }, + { + "nativeSrc": "30811:50:18", + "nodeType": "YulAssignment", + "src": "30811:50:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "30822:3:18", + "nodeType": "YulIdentifier", + "src": "30822:3:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "30831:4:18", + "nodeType": "YulLiteral", + "src": "30831:4:18", + "type": "", + "value": "0x20" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "30851:6:18", + "nodeType": "YulIdentifier", + "src": "30851:6:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "30844:6:18", + "nodeType": "YulIdentifier", + "src": "30844:6:18" + }, + "nativeSrc": "30844:14:18", + "nodeType": "YulFunctionCall", + "src": "30844:14:18" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "30837:6:18", + "nodeType": "YulIdentifier", + "src": "30837:6:18" + }, + "nativeSrc": "30837:22:18", + "nodeType": "YulFunctionCall", + "src": "30837:22:18" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "30827:3:18", + "nodeType": "YulIdentifier", + "src": "30827:3:18" + }, + "nativeSrc": "30827:33:18", + "nodeType": "YulFunctionCall", + "src": "30827:33:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30818:3:18", + "nodeType": "YulIdentifier", + "src": "30818:3:18" + }, + "nativeSrc": "30818:43:18", + "nodeType": "YulFunctionCall", + "src": "30818:43:18" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "30811:3:18", + "nodeType": "YulIdentifier", + "src": "30811:3:18" + } + ] + } + ] + }, + "nativeSrc": "30707:164:18", + "nodeType": "YulCase", + "src": "30707:164:18", + "value": { + "kind": "number", + "nativeSrc": "30712:1:18", + "nodeType": "YulLiteral", + "src": "30712:1:18", + "type": "", + "value": "0" + } + }, + { + "body": { + "nativeSrc": "30887:329:18", + "nodeType": "YulBlock", + "src": "30887:329:18", + "statements": [ + { + "nativeSrc": "30932:53:18", + "nodeType": "YulVariableDeclaration", + "src": "30932:53:18", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "30979:5:18", + "nodeType": "YulIdentifier", + "src": "30979:5:18" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "30947:31:18", + "nodeType": "YulIdentifier", + "src": "30947:31:18" + }, + "nativeSrc": "30947:38:18", + "nodeType": "YulFunctionCall", + "src": "30947:38:18" + }, + "variables": [ + { + "name": "dataPos", + "nativeSrc": "30936:7:18", + "nodeType": "YulTypedName", + "src": "30936:7:18", + "type": "" + } + ] + }, + { + "nativeSrc": "30998:10:18", + "nodeType": "YulVariableDeclaration", + "src": "30998:10:18", + "value": { + "kind": "number", + "nativeSrc": "31007:1:18", + "nodeType": "YulLiteral", + "src": "31007:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "31002:1:18", + "nodeType": "YulTypedName", + "src": "31002:1:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "31065:110:18", + "nodeType": "YulBlock", + "src": "31065:110:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "31094:3:18", + "nodeType": "YulIdentifier", + "src": "31094:3:18" + }, + { + "name": "i", + "nativeSrc": "31099:1:18", + "nodeType": "YulIdentifier", + "src": "31099:1:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31090:3:18", + "nodeType": "YulIdentifier", + "src": "31090:3:18" + }, + "nativeSrc": "31090:11:18", + "nodeType": "YulFunctionCall", + "src": "31090:11:18" + }, + { + "arguments": [ + { + "name": "dataPos", + "nativeSrc": "31109:7:18", + "nodeType": "YulIdentifier", + "src": "31109:7:18" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "31103:5:18", + "nodeType": "YulIdentifier", + "src": "31103:5:18" + }, + "nativeSrc": "31103:14:18", + "nodeType": "YulFunctionCall", + "src": "31103:14:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "31083:6:18", + "nodeType": "YulIdentifier", + "src": "31083:6:18" + }, + "nativeSrc": "31083:35:18", + "nodeType": "YulFunctionCall", + "src": "31083:35:18" + }, + "nativeSrc": "31083:35:18", + "nodeType": "YulExpressionStatement", + "src": "31083:35:18" + }, + { + "nativeSrc": "31135:26:18", + "nodeType": "YulAssignment", + "src": "31135:26:18", + "value": { + "arguments": [ + { + "name": "dataPos", + "nativeSrc": "31150:7:18", + "nodeType": "YulIdentifier", + "src": "31150:7:18" + }, + { + "kind": "number", + "nativeSrc": "31159:1:18", + "nodeType": "YulLiteral", + "src": "31159:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31146:3:18", + "nodeType": "YulIdentifier", + "src": "31146:3:18" + }, + "nativeSrc": "31146:15:18", + "nodeType": "YulFunctionCall", + "src": "31146:15:18" + }, + "variableNames": [ + { + "name": "dataPos", + "nativeSrc": "31135:7:18", + "nodeType": "YulIdentifier", + "src": "31135:7:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "31032:1:18", + "nodeType": "YulIdentifier", + "src": "31032:1:18" + }, + { + "name": "length", + "nativeSrc": "31035:6:18", + "nodeType": "YulIdentifier", + "src": "31035:6:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "31029:2:18", + "nodeType": "YulIdentifier", + "src": "31029:2:18" + }, + "nativeSrc": "31029:13:18", + "nodeType": "YulFunctionCall", + "src": "31029:13:18" + }, + "nativeSrc": "31021:154:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "31043:21:18", + "nodeType": "YulBlock", + "src": "31043:21:18", + "statements": [ + { + "nativeSrc": "31045:17:18", + "nodeType": "YulAssignment", + "src": "31045:17:18", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "31054:1:18", + "nodeType": "YulIdentifier", + "src": "31054:1:18" + }, + { + "kind": "number", + "nativeSrc": "31057:4:18", + "nodeType": "YulLiteral", + "src": "31057:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31050:3:18", + "nodeType": "YulIdentifier", + "src": "31050:3:18" + }, + "nativeSrc": "31050:12:18", + "nodeType": "YulFunctionCall", + "src": "31050:12:18" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "31045:1:18", + "nodeType": "YulIdentifier", + "src": "31045:1:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "31025:3:18", + "nodeType": "YulBlock", + "src": "31025:3:18", + "statements": [] + }, + "src": "31021:154:18" + }, + { + "nativeSrc": "31188:18:18", + "nodeType": "YulAssignment", + "src": "31188:18:18", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "31199:3:18", + "nodeType": "YulIdentifier", + "src": "31199:3:18" + }, + { + "name": "i", + "nativeSrc": "31204:1:18", + "nodeType": "YulIdentifier", + "src": "31204:1:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31195:3:18", + "nodeType": "YulIdentifier", + "src": "31195:3:18" + }, + "nativeSrc": "31195:11:18", + "nodeType": "YulFunctionCall", + "src": "31195:11:18" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "31188:3:18", + "nodeType": "YulIdentifier", + "src": "31188:3:18" + } + ] + } + ] + }, + "nativeSrc": "30880:336:18", + "nodeType": "YulCase", + "src": "30880:336:18", + "value": { + "kind": "number", + "nativeSrc": "30885:1:18", + "nodeType": "YulLiteral", + "src": "30885:1:18", + "type": "", + "value": "1" + } + } + ], + "expression": { "arguments": [ { - "name": "pos", - "nativeSrc": "39651:3:18", + "name": "slotValue", + "nativeSrc": "30685:9:18", "nodeType": "YulIdentifier", - "src": "39651:3:18" + "src": "30685:9:18" }, { - "arguments": [ - { - "name": "length", - "nativeSrc": "39678:6:18", - "nodeType": "YulIdentifier", - "src": "39678:6:18" - } - ], - "functionName": { - "name": "round_up_to_mul_of_32", - "nativeSrc": "39656:21:18", - "nodeType": "YulIdentifier", - "src": "39656:21:18" - }, - "nativeSrc": "39656:29:18", - "nodeType": "YulFunctionCall", - "src": "39656:29:18" + "kind": "number", + "nativeSrc": "30696:1:18", + "nodeType": "YulLiteral", + "src": "30696:1:18", + "type": "", + "value": "1" } ], "functionName": { - "name": "add", - "nativeSrc": "39647:3:18", + "name": "and", + "nativeSrc": "30681:3:18", "nodeType": "YulIdentifier", - "src": "39647:3:18" + "src": "30681:3:18" }, - "nativeSrc": "39647:39:18", + "nativeSrc": "30681:17:18", "nodeType": "YulFunctionCall", - "src": "39647:39:18" + "src": "30681:17:18" }, - "variableNames": [ - { - "name": "end", - "nativeSrc": "39640:3:18", - "nodeType": "YulIdentifier", - "src": "39640:3:18" - } - ] + "nativeSrc": "30674:542:18", + "nodeType": "YulSwitch", + "src": "30674:542:18" } ] }, - "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", - "nativeSrc": "39303:393:18", + "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack", + "nativeSrc": "30391:831:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", - "nativeSrc": "39374:5:18", + "nativeSrc": "30461:5:18", "nodeType": "YulTypedName", - "src": "39374:5:18", + "src": "30461:5:18", "type": "" }, { "name": "pos", - "nativeSrc": "39381:3:18", + "nativeSrc": "30468:3:18", "nodeType": "YulTypedName", - "src": "39381:3:18", + "src": "30468:3:18", "type": "" } ], "returnVariables": [ { - "name": "end", - "nativeSrc": "39389:3:18", + "name": "ret", + "nativeSrc": "30476:3:18", "nodeType": "YulTypedName", - "src": "39389:3:18", + "src": "30476:3:18", "type": "" } ], - "src": "39303:393:18" + "src": "30391:831:18" }, { "body": { - "nativeSrc": "39934:555:18", + "nativeSrc": "31391:345:18", "nodeType": "YulBlock", - "src": "39934:555:18", + "src": "31391:345:18", "statements": [ { - "nativeSrc": "39948:27:18", + "nativeSrc": "31401:26:18", "nodeType": "YulAssignment", - "src": "39948:27:18", + "src": "31401:26:18", "value": { "arguments": [ { "name": "headStart", - "nativeSrc": "39960:9:18", + "nativeSrc": "31413:9:18", "nodeType": "YulIdentifier", - "src": "39960:9:18" + "src": "31413:9:18" }, { "kind": "number", - "nativeSrc": "39971:3:18", + "nativeSrc": "31424:2:18", "nodeType": "YulLiteral", - "src": "39971:3:18", + "src": "31424:2:18", "type": "", - "value": "160" + "value": "64" } ], "functionName": { "name": "add", - "nativeSrc": "39956:3:18", + "nativeSrc": "31409:3:18", "nodeType": "YulIdentifier", - "src": "39956:3:18" + "src": "31409:3:18" }, - "nativeSrc": "39956:19:18", + "nativeSrc": "31409:18:18", "nodeType": "YulFunctionCall", - "src": "39956:19:18" + "src": "31409:18:18" }, "variableNames": [ { "name": "tail", - "nativeSrc": "39948:4:18", + "nativeSrc": "31401:4:18", "nodeType": "YulIdentifier", - "src": "39948:4:18" + "src": "31401:4:18" } ] }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "40033:6:18", - "nodeType": "YulIdentifier", - "src": "40033:6:18" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "40046:9:18", - "nodeType": "YulIdentifier", - "src": "40046:9:18" - }, - { - "kind": "number", - "nativeSrc": "40057:1:18", - "nodeType": "YulLiteral", - "src": "40057:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "40042:3:18", - "nodeType": "YulIdentifier", - "src": "40042:3:18" - }, - "nativeSrc": "40042:17:18", - "nodeType": "YulFunctionCall", - "src": "40042:17:18" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "39989:43:18", - "nodeType": "YulIdentifier", - "src": "39989:43:18" - }, - "nativeSrc": "39989:71:18", - "nodeType": "YulFunctionCall", - "src": "39989:71:18" - }, - "nativeSrc": "39989:71:18", - "nodeType": "YulExpressionStatement", - "src": "39989:71:18" - }, - { - "expression": { - "arguments": [ - { - "name": "value1", - "nativeSrc": "40118:6:18", - "nodeType": "YulIdentifier", - "src": "40118:6:18" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "40131:9:18", - "nodeType": "YulIdentifier", - "src": "40131:9:18" - }, - { - "kind": "number", - "nativeSrc": "40142:2:18", - "nodeType": "YulLiteral", - "src": "40142:2:18", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "40127:3:18", - "nodeType": "YulIdentifier", - "src": "40127:3:18" - }, - "nativeSrc": "40127:18:18", - "nodeType": "YulFunctionCall", - "src": "40127:18:18" - } - ], - "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "40074:43:18", - "nodeType": "YulIdentifier", - "src": "40074:43:18" - }, - "nativeSrc": "40074:72:18", - "nodeType": "YulFunctionCall", - "src": "40074:72:18" - }, - "nativeSrc": "40074:72:18", - "nodeType": "YulExpressionStatement", - "src": "40074:72:18" - }, - { - "expression": { - "arguments": [ - { - "name": "value2", - "nativeSrc": "40204:6:18", - "nodeType": "YulIdentifier", - "src": "40204:6:18" - }, + { + "expression": { + "arguments": [ { "arguments": [ { "name": "headStart", - "nativeSrc": "40217:9:18", + "nativeSrc": "31448:9:18", "nodeType": "YulIdentifier", - "src": "40217:9:18" + "src": "31448:9:18" }, { "kind": "number", - "nativeSrc": "40228:2:18", + "nativeSrc": "31459:1:18", "nodeType": "YulLiteral", - "src": "40228:2:18", + "src": "31459:1:18", "type": "", - "value": "64" + "value": "0" } ], "functionName": { "name": "add", - "nativeSrc": "40213:3:18", + "nativeSrc": "31444:3:18", + "nodeType": "YulIdentifier", + "src": "31444:3:18" + }, + "nativeSrc": "31444:17:18", + "nodeType": "YulFunctionCall", + "src": "31444:17:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "31467:4:18", + "nodeType": "YulIdentifier", + "src": "31467:4:18" + }, + { + "name": "headStart", + "nativeSrc": "31473:9:18", + "nodeType": "YulIdentifier", + "src": "31473:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "31463:3:18", "nodeType": "YulIdentifier", - "src": "40213:3:18" + "src": "31463:3:18" }, - "nativeSrc": "40213:18:18", + "nativeSrc": "31463:20:18", "nodeType": "YulFunctionCall", - "src": "40213:18:18" + "src": "31463:20:18" } ], "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "40160:43:18", + "name": "mstore", + "nativeSrc": "31437:6:18", "nodeType": "YulIdentifier", - "src": "40160:43:18" + "src": "31437:6:18" }, - "nativeSrc": "40160:72:18", + "nativeSrc": "31437:47:18", "nodeType": "YulFunctionCall", - "src": "40160:72:18" + "src": "31437:47:18" }, - "nativeSrc": "40160:72:18", + "nativeSrc": "31437:47:18", "nodeType": "YulExpressionStatement", - "src": "40160:72:18" + "src": "31437:47:18" }, { - "expression": { + "nativeSrc": "31493:83:18", + "nodeType": "YulAssignment", + "src": "31493:83:18", + "value": { "arguments": [ { - "name": "value3", - "nativeSrc": "40290:6:18", + "name": "value0", + "nativeSrc": "31562:6:18", "nodeType": "YulIdentifier", - "src": "40290:6:18" + "src": "31562:6:18" }, { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "40303:9:18", - "nodeType": "YulIdentifier", - "src": "40303:9:18" - }, - { - "kind": "number", - "nativeSrc": "40314:2:18", - "nodeType": "YulLiteral", - "src": "40314:2:18", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "40299:3:18", - "nodeType": "YulIdentifier", - "src": "40299:3:18" - }, - "nativeSrc": "40299:18:18", - "nodeType": "YulFunctionCall", - "src": "40299:18:18" + "name": "tail", + "nativeSrc": "31571:4:18", + "nodeType": "YulIdentifier", + "src": "31571:4:18" } ], "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "40246:43:18", + "name": "abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack", + "nativeSrc": "31501:60:18", "nodeType": "YulIdentifier", - "src": "40246:43:18" + "src": "31501:60:18" }, - "nativeSrc": "40246:72:18", + "nativeSrc": "31501:75:18", "nodeType": "YulFunctionCall", - "src": "40246:72:18" + "src": "31501:75:18" }, - "nativeSrc": "40246:72:18", - "nodeType": "YulExpressionStatement", - "src": "40246:72:18" + "variableNames": [ + { + "name": "tail", + "nativeSrc": "31493:4:18", + "nodeType": "YulIdentifier", + "src": "31493:4:18" + } + ] }, { "expression": { @@ -82348,713 +82419,948 @@ "arguments": [ { "name": "headStart", - "nativeSrc": "40343:9:18", + "nativeSrc": "31597:9:18", "nodeType": "YulIdentifier", - "src": "40343:9:18" + "src": "31597:9:18" }, { "kind": "number", - "nativeSrc": "40354:3:18", + "nativeSrc": "31608:2:18", "nodeType": "YulLiteral", - "src": "40354:3:18", + "src": "31608:2:18", "type": "", - "value": "128" + "value": "32" } ], "functionName": { "name": "add", - "nativeSrc": "40339:3:18", + "nativeSrc": "31593:3:18", "nodeType": "YulIdentifier", - "src": "40339:3:18" + "src": "31593:3:18" }, - "nativeSrc": "40339:19:18", + "nativeSrc": "31593:18:18", "nodeType": "YulFunctionCall", - "src": "40339:19:18" + "src": "31593:18:18" }, { "arguments": [ { "name": "tail", - "nativeSrc": "40364:4:18", + "nativeSrc": "31617:4:18", "nodeType": "YulIdentifier", - "src": "40364:4:18" + "src": "31617:4:18" }, { "name": "headStart", - "nativeSrc": "40370:9:18", + "nativeSrc": "31623:9:18", "nodeType": "YulIdentifier", - "src": "40370:9:18" + "src": "31623:9:18" } ], "functionName": { "name": "sub", - "nativeSrc": "40360:3:18", + "nativeSrc": "31613:3:18", "nodeType": "YulIdentifier", - "src": "40360:3:18" + "src": "31613:3:18" }, - "nativeSrc": "40360:20:18", + "nativeSrc": "31613:20:18", "nodeType": "YulFunctionCall", - "src": "40360:20:18" + "src": "31613:20:18" } ], "functionName": { "name": "mstore", - "nativeSrc": "40332:6:18", + "nativeSrc": "31586:6:18", "nodeType": "YulIdentifier", - "src": "40332:6:18" + "src": "31586:6:18" }, - "nativeSrc": "40332:49:18", + "nativeSrc": "31586:48:18", "nodeType": "YulFunctionCall", - "src": "40332:49:18" + "src": "31586:48:18" }, - "nativeSrc": "40332:49:18", + "nativeSrc": "31586:48:18", "nodeType": "YulExpressionStatement", - "src": "40332:49:18" + "src": "31586:48:18" }, { - "nativeSrc": "40394:84:18", + "nativeSrc": "31643:86:18", "nodeType": "YulAssignment", - "src": "40394:84:18", + "src": "31643:86:18", "value": { "arguments": [ { - "name": "value4", - "nativeSrc": "40464:6:18", + "name": "value1", + "nativeSrc": "31715:6:18", "nodeType": "YulIdentifier", - "src": "40464:6:18" + "src": "31715:6:18" }, { "name": "tail", - "nativeSrc": "40473:4:18", + "nativeSrc": "31724:4:18", "nodeType": "YulIdentifier", - "src": "40473:4:18" + "src": "31724:4:18" } ], "functionName": { - "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", - "nativeSrc": "40402:61:18", + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nativeSrc": "31651:63:18", "nodeType": "YulIdentifier", - "src": "40402:61:18" + "src": "31651:63:18" }, - "nativeSrc": "40402:76:18", + "nativeSrc": "31651:78:18", "nodeType": "YulFunctionCall", - "src": "40402:76:18" + "src": "31651:78:18" }, "variableNames": [ { "name": "tail", - "nativeSrc": "40394:4:18", + "nativeSrc": "31643:4:18", "nodeType": "YulIdentifier", - "src": "40394:4:18" + "src": "31643:4:18" } ] } ] }, - "name": "abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed", - "nativeSrc": "39706:783:18", + "name": "abi_encode_tuple_t_string_storage_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "31228:508:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", - "nativeSrc": "39874:9:18", - "nodeType": "YulTypedName", - "src": "39874:9:18", - "type": "" - }, - { - "name": "value4", - "nativeSrc": "39886:6:18", - "nodeType": "YulTypedName", - "src": "39886:6:18", - "type": "" - }, - { - "name": "value3", - "nativeSrc": "39894:6:18", - "nodeType": "YulTypedName", - "src": "39894:6:18", - "type": "" - }, - { - "name": "value2", - "nativeSrc": "39902:6:18", + "nativeSrc": "31355:9:18", "nodeType": "YulTypedName", - "src": "39902:6:18", + "src": "31355:9:18", "type": "" }, { "name": "value1", - "nativeSrc": "39910:6:18", + "nativeSrc": "31367:6:18", "nodeType": "YulTypedName", - "src": "39910:6:18", + "src": "31367:6:18", "type": "" }, { "name": "value0", - "nativeSrc": "39918:6:18", + "nativeSrc": "31375:6:18", "nodeType": "YulTypedName", - "src": "39918:6:18", + "src": "31375:6:18", "type": "" } ], "returnVariables": [ { "name": "tail", - "nativeSrc": "39929:4:18", + "nativeSrc": "31386:4:18", "nodeType": "YulTypedName", - "src": "39929:4:18", + "src": "31386:4:18", "type": "" } ], - "src": "39706:783:18" + "src": "31228:508:18" }, { "body": { - "nativeSrc": "40561:91:18", + "nativeSrc": "31786:49:18", "nodeType": "YulBlock", - "src": "40561:91:18", + "src": "31786:49:18", "statements": [ { - "nativeSrc": "40575:22:18", + "nativeSrc": "31796:33:18", "nodeType": "YulAssignment", - "src": "40575:22:18", + "src": "31796:33:18", "value": { "arguments": [ { - "name": "offset", - "nativeSrc": "40590:6:18", - "nodeType": "YulIdentifier", - "src": "40590:6:18" + "arguments": [ + { + "name": "value", + "nativeSrc": "31814:5:18", + "nodeType": "YulIdentifier", + "src": "31814:5:18" + }, + { + "kind": "number", + "nativeSrc": "31821:2:18", + "nodeType": "YulLiteral", + "src": "31821:2:18", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31810:3:18", + "nodeType": "YulIdentifier", + "src": "31810:3:18" + }, + "nativeSrc": "31810:14:18", + "nodeType": "YulFunctionCall", + "src": "31810:14:18" + }, + { + "kind": "number", + "nativeSrc": "31826:2:18", + "nodeType": "YulLiteral", + "src": "31826:2:18", + "type": "", + "value": "32" } ], "functionName": { - "name": "mload", - "nativeSrc": "40584:5:18", + "name": "div", + "nativeSrc": "31806:3:18", "nodeType": "YulIdentifier", - "src": "40584:5:18" + "src": "31806:3:18" }, - "nativeSrc": "40584:13:18", + "nativeSrc": "31806:23:18", "nodeType": "YulFunctionCall", - "src": "40584:13:18" + "src": "31806:23:18" }, "variableNames": [ { - "name": "value", - "nativeSrc": "40575:5:18", + "name": "result", + "nativeSrc": "31796:6:18", "nodeType": "YulIdentifier", - "src": "40575:5:18" + "src": "31796:6:18" } ] - }, - { - "expression": { - "arguments": [ - { - "name": "value", - "nativeSrc": "40636:5:18", - "nodeType": "YulIdentifier", - "src": "40636:5:18" - } - ], - "functionName": { - "name": "validator_revert_t_bytes4", - "nativeSrc": "40610:25:18", - "nodeType": "YulIdentifier", - "src": "40610:25:18" - }, - "nativeSrc": "40610:32:18", - "nodeType": "YulFunctionCall", - "src": "40610:32:18" - }, - "nativeSrc": "40610:32:18", - "nodeType": "YulExpressionStatement", - "src": "40610:32:18" } ] }, - "name": "abi_decode_t_bytes4_fromMemory", - "nativeSrc": "40499:153:18", + "name": "divide_by_32_ceil", + "nativeSrc": "31742:93:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", - "nativeSrc": "40539:6:18", - "nodeType": "YulTypedName", - "src": "40539:6:18", - "type": "" - }, - { - "name": "end", - "nativeSrc": "40547:3:18", + "name": "value", + "nativeSrc": "31769:5:18", "nodeType": "YulTypedName", - "src": "40547:3:18", + "src": "31769:5:18", "type": "" } ], "returnVariables": [ { - "name": "value", - "nativeSrc": "40555:5:18", + "name": "result", + "nativeSrc": "31779:6:18", "nodeType": "YulTypedName", - "src": "40555:5:18", + "src": "31779:6:18", "type": "" } ], - "src": "40499:153:18" + "src": "31742:93:18" }, { "body": { - "nativeSrc": "40738:297:18", + "nativeSrc": "31894:54:18", "nodeType": "YulBlock", - "src": "40738:297:18", + "src": "31894:54:18", "statements": [ { - "body": { - "nativeSrc": "40788:83:18", - "nodeType": "YulBlock", - "src": "40788:83:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "40790:77:18", - "nodeType": "YulIdentifier", - "src": "40790:77:18" - }, - "nativeSrc": "40790:79:18", - "nodeType": "YulFunctionCall", - "src": "40790:79:18" - }, - "nativeSrc": "40790:79:18", - "nodeType": "YulExpressionStatement", - "src": "40790:79:18" - } - ] - }, - "condition": { + "nativeSrc": "31904:37:18", + "nodeType": "YulAssignment", + "src": "31904:37:18", + "value": { "arguments": [ { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "40763:7:18", - "nodeType": "YulIdentifier", - "src": "40763:7:18" - }, - { - "name": "headStart", - "nativeSrc": "40772:9:18", - "nodeType": "YulIdentifier", - "src": "40772:9:18" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "40759:3:18", - "nodeType": "YulIdentifier", - "src": "40759:3:18" - }, - "nativeSrc": "40759:23:18", - "nodeType": "YulFunctionCall", - "src": "40759:23:18" + "name": "bits", + "nativeSrc": "31929:4:18", + "nodeType": "YulIdentifier", + "src": "31929:4:18" }, { - "kind": "number", - "nativeSrc": "40784:2:18", - "nodeType": "YulLiteral", - "src": "40784:2:18", - "type": "", - "value": "32" + "name": "value", + "nativeSrc": "31935:5:18", + "nodeType": "YulIdentifier", + "src": "31935:5:18" } ], "functionName": { - "name": "slt", - "nativeSrc": "40755:3:18", + "name": "shl", + "nativeSrc": "31925:3:18", "nodeType": "YulIdentifier", - "src": "40755:3:18" + "src": "31925:3:18" }, - "nativeSrc": "40755:32:18", + "nativeSrc": "31925:16:18", "nodeType": "YulFunctionCall", - "src": "40755:32:18" + "src": "31925:16:18" }, - "nativeSrc": "40752:119:18", - "nodeType": "YulIf", - "src": "40752:119:18" - }, - { - "nativeSrc": "40885:139:18", - "nodeType": "YulBlock", - "src": "40885:139:18", - "statements": [ - { - "nativeSrc": "40904:15:18", - "nodeType": "YulVariableDeclaration", - "src": "40904:15:18", - "value": { - "kind": "number", - "nativeSrc": "40918:1:18", - "nodeType": "YulLiteral", - "src": "40918:1:18", - "type": "", - "value": "0" - }, - "variables": [ - { - "name": "offset", - "nativeSrc": "40908:6:18", - "nodeType": "YulTypedName", - "src": "40908:6:18", - "type": "" - } - ] - }, + "variableNames": [ { - "nativeSrc": "40937:73:18", - "nodeType": "YulAssignment", - "src": "40937:73:18", - "value": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "40982:9:18", - "nodeType": "YulIdentifier", - "src": "40982:9:18" - }, - { - "name": "offset", - "nativeSrc": "40993:6:18", - "nodeType": "YulIdentifier", - "src": "40993:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "40978:3:18", - "nodeType": "YulIdentifier", - "src": "40978:3:18" - }, - "nativeSrc": "40978:22:18", - "nodeType": "YulFunctionCall", - "src": "40978:22:18" - }, - { - "name": "dataEnd", - "nativeSrc": "41002:7:18", - "nodeType": "YulIdentifier", - "src": "41002:7:18" - } - ], - "functionName": { - "name": "abi_decode_t_bytes4_fromMemory", - "nativeSrc": "40947:30:18", - "nodeType": "YulIdentifier", - "src": "40947:30:18" - }, - "nativeSrc": "40947:63:18", - "nodeType": "YulFunctionCall", - "src": "40947:63:18" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "40937:6:18", - "nodeType": "YulIdentifier", - "src": "40937:6:18" - } - ] + "name": "newValue", + "nativeSrc": "31904:8:18", + "nodeType": "YulIdentifier", + "src": "31904:8:18" } ] } ] }, - "name": "abi_decode_tuple_t_bytes4_fromMemory", - "nativeSrc": "40662:373:18", + "name": "shift_left_dynamic", + "nativeSrc": "31841:107:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nativeSrc": "40708:9:18", + "name": "bits", + "nativeSrc": "31869:4:18", "nodeType": "YulTypedName", - "src": "40708:9:18", + "src": "31869:4:18", "type": "" }, { - "name": "dataEnd", - "nativeSrc": "40719:7:18", + "name": "value", + "nativeSrc": "31875:5:18", "nodeType": "YulTypedName", - "src": "40719:7:18", + "src": "31875:5:18", "type": "" } ], "returnVariables": [ { - "name": "value0", - "nativeSrc": "40731:6:18", + "name": "newValue", + "nativeSrc": "31885:8:18", "nodeType": "YulTypedName", - "src": "40731:6:18", + "src": "31885:8:18", "type": "" } ], - "src": "40662:373:18" + "src": "31841:107:18" }, { "body": { - "nativeSrc": "41373:765:18", + "nativeSrc": "32030:317:18", "nodeType": "YulBlock", - "src": "41373:765:18", + "src": "32030:317:18", "statements": [ { - "nativeSrc": "41387:27:18", - "nodeType": "YulAssignment", - "src": "41387:27:18", + "nativeSrc": "32040:35:18", + "nodeType": "YulVariableDeclaration", + "src": "32040:35:18", "value": { "arguments": [ { - "name": "headStart", - "nativeSrc": "41399:9:18", + "name": "shiftBytes", + "nativeSrc": "32061:10:18", "nodeType": "YulIdentifier", - "src": "41399:9:18" + "src": "32061:10:18" }, { "kind": "number", - "nativeSrc": "41410:3:18", + "nativeSrc": "32073:1:18", "nodeType": "YulLiteral", - "src": "41410:3:18", + "src": "32073:1:18", "type": "", - "value": "160" + "value": "8" } ], "functionName": { - "name": "add", - "nativeSrc": "41395:3:18", + "name": "mul", + "nativeSrc": "32057:3:18", + "nodeType": "YulIdentifier", + "src": "32057:3:18" + }, + "nativeSrc": "32057:18:18", + "nodeType": "YulFunctionCall", + "src": "32057:18:18" + }, + "variables": [ + { + "name": "shiftBits", + "nativeSrc": "32044:9:18", + "nodeType": "YulTypedName", + "src": "32044:9:18", + "type": "" + } + ] + }, + { + "nativeSrc": "32084:109:18", + "nodeType": "YulVariableDeclaration", + "src": "32084:109:18", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "32115:9:18", + "nodeType": "YulIdentifier", + "src": "32115:9:18" + }, + { + "kind": "number", + "nativeSrc": "32126:66:18", + "nodeType": "YulLiteral", + "src": "32126:66:18", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "32096:18:18", + "nodeType": "YulIdentifier", + "src": "32096:18:18" + }, + "nativeSrc": "32096:97:18", + "nodeType": "YulFunctionCall", + "src": "32096:97:18" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "32088:4:18", + "nodeType": "YulTypedName", + "src": "32088:4:18", + "type": "" + } + ] + }, + { + "nativeSrc": "32202:51:18", + "nodeType": "YulAssignment", + "src": "32202:51:18", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nativeSrc": "32233:9:18", + "nodeType": "YulIdentifier", + "src": "32233:9:18" + }, + { + "name": "toInsert", + "nativeSrc": "32244:8:18", + "nodeType": "YulIdentifier", + "src": "32244:8:18" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nativeSrc": "32214:18:18", "nodeType": "YulIdentifier", - "src": "41395:3:18" + "src": "32214:18:18" }, - "nativeSrc": "41395:19:18", + "nativeSrc": "32214:39:18", "nodeType": "YulFunctionCall", - "src": "41395:19:18" + "src": "32214:39:18" }, "variableNames": [ { - "name": "tail", - "nativeSrc": "41387:4:18", + "name": "toInsert", + "nativeSrc": "32202:8:18", "nodeType": "YulIdentifier", - "src": "41387:4:18" + "src": "32202:8:18" } ] }, { - "expression": { + "nativeSrc": "32262:30:18", + "nodeType": "YulAssignment", + "src": "32262:30:18", + "value": { "arguments": [ { - "name": "value0", - "nativeSrc": "41472:6:18", + "name": "value", + "nativeSrc": "32275:5:18", "nodeType": "YulIdentifier", - "src": "41472:6:18" + "src": "32275:5:18" }, { "arguments": [ { - "name": "headStart", - "nativeSrc": "41485:9:18", + "name": "mask", + "nativeSrc": "32286:4:18", "nodeType": "YulIdentifier", - "src": "41485:9:18" - }, - { - "kind": "number", - "nativeSrc": "41496:1:18", - "nodeType": "YulLiteral", - "src": "41496:1:18", - "type": "", - "value": "0" + "src": "32286:4:18" } ], "functionName": { - "name": "add", - "nativeSrc": "41481:3:18", + "name": "not", + "nativeSrc": "32282:3:18", "nodeType": "YulIdentifier", - "src": "41481:3:18" + "src": "32282:3:18" }, - "nativeSrc": "41481:17:18", + "nativeSrc": "32282:9:18", "nodeType": "YulFunctionCall", - "src": "41481:17:18" + "src": "32282:9:18" } ], "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "41428:43:18", + "name": "and", + "nativeSrc": "32271:3:18", "nodeType": "YulIdentifier", - "src": "41428:43:18" + "src": "32271:3:18" }, - "nativeSrc": "41428:71:18", + "nativeSrc": "32271:21:18", "nodeType": "YulFunctionCall", - "src": "41428:71:18" + "src": "32271:21:18" }, - "nativeSrc": "41428:71:18", - "nodeType": "YulExpressionStatement", - "src": "41428:71:18" + "variableNames": [ + { + "name": "value", + "nativeSrc": "32262:5:18", + "nodeType": "YulIdentifier", + "src": "32262:5:18" + } + ] }, { - "expression": { + "nativeSrc": "32301:40:18", + "nodeType": "YulAssignment", + "src": "32301:40:18", + "value": { "arguments": [ { - "name": "value1", - "nativeSrc": "41557:6:18", + "name": "value", + "nativeSrc": "32314:5:18", "nodeType": "YulIdentifier", - "src": "41557:6:18" + "src": "32314:5:18" }, { "arguments": [ { - "name": "headStart", - "nativeSrc": "41570:9:18", + "name": "toInsert", + "nativeSrc": "32325:8:18", "nodeType": "YulIdentifier", - "src": "41570:9:18" + "src": "32325:8:18" }, { - "kind": "number", - "nativeSrc": "41581:2:18", - "nodeType": "YulLiteral", - "src": "41581:2:18", - "type": "", - "value": "32" + "name": "mask", + "nativeSrc": "32335:4:18", + "nodeType": "YulIdentifier", + "src": "32335:4:18" } ], "functionName": { - "name": "add", - "nativeSrc": "41566:3:18", + "name": "and", + "nativeSrc": "32321:3:18", "nodeType": "YulIdentifier", - "src": "41566:3:18" + "src": "32321:3:18" }, - "nativeSrc": "41566:18:18", + "nativeSrc": "32321:19:18", "nodeType": "YulFunctionCall", - "src": "41566:18:18" + "src": "32321:19:18" } ], "functionName": { - "name": "abi_encode_t_address_to_t_address_fromStack", - "nativeSrc": "41513:43:18", + "name": "or", + "nativeSrc": "32311:2:18", "nodeType": "YulIdentifier", - "src": "41513:43:18" + "src": "32311:2:18" }, - "nativeSrc": "41513:72:18", + "nativeSrc": "32311:30:18", "nodeType": "YulFunctionCall", - "src": "41513:72:18" + "src": "32311:30:18" }, - "nativeSrc": "41513:72:18", - "nodeType": "YulExpressionStatement", - "src": "41513:72:18" - }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "32301:6:18", + "nodeType": "YulIdentifier", + "src": "32301:6:18" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nativeSrc": "31954:393:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "31991:5:18", + "nodeType": "YulTypedName", + "src": "31991:5:18", + "type": "" + }, + { + "name": "shiftBytes", + "nativeSrc": "31998:10:18", + "nodeType": "YulTypedName", + "src": "31998:10:18", + "type": "" + }, + { + "name": "toInsert", + "nativeSrc": "32010:8:18", + "nodeType": "YulTypedName", + "src": "32010:8:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "32023:6:18", + "nodeType": "YulTypedName", + "src": "32023:6:18", + "type": "" + } + ], + "src": "31954:393:18" + }, + { + "body": { + "nativeSrc": "32413:82:18", + "nodeType": "YulBlock", + "src": "32413:82:18", + "statements": [ { - "expression": { + "nativeSrc": "32423:66:18", + "nodeType": "YulAssignment", + "src": "32423:66:18", + "value": { "arguments": [ { "arguments": [ { - "name": "headStart", - "nativeSrc": "41610:9:18", - "nodeType": "YulIdentifier", - "src": "41610:9:18" - }, - { - "kind": "number", - "nativeSrc": "41621:2:18", - "nodeType": "YulLiteral", - "src": "41621:2:18", - "type": "", - "value": "64" + "arguments": [ + { + "name": "value", + "nativeSrc": "32481:5:18", + "nodeType": "YulIdentifier", + "src": "32481:5:18" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "32463:17:18", + "nodeType": "YulIdentifier", + "src": "32463:17:18" + }, + "nativeSrc": "32463:24:18", + "nodeType": "YulFunctionCall", + "src": "32463:24:18" } ], "functionName": { - "name": "add", - "nativeSrc": "41606:3:18", + "name": "identity", + "nativeSrc": "32454:8:18", "nodeType": "YulIdentifier", - "src": "41606:3:18" + "src": "32454:8:18" }, - "nativeSrc": "41606:18:18", + "nativeSrc": "32454:34:18", "nodeType": "YulFunctionCall", - "src": "41606:18:18" + "src": "32454:34:18" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nativeSrc": "32436:17:18", + "nodeType": "YulIdentifier", + "src": "32436:17:18" + }, + "nativeSrc": "32436:53:18", + "nodeType": "YulFunctionCall", + "src": "32436:53:18" + }, + "variableNames": [ + { + "name": "converted", + "nativeSrc": "32423:9:18", + "nodeType": "YulIdentifier", + "src": "32423:9:18" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "32353:142:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "32393:5:18", + "nodeType": "YulTypedName", + "src": "32393:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nativeSrc": "32403:9:18", + "nodeType": "YulTypedName", + "src": "32403:9:18", + "type": "" + } + ], + "src": "32353:142:18" + }, + { + "body": { + "nativeSrc": "32548:28:18", + "nodeType": "YulBlock", + "src": "32548:28:18", + "statements": [ + { + "nativeSrc": "32558:12:18", + "nodeType": "YulAssignment", + "src": "32558:12:18", + "value": { + "name": "value", + "nativeSrc": "32565:5:18", + "nodeType": "YulIdentifier", + "src": "32565:5:18" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "32558:3:18", + "nodeType": "YulIdentifier", + "src": "32558:3:18" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nativeSrc": "32501:75:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "32534:5:18", + "nodeType": "YulTypedName", + "src": "32534:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "32544:3:18", + "nodeType": "YulTypedName", + "src": "32544:3:18", + "type": "" + } + ], + "src": "32501:75:18" + }, + { + "body": { + "nativeSrc": "32658:193:18", + "nodeType": "YulBlock", + "src": "32658:193:18", + "statements": [ + { + "nativeSrc": "32668:63:18", + "nodeType": "YulVariableDeclaration", + "src": "32668:63:18", + "value": { + "arguments": [ + { + "name": "value_0", + "nativeSrc": "32723:7:18", + "nodeType": "YulIdentifier", + "src": "32723:7:18" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nativeSrc": "32692:30:18", + "nodeType": "YulIdentifier", + "src": "32692:30:18" + }, + "nativeSrc": "32692:39:18", + "nodeType": "YulFunctionCall", + "src": "32692:39:18" + }, + "variables": [ + { + "name": "convertedValue_0", + "nativeSrc": "32672:16:18", + "nodeType": "YulTypedName", + "src": "32672:16:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "32747:4:18", + "nodeType": "YulIdentifier", + "src": "32747:4:18" }, { "arguments": [ { - "name": "tail", - "nativeSrc": "41630:4:18", - "nodeType": "YulIdentifier", - "src": "41630:4:18" + "arguments": [ + { + "name": "slot", + "nativeSrc": "32787:4:18", + "nodeType": "YulIdentifier", + "src": "32787:4:18" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "32781:5:18", + "nodeType": "YulIdentifier", + "src": "32781:5:18" + }, + "nativeSrc": "32781:11:18", + "nodeType": "YulFunctionCall", + "src": "32781:11:18" }, { - "name": "headStart", - "nativeSrc": "41636:9:18", + "name": "offset", + "nativeSrc": "32794:6:18", "nodeType": "YulIdentifier", - "src": "41636:9:18" + "src": "32794:6:18" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nativeSrc": "32826:16:18", + "nodeType": "YulIdentifier", + "src": "32826:16:18" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nativeSrc": "32802:23:18", + "nodeType": "YulIdentifier", + "src": "32802:23:18" + }, + "nativeSrc": "32802:41:18", + "nodeType": "YulFunctionCall", + "src": "32802:41:18" } ], "functionName": { - "name": "sub", - "nativeSrc": "41626:3:18", + "name": "update_byte_slice_dynamic32", + "nativeSrc": "32753:27:18", "nodeType": "YulIdentifier", - "src": "41626:3:18" + "src": "32753:27:18" }, - "nativeSrc": "41626:20:18", + "nativeSrc": "32753:91:18", "nodeType": "YulFunctionCall", - "src": "41626:20:18" + "src": "32753:91:18" } ], "functionName": { - "name": "mstore", - "nativeSrc": "41599:6:18", + "name": "sstore", + "nativeSrc": "32740:6:18", "nodeType": "YulIdentifier", - "src": "41599:6:18" + "src": "32740:6:18" }, - "nativeSrc": "41599:48:18", + "nativeSrc": "32740:105:18", "nodeType": "YulFunctionCall", - "src": "41599:48:18" + "src": "32740:105:18" }, - "nativeSrc": "41599:48:18", + "nativeSrc": "32740:105:18", "nodeType": "YulExpressionStatement", - "src": "41599:48:18" - }, + "src": "32740:105:18" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "32582:269:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "32635:4:18", + "nodeType": "YulTypedName", + "src": "32635:4:18", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "32641:6:18", + "nodeType": "YulTypedName", + "src": "32641:6:18", + "type": "" + }, + { + "name": "value_0", + "nativeSrc": "32649:7:18", + "nodeType": "YulTypedName", + "src": "32649:7:18", + "type": "" + } + ], + "src": "32582:269:18" + }, + { + "body": { + "nativeSrc": "32906:24:18", + "nodeType": "YulBlock", + "src": "32906:24:18", + "statements": [ { - "nativeSrc": "41660:116:18", + "nativeSrc": "32916:8:18", "nodeType": "YulAssignment", - "src": "41660:116:18", + "src": "32916:8:18", "value": { - "arguments": [ - { - "name": "value2", - "nativeSrc": "41762:6:18", - "nodeType": "YulIdentifier", - "src": "41762:6:18" - }, - { - "name": "tail", - "nativeSrc": "41771:4:18", - "nodeType": "YulIdentifier", - "src": "41771:4:18" - } - ], + "kind": "number", + "nativeSrc": "32923:1:18", + "nodeType": "YulLiteral", + "src": "32923:1:18", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "32916:3:18", + "nodeType": "YulIdentifier", + "src": "32916:3:18" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "32857:73:18", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "32902:3:18", + "nodeType": "YulTypedName", + "src": "32902:3:18", + "type": "" + } + ], + "src": "32857:73:18" + }, + { + "body": { + "nativeSrc": "32989:136:18", + "nodeType": "YulBlock", + "src": "32989:136:18", + "statements": [ + { + "nativeSrc": "32999:46:18", + "nodeType": "YulVariableDeclaration", + "src": "32999:46:18", + "value": { + "arguments": [], "functionName": { - "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", - "nativeSrc": "41668:93:18", + "name": "zero_value_for_split_t_uint256", + "nativeSrc": "33013:30:18", "nodeType": "YulIdentifier", - "src": "41668:93:18" + "src": "33013:30:18" }, - "nativeSrc": "41668:108:18", + "nativeSrc": "33013:32:18", "nodeType": "YulFunctionCall", - "src": "41668:108:18" + "src": "33013:32:18" }, - "variableNames": [ + "variables": [ { - "name": "tail", - "nativeSrc": "41660:4:18", - "nodeType": "YulIdentifier", - "src": "41660:4:18" + "name": "zero_0", + "nativeSrc": "33003:6:18", + "nodeType": "YulTypedName", + "src": "33003:6:18", + "type": "" } ] }, @@ -83062,1544 +83368,2448 @@ "expression": { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "41801:9:18", - "nodeType": "YulIdentifier", - "src": "41801:9:18" - }, - { - "kind": "number", - "nativeSrc": "41812:2:18", - "nodeType": "YulLiteral", - "src": "41812:2:18", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "41797:3:18", - "nodeType": "YulIdentifier", - "src": "41797:3:18" - }, - "nativeSrc": "41797:18:18", - "nodeType": "YulFunctionCall", - "src": "41797:18:18" + "name": "slot", + "nativeSrc": "33098:4:18", + "nodeType": "YulIdentifier", + "src": "33098:4:18" }, { - "arguments": [ - { - "name": "tail", - "nativeSrc": "41821:4:18", - "nodeType": "YulIdentifier", - "src": "41821:4:18" - }, - { - "name": "headStart", - "nativeSrc": "41827:9:18", - "nodeType": "YulIdentifier", - "src": "41827:9:18" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "41817:3:18", - "nodeType": "YulIdentifier", - "src": "41817:3:18" - }, - "nativeSrc": "41817:20:18", - "nodeType": "YulFunctionCall", - "src": "41817:20:18" + "name": "offset", + "nativeSrc": "33104:6:18", + "nodeType": "YulIdentifier", + "src": "33104:6:18" + }, + { + "name": "zero_0", + "nativeSrc": "33112:6:18", + "nodeType": "YulIdentifier", + "src": "33112:6:18" } ], "functionName": { - "name": "mstore", - "nativeSrc": "41790:6:18", + "name": "update_storage_value_t_uint256_to_t_uint256", + "nativeSrc": "33054:43:18", "nodeType": "YulIdentifier", - "src": "41790:6:18" + "src": "33054:43:18" }, - "nativeSrc": "41790:48:18", + "nativeSrc": "33054:65:18", "nodeType": "YulFunctionCall", - "src": "41790:48:18" + "src": "33054:65:18" }, - "nativeSrc": "41790:48:18", + "nativeSrc": "33054:65:18", "nodeType": "YulExpressionStatement", - "src": "41790:48:18" - }, + "src": "33054:65:18" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "32936:189:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "32975:4:18", + "nodeType": "YulTypedName", + "src": "32975:4:18", + "type": "" + }, + { + "name": "offset", + "nativeSrc": "32981:6:18", + "nodeType": "YulTypedName", + "src": "32981:6:18", + "type": "" + } + ], + "src": "32936:189:18" + }, + { + "body": { + "nativeSrc": "33181:136:18", + "nodeType": "YulBlock", + "src": "33181:136:18", + "statements": [ { - "nativeSrc": "41851:116:18", - "nodeType": "YulAssignment", - "src": "41851:116:18", - "value": { + "body": { + "nativeSrc": "33248:63:18", + "nodeType": "YulBlock", + "src": "33248:63:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nativeSrc": "33292:5:18", + "nodeType": "YulIdentifier", + "src": "33292:5:18" + }, + { + "kind": "number", + "nativeSrc": "33299:1:18", + "nodeType": "YulLiteral", + "src": "33299:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nativeSrc": "33262:29:18", + "nodeType": "YulIdentifier", + "src": "33262:29:18" + }, + "nativeSrc": "33262:39:18", + "nodeType": "YulFunctionCall", + "src": "33262:39:18" + }, + "nativeSrc": "33262:39:18", + "nodeType": "YulExpressionStatement", + "src": "33262:39:18" + } + ] + }, + "condition": { "arguments": [ { - "name": "value3", - "nativeSrc": "41953:6:18", + "name": "start", + "nativeSrc": "33201:5:18", "nodeType": "YulIdentifier", - "src": "41953:6:18" + "src": "33201:5:18" }, { - "name": "tail", - "nativeSrc": "41962:4:18", + "name": "end", + "nativeSrc": "33208:3:18", "nodeType": "YulIdentifier", - "src": "41962:4:18" + "src": "33208:3:18" } ], "functionName": { - "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", - "nativeSrc": "41859:93:18", + "name": "lt", + "nativeSrc": "33198:2:18", "nodeType": "YulIdentifier", - "src": "41859:93:18" + "src": "33198:2:18" }, - "nativeSrc": "41859:108:18", + "nativeSrc": "33198:14:18", "nodeType": "YulFunctionCall", - "src": "41859:108:18" + "src": "33198:14:18" }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "41851:4:18", - "nodeType": "YulIdentifier", - "src": "41851:4:18" - } - ] - }, - { - "expression": { - "arguments": [ + "nativeSrc": "33191:120:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "33213:26:18", + "nodeType": "YulBlock", + "src": "33213:26:18", + "statements": [ { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "41992:9:18", + "nativeSrc": "33215:22:18", + "nodeType": "YulAssignment", + "src": "33215:22:18", + "value": { + "arguments": [ + { + "name": "start", + "nativeSrc": "33228:5:18", + "nodeType": "YulIdentifier", + "src": "33228:5:18" + }, + { + "kind": "number", + "nativeSrc": "33235:1:18", + "nodeType": "YulLiteral", + "src": "33235:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "33224:3:18", "nodeType": "YulIdentifier", - "src": "41992:9:18" + "src": "33224:3:18" }, + "nativeSrc": "33224:13:18", + "nodeType": "YulFunctionCall", + "src": "33224:13:18" + }, + "variableNames": [ { - "kind": "number", - "nativeSrc": "42003:3:18", - "nodeType": "YulLiteral", - "src": "42003:3:18", - "type": "", - "value": "128" + "name": "start", + "nativeSrc": "33215:5:18", + "nodeType": "YulIdentifier", + "src": "33215:5:18" } - ], - "functionName": { - "name": "add", - "nativeSrc": "41988:3:18", - "nodeType": "YulIdentifier", - "src": "41988:3:18" + ] + } + ] + }, + "pre": { + "nativeSrc": "33195:2:18", + "nodeType": "YulBlock", + "src": "33195:2:18", + "statements": [] + }, + "src": "33191:120:18" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "33131:186:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nativeSrc": "33169:5:18", + "nodeType": "YulTypedName", + "src": "33169:5:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "33176:3:18", + "nodeType": "YulTypedName", + "src": "33176:3:18", + "type": "" + } + ], + "src": "33131:186:18" + }, + { + "body": { + "nativeSrc": "33402:464:18", + "nodeType": "YulBlock", + "src": "33402:464:18", + "statements": [ + { + "body": { + "nativeSrc": "33428:431:18", + "nodeType": "YulBlock", + "src": "33428:431:18", + "statements": [ + { + "nativeSrc": "33442:54:18", + "nodeType": "YulVariableDeclaration", + "src": "33442:54:18", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "33490:5:18", + "nodeType": "YulIdentifier", + "src": "33490:5:18" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "33458:31:18", + "nodeType": "YulIdentifier", + "src": "33458:31:18" + }, + "nativeSrc": "33458:38:18", + "nodeType": "YulFunctionCall", + "src": "33458:38:18" }, - "nativeSrc": "41988:19:18", - "nodeType": "YulFunctionCall", - "src": "41988:19:18" + "variables": [ + { + "name": "dataArea", + "nativeSrc": "33446:8:18", + "nodeType": "YulTypedName", + "src": "33446:8:18", + "type": "" + } + ] }, { - "arguments": [ - { - "name": "tail", - "nativeSrc": "42013:4:18", + "nativeSrc": "33509:63:18", + "nodeType": "YulVariableDeclaration", + "src": "33509:63:18", + "value": { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "33532:8:18", + "nodeType": "YulIdentifier", + "src": "33532:8:18" + }, + { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "33560:10:18", + "nodeType": "YulIdentifier", + "src": "33560:10:18" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "33542:17:18", + "nodeType": "YulIdentifier", + "src": "33542:17:18" + }, + "nativeSrc": "33542:29:18", + "nodeType": "YulFunctionCall", + "src": "33542:29:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "33528:3:18", "nodeType": "YulIdentifier", - "src": "42013:4:18" + "src": "33528:3:18" }, + "nativeSrc": "33528:44:18", + "nodeType": "YulFunctionCall", + "src": "33528:44:18" + }, + "variables": [ { - "name": "headStart", - "nativeSrc": "42019:9:18", - "nodeType": "YulIdentifier", - "src": "42019:9:18" + "name": "deleteStart", + "nativeSrc": "33513:11:18", + "nodeType": "YulTypedName", + "src": "33513:11:18", + "type": "" } - ], - "functionName": { - "name": "sub", - "nativeSrc": "42009:3:18", - "nodeType": "YulIdentifier", - "src": "42009:3:18" + ] + }, + { + "body": { + "nativeSrc": "33729:27:18", + "nodeType": "YulBlock", + "src": "33729:27:18", + "statements": [ + { + "nativeSrc": "33731:23:18", + "nodeType": "YulAssignment", + "src": "33731:23:18", + "value": { + "name": "dataArea", + "nativeSrc": "33746:8:18", + "nodeType": "YulIdentifier", + "src": "33746:8:18" + }, + "variableNames": [ + { + "name": "deleteStart", + "nativeSrc": "33731:11:18", + "nodeType": "YulIdentifier", + "src": "33731:11:18" + } + ] + } + ] }, - "nativeSrc": "42009:20:18", - "nodeType": "YulFunctionCall", - "src": "42009:20:18" + "condition": { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "33713:10:18", + "nodeType": "YulIdentifier", + "src": "33713:10:18" + }, + { + "kind": "number", + "nativeSrc": "33725:2:18", + "nodeType": "YulLiteral", + "src": "33725:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "33710:2:18", + "nodeType": "YulIdentifier", + "src": "33710:2:18" + }, + "nativeSrc": "33710:18:18", + "nodeType": "YulFunctionCall", + "src": "33710:18:18" + }, + "nativeSrc": "33707:49:18", + "nodeType": "YulIf", + "src": "33707:49:18" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nativeSrc": "33798:11:18", + "nodeType": "YulIdentifier", + "src": "33798:11:18" + }, + { + "arguments": [ + { + "name": "dataArea", + "nativeSrc": "33815:8:18", + "nodeType": "YulIdentifier", + "src": "33815:8:18" + }, + { + "arguments": [ + { + "name": "len", + "nativeSrc": "33843:3:18", + "nodeType": "YulIdentifier", + "src": "33843:3:18" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nativeSrc": "33825:17:18", + "nodeType": "YulIdentifier", + "src": "33825:17:18" + }, + "nativeSrc": "33825:22:18", + "nodeType": "YulFunctionCall", + "src": "33825:22:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "33811:3:18", + "nodeType": "YulIdentifier", + "src": "33811:3:18" + }, + "nativeSrc": "33811:37:18", + "nodeType": "YulFunctionCall", + "src": "33811:37:18" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nativeSrc": "33769:28:18", + "nodeType": "YulIdentifier", + "src": "33769:28:18" + }, + "nativeSrc": "33769:80:18", + "nodeType": "YulFunctionCall", + "src": "33769:80:18" + }, + "nativeSrc": "33769:80:18", + "nodeType": "YulExpressionStatement", + "src": "33769:80:18" } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "41981:6:18", - "nodeType": "YulIdentifier", - "src": "41981:6:18" - }, - "nativeSrc": "41981:49:18", - "nodeType": "YulFunctionCall", - "src": "41981:49:18" + ] }, - "nativeSrc": "41981:49:18", - "nodeType": "YulExpressionStatement", - "src": "41981:49:18" - }, - { - "nativeSrc": "42043:84:18", - "nodeType": "YulAssignment", - "src": "42043:84:18", - "value": { + "condition": { "arguments": [ { - "name": "value4", - "nativeSrc": "42113:6:18", + "name": "len", + "nativeSrc": "33419:3:18", "nodeType": "YulIdentifier", - "src": "42113:6:18" + "src": "33419:3:18" }, { - "name": "tail", - "nativeSrc": "42122:4:18", - "nodeType": "YulIdentifier", - "src": "42122:4:18" + "kind": "number", + "nativeSrc": "33424:2:18", + "nodeType": "YulLiteral", + "src": "33424:2:18", + "type": "", + "value": "31" } ], "functionName": { - "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", - "nativeSrc": "42051:61:18", + "name": "gt", + "nativeSrc": "33416:2:18", "nodeType": "YulIdentifier", - "src": "42051:61:18" + "src": "33416:2:18" }, - "nativeSrc": "42051:76:18", + "nativeSrc": "33416:11:18", "nodeType": "YulFunctionCall", - "src": "42051:76:18" + "src": "33416:11:18" }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "42043:4:18", - "nodeType": "YulIdentifier", - "src": "42043:4:18" - } - ] + "nativeSrc": "33413:446:18", + "nodeType": "YulIf", + "src": "33413:446:18" } ] }, - "name": "abi_encode_tuple_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed", - "nativeSrc": "41045:1093:18", + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "33323:543:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nativeSrc": "41313:9:18", - "nodeType": "YulTypedName", - "src": "41313:9:18", - "type": "" - }, - { - "name": "value4", - "nativeSrc": "41325:6:18", + "name": "array", + "nativeSrc": "33378:5:18", "nodeType": "YulTypedName", - "src": "41325:6:18", + "src": "33378:5:18", "type": "" }, { - "name": "value3", - "nativeSrc": "41333:6:18", + "name": "len", + "nativeSrc": "33385:3:18", "nodeType": "YulTypedName", - "src": "41333:6:18", + "src": "33385:3:18", "type": "" }, { - "name": "value2", - "nativeSrc": "41341:6:18", + "name": "startIndex", + "nativeSrc": "33390:10:18", "nodeType": "YulTypedName", - "src": "41341:6:18", + "src": "33390:10:18", "type": "" - }, + } + ], + "src": "33323:543:18" + }, + { + "body": { + "nativeSrc": "33935:54:18", + "nodeType": "YulBlock", + "src": "33935:54:18", + "statements": [ + { + "nativeSrc": "33945:37:18", + "nodeType": "YulAssignment", + "src": "33945:37:18", + "value": { + "arguments": [ + { + "name": "bits", + "nativeSrc": "33970:4:18", + "nodeType": "YulIdentifier", + "src": "33970:4:18" + }, + { + "name": "value", + "nativeSrc": "33976:5:18", + "nodeType": "YulIdentifier", + "src": "33976:5:18" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "33966:3:18", + "nodeType": "YulIdentifier", + "src": "33966:3:18" + }, + "nativeSrc": "33966:16:18", + "nodeType": "YulFunctionCall", + "src": "33966:16:18" + }, + "variableNames": [ + { + "name": "newValue", + "nativeSrc": "33945:8:18", + "nodeType": "YulIdentifier", + "src": "33945:8:18" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "33872:117:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ { - "name": "value1", - "nativeSrc": "41349:6:18", + "name": "bits", + "nativeSrc": "33910:4:18", "nodeType": "YulTypedName", - "src": "41349:6:18", + "src": "33910:4:18", "type": "" }, { - "name": "value0", - "nativeSrc": "41357:6:18", + "name": "value", + "nativeSrc": "33916:5:18", "nodeType": "YulTypedName", - "src": "41357:6:18", + "src": "33916:5:18", "type": "" } ], "returnVariables": [ { - "name": "tail", - "nativeSrc": "41368:4:18", + "name": "newValue", + "nativeSrc": "33926:8:18", "nodeType": "YulTypedName", - "src": "41368:4:18", + "src": "33926:8:18", "type": "" } ], - "src": "41045:1093:18" - } - ] - }, - "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function 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 abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n 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 function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_uint256t_string_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function array_allocation_size_t_array$_t_uint256_$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 // uint256[]\n function abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_uint256_$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_uint256(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // uint256[]\n function abi_decode_t_array$_t_uint256_$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_uint256_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_array$_t_uint256_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3 := abi_decode_t_array$_t_uint256_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value4 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_allocation_size_t_array$_t_address_$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 // address[]\n function abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_address_$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_address(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$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_address_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_array$_t_address_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_array$_t_uint256_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_array$_t_uint256_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encodeUpdatedPos_t_uint256_to_t_uint256(value0, pos) -> updatedPos {\n abi_encode_t_uint256_to_t_uint256(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // uint256[] -> uint256[]\n function abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_uint256_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_uint256_to_t_uint256(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_decode_tuple_t_addresst_uint256t_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256t_uint256t_string_memory_ptr(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value4 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function store_literal_in_memory_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe(memPtr) {\n\n mstore(add(memPtr, 0), \"ipfs://\")\n\n }\n\n function abi_encode_t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 7)\n store_literal_in_memory_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe(pos)\n end := add(pos, 7)\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 // string -> string\n function abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> ret {\n let slotValue := sload(value)\n let length := extract_byte_array_length(slotValue)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n switch and(slotValue, 1)\n case 0 {\n // short byte array\n mstore(pos, and(slotValue, not(0xff)))\n ret := add(pos, mul(length, iszero(iszero(length))))\n }\n case 1 {\n // long byte array\n let dataPos := array_dataslot_t_string_storage(value)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) } {\n mstore(add(pos, i), sload(dataPos))\n dataPos := add(dataPos, 1)\n }\n ret := add(pos, length)\n }\n }\n\n function store_literal_in_memory_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972(memPtr) {\n\n mstore(add(memPtr, 0), \".json\")\n\n }\n\n function abi_encode_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 5)\n store_literal_in_memory_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972(pos)\n end := add(pos, 5)\n }\n\n function abi_encode_tuple_packed_t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe_t_string_storage_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n pos := abi_encode_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n end := pos\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function cleanup_t_rational_1_by_1(value) -> cleaned {\n cleaned := value\n }\n\n function convert_t_rational_1_by_1_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_rational_1_by_1(value)))\n }\n\n function abi_encode_t_rational_1_by_1_to_t_uint256_fromStack(value, pos) {\n mstore(pos, convert_t_rational_1_by_1_to_t_uint256(value))\n }\n\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_rational_1_by_1_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function store_literal_in_memory_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527(memPtr) {\n\n mstore(add(memPtr, 0), \"/\")\n\n }\n\n function abi_encode_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 1)\n store_literal_in_memory_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527(pos)\n end := add(pos, 1)\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_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe_t_string_storage_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_t_string_memory_ptr_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_t_string_memory_ptr_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value2, value1, value0) -> end {\n\n pos := abi_encode_t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n pos := abi_encode_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value1, pos)\n\n pos := abi_encode_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value2, pos)\n\n pos := abi_encode_t_stringliteral_94311adc0a0cd4e10be11b23bd4316b8cffa4adf693e8f96f5c075aa439a7972_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n end := pos\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n }\n\n function 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 abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$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_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value4, tail)\n\n }\n\n function abi_decode_t_bytes4_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value2, tail)\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value3, tail)\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value4, tail)\n\n }\n\n }\n", - "id": 18, - "language": "Yul", - "name": "#utility.yul" - } - ], - "immutableReferences": {}, - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106101365760003560e01c80634e1273f4116100b8578063a22cb4651161007c578063a22cb4651461035d578063c5afac6614610379578063d547741f146103a9578063e985e9c5146103c5578063f242432a146103f5578063f5298aca1461041157610136565b80634e1273f4146102a557806361bc221a146102d5578063731133e9146102f357806391d148541461030f578063a217fddf1461033f57610136565b806324c20a34116100ff57806324c20a34146102175780632eb2c2d6146102355780632f2ff15d1461025157806336568abe1461026d5780633cad9b0d1461028957610136565b8062fdd58e1461013b57806301ffc9a71461016b5780630e89341c1461019b5780631c4ce135146101cb578063248a9ca3146101e7575b600080fd5b61015560048036038101906101509190611eb9565b61042d565b6040516101629190611f08565b60405180910390f35b61018560048036038101906101809190611f7b565b610487565b6040516101929190611fc3565b60405180910390f35b6101b560048036038101906101b09190611fde565b61048e565b6040516101c2919061209b565b60405180910390f35b6101e560048036038101906101e091906121f2565b6104d4565b005b61020160048036038101906101fc9190612284565b610573565b60405161020e91906122c0565b60405180910390f35b61021f610593565b60405161022c91906122c0565b60405180910390f35b61024f600480360381019061024a9190612444565b6105b7565b005b61026b60048036038101906102669190612513565b61065f565b005b61028760048036038101906102829190612513565b610681565b005b6102a3600480360381019061029e9190612553565b6106fc565b005b6102bf60048036038101906102ba919061265f565b61079e565b6040516102cc9190612795565b60405180910390f35b6102dd6108a7565b6040516102ea9190611f08565b60405180910390f35b61030d600480360381019061030891906127b7565b6108b1565b005b61032960048036038101906103249190612513565b610970565b6040516103369190611fc3565b60405180910390f35b6103476109db565b60405161035491906122c0565b60405180910390f35b61037760048036038101906103729190612866565b6109e2565b005b610393600480360381019061038e91906128a6565b6109f8565b6040516103a0919061209b565b60405180910390f35b6103c360048036038101906103be9190612513565b610a4c565b005b6103df60048036038101906103da9190612915565b610a6e565b6040516103ec9190611fc3565b60405180910390f35b61040f600480360381019061040a9190612955565b610b02565b005b61042b600480360381019061042691906129ec565b610baa565b005b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000919050565b60608161049a81610c88565b600560008481526020019081526020016000206040516020016104bd9190612bda565b604051602081830303815290604052915050919050565b7f18d9ff454de989bd126b06bd404b47ede75f9e65543e94e8d212f89d7dcbb87c6104fe81610cd1565b8160066000858152602001908152602001600020908161051e9190612d9e565b50823373ffffffffffffffffffffffffffffffffffffffff167fee5e19404a9c880f5e862aeeedfa8f4b4b427864327c17888eb6a34d549e5a5584604051610566919061209b565b60405180910390a3505050565b600060036000838152602001908152602001600020600101549050919050565b7f18d9ff454de989bd126b06bd404b47ede75f9e65543e94e8d212f89d7dcbb87c81565b60006105c1610ce5565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561060657506106048682610a6e565b155b1561064a5780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610641929190612e7f565b60405180910390fd5b6106578686868686610ced565b505050505050565b61066882610573565b61067181610cd1565b61067b8383610de5565b50505050565b610689610ce5565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146106ed576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106f78282610ed7565b505050565b80600560006004548152602001908152602001600020908161071e9190612d9e565b5061073d33600454600160405180602001604052806000815250610fca565b6004543373ffffffffffffffffffffffffffffffffffffffff167fc65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c1660405160405180910390a36004600081548092919061079690612ed7565b919050555050565b606081518351146107ea57815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016107e1929190612f1f565b60405180910390fd5b6000835167ffffffffffffffff811115610807576108066120c7565b5b6040519080825280602002602001820160405280156108355781602001602082028036833780820191505090505b50905060005b845181101561089c5761087261085a828761106390919063ffffffff16565b61086d838761107790919063ffffffff16565b61042d565b82828151811061088557610884612f48565b5b60200260200101818152505080600101905061083b565b508091505092915050565b6000600454905090565b826108bb81610c88565b60006108c7868661042d565b111561090c5784846040517f788d2556000000000000000000000000000000000000000000000000000000008152600401610903929190612f77565b60405180910390fd5b6109198585600185610fca565b838573ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f60016040516109619190612fdb565b60405180910390a35050505050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b81565b6109f46109ed610ce5565b838361108b565b5050565b606082610a0481610c88565b60066000868152602001908152602001600020610a20856111fb565b84604051602001610a3393929190613073565b6040516020818303038152906040529150509392505050565b610a5582610573565b610a5e81610cd1565b610a688383610ed7565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000610b0c610ce5565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610b515750610b4f8682610a6e565b155b15610b955780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610b8c929190612e7f565b60405180910390fd5b610ba286868686866112c9565b505050505050565b81610bb481610c88565b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614610c265783836040517f8626cc03000000000000000000000000000000000000000000000000000000008152600401610c1d929190612f77565b60405180910390fd5b610c32848460016113d4565b828473ffffffffffffffffffffffffffffffffffffffff167f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a6001604051610c7a9190612fdb565b60405180910390a350505050565b6004548110610cce57806040517fc80a970c000000000000000000000000000000000000000000000000000000008152600401610cc59190611f08565b60405180910390fd5b50565b610ce281610cdd610ce5565b61147b565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610d5f5760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610d5691906130d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610dd15760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610dc891906130d0565b60405180910390fd5b610dde85858585856114cc565b5050505050565b6000610df18383610970565b610ecc5760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610e69610ce5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610ed1565b600090505b92915050565b6000610ee38383610970565b15610fbf5760006003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610f5c610ce5565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050610fc4565b600090505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361103c5760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161103391906130d0565b60405180910390fd5b600080611049858561157e565b9150915061105b6000878484876114cc565b505050505050565b600060208202602084010151905092915050565b600060208202602084010151905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110fd5760006040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016110f491906130d0565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516111ee9190611fc3565b60405180910390a3505050565b60606000600161120a846115ae565b01905060008167ffffffffffffffff811115611229576112286120c7565b5b6040519080825280601f01601f19166020018201604052801561125b5781602001600182028036833780820191505090505b509050600082602001820190505b6001156112be578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816112b2576112b16130eb565b5b04945060008503611269575b819350505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361133b5760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161133291906130d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036113ad5760006040517f01a835140000000000000000000000000000000000000000000000000000000081526004016113a491906130d0565b60405180910390fd5b6000806113ba858561157e565b915091506113cb87878484876114cc565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114465760006040517f01a8351400000000000000000000000000000000000000000000000000000000815260040161143d91906130d0565b60405180910390fd5b600080611453848461157e565b915091506114748560008484604051806020016040528060008152506114cc565b5050505050565b6114858282610970565b6114c85780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016114bf92919061311a565b60405180910390fd5b5050565b6114d885858585611701565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614611577576000611516610ce5565b9050600184510361156657600061153760008661107790919063ffffffff16565b9050600061154f60008661107790919063ffffffff16565b905061155f838989858589611aa9565b5050611575565b611574818787878787611c5d565b5b505b5050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061160c577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611602576116016130eb565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611649576d04ee2d6d415b85acef8100000000838161163f5761163e6130eb565b5b0492506020810190505b662386f26fc10000831061167857662386f26fc10000838161166e5761166d6130eb565b5b0492506010810190505b6305f5e10083106116a1576305f5e1008381611697576116966130eb565b5b0492506008810190505b61271083106116c65761271083816116bc576116bb6130eb565b5b0492506004810190505b606483106116e957606483816116df576116de6130eb565b5b0492506002810190505b600a83106116f8576001810190505b80915050919050565b805182511461174b57815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401611742929190612f1f565b60405180910390fd5b6000611755610ce5565b905060005b8351811015611964576000611778828661107790919063ffffffff16565b9050600061178f838661107790919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146118bc57600080600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561186457888183856040517f03dee4c500000000000000000000000000000000000000000000000000000000815260040161185b9493929190613143565b60405180910390fd5b81810360008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611957578060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461194f9190613188565b925050819055505b505080600101905061175a565b506001835103611a2357600061198460008561107790919063ffffffff16565b9050600061199c60008561107790919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611a14929190612f1f565b60405180910390a45050611aa2565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611a999291906131bc565b60405180910390a45b5050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611c55578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611b0a959493929190613248565b6020604051808303816000875af1925050508015611b4657506040513d601f19601f82011682018060405250810190611b4391906132b7565b60015b611bca573d8060008114611b76576040519150601f19603f3d011682016040523d82523d6000602084013e611b7b565b606091505b506000815103611bc257846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611bb991906130d0565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611c5357846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611c4a91906130d0565b60405180910390fd5b505b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611e09578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611cbe9594939291906132e4565b6020604051808303816000875af1925050508015611cfa57506040513d601f19601f82011682018060405250810190611cf791906132b7565b60015b611d7e573d8060008114611d2a576040519150601f19603f3d011682016040523d82523d6000602084013e611d2f565b606091505b506000815103611d7657846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611d6d91906130d0565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611e0757846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611dfe91906130d0565b60405180910390fd5b505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611e5082611e25565b9050919050565b611e6081611e45565b8114611e6b57600080fd5b50565b600081359050611e7d81611e57565b92915050565b6000819050919050565b611e9681611e83565b8114611ea157600080fd5b50565b600081359050611eb381611e8d565b92915050565b60008060408385031215611ed057611ecf611e1b565b5b6000611ede85828601611e6e565b9250506020611eef85828601611ea4565b9150509250929050565b611f0281611e83565b82525050565b6000602082019050611f1d6000830184611ef9565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611f5881611f23565b8114611f6357600080fd5b50565b600081359050611f7581611f4f565b92915050565b600060208284031215611f9157611f90611e1b565b5b6000611f9f84828501611f66565b91505092915050565b60008115159050919050565b611fbd81611fa8565b82525050565b6000602082019050611fd86000830184611fb4565b92915050565b600060208284031215611ff457611ff3611e1b565b5b600061200284828501611ea4565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561204557808201518184015260208101905061202a565b60008484015250505050565b6000601f19601f8301169050919050565b600061206d8261200b565b6120778185612016565b9350612087818560208601612027565b61209081612051565b840191505092915050565b600060208201905081810360008301526120b58184612062565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6120ff82612051565b810181811067ffffffffffffffff8211171561211e5761211d6120c7565b5b80604052505050565b6000612131611e11565b905061213d82826120f6565b919050565b600067ffffffffffffffff82111561215d5761215c6120c7565b5b61216682612051565b9050602081019050919050565b82818337600083830152505050565b600061219561219084612142565b612127565b9050828152602081018484840111156121b1576121b06120c2565b5b6121bc848285612173565b509392505050565b600082601f8301126121d9576121d86120bd565b5b81356121e9848260208601612182565b91505092915050565b6000806040838503121561220957612208611e1b565b5b600061221785828601611ea4565b925050602083013567ffffffffffffffff81111561223857612237611e20565b5b612244858286016121c4565b9150509250929050565b6000819050919050565b6122618161224e565b811461226c57600080fd5b50565b60008135905061227e81612258565b92915050565b60006020828403121561229a57612299611e1b565b5b60006122a88482850161226f565b91505092915050565b6122ba8161224e565b82525050565b60006020820190506122d560008301846122b1565b92915050565b600067ffffffffffffffff8211156122f6576122f56120c7565b5b602082029050602081019050919050565b600080fd5b600061231f61231a846122db565b612127565b9050808382526020820190506020840283018581111561234257612341612307565b5b835b8181101561236b57806123578882611ea4565b845260208401935050602081019050612344565b5050509392505050565b600082601f83011261238a576123896120bd565b5b813561239a84826020860161230c565b91505092915050565b600067ffffffffffffffff8211156123be576123bd6120c7565b5b6123c782612051565b9050602081019050919050565b60006123e76123e2846123a3565b612127565b905082815260208101848484011115612403576124026120c2565b5b61240e848285612173565b509392505050565b600082601f83011261242b5761242a6120bd565b5b813561243b8482602086016123d4565b91505092915050565b600080600080600060a086880312156124605761245f611e1b565b5b600061246e88828901611e6e565b955050602061247f88828901611e6e565b945050604086013567ffffffffffffffff8111156124a05761249f611e20565b5b6124ac88828901612375565b935050606086013567ffffffffffffffff8111156124cd576124cc611e20565b5b6124d988828901612375565b925050608086013567ffffffffffffffff8111156124fa576124f9611e20565b5b61250688828901612416565b9150509295509295909350565b6000806040838503121561252a57612529611e1b565b5b60006125388582860161226f565b925050602061254985828601611e6e565b9150509250929050565b60006020828403121561256957612568611e1b565b5b600082013567ffffffffffffffff81111561258757612586611e20565b5b612593848285016121c4565b91505092915050565b600067ffffffffffffffff8211156125b7576125b66120c7565b5b602082029050602081019050919050565b60006125db6125d68461259c565b612127565b905080838252602082019050602084028301858111156125fe576125fd612307565b5b835b8181101561262757806126138882611e6e565b845260208401935050602081019050612600565b5050509392505050565b600082601f830112612646576126456120bd565b5b81356126568482602086016125c8565b91505092915050565b6000806040838503121561267657612675611e1b565b5b600083013567ffffffffffffffff81111561269457612693611e20565b5b6126a085828601612631565b925050602083013567ffffffffffffffff8111156126c1576126c0611e20565b5b6126cd85828601612375565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61270c81611e83565b82525050565b600061271e8383612703565b60208301905092915050565b6000602082019050919050565b6000612742826126d7565b61274c81856126e2565b9350612757836126f3565b8060005b8381101561278857815161276f8882612712565b975061277a8361272a565b92505060018101905061275b565b5085935050505092915050565b600060208201905081810360008301526127af8184612737565b905092915050565b600080600080608085870312156127d1576127d0611e1b565b5b60006127df87828801611e6e565b94505060206127f087828801611ea4565b935050604061280187828801611ea4565b925050606085013567ffffffffffffffff81111561282257612821611e20565b5b61282e87828801612416565b91505092959194509250565b61284381611fa8565b811461284e57600080fd5b50565b6000813590506128608161283a565b92915050565b6000806040838503121561287d5761287c611e1b565b5b600061288b85828601611e6e565b925050602061289c85828601612851565b9150509250929050565b6000806000606084860312156128bf576128be611e1b565b5b60006128cd86828701611ea4565b93505060206128de86828701611ea4565b925050604084013567ffffffffffffffff8111156128ff576128fe611e20565b5b61290b868287016121c4565b9150509250925092565b6000806040838503121561292c5761292b611e1b565b5b600061293a85828601611e6e565b925050602061294b85828601611e6e565b9150509250929050565b600080600080600060a0868803121561297157612970611e1b565b5b600061297f88828901611e6e565b955050602061299088828901611e6e565b94505060406129a188828901611ea4565b93505060606129b288828901611ea4565b925050608086013567ffffffffffffffff8111156129d3576129d2611e20565b5b6129df88828901612416565b9150509295509295909350565b600080600060608486031215612a0557612a04611e1b565b5b6000612a1386828701611e6e565b9350506020612a2486828701611ea4565b9250506040612a3586828701611ea4565b9150509250925092565b600081905092915050565b7f697066733a2f2f00000000000000000000000000000000000000000000000000600082015250565b6000612a80600783612a3f565b9150612a8b82612a4a565b600782019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612add57607f821691505b602082108103612af057612aef612a96565b5b50919050565b60008190508160005260206000209050919050565b60008154612b1881612ac5565b612b228186612a3f565b94506001821660008114612b3d5760018114612b5257612b85565b60ff1983168652811515820286019350612b85565b612b5b85612af6565b60005b83811015612b7d57815481890152600182019150602081019050612b5e565b838801955050505b50505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b6000612bc4600583612a3f565b9150612bcf82612b8e565b600582019050919050565b6000612be582612a73565b9150612bf18284612b0b565b9150612bfc82612bb7565b915081905092915050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612c547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612c17565b612c5e8683612c17565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612c9b612c96612c9184611e83565b612c76565b611e83565b9050919050565b6000819050919050565b612cb583612c80565b612cc9612cc182612ca2565b848454612c24565b825550505050565b600090565b612cde612cd1565b612ce9818484612cac565b505050565b5b81811015612d0d57612d02600082612cd6565b600181019050612cef565b5050565b601f821115612d5257612d2381612af6565b612d2c84612c07565b81016020851015612d3b578190505b612d4f612d4785612c07565b830182612cee565b50505b505050565b600082821c905092915050565b6000612d7560001984600802612d57565b1980831691505092915050565b6000612d8e8383612d64565b9150826002028217905092915050565b612da78261200b565b67ffffffffffffffff811115612dc057612dbf6120c7565b5b612dca8254612ac5565b612dd5828285612d11565b600060209050601f831160018114612e085760008415612df6578287015190505b612e008582612d82565b865550612e68565b601f198416612e1686612af6565b60005b82811015612e3e57848901518255600182019150602085019450602081019050612e19565b86831015612e5b5784890151612e57601f891682612d64565b8355505b6001600288020188555050505b505050505050565b612e7981611e45565b82525050565b6000604082019050612e946000830185612e70565b612ea16020830184612e70565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ee282611e83565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f1457612f13612ea8565b5b600182019050919050565b6000604082019050612f346000830185611ef9565b612f416020830184611ef9565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050612f8c6000830185612e70565b612f996020830184611ef9565b9392505050565b6000819050919050565b6000612fc5612fc0612fbb84612fa0565b612c76565b611e83565b9050919050565b612fd581612faa565b82525050565b6000602082019050612ff06000830184612fcc565b92915050565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b600061302c600183612a3f565b915061303782612ff6565b600182019050919050565b600061304d8261200b565b6130578185612a3f565b9350613067818560208601612027565b80840191505092915050565b600061307e82612a73565b915061308a8286612b0b565b91506130958261301f565b91506130a18285613042565b91506130ac8261301f565b91506130b88284613042565b91506130c382612bb7565b9150819050949350505050565b60006020820190506130e56000830184612e70565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600060408201905061312f6000830185612e70565b61313c60208301846122b1565b9392505050565b60006080820190506131586000830187612e70565b6131656020830186611ef9565b6131726040830185611ef9565b61317f6060830184611ef9565b95945050505050565b600061319382611e83565b915061319e83611e83565b92508282019050808211156131b6576131b5612ea8565b5b92915050565b600060408201905081810360008301526131d68185612737565b905081810360208301526131ea8184612737565b90509392505050565b600081519050919050565b600082825260208201905092915050565b600061321a826131f3565b61322481856131fe565b9350613234818560208601612027565b61323d81612051565b840191505092915050565b600060a08201905061325d6000830188612e70565b61326a6020830187612e70565b6132776040830186611ef9565b6132846060830185611ef9565b8181036080830152613296818461320f565b90509695505050505050565b6000815190506132b181611f4f565b92915050565b6000602082840312156132cd576132cc611e1b565b5b60006132db848285016132a2565b91505092915050565b600060a0820190506132f96000830188612e70565b6133066020830187612e70565b81810360408301526133188186612737565b9050818103606083015261332c8185612737565b90508181036080830152613340818461320f565b9050969550505050505056fea2646970667358221220294f8401608e8b44e40d642ddeddde899f8a456400db1a2f81df9ef8d59242d564736f6c63430008180033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x136 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4E1273F4 GT PUSH2 0xB8 JUMPI DUP1 PUSH4 0xA22CB465 GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x35D JUMPI DUP1 PUSH4 0xC5AFAC66 EQ PUSH2 0x379 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x3A9 JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x3C5 JUMPI DUP1 PUSH4 0xF242432A EQ PUSH2 0x3F5 JUMPI DUP1 PUSH4 0xF5298ACA EQ PUSH2 0x411 JUMPI PUSH2 0x136 JUMP JUMPDEST DUP1 PUSH4 0x4E1273F4 EQ PUSH2 0x2A5 JUMPI DUP1 PUSH4 0x61BC221A EQ PUSH2 0x2D5 JUMPI DUP1 PUSH4 0x731133E9 EQ PUSH2 0x2F3 JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x30F JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x33F JUMPI PUSH2 0x136 JUMP JUMPDEST DUP1 PUSH4 0x24C20A34 GT PUSH2 0xFF JUMPI DUP1 PUSH4 0x24C20A34 EQ PUSH2 0x217 JUMPI DUP1 PUSH4 0x2EB2C2D6 EQ PUSH2 0x235 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x251 JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x26D JUMPI DUP1 PUSH4 0x3CAD9B0D EQ PUSH2 0x289 JUMPI PUSH2 0x136 JUMP JUMPDEST DUP1 PUSH3 0xFDD58E EQ PUSH2 0x13B JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x16B JUMPI DUP1 PUSH4 0xE89341C EQ PUSH2 0x19B JUMPI DUP1 PUSH4 0x1C4CE135 EQ PUSH2 0x1CB JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x1E7 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x155 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x150 SWAP2 SWAP1 PUSH2 0x1EB9 JUMP JUMPDEST PUSH2 0x42D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x162 SWAP2 SWAP1 PUSH2 0x1F08 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x185 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x180 SWAP2 SWAP1 PUSH2 0x1F7B JUMP JUMPDEST PUSH2 0x487 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x192 SWAP2 SWAP1 PUSH2 0x1FC3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1B5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1B0 SWAP2 SWAP1 PUSH2 0x1FDE JUMP JUMPDEST PUSH2 0x48E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1C2 SWAP2 SWAP1 PUSH2 0x209B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1E5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1E0 SWAP2 SWAP1 PUSH2 0x21F2 JUMP JUMPDEST PUSH2 0x4D4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x201 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1FC SWAP2 SWAP1 PUSH2 0x2284 JUMP JUMPDEST PUSH2 0x573 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x20E SWAP2 SWAP1 PUSH2 0x22C0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x21F PUSH2 0x593 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x22C SWAP2 SWAP1 PUSH2 0x22C0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x24F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x24A SWAP2 SWAP1 PUSH2 0x2444 JUMP JUMPDEST PUSH2 0x5B7 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x26B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x266 SWAP2 SWAP1 PUSH2 0x2513 JUMP JUMPDEST PUSH2 0x65F JUMP JUMPDEST STOP JUMPDEST PUSH2 0x287 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x282 SWAP2 SWAP1 PUSH2 0x2513 JUMP JUMPDEST PUSH2 0x681 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2A3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x29E SWAP2 SWAP1 PUSH2 0x2553 JUMP JUMPDEST PUSH2 0x6FC JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2BF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2BA SWAP2 SWAP1 PUSH2 0x265F JUMP JUMPDEST PUSH2 0x79E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2CC SWAP2 SWAP1 PUSH2 0x2795 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2DD PUSH2 0x8A7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2EA SWAP2 SWAP1 PUSH2 0x1F08 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x30D PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x308 SWAP2 SWAP1 PUSH2 0x27B7 JUMP JUMPDEST PUSH2 0x8B1 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x329 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x324 SWAP2 SWAP1 PUSH2 0x2513 JUMP JUMPDEST PUSH2 0x970 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x336 SWAP2 SWAP1 PUSH2 0x1FC3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x347 PUSH2 0x9DB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x354 SWAP2 SWAP1 PUSH2 0x22C0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x377 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x372 SWAP2 SWAP1 PUSH2 0x2866 JUMP JUMPDEST PUSH2 0x9E2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x393 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x38E SWAP2 SWAP1 PUSH2 0x28A6 JUMP JUMPDEST PUSH2 0x9F8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3A0 SWAP2 SWAP1 PUSH2 0x209B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3C3 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3BE SWAP2 SWAP1 PUSH2 0x2513 JUMP JUMPDEST PUSH2 0xA4C JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3DF PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3DA SWAP2 SWAP1 PUSH2 0x2915 JUMP JUMPDEST PUSH2 0xA6E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3EC SWAP2 SWAP1 PUSH2 0x1FC3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x40F PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x40A SWAP2 SWAP1 PUSH2 0x2955 JUMP JUMPDEST PUSH2 0xB02 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x42B PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x426 SWAP2 SWAP1 PUSH2 0x29EC JUMP JUMPDEST PUSH2 0xBAA JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0x49A DUP2 PUSH2 0xC88 JUMP JUMPDEST PUSH1 0x5 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x4BD SWAP2 SWAP1 PUSH2 0x2BDA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x18D9FF454DE989BD126B06BD404B47EDE75F9E65543E94E8D212F89D7DCBB87C PUSH2 0x4FE DUP2 PUSH2 0xCD1 JUMP JUMPDEST DUP2 PUSH1 0x6 PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP2 PUSH2 0x51E SWAP2 SWAP1 PUSH2 0x2D9E JUMP JUMPDEST POP DUP3 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xEE5E19404A9C880F5E862AEEEDFA8F4B4B427864327C17888EB6A34D549E5A55 DUP5 PUSH1 0x40 MLOAD PUSH2 0x566 SWAP2 SWAP1 PUSH2 0x209B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x18D9FF454DE989BD126B06BD404B47EDE75F9E65543E94E8D212F89D7DCBB87C DUP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x5C1 PUSH2 0xCE5 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x606 JUMPI POP PUSH2 0x604 DUP7 DUP3 PUSH2 0xA6E JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x64A JUMPI DUP1 DUP7 PUSH1 0x40 MLOAD PUSH32 0xE237D92200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x641 SWAP3 SWAP2 SWAP1 PUSH2 0x2E7F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x657 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0xCED JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x668 DUP3 PUSH2 0x573 JUMP JUMPDEST PUSH2 0x671 DUP2 PUSH2 0xCD1 JUMP JUMPDEST PUSH2 0x67B DUP4 DUP4 PUSH2 0xDE5 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x689 PUSH2 0xCE5 JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x6ED JUMPI PUSH1 0x40 MLOAD PUSH32 0x6697B23200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x6F7 DUP3 DUP3 PUSH2 0xED7 JUMP JUMPDEST POP POP POP JUMP JUMPDEST DUP1 PUSH1 0x5 PUSH1 0x0 PUSH1 0x4 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SWAP1 DUP2 PUSH2 0x71E SWAP2 SWAP1 PUSH2 0x2D9E JUMP JUMPDEST POP PUSH2 0x73D CALLER PUSH1 0x4 SLOAD PUSH1 0x1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0xFCA JUMP JUMPDEST PUSH1 0x4 SLOAD CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC65A3F767206D2FDCEDE0B094A4840E01C0DD0BE1888B5BA800346EAA0123C16 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x4 PUSH1 0x0 DUP2 SLOAD DUP1 SWAP3 SWAP2 SWAP1 PUSH2 0x796 SWAP1 PUSH2 0x2ED7 JUMP JUMPDEST SWAP2 SWAP1 POP SSTORE POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0x7EA JUMPI DUP2 MLOAD DUP4 MLOAD PUSH1 0x40 MLOAD PUSH32 0x5B05999100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7E1 SWAP3 SWAP2 SWAP1 PUSH2 0x2F1F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x807 JUMPI PUSH2 0x806 PUSH2 0x20C7 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 0x835 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x89C JUMPI PUSH2 0x872 PUSH2 0x85A DUP3 DUP8 PUSH2 0x1063 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x86D DUP4 DUP8 PUSH2 0x1077 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x42D JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x885 JUMPI PUSH2 0x884 PUSH2 0x2F48 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x83B JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST DUP3 PUSH2 0x8BB DUP2 PUSH2 0xC88 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8C7 DUP7 DUP7 PUSH2 0x42D JUMP JUMPDEST GT ISZERO PUSH2 0x90C JUMPI DUP5 DUP5 PUSH1 0x40 MLOAD PUSH32 0x788D255600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x903 SWAP3 SWAP2 SWAP1 PUSH2 0x2F77 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x919 DUP6 DUP6 PUSH1 0x1 DUP6 PUSH2 0xFCA JUMP JUMPDEST DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4C209B5FC8AD50758F13E2E1088BA56A560DFF690A1C6FEF26394F4C03821C4F PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x961 SWAP2 SWAP1 PUSH2 0x2FDB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 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 SHL DUP2 JUMP JUMPDEST PUSH2 0x9F4 PUSH2 0x9ED PUSH2 0xCE5 JUMP JUMPDEST DUP4 DUP4 PUSH2 0x108B JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0xA04 DUP2 PUSH2 0xC88 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH2 0xA20 DUP6 PUSH2 0x11FB JUMP JUMPDEST DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0xA33 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3073 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xA55 DUP3 PUSH2 0x573 JUMP JUMPDEST PUSH2 0xA5E DUP2 PUSH2 0xCD1 JUMP JUMPDEST PUSH2 0xA68 DUP4 DUP4 PUSH2 0xED7 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB0C PUSH2 0xCE5 JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0xB51 JUMPI POP PUSH2 0xB4F DUP7 DUP3 PUSH2 0xA6E JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0xB95 JUMPI DUP1 DUP7 PUSH1 0x40 MLOAD PUSH32 0xE237D92200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB8C SWAP3 SWAP2 SWAP1 PUSH2 0x2E7F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xBA2 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x12C9 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH2 0xBB4 DUP2 PUSH2 0xC88 JUMP JUMPDEST CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xC26 JUMPI DUP4 DUP4 PUSH1 0x40 MLOAD PUSH32 0x8626CC0300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1D SWAP3 SWAP2 SWAP1 PUSH2 0x2F77 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC32 DUP5 DUP5 PUSH1 0x1 PUSH2 0x13D4 JUMP JUMPDEST DUP3 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x49995E5DD6158CF69AD3E9777C46755A1A826A446C6416992167462DAD033B2A PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0xC7A SWAP2 SWAP1 PUSH2 0x2FDB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 LT PUSH2 0xCCE JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0xC80A970C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCC5 SWAP2 SWAP1 PUSH2 0x1F08 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0xCE2 DUP2 PUSH2 0xCDD PUSH2 0xCE5 JUMP JUMPDEST PUSH2 0x147B JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xD5F JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xD56 SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xDD1 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xDC8 SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xDDE DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0x14CC JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDF1 DUP4 DUP4 PUSH2 0x970 JUMP JUMPDEST PUSH2 0xECC JUMPI PUSH1 0x1 PUSH1 0x3 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 0xE69 PUSH2 0xCE5 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 0xED1 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEE3 DUP4 DUP4 PUSH2 0x970 JUMP JUMPDEST ISZERO PUSH2 0xFBF JUMPI PUSH1 0x0 PUSH1 0x3 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 0xF5C PUSH2 0xCE5 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 0xFC4 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x103C JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1033 SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1049 DUP6 DUP6 PUSH2 0x157E JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x105B PUSH1 0x0 DUP8 DUP5 DUP5 DUP8 PUSH2 0x14CC JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MUL PUSH1 0x20 DUP5 ADD ADD MLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MUL PUSH1 0x20 DUP5 ADD ADD MLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x10FD JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xCED3E10000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10F4 SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 DUP4 PUSH1 0x40 MLOAD PUSH2 0x11EE SWAP2 SWAP1 PUSH2 0x1FC3 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH2 0x120A DUP5 PUSH2 0x15AE JUMP JUMPDEST ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1229 JUMPI PUSH2 0x1228 PUSH2 0x20C7 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x125B JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x20 ADD DUP3 ADD SWAP1 POP JUMPDEST PUSH1 0x1 ISZERO PUSH2 0x12BE JUMPI DUP1 DUP1 PUSH1 0x1 SWAP1 SUB SWAP2 POP POP PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DUP2 PUSH2 0x12B2 JUMPI PUSH2 0x12B1 PUSH2 0x30EB JUMP JUMPDEST JUMPDEST DIV SWAP5 POP PUSH1 0x0 DUP6 SUB PUSH2 0x1269 JUMPI JUMPDEST DUP2 SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x133B JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1332 SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x13AD JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x13A4 SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x13BA DUP6 DUP6 PUSH2 0x157E JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x13CB DUP8 DUP8 DUP5 DUP5 DUP8 PUSH2 0x14CC JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1446 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x143D SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1453 DUP5 DUP5 PUSH2 0x157E JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x1474 DUP6 PUSH1 0x0 DUP5 DUP5 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x14CC JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1485 DUP3 DUP3 PUSH2 0x970 JUMP JUMPDEST PUSH2 0x14C8 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH32 0xE2517D3F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14BF SWAP3 SWAP2 SWAP1 PUSH2 0x311A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x14D8 DUP6 DUP6 DUP6 DUP6 PUSH2 0x1701 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1577 JUMPI PUSH1 0x0 PUSH2 0x1516 PUSH2 0xCE5 JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP5 MLOAD SUB PUSH2 0x1566 JUMPI PUSH1 0x0 PUSH2 0x1537 PUSH1 0x0 DUP7 PUSH2 0x1077 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x154F PUSH1 0x0 DUP7 PUSH2 0x1077 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH2 0x155F DUP4 DUP10 DUP10 DUP6 DUP6 DUP10 PUSH2 0x1AA9 JUMP JUMPDEST POP POP PUSH2 0x1575 JUMP JUMPDEST PUSH2 0x1574 DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x1C5D JUMP JUMPDEST JUMPDEST POP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1 DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH1 0x1 DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD PUSH1 0x40 MSTORE SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x160C JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DUP2 PUSH2 0x1602 JUMPI PUSH2 0x1601 PUSH2 0x30EB JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x40 DUP2 ADD SWAP1 POP JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x1649 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DUP2 PUSH2 0x163F JUMPI PUSH2 0x163E PUSH2 0x30EB JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x20 DUP2 ADD SWAP1 POP JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x1678 JUMPI PUSH7 0x2386F26FC10000 DUP4 DUP2 PUSH2 0x166E JUMPI PUSH2 0x166D PUSH2 0x30EB JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x10 DUP2 ADD SWAP1 POP JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x16A1 JUMPI PUSH4 0x5F5E100 DUP4 DUP2 PUSH2 0x1697 JUMPI PUSH2 0x1696 PUSH2 0x30EB JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x8 DUP2 ADD SWAP1 POP JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x16C6 JUMPI PUSH2 0x2710 DUP4 DUP2 PUSH2 0x16BC JUMPI PUSH2 0x16BB PUSH2 0x30EB JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x4 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x16E9 JUMPI PUSH1 0x64 DUP4 DUP2 PUSH2 0x16DF JUMPI PUSH2 0x16DE PUSH2 0x30EB JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x2 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x16F8 JUMPI PUSH1 0x1 DUP2 ADD SWAP1 POP JUMPDEST DUP1 SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD DUP3 MLOAD EQ PUSH2 0x174B JUMPI DUP2 MLOAD DUP2 MLOAD PUSH1 0x40 MLOAD PUSH32 0x5B05999100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1742 SWAP3 SWAP2 SWAP1 PUSH2 0x2F1F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1755 PUSH2 0xCE5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x1964 JUMPI PUSH1 0x0 PUSH2 0x1778 DUP3 DUP7 PUSH2 0x1077 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x178F DUP4 DUP7 PUSH2 0x1077 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x18BC JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x1864 JUMPI DUP9 DUP2 DUP4 DUP6 PUSH1 0x40 MLOAD PUSH32 0x3DEE4C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x185B SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3143 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1957 JUMPI DUP1 PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x194F SWAP2 SWAP1 PUSH2 0x3188 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x175A JUMP JUMPDEST POP PUSH1 0x1 DUP4 MLOAD SUB PUSH2 0x1A23 JUMPI PUSH1 0x0 PUSH2 0x1984 PUSH1 0x0 DUP6 PUSH2 0x1077 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x199C PUSH1 0x0 DUP6 PUSH2 0x1077 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x1A14 SWAP3 SWAP2 SWAP1 PUSH2 0x2F1F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP PUSH2 0x1AA2 JUMP JUMPDEST DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4A39DC06D4C0DBC64B70AF90FD698A233A518AA5D07E595D983B8C0526C8F7FB DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1A99 SWAP3 SWAP2 SWAP1 PUSH2 0x31BC JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x1C55 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF23A6E61 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B0A SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3248 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1B46 JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1B43 SWAP2 SWAP1 PUSH2 0x32B7 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1BCA JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1B76 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1B7B JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x1BC2 JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1BB9 SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x1C53 JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1C4A SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x1E09 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xBC197C81 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1CBE SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x32E4 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1CFA JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1CF7 SWAP2 SWAP1 PUSH2 0x32B7 JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1D7E JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1D2A JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1D2F JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x1D76 JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1D6D SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x1E07 JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1DFE SWAP2 SWAP1 PUSH2 0x30D0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1E50 DUP3 PUSH2 0x1E25 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1E60 DUP2 PUSH2 0x1E45 JUMP JUMPDEST DUP2 EQ PUSH2 0x1E6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1E7D DUP2 PUSH2 0x1E57 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1E96 DUP2 PUSH2 0x1E83 JUMP JUMPDEST DUP2 EQ PUSH2 0x1EA1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1EB3 DUP2 PUSH2 0x1E8D JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1ED0 JUMPI PUSH2 0x1ECF PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1EDE DUP6 DUP3 DUP7 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x1EEF DUP6 DUP3 DUP7 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x1F02 DUP2 PUSH2 0x1E83 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1F1D PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1EF9 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1F58 DUP2 PUSH2 0x1F23 JUMP JUMPDEST DUP2 EQ PUSH2 0x1F63 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x1F75 DUP2 PUSH2 0x1F4F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F91 JUMPI PUSH2 0x1F90 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x1F9F DUP5 DUP3 DUP6 ADD PUSH2 0x1F66 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1FBD DUP2 PUSH2 0x1FA8 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x1FD8 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x1FB4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FF4 JUMPI PUSH2 0x1FF3 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2002 DUP5 DUP3 DUP6 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2045 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x202A JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x206D DUP3 PUSH2 0x200B JUMP JUMPDEST PUSH2 0x2077 DUP2 DUP6 PUSH2 0x2016 JUMP JUMPDEST SWAP4 POP PUSH2 0x2087 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2027 JUMP JUMPDEST PUSH2 0x2090 DUP2 PUSH2 0x2051 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 0x20B5 DUP2 DUP5 PUSH2 0x2062 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x20FF DUP3 PUSH2 0x2051 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x211E JUMPI PUSH2 0x211D PUSH2 0x20C7 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2131 PUSH2 0x1E11 JUMP JUMPDEST SWAP1 POP PUSH2 0x213D DUP3 DUP3 PUSH2 0x20F6 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x215D JUMPI PUSH2 0x215C PUSH2 0x20C7 JUMP JUMPDEST JUMPDEST PUSH2 0x2166 DUP3 PUSH2 0x2051 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 0x2195 PUSH2 0x2190 DUP5 PUSH2 0x2142 JUMP JUMPDEST PUSH2 0x2127 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x21B1 JUMPI PUSH2 0x21B0 PUSH2 0x20C2 JUMP JUMPDEST JUMPDEST PUSH2 0x21BC DUP5 DUP3 DUP6 PUSH2 0x2173 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x21D9 JUMPI PUSH2 0x21D8 PUSH2 0x20BD JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x21E9 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2182 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2209 JUMPI PUSH2 0x2208 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2217 DUP6 DUP3 DUP7 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2238 JUMPI PUSH2 0x2237 PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x2244 DUP6 DUP3 DUP7 ADD PUSH2 0x21C4 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2261 DUP2 PUSH2 0x224E JUMP JUMPDEST DUP2 EQ PUSH2 0x226C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x227E DUP2 PUSH2 0x2258 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x229A JUMPI PUSH2 0x2299 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x22A8 DUP5 DUP3 DUP6 ADD PUSH2 0x226F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x22BA DUP2 PUSH2 0x224E JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x22D5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x22B1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x22F6 JUMPI PUSH2 0x22F5 PUSH2 0x20C7 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x231F PUSH2 0x231A DUP5 PUSH2 0x22DB JUMP JUMPDEST PUSH2 0x2127 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 0x2342 JUMPI PUSH2 0x2341 PUSH2 0x2307 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x236B JUMPI DUP1 PUSH2 0x2357 DUP9 DUP3 PUSH2 0x1EA4 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2344 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x238A JUMPI PUSH2 0x2389 PUSH2 0x20BD JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x239A DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x230C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x23BE JUMPI PUSH2 0x23BD PUSH2 0x20C7 JUMP JUMPDEST JUMPDEST PUSH2 0x23C7 DUP3 PUSH2 0x2051 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x23E7 PUSH2 0x23E2 DUP5 PUSH2 0x23A3 JUMP JUMPDEST PUSH2 0x2127 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2403 JUMPI PUSH2 0x2402 PUSH2 0x20C2 JUMP JUMPDEST JUMPDEST PUSH2 0x240E DUP5 DUP3 DUP6 PUSH2 0x2173 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x242B JUMPI PUSH2 0x242A PUSH2 0x20BD JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x243B DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x23D4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2460 JUMPI PUSH2 0x245F PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x246E DUP9 DUP3 DUP10 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x247F DUP9 DUP3 DUP10 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x24A0 JUMPI PUSH2 0x249F PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x24AC DUP9 DUP3 DUP10 ADD PUSH2 0x2375 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x24CD JUMPI PUSH2 0x24CC PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x24D9 DUP9 DUP3 DUP10 ADD PUSH2 0x2375 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x24FA JUMPI PUSH2 0x24F9 PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x2506 DUP9 DUP3 DUP10 ADD PUSH2 0x2416 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x252A JUMPI PUSH2 0x2529 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2538 DUP6 DUP3 DUP7 ADD PUSH2 0x226F JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2549 DUP6 DUP3 DUP7 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2569 JUMPI PUSH2 0x2568 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2587 JUMPI PUSH2 0x2586 PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x2593 DUP5 DUP3 DUP6 ADD PUSH2 0x21C4 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x25B7 JUMPI PUSH2 0x25B6 PUSH2 0x20C7 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x25DB PUSH2 0x25D6 DUP5 PUSH2 0x259C JUMP JUMPDEST PUSH2 0x2127 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 0x25FE JUMPI PUSH2 0x25FD PUSH2 0x2307 JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2627 JUMPI DUP1 PUSH2 0x2613 DUP9 DUP3 PUSH2 0x1E6E JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2600 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2646 JUMPI PUSH2 0x2645 PUSH2 0x20BD JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2656 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x25C8 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2676 JUMPI PUSH2 0x2675 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2694 JUMPI PUSH2 0x2693 PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x26A0 DUP6 DUP3 DUP7 ADD PUSH2 0x2631 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x26C1 JUMPI PUSH2 0x26C0 PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x26CD DUP6 DUP3 DUP7 ADD PUSH2 0x2375 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x270C DUP2 PUSH2 0x1E83 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x271E DUP4 DUP4 PUSH2 0x2703 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 0x2742 DUP3 PUSH2 0x26D7 JUMP JUMPDEST PUSH2 0x274C DUP2 DUP6 PUSH2 0x26E2 JUMP JUMPDEST SWAP4 POP PUSH2 0x2757 DUP4 PUSH2 0x26F3 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2788 JUMPI DUP2 MLOAD PUSH2 0x276F DUP9 DUP3 PUSH2 0x2712 JUMP JUMPDEST SWAP8 POP PUSH2 0x277A DUP4 PUSH2 0x272A JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x275B JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x27AF DUP2 DUP5 PUSH2 0x2737 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x27D1 JUMPI PUSH2 0x27D0 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x27DF DUP8 DUP3 DUP9 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x27F0 DUP8 DUP3 DUP9 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x2801 DUP8 DUP3 DUP9 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2822 JUMPI PUSH2 0x2821 PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x282E DUP8 DUP3 DUP9 ADD PUSH2 0x2416 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH2 0x2843 DUP2 PUSH2 0x1FA8 JUMP JUMPDEST DUP2 EQ PUSH2 0x284E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2860 DUP2 PUSH2 0x283A JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x287D JUMPI PUSH2 0x287C PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x288B DUP6 DUP3 DUP7 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x289C DUP6 DUP3 DUP7 ADD PUSH2 0x2851 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x28BF JUMPI PUSH2 0x28BE PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x28CD DUP7 DUP3 DUP8 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x28DE DUP7 DUP3 DUP8 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x28FF JUMPI PUSH2 0x28FE PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x290B DUP7 DUP3 DUP8 ADD PUSH2 0x21C4 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x292C JUMPI PUSH2 0x292B PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x293A DUP6 DUP3 DUP7 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x294B DUP6 DUP3 DUP7 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2971 JUMPI PUSH2 0x2970 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x297F DUP9 DUP3 DUP10 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x2990 DUP9 DUP3 DUP10 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x29A1 DUP9 DUP3 DUP10 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x29B2 DUP9 DUP3 DUP10 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x29D3 JUMPI PUSH2 0x29D2 PUSH2 0x1E20 JUMP JUMPDEST JUMPDEST PUSH2 0x29DF DUP9 DUP3 DUP10 ADD PUSH2 0x2416 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2A05 JUMPI PUSH2 0x2A04 PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2A13 DUP7 DUP3 DUP8 ADD PUSH2 0x1E6E JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x2A24 DUP7 DUP3 DUP8 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x2A35 DUP7 DUP3 DUP8 ADD PUSH2 0x1EA4 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x697066733A2F2F00000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A80 PUSH1 0x7 DUP4 PUSH2 0x2A3F JUMP JUMPDEST SWAP2 POP PUSH2 0x2A8B DUP3 PUSH2 0x2A4A JUMP JUMPDEST PUSH1 0x7 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0x2ADD JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2AF0 JUMPI PUSH2 0x2AEF PUSH2 0x2A96 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 DUP2 SLOAD PUSH2 0x2B18 DUP2 PUSH2 0x2AC5 JUMP JUMPDEST PUSH2 0x2B22 DUP2 DUP7 PUSH2 0x2A3F JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0x2B3D JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x2B52 JUMPI PUSH2 0x2B85 JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE DUP2 ISZERO ISZERO DUP3 MUL DUP7 ADD SWAP4 POP PUSH2 0x2B85 JUMP JUMPDEST PUSH2 0x2B5B DUP6 PUSH2 0x2AF6 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2B7D JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2B5E JUMP JUMPDEST DUP4 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x2E6A736F6E000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2BC4 PUSH1 0x5 DUP4 PUSH2 0x2A3F JUMP JUMPDEST SWAP2 POP PUSH2 0x2BCF DUP3 PUSH2 0x2B8E JUMP JUMPDEST PUSH1 0x5 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2BE5 DUP3 PUSH2 0x2A73 JUMP JUMPDEST SWAP2 POP PUSH2 0x2BF1 DUP3 DUP5 PUSH2 0x2B0B JUMP JUMPDEST SWAP2 POP PUSH2 0x2BFC DUP3 PUSH2 0x2BB7 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP3 SWAP2 POP 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 0x2C54 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x2C17 JUMP JUMPDEST PUSH2 0x2C5E DUP7 DUP4 PUSH2 0x2C17 JUMP JUMPDEST SWAP6 POP DUP1 NOT DUP5 AND SWAP4 POP DUP1 DUP7 AND DUP5 OR SWAP3 POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2C9B PUSH2 0x2C96 PUSH2 0x2C91 DUP5 PUSH2 0x1E83 JUMP JUMPDEST PUSH2 0x2C76 JUMP JUMPDEST PUSH2 0x1E83 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2CB5 DUP4 PUSH2 0x2C80 JUMP JUMPDEST PUSH2 0x2CC9 PUSH2 0x2CC1 DUP3 PUSH2 0x2CA2 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x2C24 JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x2CDE PUSH2 0x2CD1 JUMP JUMPDEST PUSH2 0x2CE9 DUP2 DUP5 DUP5 PUSH2 0x2CAC JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2D0D JUMPI PUSH2 0x2D02 PUSH1 0x0 DUP3 PUSH2 0x2CD6 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x2CEF JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x2D52 JUMPI PUSH2 0x2D23 DUP2 PUSH2 0x2AF6 JUMP JUMPDEST PUSH2 0x2D2C DUP5 PUSH2 0x2C07 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x2D3B JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x2D4F PUSH2 0x2D47 DUP6 PUSH2 0x2C07 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x2CEE 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 0x2D75 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x2D57 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2D8E DUP4 DUP4 PUSH2 0x2D64 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2DA7 DUP3 PUSH2 0x200B JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2DC0 JUMPI PUSH2 0x2DBF PUSH2 0x20C7 JUMP JUMPDEST JUMPDEST PUSH2 0x2DCA DUP3 SLOAD PUSH2 0x2AC5 JUMP JUMPDEST PUSH2 0x2DD5 DUP3 DUP3 DUP6 PUSH2 0x2D11 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x2E08 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x2DF6 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x2E00 DUP6 DUP3 PUSH2 0x2D82 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x2E68 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x2E16 DUP7 PUSH2 0x2AF6 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x2E3E 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 0x2E19 JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x2E5B JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x2E57 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x2D64 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 0x2E79 DUP2 PUSH2 0x1E45 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2E94 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2E70 JUMP JUMPDEST PUSH2 0x2EA1 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2E70 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2EE2 DUP3 PUSH2 0x1E83 JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 SUB PUSH2 0x2F14 JUMPI PUSH2 0x2F13 PUSH2 0x2EA8 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2F34 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x1EF9 JUMP JUMPDEST PUSH2 0x2F41 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1EF9 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2F8C PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2E70 JUMP JUMPDEST PUSH2 0x2F99 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1EF9 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FC5 PUSH2 0x2FC0 PUSH2 0x2FBB DUP5 PUSH2 0x2FA0 JUMP JUMPDEST PUSH2 0x2C76 JUMP JUMPDEST PUSH2 0x1E83 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2FD5 DUP2 PUSH2 0x2FAA JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2FF0 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2FCC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x2F00000000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x302C PUSH1 0x1 DUP4 PUSH2 0x2A3F JUMP JUMPDEST SWAP2 POP PUSH2 0x3037 DUP3 PUSH2 0x2FF6 JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x304D DUP3 PUSH2 0x200B JUMP JUMPDEST PUSH2 0x3057 DUP2 DUP6 PUSH2 0x2A3F JUMP JUMPDEST SWAP4 POP PUSH2 0x3067 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2027 JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x307E DUP3 PUSH2 0x2A73 JUMP JUMPDEST SWAP2 POP PUSH2 0x308A DUP3 DUP7 PUSH2 0x2B0B JUMP JUMPDEST SWAP2 POP PUSH2 0x3095 DUP3 PUSH2 0x301F JUMP JUMPDEST SWAP2 POP PUSH2 0x30A1 DUP3 DUP6 PUSH2 0x3042 JUMP JUMPDEST SWAP2 POP PUSH2 0x30AC DUP3 PUSH2 0x301F JUMP JUMPDEST SWAP2 POP PUSH2 0x30B8 DUP3 DUP5 PUSH2 0x3042 JUMP JUMPDEST SWAP2 POP PUSH2 0x30C3 DUP3 PUSH2 0x2BB7 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x30E5 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2E70 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x312F PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2E70 JUMP JUMPDEST PUSH2 0x313C PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x22B1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x3158 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x2E70 JUMP JUMPDEST PUSH2 0x3165 PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x1EF9 JUMP JUMPDEST PUSH2 0x3172 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x1EF9 JUMP JUMPDEST PUSH2 0x317F PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x1EF9 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3193 DUP3 PUSH2 0x1E83 JUMP JUMPDEST SWAP2 POP PUSH2 0x319E DUP4 PUSH2 0x1E83 JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x31B6 JUMPI PUSH2 0x31B5 PUSH2 0x2EA8 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x31D6 DUP2 DUP6 PUSH2 0x2737 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x31EA DUP2 DUP5 PUSH2 0x2737 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 0x321A DUP3 PUSH2 0x31F3 JUMP JUMPDEST PUSH2 0x3224 DUP2 DUP6 PUSH2 0x31FE JUMP JUMPDEST SWAP4 POP PUSH2 0x3234 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x2027 JUMP JUMPDEST PUSH2 0x323D DUP2 PUSH2 0x2051 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x325D PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x2E70 JUMP JUMPDEST PUSH2 0x326A PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2E70 JUMP JUMPDEST PUSH2 0x3277 PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x1EF9 JUMP JUMPDEST PUSH2 0x3284 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x1EF9 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x3296 DUP2 DUP5 PUSH2 0x320F JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x32B1 DUP2 PUSH2 0x1F4F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x32CD JUMPI PUSH2 0x32CC PUSH2 0x1E1B JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x32DB DUP5 DUP3 DUP6 ADD PUSH2 0x32A2 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x32F9 PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x2E70 JUMP JUMPDEST PUSH2 0x3306 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2E70 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x3318 DUP2 DUP7 PUSH2 0x2737 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x332C DUP2 DUP6 PUSH2 0x2737 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x3340 DUP2 DUP5 PUSH2 0x320F JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x29 0x4F DUP5 ADD PUSH1 0x8E DUP12 PREVRANDAO 0xE4 0xD PUSH5 0x2DDEDDDE89 SWAP16 DUP11 GASLIMIT PUSH5 0xDB1A2F81 0xDF SWAP15 0xF8 0xD5 SWAP3 TIMESTAMP 0xD5 PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", - "sourceMap": "265:2624:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2247:132:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2515:123:15;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2644:243;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2307:202;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3810:120:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;361:66:15;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4014:429:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4226:136:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5328:245;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;947:200:15;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2536:552:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;861:80:15;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1153:349;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2854:136:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2187:49;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3156:144:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1821:480:15;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4642:138:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3367:157:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3591:351;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1508:307:15;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2247:132:3;2324:7;2350:9;:13;2360:2;2350:13;;;;;;;;;;;:22;2364:7;2350:22;;;;;;;;;;;;;;;;2343:29;;2247:132;;;;:::o;2515:123:15:-;2630:4;2515:123;;;:::o;2644:243::-;2737:13;2719:7;815:22;829:7;815:13;:22::i;:::-;2833:14:::1;:23;2848:7;2833:23;;;;;;;;;;;2805:61;;;;;;;;:::i;:::-;;;;;;;;;;;;;2762:118;;2644:243:::0;;;;:::o;2307:202::-;401:26;2464:16:0;2475:4;2464:10;:16::i;:::-;2449:3:15::1;2433:7;:13;2441:4;2433:13;;;;;;;;;;;:19;;;;;;:::i;:::-;;2492:4;2480:10;2467:35;;;2498:3;2467:35;;;;;;:::i;:::-;;;;;;;;2307:202:::0;;;:::o;3810:120:0:-;3875:7;3901:6;:12;3908:4;3901:12;;;;;;;;;;;:22;;;3894:29;;3810:120;;;:::o;361:66:15:-;401:26;361:66;:::o;4014:429:3:-;4208:14;4225:12;:10;:12::i;:::-;4208:29;;4259:6;4251:14;;:4;:14;;;;:49;;;;;4270:30;4287:4;4293:6;4270:16;:30::i;:::-;4269:31;4251:49;4247:129;;;4352:6;4360:4;4323:42;;;;;;;;;;;;:::i;:::-;;;;;;;;4247:129;4385:51;4408:4;4414:2;4418:3;4423:6;4431:4;4385:22;:51::i;:::-;4198:245;4014:429;;;;;:::o;4226:136:0:-;4300:18;4313:4;4300:12;:18::i;:::-;2464:16;2475:4;2464:10;:16::i;:::-;4330:25:::1;4341:4;4347:7;4330:10;:25::i;:::-;;4226:136:::0;;;:::o;5328:245::-;5443:12;:10;:12::i;:::-;5421:34;;:18;:34;;;5417:102;;5478:30;;;;;;;;;;;;;;5417:102;5529:37;5541:4;5547:18;5529:11;:37::i;:::-;;5328:245;;:::o;947:200:15:-;1029:5;1002:14;:24;1017:8;;1002:24;;;;;;;;;;;:32;;;;;;:::i;:::-;;1044:34;1050:10;1062:8;;1072:1;1044:34;;;;;;;;;;;;:5;:34::i;:::-;1111:8;;1099:10;1093:27;;;;;;;;;;;;1130:8;;:10;;;;;;;;;:::i;:::-;;;;;;947:200;:::o;2536:552:3:-;2660:16;2711:3;:10;2692:8;:15;:29;2688:121;;2770:3;:10;2782:8;:15;2744:54;;;;;;;;;;;;:::i;:::-;;;;;;;;2688:121;2819:30;2866:8;:15;2852:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2819:63;;2898:9;2893:158;2917:8;:15;2913:1;:19;2893:158;;;2972:68;2982:30;3010:1;2982:8;:27;;:30;;;;:::i;:::-;3014:25;3037:1;3014:3;:22;;:25;;;;:::i;:::-;2972:9;:68::i;:::-;2953:13;2967:1;2953:16;;;;;;;;:::i;:::-;;;;;;;:87;;;;;2934:3;;;;;2893:158;;;;3068:13;3061:20;;;2536:552;;;;:::o;861:80:15:-;903:4;926:8;;919:15;;861:80;:::o;1153:349::-;1299:7;815:22;829:7;815:13;:22::i;:::-;1352:1:::1;1322:27;1332:7;1341;1322:9;:27::i;:::-;:31;1318:96;;;1386:7;1395;1376:27;;;;;;;;;;;;:::i;:::-;;;;;;;;1318:96;1423:32;1429:7;1438;1447:1;1450:4;1423:5;:32::i;:::-;1484:7;1475;1470:25;;;1493:1;1470:25;;;;;;:::i;:::-;;;;;;;;1153:349:::0;;;;;:::o;2854:136:0:-;2931:4;2954:6;:12;2961:4;2954:12;;;;;;;;;;;:20;;:29;2975:7;2954:29;;;;;;;;;;;;;;;;;;;;;;;;;2947:36;;2854:136;;;;:::o;2187:49::-;2232:4;2187:49;;;:::o;3156:144:3:-;3241:52;3260:12;:10;:12::i;:::-;3274:8;3284;3241:18;:52::i;:::-;3156:144;;:::o;1821:480:15:-;1962:13;1949:2;815:22;829:7;815:13;:22::i;:::-;2099:7:::1;:13;2107:4;2099:13;;;;;;;;;;;2159:20;2176:2;2159:16;:20::i;:::-;2226:7;2030:250;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;1987:307;;1821:480:::0;;;;;;:::o;4642:138:0:-;4717:18;4730:4;4717:12;:18::i;:::-;2464:16;2475:4;2464:10;:16::i;:::-;4747:26:::1;4759:4;4765:7;4747:11;:26::i;:::-;;4642:138:::0;;;:::o;3367:157:3:-;3457:4;3480:18;:27;3499:7;3480:27;;;;;;;;;;;;;;;:37;3508:8;3480:37;;;;;;;;;;;;;;;;;;;;;;;;;3473:44;;3367:157;;;;:::o;3591:351::-;3714:14;3731:12;:10;:12::i;:::-;3714:29;;3765:6;3757:14;;:4;:14;;;;:49;;;;;3776:30;3793:4;3799:6;3776:16;:30::i;:::-;3775:31;3757:49;3753:129;;;3858:6;3866:4;3829:42;;;;;;;;;;;;:::i;:::-;;;;;;;;3753:129;3891:44;3909:4;3915:2;3919;3923:5;3930:4;3891:17;:44::i;:::-;3704:238;3591:351;;;;;:::o;1508:307:15:-;1627:7;815:22;829:7;815:13;:22::i;:::-;1661:10:::1;1650:21;;:7;:21;;;1646:87;;1705:7;1714;1694:28;;;;;;;;;;;;:::i;:::-;;;;;;;;1646:87;1742:26;1748:7;1757;1766:1;1742:5;:26::i;:::-;1797:7;1788;1783:25;;;1806:1;1783:25;;;;;;:::i;:::-;;;;;;;;1508:307:::0;;;;:::o;623:140::-;698:8;;687:7;:19;683:74;;738:7;729:17;;;;;;;;;;;:::i;:::-;;;;;;;;683:74;623:140;:::o;3199:103:0:-;3265:30;3276:4;3282:12;:10;:12::i;:::-;3265:10;:30::i;:::-;3199:103;:::o;656:96:8:-;709:7;735:10;728:17;;656:96;:::o;9015:445:3:-;9222:1;9208:16;;:2;:16;;;9204:88;;9278:1;9247:34;;;;;;;;;;;:::i;:::-;;;;;;;;9204:88;9321:1;9305:18;;:4;:18;;;9301:88;;9375:1;9346:32;;;;;;;;;;;:::i;:::-;;;;;;;;9301:88;9398:55;9425:4;9431:2;9435:3;9440:6;9448:4;9398:26;:55::i;:::-;9015:445;;;;;:::o;6179:316:0:-;6256:4;6277:22;6285:4;6291:7;6277;:22::i;:::-;6272:217;;6347:4;6315:6;:12;6322:4;6315:12;;;;;;;;;;;:20;;:29;6336:7;6315:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;6397:12;:10;:12::i;:::-;6370:40;;6388:7;6370:40;;6382:4;6370:40;;;;;;;;;;6431:4;6424:11;;;;6272:217;6473:5;6466:12;;6179:316;;;;;:::o;6730:317::-;6808:4;6828:22;6836:4;6842:7;6828;:22::i;:::-;6824:217;;;6898:5;6866:6;:12;6873:4;6866:12;;;;;;;;;;;:20;;:29;6887:7;6866:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;6949:12;:10;:12::i;:::-;6922:40;;6940:7;6922:40;;6934:4;6922:40;;;;;;;;;;6983:4;6976:11;;;;6824:217;7025:5;7018:12;;6730:317;;;;;:::o;10746:346:3:-;10856:1;10842:16;;:2;:16;;;10838:88;;10912:1;10881:34;;;;;;;;;;;:::i;:::-;;;;;;;;10838:88;10936:20;10958:23;10985:29;11004:2;11008:5;10985:18;:29::i;:::-;10935:79;;;;11024:61;11059:1;11063:2;11067:3;11072:6;11080:4;11024:26;:61::i;:::-;10828:264;;10746:346;;;;:::o;4603:197:7:-;4689:11;4777:4;4772:3;4768:14;4761:4;4756:3;4752:14;4748:35;4742:42;4735:49;;4603:197;;;;:::o;4204:::-;4290:11;4378:4;4373:3;4369:14;4362:4;4357:3;4353:14;4349:35;4343:42;4336:49;;4204:197;;;;:::o;13268:315:3:-;13395:1;13375:22;;:8;:22;;;13371:94;;13451:1;13420:34;;;;;;;;;;;:::i;:::-;;;;;;;;13371:94;13512:8;13474:18;:25;13493:5;13474:25;;;;;;;;;;;;;;;:35;13500:8;13474:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;13557:8;13535:41;;13550:5;13535:41;;;13567:8;13535:41;;;;;;:::i;:::-;;;;;;;;13268:315;;;:::o;637:698:10:-;693:13;742:14;779:1;759:17;770:5;759:10;:17::i;:::-;:21;742:38;;794:20;828:6;817:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;794:41;;849:11;975:6;971:2;967:15;959:6;955:28;948:35;;1010:282;1017:4;1010:282;;;1041:5;;;;;;;;1180:10;1175:2;1168:5;1164:14;1159:32;1154:3;1146:46;1236:2;1227:11;;;;;;:::i;:::-;;;;;1269:1;1260:5;:10;1010:282;1256:21;1010:282;1312:6;1305:13;;;;;637:698;;;:::o;8151:463:3:-;8287:1;8273:16;;:2;:16;;;8269:88;;8343:1;8312:34;;;;;;;;;;;:::i;:::-;;;;;;;;8269:88;8386:1;8370:18;;:4;:18;;;8366:88;;8440:1;8411:32;;;;;;;;;;;:::i;:::-;;;;;;;;8366:88;8464:20;8486:23;8513:29;8532:2;8536:5;8513:18;:29::i;:::-;8463:79;;;;8552:55;8579:4;8585:2;8589:3;8594:6;8602:4;8552:26;:55::i;:::-;8259:355;;8151:463;;;;;:::o;12099:329::-;12194:1;12178:18;;:4;:18;;;12174:88;;12248:1;12219:32;;;;;;;;;;;:::i;:::-;;;;;;;;12174:88;12272:20;12294:23;12321:29;12340:2;12344:5;12321:18;:29::i;:::-;12271:79;;;;12360:61;12387:4;12401:1;12405:3;12410:6;12360:61;;;;;;;;;;;;:26;:61::i;:::-;12164:264;;12099:329;;;:::o;3432:197:0:-;3520:22;3528:4;3534:7;3520;:22::i;:::-;3515:108;;3598:7;3607:4;3565:47;;;;;;;;;;;;:::i;:::-;;;;;;;;3515:108;3432:197;;:::o;7004:690:3:-;7205:30;7213:4;7219:2;7223:3;7228:6;7205:7;:30::i;:::-;7263:1;7249:16;;:2;:16;;;7245:443;;7281:16;7300:12;:10;:12::i;:::-;7281:31;;7344:1;7330:3;:10;:15;7326:352;;7365:10;7378:25;7401:1;7378:3;:22;;:25;;;;:::i;:::-;7365:38;;7421:13;7437:28;7463:1;7437:6;:25;;:28;;;;:::i;:::-;7421:44;;7483:67;7514:8;7524:4;7530:2;7534;7538:5;7545:4;7483:30;:67::i;:::-;7347:218;;7326:352;;;7589:74;7625:8;7635:4;7641:2;7645:3;7650:6;7658:4;7589:35;:74::i;:::-;7326:352;7267:421;7245:443;7004:690;;;;;:::o;16080:849::-;16188:23;16213;16374:4;16368:11;16358:21;;16444:1;16436:6;16429:17;16582:8;16575:4;16567:6;16563:17;16556:35;16704:4;16696:6;16692:17;16682:27;;16737:1;16729:6;16722:17;16778:8;16771:4;16763:6;16759:17;16752:35;16907:4;16899:6;16895:17;16889:4;16882:31;16080:849;;;;;:::o;12214:916:13:-;12267:7;12286:14;12303:1;12286:18;;12351:8;12342:5;:17;12338:103;;12388:8;12379:17;;;;;;:::i;:::-;;;;;12424:2;12414:12;;;;12338:103;12467:8;12458:5;:17;12454:103;;12504:8;12495:17;;;;;;:::i;:::-;;;;;12540:2;12530:12;;;;12454:103;12583:8;12574:5;:17;12570:103;;12620:8;12611:17;;;;;;:::i;:::-;;;;;12656:2;12646:12;;;;12570:103;12699:7;12690:5;:16;12686:100;;12735:7;12726:16;;;;;;:::i;:::-;;;;;12770:1;12760:11;;;;12686:100;12812:7;12803:5;:16;12799:100;;12848:7;12839:16;;;;;;:::i;:::-;;;;;12883:1;12873:11;;;;12799:100;12925:7;12916:5;:16;12912:100;;12961:7;12952:16;;;;;;:::i;:::-;;;;;12996:1;12986:11;;;;12912:100;13038:7;13029:5;:16;13025:66;;13075:1;13065:11;;;;13025:66;13117:6;13110:13;;;12214:916;;;:::o;5144:1281:3:-;5279:6;:13;5265:3;:10;:27;5261:117;;5341:3;:10;5353:6;:13;5315:52;;;;;;;;;;;;:::i;:::-;;;;;;;;5261:117;5388:16;5407:12;:10;:12::i;:::-;5388:31;;5435:9;5430:691;5454:3;:10;5450:1;:14;5430:691;;;5485:10;5498:25;5521:1;5498:3;:22;;:25;;;;:::i;:::-;5485:38;;5537:13;5553:28;5579:1;5553:6;:25;;:28;;;;:::i;:::-;5537:44;;5616:1;5600:18;;:4;:18;;;5596:420;;5638:19;5660:9;:13;5670:2;5660:13;;;;;;;;;;;:19;5674:4;5660:19;;;;;;;;;;;;;;;;5638:41;;5715:5;5701:11;:19;5697:129;;;5778:4;5784:11;5797:5;5804:2;5751:56;;;;;;;;;;;;;;:::i;:::-;;;;;;;;5697:129;5978:5;5964:11;:19;5942:9;:13;5952:2;5942:13;;;;;;;;;;;:19;5956:4;5942:19;;;;;;;;;;;;;;;:41;;;;5620:396;5596:420;6048:1;6034:16;;:2;:16;;;6030:81;;6091:5;6070:9;:13;6080:2;6070:13;;;;;;;;;;;:17;6084:2;6070:17;;;;;;;;;;;;;;;;:26;;;;;;;:::i;:::-;;;;;;;;6030:81;5471:650;;5466:3;;;;;5430:691;;;;6149:1;6135:3;:10;:15;6131:288;;6166:10;6179:25;6202:1;6179:3;:22;;:25;;;;:::i;:::-;6166:38;;6218:13;6234:28;6260:1;6234:6;:25;;:28;;;;:::i;:::-;6218:44;;6312:2;6281:45;;6306:4;6281:45;;6296:8;6281:45;;;6316:2;6320:5;6281:45;;;;;;;:::i;:::-;;;;;;;;6152:185;;6131:288;;;6392:2;6362:46;;6386:4;6362:46;;6376:8;6362:46;;;6396:3;6401:6;6362:46;;;;;;;:::i;:::-;;;;;;;;6131:288;5251:1174;5144:1281;;;;:::o;13761:974::-;13984:1;13967:2;:14;;;:18;13963:766;;;14022:2;14005:38;;;14044:8;14054:4;14060:2;14064:5;14071:4;14005:71;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;14001:718;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14377:1;14360:6;:13;:18;14356:349;;14487:2;14464:26;;;;;;;;;;;:::i;:::-;;;;;;;;14356:349;14657:6;14651:13;14642:6;14638:2;14634:15;14627:38;14001:718;14137:43;;;14125:55;;;:8;:55;;;;14121:174;;14273:2;14250:26;;;;;;;;;;;:::i;:::-;;;;;;;;14121:174;14077:232;13963:766;13761:974;;;;;;:::o;14923:1041::-;15171:1;15154:2;:14;;;:18;15150:808;;;15209:2;15192:43;;;15236:8;15246:4;15252:3;15257:6;15265:4;15192:78;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;15188:760;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15606:1;15589:6;:13;:18;15585:349;;15716:2;15693:26;;;;;;;;;;;:::i;:::-;;;;;;;;15585:349;15886:6;15880:13;15871:6;15867:2;15863:15;15856:38;15188:760;15361:48;;;15349:60;;;:8;:60;;;;15345:179;;15502:2;15479:26;;;;;;;;;;;:::i;:::-;;;;;;;;15345:179;15271:267;15150:808;14923:1041;;;;;;:::o;7:75:18:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:474::-;1265:6;1273;1322:2;1310:9;1301:7;1297:23;1293:32;1290:119;;;1328:79;;:::i;:::-;1290:119;1448:1;1473:53;1518:7;1509:6;1498:9;1494:22;1473:53;:::i;:::-;1463:63;;1419:117;1575:2;1601:53;1646:7;1637:6;1626:9;1622:22;1601:53;:::i;:::-;1591:63;;1546:118;1197:474;;;;;:::o;1677:118::-;1764:24;1782:5;1764:24;:::i;:::-;1759:3;1752:37;1677:118;;:::o;1801:222::-;1894:4;1932:2;1921:9;1917:18;1909:26;;1945:71;2013:1;2002:9;1998:17;1989:6;1945:71;:::i;:::-;1801:222;;;;:::o;2029:149::-;2065:7;2105:66;2098:5;2094:78;2083:89;;2029:149;;;:::o;2184:120::-;2256:23;2273:5;2256:23;:::i;:::-;2249:5;2246:34;2236:62;;2294:1;2291;2284:12;2236:62;2184:120;:::o;2310:137::-;2355:5;2393:6;2380:20;2371:29;;2409:32;2435:5;2409:32;:::i;:::-;2310:137;;;;:::o;2453:327::-;2511:6;2560:2;2548:9;2539:7;2535:23;2531:32;2528:119;;;2566:79;;:::i;:::-;2528:119;2686:1;2711:52;2755:7;2746:6;2735:9;2731:22;2711:52;:::i;:::-;2701:62;;2657:116;2453:327;;;;:::o;2786:90::-;2820:7;2863:5;2856:13;2849:21;2838:32;;2786:90;;;:::o;2882:109::-;2963:21;2978:5;2963:21;:::i;:::-;2958:3;2951:34;2882:109;;:::o;2997:210::-;3084:4;3122:2;3111:9;3107:18;3099:26;;3135:65;3197:1;3186:9;3182:17;3173:6;3135:65;:::i;:::-;2997:210;;;;:::o;3213:329::-;3272:6;3321:2;3309:9;3300:7;3296:23;3292:32;3289:119;;;3327:79;;:::i;:::-;3289:119;3447:1;3472:53;3517:7;3508:6;3497:9;3493:22;3472:53;:::i;:::-;3462:63;;3418:117;3213:329;;;;:::o;3548:99::-;3600:6;3634:5;3628:12;3618:22;;3548:99;;;:::o;3653:169::-;3737:11;3771:6;3766:3;3759:19;3811:4;3806:3;3802:14;3787:29;;3653:169;;;;:::o;3828:246::-;3909:1;3919:113;3933:6;3930:1;3927:13;3919:113;;;4018:1;4013:3;4009:11;4003:18;3999:1;3994:3;3990:11;3983:39;3955:2;3952:1;3948:10;3943:15;;3919:113;;;4066:1;4057:6;4052:3;4048:16;4041:27;3890:184;3828:246;;;:::o;4080:102::-;4121:6;4172:2;4168:7;4163:2;4156:5;4152:14;4148:28;4138:38;;4080:102;;;:::o;4188:377::-;4276:3;4304:39;4337:5;4304:39;:::i;:::-;4359:71;4423:6;4418:3;4359:71;:::i;:::-;4352:78;;4439:65;4497:6;4492:3;4485:4;4478:5;4474:16;4439:65;:::i;:::-;4529:29;4551:6;4529:29;:::i;:::-;4524:3;4520:39;4513:46;;4280:285;4188:377;;;;:::o;4571:313::-;4684:4;4722:2;4711:9;4707:18;4699:26;;4771:9;4765:4;4761:20;4757:1;4746:9;4742:17;4735:47;4799:78;4872:4;4863:6;4799:78;:::i;:::-;4791:86;;4571:313;;;;:::o;4890:117::-;4999:1;4996;4989:12;5013:117;5122:1;5119;5112:12;5136:180;5184:77;5181:1;5174:88;5281:4;5278:1;5271:15;5305:4;5302:1;5295:15;5322:281;5405:27;5427:4;5405:27;:::i;:::-;5397:6;5393:40;5535:6;5523:10;5520:22;5499:18;5487:10;5484:34;5481:62;5478:88;;;5546:18;;:::i;:::-;5478:88;5586:10;5582:2;5575:22;5365:238;5322:281;;:::o;5609:129::-;5643:6;5670:20;;:::i;:::-;5660:30;;5699:33;5727:4;5719:6;5699:33;:::i;:::-;5609:129;;;:::o;5744:308::-;5806:4;5896:18;5888:6;5885:30;5882:56;;;5918:18;;:::i;:::-;5882:56;5956:29;5978:6;5956:29;:::i;:::-;5948:37;;6040:4;6034;6030:15;6022:23;;5744:308;;;:::o;6058:146::-;6155:6;6150:3;6145;6132:30;6196:1;6187:6;6182:3;6178:16;6171:27;6058:146;;;:::o;6210:425::-;6288:5;6313:66;6329:49;6371:6;6329:49;:::i;:::-;6313:66;:::i;:::-;6304:75;;6402:6;6395:5;6388:21;6440:4;6433:5;6429:16;6478:3;6469:6;6464:3;6460:16;6457:25;6454:112;;;6485:79;;:::i;:::-;6454:112;6575:54;6622:6;6617:3;6612;6575:54;:::i;:::-;6294:341;6210:425;;;;;:::o;6655:340::-;6711:5;6760:3;6753:4;6745:6;6741:17;6737:27;6727:122;;6768:79;;:::i;:::-;6727:122;6885:6;6872:20;6910:79;6985:3;6977:6;6970:4;6962:6;6958:17;6910:79;:::i;:::-;6901:88;;6717:278;6655:340;;;;:::o;7001:654::-;7079:6;7087;7136:2;7124:9;7115:7;7111:23;7107:32;7104:119;;;7142:79;;:::i;:::-;7104:119;7262:1;7287:53;7332:7;7323:6;7312:9;7308:22;7287:53;:::i;:::-;7277:63;;7233:117;7417:2;7406:9;7402:18;7389:32;7448:18;7440:6;7437:30;7434:117;;;7470:79;;:::i;:::-;7434:117;7575:63;7630:7;7621:6;7610:9;7606:22;7575:63;:::i;:::-;7565:73;;7360:288;7001:654;;;;;:::o;7661:77::-;7698:7;7727:5;7716:16;;7661:77;;;:::o;7744:122::-;7817:24;7835:5;7817:24;:::i;:::-;7810:5;7807:35;7797:63;;7856:1;7853;7846:12;7797:63;7744:122;:::o;7872:139::-;7918:5;7956:6;7943:20;7934:29;;7972:33;7999:5;7972:33;:::i;:::-;7872:139;;;;:::o;8017:329::-;8076:6;8125:2;8113:9;8104:7;8100:23;8096:32;8093:119;;;8131:79;;:::i;:::-;8093:119;8251:1;8276:53;8321:7;8312:6;8301:9;8297:22;8276:53;:::i;:::-;8266:63;;8222:117;8017:329;;;;:::o;8352:118::-;8439:24;8457:5;8439:24;:::i;:::-;8434:3;8427:37;8352:118;;:::o;8476:222::-;8569:4;8607:2;8596:9;8592:18;8584:26;;8620:71;8688:1;8677:9;8673:17;8664:6;8620:71;:::i;:::-;8476:222;;;;:::o;8704:311::-;8781:4;8871:18;8863:6;8860:30;8857:56;;;8893:18;;:::i;:::-;8857:56;8943:4;8935:6;8931:17;8923:25;;9003:4;8997;8993:15;8985:23;;8704:311;;;:::o;9021:117::-;9130:1;9127;9120:12;9161:710;9257:5;9282:81;9298:64;9355:6;9298:64;:::i;:::-;9282:81;:::i;:::-;9273:90;;9383:5;9412:6;9405:5;9398:21;9446:4;9439:5;9435:16;9428:23;;9499:4;9491:6;9487:17;9479:6;9475:30;9528:3;9520:6;9517:15;9514:122;;;9547:79;;:::i;:::-;9514:122;9662:6;9645:220;9679:6;9674:3;9671:15;9645:220;;;9754:3;9783:37;9816:3;9804:10;9783:37;:::i;:::-;9778:3;9771:50;9850:4;9845:3;9841:14;9834:21;;9721:144;9705:4;9700:3;9696:14;9689:21;;9645:220;;;9649:21;9263:608;;9161:710;;;;;:::o;9894:370::-;9965:5;10014:3;10007:4;9999:6;9995:17;9991:27;9981:122;;10022:79;;:::i;:::-;9981:122;10139:6;10126:20;10164:94;10254:3;10246:6;10239:4;10231:6;10227:17;10164:94;:::i;:::-;10155:103;;9971:293;9894:370;;;;:::o;10270:307::-;10331:4;10421:18;10413:6;10410:30;10407:56;;;10443:18;;:::i;:::-;10407:56;10481:29;10503:6;10481:29;:::i;:::-;10473:37;;10565:4;10559;10555:15;10547:23;;10270:307;;;:::o;10583:423::-;10660:5;10685:65;10701:48;10742:6;10701:48;:::i;:::-;10685:65;:::i;:::-;10676:74;;10773:6;10766:5;10759:21;10811:4;10804:5;10800:16;10849:3;10840:6;10835:3;10831:16;10828:25;10825:112;;;10856:79;;:::i;:::-;10825:112;10946:54;10993:6;10988:3;10983;10946:54;:::i;:::-;10666:340;10583:423;;;;;:::o;11025:338::-;11080:5;11129:3;11122:4;11114:6;11110:17;11106:27;11096:122;;11137:79;;:::i;:::-;11096:122;11254:6;11241:20;11279:78;11353:3;11345:6;11338:4;11330:6;11326:17;11279:78;:::i;:::-;11270:87;;11086:277;11025:338;;;;:::o;11369:1509::-;11523:6;11531;11539;11547;11555;11604:3;11592:9;11583:7;11579:23;11575:33;11572:120;;;11611:79;;:::i;:::-;11572:120;11731:1;11756:53;11801:7;11792:6;11781:9;11777:22;11756:53;:::i;:::-;11746:63;;11702:117;11858:2;11884:53;11929:7;11920:6;11909:9;11905:22;11884:53;:::i;:::-;11874:63;;11829:118;12014:2;12003:9;11999:18;11986:32;12045:18;12037:6;12034:30;12031:117;;;12067:79;;:::i;:::-;12031:117;12172:78;12242:7;12233:6;12222:9;12218:22;12172:78;:::i;:::-;12162:88;;11957:303;12327:2;12316:9;12312:18;12299:32;12358:18;12350:6;12347:30;12344:117;;;12380:79;;:::i;:::-;12344:117;12485:78;12555:7;12546:6;12535:9;12531:22;12485:78;:::i;:::-;12475:88;;12270:303;12640:3;12629:9;12625:19;12612:33;12672:18;12664:6;12661:30;12658:117;;;12694:79;;:::i;:::-;12658:117;12799:62;12853:7;12844:6;12833:9;12829:22;12799:62;:::i;:::-;12789:72;;12583:288;11369:1509;;;;;;;;:::o;12884:474::-;12952:6;12960;13009:2;12997:9;12988:7;12984:23;12980:32;12977:119;;;13015:79;;:::i;:::-;12977:119;13135:1;13160:53;13205:7;13196:6;13185:9;13181:22;13160:53;:::i;:::-;13150:63;;13106:117;13262:2;13288:53;13333:7;13324:6;13313:9;13309:22;13288:53;:::i;:::-;13278:63;;13233:118;12884:474;;;;;:::o;13364:509::-;13433:6;13482:2;13470:9;13461:7;13457:23;13453:32;13450:119;;;13488:79;;:::i;:::-;13450:119;13636:1;13625:9;13621:17;13608:31;13666:18;13658:6;13655:30;13652:117;;;13688:79;;:::i;:::-;13652:117;13793:63;13848:7;13839:6;13828:9;13824:22;13793:63;:::i;:::-;13783:73;;13579:287;13364:509;;;;:::o;13879:311::-;13956:4;14046:18;14038:6;14035:30;14032:56;;;14068:18;;:::i;:::-;14032:56;14118:4;14110:6;14106:17;14098:25;;14178:4;14172;14168:15;14160:23;;13879:311;;;:::o;14213:710::-;14309:5;14334:81;14350:64;14407:6;14350:64;:::i;:::-;14334:81;:::i;:::-;14325:90;;14435:5;14464:6;14457:5;14450:21;14498:4;14491:5;14487:16;14480:23;;14551:4;14543:6;14539:17;14531:6;14527:30;14580:3;14572:6;14569:15;14566:122;;;14599:79;;:::i;:::-;14566:122;14714:6;14697:220;14731:6;14726:3;14723:15;14697:220;;;14806:3;14835:37;14868:3;14856:10;14835:37;:::i;:::-;14830:3;14823:50;14902:4;14897:3;14893:14;14886:21;;14773:144;14757:4;14752:3;14748:14;14741:21;;14697:220;;;14701:21;14315:608;;14213:710;;;;;:::o;14946:370::-;15017:5;15066:3;15059:4;15051:6;15047:17;15043:27;15033:122;;15074:79;;:::i;:::-;15033:122;15191:6;15178:20;15216:94;15306:3;15298:6;15291:4;15283:6;15279:17;15216:94;:::i;:::-;15207:103;;15023:293;14946:370;;;;:::o;15322:894::-;15440:6;15448;15497:2;15485:9;15476:7;15472:23;15468:32;15465:119;;;15503:79;;:::i;:::-;15465:119;15651:1;15640:9;15636:17;15623:31;15681:18;15673:6;15670:30;15667:117;;;15703:79;;:::i;:::-;15667:117;15808:78;15878:7;15869:6;15858:9;15854:22;15808:78;:::i;:::-;15798:88;;15594:302;15963:2;15952:9;15948:18;15935:32;15994:18;15986:6;15983:30;15980:117;;;16016:79;;:::i;:::-;15980:117;16121:78;16191:7;16182:6;16171:9;16167:22;16121:78;:::i;:::-;16111:88;;15906:303;15322:894;;;;;:::o;16222:114::-;16289:6;16323:5;16317:12;16307:22;;16222:114;;;:::o;16342:184::-;16441:11;16475:6;16470:3;16463:19;16515:4;16510:3;16506:14;16491:29;;16342:184;;;;:::o;16532:132::-;16599:4;16622:3;16614:11;;16652:4;16647:3;16643:14;16635:22;;16532:132;;;:::o;16670:108::-;16747:24;16765:5;16747:24;:::i;:::-;16742:3;16735:37;16670:108;;:::o;16784:179::-;16853:10;16874:46;16916:3;16908:6;16874:46;:::i;:::-;16952:4;16947:3;16943:14;16929:28;;16784:179;;;;:::o;16969:113::-;17039:4;17071;17066:3;17062:14;17054:22;;16969:113;;;:::o;17118:732::-;17237:3;17266:54;17314:5;17266:54;:::i;:::-;17336:86;17415:6;17410:3;17336:86;:::i;:::-;17329:93;;17446:56;17496:5;17446:56;:::i;:::-;17525:7;17556:1;17541:284;17566:6;17563:1;17560:13;17541:284;;;17642:6;17636:13;17669:63;17728:3;17713:13;17669:63;:::i;:::-;17662:70;;17755:60;17808:6;17755:60;:::i;:::-;17745:70;;17601:224;17588:1;17585;17581:9;17576:14;;17541:284;;;17545:14;17841:3;17834:10;;17242:608;;;17118:732;;;;:::o;17856:373::-;17999:4;18037:2;18026:9;18022:18;18014:26;;18086:9;18080:4;18076:20;18072:1;18061:9;18057:17;18050:47;18114:108;18217:4;18208:6;18114:108;:::i;:::-;18106:116;;17856:373;;;;:::o;18235:943::-;18330:6;18338;18346;18354;18403:3;18391:9;18382:7;18378:23;18374:33;18371:120;;;18410:79;;:::i;:::-;18371:120;18530:1;18555:53;18600:7;18591:6;18580:9;18576:22;18555:53;:::i;:::-;18545:63;;18501:117;18657:2;18683:53;18728:7;18719:6;18708:9;18704:22;18683:53;:::i;:::-;18673:63;;18628:118;18785:2;18811:53;18856:7;18847:6;18836:9;18832:22;18811:53;:::i;:::-;18801:63;;18756:118;18941:2;18930:9;18926:18;18913:32;18972:18;18964:6;18961:30;18958:117;;;18994:79;;:::i;:::-;18958:117;19099:62;19153:7;19144:6;19133:9;19129:22;19099:62;:::i;:::-;19089:72;;18884:287;18235:943;;;;;;;:::o;19184:116::-;19254:21;19269:5;19254:21;:::i;:::-;19247:5;19244:32;19234:60;;19290:1;19287;19280:12;19234:60;19184:116;:::o;19306:133::-;19349:5;19387:6;19374:20;19365:29;;19403:30;19427:5;19403:30;:::i;:::-;19306:133;;;;:::o;19445:468::-;19510:6;19518;19567:2;19555:9;19546:7;19542:23;19538:32;19535:119;;;19573:79;;:::i;:::-;19535:119;19693:1;19718:53;19763:7;19754:6;19743:9;19739:22;19718:53;:::i;:::-;19708:63;;19664:117;19820:2;19846:50;19888:7;19879:6;19868:9;19864:22;19846:50;:::i;:::-;19836:60;;19791:115;19445:468;;;;;:::o;19919:799::-;20006:6;20014;20022;20071:2;20059:9;20050:7;20046:23;20042:32;20039:119;;;20077:79;;:::i;:::-;20039:119;20197:1;20222:53;20267:7;20258:6;20247:9;20243:22;20222:53;:::i;:::-;20212:63;;20168:117;20324:2;20350:53;20395:7;20386:6;20375:9;20371:22;20350:53;:::i;:::-;20340:63;;20295:118;20480:2;20469:9;20465:18;20452:32;20511:18;20503:6;20500:30;20497:117;;;20533:79;;:::i;:::-;20497:117;20638:63;20693:7;20684:6;20673:9;20669:22;20638:63;:::i;:::-;20628:73;;20423:288;19919:799;;;;;:::o;20724:474::-;20792:6;20800;20849:2;20837:9;20828:7;20824:23;20820:32;20817:119;;;20855:79;;:::i;:::-;20817:119;20975:1;21000:53;21045:7;21036:6;21025:9;21021:22;21000:53;:::i;:::-;20990:63;;20946:117;21102:2;21128:53;21173:7;21164:6;21153:9;21149:22;21128:53;:::i;:::-;21118:63;;21073:118;20724:474;;;;;:::o;21204:1089::-;21308:6;21316;21324;21332;21340;21389:3;21377:9;21368:7;21364:23;21360:33;21357:120;;;21396:79;;:::i;:::-;21357:120;21516:1;21541:53;21586:7;21577:6;21566:9;21562:22;21541:53;:::i;:::-;21531:63;;21487:117;21643:2;21669:53;21714:7;21705:6;21694:9;21690:22;21669:53;:::i;:::-;21659:63;;21614:118;21771:2;21797:53;21842:7;21833:6;21822:9;21818:22;21797:53;:::i;:::-;21787:63;;21742:118;21899:2;21925:53;21970:7;21961:6;21950:9;21946:22;21925:53;:::i;:::-;21915:63;;21870:118;22055:3;22044:9;22040:19;22027:33;22087:18;22079:6;22076:30;22073:117;;;22109:79;;:::i;:::-;22073:117;22214:62;22268:7;22259:6;22248:9;22244:22;22214:62;:::i;:::-;22204:72;;21998:288;21204:1089;;;;;;;;:::o;22299:619::-;22376:6;22384;22392;22441:2;22429:9;22420:7;22416:23;22412:32;22409:119;;;22447:79;;:::i;:::-;22409:119;22567:1;22592:53;22637:7;22628:6;22617:9;22613:22;22592:53;:::i;:::-;22582:63;;22538:117;22694:2;22720:53;22765:7;22756:6;22745:9;22741:22;22720:53;:::i;:::-;22710:63;;22665:118;22822:2;22848:53;22893:7;22884:6;22873:9;22869:22;22848:53;:::i;:::-;22838:63;;22793:118;22299:619;;;;;:::o;22924:148::-;23026:11;23063:3;23048:18;;22924:148;;;;:::o;23078:161::-;23218:9;23214:1;23206:6;23202:14;23195:33;23078:161;:::o;23249:416::-;23409:3;23434:84;23516:1;23511:3;23434:84;:::i;:::-;23427:91;;23531:93;23620:3;23531:93;:::i;:::-;23653:1;23648:3;23644:11;23637:18;;23249:416;;;:::o;23675:196::-;23727:77;23724:1;23717:88;23828:4;23825:1;23818:15;23856:4;23853:1;23846:15;23881:356;23925:6;23966:1;23960:4;23956:12;23946:22;;24017:1;24011:4;24007:12;24042:18;24032:89;;24102:4;24094:6;24090:17;24080:27;;24032:89;24172:2;24164:6;24161:14;24141:18;24138:38;24135:92;;24195:18;;:::i;:::-;24135:92;23932:305;23881:356;;;:::o;24247:157::-;24296:4;24323:3;24315:11;;24350:3;24347:1;24340:14;24388:4;24385:1;24375:18;24367:26;;24247:157;;;:::o;24442:954::-;24545:3;24586:5;24580:12;24619:36;24645:9;24619:36;:::i;:::-;24675:89;24757:6;24752:3;24675:89;:::i;:::-;24668:96;;24799:1;24788:9;24784:17;24819:1;24814:182;;;;25014:1;25009:377;;;;24777:609;;24814:182;24906:4;24902:9;24891;24887:25;24882:3;24875:38;24972:6;24965:14;24958:22;24950:6;24946:35;24941:3;24937:45;24930:52;;24814:182;;25009:377;25084:38;25116:5;25084:38;:::i;:::-;25148:1;25166:166;25180:6;25177:1;25174:13;25166:166;;;25258:7;25252:14;25248:1;25243:3;25239:11;25232:35;25312:1;25303:7;25299:15;25288:26;;25202:4;25199:1;25195:12;25190:17;;25166:166;;;25365:6;25360:3;25356:16;25349:23;;25016:370;;24777:609;;24549:847;;24442:954;;;;:::o;25406:163::-;25550:7;25546:1;25538:6;25534:14;25527:31;25406:163;:::o;25579:416::-;25739:3;25764:84;25846:1;25841:3;25764:84;:::i;:::-;25757:91;;25861:93;25950:3;25861:93;:::i;:::-;25983:1;25978:3;25974:11;25967:18;;25579:416;;;:::o;26005:821::-;26336:3;26362:148;26506:3;26362:148;:::i;:::-;26355:155;;26531:92;26619:3;26610:6;26531:92;:::i;:::-;26524:99;;26644:148;26788:3;26644:148;:::i;:::-;26637:155;;26813:3;26806:10;;26005:821;;;;:::o;26836:101::-;26873:6;26924:2;26919;26912:5;26908:14;26904:23;26894:33;;26836:101;;;:::o;26947:119::-;26991:8;27049:5;27043:4;27039:16;27014:41;;26947:119;;;;:::o;27076:417::-;27145:6;27199:1;27187:10;27183:18;27226:97;27256:66;27245:9;27226:97;:::i;:::-;27348:39;27378:8;27367:9;27348:39;:::i;:::-;27336:51;;27424:4;27420:9;27413:5;27409:21;27400:30;;27477:4;27467:8;27463:19;27456:5;27453:30;27443:40;;27152:341;;27076:417;;;;;:::o;27503:68::-;27531:3;27556:5;27549:12;;27503:68;;;:::o;27581:150::-;27631:9;27668:53;27686:34;27695:24;27713:5;27695:24;:::i;:::-;27686:34;:::i;:::-;27668:53;:::i;:::-;27655:66;;27581:150;;;:::o;27741:83::-;27784:3;27809:5;27802:12;;27741:83;;;:::o;27834:281::-;27948:39;27979:7;27948:39;:::i;:::-;28013:91;28062:41;28086:16;28062:41;:::i;:::-;28054:6;28047:4;28041:11;28013:91;:::i;:::-;28007:4;28000:105;27910:205;27834:281;;;:::o;28125:81::-;28170:3;28125:81;:::o;28216:201::-;28297:32;;:::i;:::-;28342:65;28400:6;28392;28386:4;28342:65;:::i;:::-;28269:148;28216:201;;:::o;28427:206::-;28491:132;28508:3;28501:5;28498:14;28491:132;;;28570:39;28607:1;28600:5;28570:39;:::i;:::-;28535:1;28528:5;28524:13;28515:22;;28491:132;;;28427:206;;:::o;28643:575::-;28748:2;28743:3;28740:11;28737:470;;;28786:38;28818:5;28786:38;:::i;:::-;28874:29;28892:10;28874:29;:::i;:::-;28864:8;28860:44;29065:2;29053:10;29050:18;29047:49;;;29086:8;29071:23;;29047:49;29113:80;29169:22;29187:3;29169:22;:::i;:::-;29159:8;29155:37;29142:11;29113:80;:::i;:::-;28752:455;;28737:470;28643:575;;;:::o;29228:129::-;29282:8;29340:5;29334:4;29330:16;29305:41;;29228:129;;;;:::o;29367:181::-;29411:6;29448:51;29496:1;29492:6;29484:5;29481:1;29477:13;29448:51;:::i;:::-;29444:56;29533:4;29527;29523:15;29513:25;;29418:130;29367:181;;;;:::o;29557:315::-;29633:4;29791:29;29816:3;29810:4;29791:29;:::i;:::-;29783:37;;29857:3;29854:1;29850:11;29844:4;29841:21;29833:29;;29557:315;;;;:::o;29881:1523::-;30002:37;30035:3;30002:37;:::i;:::-;30112:18;30104:6;30101:30;30098:56;;;30134:18;;:::i;:::-;30098:56;30182:38;30214:4;30208:11;30182:38;:::i;:::-;30275:67;30335:6;30327;30321:4;30275:67;:::i;:::-;30373:1;30401:4;30388:17;;30437:2;30429:6;30426:14;30458:1;30453:674;;;;31179:1;31200:6;31197:85;;;31253:9;31248:3;31244:19;31238:26;31229:35;;31197:85;31312:67;31372:6;31365:5;31312:67;:::i;:::-;31306:4;31299:81;31148:246;30419:975;;30453:674;30509:4;30505:9;30497:6;30493:22;30547:37;30579:4;30547:37;:::i;:::-;30610:1;30628:224;30642:7;30639:1;30636:14;30628:224;;;30725:9;30720:3;30716:19;30710:26;30702:6;30695:42;30780:1;30772:6;30768:14;30758:24;;30831:2;30820:9;30816:18;30803:31;;30665:4;30662:1;30658:12;30653:17;;30628:224;;;30884:6;30875:7;30872:19;30869:191;;;30946:9;30941:3;30937:19;30931:26;30993:48;31035:4;31027:6;31023:17;31012:9;30993:48;:::i;:::-;30985:6;30978:64;30892:168;30869:191;31110:1;31106;31098:6;31094:14;31090:22;31084:4;31077:36;30460:667;;;30419:975;;29973:1431;;;29881:1523;;:::o;31414:126::-;31505:24;31523:5;31505:24;:::i;:::-;31500:3;31493:37;31414:126;;:::o;31550:348::-;31671:4;31713:2;31702:9;31698:18;31690:26;;31730:71;31798:1;31787:9;31783:17;31774:6;31730:71;:::i;:::-;31815:72;31883:2;31872:9;31868:18;31859:6;31815:72;:::i;:::-;31550:348;;;;;:::o;31908:196::-;31960:77;31957:1;31950:88;32061:4;32058:1;32051:15;32089:4;32086:1;32079:15;32114:249;32153:3;32180:24;32198:5;32180:24;:::i;:::-;32171:33;;32230:66;32223:5;32220:77;32217:103;;32300:18;;:::i;:::-;32217:103;32351:1;32344:5;32340:13;32333:20;;32114:249;;;:::o;32373:348::-;32494:4;32536:2;32525:9;32521:18;32513:26;;32553:71;32621:1;32610:9;32606:17;32597:6;32553:71;:::i;:::-;32638:72;32706:2;32695:9;32691:18;32682:6;32638:72;:::i;:::-;32373:348;;;;;:::o;32731:196::-;32783:77;32780:1;32773:88;32884:4;32881:1;32874:15;32912:4;32909:1;32902:15;32937:348;33058:4;33100:2;33089:9;33085:18;33077:26;;33117:71;33185:1;33174:9;33170:17;33161:6;33117:71;:::i;:::-;33202:72;33270:2;33259:9;33255:18;33246:6;33202:72;:::i;:::-;32937:348;;;;;:::o;33295:93::-;33340:7;33373:5;33362:16;;33295:93;;;:::o;33398:166::-;33456:9;33493:61;33511:42;33520:32;33546:5;33520:32;:::i;:::-;33511:42;:::i;:::-;33493:61;:::i;:::-;33480:74;;33398:166;;;:::o;33574:155::-;33673:45;33712:5;33673:45;:::i;:::-;33668:3;33661:58;33574:155;;:::o;33739:250::-;33840:4;33882:2;33871:9;33867:18;33859:26;;33899:79;33975:1;33964:9;33960:17;33951:6;33899:79;:::i;:::-;33739:250;;;;:::o;33999:159::-;34143:3;34139:1;34131:6;34127:14;34120:27;33999:159;:::o;34168:416::-;34328:3;34353:84;34435:1;34430:3;34353:84;:::i;:::-;34346:91;;34450:93;34539:3;34450:93;:::i;:::-;34572:1;34567:3;34563:11;34556:18;;34168:416;;;:::o;34594:410::-;34700:3;34732:39;34765:5;34732:39;:::i;:::-;34791:89;34873:6;34868:3;34791:89;:::i;:::-;34784:96;;34893:65;34951:6;34946:3;34939:4;34932:5;34928:16;34893:65;:::i;:::-;34987:6;34982:3;34978:16;34971:23;;34704:300;34594:410;;;;:::o;35014:1689::-;35643:3;35669:148;35813:3;35669:148;:::i;:::-;35662:155;;35838:92;35926:3;35917:6;35838:92;:::i;:::-;35831:99;;35951:148;36095:3;35951:148;:::i;:::-;35944:155;;36120:95;36211:3;36202:6;36120:95;:::i;:::-;36113:102;;36236:148;36380:3;36236:148;:::i;:::-;36229:155;;36405:95;36496:3;36487:6;36405:95;:::i;:::-;36398:102;;36521:148;36665:3;36521:148;:::i;:::-;36514:155;;36690:3;36683:10;;35014:1689;;;;;;:::o;36713:234::-;36806:4;36848:2;36837:9;36833:18;36825:26;;36865:71;36933:1;36922:9;36918:17;36909:6;36865:71;:::i;:::-;36713:234;;;;:::o;36957:196::-;37009:77;37006:1;36999:88;37110:4;37107:1;37100:15;37138:4;37135:1;37128:15;37163:348;37284:4;37326:2;37315:9;37311:18;37303:26;;37343:71;37411:1;37400:9;37396:17;37387:6;37343:71;:::i;:::-;37428:72;37496:2;37485:9;37481:18;37472:6;37428:72;:::i;:::-;37163:348;;;;;:::o;37521:577::-;37698:4;37740:3;37729:9;37725:19;37717:27;;37758:71;37826:1;37815:9;37811:17;37802:6;37758:71;:::i;:::-;37843:72;37911:2;37900:9;37896:18;37887:6;37843:72;:::i;:::-;37929;37997:2;37986:9;37982:18;37973:6;37929:72;:::i;:::-;38015;38083:2;38072:9;38068:18;38059:6;38015:72;:::i;:::-;37521:577;;;;;;;:::o;38108:211::-;38148:3;38171:20;38189:1;38171:20;:::i;:::-;38166:25;;38209:20;38227:1;38209:20;:::i;:::-;38204:25;;38256:1;38253;38249:9;38242:16;;38281:3;38278:1;38275:10;38272:36;;;38288:18;;:::i;:::-;38272:36;38108:211;;;;:::o;38329:658::-;38550:4;38592:2;38581:9;38577:18;38569:26;;38645:9;38639:4;38635:20;38631:1;38620:9;38616:17;38609:47;38677:108;38780:4;38771:6;38677:108;:::i;:::-;38669:116;;38836:9;38830:4;38826:20;38821:2;38810:9;38806:18;38799:48;38868:108;38971:4;38962:6;38868:108;:::i;:::-;38860:116;;38329:658;;;;;:::o;38997:106::-;39048:6;39086:5;39080:12;39070:22;;38997:106;;;:::o;39113:180::-;39196:11;39234:6;39229:3;39222:19;39278:4;39273:3;39269:14;39254:29;;39113:180;;;;:::o;39303:393::-;39389:3;39421:38;39453:5;39421:38;:::i;:::-;39479:70;39542:6;39537:3;39479:70;:::i;:::-;39472:77;;39562:65;39620:6;39615:3;39608:4;39601:5;39597:16;39562:65;:::i;:::-;39656:29;39678:6;39656:29;:::i;:::-;39651:3;39647:39;39640:46;;39393:303;39303:393;;;;:::o;39706:783::-;39929:4;39971:3;39960:9;39956:19;39948:27;;39989:71;40057:1;40046:9;40042:17;40033:6;39989:71;:::i;:::-;40074:72;40142:2;40131:9;40127:18;40118:6;40074:72;:::i;:::-;40160;40228:2;40217:9;40213:18;40204:6;40160:72;:::i;:::-;40246;40314:2;40303:9;40299:18;40290:6;40246:72;:::i;:::-;40370:9;40364:4;40360:20;40354:3;40343:9;40339:19;40332:49;40402:76;40473:4;40464:6;40402:76;:::i;:::-;40394:84;;39706:783;;;;;;;;:::o;40499:153::-;40555:5;40590:6;40584:13;40575:22;;40610:32;40636:5;40610:32;:::i;:::-;40499:153;;;;:::o;40662:373::-;40731:6;40784:2;40772:9;40763:7;40759:23;40755:32;40752:119;;;40790:79;;:::i;:::-;40752:119;40918:1;40947:63;41002:7;40993:6;40982:9;40978:22;40947:63;:::i;:::-;40937:73;;40885:139;40662:373;;;;:::o;41045:1093::-;41368:4;41410:3;41399:9;41395:19;41387:27;;41428:71;41496:1;41485:9;41481:17;41472:6;41428:71;:::i;:::-;41513:72;41581:2;41570:9;41566:18;41557:6;41513:72;:::i;:::-;41636:9;41630:4;41626:20;41621:2;41610:9;41606:18;41599:48;41668:108;41771:4;41762:6;41668:108;:::i;:::-;41660:116;;41827:9;41821:4;41817:20;41812:2;41801:9;41797:18;41790:48;41859:108;41962:4;41953:6;41859:108;:::i;:::-;41851:116;;42019:9;42013:4;42009:20;42003:3;41992:9;41988:19;41981:49;42051:76;42122:4;42113:6;42051:76;:::i;:::-;42043:84;;41045:1093;;;;;;;;:::o" - }, - "methodIdentifiers": { - "DEFAULT_ADMIN_ROLE()": "a217fddf", - "PROVIDER_ROLE()": "24c20a34", - "balanceOf(address,uint256)": "00fdd58e", - "balanceOfBatch(address[],uint256[])": "4e1273f4", - "burn(address,uint256,uint256)": "f5298aca", - "counter()": "61bc221a", - "getRoleAdmin(bytes32)": "248a9ca3", - "getScores(uint256,uint256,string)": "c5afac66", - "grantRole(bytes32,address)": "2f2ff15d", - "hasRole(bytes32,address)": "91d14854", - "isApprovedForAll(address,address)": "e985e9c5", - "issue(string)": "3cad9b0d", - "mint(address,uint256,uint256,bytes)": "731133e9", - "renounceRole(bytes32,address)": "36568abe", - "revokeRole(bytes32,address)": "d547741f", - "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)": "2eb2c2d6", - "safeTransferFrom(address,address,uint256,uint256,bytes)": "f242432a", - "setApprovalForAll(address,bool)": "a22cb465", - "supportsInterface(bytes4)": "01ffc9a7", - "updateScores(uint256,string)": "1c4ce135", - "uri(uint256)": "0e89341c" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"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\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"MintLimit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"NotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"NotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Issue\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"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\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"date\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"cid\",\"type\":\"string\"}],\"name\":\"UpdateScores\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PROVIDER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"counter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"date\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"account\",\"type\":\"string\"}],\"name\":\"getScores\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"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\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"hash_\",\"type\":\"string\"}],\"name\":\"issue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"date\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"cid\",\"type\":\"string\"}],\"name\":\"updateScores\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"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.\"}],\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"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`)\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers.\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`.\"},\"URI(string,uint256)\":{\"details\":\"Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. If an {URI} event was emitted for `id`, the standard https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value returned by {IERC1155MetadataURI-uri}.\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"See {IERC1155-balanceOf}.\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"See {IERC1155-balanceOfBatch}. Requirements: - `accounts` and `ids` must have the same length.\"},\"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`.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC1155-isApprovedForAll}.\"},\"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.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155-safeBatchTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC1155-setApprovalForAll}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Engagement.sol\":\"Engagement\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\":{\"keccak256\":\"0xd9b0b8ee1ac6dfee14eb1ad4383a4739dbaa0f2036594bb3a16f0408085dadde\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6309805132e519162d1134c67df22dd963323a9208b4f41344a4c13ed63c1026\",\"dweb:/ipfs/QmTBPHnf6qbtAD4NVnKVFmubUHRqMDPLkseR6apxTUpsQo\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182\",\"dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xb69597a63b202e28401128bed6a6d259e8730191274471af7303eafb247881a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://25addbda49a578b3318130585601344c5149a5549d749adf88e9685349a46b23\",\"dweb:/ipfs/Qme2DuD8gpsve1ZvaSMQpBwMdpU7yAtekDwr7gUp8dX4zX\"]},\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0xe92b5e199b963d108ad6e06feeede151ba23849e0d064956535489ff967ffe68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://280e17738a67b06dae02fec32982bd48a8ab71d8df95e9975ae03532634bc522\",\"dweb:/ipfs/QmecjsNcFgy2mMjuNfRDkLpAYMRWnh5o73fw1Bj2rCso2z\"]},\"@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x8806d620b6571932b662cfd48fbd518d4f70df1f88a23b5724cacde64a77bda1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8043304c8f9e1c1dc4a41935efa067daa77ad7abbae1fda41f015d53fbf327a5\",\"dweb:/ipfs/QmTrF2hSkRZoN9EEu8zdEhBpGNZ7RxzCdXf9ydzc2HQ3tM\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"contracts/Engagement.sol\":{\"keccak256\":\"0x6710a23a91c11354c9dcad1f5bb8d2b0fb02b67bdd2e1d6609cae5b24e4e667b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a552207837ebc876a1c6817ccd2414b3fd078ac74a9640f7099b217485c44d9a\",\"dweb:/ipfs/QmUnsX529xEnKi5MgP4GfBnYS8drS2pSuYXsGbiTgKu1Fs\"]},\"contracts/IEngagement.sol\":{\"keccak256\":\"0xac39a35729036cfb44ccdf60cbe4b888b00cd4433b220ee00a08b36dff921443\",\"urls\":[\"bzz-raw://92aadd9301b919d6593a608dc19d9f52fed7afbe07859240f412e6eaf6ea16bb\",\"dweb:/ipfs/QmVm2J1HQhcQW85m58cSAiJ6N1AyJnQ1xxWxJcR6WG2z34\"]}},\"version\":1}" - } - }, - "contracts/IEngagement.sol": { - "IEngagement": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "MintLimit", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "NotAllowed", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "NotFound", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "Burn", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "Issue", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "Mint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "date", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "string", - "name": "cid", - "type": "string" - } - ], - "name": "UpdateScores", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "counter", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "date", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "id", - "type": "uint256" - }, - { - "internalType": "string", - "name": "account", - "type": "string" - } - ], - "name": "getScores", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "hash", - "type": "string" - } - ], - "name": "issue", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "date", - "type": "uint256" - }, - { - "internalType": "string", - "name": "cid", - "type": "string" - } - ], - "name": "updateScores", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "deployedBytecode": { - "functionDebugData": {}, - "generatedSources": [], - "immutableReferences": {}, - "linkReferences": {}, - "object": "", - "opcodes": "", - "sourceMap": "" - }, - "methodIdentifiers": { - "burn(address,uint256,uint256)": "f5298aca", - "counter()": "61bc221a", - "getScores(uint256,uint256,string)": "c5afac66", - "issue(string)": "3cad9b0d", - "mint(address,uint256,uint256,bytes)": "731133e9", - "updateScores(uint256,string)": "1c4ce135" - } - }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"MintLimit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"NotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"NotFound\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Issue\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"date\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"cid\",\"type\":\"string\"}],\"name\":\"UpdateScores\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"counter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"date\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"account\",\"type\":\"string\"}],\"name\":\"getScores\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"hash\",\"type\":\"string\"}],\"name\":\"issue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"date\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"cid\",\"type\":\"string\"}],\"name\":\"updateScores\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/IEngagement.sol\":\"IEngagement\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/IEngagement.sol\":{\"keccak256\":\"0xac39a35729036cfb44ccdf60cbe4b888b00cd4433b220ee00a08b36dff921443\",\"urls\":[\"bzz-raw://92aadd9301b919d6593a608dc19d9f52fed7afbe07859240f412e6eaf6ea16bb\",\"dweb:/ipfs/QmVm2J1HQhcQW85m58cSAiJ6N1AyJnQ1xxWxJcR6WG2z34\"]}},\"version\":1}" - } - }, - "contracts/Lock.sol": { - "Lock": { - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "_unlockTime", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "amount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "when", - "type": "uint256" - } - ], - "name": "Withdrawal", - "type": "event" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address payable", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "unlockTime", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "withdraw", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "evm": { - "bytecode": { - "functionDebugData": { - "@_3932": { - "entryPoint": null, - "id": 3932, - "parameterSlots": 1, - "returnSlots": 0 - }, - "abi_decode_t_uint256_fromMemory": { - "entryPoint": 219, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_decode_tuple_t_uint256_fromMemory": { - "entryPoint": 240, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413_to_t_string_memory_ptr_fromStack": { - "entryPoint": 381, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 416, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "allocate_unbounded": { - "entryPoint": null, - "id": null, - "parameterSlots": 0, - "returnSlots": 1 - }, - "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { - "entryPoint": 285, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "cleanup_t_uint256": { - "entryPoint": 186, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db": { - "entryPoint": null, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b": { - "entryPoint": 181, - "id": null, - "parameterSlots": 0, - "returnSlots": 0 - }, - "store_literal_in_memory_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413": { - "entryPoint": 302, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "validator_revert_t_uint256": { - "entryPoint": 196, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - } - }, - "generatedSources": [ - { - "ast": { - "nativeSrc": "0:2248:18", - "nodeType": "YulBlock", - "src": "0:2248:18", - "statements": [ + "src": "33872:117:18" + }, + { + "body": { + "nativeSrc": "34046:118:18", + "nodeType": "YulBlock", + "src": "34046:118:18", + "statements": [ + { + "nativeSrc": "34056:68:18", + "nodeType": "YulVariableDeclaration", + "src": "34056:68:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "34105:1:18", + "nodeType": "YulLiteral", + "src": "34105:1:18", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nativeSrc": "34108:5:18", + "nodeType": "YulIdentifier", + "src": "34108:5:18" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "34101:3:18", + "nodeType": "YulIdentifier", + "src": "34101:3:18" + }, + "nativeSrc": "34101:13:18", + "nodeType": "YulFunctionCall", + "src": "34101:13:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "34120:1:18", + "nodeType": "YulLiteral", + "src": "34120:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "34116:3:18", + "nodeType": "YulIdentifier", + "src": "34116:3:18" + }, + "nativeSrc": "34116:6:18", + "nodeType": "YulFunctionCall", + "src": "34116:6:18" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nativeSrc": "34072:28:18", + "nodeType": "YulIdentifier", + "src": "34072:28:18" + }, + "nativeSrc": "34072:51:18", + "nodeType": "YulFunctionCall", + "src": "34072:51:18" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "34068:3:18", + "nodeType": "YulIdentifier", + "src": "34068:3:18" + }, + "nativeSrc": "34068:56:18", + "nodeType": "YulFunctionCall", + "src": "34068:56:18" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "34060:4:18", + "nodeType": "YulTypedName", + "src": "34060:4:18", + "type": "" + } + ] + }, + { + "nativeSrc": "34133:25:18", + "nodeType": "YulAssignment", + "src": "34133:25:18", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "34147:4:18", + "nodeType": "YulIdentifier", + "src": "34147:4:18" + }, + { + "name": "mask", + "nativeSrc": "34153:4:18", + "nodeType": "YulIdentifier", + "src": "34153:4:18" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "34143:3:18", + "nodeType": "YulIdentifier", + "src": "34143:3:18" + }, + "nativeSrc": "34143:15:18", + "nodeType": "YulFunctionCall", + "src": "34143:15:18" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "34133:6:18", + "nodeType": "YulIdentifier", + "src": "34133:6:18" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nativeSrc": "33995:169:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "34023:4:18", + "nodeType": "YulTypedName", + "src": "34023:4:18", + "type": "" + }, + { + "name": "bytes", + "nativeSrc": "34029:5:18", + "nodeType": "YulTypedName", + "src": "34029:5:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nativeSrc": "34039:6:18", + "nodeType": "YulTypedName", + "src": "34039:6:18", + "type": "" + } + ], + "src": "33995:169:18" + }, { "body": { - "nativeSrc": "47:35:18", + "nativeSrc": "34250:214:18", "nodeType": "YulBlock", - "src": "47:35:18", + "src": "34250:214:18", "statements": [ { - "nativeSrc": "57:19:18", + "nativeSrc": "34383:37:18", "nodeType": "YulAssignment", - "src": "57:19:18", + "src": "34383:37:18", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "34410:4:18", + "nodeType": "YulIdentifier", + "src": "34410:4:18" + }, + { + "name": "len", + "nativeSrc": "34416:3:18", + "nodeType": "YulIdentifier", + "src": "34416:3:18" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "34391:18:18", + "nodeType": "YulIdentifier", + "src": "34391:18:18" + }, + "nativeSrc": "34391:29:18", + "nodeType": "YulFunctionCall", + "src": "34391:29:18" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "34383:4:18", + "nodeType": "YulIdentifier", + "src": "34383:4:18" + } + ] + }, + { + "nativeSrc": "34429:29:18", + "nodeType": "YulAssignment", + "src": "34429:29:18", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "34440:4:18", + "nodeType": "YulIdentifier", + "src": "34440:4:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "34450:1:18", + "nodeType": "YulLiteral", + "src": "34450:1:18", + "type": "", + "value": "2" + }, + { + "name": "len", + "nativeSrc": "34453:3:18", + "nodeType": "YulIdentifier", + "src": "34453:3:18" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "34446:3:18", + "nodeType": "YulIdentifier", + "src": "34446:3:18" + }, + "nativeSrc": "34446:11:18", + "nodeType": "YulFunctionCall", + "src": "34446:11:18" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "34437:2:18", + "nodeType": "YulIdentifier", + "src": "34437:2:18" + }, + "nativeSrc": "34437:21:18", + "nodeType": "YulFunctionCall", + "src": "34437:21:18" + }, + "variableNames": [ + { + "name": "used", + "nativeSrc": "34429:4:18", + "nodeType": "YulIdentifier", + "src": "34429:4:18" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "34169:295:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "34231:4:18", + "nodeType": "YulTypedName", + "src": "34231:4:18", + "type": "" + }, + { + "name": "len", + "nativeSrc": "34237:3:18", + "nodeType": "YulTypedName", + "src": "34237:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nativeSrc": "34245:4:18", + "nodeType": "YulTypedName", + "src": "34245:4:18", + "type": "" + } + ], + "src": "34169:295:18" + }, + { + "body": { + "nativeSrc": "34561:1303:18", + "nodeType": "YulBlock", + "src": "34561:1303:18", + "statements": [ + { + "nativeSrc": "34572:51:18", + "nodeType": "YulVariableDeclaration", + "src": "34572:51:18", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "34619:3:18", + "nodeType": "YulIdentifier", + "src": "34619:3:18" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nativeSrc": "34586:32:18", + "nodeType": "YulIdentifier", + "src": "34586:32:18" + }, + "nativeSrc": "34586:37:18", + "nodeType": "YulFunctionCall", + "src": "34586:37:18" + }, + "variables": [ + { + "name": "newLen", + "nativeSrc": "34576:6:18", + "nodeType": "YulTypedName", + "src": "34576:6:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "34708:22:18", + "nodeType": "YulBlock", + "src": "34708:22:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "34710:16:18", + "nodeType": "YulIdentifier", + "src": "34710:16:18" + }, + "nativeSrc": "34710:18:18", + "nodeType": "YulFunctionCall", + "src": "34710:18:18" + }, + "nativeSrc": "34710:18:18", + "nodeType": "YulExpressionStatement", + "src": "34710:18:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "34680:6:18", + "nodeType": "YulIdentifier", + "src": "34680:6:18" + }, + { + "kind": "number", + "nativeSrc": "34688:18:18", + "nodeType": "YulLiteral", + "src": "34688:18:18", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "34677:2:18", + "nodeType": "YulIdentifier", + "src": "34677:2:18" + }, + "nativeSrc": "34677:30:18", + "nodeType": "YulFunctionCall", + "src": "34677:30:18" + }, + "nativeSrc": "34674:56:18", + "nodeType": "YulIf", + "src": "34674:56:18" + }, + { + "nativeSrc": "34740:52:18", + "nodeType": "YulVariableDeclaration", + "src": "34740:52:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "34786:4:18", + "nodeType": "YulIdentifier", + "src": "34786:4:18" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "34780:5:18", + "nodeType": "YulIdentifier", + "src": "34780:5:18" + }, + "nativeSrc": "34780:11:18", + "nodeType": "YulFunctionCall", + "src": "34780:11:18" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "34754:25:18", + "nodeType": "YulIdentifier", + "src": "34754:25:18" + }, + "nativeSrc": "34754:38:18", + "nodeType": "YulFunctionCall", + "src": "34754:38:18" + }, + "variables": [ + { + "name": "oldLen", + "nativeSrc": "34744:6:18", + "nodeType": "YulTypedName", + "src": "34744:6:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "34885:4:18", + "nodeType": "YulIdentifier", + "src": "34885:4:18" + }, + { + "name": "oldLen", + "nativeSrc": "34891:6:18", + "nodeType": "YulIdentifier", + "src": "34891:6:18" + }, + { + "name": "newLen", + "nativeSrc": "34899:6:18", + "nodeType": "YulIdentifier", + "src": "34899:6:18" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nativeSrc": "34839:45:18", + "nodeType": "YulIdentifier", + "src": "34839:45:18" + }, + "nativeSrc": "34839:67:18", + "nodeType": "YulFunctionCall", + "src": "34839:67:18" + }, + "nativeSrc": "34839:67:18", + "nodeType": "YulExpressionStatement", + "src": "34839:67:18" + }, + { + "nativeSrc": "34916:18:18", + "nodeType": "YulVariableDeclaration", + "src": "34916:18:18", + "value": { + "kind": "number", + "nativeSrc": "34933:1:18", + "nodeType": "YulLiteral", + "src": "34933:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nativeSrc": "34920:9:18", + "nodeType": "YulTypedName", + "src": "34920:9:18", + "type": "" + } + ] + }, + { + "nativeSrc": "34944:17:18", + "nodeType": "YulAssignment", + "src": "34944:17:18", "value": { + "kind": "number", + "nativeSrc": "34957:4:18", + "nodeType": "YulLiteral", + "src": "34957:4:18", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "34944:9:18", + "nodeType": "YulIdentifier", + "src": "34944:9:18" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "35008:611:18", + "nodeType": "YulBlock", + "src": "35008:611:18", + "statements": [ + { + "nativeSrc": "35022:37:18", + "nodeType": "YulVariableDeclaration", + "src": "35022:37:18", + "value": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "35041:6:18", + "nodeType": "YulIdentifier", + "src": "35041:6:18" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "35053:4:18", + "nodeType": "YulLiteral", + "src": "35053:4:18", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "35049:3:18", + "nodeType": "YulIdentifier", + "src": "35049:3:18" + }, + "nativeSrc": "35049:9:18", + "nodeType": "YulFunctionCall", + "src": "35049:9:18" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "35037:3:18", + "nodeType": "YulIdentifier", + "src": "35037:3:18" + }, + "nativeSrc": "35037:22:18", + "nodeType": "YulFunctionCall", + "src": "35037:22:18" + }, + "variables": [ + { + "name": "loopEnd", + "nativeSrc": "35026:7:18", + "nodeType": "YulTypedName", + "src": "35026:7:18", + "type": "" + } + ] + }, + { + "nativeSrc": "35073:51:18", + "nodeType": "YulVariableDeclaration", + "src": "35073:51:18", + "value": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "35119:4:18", + "nodeType": "YulIdentifier", + "src": "35119:4:18" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nativeSrc": "35087:31:18", + "nodeType": "YulIdentifier", + "src": "35087:31:18" + }, + "nativeSrc": "35087:37:18", + "nodeType": "YulFunctionCall", + "src": "35087:37:18" + }, + "variables": [ + { + "name": "dstPtr", + "nativeSrc": "35077:6:18", + "nodeType": "YulTypedName", + "src": "35077:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "35137:10:18", + "nodeType": "YulVariableDeclaration", + "src": "35137:10:18", + "value": { + "kind": "number", + "nativeSrc": "35146:1:18", + "nodeType": "YulLiteral", + "src": "35146:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "35141:1:18", + "nodeType": "YulTypedName", + "src": "35141:1:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "35205:163:18", + "nodeType": "YulBlock", + "src": "35205:163:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "35230:6:18", + "nodeType": "YulIdentifier", + "src": "35230:6:18" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "35248:3:18", + "nodeType": "YulIdentifier", + "src": "35248:3:18" + }, + { + "name": "srcOffset", + "nativeSrc": "35253:9:18", + "nodeType": "YulIdentifier", + "src": "35253:9:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35244:3:18", + "nodeType": "YulIdentifier", + "src": "35244:3:18" + }, + "nativeSrc": "35244:19:18", + "nodeType": "YulFunctionCall", + "src": "35244:19:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "35238:5:18", + "nodeType": "YulIdentifier", + "src": "35238:5:18" + }, + "nativeSrc": "35238:26:18", + "nodeType": "YulFunctionCall", + "src": "35238:26:18" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "35223:6:18", + "nodeType": "YulIdentifier", + "src": "35223:6:18" + }, + "nativeSrc": "35223:42:18", + "nodeType": "YulFunctionCall", + "src": "35223:42:18" + }, + "nativeSrc": "35223:42:18", + "nodeType": "YulExpressionStatement", + "src": "35223:42:18" + }, + { + "nativeSrc": "35282:24:18", + "nodeType": "YulAssignment", + "src": "35282:24:18", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "35296:6:18", + "nodeType": "YulIdentifier", + "src": "35296:6:18" + }, + { + "kind": "number", + "nativeSrc": "35304:1:18", + "nodeType": "YulLiteral", + "src": "35304:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35292:3:18", + "nodeType": "YulIdentifier", + "src": "35292:3:18" + }, + "nativeSrc": "35292:14:18", + "nodeType": "YulFunctionCall", + "src": "35292:14:18" + }, + "variableNames": [ + { + "name": "dstPtr", + "nativeSrc": "35282:6:18", + "nodeType": "YulIdentifier", + "src": "35282:6:18" + } + ] + }, + { + "nativeSrc": "35323:31:18", + "nodeType": "YulAssignment", + "src": "35323:31:18", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nativeSrc": "35340:9:18", + "nodeType": "YulIdentifier", + "src": "35340:9:18" + }, + { + "kind": "number", + "nativeSrc": "35351:2:18", + "nodeType": "YulLiteral", + "src": "35351:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35336:3:18", + "nodeType": "YulIdentifier", + "src": "35336:3:18" + }, + "nativeSrc": "35336:18:18", + "nodeType": "YulFunctionCall", + "src": "35336:18:18" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "35323:9:18", + "nodeType": "YulIdentifier", + "src": "35323:9:18" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "35171:1:18", + "nodeType": "YulIdentifier", + "src": "35171:1:18" + }, + { + "name": "loopEnd", + "nativeSrc": "35174:7:18", + "nodeType": "YulIdentifier", + "src": "35174:7:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "35168:2:18", + "nodeType": "YulIdentifier", + "src": "35168:2:18" + }, + "nativeSrc": "35168:14:18", + "nodeType": "YulFunctionCall", + "src": "35168:14:18" + }, + "nativeSrc": "35160:208:18", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "35183:21:18", + "nodeType": "YulBlock", + "src": "35183:21:18", + "statements": [ + { + "nativeSrc": "35185:17:18", + "nodeType": "YulAssignment", + "src": "35185:17:18", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "35194:1:18", + "nodeType": "YulIdentifier", + "src": "35194:1:18" + }, + { + "kind": "number", + "nativeSrc": "35197:4:18", + "nodeType": "YulLiteral", + "src": "35197:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35190:3:18", + "nodeType": "YulIdentifier", + "src": "35190:3:18" + }, + "nativeSrc": "35190:12:18", + "nodeType": "YulFunctionCall", + "src": "35190:12:18" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "35185:1:18", + "nodeType": "YulIdentifier", + "src": "35185:1:18" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "35164:3:18", + "nodeType": "YulBlock", + "src": "35164:3:18", + "statements": [] + }, + "src": "35160:208:18" + }, + { + "body": { + "nativeSrc": "35404:156:18", + "nodeType": "YulBlock", + "src": "35404:156:18", + "statements": [ + { + "nativeSrc": "35422:43:18", + "nodeType": "YulVariableDeclaration", + "src": "35422:43:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "35449:3:18", + "nodeType": "YulIdentifier", + "src": "35449:3:18" + }, + { + "name": "srcOffset", + "nativeSrc": "35454:9:18", + "nodeType": "YulIdentifier", + "src": "35454:9:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35445:3:18", + "nodeType": "YulIdentifier", + "src": "35445:3:18" + }, + "nativeSrc": "35445:19:18", + "nodeType": "YulFunctionCall", + "src": "35445:19:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "35439:5:18", + "nodeType": "YulIdentifier", + "src": "35439:5:18" + }, + "nativeSrc": "35439:26:18", + "nodeType": "YulFunctionCall", + "src": "35439:26:18" + }, + "variables": [ + { + "name": "lastValue", + "nativeSrc": "35426:9:18", + "nodeType": "YulTypedName", + "src": "35426:9:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "35489:6:18", + "nodeType": "YulIdentifier", + "src": "35489:6:18" + }, + { + "arguments": [ + { + "name": "lastValue", + "nativeSrc": "35516:9:18", + "nodeType": "YulIdentifier", + "src": "35516:9:18" + }, + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "35531:6:18", + "nodeType": "YulIdentifier", + "src": "35531:6:18" + }, + { + "kind": "number", + "nativeSrc": "35539:4:18", + "nodeType": "YulLiteral", + "src": "35539:4:18", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "35527:3:18", + "nodeType": "YulIdentifier", + "src": "35527:3:18" + }, + "nativeSrc": "35527:17:18", + "nodeType": "YulFunctionCall", + "src": "35527:17:18" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nativeSrc": "35497:18:18", + "nodeType": "YulIdentifier", + "src": "35497:18:18" + }, + "nativeSrc": "35497:48:18", + "nodeType": "YulFunctionCall", + "src": "35497:48:18" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "35482:6:18", + "nodeType": "YulIdentifier", + "src": "35482:6:18" + }, + "nativeSrc": "35482:64:18", + "nodeType": "YulFunctionCall", + "src": "35482:64:18" + }, + "nativeSrc": "35482:64:18", + "nodeType": "YulExpressionStatement", + "src": "35482:64:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nativeSrc": "35387:7:18", + "nodeType": "YulIdentifier", + "src": "35387:7:18" + }, + { + "name": "newLen", + "nativeSrc": "35396:6:18", + "nodeType": "YulIdentifier", + "src": "35396:6:18" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "35384:2:18", + "nodeType": "YulIdentifier", + "src": "35384:2:18" + }, + "nativeSrc": "35384:19:18", + "nodeType": "YulFunctionCall", + "src": "35384:19:18" + }, + "nativeSrc": "35381:179:18", + "nodeType": "YulIf", + "src": "35381:179:18" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "35580:4:18", + "nodeType": "YulIdentifier", + "src": "35580:4:18" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "35594:6:18", + "nodeType": "YulIdentifier", + "src": "35594:6:18" + }, + { + "kind": "number", + "nativeSrc": "35602:1:18", + "nodeType": "YulLiteral", + "src": "35602:1:18", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "35590:3:18", + "nodeType": "YulIdentifier", + "src": "35590:3:18" + }, + "nativeSrc": "35590:14:18", + "nodeType": "YulFunctionCall", + "src": "35590:14:18" + }, + { + "kind": "number", + "nativeSrc": "35606:1:18", + "nodeType": "YulLiteral", + "src": "35606:1:18", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35586:3:18", + "nodeType": "YulIdentifier", + "src": "35586:3:18" + }, + "nativeSrc": "35586:22:18", + "nodeType": "YulFunctionCall", + "src": "35586:22:18" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "35573:6:18", + "nodeType": "YulIdentifier", + "src": "35573:6:18" + }, + "nativeSrc": "35573:36:18", + "nodeType": "YulFunctionCall", + "src": "35573:36:18" + }, + "nativeSrc": "35573:36:18", + "nodeType": "YulExpressionStatement", + "src": "35573:36:18" + } + ] + }, + "nativeSrc": "35001:618:18", + "nodeType": "YulCase", + "src": "35001:618:18", + "value": { + "kind": "number", + "nativeSrc": "35006:1:18", + "nodeType": "YulLiteral", + "src": "35006:1:18", + "type": "", + "value": "1" + } + }, + { + "body": { + "nativeSrc": "35636:222:18", + "nodeType": "YulBlock", + "src": "35636:222:18", + "statements": [ + { + "nativeSrc": "35650:14:18", + "nodeType": "YulVariableDeclaration", + "src": "35650:14:18", + "value": { + "kind": "number", + "nativeSrc": "35663:1:18", + "nodeType": "YulLiteral", + "src": "35663:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "35654:5:18", + "nodeType": "YulTypedName", + "src": "35654:5:18", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "35687:67:18", + "nodeType": "YulBlock", + "src": "35687:67:18", + "statements": [ + { + "nativeSrc": "35705:35:18", + "nodeType": "YulAssignment", + "src": "35705:35:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "35724:3:18", + "nodeType": "YulIdentifier", + "src": "35724:3:18" + }, + { + "name": "srcOffset", + "nativeSrc": "35729:9:18", + "nodeType": "YulIdentifier", + "src": "35729:9:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35720:3:18", + "nodeType": "YulIdentifier", + "src": "35720:3:18" + }, + "nativeSrc": "35720:19:18", + "nodeType": "YulFunctionCall", + "src": "35720:19:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "35714:5:18", + "nodeType": "YulIdentifier", + "src": "35714:5:18" + }, + "nativeSrc": "35714:26:18", + "nodeType": "YulFunctionCall", + "src": "35714:26:18" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "35705:5:18", + "nodeType": "YulIdentifier", + "src": "35705:5:18" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nativeSrc": "35680:6:18", + "nodeType": "YulIdentifier", + "src": "35680:6:18" + }, + "nativeSrc": "35677:77:18", + "nodeType": "YulIf", + "src": "35677:77:18" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "35774:4:18", + "nodeType": "YulIdentifier", + "src": "35774:4:18" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "35833:5:18", + "nodeType": "YulIdentifier", + "src": "35833:5:18" + }, + { + "name": "newLen", + "nativeSrc": "35840:6:18", + "nodeType": "YulIdentifier", + "src": "35840:6:18" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "35780:52:18", + "nodeType": "YulIdentifier", + "src": "35780:52:18" + }, + "nativeSrc": "35780:67:18", + "nodeType": "YulFunctionCall", + "src": "35780:67:18" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "35767:6:18", + "nodeType": "YulIdentifier", + "src": "35767:6:18" + }, + "nativeSrc": "35767:81:18", + "nodeType": "YulFunctionCall", + "src": "35767:81:18" + }, + "nativeSrc": "35767:81:18", + "nodeType": "YulExpressionStatement", + "src": "35767:81:18" + } + ] + }, + "nativeSrc": "35628:230:18", + "nodeType": "YulCase", + "src": "35628:230:18", + "value": "default" + } + ], + "expression": { "arguments": [ + { + "name": "newLen", + "nativeSrc": "34981:6:18", + "nodeType": "YulIdentifier", + "src": "34981:6:18" + }, { "kind": "number", - "nativeSrc": "73:2:18", + "nativeSrc": "34989:2:18", "nodeType": "YulLiteral", - "src": "73:2:18", + "src": "34989:2:18", "type": "", - "value": "64" + "value": "31" } ], "functionName": { - "name": "mload", - "nativeSrc": "67:5:18", + "name": "gt", + "nativeSrc": "34978:2:18", "nodeType": "YulIdentifier", - "src": "67:5:18" + "src": "34978:2:18" }, - "nativeSrc": "67:9:18", + "nativeSrc": "34978:14:18", "nodeType": "YulFunctionCall", - "src": "67:9:18" + "src": "34978:14:18" }, - "variableNames": [ - { - "name": "memPtr", - "nativeSrc": "57:6:18", - "nodeType": "YulIdentifier", - "src": "57:6:18" - } - ] + "nativeSrc": "34971:887:18", + "nodeType": "YulSwitch", + "src": "34971:887:18" } ] }, - "name": "allocate_unbounded", - "nativeSrc": "7:75:18", + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nativeSrc": "34469:1395:18", "nodeType": "YulFunctionDefinition", - "returnVariables": [ + "parameters": [ { - "name": "memPtr", - "nativeSrc": "40:6:18", + "name": "slot", + "nativeSrc": "34550:4:18", "nodeType": "YulTypedName", - "src": "40:6:18", + "src": "34550:4:18", + "type": "" + }, + { + "name": "src", + "nativeSrc": "34556:3:18", + "nodeType": "YulTypedName", + "src": "34556:3:18", "type": "" } ], - "src": "7:75:18" + "src": "34469:1395:18" }, { "body": { - "nativeSrc": "177:28:18", + "nativeSrc": "35898:152:18", "nodeType": "YulBlock", - "src": "177:28:18", + "src": "35898:152:18", "statements": [ { "expression": { "arguments": [ { "kind": "number", - "nativeSrc": "194:1:18", + "nativeSrc": "35915:1:18", "nodeType": "YulLiteral", - "src": "194:1:18", + "src": "35915:1:18", "type": "", "value": "0" }, { "kind": "number", - "nativeSrc": "197:1:18", + "nativeSrc": "35918:77:18", "nodeType": "YulLiteral", - "src": "197:1:18", + "src": "35918:77:18", "type": "", - "value": "0" + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { - "name": "revert", - "nativeSrc": "187:6:18", + "name": "mstore", + "nativeSrc": "35908:6:18", "nodeType": "YulIdentifier", - "src": "187:6:18" + "src": "35908:6:18" }, - "nativeSrc": "187:12:18", + "nativeSrc": "35908:88:18", "nodeType": "YulFunctionCall", - "src": "187:12:18" + "src": "35908:88:18" }, - "nativeSrc": "187:12:18", + "nativeSrc": "35908:88:18", "nodeType": "YulExpressionStatement", - "src": "187:12:18" - } - ] - }, - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "88:117:18", - "nodeType": "YulFunctionDefinition", - "src": "88:117:18" - }, - { - "body": { - "nativeSrc": "300:28:18", - "nodeType": "YulBlock", - "src": "300:28:18", - "statements": [ + "src": "35908:88:18" + }, { "expression": { "arguments": [ { "kind": "number", - "nativeSrc": "317:1:18", + "nativeSrc": "36012:1:18", "nodeType": "YulLiteral", - "src": "317:1:18", + "src": "36012:1:18", "type": "", - "value": "0" + "value": "4" }, { "kind": "number", - "nativeSrc": "320:1:18", + "nativeSrc": "36015:4:18", "nodeType": "YulLiteral", - "src": "320:1:18", + "src": "36015:4:18", "type": "", - "value": "0" + "value": "0x11" } ], "functionName": { - "name": "revert", - "nativeSrc": "310:6:18", + "name": "mstore", + "nativeSrc": "36005:6:18", "nodeType": "YulIdentifier", - "src": "310:6:18" + "src": "36005:6:18" }, - "nativeSrc": "310:12:18", + "nativeSrc": "36005:15:18", "nodeType": "YulFunctionCall", - "src": "310:12:18" + "src": "36005:15:18" }, - "nativeSrc": "310:12:18", + "nativeSrc": "36005:15:18", "nodeType": "YulExpressionStatement", - "src": "310:12:18" - } - ] - }, - "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", - "nativeSrc": "211:117:18", - "nodeType": "YulFunctionDefinition", - "src": "211:117:18" - }, - { - "body": { - "nativeSrc": "379:32:18", - "nodeType": "YulBlock", - "src": "379:32:18", - "statements": [ - { - "nativeSrc": "389:16:18", - "nodeType": "YulAssignment", - "src": "389:16:18", - "value": { - "name": "value", - "nativeSrc": "400:5:18", - "nodeType": "YulIdentifier", - "src": "400:5:18" - }, - "variableNames": [ - { - "name": "cleaned", - "nativeSrc": "389:7:18", - "nodeType": "YulIdentifier", - "src": "389:7:18" - } - ] - } - ] - }, - "name": "cleanup_t_uint256", - "nativeSrc": "334:77:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "361:5:18", - "nodeType": "YulTypedName", - "src": "361:5:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "cleaned", - "nativeSrc": "371:7:18", - "nodeType": "YulTypedName", - "src": "371:7:18", - "type": "" - } - ], - "src": "334:77:18" - }, - { - "body": { - "nativeSrc": "460:79:18", - "nodeType": "YulBlock", - "src": "460:79:18", - "statements": [ + "src": "36005:15:18" + }, { - "body": { - "nativeSrc": "517:16:18", - "nodeType": "YulBlock", - "src": "517:16:18", - "statements": [ - { - "expression": { - "arguments": [ - { - "kind": "number", - "nativeSrc": "526:1:18", - "nodeType": "YulLiteral", - "src": "526:1:18", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nativeSrc": "529:1:18", - "nodeType": "YulLiteral", - "src": "529:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "revert", - "nativeSrc": "519:6:18", - "nodeType": "YulIdentifier", - "src": "519:6:18" - }, - "nativeSrc": "519:12:18", - "nodeType": "YulFunctionCall", - "src": "519:12:18" - }, - "nativeSrc": "519:12:18", - "nodeType": "YulExpressionStatement", - "src": "519:12:18" - } - ] - }, - "condition": { + "expression": { "arguments": [ { - "arguments": [ - { - "name": "value", - "nativeSrc": "483:5:18", - "nodeType": "YulIdentifier", - "src": "483:5:18" - }, - { - "arguments": [ - { - "name": "value", - "nativeSrc": "508:5:18", - "nodeType": "YulIdentifier", - "src": "508:5:18" - } - ], - "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "490:17:18", - "nodeType": "YulIdentifier", - "src": "490:17:18" - }, - "nativeSrc": "490:24:18", - "nodeType": "YulFunctionCall", - "src": "490:24:18" - } - ], - "functionName": { - "name": "eq", - "nativeSrc": "480:2:18", - "nodeType": "YulIdentifier", - "src": "480:2:18" - }, - "nativeSrc": "480:35:18", - "nodeType": "YulFunctionCall", - "src": "480:35:18" + "kind": "number", + "nativeSrc": "36036:1:18", + "nodeType": "YulLiteral", + "src": "36036:1:18", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "36039:4:18", + "nodeType": "YulLiteral", + "src": "36039:4:18", + "type": "", + "value": "0x24" } ], "functionName": { - "name": "iszero", - "nativeSrc": "473:6:18", + "name": "revert", + "nativeSrc": "36029:6:18", "nodeType": "YulIdentifier", - "src": "473:6:18" + "src": "36029:6:18" }, - "nativeSrc": "473:43:18", + "nativeSrc": "36029:15:18", "nodeType": "YulFunctionCall", - "src": "473:43:18" + "src": "36029:15:18" }, - "nativeSrc": "470:63:18", - "nodeType": "YulIf", - "src": "470:63:18" + "nativeSrc": "36029:15:18", + "nodeType": "YulExpressionStatement", + "src": "36029:15:18" } ] }, - "name": "validator_revert_t_uint256", - "nativeSrc": "417:122:18", + "name": "panic_error_0x11", + "nativeSrc": "35870:180:18", "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "value", - "nativeSrc": "453:5:18", - "nodeType": "YulTypedName", - "src": "453:5:18", - "type": "" - } - ], - "src": "417:122:18" + "src": "35870:180:18" }, { "body": { - "nativeSrc": "608:80:18", + "nativeSrc": "36100:147:18", "nodeType": "YulBlock", - "src": "608:80:18", + "src": "36100:147:18", "statements": [ { - "nativeSrc": "618:22:18", + "nativeSrc": "36110:25:18", "nodeType": "YulAssignment", - "src": "618:22:18", + "src": "36110:25:18", "value": { "arguments": [ { - "name": "offset", - "nativeSrc": "633:6:18", + "name": "x", + "nativeSrc": "36133:1:18", "nodeType": "YulIdentifier", - "src": "633:6:18" + "src": "36133:1:18" } ], "functionName": { - "name": "mload", - "nativeSrc": "627:5:18", + "name": "cleanup_t_uint256", + "nativeSrc": "36115:17:18", "nodeType": "YulIdentifier", - "src": "627:5:18" + "src": "36115:17:18" }, - "nativeSrc": "627:13:18", + "nativeSrc": "36115:20:18", "nodeType": "YulFunctionCall", - "src": "627:13:18" + "src": "36115:20:18" }, "variableNames": [ { - "name": "value", - "nativeSrc": "618:5:18", + "name": "x", + "nativeSrc": "36110:1:18", "nodeType": "YulIdentifier", - "src": "618:5:18" + "src": "36110:1:18" } ] }, { - "expression": { + "nativeSrc": "36144:25:18", + "nodeType": "YulAssignment", + "src": "36144:25:18", + "value": { "arguments": [ { - "name": "value", - "nativeSrc": "676:5:18", + "name": "y", + "nativeSrc": "36167:1:18", "nodeType": "YulIdentifier", - "src": "676:5:18" + "src": "36167:1:18" } ], "functionName": { - "name": "validator_revert_t_uint256", - "nativeSrc": "649:26:18", + "name": "cleanup_t_uint256", + "nativeSrc": "36149:17:18", "nodeType": "YulIdentifier", - "src": "649:26:18" + "src": "36149:17:18" }, - "nativeSrc": "649:33:18", + "nativeSrc": "36149:20:18", "nodeType": "YulFunctionCall", - "src": "649:33:18" + "src": "36149:20:18" }, - "nativeSrc": "649:33:18", - "nodeType": "YulExpressionStatement", - "src": "649:33:18" + "variableNames": [ + { + "name": "y", + "nativeSrc": "36144:1:18", + "nodeType": "YulIdentifier", + "src": "36144:1:18" + } + ] + }, + { + "nativeSrc": "36178:16:18", + "nodeType": "YulAssignment", + "src": "36178:16:18", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "36189:1:18", + "nodeType": "YulIdentifier", + "src": "36189:1:18" + }, + { + "name": "y", + "nativeSrc": "36192:1:18", + "nodeType": "YulIdentifier", + "src": "36192:1:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "36185:3:18", + "nodeType": "YulIdentifier", + "src": "36185:3:18" + }, + "nativeSrc": "36185:9:18", + "nodeType": "YulFunctionCall", + "src": "36185:9:18" + }, + "variableNames": [ + { + "name": "sum", + "nativeSrc": "36178:3:18", + "nodeType": "YulIdentifier", + "src": "36178:3:18" + } + ] + }, + { + "body": { + "nativeSrc": "36218:22:18", + "nodeType": "YulBlock", + "src": "36218:22:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "36220:16:18", + "nodeType": "YulIdentifier", + "src": "36220:16:18" + }, + "nativeSrc": "36220:18:18", + "nodeType": "YulFunctionCall", + "src": "36220:18:18" + }, + "nativeSrc": "36220:18:18", + "nodeType": "YulExpressionStatement", + "src": "36220:18:18" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nativeSrc": "36210:1:18", + "nodeType": "YulIdentifier", + "src": "36210:1:18" + }, + { + "name": "sum", + "nativeSrc": "36213:3:18", + "nodeType": "YulIdentifier", + "src": "36213:3:18" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "36207:2:18", + "nodeType": "YulIdentifier", + "src": "36207:2:18" + }, + "nativeSrc": "36207:10:18", + "nodeType": "YulFunctionCall", + "src": "36207:10:18" + }, + "nativeSrc": "36204:36:18", + "nodeType": "YulIf", + "src": "36204:36:18" } ] }, - "name": "abi_decode_t_uint256_fromMemory", - "nativeSrc": "545:143:18", + "name": "checked_add_t_uint256", + "nativeSrc": "36056:191:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "offset", - "nativeSrc": "586:6:18", + "name": "x", + "nativeSrc": "36087:1:18", "nodeType": "YulTypedName", - "src": "586:6:18", + "src": "36087:1:18", "type": "" }, { - "name": "end", - "nativeSrc": "594:3:18", + "name": "y", + "nativeSrc": "36090:1:18", "nodeType": "YulTypedName", - "src": "594:3:18", + "src": "36090:1:18", "type": "" } ], "returnVariables": [ { - "name": "value", - "nativeSrc": "602:5:18", + "name": "sum", + "nativeSrc": "36096:3:18", "nodeType": "YulTypedName", - "src": "602:5:18", + "src": "36096:3:18", "type": "" } ], - "src": "545:143:18" + "src": "36056:191:18" }, { "body": { - "nativeSrc": "771:274:18", + "nativeSrc": "36351:124:18", "nodeType": "YulBlock", - "src": "771:274:18", + "src": "36351:124:18", "statements": [ { - "body": { - "nativeSrc": "817:83:18", - "nodeType": "YulBlock", - "src": "817:83:18", - "statements": [ - { - "expression": { - "arguments": [], - "functionName": { - "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", - "nativeSrc": "819:77:18", - "nodeType": "YulIdentifier", - "src": "819:77:18" - }, - "nativeSrc": "819:79:18", - "nodeType": "YulFunctionCall", - "src": "819:79:18" - }, - "nativeSrc": "819:79:18", - "nodeType": "YulExpressionStatement", - "src": "819:79:18" - } - ] - }, - "condition": { + "nativeSrc": "36361:26:18", + "nodeType": "YulAssignment", + "src": "36361:26:18", + "value": { "arguments": [ { - "arguments": [ - { - "name": "dataEnd", - "nativeSrc": "792:7:18", - "nodeType": "YulIdentifier", - "src": "792:7:18" - }, - { - "name": "headStart", - "nativeSrc": "801:9:18", - "nodeType": "YulIdentifier", - "src": "801:9:18" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "788:3:18", - "nodeType": "YulIdentifier", - "src": "788:3:18" - }, - "nativeSrc": "788:23:18", - "nodeType": "YulFunctionCall", - "src": "788:23:18" + "name": "headStart", + "nativeSrc": "36373:9:18", + "nodeType": "YulIdentifier", + "src": "36373:9:18" }, { "kind": "number", - "nativeSrc": "813:2:18", + "nativeSrc": "36384:2:18", "nodeType": "YulLiteral", - "src": "813:2:18", + "src": "36384:2:18", "type": "", "value": "32" } ], "functionName": { - "name": "slt", - "nativeSrc": "784:3:18", + "name": "add", + "nativeSrc": "36369:3:18", "nodeType": "YulIdentifier", - "src": "784:3:18" + "src": "36369:3:18" }, - "nativeSrc": "784:32:18", + "nativeSrc": "36369:18:18", "nodeType": "YulFunctionCall", - "src": "784:32:18" + "src": "36369:18:18" }, - "nativeSrc": "781:119:18", - "nodeType": "YulIf", - "src": "781:119:18" + "variableNames": [ + { + "name": "tail", + "nativeSrc": "36361:4:18", + "nodeType": "YulIdentifier", + "src": "36361:4:18" + } + ] }, { - "nativeSrc": "910:128:18", - "nodeType": "YulBlock", - "src": "910:128:18", - "statements": [ - { - "nativeSrc": "925:15:18", - "nodeType": "YulVariableDeclaration", - "src": "925:15:18", - "value": { - "kind": "number", - "nativeSrc": "939:1:18", - "nodeType": "YulLiteral", - "src": "939:1:18", - "type": "", - "value": "0" + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "36441:6:18", + "nodeType": "YulIdentifier", + "src": "36441:6:18" }, - "variables": [ - { - "name": "offset", - "nativeSrc": "929:6:18", - "nodeType": "YulTypedName", - "src": "929:6:18", - "type": "" - } - ] - }, - { - "nativeSrc": "954:74:18", - "nodeType": "YulAssignment", - "src": "954:74:18", - "value": { + { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1000:9:18", - "nodeType": "YulIdentifier", - "src": "1000:9:18" - }, - { - "name": "offset", - "nativeSrc": "1011:6:18", - "nodeType": "YulIdentifier", - "src": "1011:6:18" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "996:3:18", - "nodeType": "YulIdentifier", - "src": "996:3:18" - }, - "nativeSrc": "996:22:18", - "nodeType": "YulFunctionCall", - "src": "996:22:18" + "name": "headStart", + "nativeSrc": "36454:9:18", + "nodeType": "YulIdentifier", + "src": "36454:9:18" }, { - "name": "dataEnd", - "nativeSrc": "1020:7:18", - "nodeType": "YulIdentifier", - "src": "1020:7:18" + "kind": "number", + "nativeSrc": "36465:1:18", + "nodeType": "YulLiteral", + "src": "36465:1:18", + "type": "", + "value": "0" } ], "functionName": { - "name": "abi_decode_t_uint256_fromMemory", - "nativeSrc": "964:31:18", + "name": "add", + "nativeSrc": "36450:3:18", "nodeType": "YulIdentifier", - "src": "964:31:18" + "src": "36450:3:18" }, - "nativeSrc": "964:64:18", + "nativeSrc": "36450:17:18", "nodeType": "YulFunctionCall", - "src": "964:64:18" - }, - "variableNames": [ - { - "name": "value0", - "nativeSrc": "954:6:18", - "nodeType": "YulIdentifier", - "src": "954:6:18" - } - ] - } - ] + "src": "36450:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "36397:43:18", + "nodeType": "YulIdentifier", + "src": "36397:43:18" + }, + "nativeSrc": "36397:71:18", + "nodeType": "YulFunctionCall", + "src": "36397:71:18" + }, + "nativeSrc": "36397:71:18", + "nodeType": "YulExpressionStatement", + "src": "36397:71:18" } ] }, - "name": "abi_decode_tuple_t_uint256_fromMemory", - "nativeSrc": "694:351:18", + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "36253:222:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", - "nativeSrc": "741:9:18", + "nativeSrc": "36323:9:18", "nodeType": "YulTypedName", - "src": "741:9:18", + "src": "36323:9:18", "type": "" }, { - "name": "dataEnd", - "nativeSrc": "752:7:18", + "name": "value0", + "nativeSrc": "36335:6:18", "nodeType": "YulTypedName", - "src": "752:7:18", + "src": "36335:6:18", "type": "" } ], "returnVariables": [ { - "name": "value0", - "nativeSrc": "764:6:18", + "name": "tail", + "nativeSrc": "36346:4:18", "nodeType": "YulTypedName", - "src": "764:6:18", + "src": "36346:4:18", "type": "" } ], - "src": "694:351:18" + "src": "36253:222:18" }, { "body": { - "nativeSrc": "1147:73:18", + "nativeSrc": "36509:152:18", "nodeType": "YulBlock", - "src": "1147:73:18", + "src": "36509:152:18", "statements": [ { "expression": { "arguments": [ { - "name": "pos", - "nativeSrc": "1164:3:18", - "nodeType": "YulIdentifier", - "src": "1164:3:18" + "kind": "number", + "nativeSrc": "36526:1:18", + "nodeType": "YulLiteral", + "src": "36526:1:18", + "type": "", + "value": "0" }, { - "name": "length", - "nativeSrc": "1169:6:18", - "nodeType": "YulIdentifier", - "src": "1169:6:18" + "kind": "number", + "nativeSrc": "36529:77:18", + "nodeType": "YulLiteral", + "src": "36529:77:18", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" } ], "functionName": { "name": "mstore", - "nativeSrc": "1157:6:18", + "nativeSrc": "36519:6:18", "nodeType": "YulIdentifier", - "src": "1157:6:18" + "src": "36519:6:18" }, - "nativeSrc": "1157:19:18", + "nativeSrc": "36519:88:18", "nodeType": "YulFunctionCall", - "src": "1157:19:18" + "src": "36519:88:18" }, - "nativeSrc": "1157:19:18", + "nativeSrc": "36519:88:18", "nodeType": "YulExpressionStatement", - "src": "1157:19:18" + "src": "36519:88:18" }, { - "nativeSrc": "1185:29:18", - "nodeType": "YulAssignment", - "src": "1185:29:18", - "value": { + "expression": { "arguments": [ { - "name": "pos", - "nativeSrc": "1204:3:18", - "nodeType": "YulIdentifier", - "src": "1204:3:18" + "kind": "number", + "nativeSrc": "36623:1:18", + "nodeType": "YulLiteral", + "src": "36623:1:18", + "type": "", + "value": "4" }, { "kind": "number", - "nativeSrc": "1209:4:18", + "nativeSrc": "36626:4:18", "nodeType": "YulLiteral", - "src": "1209:4:18", + "src": "36626:4:18", "type": "", - "value": "0x20" + "value": "0x12" } ], "functionName": { - "name": "add", - "nativeSrc": "1200:3:18", + "name": "mstore", + "nativeSrc": "36616:6:18", "nodeType": "YulIdentifier", - "src": "1200:3:18" + "src": "36616:6:18" }, - "nativeSrc": "1200:14:18", + "nativeSrc": "36616:15:18", "nodeType": "YulFunctionCall", - "src": "1200:14:18" + "src": "36616:15:18" }, - "variableNames": [ - { - "name": "updated_pos", - "nativeSrc": "1185:11:18", - "nodeType": "YulIdentifier", - "src": "1185:11:18" - } - ] - } - ] - }, - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nativeSrc": "1051:169:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "pos", - "nativeSrc": "1119:3:18", - "nodeType": "YulTypedName", - "src": "1119:3:18", - "type": "" - }, - { - "name": "length", - "nativeSrc": "1124:6:18", - "nodeType": "YulTypedName", - "src": "1124:6:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "updated_pos", - "nativeSrc": "1135:11:18", - "nodeType": "YulTypedName", - "src": "1135:11:18", - "type": "" - } - ], - "src": "1051:169:18" - }, - { - "body": { - "nativeSrc": "1332:116:18", - "nodeType": "YulBlock", - "src": "1332:116:18", - "statements": [ + "nativeSrc": "36616:15:18", + "nodeType": "YulExpressionStatement", + "src": "36616:15:18" + }, { "expression": { "arguments": [ { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "1354:6:18", - "nodeType": "YulIdentifier", - "src": "1354:6:18" - }, - { - "kind": "number", - "nativeSrc": "1362:1:18", - "nodeType": "YulLiteral", - "src": "1362:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1350:3:18", - "nodeType": "YulIdentifier", - "src": "1350:3:18" - }, - "nativeSrc": "1350:14:18", - "nodeType": "YulFunctionCall", - "src": "1350:14:18" + "kind": "number", + "nativeSrc": "36647:1:18", + "nodeType": "YulLiteral", + "src": "36647:1:18", + "type": "", + "value": "0" }, { - "hexValue": "556e6c6f636b2074696d652073686f756c6420626520696e2074686520667574", - "kind": "string", - "nativeSrc": "1366:34:18", + "kind": "number", + "nativeSrc": "36650:4:18", "nodeType": "YulLiteral", - "src": "1366:34:18", + "src": "36650:4:18", "type": "", - "value": "Unlock time should be in the fut" + "value": "0x24" } ], "functionName": { - "name": "mstore", - "nativeSrc": "1343:6:18", + "name": "revert", + "nativeSrc": "36640:6:18", "nodeType": "YulIdentifier", - "src": "1343:6:18" + "src": "36640:6:18" }, - "nativeSrc": "1343:58:18", + "nativeSrc": "36640:15:18", "nodeType": "YulFunctionCall", - "src": "1343:58:18" + "src": "36640:15:18" }, - "nativeSrc": "1343:58:18", + "nativeSrc": "36640:15:18", "nodeType": "YulExpressionStatement", - "src": "1343:58:18" - }, + "src": "36640:15:18" + } + ] + }, + "name": "panic_error_0x12", + "nativeSrc": "36481:180:18", + "nodeType": "YulFunctionDefinition", + "src": "36481:180:18" + }, + { + "body": { + "nativeSrc": "36773:63:18", + "nodeType": "YulBlock", + "src": "36773:63:18", + "statements": [ { "expression": { "arguments": [ @@ -84607,112 +85817,112 @@ "arguments": [ { "name": "memPtr", - "nativeSrc": "1422:6:18", + "nativeSrc": "36795:6:18", "nodeType": "YulIdentifier", - "src": "1422:6:18" + "src": "36795:6:18" }, { "kind": "number", - "nativeSrc": "1430:2:18", + "nativeSrc": "36803:1:18", "nodeType": "YulLiteral", - "src": "1430:2:18", + "src": "36803:1:18", "type": "", - "value": "32" + "value": "0" } ], "functionName": { "name": "add", - "nativeSrc": "1418:3:18", + "nativeSrc": "36791:3:18", "nodeType": "YulIdentifier", - "src": "1418:3:18" + "src": "36791:3:18" }, - "nativeSrc": "1418:15:18", + "nativeSrc": "36791:14:18", "nodeType": "YulFunctionCall", - "src": "1418:15:18" + "src": "36791:14:18" }, { - "hexValue": "757265", + "hexValue": "5552492063616e6e6f7420626520656d707479", "kind": "string", - "nativeSrc": "1435:5:18", + "nativeSrc": "36807:21:18", "nodeType": "YulLiteral", - "src": "1435:5:18", + "src": "36807:21:18", "type": "", - "value": "ure" + "value": "URI cannot be empty" } ], "functionName": { "name": "mstore", - "nativeSrc": "1411:6:18", + "nativeSrc": "36784:6:18", "nodeType": "YulIdentifier", - "src": "1411:6:18" + "src": "36784:6:18" }, - "nativeSrc": "1411:30:18", + "nativeSrc": "36784:45:18", "nodeType": "YulFunctionCall", - "src": "1411:30:18" + "src": "36784:45:18" }, - "nativeSrc": "1411:30:18", + "nativeSrc": "36784:45:18", "nodeType": "YulExpressionStatement", - "src": "1411:30:18" + "src": "36784:45:18" } ] }, - "name": "store_literal_in_memory_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413", - "nativeSrc": "1226:222:18", + "name": "store_literal_in_memory_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231", + "nativeSrc": "36667:169:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "memPtr", - "nativeSrc": "1324:6:18", + "nativeSrc": "36765:6:18", "nodeType": "YulTypedName", - "src": "1324:6:18", + "src": "36765:6:18", "type": "" } ], - "src": "1226:222:18" + "src": "36667:169:18" }, { "body": { - "nativeSrc": "1600:220:18", + "nativeSrc": "36988:220:18", "nodeType": "YulBlock", - "src": "1600:220:18", + "src": "36988:220:18", "statements": [ { - "nativeSrc": "1610:74:18", + "nativeSrc": "36998:74:18", "nodeType": "YulAssignment", - "src": "1610:74:18", + "src": "36998:74:18", "value": { "arguments": [ { "name": "pos", - "nativeSrc": "1676:3:18", + "nativeSrc": "37064:3:18", "nodeType": "YulIdentifier", - "src": "1676:3:18" + "src": "37064:3:18" }, { "kind": "number", - "nativeSrc": "1681:2:18", + "nativeSrc": "37069:2:18", "nodeType": "YulLiteral", - "src": "1681:2:18", + "src": "37069:2:18", "type": "", - "value": "35" + "value": "19" } ], "functionName": { "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nativeSrc": "1617:58:18", + "nativeSrc": "37005:58:18", "nodeType": "YulIdentifier", - "src": "1617:58:18" + "src": "37005:58:18" }, - "nativeSrc": "1617:67:18", + "nativeSrc": "37005:67:18", "nodeType": "YulFunctionCall", - "src": "1617:67:18" + "src": "37005:67:18" }, "variableNames": [ { "name": "pos", - "nativeSrc": "1610:3:18", + "nativeSrc": "36998:3:18", "nodeType": "YulIdentifier", - "src": "1610:3:18" + "src": "36998:3:18" } ] }, @@ -84721,133 +85931,133 @@ "arguments": [ { "name": "pos", - "nativeSrc": "1782:3:18", + "nativeSrc": "37170:3:18", "nodeType": "YulIdentifier", - "src": "1782:3:18" + "src": "37170:3:18" } ], "functionName": { - "name": "store_literal_in_memory_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413", - "nativeSrc": "1693:88:18", + "name": "store_literal_in_memory_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231", + "nativeSrc": "37081:88:18", "nodeType": "YulIdentifier", - "src": "1693:88:18" + "src": "37081:88:18" }, - "nativeSrc": "1693:93:18", + "nativeSrc": "37081:93:18", "nodeType": "YulFunctionCall", - "src": "1693:93:18" + "src": "37081:93:18" }, - "nativeSrc": "1693:93:18", + "nativeSrc": "37081:93:18", "nodeType": "YulExpressionStatement", - "src": "1693:93:18" + "src": "37081:93:18" }, { - "nativeSrc": "1795:19:18", + "nativeSrc": "37183:19:18", "nodeType": "YulAssignment", - "src": "1795:19:18", + "src": "37183:19:18", "value": { "arguments": [ { "name": "pos", - "nativeSrc": "1806:3:18", + "nativeSrc": "37194:3:18", "nodeType": "YulIdentifier", - "src": "1806:3:18" + "src": "37194:3:18" }, { "kind": "number", - "nativeSrc": "1811:2:18", + "nativeSrc": "37199:2:18", "nodeType": "YulLiteral", - "src": "1811:2:18", + "src": "37199:2:18", "type": "", - "value": "64" + "value": "32" } ], "functionName": { "name": "add", - "nativeSrc": "1802:3:18", + "nativeSrc": "37190:3:18", "nodeType": "YulIdentifier", - "src": "1802:3:18" + "src": "37190:3:18" }, - "nativeSrc": "1802:12:18", + "nativeSrc": "37190:12:18", "nodeType": "YulFunctionCall", - "src": "1802:12:18" + "src": "37190:12:18" }, "variableNames": [ { "name": "end", - "nativeSrc": "1795:3:18", + "nativeSrc": "37183:3:18", "nodeType": "YulIdentifier", - "src": "1795:3:18" + "src": "37183:3:18" } ] } ] }, - "name": "abi_encode_t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413_to_t_string_memory_ptr_fromStack", - "nativeSrc": "1454:366:18", + "name": "abi_encode_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack", + "nativeSrc": "36842:366:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", - "nativeSrc": "1588:3:18", + "nativeSrc": "36976:3:18", "nodeType": "YulTypedName", - "src": "1588:3:18", + "src": "36976:3:18", "type": "" } ], "returnVariables": [ { "name": "end", - "nativeSrc": "1596:3:18", + "nativeSrc": "36984:3:18", "nodeType": "YulTypedName", - "src": "1596:3:18", + "src": "36984:3:18", "type": "" } ], - "src": "1454:366:18" + "src": "36842:366:18" }, { "body": { - "nativeSrc": "1997:248:18", + "nativeSrc": "37385:248:18", "nodeType": "YulBlock", - "src": "1997:248:18", + "src": "37385:248:18", "statements": [ { - "nativeSrc": "2007:26:18", + "nativeSrc": "37395:26:18", "nodeType": "YulAssignment", - "src": "2007:26:18", + "src": "37395:26:18", "value": { "arguments": [ { "name": "headStart", - "nativeSrc": "2019:9:18", + "nativeSrc": "37407:9:18", "nodeType": "YulIdentifier", - "src": "2019:9:18" + "src": "37407:9:18" }, { "kind": "number", - "nativeSrc": "2030:2:18", + "nativeSrc": "37418:2:18", "nodeType": "YulLiteral", - "src": "2030:2:18", + "src": "37418:2:18", "type": "", "value": "32" } ], "functionName": { "name": "add", - "nativeSrc": "2015:3:18", + "nativeSrc": "37403:3:18", "nodeType": "YulIdentifier", - "src": "2015:3:18" + "src": "37403:3:18" }, - "nativeSrc": "2015:18:18", + "nativeSrc": "37403:18:18", "nodeType": "YulFunctionCall", - "src": "2015:18:18" + "src": "37403:18:18" }, "variableNames": [ { "name": "tail", - "nativeSrc": "2007:4:18", + "nativeSrc": "37395:4:18", "nodeType": "YulIdentifier", - "src": "2007:4:18" + "src": "37395:4:18" } ] }, @@ -84855,425 +86065,244 @@ "expression": { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "2054:9:18", - "nodeType": "YulIdentifier", - "src": "2054:9:18" - }, - { - "kind": "number", - "nativeSrc": "2065:1:18", - "nodeType": "YulLiteral", - "src": "2065:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "2050:3:18", - "nodeType": "YulIdentifier", - "src": "2050:3:18" - }, - "nativeSrc": "2050:17:18", - "nodeType": "YulFunctionCall", - "src": "2050:17:18" - }, - { - "arguments": [ - { - "name": "tail", - "nativeSrc": "2073:4:18", - "nodeType": "YulIdentifier", - "src": "2073:4:18" - }, - { - "name": "headStart", - "nativeSrc": "2079:9:18", - "nodeType": "YulIdentifier", - "src": "2079:9:18" - } - ], - "functionName": { - "name": "sub", - "nativeSrc": "2069:3:18", - "nodeType": "YulIdentifier", - "src": "2069:3:18" - }, - "nativeSrc": "2069:20:18", - "nodeType": "YulFunctionCall", - "src": "2069:20:18" - } - ], - "functionName": { - "name": "mstore", - "nativeSrc": "2043:6:18", - "nodeType": "YulIdentifier", - "src": "2043:6:18" - }, - "nativeSrc": "2043:47:18", - "nodeType": "YulFunctionCall", - "src": "2043:47:18" - }, - "nativeSrc": "2043:47:18", - "nodeType": "YulExpressionStatement", - "src": "2043:47:18" - }, - { - "nativeSrc": "2099:139:18", - "nodeType": "YulAssignment", - "src": "2099:139:18", - "value": { - "arguments": [ - { - "name": "tail", - "nativeSrc": "2233:4:18", - "nodeType": "YulIdentifier", - "src": "2233:4:18" - } - ], - "functionName": { - "name": "abi_encode_t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413_to_t_string_memory_ptr_fromStack", - "nativeSrc": "2107:124:18", - "nodeType": "YulIdentifier", - "src": "2107:124:18" - }, - "nativeSrc": "2107:131:18", - "nodeType": "YulFunctionCall", - "src": "2107:131:18" - }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "2099:4:18", - "nodeType": "YulIdentifier", - "src": "2099:4:18" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413__to_t_string_memory_ptr__fromStack_reversed", - "nativeSrc": "1826:419:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1977:9:18", - "nodeType": "YulTypedName", - "src": "1977:9:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "1992:4:18", - "nodeType": "YulTypedName", - "src": "1992:4:18", - "type": "" - } - ], - "src": "1826:419:18" - } - ] - }, - "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function 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_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 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_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413(memPtr) {\n\n mstore(add(memPtr, 0), \"Unlock time should be in the fut\")\n\n mstore(add(memPtr, 32), \"ure\")\n\n }\n\n function abi_encode_t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 35)\n store_literal_in_memory_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_f6fa9918d4578fba07be58c41841a4c6937c19725f7f4601884cd186799a8413_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n}\n", - "id": 18, - "language": "Yul", - "name": "#utility.yul" - } - ], - "linkReferences": {}, - "object": "60806040526040516105d83803806105d8833981810160405281019061002591906100f0565b804210610067576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161005e906101a0565b60405180910390fd5b8060008190555033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506101c0565b600080fd5b6000819050919050565b6100cd816100ba565b81146100d857600080fd5b50565b6000815190506100ea816100c4565b92915050565b600060208284031215610106576101056100b5565b5b6000610114848285016100db565b91505092915050565b600082825260208201905092915050565b7f556e6c6f636b2074696d652073686f756c6420626520696e207468652066757460008201527f7572650000000000000000000000000000000000000000000000000000000000602082015250565b600061018a60238361011d565b91506101958261012e565b604082019050919050565b600060208201905081810360008301526101b98161017d565b9050919050565b610409806101cf6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063251c1aa3146100465780633ccfd60b146100645780638da5cb5b1461006e575b600080fd5b61004e61008c565b60405161005b919061024a565b60405180910390f35b61006c610092565b005b61007661020b565b60405161008391906102a6565b60405180910390f35b60005481565b6000544210156100d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ce9061031e565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015e9061038a565b60405180910390fd5b7fbf2ed60bd5b5965d685680c01195c9514e4382e28e3a5a2d2d5244bf59411b9347426040516101989291906103aa565b60405180910390a1600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610208573d6000803e3d6000fd5b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000819050919050565b61024481610231565b82525050565b600060208201905061025f600083018461023b565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061029082610265565b9050919050565b6102a081610285565b82525050565b60006020820190506102bb6000830184610297565b92915050565b600082825260208201905092915050565b7f596f752063616e27742077697468647261772079657400000000000000000000600082015250565b60006103086016836102c1565b9150610313826102d2565b602082019050919050565b60006020820190508181036000830152610337816102fb565b9050919050565b7f596f75206172656e277420746865206f776e6572000000000000000000000000600082015250565b60006103746014836102c1565b915061037f8261033e565b602082019050919050565b600060208201905081810360008301526103a381610367565b9050919050565b60006040820190506103bf600083018561023b565b6103cc602083018461023b565b939250505056fea264697066735822122022a2b65355af697b0725f7bcddf1c94be908ee67893e84bd3442d61fdc82585064736f6c63430008180033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x40 MLOAD PUSH2 0x5D8 CODESIZE SUB DUP1 PUSH2 0x5D8 DUP4 CODECOPY DUP2 DUP2 ADD PUSH1 0x40 MSTORE DUP2 ADD SWAP1 PUSH2 0x25 SWAP2 SWAP1 PUSH2 0xF0 JUMP JUMPDEST DUP1 TIMESTAMP LT PUSH2 0x67 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5E SWAP1 PUSH2 0x1A0 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x0 DUP2 SWAP1 SSTORE POP CALLER PUSH1 0x1 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP POP PUSH2 0x1C0 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xCD DUP2 PUSH2 0xBA JUMP JUMPDEST DUP2 EQ PUSH2 0xD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0xEA DUP2 PUSH2 0xC4 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x106 JUMPI PUSH2 0x105 PUSH2 0xB5 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x114 DUP5 DUP3 DUP6 ADD PUSH2 0xDB 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 0x556E6C6F636B2074696D652073686F756C6420626520696E2074686520667574 PUSH1 0x0 DUP3 ADD MSTORE PUSH32 0x7572650000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18A PUSH1 0x23 DUP4 PUSH2 0x11D JUMP JUMPDEST SWAP2 POP PUSH2 0x195 DUP3 PUSH2 0x12E JUMP JUMPDEST PUSH1 0x40 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x1B9 DUP2 PUSH2 0x17D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x409 DUP1 PUSH2 0x1CF PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x251C1AA3 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x3CCFD60B EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x6E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x8C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x24A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6C PUSH2 0x92 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x76 PUSH2 0x20B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x83 SWAP2 SWAP1 PUSH2 0x2A6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD TIMESTAMP LT ISZERO PUSH2 0xD7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCE SWAP1 PUSH2 0x31E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x167 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15E SWAP1 PUSH2 0x38A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0xBF2ED60BD5B5965D685680C01195C9514E4382E28E3A5A2D2D5244BF59411B93 SELFBALANCE TIMESTAMP PUSH1 0x40 MLOAD PUSH2 0x198 SWAP3 SWAP2 SWAP1 PUSH2 0x3AA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC SELFBALANCE SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x208 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x244 DUP2 PUSH2 0x231 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x25F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x23B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x290 DUP3 PUSH2 0x265 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2A0 DUP2 PUSH2 0x285 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2BB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x297 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x596F752063616E27742077697468647261772079657400000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x308 PUSH1 0x16 DUP4 PUSH2 0x2C1 JUMP JUMPDEST SWAP2 POP PUSH2 0x313 DUP3 PUSH2 0x2D2 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x337 DUP2 PUSH2 0x2FB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x596F75206172656E277420746865206F776E6572000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x374 PUSH1 0x14 DUP4 PUSH2 0x2C1 JUMP JUMPDEST SWAP2 POP PUSH2 0x37F DUP3 PUSH2 0x33E JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3A3 DUP2 PUSH2 0x367 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3BF PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x23B JUMP JUMPDEST PUSH2 0x3CC PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x23B JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x22 LOG2 0xB6 MSTORE8 SSTORE 0xAF PUSH10 0x7B0725F7BCDDF1C94BE9 ADDMOD 0xEE PUSH8 0x893E84BD3442D61F 0xDC DUP3 PC POP PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", - "sourceMap": "141:866:17:-:0;;;271:238;;;;;;;;;;;;;;;;;;;;;:::i;:::-;358:11;340:15;:29;319:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;454:11;441:10;:24;;;;491:10;475:5;;:27;;;;;;;;;;;;;;;;;;271:238;141:866;;88:117:18;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:143::-;602:5;633:6;627:13;618:22;;649:33;676:5;649:33;:::i;:::-;545:143;;;;:::o;694:351::-;764:6;813:2;801:9;792:7;788:23;784:32;781:119;;;819:79;;:::i;:::-;781:119;939:1;964:64;1020:7;1011:6;1000:9;996:22;964:64;:::i;:::-;954:74;;910:128;694:351;;;;:::o;1051:169::-;1135:11;1169:6;1164:3;1157:19;1209:4;1204:3;1200:14;1185:29;;1051:169;;;;:::o;1226:222::-;1366:34;1362:1;1354:6;1350:14;1343:58;1435:5;1430:2;1422:6;1418:15;1411:30;1226:222;:::o;1454:366::-;1596:3;1617:67;1681:2;1676:3;1617:67;:::i;:::-;1610:74;;1693:93;1782:3;1693:93;:::i;:::-;1811:2;1806:3;1802:12;1795:19;;1454:366;;;:::o;1826:419::-;1992:4;2030:2;2019:9;2015:18;2007:26;;2079:9;2073:4;2069:20;2065:1;2054:9;2050:17;2043:47;2107:131;2233:4;2107:131;:::i;:::-;2099:139;;1826:419;;;:::o;141:866:17:-;;;;;;;" - }, - "deployedBytecode": { - "functionDebugData": { - "@owner_3900": { - "entryPoint": 523, - "id": 3900, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@unlockTime_3898": { - "entryPoint": 140, - "id": 3898, - "parameterSlots": 0, - "returnSlots": 0 - }, - "@withdraw_3972": { - "entryPoint": 146, - "id": 3972, - "parameterSlots": 0, - "returnSlots": 0 - }, - "abi_encode_t_address_payable_to_t_address_payable_fromStack": { - "entryPoint": 663, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8_to_t_string_memory_ptr_fromStack": { - "entryPoint": 763, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a_to_t_string_memory_ptr_fromStack": { - "entryPoint": 871, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_t_uint256_to_t_uint256_fromStack": { - "entryPoint": 571, - "id": null, - "parameterSlots": 2, - "returnSlots": 0 - }, - "abi_encode_tuple_t_address_payable__to_t_address_payable__fromStack_reversed": { - "entryPoint": 678, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 798, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a__to_t_string_memory_ptr__fromStack_reversed": { - "entryPoint": 906, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { - "entryPoint": 586, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed": { - "entryPoint": 938, - "id": null, - "parameterSlots": 3, - "returnSlots": 1 - }, - "array_storeLengthForEncoding_t_string_memory_ptr_fromStack": { - "entryPoint": 705, - "id": null, - "parameterSlots": 2, - "returnSlots": 1 - }, - "cleanup_t_address_payable": { - "entryPoint": 645, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_uint160": { - "entryPoint": 613, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "cleanup_t_uint256": { - "entryPoint": 561, - "id": null, - "parameterSlots": 1, - "returnSlots": 1 - }, - "store_literal_in_memory_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8": { - "entryPoint": 722, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - }, - "store_literal_in_memory_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a": { - "entryPoint": 830, - "id": null, - "parameterSlots": 1, - "returnSlots": 0 - } - }, - "generatedSources": [ - { - "ast": { - "nativeSrc": "0:3550:18", - "nodeType": "YulBlock", - "src": "0:3550:18", - "statements": [ - { - "body": { - "nativeSrc": "52:32:18", - "nodeType": "YulBlock", - "src": "52:32:18", - "statements": [ + "arguments": [ + { + "name": "headStart", + "nativeSrc": "37442:9:18", + "nodeType": "YulIdentifier", + "src": "37442:9:18" + }, + { + "kind": "number", + "nativeSrc": "37453:1:18", + "nodeType": "YulLiteral", + "src": "37453:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "37438:3:18", + "nodeType": "YulIdentifier", + "src": "37438:3:18" + }, + "nativeSrc": "37438:17:18", + "nodeType": "YulFunctionCall", + "src": "37438:17:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "37461:4:18", + "nodeType": "YulIdentifier", + "src": "37461:4:18" + }, + { + "name": "headStart", + "nativeSrc": "37467:9:18", + "nodeType": "YulIdentifier", + "src": "37467:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "37457:3:18", + "nodeType": "YulIdentifier", + "src": "37457:3:18" + }, + "nativeSrc": "37457:20:18", + "nodeType": "YulFunctionCall", + "src": "37457:20:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "37431:6:18", + "nodeType": "YulIdentifier", + "src": "37431:6:18" + }, + "nativeSrc": "37431:47:18", + "nodeType": "YulFunctionCall", + "src": "37431:47:18" + }, + "nativeSrc": "37431:47:18", + "nodeType": "YulExpressionStatement", + "src": "37431:47:18" + }, { - "nativeSrc": "62:16:18", + "nativeSrc": "37487:139:18", "nodeType": "YulAssignment", - "src": "62:16:18", + "src": "37487:139:18", "value": { - "name": "value", - "nativeSrc": "73:5:18", - "nodeType": "YulIdentifier", - "src": "73:5:18" + "arguments": [ + { + "name": "tail", + "nativeSrc": "37621:4:18", + "nodeType": "YulIdentifier", + "src": "37621:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack", + "nativeSrc": "37495:124:18", + "nodeType": "YulIdentifier", + "src": "37495:124:18" + }, + "nativeSrc": "37495:131:18", + "nodeType": "YulFunctionCall", + "src": "37495:131:18" }, "variableNames": [ { - "name": "cleaned", - "nativeSrc": "62:7:18", + "name": "tail", + "nativeSrc": "37487:4:18", "nodeType": "YulIdentifier", - "src": "62:7:18" + "src": "37487:4:18" } ] } ] }, - "name": "cleanup_t_uint256", - "nativeSrc": "7:77:18", + "name": "abi_encode_tuple_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "37214:419:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", - "nativeSrc": "34:5:18", + "name": "headStart", + "nativeSrc": "37365:9:18", "nodeType": "YulTypedName", - "src": "34:5:18", + "src": "37365:9:18", "type": "" } ], "returnVariables": [ { - "name": "cleaned", - "nativeSrc": "44:7:18", + "name": "tail", + "nativeSrc": "37380:4:18", "nodeType": "YulTypedName", - "src": "44:7:18", + "src": "37380:4:18", "type": "" } ], - "src": "7:77:18" + "src": "37214:419:18" }, { "body": { - "nativeSrc": "155:53:18", + "nativeSrc": "37702:52:18", "nodeType": "YulBlock", - "src": "155:53:18", + "src": "37702:52:18", "statements": [ { "expression": { "arguments": [ { "name": "pos", - "nativeSrc": "172:3:18", + "nativeSrc": "37719:3:18", "nodeType": "YulIdentifier", - "src": "172:3:18" + "src": "37719:3:18" }, { "arguments": [ { "name": "value", - "nativeSrc": "195:5:18", + "nativeSrc": "37741:5:18", "nodeType": "YulIdentifier", - "src": "195:5:18" + "src": "37741:5:18" } ], "functionName": { - "name": "cleanup_t_uint256", - "nativeSrc": "177:17:18", + "name": "cleanup_t_bytes4", + "nativeSrc": "37724:16:18", "nodeType": "YulIdentifier", - "src": "177:17:18" + "src": "37724:16:18" }, - "nativeSrc": "177:24:18", + "nativeSrc": "37724:23:18", "nodeType": "YulFunctionCall", - "src": "177:24:18" + "src": "37724:23:18" } ], "functionName": { "name": "mstore", - "nativeSrc": "165:6:18", + "nativeSrc": "37712:6:18", "nodeType": "YulIdentifier", - "src": "165:6:18" + "src": "37712:6:18" }, - "nativeSrc": "165:37:18", + "nativeSrc": "37712:36:18", "nodeType": "YulFunctionCall", - "src": "165:37:18" + "src": "37712:36:18" }, - "nativeSrc": "165:37:18", + "nativeSrc": "37712:36:18", "nodeType": "YulExpressionStatement", - "src": "165:37:18" + "src": "37712:36:18" } ] }, - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "90:118:18", + "name": "abi_encode_t_bytes4_to_t_bytes4_fromStack", + "nativeSrc": "37639:115:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "value", - "nativeSrc": "143:5:18", + "nativeSrc": "37690:5:18", "nodeType": "YulTypedName", - "src": "143:5:18", + "src": "37690:5:18", "type": "" }, { "name": "pos", - "nativeSrc": "150:3:18", + "nativeSrc": "37697:3:18", "nodeType": "YulTypedName", - "src": "150:3:18", + "src": "37697:3:18", "type": "" } ], - "src": "90:118:18" + "src": "37639:115:18" }, { "body": { - "nativeSrc": "312:124:18", + "nativeSrc": "37856:122:18", "nodeType": "YulBlock", - "src": "312:124:18", + "src": "37856:122:18", "statements": [ { - "nativeSrc": "322:26:18", + "nativeSrc": "37866:26:18", "nodeType": "YulAssignment", - "src": "322:26:18", + "src": "37866:26:18", "value": { "arguments": [ { "name": "headStart", - "nativeSrc": "334:9:18", + "nativeSrc": "37878:9:18", "nodeType": "YulIdentifier", - "src": "334:9:18" + "src": "37878:9:18" }, { "kind": "number", - "nativeSrc": "345:2:18", + "nativeSrc": "37889:2:18", "nodeType": "YulLiteral", - "src": "345:2:18", + "src": "37889:2:18", "type": "", "value": "32" } ], "functionName": { "name": "add", - "nativeSrc": "330:3:18", + "nativeSrc": "37874:3:18", "nodeType": "YulIdentifier", - "src": "330:3:18" + "src": "37874:3:18" }, - "nativeSrc": "330:18:18", + "nativeSrc": "37874:18:18", "nodeType": "YulFunctionCall", - "src": "330:18:18" + "src": "37874:18:18" }, "variableNames": [ { "name": "tail", - "nativeSrc": "322:4:18", + "nativeSrc": "37866:4:18", "nodeType": "YulIdentifier", - "src": "322:4:18" + "src": "37866:4:18" } ] }, @@ -85282,1030 +86311,1716 @@ "arguments": [ { "name": "value0", - "nativeSrc": "402:6:18", + "nativeSrc": "37944:6:18", "nodeType": "YulIdentifier", - "src": "402:6:18" + "src": "37944:6:18" }, { "arguments": [ { "name": "headStart", - "nativeSrc": "415:9:18", + "nativeSrc": "37957:9:18", "nodeType": "YulIdentifier", - "src": "415:9:18" + "src": "37957:9:18" }, { "kind": "number", - "nativeSrc": "426:1:18", + "nativeSrc": "37968:1:18", "nodeType": "YulLiteral", - "src": "426:1:18", + "src": "37968:1:18", "type": "", "value": "0" } ], "functionName": { "name": "add", - "nativeSrc": "411:3:18", + "nativeSrc": "37953:3:18", "nodeType": "YulIdentifier", - "src": "411:3:18" + "src": "37953:3:18" }, - "nativeSrc": "411:17:18", + "nativeSrc": "37953:17:18", "nodeType": "YulFunctionCall", - "src": "411:17:18" + "src": "37953:17:18" } ], "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "358:43:18", + "name": "abi_encode_t_bytes4_to_t_bytes4_fromStack", + "nativeSrc": "37902:41:18", "nodeType": "YulIdentifier", - "src": "358:43:18" + "src": "37902:41:18" }, - "nativeSrc": "358:71:18", + "nativeSrc": "37902:69:18", "nodeType": "YulFunctionCall", - "src": "358:71:18" + "src": "37902:69:18" }, - "nativeSrc": "358:71:18", + "nativeSrc": "37902:69:18", "nodeType": "YulExpressionStatement", - "src": "358:71:18" + "src": "37902:69:18" } ] }, - "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", - "nativeSrc": "214:222:18", + "name": "abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed", + "nativeSrc": "37760:218:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", - "nativeSrc": "284:9:18", + "nativeSrc": "37828:9:18", "nodeType": "YulTypedName", - "src": "284:9:18", + "src": "37828:9:18", "type": "" }, { "name": "value0", - "nativeSrc": "296:6:18", + "nativeSrc": "37840:6:18", "nodeType": "YulTypedName", - "src": "296:6:18", + "src": "37840:6:18", "type": "" } ], "returnVariables": [ { "name": "tail", - "nativeSrc": "307:4:18", + "nativeSrc": "37851:4:18", "nodeType": "YulTypedName", - "src": "307:4:18", + "src": "37851:4:18", "type": "" } ], - "src": "214:222:18" + "src": "37760:218:18" }, { "body": { - "nativeSrc": "487:81:18", + "nativeSrc": "38110:206:18", "nodeType": "YulBlock", - "src": "487:81:18", + "src": "38110:206:18", "statements": [ { - "nativeSrc": "497:65:18", + "nativeSrc": "38120:26:18", "nodeType": "YulAssignment", - "src": "497:65:18", + "src": "38120:26:18", "value": { "arguments": [ { - "name": "value", - "nativeSrc": "512:5:18", + "name": "headStart", + "nativeSrc": "38132:9:18", "nodeType": "YulIdentifier", - "src": "512:5:18" + "src": "38132:9:18" }, { "kind": "number", - "nativeSrc": "519:42:18", + "nativeSrc": "38143:2:18", "nodeType": "YulLiteral", - "src": "519:42:18", + "src": "38143:2:18", "type": "", - "value": "0xffffffffffffffffffffffffffffffffffffffff" + "value": "64" } ], "functionName": { - "name": "and", - "nativeSrc": "508:3:18", + "name": "add", + "nativeSrc": "38128:3:18", "nodeType": "YulIdentifier", - "src": "508:3:18" + "src": "38128:3:18" }, - "nativeSrc": "508:54:18", + "nativeSrc": "38128:18:18", "nodeType": "YulFunctionCall", - "src": "508:54:18" + "src": "38128:18:18" }, "variableNames": [ { - "name": "cleaned", - "nativeSrc": "497:7:18", + "name": "tail", + "nativeSrc": "38120:4:18", "nodeType": "YulIdentifier", - "src": "497:7:18" + "src": "38120:4:18" } ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "38200:6:18", + "nodeType": "YulIdentifier", + "src": "38200:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38213:9:18", + "nodeType": "YulIdentifier", + "src": "38213:9:18" + }, + { + "kind": "number", + "nativeSrc": "38224:1:18", + "nodeType": "YulLiteral", + "src": "38224:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38209:3:18", + "nodeType": "YulIdentifier", + "src": "38209:3:18" + }, + "nativeSrc": "38209:17:18", + "nodeType": "YulFunctionCall", + "src": "38209:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "38156:43:18", + "nodeType": "YulIdentifier", + "src": "38156:43:18" + }, + "nativeSrc": "38156:71:18", + "nodeType": "YulFunctionCall", + "src": "38156:71:18" + }, + "nativeSrc": "38156:71:18", + "nodeType": "YulExpressionStatement", + "src": "38156:71:18" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "38281:6:18", + "nodeType": "YulIdentifier", + "src": "38281:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38294:9:18", + "nodeType": "YulIdentifier", + "src": "38294:9:18" + }, + { + "kind": "number", + "nativeSrc": "38305:2:18", + "nodeType": "YulLiteral", + "src": "38305:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38290:3:18", + "nodeType": "YulIdentifier", + "src": "38290:3:18" + }, + "nativeSrc": "38290:18:18", + "nodeType": "YulFunctionCall", + "src": "38290:18:18" + } + ], + "functionName": { + "name": "abi_encode_t_bytes32_to_t_bytes32_fromStack", + "nativeSrc": "38237:43:18", + "nodeType": "YulIdentifier", + "src": "38237:43:18" + }, + "nativeSrc": "38237:72:18", + "nodeType": "YulFunctionCall", + "src": "38237:72:18" + }, + "nativeSrc": "38237:72:18", + "nodeType": "YulExpressionStatement", + "src": "38237:72:18" } ] }, - "name": "cleanup_t_uint160", - "nativeSrc": "442:126:18", + "name": "abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed", + "nativeSrc": "37984:332:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", - "nativeSrc": "469:5:18", + "name": "headStart", + "nativeSrc": "38074:9:18", + "nodeType": "YulTypedName", + "src": "38074:9:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "38086:6:18", + "nodeType": "YulTypedName", + "src": "38086:6:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "38094:6:18", "nodeType": "YulTypedName", - "src": "469:5:18", + "src": "38094:6:18", "type": "" } ], "returnVariables": [ { - "name": "cleaned", - "nativeSrc": "479:7:18", + "name": "tail", + "nativeSrc": "38105:4:18", "nodeType": "YulTypedName", - "src": "479:7:18", + "src": "38105:4:18", "type": "" } ], - "src": "442:126:18" + "src": "37984:332:18" }, { "body": { - "nativeSrc": "627:51:18", + "nativeSrc": "38504:371:18", "nodeType": "YulBlock", - "src": "627:51:18", + "src": "38504:371:18", "statements": [ { - "nativeSrc": "637:35:18", + "nativeSrc": "38514:27:18", "nodeType": "YulAssignment", - "src": "637:35:18", + "src": "38514:27:18", "value": { "arguments": [ { - "name": "value", - "nativeSrc": "666:5:18", + "name": "headStart", + "nativeSrc": "38526:9:18", "nodeType": "YulIdentifier", - "src": "666:5:18" + "src": "38526:9:18" + }, + { + "kind": "number", + "nativeSrc": "38537:3:18", + "nodeType": "YulLiteral", + "src": "38537:3:18", + "type": "", + "value": "128" } ], "functionName": { - "name": "cleanup_t_uint160", - "nativeSrc": "648:17:18", + "name": "add", + "nativeSrc": "38522:3:18", "nodeType": "YulIdentifier", - "src": "648:17:18" + "src": "38522:3:18" }, - "nativeSrc": "648:24:18", + "nativeSrc": "38522:19:18", "nodeType": "YulFunctionCall", - "src": "648:24:18" + "src": "38522:19:18" }, "variableNames": [ { - "name": "cleaned", - "nativeSrc": "637:7:18", + "name": "tail", + "nativeSrc": "38514:4:18", "nodeType": "YulIdentifier", - "src": "637:7:18" + "src": "38514:4:18" } ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "38595:6:18", + "nodeType": "YulIdentifier", + "src": "38595:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38608:9:18", + "nodeType": "YulIdentifier", + "src": "38608:9:18" + }, + { + "kind": "number", + "nativeSrc": "38619:1:18", + "nodeType": "YulLiteral", + "src": "38619:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38604:3:18", + "nodeType": "YulIdentifier", + "src": "38604:3:18" + }, + "nativeSrc": "38604:17:18", + "nodeType": "YulFunctionCall", + "src": "38604:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "38551:43:18", + "nodeType": "YulIdentifier", + "src": "38551:43:18" + }, + "nativeSrc": "38551:71:18", + "nodeType": "YulFunctionCall", + "src": "38551:71:18" + }, + "nativeSrc": "38551:71:18", + "nodeType": "YulExpressionStatement", + "src": "38551:71:18" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "38676:6:18", + "nodeType": "YulIdentifier", + "src": "38676:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38689:9:18", + "nodeType": "YulIdentifier", + "src": "38689:9:18" + }, + { + "kind": "number", + "nativeSrc": "38700:2:18", + "nodeType": "YulLiteral", + "src": "38700:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38685:3:18", + "nodeType": "YulIdentifier", + "src": "38685:3:18" + }, + "nativeSrc": "38685:18:18", + "nodeType": "YulFunctionCall", + "src": "38685:18:18" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "38632:43:18", + "nodeType": "YulIdentifier", + "src": "38632:43:18" + }, + "nativeSrc": "38632:72:18", + "nodeType": "YulFunctionCall", + "src": "38632:72:18" + }, + "nativeSrc": "38632:72:18", + "nodeType": "YulExpressionStatement", + "src": "38632:72:18" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "38758:6:18", + "nodeType": "YulIdentifier", + "src": "38758:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38771:9:18", + "nodeType": "YulIdentifier", + "src": "38771:9:18" + }, + { + "kind": "number", + "nativeSrc": "38782:2:18", + "nodeType": "YulLiteral", + "src": "38782:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38767:3:18", + "nodeType": "YulIdentifier", + "src": "38767:3:18" + }, + "nativeSrc": "38767:18:18", + "nodeType": "YulFunctionCall", + "src": "38767:18:18" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "38714:43:18", + "nodeType": "YulIdentifier", + "src": "38714:43:18" + }, + "nativeSrc": "38714:72:18", + "nodeType": "YulFunctionCall", + "src": "38714:72:18" + }, + "nativeSrc": "38714:72:18", + "nodeType": "YulExpressionStatement", + "src": "38714:72:18" + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nativeSrc": "38840:6:18", + "nodeType": "YulIdentifier", + "src": "38840:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "38853:9:18", + "nodeType": "YulIdentifier", + "src": "38853:9:18" + }, + { + "kind": "number", + "nativeSrc": "38864:2:18", + "nodeType": "YulLiteral", + "src": "38864:2:18", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "38849:3:18", + "nodeType": "YulIdentifier", + "src": "38849:3:18" + }, + "nativeSrc": "38849:18:18", + "nodeType": "YulFunctionCall", + "src": "38849:18:18" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "38796:43:18", + "nodeType": "YulIdentifier", + "src": "38796:43:18" + }, + "nativeSrc": "38796:72:18", + "nodeType": "YulFunctionCall", + "src": "38796:72:18" + }, + "nativeSrc": "38796:72:18", + "nodeType": "YulExpressionStatement", + "src": "38796:72:18" } ] }, - "name": "cleanup_t_address_payable", - "nativeSrc": "574:104:18", + "name": "abi_encode_tuple_t_address_t_uint256_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256__fromStack_reversed", + "nativeSrc": "38322:553:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", - "nativeSrc": "609:5:18", + "name": "headStart", + "nativeSrc": "38452:9:18", + "nodeType": "YulTypedName", + "src": "38452:9:18", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "38464:6:18", + "nodeType": "YulTypedName", + "src": "38464:6:18", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "38472:6:18", + "nodeType": "YulTypedName", + "src": "38472:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "38480:6:18", + "nodeType": "YulTypedName", + "src": "38480:6:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "38488:6:18", "nodeType": "YulTypedName", - "src": "609:5:18", + "src": "38488:6:18", "type": "" } ], "returnVariables": [ { - "name": "cleaned", - "nativeSrc": "619:7:18", + "name": "tail", + "nativeSrc": "38499:4:18", "nodeType": "YulTypedName", - "src": "619:7:18", + "src": "38499:4:18", "type": "" } ], - "src": "574:104:18" + "src": "38322:553:18" }, { "body": { - "nativeSrc": "765:61:18", + "nativeSrc": "39107:408:18", "nodeType": "YulBlock", - "src": "765:61:18", + "src": "39107:408:18", "statements": [ + { + "nativeSrc": "39117:26:18", + "nodeType": "YulAssignment", + "src": "39117:26:18", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "39129:9:18", + "nodeType": "YulIdentifier", + "src": "39129:9:18" + }, + { + "kind": "number", + "nativeSrc": "39140:2:18", + "nodeType": "YulLiteral", + "src": "39140:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "39125:3:18", + "nodeType": "YulIdentifier", + "src": "39125:3:18" + }, + "nativeSrc": "39125:18:18", + "nodeType": "YulFunctionCall", + "src": "39125:18:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "39117:4:18", + "nodeType": "YulIdentifier", + "src": "39117:4:18" + } + ] + }, { "expression": { "arguments": [ { - "name": "pos", - "nativeSrc": "782:3:18", + "arguments": [ + { + "name": "headStart", + "nativeSrc": "39164:9:18", + "nodeType": "YulIdentifier", + "src": "39164:9:18" + }, + { + "kind": "number", + "nativeSrc": "39175:1:18", + "nodeType": "YulLiteral", + "src": "39175:1:18", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "39160:3:18", + "nodeType": "YulIdentifier", + "src": "39160:3:18" + }, + "nativeSrc": "39160:17:18", + "nodeType": "YulFunctionCall", + "src": "39160:17:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "39183:4:18", + "nodeType": "YulIdentifier", + "src": "39183:4:18" + }, + { + "name": "headStart", + "nativeSrc": "39189:9:18", + "nodeType": "YulIdentifier", + "src": "39189:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "39179:3:18", + "nodeType": "YulIdentifier", + "src": "39179:3:18" + }, + "nativeSrc": "39179:20:18", + "nodeType": "YulFunctionCall", + "src": "39179:20:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "39153:6:18", + "nodeType": "YulIdentifier", + "src": "39153:6:18" + }, + "nativeSrc": "39153:47:18", + "nodeType": "YulFunctionCall", + "src": "39153:47:18" + }, + "nativeSrc": "39153:47:18", + "nodeType": "YulExpressionStatement", + "src": "39153:47:18" + }, + { + "nativeSrc": "39209:116:18", + "nodeType": "YulAssignment", + "src": "39209:116:18", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "39311:6:18", "nodeType": "YulIdentifier", - "src": "782:3:18" + "src": "39311:6:18" }, + { + "name": "tail", + "nativeSrc": "39320:4:18", + "nodeType": "YulIdentifier", + "src": "39320:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nativeSrc": "39217:93:18", + "nodeType": "YulIdentifier", + "src": "39217:93:18" + }, + "nativeSrc": "39217:108:18", + "nodeType": "YulFunctionCall", + "src": "39217:108:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "39209:4:18", + "nodeType": "YulIdentifier", + "src": "39209:4:18" + } + ] + }, + { + "expression": { + "arguments": [ { "arguments": [ { - "name": "value", - "nativeSrc": "813:5:18", + "name": "headStart", + "nativeSrc": "39346:9:18", + "nodeType": "YulIdentifier", + "src": "39346:9:18" + }, + { + "kind": "number", + "nativeSrc": "39357:2:18", + "nodeType": "YulLiteral", + "src": "39357:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "39342:3:18", + "nodeType": "YulIdentifier", + "src": "39342:3:18" + }, + "nativeSrc": "39342:18:18", + "nodeType": "YulFunctionCall", + "src": "39342:18:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "39366:4:18", + "nodeType": "YulIdentifier", + "src": "39366:4:18" + }, + { + "name": "headStart", + "nativeSrc": "39372:9:18", "nodeType": "YulIdentifier", - "src": "813:5:18" + "src": "39372:9:18" } ], "functionName": { - "name": "cleanup_t_address_payable", - "nativeSrc": "787:25:18", + "name": "sub", + "nativeSrc": "39362:3:18", "nodeType": "YulIdentifier", - "src": "787:25:18" + "src": "39362:3:18" }, - "nativeSrc": "787:32:18", + "nativeSrc": "39362:20:18", "nodeType": "YulFunctionCall", - "src": "787:32:18" + "src": "39362:20:18" } ], "functionName": { "name": "mstore", - "nativeSrc": "775:6:18", + "nativeSrc": "39335:6:18", "nodeType": "YulIdentifier", - "src": "775:6:18" + "src": "39335:6:18" }, - "nativeSrc": "775:45:18", + "nativeSrc": "39335:48:18", "nodeType": "YulFunctionCall", - "src": "775:45:18" + "src": "39335:48:18" }, - "nativeSrc": "775:45:18", + "nativeSrc": "39335:48:18", "nodeType": "YulExpressionStatement", - "src": "775:45:18" + "src": "39335:48:18" + }, + { + "nativeSrc": "39392:116:18", + "nodeType": "YulAssignment", + "src": "39392:116:18", + "value": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "39494:6:18", + "nodeType": "YulIdentifier", + "src": "39494:6:18" + }, + { + "name": "tail", + "nativeSrc": "39503:4:18", + "nodeType": "YulIdentifier", + "src": "39503:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nativeSrc": "39400:93:18", + "nodeType": "YulIdentifier", + "src": "39400:93:18" + }, + "nativeSrc": "39400:108:18", + "nodeType": "YulFunctionCall", + "src": "39400:108:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "39392:4:18", + "nodeType": "YulIdentifier", + "src": "39392:4:18" + } + ] } ] }, - "name": "abi_encode_t_address_payable_to_t_address_payable_fromStack", - "nativeSrc": "684:142:18", + "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", + "nativeSrc": "38881:634:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "value", - "nativeSrc": "753:5:18", + "name": "headStart", + "nativeSrc": "39071:9:18", "nodeType": "YulTypedName", - "src": "753:5:18", + "src": "39071:9:18", "type": "" }, { - "name": "pos", - "nativeSrc": "760:3:18", + "name": "value1", + "nativeSrc": "39083:6:18", + "nodeType": "YulTypedName", + "src": "39083:6:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "39091:6:18", + "nodeType": "YulTypedName", + "src": "39091:6:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "39102:4:18", "nodeType": "YulTypedName", - "src": "760:3:18", + "src": "39102:4:18", "type": "" } ], - "src": "684:142:18" + "src": "38881:634:18" }, { "body": { - "nativeSrc": "946:140:18", + "nativeSrc": "39579:40:18", "nodeType": "YulBlock", - "src": "946:140:18", + "src": "39579:40:18", "statements": [ { - "nativeSrc": "956:26:18", + "nativeSrc": "39590:22:18", "nodeType": "YulAssignment", - "src": "956:26:18", + "src": "39590:22:18", "value": { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "968:9:18", - "nodeType": "YulIdentifier", - "src": "968:9:18" - }, + "arguments": [ { - "kind": "number", - "nativeSrc": "979:2:18", - "nodeType": "YulLiteral", - "src": "979:2:18", - "type": "", - "value": "32" + "name": "value", + "nativeSrc": "39606:5:18", + "nodeType": "YulIdentifier", + "src": "39606:5:18" } ], "functionName": { - "name": "add", - "nativeSrc": "964:3:18", + "name": "mload", + "nativeSrc": "39600:5:18", "nodeType": "YulIdentifier", - "src": "964:3:18" + "src": "39600:5:18" }, - "nativeSrc": "964:18:18", + "nativeSrc": "39600:12:18", "nodeType": "YulFunctionCall", - "src": "964:18:18" + "src": "39600:12:18" }, "variableNames": [ { - "name": "tail", - "nativeSrc": "956:4:18", + "name": "length", + "nativeSrc": "39590:6:18", "nodeType": "YulIdentifier", - "src": "956:4:18" + "src": "39590:6:18" } ] - }, - { - "expression": { - "arguments": [ - { - "name": "value0", - "nativeSrc": "1052:6:18", - "nodeType": "YulIdentifier", - "src": "1052:6:18" - }, - { - "arguments": [ - { - "name": "headStart", - "nativeSrc": "1065:9:18", - "nodeType": "YulIdentifier", - "src": "1065:9:18" - }, - { - "kind": "number", - "nativeSrc": "1076:1:18", - "nodeType": "YulLiteral", - "src": "1076:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1061:3:18", - "nodeType": "YulIdentifier", - "src": "1061:3:18" - }, - "nativeSrc": "1061:17:18", - "nodeType": "YulFunctionCall", - "src": "1061:17:18" - } - ], - "functionName": { - "name": "abi_encode_t_address_payable_to_t_address_payable_fromStack", - "nativeSrc": "992:59:18", - "nodeType": "YulIdentifier", - "src": "992:59:18" - }, - "nativeSrc": "992:87:18", - "nodeType": "YulFunctionCall", - "src": "992:87:18" - }, - "nativeSrc": "992:87:18", - "nodeType": "YulExpressionStatement", - "src": "992:87:18" } ] }, - "name": "abi_encode_tuple_t_address_payable__to_t_address_payable__fromStack_reversed", - "nativeSrc": "832:254:18", + "name": "array_length_t_bytes_memory_ptr", + "nativeSrc": "39521:98:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", - "nativeSrc": "918:9:18", - "nodeType": "YulTypedName", - "src": "918:9:18", - "type": "" - }, - { - "name": "value0", - "nativeSrc": "930:6:18", + "name": "value", + "nativeSrc": "39562:5:18", "nodeType": "YulTypedName", - "src": "930:6:18", + "src": "39562:5:18", "type": "" } ], "returnVariables": [ { - "name": "tail", - "nativeSrc": "941:4:18", + "name": "length", + "nativeSrc": "39572:6:18", "nodeType": "YulTypedName", - "src": "941:4:18", + "src": "39572:6:18", "type": "" } ], - "src": "832:254:18" + "src": "39521:98:18" }, { "body": { - "nativeSrc": "1188:73:18", + "nativeSrc": "39720:73:18", "nodeType": "YulBlock", - "src": "1188:73:18", + "src": "39720:73:18", "statements": [ { "expression": { "arguments": [ { "name": "pos", - "nativeSrc": "1205:3:18", + "nativeSrc": "39737:3:18", "nodeType": "YulIdentifier", - "src": "1205:3:18" + "src": "39737:3:18" }, { "name": "length", - "nativeSrc": "1210:6:18", + "nativeSrc": "39742:6:18", "nodeType": "YulIdentifier", - "src": "1210:6:18" + "src": "39742:6:18" } ], "functionName": { "name": "mstore", - "nativeSrc": "1198:6:18", + "nativeSrc": "39730:6:18", "nodeType": "YulIdentifier", - "src": "1198:6:18" + "src": "39730:6:18" }, - "nativeSrc": "1198:19:18", + "nativeSrc": "39730:19:18", "nodeType": "YulFunctionCall", - "src": "1198:19:18" + "src": "39730:19:18" }, - "nativeSrc": "1198:19:18", + "nativeSrc": "39730:19:18", "nodeType": "YulExpressionStatement", - "src": "1198:19:18" + "src": "39730:19:18" }, { - "nativeSrc": "1226:29:18", + "nativeSrc": "39758:29:18", "nodeType": "YulAssignment", - "src": "1226:29:18", + "src": "39758:29:18", "value": { "arguments": [ { "name": "pos", - "nativeSrc": "1245:3:18", + "nativeSrc": "39777:3:18", "nodeType": "YulIdentifier", - "src": "1245:3:18" + "src": "39777:3:18" }, { "kind": "number", - "nativeSrc": "1250:4:18", + "nativeSrc": "39782:4:18", "nodeType": "YulLiteral", - "src": "1250:4:18", + "src": "39782:4:18", "type": "", "value": "0x20" } ], "functionName": { "name": "add", - "nativeSrc": "1241:3:18", + "nativeSrc": "39773:3:18", "nodeType": "YulIdentifier", - "src": "1241:3:18" + "src": "39773:3:18" }, - "nativeSrc": "1241:14:18", + "nativeSrc": "39773:14:18", "nodeType": "YulFunctionCall", - "src": "1241:14:18" + "src": "39773:14:18" }, "variableNames": [ { "name": "updated_pos", - "nativeSrc": "1226:11:18", + "nativeSrc": "39758:11:18", "nodeType": "YulIdentifier", - "src": "1226:11:18" + "src": "39758:11:18" } ] } ] }, - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nativeSrc": "1092:169:18", + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nativeSrc": "39625:168:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "pos", - "nativeSrc": "1160:3:18", + "nativeSrc": "39692:3:18", "nodeType": "YulTypedName", - "src": "1160:3:18", + "src": "39692:3:18", "type": "" }, { "name": "length", - "nativeSrc": "1165:6:18", + "nativeSrc": "39697:6:18", "nodeType": "YulTypedName", - "src": "1165:6:18", + "src": "39697:6:18", "type": "" } ], "returnVariables": [ { "name": "updated_pos", - "nativeSrc": "1176:11:18", + "nativeSrc": "39708:11:18", "nodeType": "YulTypedName", - "src": "1176:11:18", + "src": "39708:11:18", "type": "" } ], - "src": "1092:169:18" + "src": "39625:168:18" }, { "body": { - "nativeSrc": "1373:66:18", + "nativeSrc": "39889:283:18", "nodeType": "YulBlock", - "src": "1373:66:18", + "src": "39889:283:18", "statements": [ { - "expression": { + "nativeSrc": "39899:52:18", + "nodeType": "YulVariableDeclaration", + "src": "39899:52:18", + "value": { "arguments": [ { - "arguments": [ - { - "name": "memPtr", - "nativeSrc": "1395:6:18", - "nodeType": "YulIdentifier", - "src": "1395:6:18" - }, - { - "kind": "number", - "nativeSrc": "1403:1:18", - "nodeType": "YulLiteral", - "src": "1403:1:18", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "add", - "nativeSrc": "1391:3:18", - "nodeType": "YulIdentifier", - "src": "1391:3:18" - }, - "nativeSrc": "1391:14:18", - "nodeType": "YulFunctionCall", - "src": "1391:14:18" - }, - { - "hexValue": "596f752063616e277420776974686472617720796574", - "kind": "string", - "nativeSrc": "1407:24:18", - "nodeType": "YulLiteral", - "src": "1407:24:18", - "type": "", - "value": "You can't withdraw yet" + "name": "value", + "nativeSrc": "39945:5:18", + "nodeType": "YulIdentifier", + "src": "39945:5:18" } ], "functionName": { - "name": "mstore", - "nativeSrc": "1384:6:18", + "name": "array_length_t_bytes_memory_ptr", + "nativeSrc": "39913:31:18", "nodeType": "YulIdentifier", - "src": "1384:6:18" + "src": "39913:31:18" }, - "nativeSrc": "1384:48:18", + "nativeSrc": "39913:38:18", "nodeType": "YulFunctionCall", - "src": "1384:48:18" + "src": "39913:38:18" }, - "nativeSrc": "1384:48:18", - "nodeType": "YulExpressionStatement", - "src": "1384:48:18" - } - ] - }, - "name": "store_literal_in_memory_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8", - "nativeSrc": "1267:172:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "memPtr", - "nativeSrc": "1365:6:18", - "nodeType": "YulTypedName", - "src": "1365:6:18", - "type": "" - } - ], - "src": "1267:172:18" - }, - { - "body": { - "nativeSrc": "1591:220:18", - "nodeType": "YulBlock", - "src": "1591:220:18", - "statements": [ + "variables": [ + { + "name": "length", + "nativeSrc": "39903:6:18", + "nodeType": "YulTypedName", + "src": "39903:6:18", + "type": "" + } + ] + }, { - "nativeSrc": "1601:74:18", + "nativeSrc": "39960:77:18", "nodeType": "YulAssignment", - "src": "1601:74:18", + "src": "39960:77:18", "value": { "arguments": [ { "name": "pos", - "nativeSrc": "1667:3:18", + "nativeSrc": "40025:3:18", "nodeType": "YulIdentifier", - "src": "1667:3:18" + "src": "40025:3:18" }, { - "kind": "number", - "nativeSrc": "1672:2:18", - "nodeType": "YulLiteral", - "src": "1672:2:18", - "type": "", - "value": "22" + "name": "length", + "nativeSrc": "40030:6:18", + "nodeType": "YulIdentifier", + "src": "40030:6:18" } ], "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nativeSrc": "1608:58:18", + "name": "array_storeLengthForEncoding_t_bytes_memory_ptr_fromStack", + "nativeSrc": "39967:57:18", "nodeType": "YulIdentifier", - "src": "1608:58:18" + "src": "39967:57:18" }, - "nativeSrc": "1608:67:18", + "nativeSrc": "39967:70:18", "nodeType": "YulFunctionCall", - "src": "1608:67:18" + "src": "39967:70:18" }, "variableNames": [ { "name": "pos", - "nativeSrc": "1601:3:18", + "nativeSrc": "39960:3:18", "nodeType": "YulIdentifier", - "src": "1601:3:18" + "src": "39960:3:18" } ] }, { "expression": { "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "40085:5:18", + "nodeType": "YulIdentifier", + "src": "40085:5:18" + }, + { + "kind": "number", + "nativeSrc": "40092:4:18", + "nodeType": "YulLiteral", + "src": "40092:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "40081:3:18", + "nodeType": "YulIdentifier", + "src": "40081:3:18" + }, + "nativeSrc": "40081:16:18", + "nodeType": "YulFunctionCall", + "src": "40081:16:18" + }, { "name": "pos", - "nativeSrc": "1773:3:18", + "nativeSrc": "40099:3:18", + "nodeType": "YulIdentifier", + "src": "40099:3:18" + }, + { + "name": "length", + "nativeSrc": "40104:6:18", "nodeType": "YulIdentifier", - "src": "1773:3:18" + "src": "40104:6:18" } ], "functionName": { - "name": "store_literal_in_memory_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8", - "nativeSrc": "1684:88:18", + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "40046:34:18", "nodeType": "YulIdentifier", - "src": "1684:88:18" + "src": "40046:34:18" }, - "nativeSrc": "1684:93:18", + "nativeSrc": "40046:65:18", "nodeType": "YulFunctionCall", - "src": "1684:93:18" + "src": "40046:65:18" }, - "nativeSrc": "1684:93:18", + "nativeSrc": "40046:65:18", "nodeType": "YulExpressionStatement", - "src": "1684:93:18" + "src": "40046:65:18" }, { - "nativeSrc": "1786:19:18", + "nativeSrc": "40120:46:18", "nodeType": "YulAssignment", - "src": "1786:19:18", + "src": "40120:46:18", "value": { "arguments": [ { "name": "pos", - "nativeSrc": "1797:3:18", + "nativeSrc": "40131:3:18", "nodeType": "YulIdentifier", - "src": "1797:3:18" + "src": "40131:3:18" }, { - "kind": "number", - "nativeSrc": "1802:2:18", - "nodeType": "YulLiteral", - "src": "1802:2:18", - "type": "", - "value": "32" + "arguments": [ + { + "name": "length", + "nativeSrc": "40158:6:18", + "nodeType": "YulIdentifier", + "src": "40158:6:18" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nativeSrc": "40136:21:18", + "nodeType": "YulIdentifier", + "src": "40136:21:18" + }, + "nativeSrc": "40136:29:18", + "nodeType": "YulFunctionCall", + "src": "40136:29:18" } ], "functionName": { "name": "add", - "nativeSrc": "1793:3:18", + "nativeSrc": "40127:3:18", "nodeType": "YulIdentifier", - "src": "1793:3:18" + "src": "40127:3:18" }, - "nativeSrc": "1793:12:18", + "nativeSrc": "40127:39:18", "nodeType": "YulFunctionCall", - "src": "1793:12:18" + "src": "40127:39:18" }, "variableNames": [ { "name": "end", - "nativeSrc": "1786:3:18", + "nativeSrc": "40120:3:18", "nodeType": "YulIdentifier", - "src": "1786:3:18" + "src": "40120:3:18" } ] } ] }, - "name": "abi_encode_t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8_to_t_string_memory_ptr_fromStack", - "nativeSrc": "1445:366:18", + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "39799:373:18", "nodeType": "YulFunctionDefinition", "parameters": [ + { + "name": "value", + "nativeSrc": "39870:5:18", + "nodeType": "YulTypedName", + "src": "39870:5:18", + "type": "" + }, { "name": "pos", - "nativeSrc": "1579:3:18", + "nativeSrc": "39877:3:18", "nodeType": "YulTypedName", - "src": "1579:3:18", + "src": "39877:3:18", "type": "" } ], "returnVariables": [ { "name": "end", - "nativeSrc": "1587:3:18", + "nativeSrc": "39885:3:18", "nodeType": "YulTypedName", - "src": "1587:3:18", + "src": "39885:3:18", "type": "" } ], - "src": "1445:366:18" + "src": "39799:373:18" }, { "body": { - "nativeSrc": "1988:248:18", + "nativeSrc": "40406:523:18", "nodeType": "YulBlock", - "src": "1988:248:18", + "src": "40406:523:18", "statements": [ { - "nativeSrc": "1998:26:18", + "nativeSrc": "40416:27:18", "nodeType": "YulAssignment", - "src": "1998:26:18", + "src": "40416:27:18", "value": { "arguments": [ { "name": "headStart", - "nativeSrc": "2010:9:18", + "nativeSrc": "40428:9:18", "nodeType": "YulIdentifier", - "src": "2010:9:18" + "src": "40428:9:18" }, { "kind": "number", - "nativeSrc": "2021:2:18", + "nativeSrc": "40439:3:18", "nodeType": "YulLiteral", - "src": "2021:2:18", + "src": "40439:3:18", "type": "", - "value": "32" + "value": "160" } ], "functionName": { "name": "add", - "nativeSrc": "2006:3:18", + "nativeSrc": "40424:3:18", "nodeType": "YulIdentifier", - "src": "2006:3:18" + "src": "40424:3:18" }, - "nativeSrc": "2006:18:18", + "nativeSrc": "40424:19:18", "nodeType": "YulFunctionCall", - "src": "2006:18:18" + "src": "40424:19:18" }, "variableNames": [ { "name": "tail", - "nativeSrc": "1998:4:18", + "nativeSrc": "40416:4:18", "nodeType": "YulIdentifier", - "src": "1998:4:18" + "src": "40416:4:18" } ] }, { "expression": { "arguments": [ + { + "name": "value0", + "nativeSrc": "40497:6:18", + "nodeType": "YulIdentifier", + "src": "40497:6:18" + }, { "arguments": [ { "name": "headStart", - "nativeSrc": "2045:9:18", + "nativeSrc": "40510:9:18", "nodeType": "YulIdentifier", - "src": "2045:9:18" + "src": "40510:9:18" }, { "kind": "number", - "nativeSrc": "2056:1:18", + "nativeSrc": "40521:1:18", "nodeType": "YulLiteral", - "src": "2056:1:18", + "src": "40521:1:18", "type": "", "value": "0" } ], "functionName": { "name": "add", - "nativeSrc": "2041:3:18", + "nativeSrc": "40506:3:18", "nodeType": "YulIdentifier", - "src": "2041:3:18" + "src": "40506:3:18" }, - "nativeSrc": "2041:17:18", + "nativeSrc": "40506:17:18", "nodeType": "YulFunctionCall", - "src": "2041:17:18" + "src": "40506:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "40453:43:18", + "nodeType": "YulIdentifier", + "src": "40453:43:18" + }, + "nativeSrc": "40453:71:18", + "nodeType": "YulFunctionCall", + "src": "40453:71:18" + }, + "nativeSrc": "40453:71:18", + "nodeType": "YulExpressionStatement", + "src": "40453:71:18" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "40578:6:18", + "nodeType": "YulIdentifier", + "src": "40578:6:18" }, { "arguments": [ { - "name": "tail", - "nativeSrc": "2064:4:18", + "name": "headStart", + "nativeSrc": "40591:9:18", "nodeType": "YulIdentifier", - "src": "2064:4:18" + "src": "40591:9:18" }, + { + "kind": "number", + "nativeSrc": "40602:2:18", + "nodeType": "YulLiteral", + "src": "40602:2:18", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "40587:3:18", + "nodeType": "YulIdentifier", + "src": "40587:3:18" + }, + "nativeSrc": "40587:18:18", + "nodeType": "YulFunctionCall", + "src": "40587:18:18" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "40534:43:18", + "nodeType": "YulIdentifier", + "src": "40534:43:18" + }, + "nativeSrc": "40534:72:18", + "nodeType": "YulFunctionCall", + "src": "40534:72:18" + }, + "nativeSrc": "40534:72:18", + "nodeType": "YulExpressionStatement", + "src": "40534:72:18" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "40660:6:18", + "nodeType": "YulIdentifier", + "src": "40660:6:18" + }, + { + "arguments": [ { "name": "headStart", - "nativeSrc": "2070:9:18", + "nativeSrc": "40673:9:18", "nodeType": "YulIdentifier", - "src": "2070:9:18" + "src": "40673:9:18" + }, + { + "kind": "number", + "nativeSrc": "40684:2:18", + "nodeType": "YulLiteral", + "src": "40684:2:18", + "type": "", + "value": "64" } ], "functionName": { - "name": "sub", - "nativeSrc": "2060:3:18", + "name": "add", + "nativeSrc": "40669:3:18", "nodeType": "YulIdentifier", - "src": "2060:3:18" + "src": "40669:3:18" }, - "nativeSrc": "2060:20:18", + "nativeSrc": "40669:18:18", "nodeType": "YulFunctionCall", - "src": "2060:20:18" + "src": "40669:18:18" } ], "functionName": { - "name": "mstore", - "nativeSrc": "2034:6:18", + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "40616:43:18", "nodeType": "YulIdentifier", - "src": "2034:6:18" + "src": "40616:43:18" }, - "nativeSrc": "2034:47:18", + "nativeSrc": "40616:72:18", "nodeType": "YulFunctionCall", - "src": "2034:47:18" + "src": "40616:72:18" }, - "nativeSrc": "2034:47:18", + "nativeSrc": "40616:72:18", "nodeType": "YulExpressionStatement", - "src": "2034:47:18" + "src": "40616:72:18" }, { - "nativeSrc": "2090:139:18", - "nodeType": "YulAssignment", - "src": "2090:139:18", - "value": { + "expression": { "arguments": [ { - "name": "tail", - "nativeSrc": "2224:4:18", + "name": "value3", + "nativeSrc": "40742:6:18", "nodeType": "YulIdentifier", - "src": "2224:4:18" + "src": "40742:6:18" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "40755:9:18", + "nodeType": "YulIdentifier", + "src": "40755:9:18" + }, + { + "kind": "number", + "nativeSrc": "40766:2:18", + "nodeType": "YulLiteral", + "src": "40766:2:18", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "40751:3:18", + "nodeType": "YulIdentifier", + "src": "40751:3:18" + }, + "nativeSrc": "40751:18:18", + "nodeType": "YulFunctionCall", + "src": "40751:18:18" } ], "functionName": { - "name": "abi_encode_t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8_to_t_string_memory_ptr_fromStack", - "nativeSrc": "2098:124:18", + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nativeSrc": "40698:43:18", "nodeType": "YulIdentifier", - "src": "2098:124:18" + "src": "40698:43:18" }, - "nativeSrc": "2098:131:18", + "nativeSrc": "40698:72:18", "nodeType": "YulFunctionCall", - "src": "2098:131:18" + "src": "40698:72:18" }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "2090:4:18", - "nodeType": "YulIdentifier", - "src": "2090:4:18" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8__to_t_string_memory_ptr__fromStack_reversed", - "nativeSrc": "1817:419:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "1968:9:18", - "nodeType": "YulTypedName", - "src": "1968:9:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "1983:4:18", - "nodeType": "YulTypedName", - "src": "1983:4:18", - "type": "" - } - ], - "src": "1817:419:18" - }, - { - "body": { - "nativeSrc": "2348:64:18", - "nodeType": "YulBlock", - "src": "2348:64:18", - "statements": [ + "nativeSrc": "40698:72:18", + "nodeType": "YulExpressionStatement", + "src": "40698:72:18" + }, { "expression": { "arguments": [ { "arguments": [ { - "name": "memPtr", - "nativeSrc": "2370:6:18", + "name": "headStart", + "nativeSrc": "40791:9:18", "nodeType": "YulIdentifier", - "src": "2370:6:18" + "src": "40791:9:18" }, { "kind": "number", - "nativeSrc": "2378:1:18", + "nativeSrc": "40802:3:18", "nodeType": "YulLiteral", - "src": "2378:1:18", + "src": "40802:3:18", "type": "", - "value": "0" + "value": "128" } ], "functionName": { "name": "add", - "nativeSrc": "2366:3:18", + "nativeSrc": "40787:3:18", "nodeType": "YulIdentifier", - "src": "2366:3:18" + "src": "40787:3:18" }, - "nativeSrc": "2366:14:18", + "nativeSrc": "40787:19:18", "nodeType": "YulFunctionCall", - "src": "2366:14:18" + "src": "40787:19:18" }, { - "hexValue": "596f75206172656e277420746865206f776e6572", - "kind": "string", - "nativeSrc": "2382:22:18", - "nodeType": "YulLiteral", - "src": "2382:22:18", - "type": "", - "value": "You aren't the owner" + "arguments": [ + { + "name": "tail", + "nativeSrc": "40812:4:18", + "nodeType": "YulIdentifier", + "src": "40812:4:18" + }, + { + "name": "headStart", + "nativeSrc": "40818:9:18", + "nodeType": "YulIdentifier", + "src": "40818:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "40808:3:18", + "nodeType": "YulIdentifier", + "src": "40808:3:18" + }, + "nativeSrc": "40808:20:18", + "nodeType": "YulFunctionCall", + "src": "40808:20:18" } ], "functionName": { "name": "mstore", - "nativeSrc": "2359:6:18", + "nativeSrc": "40780:6:18", "nodeType": "YulIdentifier", - "src": "2359:6:18" + "src": "40780:6:18" }, - "nativeSrc": "2359:46:18", + "nativeSrc": "40780:49:18", "nodeType": "YulFunctionCall", - "src": "2359:46:18" + "src": "40780:49:18" }, - "nativeSrc": "2359:46:18", + "nativeSrc": "40780:49:18", "nodeType": "YulExpressionStatement", - "src": "2359:46:18" + "src": "40780:49:18" + }, + { + "nativeSrc": "40838:84:18", + "nodeType": "YulAssignment", + "src": "40838:84:18", + "value": { + "arguments": [ + { + "name": "value4", + "nativeSrc": "40908:6:18", + "nodeType": "YulIdentifier", + "src": "40908:6:18" + }, + { + "name": "tail", + "nativeSrc": "40917:4:18", + "nodeType": "YulIdentifier", + "src": "40917:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "40846:61:18", + "nodeType": "YulIdentifier", + "src": "40846:61:18" + }, + "nativeSrc": "40846:76:18", + "nodeType": "YulFunctionCall", + "src": "40846:76:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "40838:4:18", + "nodeType": "YulIdentifier", + "src": "40838:4:18" + } + ] } ] }, - "name": "store_literal_in_memory_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a", - "nativeSrc": "2242:170:18", + "name": "abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed", + "nativeSrc": "40178:751:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "memPtr", - "nativeSrc": "2340:6:18", + "name": "headStart", + "nativeSrc": "40346:9:18", + "nodeType": "YulTypedName", + "src": "40346:9:18", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "40358:6:18", + "nodeType": "YulTypedName", + "src": "40358:6:18", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "40366:6:18", + "nodeType": "YulTypedName", + "src": "40366:6:18", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "40374:6:18", + "nodeType": "YulTypedName", + "src": "40374:6:18", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "40382:6:18", + "nodeType": "YulTypedName", + "src": "40382:6:18", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "40390:6:18", "nodeType": "YulTypedName", - "src": "2340:6:18", + "src": "40390:6:18", "type": "" } ], - "src": "2242:170:18" + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "40401:4:18", + "nodeType": "YulTypedName", + "src": "40401:4:18", + "type": "" + } + ], + "src": "40178:751:18" }, { "body": { - "nativeSrc": "2564:220:18", + "nativeSrc": "40997:79:18", "nodeType": "YulBlock", - "src": "2564:220:18", + "src": "40997:79:18", "statements": [ { - "nativeSrc": "2574:74:18", + "nativeSrc": "41007:22:18", "nodeType": "YulAssignment", - "src": "2574:74:18", + "src": "41007:22:18", "value": { "arguments": [ { - "name": "pos", - "nativeSrc": "2640:3:18", + "name": "offset", + "nativeSrc": "41022:6:18", "nodeType": "YulIdentifier", - "src": "2640:3:18" - }, - { - "kind": "number", - "nativeSrc": "2645:2:18", - "nodeType": "YulLiteral", - "src": "2645:2:18", - "type": "", - "value": "20" + "src": "41022:6:18" } ], "functionName": { - "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", - "nativeSrc": "2581:58:18", + "name": "mload", + "nativeSrc": "41016:5:18", "nodeType": "YulIdentifier", - "src": "2581:58:18" + "src": "41016:5:18" }, - "nativeSrc": "2581:67:18", + "nativeSrc": "41016:13:18", "nodeType": "YulFunctionCall", - "src": "2581:67:18" + "src": "41016:13:18" }, "variableNames": [ { - "name": "pos", - "nativeSrc": "2574:3:18", + "name": "value", + "nativeSrc": "41007:5:18", "nodeType": "YulIdentifier", - "src": "2574:3:18" + "src": "41007:5:18" } ] }, @@ -86313,454 +88028,792 @@ "expression": { "arguments": [ { - "name": "pos", - "nativeSrc": "2746:3:18", + "name": "value", + "nativeSrc": "41064:5:18", "nodeType": "YulIdentifier", - "src": "2746:3:18" + "src": "41064:5:18" } ], "functionName": { - "name": "store_literal_in_memory_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a", - "nativeSrc": "2657:88:18", + "name": "validator_revert_t_bytes4", + "nativeSrc": "41038:25:18", "nodeType": "YulIdentifier", - "src": "2657:88:18" + "src": "41038:25:18" }, - "nativeSrc": "2657:93:18", + "nativeSrc": "41038:32:18", "nodeType": "YulFunctionCall", - "src": "2657:93:18" + "src": "41038:32:18" }, - "nativeSrc": "2657:93:18", + "nativeSrc": "41038:32:18", "nodeType": "YulExpressionStatement", - "src": "2657:93:18" - }, + "src": "41038:32:18" + } + ] + }, + "name": "abi_decode_t_bytes4_fromMemory", + "nativeSrc": "40935:141:18", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "40975:6:18", + "nodeType": "YulTypedName", + "src": "40975:6:18", + "type": "" + }, + { + "name": "end", + "nativeSrc": "40983:3:18", + "nodeType": "YulTypedName", + "src": "40983:3:18", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "40991:5:18", + "nodeType": "YulTypedName", + "src": "40991:5:18", + "type": "" + } + ], + "src": "40935:141:18" + }, + { + "body": { + "nativeSrc": "41158:273:18", + "nodeType": "YulBlock", + "src": "41158:273:18", + "statements": [ { - "nativeSrc": "2759:19:18", - "nodeType": "YulAssignment", - "src": "2759:19:18", - "value": { + "body": { + "nativeSrc": "41204:83:18", + "nodeType": "YulBlock", + "src": "41204:83:18", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nativeSrc": "41206:77:18", + "nodeType": "YulIdentifier", + "src": "41206:77:18" + }, + "nativeSrc": "41206:79:18", + "nodeType": "YulFunctionCall", + "src": "41206:79:18" + }, + "nativeSrc": "41206:79:18", + "nodeType": "YulExpressionStatement", + "src": "41206:79:18" + } + ] + }, + "condition": { "arguments": [ { - "name": "pos", - "nativeSrc": "2770:3:18", - "nodeType": "YulIdentifier", - "src": "2770:3:18" + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "41179:7:18", + "nodeType": "YulIdentifier", + "src": "41179:7:18" + }, + { + "name": "headStart", + "nativeSrc": "41188:9:18", + "nodeType": "YulIdentifier", + "src": "41188:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "41175:3:18", + "nodeType": "YulIdentifier", + "src": "41175:3:18" + }, + "nativeSrc": "41175:23:18", + "nodeType": "YulFunctionCall", + "src": "41175:23:18" }, { "kind": "number", - "nativeSrc": "2775:2:18", + "nativeSrc": "41200:2:18", "nodeType": "YulLiteral", - "src": "2775:2:18", + "src": "41200:2:18", "type": "", "value": "32" } ], "functionName": { - "name": "add", - "nativeSrc": "2766:3:18", + "name": "slt", + "nativeSrc": "41171:3:18", "nodeType": "YulIdentifier", - "src": "2766:3:18" + "src": "41171:3:18" }, - "nativeSrc": "2766:12:18", + "nativeSrc": "41171:32:18", "nodeType": "YulFunctionCall", - "src": "2766:12:18" + "src": "41171:32:18" }, - "variableNames": [ + "nativeSrc": "41168:119:18", + "nodeType": "YulIf", + "src": "41168:119:18" + }, + { + "nativeSrc": "41297:127:18", + "nodeType": "YulBlock", + "src": "41297:127:18", + "statements": [ { - "name": "end", - "nativeSrc": "2759:3:18", - "nodeType": "YulIdentifier", - "src": "2759:3:18" + "nativeSrc": "41312:15:18", + "nodeType": "YulVariableDeclaration", + "src": "41312:15:18", + "value": { + "kind": "number", + "nativeSrc": "41326:1:18", + "nodeType": "YulLiteral", + "src": "41326:1:18", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "41316:6:18", + "nodeType": "YulTypedName", + "src": "41316:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "41341:73:18", + "nodeType": "YulAssignment", + "src": "41341:73:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "41386:9:18", + "nodeType": "YulIdentifier", + "src": "41386:9:18" + }, + { + "name": "offset", + "nativeSrc": "41397:6:18", + "nodeType": "YulIdentifier", + "src": "41397:6:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "41382:3:18", + "nodeType": "YulIdentifier", + "src": "41382:3:18" + }, + "nativeSrc": "41382:22:18", + "nodeType": "YulFunctionCall", + "src": "41382:22:18" + }, + { + "name": "dataEnd", + "nativeSrc": "41406:7:18", + "nodeType": "YulIdentifier", + "src": "41406:7:18" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4_fromMemory", + "nativeSrc": "41351:30:18", + "nodeType": "YulIdentifier", + "src": "41351:30:18" + }, + "nativeSrc": "41351:63:18", + "nodeType": "YulFunctionCall", + "src": "41351:63:18" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "41341:6:18", + "nodeType": "YulIdentifier", + "src": "41341:6:18" + } + ] } ] } ] }, - "name": "abi_encode_t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a_to_t_string_memory_ptr_fromStack", - "nativeSrc": "2418:366:18", + "name": "abi_decode_tuple_t_bytes4_fromMemory", + "nativeSrc": "41082:349:18", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "pos", - "nativeSrc": "2552:3:18", + "name": "headStart", + "nativeSrc": "41128:9:18", + "nodeType": "YulTypedName", + "src": "41128:9:18", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "41139:7:18", "nodeType": "YulTypedName", - "src": "2552:3:18", + "src": "41139:7:18", "type": "" } ], "returnVariables": [ { - "name": "end", - "nativeSrc": "2560:3:18", + "name": "value0", + "nativeSrc": "41151:6:18", "nodeType": "YulTypedName", - "src": "2560:3:18", + "src": "41151:6:18", "type": "" } ], - "src": "2418:366:18" + "src": "41082:349:18" }, { "body": { - "nativeSrc": "2961:248:18", + "nativeSrc": "41765:725:18", "nodeType": "YulBlock", - "src": "2961:248:18", + "src": "41765:725:18", "statements": [ { - "nativeSrc": "2971:26:18", + "nativeSrc": "41775:27:18", "nodeType": "YulAssignment", - "src": "2971:26:18", + "src": "41775:27:18", "value": { "arguments": [ { "name": "headStart", - "nativeSrc": "2983:9:18", + "nativeSrc": "41787:9:18", "nodeType": "YulIdentifier", - "src": "2983:9:18" + "src": "41787:9:18" }, { "kind": "number", - "nativeSrc": "2994:2:18", + "nativeSrc": "41798:3:18", "nodeType": "YulLiteral", - "src": "2994:2:18", + "src": "41798:3:18", "type": "", - "value": "32" + "value": "160" } ], "functionName": { "name": "add", - "nativeSrc": "2979:3:18", + "nativeSrc": "41783:3:18", "nodeType": "YulIdentifier", - "src": "2979:3:18" + "src": "41783:3:18" }, - "nativeSrc": "2979:18:18", + "nativeSrc": "41783:19:18", "nodeType": "YulFunctionCall", - "src": "2979:18:18" + "src": "41783:19:18" }, "variableNames": [ { "name": "tail", - "nativeSrc": "2971:4:18", + "nativeSrc": "41775:4:18", "nodeType": "YulIdentifier", - "src": "2971:4:18" + "src": "41775:4:18" } ] }, { "expression": { "arguments": [ + { + "name": "value0", + "nativeSrc": "41856:6:18", + "nodeType": "YulIdentifier", + "src": "41856:6:18" + }, { "arguments": [ { "name": "headStart", - "nativeSrc": "3018:9:18", + "nativeSrc": "41869:9:18", "nodeType": "YulIdentifier", - "src": "3018:9:18" + "src": "41869:9:18" }, { "kind": "number", - "nativeSrc": "3029:1:18", + "nativeSrc": "41880:1:18", "nodeType": "YulLiteral", - "src": "3029:1:18", + "src": "41880:1:18", "type": "", "value": "0" } ], "functionName": { "name": "add", - "nativeSrc": "3014:3:18", + "nativeSrc": "41865:3:18", "nodeType": "YulIdentifier", - "src": "3014:3:18" + "src": "41865:3:18" }, - "nativeSrc": "3014:17:18", + "nativeSrc": "41865:17:18", "nodeType": "YulFunctionCall", - "src": "3014:17:18" + "src": "41865:17:18" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "41812:43:18", + "nodeType": "YulIdentifier", + "src": "41812:43:18" + }, + "nativeSrc": "41812:71:18", + "nodeType": "YulFunctionCall", + "src": "41812:71:18" + }, + "nativeSrc": "41812:71:18", + "nodeType": "YulExpressionStatement", + "src": "41812:71:18" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "41937:6:18", + "nodeType": "YulIdentifier", + "src": "41937:6:18" }, { "arguments": [ { - "name": "tail", - "nativeSrc": "3037:4:18", + "name": "headStart", + "nativeSrc": "41950:9:18", "nodeType": "YulIdentifier", - "src": "3037:4:18" + "src": "41950:9:18" }, { - "name": "headStart", - "nativeSrc": "3043:9:18", - "nodeType": "YulIdentifier", - "src": "3043:9:18" + "kind": "number", + "nativeSrc": "41961:2:18", + "nodeType": "YulLiteral", + "src": "41961:2:18", + "type": "", + "value": "32" } ], "functionName": { - "name": "sub", - "nativeSrc": "3033:3:18", + "name": "add", + "nativeSrc": "41946:3:18", "nodeType": "YulIdentifier", - "src": "3033:3:18" + "src": "41946:3:18" }, - "nativeSrc": "3033:20:18", + "nativeSrc": "41946:18:18", "nodeType": "YulFunctionCall", - "src": "3033:20:18" + "src": "41946:18:18" } ], "functionName": { - "name": "mstore", - "nativeSrc": "3007:6:18", + "name": "abi_encode_t_address_to_t_address_fromStack", + "nativeSrc": "41893:43:18", "nodeType": "YulIdentifier", - "src": "3007:6:18" + "src": "41893:43:18" }, - "nativeSrc": "3007:47:18", + "nativeSrc": "41893:72:18", "nodeType": "YulFunctionCall", - "src": "3007:47:18" + "src": "41893:72:18" }, - "nativeSrc": "3007:47:18", + "nativeSrc": "41893:72:18", "nodeType": "YulExpressionStatement", - "src": "3007:47:18" + "src": "41893:72:18" }, { - "nativeSrc": "3063:139:18", - "nodeType": "YulAssignment", - "src": "3063:139:18", - "value": { + "expression": { "arguments": [ { - "name": "tail", - "nativeSrc": "3197:4:18", - "nodeType": "YulIdentifier", - "src": "3197:4:18" + "arguments": [ + { + "name": "headStart", + "nativeSrc": "41986:9:18", + "nodeType": "YulIdentifier", + "src": "41986:9:18" + }, + { + "kind": "number", + "nativeSrc": "41997:2:18", + "nodeType": "YulLiteral", + "src": "41997:2:18", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "41982:3:18", + "nodeType": "YulIdentifier", + "src": "41982:3:18" + }, + "nativeSrc": "41982:18:18", + "nodeType": "YulFunctionCall", + "src": "41982:18:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "42006:4:18", + "nodeType": "YulIdentifier", + "src": "42006:4:18" + }, + { + "name": "headStart", + "nativeSrc": "42012:9:18", + "nodeType": "YulIdentifier", + "src": "42012:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "42002:3:18", + "nodeType": "YulIdentifier", + "src": "42002:3:18" + }, + "nativeSrc": "42002:20:18", + "nodeType": "YulFunctionCall", + "src": "42002:20:18" } ], "functionName": { - "name": "abi_encode_t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a_to_t_string_memory_ptr_fromStack", - "nativeSrc": "3071:124:18", + "name": "mstore", + "nativeSrc": "41975:6:18", "nodeType": "YulIdentifier", - "src": "3071:124:18" + "src": "41975:6:18" }, - "nativeSrc": "3071:131:18", + "nativeSrc": "41975:48:18", "nodeType": "YulFunctionCall", - "src": "3071:131:18" + "src": "41975:48:18" }, - "variableNames": [ - { - "name": "tail", - "nativeSrc": "3063:4:18", - "nodeType": "YulIdentifier", - "src": "3063:4:18" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a__to_t_string_memory_ptr__fromStack_reversed", - "nativeSrc": "2790:419:18", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nativeSrc": "2941:9:18", - "nodeType": "YulTypedName", - "src": "2941:9:18", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nativeSrc": "2956:4:18", - "nodeType": "YulTypedName", - "src": "2956:4:18", - "type": "" - } - ], - "src": "2790:419:18" - }, - { - "body": { - "nativeSrc": "3341:206:18", - "nodeType": "YulBlock", - "src": "3341:206:18", - "statements": [ + "nativeSrc": "41975:48:18", + "nodeType": "YulExpressionStatement", + "src": "41975:48:18" + }, { - "nativeSrc": "3351:26:18", + "nativeSrc": "42032:116:18", "nodeType": "YulAssignment", - "src": "3351:26:18", + "src": "42032:116:18", "value": { "arguments": [ { - "name": "headStart", - "nativeSrc": "3363:9:18", + "name": "value2", + "nativeSrc": "42134:6:18", "nodeType": "YulIdentifier", - "src": "3363:9:18" + "src": "42134:6:18" }, { - "kind": "number", - "nativeSrc": "3374:2:18", - "nodeType": "YulLiteral", - "src": "3374:2:18", - "type": "", - "value": "64" + "name": "tail", + "nativeSrc": "42143:4:18", + "nodeType": "YulIdentifier", + "src": "42143:4:18" } ], "functionName": { - "name": "add", - "nativeSrc": "3359:3:18", + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nativeSrc": "42040:93:18", "nodeType": "YulIdentifier", - "src": "3359:3:18" + "src": "42040:93:18" }, - "nativeSrc": "3359:18:18", + "nativeSrc": "42040:108:18", "nodeType": "YulFunctionCall", - "src": "3359:18:18" + "src": "42040:108:18" }, "variableNames": [ { "name": "tail", - "nativeSrc": "3351:4:18", + "nativeSrc": "42032:4:18", "nodeType": "YulIdentifier", - "src": "3351:4:18" + "src": "42032:4:18" } ] }, { "expression": { "arguments": [ - { - "name": "value0", - "nativeSrc": "3431:6:18", - "nodeType": "YulIdentifier", - "src": "3431:6:18" - }, { "arguments": [ { "name": "headStart", - "nativeSrc": "3444:9:18", + "nativeSrc": "42169:9:18", "nodeType": "YulIdentifier", - "src": "3444:9:18" + "src": "42169:9:18" }, { "kind": "number", - "nativeSrc": "3455:1:18", + "nativeSrc": "42180:2:18", "nodeType": "YulLiteral", - "src": "3455:1:18", + "src": "42180:2:18", "type": "", - "value": "0" + "value": "96" } ], "functionName": { "name": "add", - "nativeSrc": "3440:3:18", + "nativeSrc": "42165:3:18", + "nodeType": "YulIdentifier", + "src": "42165:3:18" + }, + "nativeSrc": "42165:18:18", + "nodeType": "YulFunctionCall", + "src": "42165:18:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "42189:4:18", + "nodeType": "YulIdentifier", + "src": "42189:4:18" + }, + { + "name": "headStart", + "nativeSrc": "42195:9:18", + "nodeType": "YulIdentifier", + "src": "42195:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "42185:3:18", "nodeType": "YulIdentifier", - "src": "3440:3:18" + "src": "42185:3:18" }, - "nativeSrc": "3440:17:18", + "nativeSrc": "42185:20:18", "nodeType": "YulFunctionCall", - "src": "3440:17:18" + "src": "42185:20:18" } ], "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "3387:43:18", + "name": "mstore", + "nativeSrc": "42158:6:18", "nodeType": "YulIdentifier", - "src": "3387:43:18" + "src": "42158:6:18" }, - "nativeSrc": "3387:71:18", + "nativeSrc": "42158:48:18", "nodeType": "YulFunctionCall", - "src": "3387:71:18" + "src": "42158:48:18" }, - "nativeSrc": "3387:71:18", + "nativeSrc": "42158:48:18", "nodeType": "YulExpressionStatement", - "src": "3387:71:18" + "src": "42158:48:18" }, { - "expression": { + "nativeSrc": "42215:116:18", + "nodeType": "YulAssignment", + "src": "42215:116:18", + "value": { "arguments": [ { - "name": "value1", - "nativeSrc": "3512:6:18", + "name": "value3", + "nativeSrc": "42317:6:18", "nodeType": "YulIdentifier", - "src": "3512:6:18" + "src": "42317:6:18" }, + { + "name": "tail", + "nativeSrc": "42326:4:18", + "nodeType": "YulIdentifier", + "src": "42326:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack", + "nativeSrc": "42223:93:18", + "nodeType": "YulIdentifier", + "src": "42223:93:18" + }, + "nativeSrc": "42223:108:18", + "nodeType": "YulFunctionCall", + "src": "42223:108:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "42215:4:18", + "nodeType": "YulIdentifier", + "src": "42215:4:18" + } + ] + }, + { + "expression": { + "arguments": [ { "arguments": [ { "name": "headStart", - "nativeSrc": "3525:9:18", + "nativeSrc": "42352:9:18", "nodeType": "YulIdentifier", - "src": "3525:9:18" + "src": "42352:9:18" }, { "kind": "number", - "nativeSrc": "3536:2:18", + "nativeSrc": "42363:3:18", "nodeType": "YulLiteral", - "src": "3536:2:18", + "src": "42363:3:18", "type": "", - "value": "32" + "value": "128" } ], "functionName": { "name": "add", - "nativeSrc": "3521:3:18", + "nativeSrc": "42348:3:18", + "nodeType": "YulIdentifier", + "src": "42348:3:18" + }, + "nativeSrc": "42348:19:18", + "nodeType": "YulFunctionCall", + "src": "42348:19:18" + }, + { + "arguments": [ + { + "name": "tail", + "nativeSrc": "42373:4:18", + "nodeType": "YulIdentifier", + "src": "42373:4:18" + }, + { + "name": "headStart", + "nativeSrc": "42379:9:18", + "nodeType": "YulIdentifier", + "src": "42379:9:18" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "42369:3:18", "nodeType": "YulIdentifier", - "src": "3521:3:18" + "src": "42369:3:18" }, - "nativeSrc": "3521:18:18", + "nativeSrc": "42369:20:18", "nodeType": "YulFunctionCall", - "src": "3521:18:18" + "src": "42369:20:18" } ], "functionName": { - "name": "abi_encode_t_uint256_to_t_uint256_fromStack", - "nativeSrc": "3468:43:18", + "name": "mstore", + "nativeSrc": "42341:6:18", "nodeType": "YulIdentifier", - "src": "3468:43:18" + "src": "42341:6:18" }, - "nativeSrc": "3468:72:18", + "nativeSrc": "42341:49:18", "nodeType": "YulFunctionCall", - "src": "3468:72:18" + "src": "42341:49:18" }, - "nativeSrc": "3468:72:18", + "nativeSrc": "42341:49:18", "nodeType": "YulExpressionStatement", - "src": "3468:72:18" + "src": "42341:49:18" + }, + { + "nativeSrc": "42399:84:18", + "nodeType": "YulAssignment", + "src": "42399:84:18", + "value": { + "arguments": [ + { + "name": "value4", + "nativeSrc": "42469:6:18", + "nodeType": "YulIdentifier", + "src": "42469:6:18" + }, + { + "name": "tail", + "nativeSrc": "42478:4:18", + "nodeType": "YulIdentifier", + "src": "42478:4:18" + } + ], + "functionName": { + "name": "abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack", + "nativeSrc": "42407:61:18", + "nodeType": "YulIdentifier", + "src": "42407:61:18" + }, + "nativeSrc": "42407:76:18", + "nodeType": "YulFunctionCall", + "src": "42407:76:18" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "42399:4:18", + "nodeType": "YulIdentifier", + "src": "42399:4:18" + } + ] } ] }, - "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed", - "nativeSrc": "3215:332:18", + "name": "abi_encode_tuple_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed", + "nativeSrc": "41437:1053:18", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", - "nativeSrc": "3305:9:18", + "nativeSrc": "41705:9:18", + "nodeType": "YulTypedName", + "src": "41705:9:18", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "41717:6:18", + "nodeType": "YulTypedName", + "src": "41717:6:18", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "41725:6:18", + "nodeType": "YulTypedName", + "src": "41725:6:18", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "41733:6:18", "nodeType": "YulTypedName", - "src": "3305:9:18", + "src": "41733:6:18", "type": "" }, { "name": "value1", - "nativeSrc": "3317:6:18", + "nativeSrc": "41741:6:18", "nodeType": "YulTypedName", - "src": "3317:6:18", + "src": "41741:6:18", "type": "" }, { "name": "value0", - "nativeSrc": "3325:6:18", + "nativeSrc": "41749:6:18", "nodeType": "YulTypedName", - "src": "3325:6:18", + "src": "41749:6:18", "type": "" } ], "returnVariables": [ { "name": "tail", - "nativeSrc": "3336:4:18", + "nativeSrc": "41760:4:18", "nodeType": "YulTypedName", - "src": "3336:4:18", + "src": "41760:4:18", "type": "" } ], - "src": "3215:332:18" + "src": "41437:1053:18" } ] }, - "contents": "{\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address_payable(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function abi_encode_t_address_payable_to_t_address_payable_fromStack(value, pos) {\n mstore(pos, cleanup_t_address_payable(value))\n }\n\n function abi_encode_tuple_t_address_payable__to_t_address_payable__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_payable_to_t_address_payable_fromStack(value0, add(headStart, 0))\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_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8(memPtr) {\n\n mstore(add(memPtr, 0), \"You can't withdraw yet\")\n\n }\n\n function abi_encode_t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 22)\n store_literal_in_memory_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_09be2a1d7c98765b8c1bd9ab3700b54ab19d501eebe572af39b71382f17d12e8_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a(memPtr) {\n\n mstore(add(memPtr, 0), \"You aren't the owner\")\n\n }\n\n function abi_encode_t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 20)\n store_literal_in_memory_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_345d93c1110e55177ee5f687f392a2e775da2aa3d491c8308e925f0505e3530a_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n}\n", + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function 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 abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\n\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function cleanup_t_bytes32(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_bytes32(value) {\n if iszero(eq(value, cleanup_t_bytes32(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bytes32(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes32(value)\n }\n\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bytes32_to_t_bytes32_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes32(value))\n }\n\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value0, add(headStart, 0))\n\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_array$_t_uint256_$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 // uint256[]\n function abi_decode_available_length_t_array$_t_uint256_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_uint256_$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_uint256(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // uint256[]\n function abi_decode_t_array$_t_uint256_$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_uint256_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_calldata_to_memory_with_cleanup(src, dst, length) {\n\n calldatacopy(dst, src, length)\n mstore(add(dst, length), 0)\n\n }\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value2 := abi_decode_t_array$_t_uint256_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3 := abi_decode_t_array$_t_uint256_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value4 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_bytes32t_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes32(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_allocation_size_t_array$_t_address_$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 // address[]\n function abi_decode_available_length_t_array$_t_address_$dyn_memory_ptr(offset, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_array$_t_address_$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_address(elementPos, end))\n dst := add(dst, 0x20)\n }\n }\n\n // address[]\n function abi_decode_t_array$_t_address_$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_address_$dyn_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value0 := abi_decode_t_array$_t_address_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_array$_t_uint256_$dyn_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_array$_t_uint256_$dyn_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> data {\n data := ptr\n\n data := add(ptr, 0x20)\n\n }\n\n function abi_encode_t_uint256_to_t_uint256(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encodeUpdatedPos_t_uint256_to_t_uint256(value0, pos) -> updatedPos {\n abi_encode_t_uint256_to_t_uint256(value0, pos)\n updatedPos := add(pos, 0x20)\n }\n\n function array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(ptr) -> next {\n next := add(ptr, 0x20)\n }\n\n // uint256[] -> uint256[]\n function abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_array$_t_uint256_$dyn_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_array$_t_uint256_$dyn_memory_ptr_fromStack(pos, length)\n let baseRef := array_dataslot_t_array$_t_uint256_$dyn_memory_ptr(value)\n let srcPtr := baseRef\n for { let i := 0 } lt(i, length) { i := add(i, 1) }\n {\n let elementValue0 := mload(srcPtr)\n pos := abi_encodeUpdatedPos_t_uint256_to_t_uint256(elementValue0, pos)\n srcPtr := array_nextElement_t_array$_t_uint256_$dyn_memory_ptr(srcPtr)\n }\n end := pos\n }\n\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_decode_tuple_t_addresst_uint256t_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value3 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function 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 abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_calldata_to_memory_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_tuple_t_uint256t_string_memory_ptr(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\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 function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value4 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function cleanup_t_rational_1_by_1(value) -> cleaned {\n cleaned := value\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_rational_1_by_1_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_rational_1_by_1(value)))\n }\n\n function abi_encode_t_rational_1_by_1_to_t_uint256_fromStack(value, pos) {\n mstore(pos, convert_t_rational_1_by_1_to_t_uint256(value))\n }\n\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_rational_1_by_1_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function store_literal_in_memory_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619(memPtr) {\n\n mstore(add(memPtr, 0), \"Account cannot be empty\")\n\n }\n\n function abi_encode_t_stringliteral_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 23)\n store_literal_in_memory_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_c2ef5cec3cd5807ca7e192fb77bd9e3da1378958f99ebf24571ab659b0b36619_to_t_string_memory_ptr_fromStack( tail)\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 array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n // string -> string\n function abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> ret {\n let slotValue := sload(value)\n let length := extract_byte_array_length(slotValue)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n switch and(slotValue, 1)\n case 0 {\n // short byte array\n mstore(pos, and(slotValue, not(0xff)))\n ret := add(pos, mul(length, iszero(iszero(length))))\n }\n case 1 {\n // long byte array\n let dataPos := array_dataslot_t_string_storage(value)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) } {\n mstore(add(pos, i), sload(dataPos))\n dataPos := add(dataPos, 1)\n }\n ret := add(pos, length)\n }\n }\n\n function store_literal_in_memory_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7(memPtr) {\n\n mstore(add(memPtr, 0), \"/api/v1/nft/\")\n\n }\n\n function abi_encode_t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 12)\n store_literal_in_memory_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7(pos)\n end := add(pos, 12)\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function store_literal_in_memory_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527(memPtr) {\n\n mstore(add(memPtr, 0), \"/\")\n\n }\n\n function abi_encode_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 1)\n store_literal_in_memory_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527(pos)\n end := add(pos, 1)\n }\n\n function store_literal_in_memory_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55(memPtr) {\n\n mstore(add(memPtr, 0), \"/reputation-score\")\n\n }\n\n function abi_encode_t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55_to_t_string_memory_ptr_nonPadded_inplace_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, 17)\n store_literal_in_memory_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55(pos)\n end := add(pos, 17)\n }\n\n function abi_encode_tuple_packed_t_string_storage_t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7_t_string_memory_ptr_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_t_string_memory_ptr_t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value2, value1, value0) -> end {\n\n pos := abi_encode_t_string_storage_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n pos := abi_encode_t_stringliteral_dffb04a525cd02c1927009e9978b1b3a31e2219941c628b0e1a278e1253e73d7_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value1, pos)\n\n pos := abi_encode_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value2, pos)\n\n pos := abi_encode_t_stringliteral_55265a2701bc64b88c772eaa96e74946d09782e358d6aba22dcae17933df0a55_to_t_string_memory_ptr_nonPadded_inplace_fromStack( pos)\n\n end := pos\n }\n\n // string -> string\n function abi_encode_t_string_storage_to_t_string_memory_ptr_fromStack(value, pos) -> ret {\n let slotValue := sload(value)\n let length := extract_byte_array_length(slotValue)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n switch and(slotValue, 1)\n case 0 {\n // short byte array\n mstore(pos, and(slotValue, not(0xff)))\n ret := add(pos, mul(0x20, iszero(iszero(length))))\n }\n case 1 {\n // long byte array\n let dataPos := array_dataslot_t_string_storage(value)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) } {\n mstore(add(pos, i), sload(dataPos))\n dataPos := add(dataPos, 1)\n }\n ret := add(pos, i)\n }\n }\n\n function abi_encode_tuple_t_string_storage_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__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_storage_to_t_string_memory_ptr_fromStack(value0, tail)\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1, tail)\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 panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\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 abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function store_literal_in_memory_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231(memPtr) {\n\n mstore(add(memPtr, 0), \"URI cannot be empty\")\n\n }\n\n function abi_encode_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 19)\n store_literal_in_memory_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_035d4514157dcf2506923e1232babe38012bd57de24345ac363305b5db6b8231_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_t_bytes4_to_t_bytes4_fromStack(value, pos) {\n mstore(pos, cleanup_t_bytes4(value))\n }\n\n function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bytes4_to_t_bytes4_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_address_t_bytes32__to_t_address_t_bytes32__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_bytes32_to_t_bytes32_fromStack(value1, add(headStart, 32))\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart , value3, value2, value1, value0) -> tail {\n tail := add(headStart, 128)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n }\n\n function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value0, tail)\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$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_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value3, add(headStart, 96))\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value4, tail)\n\n }\n\n function abi_decode_t_bytes4_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_bytes4(value)\n }\n\n function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_tuple_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart , value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 160)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value2, tail)\n\n mstore(add(headStart, 96), sub(tail, headStart))\n tail := abi_encode_t_array$_t_uint256_$dyn_memory_ptr_to_t_array$_t_uint256_$dyn_memory_ptr_fromStack(value3, tail)\n\n mstore(add(headStart, 128), sub(tail, headStart))\n tail := abi_encode_t_bytes_memory_ptr_to_t_bytes_memory_ptr_fromStack(value4, tail)\n\n }\n\n}\n", "id": 18, "language": "Yul", "name": "#utility.yul" @@ -86768,17 +88821,304 @@ ], "immutableReferences": {}, "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50600436106100415760003560e01c8063251c1aa3146100465780633ccfd60b146100645780638da5cb5b1461006e575b600080fd5b61004e61008c565b60405161005b919061024a565b60405180910390f35b61006c610092565b005b61007661020b565b60405161008391906102a6565b60405180910390f35b60005481565b6000544210156100d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100ce9061031e565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161015e9061038a565b60405180910390fd5b7fbf2ed60bd5b5965d685680c01195c9514e4382e28e3a5a2d2d5244bf59411b9347426040516101989291906103aa565b60405180910390a1600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610208573d6000803e3d6000fd5b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000819050919050565b61024481610231565b82525050565b600060208201905061025f600083018461023b565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061029082610265565b9050919050565b6102a081610285565b82525050565b60006020820190506102bb6000830184610297565b92915050565b600082825260208201905092915050565b7f596f752063616e27742077697468647261772079657400000000000000000000600082015250565b60006103086016836102c1565b9150610313826102d2565b602082019050919050565b60006020820190508181036000830152610337816102fb565b9050919050565b7f596f75206172656e277420746865206f776e6572000000000000000000000000600082015250565b60006103746014836102c1565b915061037f8261033e565b602082019050919050565b600060208201905081810360008301526103a381610367565b9050919050565b60006040820190506103bf600083018561023b565b6103cc602083018461023b565b939250505056fea264697066735822122022a2b65355af697b0725f7bcddf1c94be908ee67893e84bd3442d61fdc82585064736f6c63430008180033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x41 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x251C1AA3 EQ PUSH2 0x46 JUMPI DUP1 PUSH4 0x3CCFD60B EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x6E JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4E PUSH2 0x8C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5B SWAP2 SWAP1 PUSH2 0x24A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x6C PUSH2 0x92 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x76 PUSH2 0x20B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x83 SWAP2 SWAP1 PUSH2 0x2A6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 SLOAD DUP2 JUMP JUMPDEST PUSH1 0x0 SLOAD TIMESTAMP LT ISZERO PUSH2 0xD7 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xCE SWAP1 PUSH2 0x31E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x167 JUMPI PUSH1 0x40 MLOAD PUSH32 0x8C379A000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x15E SWAP1 PUSH2 0x38A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0xBF2ED60BD5B5965D685680C01195C9514E4382E28E3A5A2D2D5244BF59411B93 SELFBALANCE TIMESTAMP PUSH1 0x40 MLOAD PUSH2 0x198 SWAP3 SWAP2 SWAP1 PUSH2 0x3AA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0x8FC SELFBALANCE SWAP1 DUP2 ISZERO MUL SWAP1 PUSH1 0x40 MLOAD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP ISZERO DUP1 ISZERO PUSH2 0x208 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x244 DUP2 PUSH2 0x231 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x25F PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x23B JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x290 DUP3 PUSH2 0x265 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2A0 DUP2 PUSH2 0x285 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2BB PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x297 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x596F752063616E27742077697468647261772079657400000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x308 PUSH1 0x16 DUP4 PUSH2 0x2C1 JUMP JUMPDEST SWAP2 POP PUSH2 0x313 DUP3 PUSH2 0x2D2 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x337 DUP2 PUSH2 0x2FB JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x596F75206172656E277420746865206F776E6572000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x374 PUSH1 0x14 DUP4 PUSH2 0x2C1 JUMP JUMPDEST SWAP2 POP PUSH2 0x37F DUP3 PUSH2 0x33E JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x3A3 DUP2 PUSH2 0x367 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3BF PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x23B JUMP JUMPDEST PUSH2 0x3CC PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x23B JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x22 LOG2 0xB6 MSTORE8 SSTORE 0xAF PUSH10 0x7B0725F7BCDDF1C94BE9 ADDMOD 0xEE PUSH8 0x893E84BD3442D61F 0xDC DUP3 PC POP PUSH5 0x736F6C6343 STOP ADDMOD XOR STOP CALLER ", - "sourceMap": "141:866:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;161:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;515:490;;;:::i;:::-;;189:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;161:22;;;;:::o;515:490::-;785:10;;766:15;:29;;758:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;854:5;;;;;;;;;;;840:19;;:10;:19;;;832:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;900:50;911:21;934:15;900:50;;;;;;;:::i;:::-;;;;;;;;961:5;;;;;;;;;;;:14;;:37;976:21;961:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;515:490::o;189:28::-;;;;;;;;;;;;;:::o;7:77:18:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:126::-;479:7;519:42;512:5;508:54;497:65;;442:126;;;:::o;574:104::-;619:7;648:24;666:5;648:24;:::i;:::-;637:35;;574:104;;;:::o;684:142::-;787:32;813:5;787:32;:::i;:::-;782:3;775:45;684:142;;:::o;832:254::-;941:4;979:2;968:9;964:18;956:26;;992:87;1076:1;1065:9;1061:17;1052:6;992:87;:::i;:::-;832:254;;;;:::o;1092:169::-;1176:11;1210:6;1205:3;1198:19;1250:4;1245:3;1241:14;1226:29;;1092:169;;;;:::o;1267:172::-;1407:24;1403:1;1395:6;1391:14;1384:48;1267:172;:::o;1445:366::-;1587:3;1608:67;1672:2;1667:3;1608:67;:::i;:::-;1601:74;;1684:93;1773:3;1684:93;:::i;:::-;1802:2;1797:3;1793:12;1786:19;;1445:366;;;:::o;1817:419::-;1983:4;2021:2;2010:9;2006:18;1998:26;;2070:9;2064:4;2060:20;2056:1;2045:9;2041:17;2034:47;2098:131;2224:4;2098:131;:::i;:::-;2090:139;;1817:419;;;:::o;2242:170::-;2382:22;2378:1;2370:6;2366:14;2359:46;2242:170;:::o;2418:366::-;2560:3;2581:67;2645:2;2640:3;2581:67;:::i;:::-;2574:74;;2657:93;2746:3;2657:93;:::i;:::-;2775:2;2770:3;2766:12;2759:19;;2418:366;;;:::o;2790:419::-;2956:4;2994:2;2983:9;2979:18;2971:26;;3043:9;3037:4;3033:20;3029:1;3018:9;3014:17;3007:47;3071:131;3197:4;3071:131;:::i;:::-;3063:139;;2790:419;;;:::o;3215:332::-;3336:4;3374:2;3363:9;3359:18;3351:26;;3387:71;3455:1;3444:9;3440:17;3431:6;3387:71;:::i;:::-;3468:72;3536:2;3525:9;3521:18;3512:6;3468:72;:::i;:::-;3215:332;;;;;:::o" + "object": "608060405234801561001057600080fd5b506004361061012b5760003560e01c806376b676f1116100ad578063d383f64611610071578063d383f64614610364578063d547741f1461036e578063e985e9c51461038a578063f242432a146103ba578063f5298aca146103d65761012b565b806376b676f1146102ae57806391d14854146102de578063931688cb1461030e578063a217fddf1461032a578063a22cb465146103485761012b565b80632f2ff15d116100f45780632f2ff15d1461020c57806336568abe146102285780634e1273f41461024457806361bc221a14610274578063731133e9146102925761012b565b8062fdd58e1461013057806301ffc9a7146101605780630e89341c14610190578063248a9ca3146101c05780632eb2c2d6146101f0575b600080fd5b61014a600480360381019061014591906121b1565b6103f2565b6040516101579190612200565b60405180910390f35b61017a60048036038101906101759190612273565b61044c565b60405161018791906122bb565b60405180910390f35b6101aa60048036038101906101a591906122d6565b61048c565b6040516101b79190612393565b60405180910390f35b6101da60048036038101906101d591906123eb565b610520565b6040516101e79190612427565b60405180910390f35b61020a6004803603810190610205919061263f565b610540565b005b6102266004803603810190610221919061270e565b6105e8565b005b610242600480360381019061023d919061270e565b61060a565b005b61025e60048036038101906102599190612811565b610685565b60405161026b9190612947565b60405180910390f35b61027c61078e565b6040516102899190612200565b60405180910390f35b6102ac60048036038101906102a79190612969565b610798565b005b6102c860048036038101906102c39190612a8d565b610856565b6040516102d59190612393565b60405180910390f35b6102f860048036038101906102f3919061270e565b6108de565b60405161030591906122bb565b60405180910390f35b61032860048036038101906103239190612ae9565b610949565b005b6103326109ad565b60405161033f9190612427565b60405180910390f35b610362600480360381019061035d9190612b5e565b6109b4565b005b61036c6109ca565b005b6103886004803603810190610383919061270e565b610a47565b005b6103a4600480360381019061039f9190612b9e565b610a69565b6040516103b191906122bb565b60405180910390f35b6103d460048036038101906103cf9190612bde565b610afd565b005b6103f060048036038101906103eb9190612c75565b610ba5565b005b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061046d3073ffffffffffffffffffffffffffffffffffffffff16610c87565b156104825761047b82610cd4565b9050610487565b600090505b919050565b60606002805461049b90612cf7565b80601f01602080910402602001604051908101604052809291908181526020018280546104c790612cf7565b80156105145780601f106104e957610100808354040283529160200191610514565b820191906000526020600020905b8154815290600101906020018083116104f757829003601f168201915b50505050509050919050565b600060036000838152602001908152602001600020600101549050919050565b600061054a610d4e565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561058f575061058d8682610a69565b155b156105d35780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016105ca929190612d37565b60405180910390fd5b6105e08686868686610d56565b505050505050565b6105f182610520565b6105fa81610e4e565b6106048383610e62565b50505050565b610612610d4e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610676576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106808282610f54565b505050565b606081518351146106d157815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016106c8929190612d60565b60405180910390fd5b6000835167ffffffffffffffff8111156106ee576106ed612447565b5b60405190808252806020026020018201604052801561071c5781602001602082028036833780820191505090505b50905060005b845181101561078357610759610741828761104790919063ffffffff16565b610754838761105b90919063ffffffff16565b6103f2565b82828151811061076c5761076b612d89565b5b602002602001018181525050806001019050610722565b508091505092915050565b6000600454905090565b826107a28161106f565b60016107ae86866103f2565b106107f25784846040517f788d25560000000000000000000000000000000000000000000000000000000081526004016107e9929190612db8565b60405180910390fd5b6107ff85856001856110b8565b838573ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f60016040516108479190612e26565b60405180910390a35050505050565b6060826108628161106f565b8260008151036108a7576040517fc29f9db300000000000000000000000000000000000000000000000000000000815260040161089e90612e8d565b60405180910390fd5b60056108b286611151565b856040516020016108c593929190613065565b6040516020818303038152906040529250505092915050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b61095681610e4e565b61095f8261121f565b7f309b29ded109b9e28fb9885757b3e0096eb75c51d23aa4635d68bcd569f6adc160058360405161099192919061313b565b60405180910390a181600590816109a891906132ff565b505050565b6000801b81565b6109c66109bf610d4e565b8383611266565b5050565b600060045490506109ed33826001604051806020016040528060008152506110b8565b803373ffffffffffffffffffffffffffffffffffffffff167fc65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c1660405160405180910390a3600181610a3e9190613400565b60048190555050565b610a5082610520565b610a5981610e4e565b610a638383610f54565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000610b07610d4e565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610b4c5750610b4a8682610a69565b155b15610b905780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610b87929190612d37565b60405180910390fd5b610b9d86868686866113d6565b505050505050565b81610baf8161106f565b83833373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610c235781816040517f8626cc03000000000000000000000000000000000000000000000000000000008152600401610c1a929190612db8565b60405180910390fd5b610c2f868660016114e1565b848673ffffffffffffffffffffffffffffffffffffffff167f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a6001604051610c779190612e26565b60405180910390a3505050505050565b6000610cb3827f01ffc9a700000000000000000000000000000000000000000000000000000000611588565b8015610ccd5750610ccb8263ffffffff60e01b611588565b155b9050919050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610d475750610d4682611627565b5b9050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610dc85760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610dbf9190613434565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610e3a5760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610e319190613434565b60405180910390fd5b610e478585858585611709565b5050505050565b610e5f81610e5a610d4e565b6117bb565b50565b6000610e6e83836108de565b610f495760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610ee6610d4e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610f4e565b600090505b92915050565b6000610f6083836108de565b1561103c5760006003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610fd9610d4e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611041565b600090505b92915050565b600060208202602084010151905092915050565b600060208202602084010151905092915050565b60045481106110b557806040517fc80a970c0000000000000000000000000000000000000000000000000000000081526004016110ac9190612200565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361112a5760006040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016111219190613434565b60405180910390fd5b600080611137858561180c565b91509150611149600087848487611709565b505050505050565b6060600060016111608461183c565b01905060008167ffffffffffffffff81111561117f5761117e612447565b5b6040519080825280601f01601f1916602001820160405280156111b15781602001600182028036833780820191505090505b509050600082602001820190505b600115611214578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816112085761120761344f565b5b049450600085036111bf575b819350505050919050565b6000815103611263576040517f1897cf6600000000000000000000000000000000000000000000000000000000815260040161125a906134ca565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112d85760006040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016112cf9190613434565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516113c991906122bb565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036114485760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161143f9190613434565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036114ba5760006040517f01a835140000000000000000000000000000000000000000000000000000000081526004016114b19190613434565b60405180910390fd5b6000806114c7858561180c565b915091506114d88787848487611709565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115535760006040517f01a8351400000000000000000000000000000000000000000000000000000000815260040161154a9190613434565b60405180910390fd5b600080611560848461180c565b91509150611581856000848460405180602001604052806000815250611709565b5050505050565b6000808260405160240161159c91906134f9565b6040516020818303038152906040526301ffc9a760e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000806000602060008551602087018a617530fa92503d9150600051905082801561160f575060208210155b801561161b5750600081115b94505050505092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806116f257507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061170257506117018261198f565b5b9050919050565b611715858585856119f9565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146117b4576000611753610d4e565b905060018451036117a357600061177460008661105b90919063ffffffff16565b9050600061178c60008661105b90919063ffffffff16565b905061179c838989858589611da1565b50506117b2565b6117b1818787878787611f55565b5b505b5050505050565b6117c582826108de565b6118085780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016117ff929190613514565b60405180910390fd5b5050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061189a577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816118905761188f61344f565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106118d7576d04ee2d6d415b85acef810000000083816118cd576118cc61344f565b5b0492506020810190505b662386f26fc10000831061190657662386f26fc1000083816118fc576118fb61344f565b5b0492506010810190505b6305f5e100831061192f576305f5e10083816119255761192461344f565b5b0492506008810190505b612710831061195457612710838161194a5761194961344f565b5b0492506004810190505b60648310611977576064838161196d5761196c61344f565b5b0492506002810190505b600a8310611986576001810190505b80915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b8051825114611a4357815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401611a3a929190612d60565b60405180910390fd5b6000611a4d610d4e565b905060005b8351811015611c5c576000611a70828661105b90919063ffffffff16565b90506000611a87838661105b90919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611bb457600080600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611b5c57888183856040517f03dee4c5000000000000000000000000000000000000000000000000000000008152600401611b53949392919061353d565b60405180910390fd5b81810360008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611c4f578060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c479190613400565b925050819055505b5050806001019050611a52565b506001835103611d1b576000611c7c60008561105b90919063ffffffff16565b90506000611c9460008561105b90919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611d0c929190612d60565b60405180910390a45050611d9a565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611d91929190613582565b60405180910390a45b5050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611f4d578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611e0295949392919061360e565b6020604051808303816000875af1925050508015611e3e57506040513d601f19601f82011682018060405250810190611e3b919061367d565b60015b611ec2573d8060008114611e6e576040519150601f19603f3d011682016040523d82523d6000602084013e611e73565b606091505b506000815103611eba57846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611eb19190613434565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611f4b57846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611f429190613434565b60405180910390fd5b505b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115612101578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611fb69594939291906136aa565b6020604051808303816000875af1925050508015611ff257506040513d601f19601f82011682018060405250810190611fef919061367d565b60015b612076573d8060008114612022576040519150601f19603f3d011682016040523d82523d6000602084013e612027565b606091505b50600081510361206e57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016120659190613434565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146120ff57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016120f69190613434565b60405180910390fd5b505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121488261211d565b9050919050565b6121588161213d565b811461216357600080fd5b50565b6000813590506121758161214f565b92915050565b6000819050919050565b61218e8161217b565b811461219957600080fd5b50565b6000813590506121ab81612185565b92915050565b600080604083850312156121c8576121c7612113565b5b60006121d685828601612166565b92505060206121e78582860161219c565b9150509250929050565b6121fa8161217b565b82525050565b600060208201905061221560008301846121f1565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6122508161221b565b811461225b57600080fd5b50565b60008135905061226d81612247565b92915050565b60006020828403121561228957612288612113565b5b60006122978482850161225e565b91505092915050565b60008115159050919050565b6122b5816122a0565b82525050565b60006020820190506122d060008301846122ac565b92915050565b6000602082840312156122ec576122eb612113565b5b60006122fa8482850161219c565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561233d578082015181840152602081019050612322565b60008484015250505050565b6000601f19601f8301169050919050565b600061236582612303565b61236f818561230e565b935061237f81856020860161231f565b61238881612349565b840191505092915050565b600060208201905081810360008301526123ad818461235a565b905092915050565b6000819050919050565b6123c8816123b5565b81146123d357600080fd5b50565b6000813590506123e5816123bf565b92915050565b60006020828403121561240157612400612113565b5b600061240f848285016123d6565b91505092915050565b612421816123b5565b82525050565b600060208201905061243c6000830184612418565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61247f82612349565b810181811067ffffffffffffffff8211171561249e5761249d612447565b5b80604052505050565b60006124b1612109565b90506124bd8282612476565b919050565b600067ffffffffffffffff8211156124dd576124dc612447565b5b602082029050602081019050919050565b600080fd5b6000612506612501846124c2565b6124a7565b90508083825260208201905060208402830185811115612529576125286124ee565b5b835b81811015612552578061253e888261219c565b84526020840193505060208101905061252b565b5050509392505050565b600082601f83011261257157612570612442565b5b81356125818482602086016124f3565b91505092915050565b600080fd5b600067ffffffffffffffff8211156125aa576125a9612447565b5b6125b382612349565b9050602081019050919050565b82818337600083830152505050565b60006125e26125dd8461258f565b6124a7565b9050828152602081018484840111156125fe576125fd61258a565b5b6126098482856125c0565b509392505050565b600082601f83011261262657612625612442565b5b81356126368482602086016125cf565b91505092915050565b600080600080600060a0868803121561265b5761265a612113565b5b600061266988828901612166565b955050602061267a88828901612166565b945050604086013567ffffffffffffffff81111561269b5761269a612118565b5b6126a78882890161255c565b935050606086013567ffffffffffffffff8111156126c8576126c7612118565b5b6126d48882890161255c565b925050608086013567ffffffffffffffff8111156126f5576126f4612118565b5b61270188828901612611565b9150509295509295909350565b6000806040838503121561272557612724612113565b5b6000612733858286016123d6565b925050602061274485828601612166565b9150509250929050565b600067ffffffffffffffff82111561276957612768612447565b5b602082029050602081019050919050565b600061278d6127888461274e565b6124a7565b905080838252602082019050602084028301858111156127b0576127af6124ee565b5b835b818110156127d957806127c58882612166565b8452602084019350506020810190506127b2565b5050509392505050565b600082601f8301126127f8576127f7612442565b5b813561280884826020860161277a565b91505092915050565b6000806040838503121561282857612827612113565b5b600083013567ffffffffffffffff81111561284657612845612118565b5b612852858286016127e3565b925050602083013567ffffffffffffffff81111561287357612872612118565b5b61287f8582860161255c565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6128be8161217b565b82525050565b60006128d083836128b5565b60208301905092915050565b6000602082019050919050565b60006128f482612889565b6128fe8185612894565b9350612909836128a5565b8060005b8381101561293a57815161292188826128c4565b975061292c836128dc565b92505060018101905061290d565b5085935050505092915050565b6000602082019050818103600083015261296181846128e9565b905092915050565b6000806000806080858703121561298357612982612113565b5b600061299187828801612166565b94505060206129a28782880161219c565b93505060406129b38782880161219c565b925050606085013567ffffffffffffffff8111156129d4576129d3612118565b5b6129e087828801612611565b91505092959194509250565b600067ffffffffffffffff821115612a0757612a06612447565b5b612a1082612349565b9050602081019050919050565b6000612a30612a2b846129ec565b6124a7565b905082815260208101848484011115612a4c57612a4b61258a565b5b612a578482856125c0565b509392505050565b600082601f830112612a7457612a73612442565b5b8135612a84848260208601612a1d565b91505092915050565b60008060408385031215612aa457612aa3612113565b5b6000612ab28582860161219c565b925050602083013567ffffffffffffffff811115612ad357612ad2612118565b5b612adf85828601612a5f565b9150509250929050565b600060208284031215612aff57612afe612113565b5b600082013567ffffffffffffffff811115612b1d57612b1c612118565b5b612b2984828501612a5f565b91505092915050565b612b3b816122a0565b8114612b4657600080fd5b50565b600081359050612b5881612b32565b92915050565b60008060408385031215612b7557612b74612113565b5b6000612b8385828601612166565b9250506020612b9485828601612b49565b9150509250929050565b60008060408385031215612bb557612bb4612113565b5b6000612bc385828601612166565b9250506020612bd485828601612166565b9150509250929050565b600080600080600060a08688031215612bfa57612bf9612113565b5b6000612c0888828901612166565b9550506020612c1988828901612166565b9450506040612c2a8882890161219c565b9350506060612c3b8882890161219c565b925050608086013567ffffffffffffffff811115612c5c57612c5b612118565b5b612c6888828901612611565b9150509295509295909350565b600080600060608486031215612c8e57612c8d612113565b5b6000612c9c86828701612166565b9350506020612cad8682870161219c565b9250506040612cbe8682870161219c565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612d0f57607f821691505b602082108103612d2257612d21612cc8565b5b50919050565b612d318161213d565b82525050565b6000604082019050612d4c6000830185612d28565b612d596020830184612d28565b9392505050565b6000604082019050612d7560008301856121f1565b612d8260208301846121f1565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050612dcd6000830185612d28565b612dda60208301846121f1565b9392505050565b6000819050919050565b6000819050919050565b6000612e10612e0b612e0684612de1565b612deb565b61217b565b9050919050565b612e2081612df5565b82525050565b6000602082019050612e3b6000830184612e17565b92915050565b7f4163636f756e742063616e6e6f7420626520656d707479000000000000000000600082015250565b6000612e7760178361230e565b9150612e8282612e41565b602082019050919050565b60006020820190508181036000830152612ea681612e6a565b9050919050565b600081905092915050565b60008190508160005260206000209050919050565b60008154612eda81612cf7565b612ee48186612ead565b94506001821660008114612eff5760018114612f1457612f47565b60ff1983168652811515820286019350612f47565b612f1d85612eb8565b60005b83811015612f3f57815481890152600182019150602081019050612f20565b838801955050505b50505092915050565b7f2f6170692f76312f6e66742f0000000000000000000000000000000000000000600082015250565b6000612f86600c83612ead565b9150612f9182612f50565b600c82019050919050565b6000612fa782612303565b612fb18185612ead565b9350612fc181856020860161231f565b80840191505092915050565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b6000613003600183612ead565b915061300e82612fcd565b600182019050919050565b7f2f72657075746174696f6e2d73636f7265000000000000000000000000000000600082015250565b600061304f601183612ead565b915061305a82613019565b601182019050919050565b60006130718286612ecd565b915061307c82612f79565b91506130888285612f9c565b915061309382612ff6565b915061309f8284612f9c565b91506130aa82613042565b9150819050949350505050565b600081546130c481612cf7565b6130ce818661230e565b945060018216600081146130e957600181146130ff57613132565b60ff198316865281151560200286019350613132565b61310885612eb8565b60005b8381101561312a5781548189015260018201915060208101905061310b565b808801955050505b50505092915050565b6000604082019050818103600083015261315581856130b7565b90508181036020830152613169818461235a565b90509392505050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026131bf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613182565b6131c98683613182565b95508019841693508086168417925050509392505050565b60006131fc6131f76131f28461217b565b612deb565b61217b565b9050919050565b6000819050919050565b613216836131e1565b61322a61322282613203565b84845461318f565b825550505050565b600090565b61323f613232565b61324a81848461320d565b505050565b5b8181101561326e57613263600082613237565b600181019050613250565b5050565b601f8211156132b35761328481612eb8565b61328d84613172565b8101602085101561329c578190505b6132b06132a885613172565b83018261324f565b50505b505050565b600082821c905092915050565b60006132d6600019846008026132b8565b1980831691505092915050565b60006132ef83836132c5565b9150826002028217905092915050565b61330882612303565b67ffffffffffffffff81111561332157613320612447565b5b61332b8254612cf7565b613336828285613272565b600060209050601f8311600181146133695760008415613357578287015190505b61336185826132e3565b8655506133c9565b601f19841661337786612eb8565b60005b8281101561339f5784890151825560018201915060208501945060208101905061337a565b868310156133bc57848901516133b8601f8916826132c5565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061340b8261217b565b91506134168361217b565b925082820190508082111561342e5761342d6133d1565b5b92915050565b60006020820190506134496000830184612d28565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f5552492063616e6e6f7420626520656d70747900000000000000000000000000600082015250565b60006134b460138361230e565b91506134bf8261347e565b602082019050919050565b600060208201905081810360008301526134e3816134a7565b9050919050565b6134f38161221b565b82525050565b600060208201905061350e60008301846134ea565b92915050565b60006040820190506135296000830185612d28565b6135366020830184612418565b9392505050565b60006080820190506135526000830187612d28565b61355f60208301866121f1565b61356c60408301856121f1565b61357960608301846121f1565b95945050505050565b6000604082019050818103600083015261359c81856128e9565b905081810360208301526135b081846128e9565b90509392505050565b600081519050919050565b600082825260208201905092915050565b60006135e0826135b9565b6135ea81856135c4565b93506135fa81856020860161231f565b61360381612349565b840191505092915050565b600060a0820190506136236000830188612d28565b6136306020830187612d28565b61363d60408301866121f1565b61364a60608301856121f1565b818103608083015261365c81846135d5565b90509695505050505050565b60008151905061367781612247565b92915050565b60006020828403121561369357613692612113565b5b60006136a184828501613668565b91505092915050565b600060a0820190506136bf6000830188612d28565b6136cc6020830187612d28565b81810360408301526136de81866128e9565b905081810360608301526136f281856128e9565b9050818103608083015261370681846135d5565b9050969550505050505056fea2646970667358221220240e9a7daab5d9eba2793e75f4bbf0e9a74f133868ac14d5e9561767bb722e8264736f6c634300081a0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x12B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x76B676F1 GT PUSH2 0xAD JUMPI DUP1 PUSH4 0xD383F646 GT PUSH2 0x71 JUMPI DUP1 PUSH4 0xD383F646 EQ PUSH2 0x364 JUMPI DUP1 PUSH4 0xD547741F EQ PUSH2 0x36E JUMPI DUP1 PUSH4 0xE985E9C5 EQ PUSH2 0x38A JUMPI DUP1 PUSH4 0xF242432A EQ PUSH2 0x3BA JUMPI DUP1 PUSH4 0xF5298ACA EQ PUSH2 0x3D6 JUMPI PUSH2 0x12B JUMP JUMPDEST DUP1 PUSH4 0x76B676F1 EQ PUSH2 0x2AE JUMPI DUP1 PUSH4 0x91D14854 EQ PUSH2 0x2DE JUMPI DUP1 PUSH4 0x931688CB EQ PUSH2 0x30E JUMPI DUP1 PUSH4 0xA217FDDF EQ PUSH2 0x32A JUMPI DUP1 PUSH4 0xA22CB465 EQ PUSH2 0x348 JUMPI PUSH2 0x12B JUMP JUMPDEST DUP1 PUSH4 0x2F2FF15D GT PUSH2 0xF4 JUMPI DUP1 PUSH4 0x2F2FF15D EQ PUSH2 0x20C JUMPI DUP1 PUSH4 0x36568ABE EQ PUSH2 0x228 JUMPI DUP1 PUSH4 0x4E1273F4 EQ PUSH2 0x244 JUMPI DUP1 PUSH4 0x61BC221A EQ PUSH2 0x274 JUMPI DUP1 PUSH4 0x731133E9 EQ PUSH2 0x292 JUMPI PUSH2 0x12B JUMP JUMPDEST DUP1 PUSH3 0xFDD58E EQ PUSH2 0x130 JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x160 JUMPI DUP1 PUSH4 0xE89341C EQ PUSH2 0x190 JUMPI DUP1 PUSH4 0x248A9CA3 EQ PUSH2 0x1C0 JUMPI DUP1 PUSH4 0x2EB2C2D6 EQ PUSH2 0x1F0 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x145 SWAP2 SWAP1 PUSH2 0x21B1 JUMP JUMPDEST PUSH2 0x3F2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x157 SWAP2 SWAP1 PUSH2 0x2200 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x17A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x175 SWAP2 SWAP1 PUSH2 0x2273 JUMP JUMPDEST PUSH2 0x44C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x187 SWAP2 SWAP1 PUSH2 0x22BB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1AA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1A5 SWAP2 SWAP1 PUSH2 0x22D6 JUMP JUMPDEST PUSH2 0x48C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1B7 SWAP2 SWAP1 PUSH2 0x2393 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x1DA PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x1D5 SWAP2 SWAP1 PUSH2 0x23EB JUMP JUMPDEST PUSH2 0x520 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E7 SWAP2 SWAP1 PUSH2 0x2427 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x20A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x205 SWAP2 SWAP1 PUSH2 0x263F JUMP JUMPDEST PUSH2 0x540 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x226 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x221 SWAP2 SWAP1 PUSH2 0x270E JUMP JUMPDEST PUSH2 0x5E8 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x242 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x23D SWAP2 SWAP1 PUSH2 0x270E JUMP JUMPDEST PUSH2 0x60A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x25E PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x259 SWAP2 SWAP1 PUSH2 0x2811 JUMP JUMPDEST PUSH2 0x685 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x26B SWAP2 SWAP1 PUSH2 0x2947 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x27C PUSH2 0x78E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x289 SWAP2 SWAP1 PUSH2 0x2200 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2AC PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2A7 SWAP2 SWAP1 PUSH2 0x2969 JUMP JUMPDEST PUSH2 0x798 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x2C8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2C3 SWAP2 SWAP1 PUSH2 0x2A8D JUMP JUMPDEST PUSH2 0x856 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2D5 SWAP2 SWAP1 PUSH2 0x2393 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x2F8 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x2F3 SWAP2 SWAP1 PUSH2 0x270E JUMP JUMPDEST PUSH2 0x8DE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x305 SWAP2 SWAP1 PUSH2 0x22BB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x328 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x323 SWAP2 SWAP1 PUSH2 0x2AE9 JUMP JUMPDEST PUSH2 0x949 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x332 PUSH2 0x9AD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x33F SWAP2 SWAP1 PUSH2 0x2427 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x362 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x35D SWAP2 SWAP1 PUSH2 0x2B5E JUMP JUMPDEST PUSH2 0x9B4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x36C PUSH2 0x9CA JUMP JUMPDEST STOP JUMPDEST PUSH2 0x388 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x383 SWAP2 SWAP1 PUSH2 0x270E JUMP JUMPDEST PUSH2 0xA47 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3A4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x39F SWAP2 SWAP1 PUSH2 0x2B9E JUMP JUMPDEST PUSH2 0xA69 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3B1 SWAP2 SWAP1 PUSH2 0x22BB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3D4 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3CF SWAP2 SWAP1 PUSH2 0x2BDE JUMP JUMPDEST PUSH2 0xAFD JUMP JUMPDEST STOP JUMPDEST PUSH2 0x3F0 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x3EB SWAP2 SWAP1 PUSH2 0x2C75 JUMP JUMPDEST PUSH2 0xBA5 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x46D ADDRESS PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH2 0xC87 JUMP JUMPDEST ISZERO PUSH2 0x482 JUMPI PUSH2 0x47B DUP3 PUSH2 0xCD4 JUMP JUMPDEST SWAP1 POP PUSH2 0x487 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP1 SLOAD PUSH2 0x49B SWAP1 PUSH2 0x2CF7 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 0x4C7 SWAP1 PUSH2 0x2CF7 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x514 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x4E9 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x514 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 0x4F7 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 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 PUSH2 0x54A PUSH2 0xD4E JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0x58F JUMPI POP PUSH2 0x58D DUP7 DUP3 PUSH2 0xA69 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0x5D3 JUMPI DUP1 DUP7 PUSH1 0x40 MLOAD PUSH32 0xE237D92200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x5CA SWAP3 SWAP2 SWAP1 PUSH2 0x2D37 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x5E0 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0xD56 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x5F1 DUP3 PUSH2 0x520 JUMP JUMPDEST PUSH2 0x5FA DUP2 PUSH2 0xE4E JUMP JUMPDEST PUSH2 0x604 DUP4 DUP4 PUSH2 0xE62 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x612 PUSH2 0xD4E JUMP JUMPDEST PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x676 JUMPI PUSH1 0x40 MLOAD PUSH32 0x6697B23200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x680 DUP3 DUP3 PUSH2 0xF54 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD DUP4 MLOAD EQ PUSH2 0x6D1 JUMPI DUP2 MLOAD DUP4 MLOAD PUSH1 0x40 MLOAD PUSH32 0x5B05999100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x6C8 SWAP3 SWAP2 SWAP1 PUSH2 0x2D60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x6EE JUMPI PUSH2 0x6ED PUSH2 0x2447 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 0x71C JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 MLOAD DUP2 LT ISZERO PUSH2 0x783 JUMPI PUSH2 0x759 PUSH2 0x741 DUP3 DUP8 PUSH2 0x1047 SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x754 DUP4 DUP8 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST PUSH2 0x3F2 JUMP JUMPDEST DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x76C JUMPI PUSH2 0x76B PUSH2 0x2D89 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x722 JUMP JUMPDEST POP DUP1 SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST DUP3 PUSH2 0x7A2 DUP2 PUSH2 0x106F JUMP JUMPDEST PUSH1 0x1 PUSH2 0x7AE DUP7 DUP7 PUSH2 0x3F2 JUMP JUMPDEST LT PUSH2 0x7F2 JUMPI DUP5 DUP5 PUSH1 0x40 MLOAD PUSH32 0x788D255600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7E9 SWAP3 SWAP2 SWAP1 PUSH2 0x2DB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x7FF DUP6 DUP6 PUSH1 0x1 DUP6 PUSH2 0x10B8 JUMP JUMPDEST DUP4 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4C209B5FC8AD50758F13E2E1088BA56A560DFF690A1C6FEF26394F4C03821C4F PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0x847 SWAP2 SWAP1 PUSH2 0x2E26 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP3 PUSH2 0x862 DUP2 PUSH2 0x106F JUMP JUMPDEST DUP3 PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x8A7 JUMPI PUSH1 0x40 MLOAD PUSH32 0xC29F9DB300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x89E SWAP1 PUSH2 0x2E8D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x5 PUSH2 0x8B2 DUP7 PUSH2 0x1151 JUMP JUMPDEST DUP6 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x8C5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3065 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x3 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 SHL PUSH2 0x956 DUP2 PUSH2 0xE4E JUMP JUMPDEST PUSH2 0x95F DUP3 PUSH2 0x121F JUMP JUMPDEST PUSH32 0x309B29DED109B9E28FB9885757B3E0096EB75C51D23AA4635D68BCD569F6ADC1 PUSH1 0x5 DUP4 PUSH1 0x40 MLOAD PUSH2 0x991 SWAP3 SWAP2 SWAP1 PUSH2 0x313B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP2 PUSH1 0x5 SWAP1 DUP2 PUSH2 0x9A8 SWAP2 SWAP1 PUSH2 0x32FF JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SHL DUP2 JUMP JUMPDEST PUSH2 0x9C6 PUSH2 0x9BF PUSH2 0xD4E JUMP JUMPDEST DUP4 DUP4 PUSH2 0x1266 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x4 SLOAD SWAP1 POP PUSH2 0x9ED CALLER DUP3 PUSH1 0x1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x10B8 JUMP JUMPDEST DUP1 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC65A3F767206D2FDCEDE0B094A4840E01C0DD0BE1888B5BA800346EAA0123C16 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 PUSH1 0x1 DUP2 PUSH2 0xA3E SWAP2 SWAP1 PUSH2 0x3400 JUMP JUMPDEST PUSH1 0x4 DUP2 SWAP1 SSTORE POP POP JUMP JUMPDEST PUSH2 0xA50 DUP3 PUSH2 0x520 JUMP JUMPDEST PUSH2 0xA59 DUP2 PUSH2 0xE4E JUMP JUMPDEST PUSH2 0xA63 DUP4 DUP4 PUSH2 0xF54 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH1 0xFF AND SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB07 PUSH2 0xD4E JUMP JUMPDEST SWAP1 POP DUP1 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ ISZERO DUP1 ISZERO PUSH2 0xB4C JUMPI POP PUSH2 0xB4A DUP7 DUP3 PUSH2 0xA69 JUMP JUMPDEST ISZERO JUMPDEST ISZERO PUSH2 0xB90 JUMPI DUP1 DUP7 PUSH1 0x40 MLOAD PUSH32 0xE237D92200000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xB87 SWAP3 SWAP2 SWAP1 PUSH2 0x2D37 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xB9D DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x13D6 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 PUSH2 0xBAF DUP2 PUSH2 0x106F JUMP JUMPDEST DUP4 DUP4 CALLER PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0xC23 JUMPI DUP2 DUP2 PUSH1 0x40 MLOAD PUSH32 0x8626CC0300000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xC1A SWAP3 SWAP2 SWAP1 PUSH2 0x2DB8 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xC2F DUP7 DUP7 PUSH1 0x1 PUSH2 0x14E1 JUMP JUMPDEST DUP5 DUP7 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x49995E5DD6158CF69AD3E9777C46755A1A826A446C6416992167462DAD033B2A PUSH1 0x1 PUSH1 0x40 MLOAD PUSH2 0xC77 SWAP2 SWAP1 PUSH2 0x2E26 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCB3 DUP3 PUSH32 0x1FFC9A700000000000000000000000000000000000000000000000000000000 PUSH2 0x1588 JUMP JUMPDEST DUP1 ISZERO PUSH2 0xCCD JUMPI POP PUSH2 0xCCB DUP3 PUSH4 0xFFFFFFFF PUSH1 0xE0 SHL PUSH2 0x1588 JUMP JUMPDEST ISZERO JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x7965DB0B00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0xD47 JUMPI POP PUSH2 0xD46 DUP3 PUSH2 0x1627 JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 CALLER SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xDC8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xDBF SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0xE3A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xE31 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xE47 DUP6 DUP6 DUP6 DUP6 DUP6 PUSH2 0x1709 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0xE5F DUP2 PUSH2 0xE5A PUSH2 0xD4E JUMP JUMPDEST PUSH2 0x17BB JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE6E DUP4 DUP4 PUSH2 0x8DE JUMP JUMPDEST PUSH2 0xF49 JUMPI PUSH1 0x1 PUSH1 0x3 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 0xEE6 PUSH2 0xD4E 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 0xF4E JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF60 DUP4 DUP4 PUSH2 0x8DE JUMP JUMPDEST ISZERO PUSH2 0x103C JUMPI PUSH1 0x0 PUSH1 0x3 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 0xFD9 PUSH2 0xD4E 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 0x1041 JUMP JUMPDEST PUSH1 0x0 SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MUL PUSH1 0x20 DUP5 ADD ADD MLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MUL PUSH1 0x20 DUP5 ADD ADD MLOAD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x4 SLOAD DUP2 LT PUSH2 0x10B5 JUMPI DUP1 PUSH1 0x40 MLOAD PUSH32 0xC80A970C00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x10AC SWAP2 SWAP1 PUSH2 0x2200 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x112A JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1121 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1137 DUP6 DUP6 PUSH2 0x180C JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x1149 PUSH1 0x0 DUP8 DUP5 DUP5 DUP8 PUSH2 0x1709 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 PUSH2 0x1160 DUP5 PUSH2 0x183C JUMP JUMPDEST ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x117F JUMPI PUSH2 0x117E PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x11B1 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x1 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY DUP1 DUP3 ADD SWAP2 POP POP SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x20 ADD DUP3 ADD SWAP1 POP JUMPDEST PUSH1 0x1 ISZERO PUSH2 0x1214 JUMPI DUP1 DUP1 PUSH1 0x1 SWAP1 SUB SWAP2 POP POP PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DUP2 PUSH2 0x1208 JUMPI PUSH2 0x1207 PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP5 POP PUSH1 0x0 DUP6 SUB PUSH2 0x11BF JUMPI JUMPDEST DUP2 SWAP4 POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x1263 JUMPI PUSH1 0x40 MLOAD PUSH32 0x1897CF6600000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x125A SWAP1 PUSH2 0x34CA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x12D8 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0xCED3E10000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x12CF SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x0 DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x17307EAB39AB6107E8899845AD3D59BD9653F200F220920489CA2B5937696C31 DUP4 PUSH1 0x40 MLOAD PUSH2 0x13C9 SWAP2 SWAP1 PUSH2 0x22BB JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1448 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x143F SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x14BA JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x14B1 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x14C7 DUP6 DUP6 PUSH2 0x180C JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x14D8 DUP8 DUP8 DUP5 DUP5 DUP8 PUSH2 0x1709 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SUB PUSH2 0x1553 JUMPI PUSH1 0x0 PUSH1 0x40 MLOAD PUSH32 0x1A8351400000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x154A SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x1560 DUP5 DUP5 PUSH2 0x180C JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x1581 DUP6 PUSH1 0x0 DUP5 DUP5 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP PUSH2 0x1709 JUMP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x159C SWAP2 SWAP1 PUSH2 0x34F9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x20 PUSH1 0x0 DUP6 MLOAD PUSH1 0x20 DUP8 ADD DUP11 PUSH2 0x7530 STATICCALL SWAP3 POP RETURNDATASIZE SWAP2 POP PUSH1 0x0 MLOAD SWAP1 POP DUP3 DUP1 ISZERO PUSH2 0x160F JUMPI POP PUSH1 0x20 DUP3 LT ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x161B JUMPI POP PUSH1 0x0 DUP2 GT JUMPDEST SWAP5 POP POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xD9B67A2600000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ DUP1 PUSH2 0x16F2 JUMPI POP PUSH32 0xE89341C00000000000000000000000000000000000000000000000000000000 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP3 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ JUMPDEST DUP1 PUSH2 0x1702 JUMPI POP PUSH2 0x1701 DUP3 PUSH2 0x198F JUMP JUMPDEST JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1715 DUP6 DUP6 DUP6 DUP6 PUSH2 0x19F9 JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x17B4 JUMPI PUSH1 0x0 PUSH2 0x1753 PUSH2 0xD4E JUMP JUMPDEST SWAP1 POP PUSH1 0x1 DUP5 MLOAD SUB PUSH2 0x17A3 JUMPI PUSH1 0x0 PUSH2 0x1774 PUSH1 0x0 DUP7 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x178C PUSH1 0x0 DUP7 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH2 0x179C DUP4 DUP10 DUP10 DUP6 DUP6 DUP10 PUSH2 0x1DA1 JUMP JUMPDEST POP POP PUSH2 0x17B2 JUMP JUMPDEST PUSH2 0x17B1 DUP2 DUP8 DUP8 DUP8 DUP8 DUP8 PUSH2 0x1F55 JUMP JUMPDEST JUMPDEST POP JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH2 0x17C5 DUP3 DUP3 PUSH2 0x8DE JUMP JUMPDEST PUSH2 0x1808 JUMPI DUP1 DUP3 PUSH1 0x40 MLOAD PUSH32 0xE2517D3F00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x17FF SWAP3 SWAP2 SWAP1 PUSH2 0x3514 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1 DUP3 MSTORE DUP4 PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH1 0x1 DUP2 MSTORE DUP3 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP2 ADD PUSH1 0x40 MSTORE SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 SWAP1 POP PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 LT PUSH2 0x189A JUMPI PUSH27 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F010000000000000000 DUP4 DUP2 PUSH2 0x1890 JUMPI PUSH2 0x188F PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x40 DUP2 ADD SWAP1 POP JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0x18D7 JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DUP2 PUSH2 0x18CD JUMPI PUSH2 0x18CC PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x20 DUP2 ADD SWAP1 POP JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0x1906 JUMPI PUSH7 0x2386F26FC10000 DUP4 DUP2 PUSH2 0x18FC JUMPI PUSH2 0x18FB PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x10 DUP2 ADD SWAP1 POP JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0x192F JUMPI PUSH4 0x5F5E100 DUP4 DUP2 PUSH2 0x1925 JUMPI PUSH2 0x1924 PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x8 DUP2 ADD SWAP1 POP JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0x1954 JUMPI PUSH2 0x2710 DUP4 DUP2 PUSH2 0x194A JUMPI PUSH2 0x1949 PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x4 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0x1977 JUMPI PUSH1 0x64 DUP4 DUP2 PUSH2 0x196D JUMPI PUSH2 0x196C PUSH2 0x344F JUMP JUMPDEST JUMPDEST DIV SWAP3 POP PUSH1 0x2 DUP2 ADD SWAP1 POP JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0x1986 JUMPI PUSH1 0x1 DUP2 ADD SWAP1 POP JUMPDEST DUP1 SWAP2 POP 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 DUP1 MLOAD DUP3 MLOAD EQ PUSH2 0x1A43 JUMPI DUP2 MLOAD DUP2 MLOAD PUSH1 0x40 MLOAD PUSH32 0x5B05999100000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1A3A SWAP3 SWAP2 SWAP1 PUSH2 0x2D60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x1A4D PUSH2 0xD4E JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x1C5C JUMPI PUSH1 0x0 PUSH2 0x1A70 DUP3 DUP7 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1A87 DUP4 DUP7 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP9 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1BB4 JUMPI PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP11 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 SLOAD SWAP1 POP DUP2 DUP2 LT ISZERO PUSH2 0x1B5C JUMPI DUP9 DUP2 DUP4 DUP6 PUSH1 0x40 MLOAD PUSH32 0x3DEE4C500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1B53 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x353D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 DUP2 SUB PUSH1 0x0 DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP12 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 DUP2 SWAP1 SSTORE POP POP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EQ PUSH2 0x1C4F JUMPI DUP1 PUSH1 0x0 DUP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP10 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x1C47 SWAP2 SWAP1 PUSH2 0x3400 JUMP JUMPDEST SWAP3 POP POP DUP2 SWAP1 SSTORE POP JUMPDEST POP POP DUP1 PUSH1 0x1 ADD SWAP1 POP PUSH2 0x1A52 JUMP JUMPDEST POP PUSH1 0x1 DUP4 MLOAD SUB PUSH2 0x1D1B JUMPI PUSH1 0x0 PUSH2 0x1C7C PUSH1 0x0 DUP6 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1C94 PUSH1 0x0 DUP6 PUSH2 0x105B SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP8 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0xC3D58168C5AE7397731D063D5BBF3D657854427343F4C083240F7AACAA2D0F62 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x1D0C SWAP3 SWAP2 SWAP1 PUSH2 0x2D60 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 POP POP PUSH2 0x1D9A JUMP JUMPDEST DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP6 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP3 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH32 0x4A39DC06D4C0DBC64B70AF90FD698A233A518AA5D07E595D983B8C0526C8F7FB DUP7 DUP7 PUSH1 0x40 MLOAD PUSH2 0x1D91 SWAP3 SWAP2 SWAP1 PUSH2 0x3582 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG4 JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x1F4D JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xF23A6E61 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1E02 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x360E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1E3E JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1E3B SWAP2 SWAP1 PUSH2 0x367D JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x1EC2 JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1E6E JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1E73 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x1EBA JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1EB1 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0xF23A6E61 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x1F4B JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1F42 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND EXTCODESIZE GT ISZERO PUSH2 0x2101 JUMPI DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH4 0xBC197C81 DUP8 DUP8 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD DUP7 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1FB6 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x36AA JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL SWAP3 POP POP POP DUP1 ISZERO PUSH2 0x1FF2 JUMPI POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1FEF SWAP2 SWAP1 PUSH2 0x367D JUMP JUMPDEST PUSH1 0x1 JUMPDEST PUSH2 0x2076 JUMPI RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x2022 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x2027 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP PUSH1 0x0 DUP2 MLOAD SUB PUSH2 0x206E JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2065 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 MLOAD DUP2 PUSH1 0x20 ADD REVERT JUMPDEST PUSH4 0xBC197C81 PUSH1 0xE0 SHL PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND DUP2 PUSH28 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF NOT AND EQ PUSH2 0x20FF JUMPI DUP5 PUSH1 0x40 MLOAD PUSH32 0x57F447CE00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x20F6 SWAP2 SWAP1 PUSH2 0x3434 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2148 DUP3 PUSH2 0x211D JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2158 DUP2 PUSH2 0x213D JUMP JUMPDEST DUP2 EQ PUSH2 0x2163 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2175 DUP2 PUSH2 0x214F JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x218E DUP2 PUSH2 0x217B JUMP JUMPDEST DUP2 EQ PUSH2 0x2199 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x21AB DUP2 PUSH2 0x2185 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x21C8 JUMPI PUSH2 0x21C7 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x21D6 DUP6 DUP3 DUP7 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x21E7 DUP6 DUP3 DUP7 ADD PUSH2 0x219C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x21FA DUP2 PUSH2 0x217B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2215 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x21F1 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0xFFFFFFFF00000000000000000000000000000000000000000000000000000000 DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2250 DUP2 PUSH2 0x221B JUMP JUMPDEST DUP2 EQ PUSH2 0x225B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x226D DUP2 PUSH2 0x2247 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2289 JUMPI PUSH2 0x2288 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2297 DUP5 DUP3 DUP6 ADD PUSH2 0x225E JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 ISZERO ISZERO SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x22B5 DUP2 PUSH2 0x22A0 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x22D0 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x22AC JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x22EC JUMPI PUSH2 0x22EB PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x22FA DUP5 DUP3 DUP6 ADD PUSH2 0x219C JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x233D JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2322 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP5 ADD MSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2365 DUP3 PUSH2 0x2303 JUMP JUMPDEST PUSH2 0x236F DUP2 DUP6 PUSH2 0x230E JUMP JUMPDEST SWAP4 POP PUSH2 0x237F DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x231F JUMP JUMPDEST PUSH2 0x2388 DUP2 PUSH2 0x2349 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 0x23AD DUP2 DUP5 PUSH2 0x235A JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x23C8 DUP2 PUSH2 0x23B5 JUMP JUMPDEST DUP2 EQ PUSH2 0x23D3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x23E5 DUP2 PUSH2 0x23BF JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2401 JUMPI PUSH2 0x2400 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x240F DUP5 DUP3 DUP6 ADD PUSH2 0x23D6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2421 DUP2 PUSH2 0x23B5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x243C PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2418 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH2 0x247F DUP3 PUSH2 0x2349 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x249E JUMPI PUSH2 0x249D PUSH2 0x2447 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x24B1 PUSH2 0x2109 JUMP JUMPDEST SWAP1 POP PUSH2 0x24BD DUP3 DUP3 PUSH2 0x2476 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x24DD JUMPI PUSH2 0x24DC PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x2506 PUSH2 0x2501 DUP5 PUSH2 0x24C2 JUMP JUMPDEST PUSH2 0x24A7 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 0x2529 JUMPI PUSH2 0x2528 PUSH2 0x24EE JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2552 JUMPI DUP1 PUSH2 0x253E DUP9 DUP3 PUSH2 0x219C JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x252B JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2571 JUMPI PUSH2 0x2570 PUSH2 0x2442 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2581 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x24F3 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x25AA JUMPI PUSH2 0x25A9 PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH2 0x25B3 DUP3 PUSH2 0x2349 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 0x25E2 PUSH2 0x25DD DUP5 PUSH2 0x258F JUMP JUMPDEST PUSH2 0x24A7 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x25FE JUMPI PUSH2 0x25FD PUSH2 0x258A JUMP JUMPDEST JUMPDEST PUSH2 0x2609 DUP5 DUP3 DUP6 PUSH2 0x25C0 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2626 JUMPI PUSH2 0x2625 PUSH2 0x2442 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2636 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x25CF JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x265B JUMPI PUSH2 0x265A PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2669 DUP9 DUP3 DUP10 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x267A DUP9 DUP3 DUP10 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x269B JUMPI PUSH2 0x269A PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x26A7 DUP9 DUP3 DUP10 ADD PUSH2 0x255C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x26C8 JUMPI PUSH2 0x26C7 PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x26D4 DUP9 DUP3 DUP10 ADD PUSH2 0x255C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x26F5 JUMPI PUSH2 0x26F4 PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x2701 DUP9 DUP3 DUP10 ADD PUSH2 0x2611 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2725 JUMPI PUSH2 0x2724 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2733 DUP6 DUP3 DUP7 ADD PUSH2 0x23D6 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2744 DUP6 DUP3 DUP7 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2769 JUMPI PUSH2 0x2768 PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x278D PUSH2 0x2788 DUP5 PUSH2 0x274E JUMP JUMPDEST PUSH2 0x24A7 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 0x27B0 JUMPI PUSH2 0x27AF PUSH2 0x24EE JUMP JUMPDEST JUMPDEST DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x27D9 JUMPI DUP1 PUSH2 0x27C5 DUP9 DUP3 PUSH2 0x2166 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x27B2 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x27F8 JUMPI PUSH2 0x27F7 PUSH2 0x2442 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2808 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x277A JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2828 JUMPI PUSH2 0x2827 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2846 JUMPI PUSH2 0x2845 PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x2852 DUP6 DUP3 DUP7 ADD PUSH2 0x27E3 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2873 JUMPI PUSH2 0x2872 PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x287F DUP6 DUP3 DUP7 ADD PUSH2 0x255C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x28BE DUP2 PUSH2 0x217B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x28D0 DUP4 DUP4 PUSH2 0x28B5 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 0x28F4 DUP3 PUSH2 0x2889 JUMP JUMPDEST PUSH2 0x28FE DUP2 DUP6 PUSH2 0x2894 JUMP JUMPDEST SWAP4 POP PUSH2 0x2909 DUP4 PUSH2 0x28A5 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x293A JUMPI DUP2 MLOAD PUSH2 0x2921 DUP9 DUP3 PUSH2 0x28C4 JUMP JUMPDEST SWAP8 POP PUSH2 0x292C DUP4 PUSH2 0x28DC JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x290D JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2961 DUP2 DUP5 PUSH2 0x28E9 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2983 JUMPI PUSH2 0x2982 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2991 DUP8 DUP3 DUP9 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x20 PUSH2 0x29A2 DUP8 DUP3 DUP9 ADD PUSH2 0x219C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 PUSH2 0x29B3 DUP8 DUP3 DUP9 ADD PUSH2 0x219C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x60 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x29D4 JUMPI PUSH2 0x29D3 PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x29E0 DUP8 DUP3 DUP9 ADD PUSH2 0x2611 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x2A07 JUMPI PUSH2 0x2A06 PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH2 0x2A10 DUP3 PUSH2 0x2349 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A30 PUSH2 0x2A2B DUP5 PUSH2 0x29EC JUMP JUMPDEST PUSH2 0x24A7 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x2A4C JUMPI PUSH2 0x2A4B PUSH2 0x258A JUMP JUMPDEST JUMPDEST PUSH2 0x2A57 DUP5 DUP3 DUP6 PUSH2 0x25C0 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2A74 JUMPI PUSH2 0x2A73 PUSH2 0x2442 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x2A84 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x2A1D JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2AA4 JUMPI PUSH2 0x2AA3 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2AB2 DUP6 DUP3 DUP7 ADD PUSH2 0x219C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2AD3 JUMPI PUSH2 0x2AD2 PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x2ADF DUP6 DUP3 DUP7 ADD PUSH2 0x2A5F JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AFF JUMPI PUSH2 0x2AFE PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2B1D JUMPI PUSH2 0x2B1C PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x2B29 DUP5 DUP3 DUP6 ADD PUSH2 0x2A5F JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2B3B DUP2 PUSH2 0x22A0 JUMP JUMPDEST DUP2 EQ PUSH2 0x2B46 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x2B58 DUP2 PUSH2 0x2B32 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2B75 JUMPI PUSH2 0x2B74 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2B83 DUP6 DUP3 DUP7 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2B94 DUP6 DUP3 DUP7 ADD PUSH2 0x2B49 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2BB5 JUMPI PUSH2 0x2BB4 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2BC3 DUP6 DUP3 DUP7 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x20 PUSH2 0x2BD4 DUP6 DUP3 DUP7 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x2BFA JUMPI PUSH2 0x2BF9 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2C08 DUP9 DUP3 DUP10 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP6 POP POP PUSH1 0x20 PUSH2 0x2C19 DUP9 DUP3 DUP10 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP5 POP POP PUSH1 0x40 PUSH2 0x2C2A DUP9 DUP3 DUP10 ADD PUSH2 0x219C JUMP JUMPDEST SWAP4 POP POP PUSH1 0x60 PUSH2 0x2C3B DUP9 DUP3 DUP10 ADD PUSH2 0x219C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2C5C JUMPI PUSH2 0x2C5B PUSH2 0x2118 JUMP JUMPDEST JUMPDEST PUSH2 0x2C68 DUP9 DUP3 DUP10 ADD PUSH2 0x2611 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2C8E JUMPI PUSH2 0x2C8D PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x2C9C DUP7 DUP3 DUP8 ADD PUSH2 0x2166 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 PUSH2 0x2CAD DUP7 DUP3 DUP8 ADD PUSH2 0x219C JUMP JUMPDEST SWAP3 POP POP PUSH1 0x40 PUSH2 0x2CBE DUP7 DUP3 DUP8 ADD PUSH2 0x219C JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 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 0x2D0F JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x2D22 JUMPI PUSH2 0x2D21 PUSH2 0x2CC8 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2D31 DUP2 PUSH2 0x213D JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2D4C PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x2D59 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2D28 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2D75 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x21F1 JUMP JUMPDEST PUSH2 0x2D82 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x21F1 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x2DCD PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x2DDA PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x21F1 JUMP JUMPDEST 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 0x2E10 PUSH2 0x2E0B PUSH2 0x2E06 DUP5 PUSH2 0x2DE1 JUMP JUMPDEST PUSH2 0x2DEB JUMP JUMPDEST PUSH2 0x217B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x2E20 DUP2 PUSH2 0x2DF5 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x2E3B PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2E17 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4163636F756E742063616E6E6F7420626520656D707479000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2E77 PUSH1 0x17 DUP4 PUSH2 0x230E JUMP JUMPDEST SWAP2 POP PUSH2 0x2E82 DUP3 PUSH2 0x2E41 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x2EA6 DUP2 PUSH2 0x2E6A JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP DUP2 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x2EDA DUP2 PUSH2 0x2CF7 JUMP JUMPDEST PUSH2 0x2EE4 DUP2 DUP7 PUSH2 0x2EAD JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0x2EFF JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x2F14 JUMPI PUSH2 0x2F47 JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE DUP2 ISZERO ISZERO DUP3 MUL DUP7 ADD SWAP4 POP PUSH2 0x2F47 JUMP JUMPDEST PUSH2 0x2F1D DUP6 PUSH2 0x2EB8 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2F3F JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x2F20 JUMP JUMPDEST DUP4 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x2F6170692F76312F6E66742F0000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2F86 PUSH1 0xC DUP4 PUSH2 0x2EAD JUMP JUMPDEST SWAP2 POP PUSH2 0x2F91 DUP3 PUSH2 0x2F50 JUMP JUMPDEST PUSH1 0xC DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FA7 DUP3 PUSH2 0x2303 JUMP JUMPDEST PUSH2 0x2FB1 DUP2 DUP6 PUSH2 0x2EAD JUMP JUMPDEST SWAP4 POP PUSH2 0x2FC1 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x231F JUMP JUMPDEST DUP1 DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x2F00000000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3003 PUSH1 0x1 DUP4 PUSH2 0x2EAD JUMP JUMPDEST SWAP2 POP PUSH2 0x300E DUP3 PUSH2 0x2FCD JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x2F72657075746174696F6E2D73636F7265000000000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x304F PUSH1 0x11 DUP4 PUSH2 0x2EAD JUMP JUMPDEST SWAP2 POP PUSH2 0x305A DUP3 PUSH2 0x3019 JUMP JUMPDEST PUSH1 0x11 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3071 DUP3 DUP7 PUSH2 0x2ECD JUMP JUMPDEST SWAP2 POP PUSH2 0x307C DUP3 PUSH2 0x2F79 JUMP JUMPDEST SWAP2 POP PUSH2 0x3088 DUP3 DUP6 PUSH2 0x2F9C JUMP JUMPDEST SWAP2 POP PUSH2 0x3093 DUP3 PUSH2 0x2FF6 JUMP JUMPDEST SWAP2 POP PUSH2 0x309F DUP3 DUP5 PUSH2 0x2F9C JUMP JUMPDEST SWAP2 POP PUSH2 0x30AA DUP3 PUSH2 0x3042 JUMP JUMPDEST SWAP2 POP DUP2 SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SLOAD PUSH2 0x30C4 DUP2 PUSH2 0x2CF7 JUMP JUMPDEST PUSH2 0x30CE DUP2 DUP7 PUSH2 0x230E JUMP JUMPDEST SWAP5 POP PUSH1 0x1 DUP3 AND PUSH1 0x0 DUP2 EQ PUSH2 0x30E9 JUMPI PUSH1 0x1 DUP2 EQ PUSH2 0x30FF JUMPI PUSH2 0x3132 JUMP JUMPDEST PUSH1 0xFF NOT DUP4 AND DUP7 MSTORE DUP2 ISZERO ISZERO PUSH1 0x20 MUL DUP7 ADD SWAP4 POP PUSH2 0x3132 JUMP JUMPDEST PUSH2 0x3108 DUP6 PUSH2 0x2EB8 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x312A JUMPI DUP2 SLOAD DUP2 DUP10 ADD MSTORE PUSH1 0x1 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x310B JUMP JUMPDEST DUP1 DUP9 ADD SWAP6 POP POP POP JUMPDEST POP 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 0x3155 DUP2 DUP6 PUSH2 0x30B7 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x3169 DUP2 DUP5 PUSH2 0x235A JUMP JUMPDEST SWAP1 POP SWAP4 SWAP3 POP POP 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 0x31BF PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 PUSH2 0x3182 JUMP JUMPDEST PUSH2 0x31C9 DUP7 DUP4 PUSH2 0x3182 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 0x31FC PUSH2 0x31F7 PUSH2 0x31F2 DUP5 PUSH2 0x217B JUMP JUMPDEST PUSH2 0x2DEB JUMP JUMPDEST PUSH2 0x217B JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x3216 DUP4 PUSH2 0x31E1 JUMP JUMPDEST PUSH2 0x322A PUSH2 0x3222 DUP3 PUSH2 0x3203 JUMP JUMPDEST DUP5 DUP5 SLOAD PUSH2 0x318F JUMP JUMPDEST DUP3 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH2 0x323F PUSH2 0x3232 JUMP JUMPDEST PUSH2 0x324A DUP2 DUP5 DUP5 PUSH2 0x320D JUMP JUMPDEST POP POP POP JUMP JUMPDEST JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x326E JUMPI PUSH2 0x3263 PUSH1 0x0 DUP3 PUSH2 0x3237 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x3250 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x32B3 JUMPI PUSH2 0x3284 DUP2 PUSH2 0x2EB8 JUMP JUMPDEST PUSH2 0x328D DUP5 PUSH2 0x3172 JUMP JUMPDEST DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x329C JUMPI DUP2 SWAP1 POP JUMPDEST PUSH2 0x32B0 PUSH2 0x32A8 DUP6 PUSH2 0x3172 JUMP JUMPDEST DUP4 ADD DUP3 PUSH2 0x324F 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 0x32D6 PUSH1 0x0 NOT DUP5 PUSH1 0x8 MUL PUSH2 0x32B8 JUMP JUMPDEST NOT DUP1 DUP4 AND SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x32EF DUP4 DUP4 PUSH2 0x32C5 JUMP JUMPDEST SWAP2 POP DUP3 PUSH1 0x2 MUL DUP3 OR SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x3308 DUP3 PUSH2 0x2303 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3321 JUMPI PUSH2 0x3320 PUSH2 0x2447 JUMP JUMPDEST JUMPDEST PUSH2 0x332B DUP3 SLOAD PUSH2 0x2CF7 JUMP JUMPDEST PUSH2 0x3336 DUP3 DUP3 DUP6 PUSH2 0x3272 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 SWAP1 POP PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH2 0x3369 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH2 0x3357 JUMPI DUP3 DUP8 ADD MLOAD SWAP1 POP JUMPDEST PUSH2 0x3361 DUP6 DUP3 PUSH2 0x32E3 JUMP JUMPDEST DUP7 SSTORE POP PUSH2 0x33C9 JUMP JUMPDEST PUSH1 0x1F NOT DUP5 AND PUSH2 0x3377 DUP7 PUSH2 0x2EB8 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x339F 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 0x337A JUMP JUMPDEST DUP7 DUP4 LT ISZERO PUSH2 0x33BC JUMPI DUP5 DUP10 ADD MLOAD PUSH2 0x33B8 PUSH1 0x1F DUP10 AND DUP3 PUSH2 0x32C5 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 PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x340B DUP3 PUSH2 0x217B JUMP JUMPDEST SWAP2 POP PUSH2 0x3416 DUP4 PUSH2 0x217B JUMP JUMPDEST SWAP3 POP DUP3 DUP3 ADD SWAP1 POP DUP1 DUP3 GT ISZERO PUSH2 0x342E JUMPI PUSH2 0x342D PUSH2 0x33D1 JUMP JUMPDEST JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x3449 PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x2D28 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x5552492063616E6E6F7420626520656D70747900000000000000000000000000 PUSH1 0x0 DUP3 ADD MSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x34B4 PUSH1 0x13 DUP4 PUSH2 0x230E JUMP JUMPDEST SWAP2 POP PUSH2 0x34BF DUP3 PUSH2 0x347E JUMP JUMPDEST PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x34E3 DUP2 PUSH2 0x34A7 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x34F3 DUP2 PUSH2 0x221B JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x350E PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x34EA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x3529 PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x3536 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x2418 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 ADD SWAP1 POP PUSH2 0x3552 PUSH1 0x0 DUP4 ADD DUP8 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x355F PUSH1 0x20 DUP4 ADD DUP7 PUSH2 0x21F1 JUMP JUMPDEST PUSH2 0x356C PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x21F1 JUMP JUMPDEST PUSH2 0x3579 PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0x21F1 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x359C DUP2 DUP6 PUSH2 0x28E9 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x35B0 DUP2 DUP5 PUSH2 0x28E9 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 0x35E0 DUP3 PUSH2 0x35B9 JUMP JUMPDEST PUSH2 0x35EA DUP2 DUP6 PUSH2 0x35C4 JUMP JUMPDEST SWAP4 POP PUSH2 0x35FA DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x231F JUMP JUMPDEST PUSH2 0x3603 DUP2 PUSH2 0x2349 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x3623 PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x3630 PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x363D PUSH1 0x40 DUP4 ADD DUP7 PUSH2 0x21F1 JUMP JUMPDEST PUSH2 0x364A PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0x21F1 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x365C DUP2 DUP5 PUSH2 0x35D5 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP PUSH2 0x3677 DUP2 PUSH2 0x2247 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3693 JUMPI PUSH2 0x3692 PUSH2 0x2113 JUMP JUMPDEST JUMPDEST PUSH1 0x0 PUSH2 0x36A1 DUP5 DUP3 DUP6 ADD PUSH2 0x3668 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 ADD SWAP1 POP PUSH2 0x36BF PUSH1 0x0 DUP4 ADD DUP9 PUSH2 0x2D28 JUMP JUMPDEST PUSH2 0x36CC PUSH1 0x20 DUP4 ADD DUP8 PUSH2 0x2D28 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x40 DUP4 ADD MSTORE PUSH2 0x36DE DUP2 DUP7 PUSH2 0x28E9 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x36F2 DUP2 DUP6 PUSH2 0x28E9 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 SUB PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x3706 DUP2 DUP5 PUSH2 0x35D5 JUMP JUMPDEST SWAP1 POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x24 0xE SWAP11 PUSH30 0xAAB5D9EBA2793E75F4BBF0E9A74F133868AC14D5E9561767BB722E826473 PUSH16 0x6C634300081A00330000000000000000 ", + "sourceMap": "336:2840:16:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2247:132:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2368:263:16;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2084:103:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3810:120:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4014:429:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4226:136:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5328:245;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2536:552:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1468:80:16;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1762:350;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2845:329;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2854:136:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2637:202:16;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2187:49:0;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3156:144:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1554:202:16;;;:::i;:::-;;4642:138:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3367:157:3;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3591:351;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2118:244:16;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2247:132:3;2324:7;2350:9;:13;2360:2;2350:13;;;;;;;;;;;:22;2364:7;2350:22;;;;;;;;;;;;;;;;2343:29;;2247:132;;;;:::o;2368:263:16:-;2483:4;2503:30;2511:4;2503:28;;;:30::i;:::-;2499:104;;;2556:36;2580:11;2556:23;:36::i;:::-;2549:43;;;;2499:104;2619:5;2612:12;;2368:263;;;;:::o;2084:103:3:-;2144:13;2176:4;2169:11;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2084:103;;;:::o;3810:120:0:-;3875:7;3901:6;:12;3908:4;3901:12;;;;;;;;;;;:22;;;3894:29;;3810:120;;;:::o;4014:429:3:-;4208:14;4225:12;:10;:12::i;:::-;4208:29;;4259:6;4251:14;;:4;:14;;;;:49;;;;;4270:30;4287:4;4293:6;4270:16;:30::i;:::-;4269:31;4251:49;4247:129;;;4352:6;4360:4;4323:42;;;;;;;;;;;;:::i;:::-;;;;;;;;4247:129;4385:51;4408:4;4414:2;4418:3;4423:6;4431:4;4385:22;:51::i;:::-;4198:245;4014:429;;;;;:::o;4226:136:0:-;4300:18;4313:4;4300:12;:18::i;:::-;2464:16;2475:4;2464:10;:16::i;:::-;4330:25:::1;4341:4;4347:7;4330:10;:25::i;:::-;;4226:136:::0;;;:::o;5328:245::-;5443:12;:10;:12::i;:::-;5421:34;;:18;:34;;;5417:102;;5478:30;;;;;;;;;;;;;;5417:102;5529:37;5541:4;5547:18;5529:11;:37::i;:::-;;5328:245;;:::o;2536:552:3:-;2660:16;2711:3;:10;2692:8;:15;:29;2688:121;;2770:3;:10;2782:8;:15;2744:54;;;;;;;;;;;;:::i;:::-;;;;;;;;2688:121;2819:30;2866:8;:15;2852:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2819:63;;2898:9;2893:158;2917:8;:15;2913:1;:19;2893:158;;;2972:68;2982:30;3010:1;2982:8;:27;;:30;;;;:::i;:::-;3014:25;3037:1;3014:3;:22;;:25;;;;:::i;:::-;2972:9;:68::i;:::-;2953:13;2967:1;2953:16;;;;;;;;:::i;:::-;;;;;;;:87;;;;;2934:3;;;;;2893:158;;;;3068:13;3061:20;;;2536:552;;;;:::o;1468:80:16:-;1510:4;1533:8;;1526:15;;1468:80;:::o;1762:350::-;1908:7;1053:22;1067:7;1053:13;:22::i;:::-;1962:1:::1;1931:27;1941:7;1950;1931:9;:27::i;:::-;:32;1927:97;;1996:7;2005;1986:27;;;;;;;;;;;;:::i;:::-;;;;;;;;1927:97;2033:32;2039:7;2048;2057:1;2060:4;2033:5;:32::i;:::-;2094:7;2085;2080:25;;;2103:1;2080:25;;;;;;:::i;:::-;;;;;;;;1762:350:::0;;;;;:::o;2845:329::-;2985:13;2942:7;1053:22;1067:7;1053:13;:22::i;:::-;2967:7:::1;1361:1;1342:7;1336:21;:26:::0;1332:113:::1;;1385:49;;;;;;;;;;:::i;:::-;;;;;;;;1332:113;3070:9:::2;3095:25;3112:7;3095:16;:25::i;:::-;3125:7;3053:100;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3010:157;;1085:1:::1;2845:329:::0;;;;;:::o;2854:136:0:-;2931:4;2954:6;:12;2961:4;2954:12;;;;;;;;;;;:20;;:29;2975:7;2954:29;;;;;;;;;;;;;;;;;;;;;;;;;2947:36;;2854:136;;;;:::o;2637:202:16:-;2232:4:0;2700:18:16;;2464:16:0;2475:4;2464:10;:16::i;:::-;2730:26:16::1;2749:6;2730:18;:26::i;:::-;2771:33;2786:9;2797:6;2771:33;;;;;;;:::i;:::-;;;;;;;;2826:6;2814:9;:18;;;;;;:::i;:::-;;2637:202:::0;;:::o;2187:49:0:-;2232:4;2187:49;;;:::o;3156:144:3:-;3241:52;3260:12;:10;:12::i;:::-;3274:8;3284;3241:18;:52::i;:::-;3156:144;;:::o;1554:202:16:-;1590:17;1610:8;;1590:28;;1628:38;1634:10;1646:12;1660:1;1628:38;;;;;;;;;;;;:5;:38::i;:::-;1699:12;1687:10;1681:31;;;;;;;;;;;;1748:1;1733:12;:16;;;;:::i;:::-;1722:8;:27;;;;1580:176;1554:202::o;4642:138:0:-;4717:18;4730:4;4717:12;:18::i;:::-;2464:16;2475:4;2464:10;:16::i;:::-;4747:26:::1;4759:4;4765:7;4747:11;:26::i;:::-;;4642:138:::0;;;:::o;3367:157:3:-;3457:4;3480:18;:27;3499:7;3480:27;;;;;;;;;;;;;;;:37;3508:8;3480:37;;;;;;;;;;;;;;;;;;;;;;;;;3473:44;;3367:157;;;;:::o;3591:351::-;3714:14;3731:12;:10;:12::i;:::-;3714:29;;3765:6;3757:14;;:4;:14;;;;:49;;;;;3776:30;3793:4;3799:6;3776:16;:30::i;:::-;3775:31;3757:49;3753:129;;;3858:6;3866:4;3829:42;;;;;;;;;;;;:::i;:::-;;;;;;;;3753:129;3891:44;3909:4;3915:2;3919;3923:5;3930:4;3891:17;:44::i;:::-;3704:238;3591:351;;;;;:::o;2118:244:16:-;2237:7;1053:22;1067:7;1053:13;:22::i;:::-;2261:7:::1;2270;1179:10;1168:21;;:7;:21;;;1164:87;;1223:7;1232;1212:28;;;;;;;;;;;;:::i;:::-;;;;;;;;1164:87;2289:26:::2;2295:7;2304;2313:1;2289:5;:26::i;:::-;2344:7;2335;2330:25;;;2353:1;2330:25;;;;;;:::i;:::-;;;;;;;;1085:1:::1;;2118:244:::0;;;;:::o;719:426:12:-;783:4;990:68;1023:7;1032:25;990:32;:68::i;:::-;:148;;;;;1075:63;1108:7;614:10;1117:20;;1075:32;:63::i;:::-;1074:64;990:148;971:167;;719:426;;;:::o;2565:202:0:-;2650:4;2688:32;2673:47;;;:11;:47;;;;:87;;;;2724:36;2748:11;2724:23;:36::i;:::-;2673:87;2666:94;;2565:202;;;:::o;656:96:8:-;709:7;735:10;728:17;;656:96;:::o;9015:445:3:-;9222:1;9208:16;;:2;:16;;;9204:88;;9278:1;9247:34;;;;;;;;;;;:::i;:::-;;;;;;;;9204:88;9321:1;9305:18;;:4;:18;;;9301:88;;9375:1;9346:32;;;;;;;;;;;:::i;:::-;;;;;;;;9301:88;9398:55;9425:4;9431:2;9435:3;9440:6;9448:4;9398:26;:55::i;:::-;9015:445;;;;;:::o;3199:103:0:-;3265:30;3276:4;3282:12;:10;:12::i;:::-;3265:10;:30::i;:::-;3199:103;:::o;6179:316::-;6256:4;6277:22;6285:4;6291:7;6277;:22::i;:::-;6272:217;;6347:4;6315:6;:12;6322:4;6315:12;;;;;;;;;;;:20;;:29;6336:7;6315:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;6397:12;:10;:12::i;:::-;6370:40;;6388:7;6370:40;;6382:4;6370:40;;;;;;;;;;6431:4;6424:11;;;;6272:217;6473:5;6466:12;;6179:316;;;;;:::o;6730:317::-;6808:4;6828:22;6836:4;6842:7;6828;:22::i;:::-;6824:217;;;6898:5;6866:6;:12;6873:4;6866:12;;;;;;;;;;;:20;;:29;6887:7;6866:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;6949:12;:10;:12::i;:::-;6922:40;;6940:7;6922:40;;6934:4;6922:40;;;;;;;;;;6983:4;6976:11;;;;6824:217;7025:5;7018:12;;6730:317;;;;;:::o;4603:197:7:-;4689:11;4777:4;4772:3;4768:14;4761:4;4756:3;4752:14;4748:35;4742:42;4735:49;;4603:197;;;;:::o;4204:::-;4290:11;4378:4;4373:3;4369:14;4362:4;4357:3;4353:14;4349:35;4343:42;4336:49;;4204:197;;;;:::o;681:140:16:-;756:8;;745:7;:19;741:74;;796:7;787:17;;;;;;;;;;;:::i;:::-;;;;;;;;741:74;681:140;:::o;10746:346:3:-;10856:1;10842:16;;:2;:16;;;10838:88;;10912:1;10881:34;;;;;;;;;;;:::i;:::-;;;;;;;;10838:88;10936:20;10958:23;10985:29;11004:2;11008:5;10985:18;:29::i;:::-;10935:79;;;;11024:61;11059:1;11063:2;11067:3;11072:6;11080:4;11024:26;:61::i;:::-;10828:264;;10746:346;;;;:::o;637:698:10:-;693:13;742:14;779:1;759:17;770:5;759:10;:17::i;:::-;:21;742:38;;794:20;828:6;817:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;794:41;;849:11;975:6;971:2;967:15;959:6;955:28;948:35;;1010:282;1017:4;1010:282;;;1041:5;;;;;;;;1180:10;1175:2;1168:5;1164:14;1159:32;1154:3;1146:46;1236:2;1227:11;;;;;;:::i;:::-;;;;;1269:1;1260:5;:10;1010:282;1256:21;1010:282;1312:6;1305:13;;;;;637:698;;;:::o;827:174:16:-;929:1;911:6;905:20;:25;901:94;;953:31;;;;;;;;;;:::i;:::-;;;;;;;;901:94;827:174;:::o;13268:315:3:-;13395:1;13375:22;;:8;:22;;;13371:94;;13451:1;13420:34;;;;;;;;;;;:::i;:::-;;;;;;;;13371:94;13512:8;13474:18;:25;13493:5;13474:25;;;;;;;;;;;;;;;:35;13500:8;13474:35;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;13557:8;13535:41;;13550:5;13535:41;;;13567:8;13535:41;;;;;;:::i;:::-;;;;;;;;13268:315;;;:::o;8151:463::-;8287:1;8273:16;;:2;:16;;;8269:88;;8343:1;8312:34;;;;;;;;;;;:::i;:::-;;;;;;;;8269:88;8386:1;8370:18;;:4;:18;;;8366:88;;8440:1;8411:32;;;;;;;;;;;:::i;:::-;;;;;;;;8366:88;8464:20;8486:23;8513:29;8532:2;8536:5;8513:18;:29::i;:::-;8463:79;;;;8552:55;8579:4;8585:2;8589:3;8594:6;8602:4;8552:26;:55::i;:::-;8259:355;;8151:463;;;;;:::o;12099:329::-;12194:1;12178:18;;:4;:18;;;12174:88;;12248:1;12219:32;;;;;;;;;;;:::i;:::-;;;;;;;;12174:88;12272:20;12294:23;12321:29;12340:2;12344:5;12321:18;:29::i;:::-;12271:79;;;;12360:61;12387:4;12401:1;12405:3;12410:6;12360:61;;;;;;;;;;;;:26;:61::i;:::-;12164:264;;12099:329;;;:::o;4397:632:12:-;4499:4;4539:26;4611:11;4568:56;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4539:85;;4666:12;4688:18;4716:19;4860:4;4854;4838:13;4832:20;4825:4;4810:13;4806:24;4797:7;4790:5;4779:86;4768:97;;4892:16;4878:30;;4942:4;4936:11;4921:26;;4974:7;:29;;;;;4999:4;4985:10;:18;;4974:29;:48;;;;;5021:1;5007:11;:15;4974:48;4967:55;;;;;;4397:632;;;;:::o;1380:305:3:-;1482:4;1532:26;1517:41;;;:11;:41;;;;:109;;;;1589:37;1574:52;;;:11;:52;;;;1517:109;:161;;;;1642:36;1666:11;1642:23;:36::i;:::-;1517:161;1498:180;;1380:305;;;:::o;7004:690::-;7205:30;7213:4;7219:2;7223:3;7228:6;7205:7;:30::i;:::-;7263:1;7249:16;;:2;:16;;;7245:443;;7281:16;7300:12;:10;:12::i;:::-;7281:31;;7344:1;7330:3;:10;:15;7326:352;;7365:10;7378:25;7401:1;7378:3;:22;;:25;;;;:::i;:::-;7365:38;;7421:13;7437:28;7463:1;7437:6;:25;;:28;;;;:::i;:::-;7421:44;;7483:67;7514:8;7524:4;7530:2;7534;7538:5;7545:4;7483:30;:67::i;:::-;7347:218;;7326:352;;;7589:74;7625:8;7635:4;7641:2;7645:3;7650:6;7658:4;7589:35;:74::i;:::-;7326:352;7267:421;7245:443;7004:690;;;;;:::o;3432:197:0:-;3520:22;3528:4;3534:7;3520;:22::i;:::-;3515:108;;3598:7;3607:4;3565:47;;;;;;;;;;;;:::i;:::-;;;;;;;;3515:108;3432:197;;:::o;16080:849:3:-;16188:23;16213;16374:4;16368:11;16358:21;;16444:1;16436:6;16429:17;16582:8;16575:4;16567:6;16563:17;16556:35;16704:4;16696:6;16692:17;16682:27;;16737:1;16729:6;16722:17;16778:8;16771:4;16763:6;16759:17;16752:35;16907:4;16899:6;16895:17;16889:4;16882:31;16080:849;;;;;:::o;12214:916:14:-;12267:7;12286:14;12303:1;12286:18;;12351:8;12342:5;:17;12338:103;;12388:8;12379:17;;;;;;:::i;:::-;;;;;12424:2;12414:12;;;;12338:103;12467:8;12458:5;:17;12454:103;;12504:8;12495:17;;;;;;:::i;:::-;;;;;12540:2;12530:12;;;;12454:103;12583:8;12574:5;:17;12570:103;;12620:8;12611:17;;;;;;:::i;:::-;;;;;12656:2;12646:12;;;;12570:103;12699:7;12690:5;:16;12686:100;;12735:7;12726:16;;;;;;:::i;:::-;;;;;12770:1;12760:11;;;;12686:100;12812:7;12803:5;:16;12799:100;;12848:7;12839:16;;;;;;:::i;:::-;;;;;12883:1;12873:11;;;;12799:100;12925:7;12916:5;:16;12912:100;;12961:7;12952:16;;;;;;:::i;:::-;;;;;12996:1;12986:11;;;;12912:100;13038:7;13029:5;:16;13025:66;;13075:1;13065:11;;;;13025:66;13117:6;13110:13;;;12214:916;;;:::o;762:146:11:-;838:4;876:25;861:40;;;:11;:40;;;;854:47;;762:146;;;:::o;5144:1281:3:-;5279:6;:13;5265:3;:10;:27;5261:117;;5341:3;:10;5353:6;:13;5315:52;;;;;;;;;;;;:::i;:::-;;;;;;;;5261:117;5388:16;5407:12;:10;:12::i;:::-;5388:31;;5435:9;5430:691;5454:3;:10;5450:1;:14;5430:691;;;5485:10;5498:25;5521:1;5498:3;:22;;:25;;;;:::i;:::-;5485:38;;5537:13;5553:28;5579:1;5553:6;:25;;:28;;;;:::i;:::-;5537:44;;5616:1;5600:18;;:4;:18;;;5596:420;;5638:19;5660:9;:13;5670:2;5660:13;;;;;;;;;;;:19;5674:4;5660:19;;;;;;;;;;;;;;;;5638:41;;5715:5;5701:11;:19;5697:129;;;5778:4;5784:11;5797:5;5804:2;5751:56;;;;;;;;;;;;;;:::i;:::-;;;;;;;;5697:129;5978:5;5964:11;:19;5942:9;:13;5952:2;5942:13;;;;;;;;;;;:19;5956:4;5942:19;;;;;;;;;;;;;;;:41;;;;5620:396;5596:420;6048:1;6034:16;;:2;:16;;;6030:81;;6091:5;6070:9;:13;6080:2;6070:13;;;;;;;;;;;:17;6084:2;6070:17;;;;;;;;;;;;;;;;:26;;;;;;;:::i;:::-;;;;;;;;6030:81;5471:650;;5466:3;;;;;5430:691;;;;6149:1;6135:3;:10;:15;6131:288;;6166:10;6179:25;6202:1;6179:3;:22;;:25;;;;:::i;:::-;6166:38;;6218:13;6234:28;6260:1;6234:6;:25;;:28;;;;:::i;:::-;6218:44;;6312:2;6281:45;;6306:4;6281:45;;6296:8;6281:45;;;6316:2;6320:5;6281:45;;;;;;;:::i;:::-;;;;;;;;6152:185;;6131:288;;;6392:2;6362:46;;6386:4;6362:46;;6376:8;6362:46;;;6396:3;6401:6;6362:46;;;;;;;:::i;:::-;;;;;;;;6131:288;5251:1174;5144:1281;;;;:::o;13761:974::-;13984:1;13967:2;:14;;;:18;13963:766;;;14022:2;14005:38;;;14044:8;14054:4;14060:2;14064:5;14071:4;14005:71;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;14001:718;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14377:1;14360:6;:13;:18;14356:349;;14487:2;14464:26;;;;;;;;;;;:::i;:::-;;;;;;;;14356:349;14657:6;14651:13;14642:6;14638:2;14634:15;14627:38;14001:718;14137:43;;;14125:55;;;:8;:55;;;;14121:174;;14273:2;14250:26;;;;;;;;;;;:::i;:::-;;;;;;;;14121:174;14077:232;13963:766;13761:974;;;;;;:::o;14923:1041::-;15171:1;15154:2;:14;;;:18;15150:808;;;15209:2;15192:43;;;15236:8;15246:4;15252:3;15257:6;15265:4;15192:78;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;15188:760;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15606:1;15589:6;:13;:18;15585:349;;15716:2;15693:26;;;;;;;;;;;:::i;:::-;;;;;;;;15585:349;15886:6;15880:13;15871:6;15867:2;15863:15;15856:38;15188:760;15361:48;;;15349:60;;;:8;:60;;;;15345:179;;15502:2;15479:26;;;;;;;;;;;:::i;:::-;;;;;;;;15345:179;15271:267;15150:808;14923:1041;;;;;;:::o;7:75:18:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:77::-;878:7;907:5;896:16;;841:77;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:474::-;1265:6;1273;1322:2;1310:9;1301:7;1297:23;1293:32;1290:119;;;1328:79;;:::i;:::-;1290:119;1448:1;1473:53;1518:7;1509:6;1498:9;1494:22;1473:53;:::i;:::-;1463:63;;1419:117;1575:2;1601:53;1646:7;1637:6;1626:9;1622:22;1601:53;:::i;:::-;1591:63;;1546:118;1197:474;;;;;:::o;1677:118::-;1764:24;1782:5;1764:24;:::i;:::-;1759:3;1752:37;1677:118;;:::o;1801:222::-;1894:4;1932:2;1921:9;1917:18;1909:26;;1945:71;2013:1;2002:9;1998:17;1989:6;1945:71;:::i;:::-;1801:222;;;;:::o;2029:149::-;2065:7;2105:66;2098:5;2094:78;2083:89;;2029:149;;;:::o;2184:120::-;2256:23;2273:5;2256:23;:::i;:::-;2249:5;2246:34;2236:62;;2294:1;2291;2284:12;2236:62;2184:120;:::o;2310:137::-;2355:5;2393:6;2380:20;2371:29;;2409:32;2435:5;2409:32;:::i;:::-;2310:137;;;;:::o;2453:327::-;2511:6;2560:2;2548:9;2539:7;2535:23;2531:32;2528:119;;;2566:79;;:::i;:::-;2528:119;2686:1;2711:52;2755:7;2746:6;2735:9;2731:22;2711:52;:::i;:::-;2701:62;;2657:116;2453:327;;;;:::o;2786:90::-;2820:7;2863:5;2856:13;2849:21;2838:32;;2786:90;;;:::o;2882:109::-;2963:21;2978:5;2963:21;:::i;:::-;2958:3;2951:34;2882:109;;:::o;2997:210::-;3084:4;3122:2;3111:9;3107:18;3099:26;;3135:65;3197:1;3186:9;3182:17;3173:6;3135:65;:::i;:::-;2997:210;;;;:::o;3213:329::-;3272:6;3321:2;3309:9;3300:7;3296:23;3292:32;3289:119;;;3327:79;;:::i;:::-;3289:119;3447:1;3472:53;3517:7;3508:6;3497:9;3493:22;3472:53;:::i;:::-;3462:63;;3418:117;3213:329;;;;:::o;3548:99::-;3600:6;3634:5;3628:12;3618:22;;3548:99;;;:::o;3653:169::-;3737:11;3771:6;3766:3;3759:19;3811:4;3806:3;3802:14;3787:29;;3653:169;;;;:::o;3828:248::-;3910:1;3920:113;3934:6;3931:1;3928:13;3920:113;;;4019:1;4014:3;4010:11;4004:18;4000:1;3995:3;3991:11;3984:39;3956:2;3953:1;3949:10;3944:15;;3920:113;;;4067:1;4058:6;4053:3;4049:16;4042:27;3890:186;3828:248;;;:::o;4082:102::-;4123:6;4174:2;4170:7;4165:2;4158:5;4154:14;4150:28;4140:38;;4082:102;;;:::o;4190:377::-;4278:3;4306:39;4339:5;4306:39;:::i;:::-;4361:71;4425:6;4420:3;4361:71;:::i;:::-;4354:78;;4441:65;4499:6;4494:3;4487:4;4480:5;4476:16;4441:65;:::i;:::-;4531:29;4553:6;4531:29;:::i;:::-;4526:3;4522:39;4515:46;;4282:285;4190:377;;;;:::o;4573:313::-;4686:4;4724:2;4713:9;4709:18;4701:26;;4773:9;4767:4;4763:20;4759:1;4748:9;4744:17;4737:47;4801:78;4874:4;4865:6;4801:78;:::i;:::-;4793:86;;4573:313;;;;:::o;4892:77::-;4929:7;4958:5;4947:16;;4892:77;;;:::o;4975:122::-;5048:24;5066:5;5048:24;:::i;:::-;5041:5;5038:35;5028:63;;5087:1;5084;5077:12;5028:63;4975:122;:::o;5103:139::-;5149:5;5187:6;5174:20;5165:29;;5203:33;5230:5;5203:33;:::i;:::-;5103:139;;;;:::o;5248:329::-;5307:6;5356:2;5344:9;5335:7;5331:23;5327:32;5324:119;;;5362:79;;:::i;:::-;5324:119;5482:1;5507:53;5552:7;5543:6;5532:9;5528:22;5507:53;:::i;:::-;5497:63;;5453:117;5248:329;;;;:::o;5583:118::-;5670:24;5688:5;5670:24;:::i;:::-;5665:3;5658:37;5583:118;;:::o;5707:222::-;5800:4;5838:2;5827:9;5823:18;5815:26;;5851:71;5919:1;5908:9;5904:17;5895:6;5851:71;:::i;:::-;5707:222;;;;:::o;5935:117::-;6044:1;6041;6034:12;6058:180;6106:77;6103:1;6096:88;6203:4;6200:1;6193:15;6227:4;6224:1;6217:15;6244:281;6327:27;6349:4;6327:27;:::i;:::-;6319:6;6315:40;6457:6;6445:10;6442:22;6421:18;6409:10;6406:34;6403:62;6400:88;;;6468:18;;:::i;:::-;6400:88;6508:10;6504:2;6497:22;6287:238;6244:281;;:::o;6531:129::-;6565:6;6592:20;;:::i;:::-;6582:30;;6621:33;6649:4;6641:6;6621:33;:::i;:::-;6531:129;;;:::o;6666:311::-;6743:4;6833:18;6825:6;6822:30;6819:56;;;6855:18;;:::i;:::-;6819:56;6905:4;6897:6;6893:17;6885:25;;6965:4;6959;6955:15;6947:23;;6666:311;;;:::o;6983:117::-;7092:1;7089;7082:12;7123:710;7219:5;7244:81;7260:64;7317:6;7260:64;:::i;:::-;7244:81;:::i;:::-;7235:90;;7345:5;7374:6;7367:5;7360:21;7408:4;7401:5;7397:16;7390:23;;7461:4;7453:6;7449:17;7441:6;7437:30;7490:3;7482:6;7479:15;7476:122;;;7509:79;;:::i;:::-;7476:122;7624:6;7607:220;7641:6;7636:3;7633:15;7607:220;;;7716:3;7745:37;7778:3;7766:10;7745:37;:::i;:::-;7740:3;7733:50;7812:4;7807:3;7803:14;7796:21;;7683:144;7667:4;7662:3;7658:14;7651:21;;7607:220;;;7611:21;7225:608;;7123:710;;;;;:::o;7856:370::-;7927:5;7976:3;7969:4;7961:6;7957:17;7953:27;7943:122;;7984:79;;:::i;:::-;7943:122;8101:6;8088:20;8126:94;8216:3;8208:6;8201:4;8193:6;8189:17;8126:94;:::i;:::-;8117:103;;7933:293;7856:370;;;;:::o;8232:117::-;8341:1;8338;8331:12;8355:307;8416:4;8506:18;8498:6;8495:30;8492:56;;;8528:18;;:::i;:::-;8492:56;8566:29;8588:6;8566:29;:::i;:::-;8558:37;;8650:4;8644;8640:15;8632:23;;8355:307;;;:::o;8668:148::-;8766:6;8761:3;8756;8743:30;8807:1;8798:6;8793:3;8789:16;8782:27;8668:148;;;:::o;8822:423::-;8899:5;8924:65;8940:48;8981:6;8940:48;:::i;:::-;8924:65;:::i;:::-;8915:74;;9012:6;9005:5;8998:21;9050:4;9043:5;9039:16;9088:3;9079:6;9074:3;9070:16;9067:25;9064:112;;;9095:79;;:::i;:::-;9064:112;9185:54;9232:6;9227:3;9222;9185:54;:::i;:::-;8905:340;8822:423;;;;;:::o;9264:338::-;9319:5;9368:3;9361:4;9353:6;9349:17;9345:27;9335:122;;9376:79;;:::i;:::-;9335:122;9493:6;9480:20;9518:78;9592:3;9584:6;9577:4;9569:6;9565:17;9518:78;:::i;:::-;9509:87;;9325:277;9264:338;;;;:::o;9608:1509::-;9762:6;9770;9778;9786;9794;9843:3;9831:9;9822:7;9818:23;9814:33;9811:120;;;9850:79;;:::i;:::-;9811:120;9970:1;9995:53;10040:7;10031:6;10020:9;10016:22;9995:53;:::i;:::-;9985:63;;9941:117;10097:2;10123:53;10168:7;10159:6;10148:9;10144:22;10123:53;:::i;:::-;10113:63;;10068:118;10253:2;10242:9;10238:18;10225:32;10284:18;10276:6;10273:30;10270:117;;;10306:79;;:::i;:::-;10270:117;10411:78;10481:7;10472:6;10461:9;10457:22;10411:78;:::i;:::-;10401:88;;10196:303;10566:2;10555:9;10551:18;10538:32;10597:18;10589:6;10586:30;10583:117;;;10619:79;;:::i;:::-;10583:117;10724:78;10794:7;10785:6;10774:9;10770:22;10724:78;:::i;:::-;10714:88;;10509:303;10879:3;10868:9;10864:19;10851:33;10911:18;10903:6;10900:30;10897:117;;;10933:79;;:::i;:::-;10897:117;11038:62;11092:7;11083:6;11072:9;11068:22;11038:62;:::i;:::-;11028:72;;10822:288;9608:1509;;;;;;;;:::o;11123:474::-;11191:6;11199;11248:2;11236:9;11227:7;11223:23;11219:32;11216:119;;;11254:79;;:::i;:::-;11216:119;11374:1;11399:53;11444:7;11435:6;11424:9;11420:22;11399:53;:::i;:::-;11389:63;;11345:117;11501:2;11527:53;11572:7;11563:6;11552:9;11548:22;11527:53;:::i;:::-;11517:63;;11472:118;11123:474;;;;;:::o;11603:311::-;11680:4;11770:18;11762:6;11759:30;11756:56;;;11792:18;;:::i;:::-;11756:56;11842:4;11834:6;11830:17;11822:25;;11902:4;11896;11892:15;11884:23;;11603:311;;;:::o;11937:710::-;12033:5;12058:81;12074:64;12131:6;12074:64;:::i;:::-;12058:81;:::i;:::-;12049:90;;12159:5;12188:6;12181:5;12174:21;12222:4;12215:5;12211:16;12204:23;;12275:4;12267:6;12263:17;12255:6;12251:30;12304:3;12296:6;12293:15;12290:122;;;12323:79;;:::i;:::-;12290:122;12438:6;12421:220;12455:6;12450:3;12447:15;12421:220;;;12530:3;12559:37;12592:3;12580:10;12559:37;:::i;:::-;12554:3;12547:50;12626:4;12621:3;12617:14;12610:21;;12497:144;12481:4;12476:3;12472:14;12465:21;;12421:220;;;12425:21;12039:608;;11937:710;;;;;:::o;12670:370::-;12741:5;12790:3;12783:4;12775:6;12771:17;12767:27;12757:122;;12798:79;;:::i;:::-;12757:122;12915:6;12902:20;12940:94;13030:3;13022:6;13015:4;13007:6;13003:17;12940:94;:::i;:::-;12931:103;;12747:293;12670:370;;;;:::o;13046:894::-;13164:6;13172;13221:2;13209:9;13200:7;13196:23;13192:32;13189:119;;;13227:79;;:::i;:::-;13189:119;13375:1;13364:9;13360:17;13347:31;13405:18;13397:6;13394:30;13391:117;;;13427:79;;:::i;:::-;13391:117;13532:78;13602:7;13593:6;13582:9;13578:22;13532:78;:::i;:::-;13522:88;;13318:302;13687:2;13676:9;13672:18;13659:32;13718:18;13710:6;13707:30;13704:117;;;13740:79;;:::i;:::-;13704:117;13845:78;13915:7;13906:6;13895:9;13891:22;13845:78;:::i;:::-;13835:88;;13630:303;13046:894;;;;;:::o;13946:114::-;14013:6;14047:5;14041:12;14031:22;;13946:114;;;:::o;14066:184::-;14165:11;14199:6;14194:3;14187:19;14239:4;14234:3;14230:14;14215:29;;14066:184;;;;:::o;14256:132::-;14323:4;14346:3;14338:11;;14376:4;14371:3;14367:14;14359:22;;14256:132;;;:::o;14394:108::-;14471:24;14489:5;14471:24;:::i;:::-;14466:3;14459:37;14394:108;;:::o;14508:179::-;14577:10;14598:46;14640:3;14632:6;14598:46;:::i;:::-;14676:4;14671:3;14667:14;14653:28;;14508:179;;;;:::o;14693:113::-;14763:4;14795;14790:3;14786:14;14778:22;;14693:113;;;:::o;14842:732::-;14961:3;14990:54;15038:5;14990:54;:::i;:::-;15060:86;15139:6;15134:3;15060:86;:::i;:::-;15053:93;;15170:56;15220:5;15170:56;:::i;:::-;15249:7;15280:1;15265:284;15290:6;15287:1;15284:13;15265:284;;;15366:6;15360:13;15393:63;15452:3;15437:13;15393:63;:::i;:::-;15386:70;;15479:60;15532:6;15479:60;:::i;:::-;15469:70;;15325:224;15312:1;15309;15305:9;15300:14;;15265:284;;;15269:14;15565:3;15558:10;;14966:608;;;14842:732;;;;:::o;15580:373::-;15723:4;15761:2;15750:9;15746:18;15738:26;;15810:9;15804:4;15800:20;15796:1;15785:9;15781:17;15774:47;15838:108;15941:4;15932:6;15838:108;:::i;:::-;15830:116;;15580:373;;;;:::o;15959:943::-;16054:6;16062;16070;16078;16127:3;16115:9;16106:7;16102:23;16098:33;16095:120;;;16134:79;;:::i;:::-;16095:120;16254:1;16279:53;16324:7;16315:6;16304:9;16300:22;16279:53;:::i;:::-;16269:63;;16225:117;16381:2;16407:53;16452:7;16443:6;16432:9;16428:22;16407:53;:::i;:::-;16397:63;;16352:118;16509:2;16535:53;16580:7;16571:6;16560:9;16556:22;16535:53;:::i;:::-;16525:63;;16480:118;16665:2;16654:9;16650:18;16637:32;16696:18;16688:6;16685:30;16682:117;;;16718:79;;:::i;:::-;16682:117;16823:62;16877:7;16868:6;16857:9;16853:22;16823:62;:::i;:::-;16813:72;;16608:287;15959:943;;;;;;;:::o;16908:308::-;16970:4;17060:18;17052:6;17049:30;17046:56;;;17082:18;;:::i;:::-;17046:56;17120:29;17142:6;17120:29;:::i;:::-;17112:37;;17204:4;17198;17194:15;17186:23;;16908:308;;;:::o;17222:425::-;17300:5;17325:66;17341:49;17383:6;17341:49;:::i;:::-;17325:66;:::i;:::-;17316:75;;17414:6;17407:5;17400:21;17452:4;17445:5;17441:16;17490:3;17481:6;17476:3;17472:16;17469:25;17466:112;;;17497:79;;:::i;:::-;17466:112;17587:54;17634:6;17629:3;17624;17587:54;:::i;:::-;17306:341;17222:425;;;;;:::o;17667:340::-;17723:5;17772:3;17765:4;17757:6;17753:17;17749:27;17739:122;;17780:79;;:::i;:::-;17739:122;17897:6;17884:20;17922:79;17997:3;17989:6;17982:4;17974:6;17970:17;17922:79;:::i;:::-;17913:88;;17729:278;17667:340;;;;:::o;18013:654::-;18091:6;18099;18148:2;18136:9;18127:7;18123:23;18119:32;18116:119;;;18154:79;;:::i;:::-;18116:119;18274:1;18299:53;18344:7;18335:6;18324:9;18320:22;18299:53;:::i;:::-;18289:63;;18245:117;18429:2;18418:9;18414:18;18401:32;18460:18;18452:6;18449:30;18446:117;;;18482:79;;:::i;:::-;18446:117;18587:63;18642:7;18633:6;18622:9;18618:22;18587:63;:::i;:::-;18577:73;;18372:288;18013:654;;;;;:::o;18673:509::-;18742:6;18791:2;18779:9;18770:7;18766:23;18762:32;18759:119;;;18797:79;;:::i;:::-;18759:119;18945:1;18934:9;18930:17;18917:31;18975:18;18967:6;18964:30;18961:117;;;18997:79;;:::i;:::-;18961:117;19102:63;19157:7;19148:6;19137:9;19133:22;19102:63;:::i;:::-;19092:73;;18888:287;18673:509;;;;:::o;19188:116::-;19258:21;19273:5;19258:21;:::i;:::-;19251:5;19248:32;19238:60;;19294:1;19291;19284:12;19238:60;19188:116;:::o;19310:133::-;19353:5;19391:6;19378:20;19369:29;;19407:30;19431:5;19407:30;:::i;:::-;19310:133;;;;:::o;19449:468::-;19514:6;19522;19571:2;19559:9;19550:7;19546:23;19542:32;19539:119;;;19577:79;;:::i;:::-;19539:119;19697:1;19722:53;19767:7;19758:6;19747:9;19743:22;19722:53;:::i;:::-;19712:63;;19668:117;19824:2;19850:50;19892:7;19883:6;19872:9;19868:22;19850:50;:::i;:::-;19840:60;;19795:115;19449:468;;;;;:::o;19923:474::-;19991:6;19999;20048:2;20036:9;20027:7;20023:23;20019:32;20016:119;;;20054:79;;:::i;:::-;20016:119;20174:1;20199:53;20244:7;20235:6;20224:9;20220:22;20199:53;:::i;:::-;20189:63;;20145:117;20301:2;20327:53;20372:7;20363:6;20352:9;20348:22;20327:53;:::i;:::-;20317:63;;20272:118;19923:474;;;;;:::o;20403:1089::-;20507:6;20515;20523;20531;20539;20588:3;20576:9;20567:7;20563:23;20559:33;20556:120;;;20595:79;;:::i;:::-;20556:120;20715:1;20740:53;20785:7;20776:6;20765:9;20761:22;20740:53;:::i;:::-;20730:63;;20686:117;20842:2;20868:53;20913:7;20904:6;20893:9;20889:22;20868:53;:::i;:::-;20858:63;;20813:118;20970:2;20996:53;21041:7;21032:6;21021:9;21017:22;20996:53;:::i;:::-;20986:63;;20941:118;21098:2;21124:53;21169:7;21160:6;21149:9;21145:22;21124:53;:::i;:::-;21114:63;;21069:118;21254:3;21243:9;21239:19;21226:33;21286:18;21278:6;21275:30;21272:117;;;21308:79;;:::i;:::-;21272:117;21413:62;21467:7;21458:6;21447:9;21443:22;21413:62;:::i;:::-;21403:72;;21197:288;20403:1089;;;;;;;;:::o;21498:619::-;21575:6;21583;21591;21640:2;21628:9;21619:7;21615:23;21611:32;21608:119;;;21646:79;;:::i;:::-;21608:119;21766:1;21791:53;21836:7;21827:6;21816:9;21812:22;21791:53;:::i;:::-;21781:63;;21737:117;21893:2;21919:53;21964:7;21955:6;21944:9;21940:22;21919:53;:::i;:::-;21909:63;;21864:118;22021:2;22047:53;22092:7;22083:6;22072:9;22068:22;22047:53;:::i;:::-;22037:63;;21992:118;21498:619;;;;;:::o;22123:180::-;22171:77;22168:1;22161:88;22268:4;22265:1;22258:15;22292:4;22289:1;22282:15;22309:320;22353:6;22390:1;22384:4;22380:12;22370:22;;22437:1;22431:4;22427:12;22458:18;22448:81;;22514:4;22506:6;22502:17;22492:27;;22448:81;22576:2;22568:6;22565:14;22545:18;22542:38;22539:84;;22595:18;;:::i;:::-;22539:84;22360:269;22309:320;;;:::o;22635:118::-;22722:24;22740:5;22722:24;:::i;:::-;22717:3;22710:37;22635:118;;:::o;22759:332::-;22880:4;22918:2;22907:9;22903:18;22895:26;;22931:71;22999:1;22988:9;22984:17;22975:6;22931:71;:::i;:::-;23012:72;23080:2;23069:9;23065:18;23056:6;23012:72;:::i;:::-;22759:332;;;;;:::o;23097:::-;23218:4;23256:2;23245:9;23241:18;23233:26;;23269:71;23337:1;23326:9;23322:17;23313:6;23269:71;:::i;:::-;23350:72;23418:2;23407:9;23403:18;23394:6;23350:72;:::i;:::-;23097:332;;;;;:::o;23435:180::-;23483:77;23480:1;23473:88;23580:4;23577:1;23570:15;23604:4;23601:1;23594:15;23621:332;23742:4;23780:2;23769:9;23765:18;23757:26;;23793:71;23861:1;23850:9;23846:17;23837:6;23793:71;:::i;:::-;23874:72;23942:2;23931:9;23927:18;23918:6;23874:72;:::i;:::-;23621:332;;;;;:::o;23959:85::-;24004:7;24033:5;24022:16;;23959:85;;;:::o;24050:60::-;24078:3;24099:5;24092:12;;24050:60;;;:::o;24116:158::-;24174:9;24207:61;24225:42;24234:32;24260:5;24234:32;:::i;:::-;24225:42;:::i;:::-;24207:61;:::i;:::-;24194:74;;24116:158;;;:::o;24280:147::-;24375:45;24414:5;24375:45;:::i;:::-;24370:3;24363:58;24280:147;;:::o;24433:238::-;24534:4;24572:2;24561:9;24557:18;24549:26;;24585:79;24661:1;24650:9;24646:17;24637:6;24585:79;:::i;:::-;24433:238;;;;:::o;24677:173::-;24817:25;24813:1;24805:6;24801:14;24794:49;24677:173;:::o;24856:366::-;24998:3;25019:67;25083:2;25078:3;25019:67;:::i;:::-;25012:74;;25095:93;25184:3;25095:93;:::i;:::-;25213:2;25208:3;25204:12;25197:19;;24856:366;;;:::o;25228:419::-;25394:4;25432:2;25421:9;25417:18;25409:26;;25481:9;25475:4;25471:20;25467:1;25456:9;25452:17;25445:47;25509:131;25635:4;25509:131;:::i;:::-;25501:139;;25228:419;;;:::o;25653:148::-;25755:11;25792:3;25777:18;;25653:148;;;;:::o;25807:141::-;25856:4;25879:3;25871:11;;25902:3;25899:1;25892:14;25936:4;25933:1;25923:18;25915:26;;25807:141;;;:::o;25978:874::-;26081:3;26118:5;26112:12;26147:36;26173:9;26147:36;:::i;:::-;26199:89;26281:6;26276:3;26199:89;:::i;:::-;26192:96;;26319:1;26308:9;26304:17;26335:1;26330:166;;;;26510:1;26505:341;;;;26297:549;;26330:166;26414:4;26410:9;26399;26395:25;26390:3;26383:38;26476:6;26469:14;26462:22;26454:6;26450:35;26445:3;26441:45;26434:52;;26330:166;;26505:341;26572:38;26604:5;26572:38;:::i;:::-;26632:1;26646:154;26660:6;26657:1;26654:13;26646:154;;;26734:7;26728:14;26724:1;26719:3;26715:11;26708:35;26784:1;26775:7;26771:15;26760:26;;26682:4;26679:1;26675:12;26670:17;;26646:154;;;26829:6;26824:3;26820:16;26813:23;;26512:334;;26297:549;;26085:767;;25978:874;;;;:::o;26858:162::-;26998:14;26994:1;26986:6;26982:14;26975:38;26858:162;:::o;27026:402::-;27186:3;27207:85;27289:2;27284:3;27207:85;:::i;:::-;27200:92;;27301:93;27390:3;27301:93;:::i;:::-;27419:2;27414:3;27410:12;27403:19;;27026:402;;;:::o;27434:390::-;27540:3;27568:39;27601:5;27568:39;:::i;:::-;27623:89;27705:6;27700:3;27623:89;:::i;:::-;27616:96;;27721:65;27779:6;27774:3;27767:4;27760:5;27756:16;27721:65;:::i;:::-;27811:6;27806:3;27802:16;27795:23;;27544:280;27434:390;;;;:::o;27830:151::-;27970:3;27966:1;27958:6;27954:14;27947:27;27830:151;:::o;27987:400::-;28147:3;28168:84;28250:1;28245:3;28168:84;:::i;:::-;28161:91;;28261:93;28350:3;28261:93;:::i;:::-;28379:1;28374:3;28370:11;28363:18;;27987:400;;;:::o;28393:167::-;28533:19;28529:1;28521:6;28517:14;28510:43;28393:167;:::o;28566:402::-;28726:3;28747:85;28829:2;28824:3;28747:85;:::i;:::-;28740:92;;28841:93;28930:3;28841:93;:::i;:::-;28959:2;28954:3;28950:12;28943:19;;28566:402;;;:::o;28974:1387::-;29502:3;29524:92;29612:3;29603:6;29524:92;:::i;:::-;29517:99;;29633:148;29777:3;29633:148;:::i;:::-;29626:155;;29798:95;29889:3;29880:6;29798:95;:::i;:::-;29791:102;;29910:148;30054:3;29910:148;:::i;:::-;29903:155;;30075:95;30166:3;30157:6;30075:95;:::i;:::-;30068:102;;30187:148;30331:3;30187:148;:::i;:::-;30180:155;;30352:3;30345:10;;28974:1387;;;;;;:::o;30391:831::-;30476:3;30513:5;30507:12;30542:36;30568:9;30542:36;:::i;:::-;30594:71;30658:6;30653:3;30594:71;:::i;:::-;30587:78;;30696:1;30685:9;30681:17;30712:1;30707:164;;;;30885:1;30880:336;;;;30674:542;;30707:164;30791:4;30787:9;30776;30772:25;30767:3;30760:38;30851:6;30844:14;30837:22;30831:4;30827:33;30822:3;30818:43;30811:50;;30707:164;;30880:336;30947:38;30979:5;30947:38;:::i;:::-;31007:1;31021:154;31035:6;31032:1;31029:13;31021:154;;;31109:7;31103:14;31099:1;31094:3;31090:11;31083:35;31159:1;31150:7;31146:15;31135:26;;31057:4;31054:1;31050:12;31045:17;;31021:154;;;31204:1;31199:3;31195:11;31188:18;;30887:329;;30674:542;;30480:742;;30391:831;;;;:::o;31228:508::-;31386:4;31424:2;31413:9;31409:18;31401:26;;31473:9;31467:4;31463:20;31459:1;31448:9;31444:17;31437:47;31501:75;31571:4;31562:6;31501:75;:::i;:::-;31493:83;;31623:9;31617:4;31613:20;31608:2;31597:9;31593:18;31586:48;31651:78;31724:4;31715:6;31651:78;:::i;:::-;31643:86;;31228:508;;;;;:::o;31742:93::-;31779:6;31826:2;31821;31814:5;31810:14;31806:23;31796:33;;31742:93;;;:::o;31841:107::-;31885:8;31935:5;31929:4;31925:16;31904:37;;31841:107;;;;:::o;31954:393::-;32023:6;32073:1;32061:10;32057:18;32096:97;32126:66;32115:9;32096:97;:::i;:::-;32214:39;32244:8;32233:9;32214:39;:::i;:::-;32202:51;;32286:4;32282:9;32275:5;32271:21;32262:30;;32335:4;32325:8;32321:19;32314:5;32311:30;32301:40;;32030:317;;31954:393;;;;;:::o;32353:142::-;32403:9;32436:53;32454:34;32463:24;32481:5;32463:24;:::i;:::-;32454:34;:::i;:::-;32436:53;:::i;:::-;32423:66;;32353:142;;;:::o;32501:75::-;32544:3;32565:5;32558:12;;32501:75;;;:::o;32582:269::-;32692:39;32723:7;32692:39;:::i;:::-;32753:91;32802:41;32826:16;32802:41;:::i;:::-;32794:6;32787:4;32781:11;32753:91;:::i;:::-;32747:4;32740:105;32658:193;32582:269;;;:::o;32857:73::-;32902:3;32857:73;:::o;32936:189::-;33013:32;;:::i;:::-;33054:65;33112:6;33104;33098:4;33054:65;:::i;:::-;32989:136;32936:189;;:::o;33131:186::-;33191:120;33208:3;33201:5;33198:14;33191:120;;;33262:39;33299:1;33292:5;33262:39;:::i;:::-;33235:1;33228:5;33224:13;33215:22;;33191:120;;;33131:186;;:::o;33323:543::-;33424:2;33419:3;33416:11;33413:446;;;33458:38;33490:5;33458:38;:::i;:::-;33542:29;33560:10;33542:29;:::i;:::-;33532:8;33528:44;33725:2;33713:10;33710:18;33707:49;;;33746:8;33731:23;;33707:49;33769:80;33825:22;33843:3;33825:22;:::i;:::-;33815:8;33811:37;33798:11;33769:80;:::i;:::-;33428:431;;33413:446;33323:543;;;:::o;33872:117::-;33926:8;33976:5;33970:4;33966:16;33945:37;;33872:117;;;;:::o;33995:169::-;34039:6;34072:51;34120:1;34116:6;34108:5;34105:1;34101:13;34072:51;:::i;:::-;34068:56;34153:4;34147;34143:15;34133:25;;34046:118;33995:169;;;;:::o;34169:295::-;34245:4;34391:29;34416:3;34410:4;34391:29;:::i;:::-;34383:37;;34453:3;34450:1;34446:11;34440:4;34437:21;34429:29;;34169:295;;;;:::o;34469:1395::-;34586:37;34619:3;34586:37;:::i;:::-;34688:18;34680:6;34677:30;34674:56;;;34710:18;;:::i;:::-;34674:56;34754:38;34786:4;34780:11;34754:38;:::i;:::-;34839:67;34899:6;34891;34885:4;34839:67;:::i;:::-;34933:1;34957:4;34944:17;;34989:2;34981:6;34978:14;35006:1;35001:618;;;;35663:1;35680:6;35677:77;;;35729:9;35724:3;35720:19;35714:26;35705:35;;35677:77;35780:67;35840:6;35833:5;35780:67;:::i;:::-;35774:4;35767:81;35636:222;34971:887;;35001:618;35053:4;35049:9;35041:6;35037:22;35087:37;35119:4;35087:37;:::i;:::-;35146:1;35160:208;35174:7;35171:1;35168:14;35160:208;;;35253:9;35248:3;35244:19;35238:26;35230:6;35223:42;35304:1;35296:6;35292:14;35282:24;;35351:2;35340:9;35336:18;35323:31;;35197:4;35194:1;35190:12;35185:17;;35160:208;;;35396:6;35387:7;35384:19;35381:179;;;35454:9;35449:3;35445:19;35439:26;35497:48;35539:4;35531:6;35527:17;35516:9;35497:48;:::i;:::-;35489:6;35482:64;35404:156;35381:179;35606:1;35602;35594:6;35590:14;35586:22;35580:4;35573:36;35008:611;;;34971:887;;34561:1303;;;34469:1395;;:::o;35870:180::-;35918:77;35915:1;35908:88;36015:4;36012:1;36005:15;36039:4;36036:1;36029:15;36056:191;36096:3;36115:20;36133:1;36115:20;:::i;:::-;36110:25;;36149:20;36167:1;36149:20;:::i;:::-;36144:25;;36192:1;36189;36185:9;36178:16;;36213:3;36210:1;36207:10;36204:36;;;36220:18;;:::i;:::-;36204:36;36056:191;;;;:::o;36253:222::-;36346:4;36384:2;36373:9;36369:18;36361:26;;36397:71;36465:1;36454:9;36450:17;36441:6;36397:71;:::i;:::-;36253:222;;;;:::o;36481:180::-;36529:77;36526:1;36519:88;36626:4;36623:1;36616:15;36650:4;36647:1;36640:15;36667:169;36807:21;36803:1;36795:6;36791:14;36784:45;36667:169;:::o;36842:366::-;36984:3;37005:67;37069:2;37064:3;37005:67;:::i;:::-;36998:74;;37081:93;37170:3;37081:93;:::i;:::-;37199:2;37194:3;37190:12;37183:19;;36842:366;;;:::o;37214:419::-;37380:4;37418:2;37407:9;37403:18;37395:26;;37467:9;37461:4;37457:20;37453:1;37442:9;37438:17;37431:47;37495:131;37621:4;37495:131;:::i;:::-;37487:139;;37214:419;;;:::o;37639:115::-;37724:23;37741:5;37724:23;:::i;:::-;37719:3;37712:36;37639:115;;:::o;37760:218::-;37851:4;37889:2;37878:9;37874:18;37866:26;;37902:69;37968:1;37957:9;37953:17;37944:6;37902:69;:::i;:::-;37760:218;;;;:::o;37984:332::-;38105:4;38143:2;38132:9;38128:18;38120:26;;38156:71;38224:1;38213:9;38209:17;38200:6;38156:71;:::i;:::-;38237:72;38305:2;38294:9;38290:18;38281:6;38237:72;:::i;:::-;37984:332;;;;;:::o;38322:553::-;38499:4;38537:3;38526:9;38522:19;38514:27;;38551:71;38619:1;38608:9;38604:17;38595:6;38551:71;:::i;:::-;38632:72;38700:2;38689:9;38685:18;38676:6;38632:72;:::i;:::-;38714;38782:2;38771:9;38767:18;38758:6;38714:72;:::i;:::-;38796;38864:2;38853:9;38849:18;38840:6;38796:72;:::i;:::-;38322:553;;;;;;;:::o;38881:634::-;39102:4;39140:2;39129:9;39125:18;39117:26;;39189:9;39183:4;39179:20;39175:1;39164:9;39160:17;39153:47;39217:108;39320:4;39311:6;39217:108;:::i;:::-;39209:116;;39372:9;39366:4;39362:20;39357:2;39346:9;39342:18;39335:48;39400:108;39503:4;39494:6;39400:108;:::i;:::-;39392:116;;38881:634;;;;;:::o;39521:98::-;39572:6;39606:5;39600:12;39590:22;;39521:98;;;:::o;39625:168::-;39708:11;39742:6;39737:3;39730:19;39782:4;39777:3;39773:14;39758:29;;39625:168;;;;:::o;39799:373::-;39885:3;39913:38;39945:5;39913:38;:::i;:::-;39967:70;40030:6;40025:3;39967:70;:::i;:::-;39960:77;;40046:65;40104:6;40099:3;40092:4;40085:5;40081:16;40046:65;:::i;:::-;40136:29;40158:6;40136:29;:::i;:::-;40131:3;40127:39;40120:46;;39889:283;39799:373;;;;:::o;40178:751::-;40401:4;40439:3;40428:9;40424:19;40416:27;;40453:71;40521:1;40510:9;40506:17;40497:6;40453:71;:::i;:::-;40534:72;40602:2;40591:9;40587:18;40578:6;40534:72;:::i;:::-;40616;40684:2;40673:9;40669:18;40660:6;40616:72;:::i;:::-;40698;40766:2;40755:9;40751:18;40742:6;40698:72;:::i;:::-;40818:9;40812:4;40808:20;40802:3;40791:9;40787:19;40780:49;40846:76;40917:4;40908:6;40846:76;:::i;:::-;40838:84;;40178:751;;;;;;;;:::o;40935:141::-;40991:5;41022:6;41016:13;41007:22;;41038:32;41064:5;41038:32;:::i;:::-;40935:141;;;;:::o;41082:349::-;41151:6;41200:2;41188:9;41179:7;41175:23;41171:32;41168:119;;;41206:79;;:::i;:::-;41168:119;41326:1;41351:63;41406:7;41397:6;41386:9;41382:22;41351:63;:::i;:::-;41341:73;;41297:127;41082:349;;;;:::o;41437:1053::-;41760:4;41798:3;41787:9;41783:19;41775:27;;41812:71;41880:1;41869:9;41865:17;41856:6;41812:71;:::i;:::-;41893:72;41961:2;41950:9;41946:18;41937:6;41893:72;:::i;:::-;42012:9;42006:4;42002:20;41997:2;41986:9;41982:18;41975:48;42040:108;42143:4;42134:6;42040:108;:::i;:::-;42032:116;;42195:9;42189:4;42185:20;42180:2;42169:9;42165:18;42158:48;42223:108;42326:4;42317:6;42223:108;:::i;:::-;42215:116;;42379:9;42373:4;42369:20;42363:3;42352:9;42348:19;42341:49;42407:76;42478:4;42469:6;42407:76;:::i;:::-;42399:84;;41437:1053;;;;;;;;:::o" + }, + "methodIdentifiers": { + "DEFAULT_ADMIN_ROLE()": "a217fddf", + "balanceOf(address,uint256)": "00fdd58e", + "balanceOfBatch(address[],uint256[])": "4e1273f4", + "burn(address,uint256,uint256)": "f5298aca", + "counter()": "61bc221a", + "getRoleAdmin(bytes32)": "248a9ca3", + "grantRole(bytes32,address)": "2f2ff15d", + "hasRole(bytes32,address)": "91d14854", + "isApprovedForAll(address,address)": "e985e9c5", + "issue()": "d383f646", + "mint(address,uint256,uint256,bytes)": "731133e9", + "renounceRole(bytes32,address)": "36568abe", + "revokeRole(bytes32,address)": "d547741f", + "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)": "2eb2c2d6", + "safeTransferFrom(address,address,uint256,uint256,bytes)": "f242432a", + "setApprovalForAll(address,bool)": "a22cb465", + "supportsInterface(bytes4)": "01ffc9a7", + "updateBaseURI(string)": "931688cb", + "uri(uint256)": "0e89341c", + "uri(uint256,string)": "76b676f1" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"tokenURI_\",\"type\":\"string\"}],\"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\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"name\":\"EmptyAccountNotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"MintLimit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"NotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"NotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"name\":\"URIEmpty\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"oldURI\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"newURI\",\"type\":\"string\"}],\"name\":\"BaseURIUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Issue\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"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\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"counter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"issue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newURI\",\"type\":\"string\"}],\"name\":\"updateBaseURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"account\",\"type\":\"string\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"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.\"}],\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"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`)\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers.\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `value` amount of tokens of type `id` are transferred from `from` to `to` by `operator`.\"},\"URI(string,uint256)\":{\"details\":\"Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. If an {URI} event was emitted for `id`, the standard https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value returned by {IERC1155MetadataURI-uri}.\"}},\"kind\":\"dev\",\"methods\":{\"balanceOf(address,uint256)\":{\"details\":\"See {IERC1155-balanceOf}.\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"See {IERC1155-balanceOfBatch}. Requirements: - `accounts` and `ids` must have the same length.\"},\"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`.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC1155-isApprovedForAll}.\"},\"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.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155-safeBatchTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC1155-setApprovalForAll}.\"},\"uri(uint256)\":{\"details\":\"See {IERC1155MetadataURI-uri}. This implementation returns the same URI for *all* token types. It relies on the token type ID substitution mechanism https://eips.ethereum.org/EIPS/eip-1155#metadata[defined in the EIP]. Clients calling this function must replace the `\\\\{id\\\\}` substring with the actual token type ID.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Engagement.sol\":\"Engagement\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0xa0e92d42942f4f57c5be50568dac11e9d00c93efcb458026e18d2d9b9b2e7308\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://46326c0bb1e296b67185e81c918e0b40501b8b6386165855df0a3f3c634b6a80\",\"dweb:/ipfs/QmTwyrDYtsxsk6pymJTK94PnEpzsmkpUxFuzEiakDopy4Z\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC1155/ERC1155.sol\":{\"keccak256\":\"0xd9b0b8ee1ac6dfee14eb1ad4383a4739dbaa0f2036594bb3a16f0408085dadde\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6309805132e519162d1134c67df22dd963323a9208b4f41344a4c13ed63c1026\",\"dweb:/ipfs/QmTBPHnf6qbtAD4NVnKVFmubUHRqMDPLkseR6apxTUpsQo\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x6caffc9cfdc623eca9f87a686071708af5d5c17454d65022843fdddbc53c0cce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecf8c7ed1f8ff443c181f64496ae380ee02e61dcd2ed120e1e997837a926f182\",\"dweb:/ipfs/QmWASYTrZPF2MrcpC3EBmxx6RgtZ5Fr4jwrsmB7ZF7qhDC\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xb69597a63b202e28401128bed6a6d259e8730191274471af7303eafb247881a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://25addbda49a578b3318130585601344c5149a5549d749adf88e9685349a46b23\",\"dweb:/ipfs/Qme2DuD8gpsve1ZvaSMQpBwMdpU7yAtekDwr7gUp8dX4zX\"]},\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0xe92b5e199b963d108ad6e06feeede151ba23849e0d064956535489ff967ffe68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://280e17738a67b06dae02fec32982bd48a8ab71d8df95e9975ae03532634bc522\",\"dweb:/ipfs/QmecjsNcFgy2mMjuNfRDkLpAYMRWnh5o73fw1Bj2rCso2z\"]},\"@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x8806d620b6571932b662cfd48fbd518d4f70df1f88a23b5724cacde64a77bda1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8043304c8f9e1c1dc4a41935efa067daa77ad7abbae1fda41f015d53fbf327a5\",\"dweb:/ipfs/QmTrF2hSkRZoN9EEu8zdEhBpGNZ7RxzCdXf9ydzc2HQ3tM\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0x32ba59b4b7299237c8ba56319110989d7978a039faf754793064e967e5894418\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1ae50c8b562427df610cc4540c9bf104acca7ef8e2dcae567ae7e52272281e9c\",\"dweb:/ipfs/QmTHiadFCSJUPpRjNegc5SahmeU8bAoY8i9Aq6tVscbcKR\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0x9e8778b14317ba9e256c30a76fd6c32b960af621987f56069e1e819c77c6a133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1777404f1dcd0fac188e55a288724ec3c67b45288e49cc64723e95e702b49ab8\",\"dweb:/ipfs/QmZFdC626GButBApwDUvvTnUzdinevC3B24d7yyh57XkiA\"]},\"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0xac3d50e321a48a40b4496970ce725900f13aeb2255b7c1203f5adbe98c4a911a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1d7b235b578347dce2d831a76f122e820a7db7e73fd2e47f13bafdcd61c5b066\",\"dweb:/ipfs/QmVAELwambfJa55HfiCoz1kFFh7iYwRYeW5x8si6AFM4iX\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"contracts/Engagement.sol\":{\"keccak256\":\"0xf0000e22d5762d5fc8d76fbd1325d661cf9d2ef4c282c4c03b45c8c71ff53508\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c769d1340eb9f4193b9f99858afc2dff270f351e0f4badc72822467ed5dd481f\",\"dweb:/ipfs/QmWd8izufDrfxqK3HV6PK2Sm4mKsakk4cjknB8uBpDWe9k\"]},\"contracts/IEngagement.sol\":{\"keccak256\":\"0xce2df92288e19ea8c6c69fd836415ee7a0ec351cb9f7910767cb4b0c968a6005\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://025629bf9308105c0d94cf389fd07f1d8921a8b12635b32b7002bb1f25c8ab36\",\"dweb:/ipfs/QmTbcjKUf1bnqKpkQiNcKexp7G6Cn3VAfxNsGDWV2Tf5D2\"]}},\"version\":1}" + } + }, + "contracts/IEngagement.sol": { + "IEngagement": { + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "message", + "type": "string" + } + ], + "name": "EmptyAccountNotAllowed", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "MintLimit", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "NotAllowed", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "NotFound", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "message", + "type": "string" + } + ], + "name": "URIEmpty", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "oldURI", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "newURI", + "type": "string" + } + ], + "name": "BaseURIUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Burn", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Issue", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "Mint", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "counter", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "issue", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "newURI", + "type": "string" + } + ], + "name": "updateBaseURI", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" }, "methodIdentifiers": { - "owner()": "8da5cb5b", - "unlockTime()": "251c1aa3", - "withdraw()": "3ccfd60b" + "burn(address,uint256,uint256)": "f5298aca", + "counter()": "61bc221a", + "issue()": "d383f646", + "mint(address,uint256,uint256,bytes)": "731133e9", + "updateBaseURI(string)": "931688cb" } }, - "metadata": "{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_unlockTime\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"when\",\"type\":\"uint256\"}],\"name\":\"Withdrawal\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unlockTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Lock.sol\":\"Lock\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/Lock.sol\":{\"keccak256\":\"0xc458ef1602df81d573ca4759f27c351b6d7b0f7a2cf577fee984c166dda23fb5\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://3791b0b020cda6a03a53481c0702e1126b6ec8dcbc59821b557cc0c91f8048d1\",\"dweb:/ipfs/QmNSDX5uV49DpuBWKq1gW6Uq5nKLyHS542HevwTay3n9vH\"]}},\"version\":1}" + "metadata": "{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"name\":\"EmptyAccountNotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"MintLimit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"NotAllowed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"NotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"name\":\"URIEmpty\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"oldURI\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"newURI\",\"type\":\"string\"}],\"name\":\"BaseURIUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Issue\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"counter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"issue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newURI\",\"type\":\"string\"}],\"name\":\"updateBaseURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/IEngagement.sol\":\"IEngagement\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/IEngagement.sol\":{\"keccak256\":\"0xce2df92288e19ea8c6c69fd836415ee7a0ec351cb9f7910767cb4b0c968a6005\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://025629bf9308105c0d94cf389fd07f1d8921a8b12635b32b7002bb1f25c8ab36\",\"dweb:/ipfs/QmTbcjKUf1bnqKpkQiNcKexp7G6Cn3VAfxNsGDWV2Tf5D2\"]}},\"version\":1}" } } } diff --git a/ignition/deployments/chain-480/journal.jsonl b/ignition/deployments/chain-480/journal.jsonl new file mode 100644 index 0000000..e20f462 --- /dev/null +++ b/ignition/deployments/chain-480/journal.jsonl @@ -0,0 +1,4 @@ + +{"chainId":480,"type":"DEPLOYMENT_INITIALIZE"} +{"artifactId":"EngagementModule#Engagement","constructorArgs":["http://127.0.0.1:8545/"],"contractName":"Engagement","dependencies":[],"from":"0x026b727b60d336806b87d60e95b6d7fad2443dd6","futureId":"EngagementModule#Engagement","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"EngagementModule#Engagement","networkInteraction":{"data":"0x608060405234801561001057600080fd5b50604051613edb380380613edb833981810160405281019061003291906103cb565b604051806020016040528060008152506100518161008b60201b60201c565b506100618161009e60201b60201c565b6100746000801b336100e560201b60201c565b5080600590816100849190610635565b5050610784565b806002908161009a9190610635565b5050565b60008151036100e2576040517f1897cf660000000000000000000000000000000000000000000000000000000081526004016100d990610764565b60405180910390fd5b50565b60006100f783836101e360201b60201c565b6101d85760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061017561024e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a4600190506101dd565b600090505b92915050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600033905090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6102bd82610274565b810181811067ffffffffffffffff821117156102dc576102db610285565b5b80604052505050565b60006102ef610256565b90506102fb82826102b4565b919050565b600067ffffffffffffffff82111561031b5761031a610285565b5b61032482610274565b9050602081019050919050565b60005b8381101561034f578082015181840152602081019050610334565b60008484015250505050565b600061036e61036984610300565b6102e5565b90508281526020810184848401111561038a5761038961026f565b5b610395848285610331565b509392505050565b600082601f8301126103b2576103b161026a565b5b81516103c284826020860161035b565b91505092915050565b6000602082840312156103e1576103e0610260565b5b600082015167ffffffffffffffff8111156103ff576103fe610265565b5b61040b8482850161039d565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061046657607f821691505b6020821081036104795761047861041f565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026104e17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826104a4565b6104eb86836104a4565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600061053261052d61052884610503565b61050d565b610503565b9050919050565b6000819050919050565b61054c83610517565b61056061055882610539565b8484546104b1565b825550505050565b600090565b610575610568565b610580818484610543565b505050565b5b818110156105a45761059960008261056d565b600181019050610586565b5050565b601f8211156105e9576105ba8161047f565b6105c384610494565b810160208510156105d2578190505b6105e66105de85610494565b830182610585565b50505b505050565b600082821c905092915050565b600061060c600019846008026105ee565b1980831691505092915050565b600061062583836105fb565b9150826002028217905092915050565b61063e82610414565b67ffffffffffffffff81111561065757610656610285565b5b610661825461044e565b61066c8282856105a8565b600060209050601f83116001811461069f576000841561068d578287015190505b6106978582610619565b8655506106ff565b601f1984166106ad8661047f565b60005b828110156106d5578489015182556001820191506020850194506020810190506106b0565b868310156106f257848901516106ee601f8916826105fb565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f5552492063616e6e6f7420626520656d70747900000000000000000000000000600082015250565b600061074e601383610707565b915061075982610718565b602082019050919050565b6000602082019050818103600083015261077d81610741565b9050919050565b613748806107936000396000f3fe608060405234801561001057600080fd5b506004361061012b5760003560e01c806376b676f1116100ad578063d383f64611610071578063d383f64614610364578063d547741f1461036e578063e985e9c51461038a578063f242432a146103ba578063f5298aca146103d65761012b565b806376b676f1146102ae57806391d14854146102de578063931688cb1461030e578063a217fddf1461032a578063a22cb465146103485761012b565b80632f2ff15d116100f45780632f2ff15d1461020c57806336568abe146102285780634e1273f41461024457806361bc221a14610274578063731133e9146102925761012b565b8062fdd58e1461013057806301ffc9a7146101605780630e89341c14610190578063248a9ca3146101c05780632eb2c2d6146101f0575b600080fd5b61014a600480360381019061014591906121b1565b6103f2565b6040516101579190612200565b60405180910390f35b61017a60048036038101906101759190612273565b61044c565b60405161018791906122bb565b60405180910390f35b6101aa60048036038101906101a591906122d6565b61048c565b6040516101b79190612393565b60405180910390f35b6101da60048036038101906101d591906123eb565b610520565b6040516101e79190612427565b60405180910390f35b61020a6004803603810190610205919061263f565b610540565b005b6102266004803603810190610221919061270e565b6105e8565b005b610242600480360381019061023d919061270e565b61060a565b005b61025e60048036038101906102599190612811565b610685565b60405161026b9190612947565b60405180910390f35b61027c61078e565b6040516102899190612200565b60405180910390f35b6102ac60048036038101906102a79190612969565b610798565b005b6102c860048036038101906102c39190612a8d565b610856565b6040516102d59190612393565b60405180910390f35b6102f860048036038101906102f3919061270e565b6108de565b60405161030591906122bb565b60405180910390f35b61032860048036038101906103239190612ae9565b610949565b005b6103326109ad565b60405161033f9190612427565b60405180910390f35b610362600480360381019061035d9190612b5e565b6109b4565b005b61036c6109ca565b005b6103886004803603810190610383919061270e565b610a47565b005b6103a4600480360381019061039f9190612b9e565b610a69565b6040516103b191906122bb565b60405180910390f35b6103d460048036038101906103cf9190612bde565b610afd565b005b6103f060048036038101906103eb9190612c75565b610ba5565b005b600080600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061046d3073ffffffffffffffffffffffffffffffffffffffff16610c87565b156104825761047b82610cd4565b9050610487565b600090505b919050565b60606002805461049b90612cf7565b80601f01602080910402602001604051908101604052809291908181526020018280546104c790612cf7565b80156105145780601f106104e957610100808354040283529160200191610514565b820191906000526020600020905b8154815290600101906020018083116104f757829003601f168201915b50505050509050919050565b600060036000838152602001908152602001600020600101549050919050565b600061054a610d4e565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561058f575061058d8682610a69565b155b156105d35780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016105ca929190612d37565b60405180910390fd5b6105e08686868686610d56565b505050505050565b6105f182610520565b6105fa81610e4e565b6106048383610e62565b50505050565b610612610d4e565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610676576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106808282610f54565b505050565b606081518351146106d157815183516040517f5b0599910000000000000000000000000000000000000000000000000000000081526004016106c8929190612d60565b60405180910390fd5b6000835167ffffffffffffffff8111156106ee576106ed612447565b5b60405190808252806020026020018201604052801561071c5781602001602082028036833780820191505090505b50905060005b845181101561078357610759610741828761104790919063ffffffff16565b610754838761105b90919063ffffffff16565b6103f2565b82828151811061076c5761076b612d89565b5b602002602001018181525050806001019050610722565b508091505092915050565b6000600454905090565b826107a28161106f565b60016107ae86866103f2565b106107f25784846040517f788d25560000000000000000000000000000000000000000000000000000000081526004016107e9929190612db8565b60405180910390fd5b6107ff85856001856110b8565b838573ffffffffffffffffffffffffffffffffffffffff167f4c209b5fc8ad50758f13e2e1088ba56a560dff690a1c6fef26394f4c03821c4f60016040516108479190612e26565b60405180910390a35050505050565b6060826108628161106f565b8260008151036108a7576040517fc29f9db300000000000000000000000000000000000000000000000000000000815260040161089e90612e8d565b60405180910390fd5b60056108b286611151565b856040516020016108c593929190613065565b6040516020818303038152906040529250505092915050565b60006003600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000801b61095681610e4e565b61095f8261121f565b7f309b29ded109b9e28fb9885757b3e0096eb75c51d23aa4635d68bcd569f6adc160058360405161099192919061313b565b60405180910390a181600590816109a891906132ff565b505050565b6000801b81565b6109c66109bf610d4e565b8383611266565b5050565b600060045490506109ed33826001604051806020016040528060008152506110b8565b803373ffffffffffffffffffffffffffffffffffffffff167fc65a3f767206d2fdcede0b094a4840e01c0dd0be1888b5ba800346eaa0123c1660405160405180910390a3600181610a3e9190613400565b60048190555050565b610a5082610520565b610a5981610e4e565b610a638383610f54565b50505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000610b07610d4e565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614158015610b4c5750610b4a8682610a69565b155b15610b905780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401610b87929190612d37565b60405180910390fd5b610b9d86868686866113d6565b505050505050565b81610baf8161106f565b83833373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610c235781816040517f8626cc03000000000000000000000000000000000000000000000000000000008152600401610c1a929190612db8565b60405180910390fd5b610c2f868660016114e1565b848673ffffffffffffffffffffffffffffffffffffffff167f49995e5dd6158cf69ad3e9777c46755a1a826a446c6416992167462dad033b2a6001604051610c779190612e26565b60405180910390a3505050505050565b6000610cb3827f01ffc9a700000000000000000000000000000000000000000000000000000000611588565b8015610ccd5750610ccb8263ffffffff60e01b611588565b155b9050919050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610d475750610d4682611627565b5b9050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610dc85760006040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401610dbf9190613434565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610e3a5760006040517f01a83514000000000000000000000000000000000000000000000000000000008152600401610e319190613434565b60405180910390fd5b610e478585858585611709565b5050505050565b610e5f81610e5a610d4e565b6117bb565b50565b6000610e6e83836108de565b610f495760016003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610ee6610d4e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a460019050610f4e565b600090505b92915050565b6000610f6083836108de565b1561103c5760006003600085815260200190815260200160002060000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610fd9610d4e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16847ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a460019050611041565b600090505b92915050565b600060208202602084010151905092915050565b600060208202602084010151905092915050565b60045481106110b557806040517fc80a970c0000000000000000000000000000000000000000000000000000000081526004016110ac9190612200565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361112a5760006040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016111219190613434565b60405180910390fd5b600080611137858561180c565b91509150611149600087848487611709565b505050505050565b6060600060016111608461183c565b01905060008167ffffffffffffffff81111561117f5761117e612447565b5b6040519080825280601f01601f1916602001820160405280156111b15781602001600182028036833780820191505090505b509050600082602001820190505b600115611214578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816112085761120761344f565b5b049450600085036111bf575b819350505050919050565b6000815103611263576040517f1897cf6600000000000000000000000000000000000000000000000000000000815260040161125a906134ca565b60405180910390fd5b50565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112d85760006040517fced3e1000000000000000000000000000000000000000000000000000000000081526004016112cf9190613434565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516113c991906122bb565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036114485760006040517f57f447ce00000000000000000000000000000000000000000000000000000000815260040161143f9190613434565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036114ba5760006040517f01a835140000000000000000000000000000000000000000000000000000000081526004016114b19190613434565b60405180910390fd5b6000806114c7858561180c565b915091506114d88787848487611709565b50505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115535760006040517f01a8351400000000000000000000000000000000000000000000000000000000815260040161154a9190613434565b60405180910390fd5b600080611560848461180c565b91509150611581856000848460405180602001604052806000815250611709565b5050505050565b6000808260405160240161159c91906134f9565b6040516020818303038152906040526301ffc9a760e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000806000602060008551602087018a617530fa92503d9150600051905082801561160f575060208210155b801561161b5750600081115b94505050505092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806116f257507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061170257506117018261198f565b5b9050919050565b611715858585856119f9565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146117b4576000611753610d4e565b905060018451036117a357600061177460008661105b90919063ffffffff16565b9050600061178c60008661105b90919063ffffffff16565b905061179c838989858589611da1565b50506117b2565b6117b1818787878787611f55565b5b505b5050505050565b6117c582826108de565b6118085780826040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526004016117ff929190613514565b60405180910390fd5b5050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061189a577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816118905761188f61344f565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106118d7576d04ee2d6d415b85acef810000000083816118cd576118cc61344f565b5b0492506020810190505b662386f26fc10000831061190657662386f26fc1000083816118fc576118fb61344f565b5b0492506010810190505b6305f5e100831061192f576305f5e10083816119255761192461344f565b5b0492506008810190505b612710831061195457612710838161194a5761194961344f565b5b0492506004810190505b60648310611977576064838161196d5761196c61344f565b5b0492506002810190505b600a8310611986576001810190505b80915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b8051825114611a4357815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401611a3a929190612d60565b60405180910390fd5b6000611a4d610d4e565b905060005b8351811015611c5c576000611a70828661105b90919063ffffffff16565b90506000611a87838661105b90919063ffffffff16565b9050600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614611bb457600080600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611b5c57888183856040517f03dee4c5000000000000000000000000000000000000000000000000000000008152600401611b53949392919061353d565b60405180910390fd5b81810360008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611c4f578060008084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c479190613400565b925050819055505b5050806001019050611a52565b506001835103611d1b576000611c7c60008561105b90919063ffffffff16565b90506000611c9460008561105b90919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611d0c929190612d60565b60405180910390a45050611d9a565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611d91929190613582565b60405180910390a45b5050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115611f4d578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611e0295949392919061360e565b6020604051808303816000875af1925050508015611e3e57506040513d601f19601f82011682018060405250810190611e3b919061367d565b60015b611ec2573d8060008114611e6e576040519150601f19603f3d011682016040523d82523d6000602084013e611e73565b606091505b506000815103611eba57846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611eb19190613434565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611f4b57846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611f429190613434565b60405180910390fd5b505b505050505050565b60008473ffffffffffffffffffffffffffffffffffffffff163b1115612101578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611fb69594939291906136aa565b6020604051808303816000875af1925050508015611ff257506040513d601f19601f82011682018060405250810190611fef919061367d565b60015b612076573d8060008114612022576040519150601f19603f3d011682016040523d82523d6000602084013e612027565b606091505b50600081510361206e57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016120659190613434565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146120ff57846040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016120f69190613434565b60405180910390fd5b505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121488261211d565b9050919050565b6121588161213d565b811461216357600080fd5b50565b6000813590506121758161214f565b92915050565b6000819050919050565b61218e8161217b565b811461219957600080fd5b50565b6000813590506121ab81612185565b92915050565b600080604083850312156121c8576121c7612113565b5b60006121d685828601612166565b92505060206121e78582860161219c565b9150509250929050565b6121fa8161217b565b82525050565b600060208201905061221560008301846121f1565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6122508161221b565b811461225b57600080fd5b50565b60008135905061226d81612247565b92915050565b60006020828403121561228957612288612113565b5b60006122978482850161225e565b91505092915050565b60008115159050919050565b6122b5816122a0565b82525050565b60006020820190506122d060008301846122ac565b92915050565b6000602082840312156122ec576122eb612113565b5b60006122fa8482850161219c565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561233d578082015181840152602081019050612322565b60008484015250505050565b6000601f19601f8301169050919050565b600061236582612303565b61236f818561230e565b935061237f81856020860161231f565b61238881612349565b840191505092915050565b600060208201905081810360008301526123ad818461235a565b905092915050565b6000819050919050565b6123c8816123b5565b81146123d357600080fd5b50565b6000813590506123e5816123bf565b92915050565b60006020828403121561240157612400612113565b5b600061240f848285016123d6565b91505092915050565b612421816123b5565b82525050565b600060208201905061243c6000830184612418565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61247f82612349565b810181811067ffffffffffffffff8211171561249e5761249d612447565b5b80604052505050565b60006124b1612109565b90506124bd8282612476565b919050565b600067ffffffffffffffff8211156124dd576124dc612447565b5b602082029050602081019050919050565b600080fd5b6000612506612501846124c2565b6124a7565b90508083825260208201905060208402830185811115612529576125286124ee565b5b835b81811015612552578061253e888261219c565b84526020840193505060208101905061252b565b5050509392505050565b600082601f83011261257157612570612442565b5b81356125818482602086016124f3565b91505092915050565b600080fd5b600067ffffffffffffffff8211156125aa576125a9612447565b5b6125b382612349565b9050602081019050919050565b82818337600083830152505050565b60006125e26125dd8461258f565b6124a7565b9050828152602081018484840111156125fe576125fd61258a565b5b6126098482856125c0565b509392505050565b600082601f83011261262657612625612442565b5b81356126368482602086016125cf565b91505092915050565b600080600080600060a0868803121561265b5761265a612113565b5b600061266988828901612166565b955050602061267a88828901612166565b945050604086013567ffffffffffffffff81111561269b5761269a612118565b5b6126a78882890161255c565b935050606086013567ffffffffffffffff8111156126c8576126c7612118565b5b6126d48882890161255c565b925050608086013567ffffffffffffffff8111156126f5576126f4612118565b5b61270188828901612611565b9150509295509295909350565b6000806040838503121561272557612724612113565b5b6000612733858286016123d6565b925050602061274485828601612166565b9150509250929050565b600067ffffffffffffffff82111561276957612768612447565b5b602082029050602081019050919050565b600061278d6127888461274e565b6124a7565b905080838252602082019050602084028301858111156127b0576127af6124ee565b5b835b818110156127d957806127c58882612166565b8452602084019350506020810190506127b2565b5050509392505050565b600082601f8301126127f8576127f7612442565b5b813561280884826020860161277a565b91505092915050565b6000806040838503121561282857612827612113565b5b600083013567ffffffffffffffff81111561284657612845612118565b5b612852858286016127e3565b925050602083013567ffffffffffffffff81111561287357612872612118565b5b61287f8582860161255c565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6128be8161217b565b82525050565b60006128d083836128b5565b60208301905092915050565b6000602082019050919050565b60006128f482612889565b6128fe8185612894565b9350612909836128a5565b8060005b8381101561293a57815161292188826128c4565b975061292c836128dc565b92505060018101905061290d565b5085935050505092915050565b6000602082019050818103600083015261296181846128e9565b905092915050565b6000806000806080858703121561298357612982612113565b5b600061299187828801612166565b94505060206129a28782880161219c565b93505060406129b38782880161219c565b925050606085013567ffffffffffffffff8111156129d4576129d3612118565b5b6129e087828801612611565b91505092959194509250565b600067ffffffffffffffff821115612a0757612a06612447565b5b612a1082612349565b9050602081019050919050565b6000612a30612a2b846129ec565b6124a7565b905082815260208101848484011115612a4c57612a4b61258a565b5b612a578482856125c0565b509392505050565b600082601f830112612a7457612a73612442565b5b8135612a84848260208601612a1d565b91505092915050565b60008060408385031215612aa457612aa3612113565b5b6000612ab28582860161219c565b925050602083013567ffffffffffffffff811115612ad357612ad2612118565b5b612adf85828601612a5f565b9150509250929050565b600060208284031215612aff57612afe612113565b5b600082013567ffffffffffffffff811115612b1d57612b1c612118565b5b612b2984828501612a5f565b91505092915050565b612b3b816122a0565b8114612b4657600080fd5b50565b600081359050612b5881612b32565b92915050565b60008060408385031215612b7557612b74612113565b5b6000612b8385828601612166565b9250506020612b9485828601612b49565b9150509250929050565b60008060408385031215612bb557612bb4612113565b5b6000612bc385828601612166565b9250506020612bd485828601612166565b9150509250929050565b600080600080600060a08688031215612bfa57612bf9612113565b5b6000612c0888828901612166565b9550506020612c1988828901612166565b9450506040612c2a8882890161219c565b9350506060612c3b8882890161219c565b925050608086013567ffffffffffffffff811115612c5c57612c5b612118565b5b612c6888828901612611565b9150509295509295909350565b600080600060608486031215612c8e57612c8d612113565b5b6000612c9c86828701612166565b9350506020612cad8682870161219c565b9250506040612cbe8682870161219c565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612d0f57607f821691505b602082108103612d2257612d21612cc8565b5b50919050565b612d318161213d565b82525050565b6000604082019050612d4c6000830185612d28565b612d596020830184612d28565b9392505050565b6000604082019050612d7560008301856121f1565b612d8260208301846121f1565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000604082019050612dcd6000830185612d28565b612dda60208301846121f1565b9392505050565b6000819050919050565b6000819050919050565b6000612e10612e0b612e0684612de1565b612deb565b61217b565b9050919050565b612e2081612df5565b82525050565b6000602082019050612e3b6000830184612e17565b92915050565b7f4163636f756e742063616e6e6f7420626520656d707479000000000000000000600082015250565b6000612e7760178361230e565b9150612e8282612e41565b602082019050919050565b60006020820190508181036000830152612ea681612e6a565b9050919050565b600081905092915050565b60008190508160005260206000209050919050565b60008154612eda81612cf7565b612ee48186612ead565b94506001821660008114612eff5760018114612f1457612f47565b60ff1983168652811515820286019350612f47565b612f1d85612eb8565b60005b83811015612f3f57815481890152600182019150602081019050612f20565b838801955050505b50505092915050565b7f2f6170692f76312f6e66742f0000000000000000000000000000000000000000600082015250565b6000612f86600c83612ead565b9150612f9182612f50565b600c82019050919050565b6000612fa782612303565b612fb18185612ead565b9350612fc181856020860161231f565b80840191505092915050565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b6000613003600183612ead565b915061300e82612fcd565b600182019050919050565b7f2f72657075746174696f6e2d73636f7265000000000000000000000000000000600082015250565b600061304f601183612ead565b915061305a82613019565b601182019050919050565b60006130718286612ecd565b915061307c82612f79565b91506130888285612f9c565b915061309382612ff6565b915061309f8284612f9c565b91506130aa82613042565b9150819050949350505050565b600081546130c481612cf7565b6130ce818661230e565b945060018216600081146130e957600181146130ff57613132565b60ff198316865281151560200286019350613132565b61310885612eb8565b60005b8381101561312a5781548189015260018201915060208101905061310b565b808801955050505b50505092915050565b6000604082019050818103600083015261315581856130b7565b90508181036020830152613169818461235a565b90509392505050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026131bf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613182565b6131c98683613182565b95508019841693508086168417925050509392505050565b60006131fc6131f76131f28461217b565b612deb565b61217b565b9050919050565b6000819050919050565b613216836131e1565b61322a61322282613203565b84845461318f565b825550505050565b600090565b61323f613232565b61324a81848461320d565b505050565b5b8181101561326e57613263600082613237565b600181019050613250565b5050565b601f8211156132b35761328481612eb8565b61328d84613172565b8101602085101561329c578190505b6132b06132a885613172565b83018261324f565b50505b505050565b600082821c905092915050565b60006132d6600019846008026132b8565b1980831691505092915050565b60006132ef83836132c5565b9150826002028217905092915050565b61330882612303565b67ffffffffffffffff81111561332157613320612447565b5b61332b8254612cf7565b613336828285613272565b600060209050601f8311600181146133695760008415613357578287015190505b61336185826132e3565b8655506133c9565b601f19841661337786612eb8565b60005b8281101561339f5784890151825560018201915060208501945060208101905061337a565b868310156133bc57848901516133b8601f8916826132c5565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061340b8261217b565b91506134168361217b565b925082820190508082111561342e5761342d6133d1565b5b92915050565b60006020820190506134496000830184612d28565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f5552492063616e6e6f7420626520656d70747900000000000000000000000000600082015250565b60006134b460138361230e565b91506134bf8261347e565b602082019050919050565b600060208201905081810360008301526134e3816134a7565b9050919050565b6134f38161221b565b82525050565b600060208201905061350e60008301846134ea565b92915050565b60006040820190506135296000830185612d28565b6135366020830184612418565b9392505050565b60006080820190506135526000830187612d28565b61355f60208301866121f1565b61356c60408301856121f1565b61357960608301846121f1565b95945050505050565b6000604082019050818103600083015261359c81856128e9565b905081810360208301526135b081846128e9565b90509392505050565b600081519050919050565b600082825260208201905092915050565b60006135e0826135b9565b6135ea81856135c4565b93506135fa81856020860161231f565b61360381612349565b840191505092915050565b600060a0820190506136236000830188612d28565b6136306020830187612d28565b61363d60408301866121f1565b61364a60608301856121f1565b818103608083015261365c81846135d5565b90509695505050505050565b60008151905061367781612247565b92915050565b60006020828403121561369357613692612113565b5b60006136a184828501613668565b91505092915050565b600060a0820190506136bf6000830188612d28565b6136cc6020830187612d28565b81810360408301526136de81866128e9565b905081810360608301526136f281856128e9565b9050818103608083015261370681846135d5565b9050969550505050505056fea2646970667358221220240e9a7daab5d9eba2793e75f4bbf0e9a74f133868ac14d5e9561767bb722e8264736f6c634300081a003300000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000016687474703a2f2f3132372e302e302e313a383534352f00000000000000000000","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} \ No newline at end of file diff --git a/ignition/modules/Engagement.ts b/ignition/modules/Engagement.ts index f38a711..431a761 100644 --- a/ignition/modules/Engagement.ts +++ b/ignition/modules/Engagement.ts @@ -1,9 +1,11 @@ import { buildModule } from "@nomicfoundation/hardhat-ignition/modules"; const EngagementModule = buildModule("EngagementModule", (m) => { - const engagement = m.contract("Engagement", [], {}); + const uri = m.getParameter("uri"); - return { engagement }; + const engagement = m.contract("Engagement", [uri], {}); + + return { engagement }; }); export default EngagementModule; diff --git a/package.json b/package.json index 4605c37..9f49344 100644 --- a/package.json +++ b/package.json @@ -1,38 +1,40 @@ { - "name": "engagement-contract", - "version": "1.0.0", - "main": "index.js", - "license": "MIT", - "devDependencies": { - "@biomejs/biome": "^1.8.0", - "@nomicfoundation/hardhat-ignition": "^0.15.0", - "@nomicfoundation/hardhat-ignition-viem": "^0.15.0", - "@nomicfoundation/hardhat-network-helpers": "^1.0.0", - "@nomicfoundation/hardhat-toolbox-viem": "^3.0.0", - "@nomicfoundation/hardhat-verify": "^2.0.0", - "@nomicfoundation/hardhat-viem": "^2.0.0", - "@types/chai": "^4.2.0", - "@types/chai-as-promised": "^7.1.6", - "@types/mocha": ">=9.1.0", - "@types/node": ">=18.0.0", - "chai": "^4.2.0", - "hardhat": "^2.22.5", - "hardhat-gas-reporter": "^1.0.8", - "solidity-coverage": "^0.8.0", - "ts-node": ">=8.0.0", - "typescript": "~5.0.4", - "viem": "^2.7.6" - }, - "dependencies": { - "@openzeppelin/contracts": "^5.0.2" - }, - "scripts": { - "compile": "npx hardhat compile", - "test": "npx hardhat test", - "coverage": "SOLIDITY_COVERAGE=true npx hardhat coverage", - "lint": "npx @biomejs/biome lint ./test ./ignition/modules", - "format": "npx @biomejs/biome format --write ./test ./ignition/modules", - "ci": "npx @biomejs/biome ci ./test ./ignition/modules", - "deploy": "npx hardhat ignition deploy ./ignition/modules/Engagement.ts" - } + "name": "engagement-contract", + "version": "1.0.0", + "main": "index.js", + "license": "MIT", + "devDependencies": { + "@biomejs/biome": "1.9.4", + "@nomicfoundation/hardhat-ignition": "^0.15.0", + "@nomicfoundation/hardhat-ignition-viem": "^0.15.0", + "@nomicfoundation/hardhat-network-helpers": "^1.0.0", + "@nomicfoundation/hardhat-toolbox-viem": "^3.0.0", + "@nomicfoundation/hardhat-verify": "^2.0.0", + "@nomicfoundation/hardhat-viem": "^2.0.0", + "@types/chai": "^4.2.0", + "@types/chai-as-promised": "^7.1.6", + "@types/mocha": ">=9.1.0", + "@types/node": ">=18.0.0", + "chai": "^4.2.0", + "hardhat": "^2.22.5", + "hardhat-gas-reporter": "^1.0.8", + "solidity-coverage": "^0.8.0", + "ts-node": ">=8.0.0", + "typescript": "~5.0.4", + "viem": "^2.7.6" + }, + "dependencies": { + "@openzeppelin/contracts": "^5.0.2" + }, + "scripts": { + "compile": "npx hardhat compile", + "test": "npx hardhat test", + "coverage": "SOLIDITY_COVERAGE=true npx hardhat coverage", + "lint": "npx @biomejs/biome lint ./test ./ignition/modules --skip=suspicious/noExplicitAny", + "format": "npx @biomejs/biome format --write ./test ./ignition/modules", + "ci": "npx @biomejs/biome ci ./test ./ignition/modules", + "deploy:localhost": "npx hardhat run ./scripts/deploy.ts --network localhost", + "deploy:sepolia": "npx hardhat run ./scripts/deploy.ts --network sepolia", + "deploy:optimismSepolia": "npx hardhat run ./scripts/deploy.ts --network optimismSepolia" + } } diff --git a/scripts/deploy.ts b/scripts/deploy.ts new file mode 100644 index 0000000..78df135 --- /dev/null +++ b/scripts/deploy.ts @@ -0,0 +1,32 @@ +import hre from "hardhat"; +import EngagementModule from "../ignition/modules/Engagement"; + +async function getUri() { + return process.env.TOKEN_URI || "http://127.0.0.1:8545/"; +} + +async function main() { + const uri = await getUri(); + + if (!uri) { + throw new Error("TOKEN_URI env variable is required"); + } + + const { engagement } = await hre.ignition.deploy(EngagementModule, { + parameters: { + EngagementModule: { uri }, + }, + }); + + await hre.run("verify:verify", { + address: engagement.address, + constructorArguments: [uri], + }); + + console.log("Engagement deployed to:", engagement.address); +} + +main().catch((error) => { + console.error("Error during deployment:", error); + process.exitCode = 1; +}); diff --git a/test/Engagement.ts b/test/Engagement.ts index 07f9dc2..52378c9 100644 --- a/test/Engagement.ts +++ b/test/Engagement.ts @@ -3,421 +3,382 @@ import { expect } from "chai"; import hre from "hardhat"; import { formatUnits, getAddress, parseUnits } from "viem"; -const hash = "SOME_RANDOM_HASH"; +const DEFAULT_URI = "https://api.example.com"; -describe("Engage", function () { - // We define a fixture to reuse the same setup in every test. - // We use loadFixture to run this setup once, snapshot that state, - // and reset Hardhat Network to that snapshot in every test. - async function deployFixture() { - // Contracts are deployed using the first signer/account by default - const [deployer, provider, otherAccount] = - await hre.viem.getWalletClients(); +describe("Engagement", () => { - const contract = await hre.viem.deployContract("Engagement"); - - const publicClient = await hre.viem.getPublicClient(); - - await contract.write.grantRole([ - await contract.read.PROVIDER_ROLE(), - provider.account.address, - ]); - - return { - contract, - hash, - deployer, - provider, - otherAccount, - publicClient, - }; - } - - describe("Deployment", function () { - it("Should have counter equal 0", async function () { - const { contract } = await loadFixture(deployFixture); - - expect(await contract.read.counter()).to.be.equal(parseUnits("0", 0)); - }); - it("Should have deployer as an Admin", async function () { - const { contract, deployer } = await loadFixture(deployFixture); - - const adminRole = await contract.read.DEFAULT_ADMIN_ROLE(); - - expect(await contract.read.hasRole([adminRole, deployer.account.address])) - .to.be.true; - }); - - it("Should have a PROVIDER_ROLE", async function () { - const { contract } = await loadFixture(deployFixture); - - expect(await contract.read.PROVIDER_ROLE()).to.be.exist; - }); - }); - - describe("Issue", function () { - it("Should increment counter by 1", async function () { - const { contract, hash } = await loadFixture(deployFixture); - - const counter0 = formatUnits(await contract.read.counter(), 0); - - await contract.write.issue([hash]); - - const counter1 = formatUnits(await contract.read.counter(), 0); - - expect(Number(counter1)).to.be.equal(Number(counter0) + 1); - }); - - it("Should have an account balance of 1", async function () { - const { contract, otherAccount, hash } = await loadFixture(deployFixture); - - const counter = await contract.read.counter(); - const balance0 = await contract.read.balanceOf([ - getAddress(otherAccount.account.address), - counter, - ]); - - expect(balance0).to.be.equal(parseUnits("0", 0)); - - await contract.write.issue([hash], { - account: otherAccount.account.address, - }); - - const balance1 = await contract.read.balanceOf([ - getAddress(otherAccount.account.address), - counter, - ]); - - expect(balance1).to.be.equal(parseUnits("1", 0)); - }); - - it("Should emit Issue event", async function () { - const { contract, deployer, hash } = await loadFixture(deployFixture); - - const tokenId = await contract.read.counter(); - - const issueHash = await contract.write.issue([hash]); - const issueEvents = await contract.getEvents.Issue(); - - expect(issueEvents.length).to.be.equal(1); - - const event = issueEvents[0]; - expect(event.eventName).to.be.equal("Issue"); - expect(event.transactionHash).to.be.equal(issueHash); - expect(event.args.tokenId).to.be.equal(tokenId); - expect(event.args.account).to.be.equal( - getAddress(deployer.account.address) - ); - }); - }); - - describe("Uri", function () { - describe("Success", async function () { - it("Should return formatted Uri", async function () { - const { contract, hash } = await loadFixture(deployFixture); - - const tokenId = await contract.read.counter(); - - await contract.write.issue([hash]); - - expect(await contract.read.uri([tokenId])).to.be.equal( - `ipfs://${hash}.json` - ); - }); - }); - describe("Revert", async function () { - it("Should revert with NotFound (token doesn't exist)", async function () { - const { contract } = await loadFixture(deployFixture); - const tokenId = parseUnits("999", 0); - - await expect(contract.read.uri([tokenId])).to.be.rejectedWith( - "NotFound(999)" - ); - }); - }); - }); - - describe("Wrapper", function () { - let amount = parseUnits("1", 0); - const data = "0x0"; - let tokenId: any; - let contract: any; - let otherAccount: any; - const date = parseUnits("1", 0); - const cid = "SOME_RANDOM_CID"; - let provider: any; - - beforeEach(async function () { - const fixture = await loadFixture(deployFixture); - contract = fixture.contract; - otherAccount = fixture.otherAccount; - provider = fixture.provider; - - tokenId = await contract.read.counter(); - await contract.write.issue([hash]); - }); - - describe("Mint", function () { - describe("Success", async function () { - it("Should have an account balance of 1", async function () { - const balance0 = await contract.read.balanceOf([ - getAddress(otherAccount.account.address), - tokenId, - ]); - - expect(balance0).to.be.equal(parseUnits("0", 0)); - - await contract.write.mint( - [getAddress(otherAccount.account.address), tokenId, amount, data], - { - account: otherAccount.account.address, - } - ); - - const balance1 = await contract.read.balanceOf([ - getAddress(otherAccount.account.address), - tokenId, - ]); - - expect(balance1).to.be.equal(amount); - }); - it("Should emit Mint event", async function () { - const mintHash = await contract.write.mint( - [getAddress(otherAccount.account.address), tokenId, amount, data], - { - account: otherAccount.account.address, - } - ); - - const mintEvents = await contract.getEvents.Mint(); - - expect(mintEvents.length).to.be.equal(1); - - const mintEvent = mintEvents[0]; - expect(mintEvent.eventName).to.be.equal("Mint"); - expect(mintEvent.transactionHash).to.be.equal(mintHash); - expect(mintEvent.args.tokenId).to.be.equal(tokenId); - expect(mintEvent.args.account).to.be.equal( - getAddress(otherAccount.account.address) - ); - }); - }); - describe("Revert", async function () { - it("Should revert with NotFound (token doesn't exist)", async function () { - const tokenId = parseUnits("999", 0); - - await expect( - contract.write.mint( - [getAddress(otherAccount.account.address), tokenId, amount, data], - { - account: otherAccount.account.address, - } - ) - ).to.be.rejectedWith("NotFound(999)"); - }); - it("Should revert with MintLimit (token balance > 1)", async function () { - await contract.write.mint( - [getAddress(otherAccount.account.address), tokenId, amount, data], - { - account: otherAccount.account.address, - } - ); - - await expect( - contract.write.mint( - [getAddress(otherAccount.account.address), tokenId, amount, data], - { - account: otherAccount.account.address, - } - ) - ).to.be.rejectedWith( - `MintLimit("${getAddress( - otherAccount.account.address - )}", ${tokenId})` - ); - }); - }); - }); - describe("Burn", function () { - beforeEach(async function () { - await contract.write.mint( - [getAddress(otherAccount.account.address), tokenId, amount, data], - { - account: otherAccount.account.address, - } - ); - }); - describe("Success", async function () { - it("Should have an account balance of 0", async function () { - const balance1 = await contract.read.balanceOf([ - getAddress(otherAccount.account.address), - tokenId, - ]); - - expect(balance1).to.be.equal(amount); - - await contract.write.burn( - [getAddress(otherAccount.account.address), tokenId, amount], - { - account: otherAccount.account.address, - } - ); - - const balance0 = await contract.read.balanceOf([ - getAddress(otherAccount.account.address), - tokenId, - ]); - - expect(balance0).to.be.equal(parseUnits("0", 0)); - }); - it("Should emit Burn event", async function () { - const burnHash = await contract.write.burn( - [getAddress(otherAccount.account.address), tokenId, amount], - { - account: otherAccount.account.address, - } - ); - - const burnEvents = await contract.getEvents.Burn(); - - expect(burnEvents.length).to.be.equal(1); - - const burnEvent = burnEvents[0]; - expect(burnEvent.eventName).to.be.equal("Burn"); - expect(burnEvent.transactionHash).to.be.equal(burnHash); - expect(burnEvent.args.tokenId).to.be.equal(tokenId); - expect(burnEvent.args.account).to.be.equal( - getAddress(otherAccount.account.address) - ); - }); - }); - describe("Revert", async function () { - it("Should revert with NotAllowed (msg.sender != account)", async function () { - await expect( - contract.write.burn([ - getAddress(otherAccount.account.address), - tokenId, - amount, - ]) - ).to.be.rejectedWith( - `NotAllowed("${getAddress( - otherAccount.account.address - )}", ${tokenId})` - ); - }); - it("Should revert with NotFound (token doesn't exist)", async function () { - tokenId = parseUnits("999", 0); - - await expect( - contract.write.burn( - [getAddress(otherAccount.account.address), tokenId, amount], - { - account: otherAccount.account.address, - } - ) - ).to.be.rejectedWith("NotFound(999)"); - }); - }); - }); - describe("Get score", function () { - beforeEach(async function () { - await contract.write.updateScores([date, cid], { - account: provider.account.address, - }); - }); - describe("Success", async function () { - it("Should return formatted uri", async function () { - const getScoreUri = await contract.read.getScores( - [date, tokenId, getAddress(otherAccount.account.address)], - { - account: otherAccount.account.address, - } - ); - - expect(getScoreUri).to.be.equal( - `ipfs://${cid}/${tokenId}/${getAddress( - otherAccount.account.address - )}.json` - ); - }); - }); - describe("Revert", async function () { - it("Should revert with NotFound (token doesn't exist)", async function () { - const { contract, otherAccount } = await loadFixture(deployFixture); - const date = BigInt(new Date().getTime()); - const tokenId = parseUnits("999", 0); - - await expect( - contract.read.getScores( - [date, tokenId, getAddress(otherAccount.account.address)], - { - account: otherAccount.account.address, - } - ) - ).to.be.rejectedWith("NotFound(999)"); - }); - }); - }); - describe("Update Scores", function () { - describe("Success", async function () { - it("Should update scores mapping", async function () { - await contract.write.updateScores([date, cid], { - account: provider.account.address, - }); - - const scores = await contract.read.getScores( - [date, tokenId, getAddress(provider.account.address)], - { - account: provider.account.address, - } - ); - - expect(scores).to.be.equal( - `ipfs://${cid}/${tokenId}/${getAddress( - provider.account.address - )}.json` - ); - }); - it("Should emit UpdateScores event", async function () { - const updateScoresHash = await contract.write.updateScores( - [date, cid], - { - account: provider.account.address, - } - ); - - const updateScoresEvents = await contract.getEvents.UpdateScores(); - - expect(updateScoresEvents.length).to.be.equal(1); - - const updateScoresEvent = updateScoresEvents[0]; - expect(updateScoresEvent.eventName).to.be.equal("UpdateScores"); - expect(updateScoresEvent.transactionHash).to.be.equal( - updateScoresHash - ); - expect(updateScoresEvent.args.account).to.be.equal( - getAddress(provider.account.address) - ); - expect(updateScoresEvent.args.date).to.be.equal(date); - expect(updateScoresEvent.args.cid).to.be.equal(cid); - }); - }); - describe("Revert", async function () { - it("Should revert with AccessControlUnauthorizedAccount (msg.sender doesn't have PROVIDER_ROLE)", async function () { - const { contract, otherAccount } = await loadFixture(deployFixture); - const PROVIDER_ROLE = await contract.read.PROVIDER_ROLE(); - - await expect( - contract.write.updateScores([date, cid], { - account: otherAccount.account.address, - }) - ).to.be.rejectedWith( - `AccessControlUnauthorizedAccount("${getAddress( - otherAccount.account.address - )}", "${PROVIDER_ROLE}")` - ); - }); - }); - }); - }); + + async function deployFixture() { + const [deployer, otherAccount] = await hre.viem.getWalletClients(); + + const contract = await hre.viem.deployContract("Engagement", [DEFAULT_URI]); + + const publicClient = await hre.viem.getPublicClient(); + + return { + contract, + deployer, + otherAccount, + publicClient, + }; + } + + describe("Deployment", () => { + describe("Success", () => { + it("Shuld have counter equal 0", async () => { + const { contract } = await loadFixture(deployFixture); + + expect(await contract.read.counter()).to.be.equal(parseUnits("0", 0)); + }); + + it("Should have deployer as an Admin", async () => { + const { contract, deployer } = await loadFixture(deployFixture); + + const adminRole = await contract.read.DEFAULT_ADMIN_ROLE(); + + expect( + await contract.read.hasRole([adminRole, deployer.account.address]), + ).to.be.true; + }); + }); + describe("Revert", () => { + it("Should revert deployment if URI is empty", async () => { + await expect( + hre.viem.deployContract("Engagement", [""]), + ).to.be.rejectedWith('URIEmpty("URI cannot be empty")'); + }); + }); + }); + + describe("Issue", () => { + it("Should increment counter by 1", async () => { + const { contract } = await loadFixture(deployFixture); + + const counter0 = formatUnits(await contract.read.counter(), 0); + + await contract.write.issue(); + + const counter1 = formatUnits(await contract.read.counter(), 0); + + expect(Number(counter1)).to.be.equal(Number(counter0) + 1); + }); + it("Should have an account balance of 1", async () => { + const { contract, otherAccount } = await loadFixture(deployFixture); + + const counter = await contract.read.counter(); + const balance0 = await contract.read.balanceOf([ + getAddress(otherAccount.account.address), + counter, + ]); + + expect(balance0).to.be.equal(parseUnits("0", 0)); + + await contract.write.issue({ + account: otherAccount.account.address, + }); + + const balance1 = await contract.read.balanceOf([ + getAddress(otherAccount.account.address), + counter, + ]); + + expect(balance1).to.be.equal(parseUnits("1", 0)); + }); + + it("Should emit Issue event", async () => { + const { contract, deployer } = await loadFixture(deployFixture); + + const tokenId = await contract.read.counter(); + + const issueHash = await contract.write.issue(); + const issueEvents = await contract.getEvents.Issue(); + + expect(issueEvents.length).to.be.equal(1); + + const event = issueEvents[0]; + expect(event.eventName).to.be.equal("Issue"); + expect(event.transactionHash).to.be.equal(issueHash); + expect(event.args.tokenId).to.be.equal(tokenId); + expect(event.args.account).to.be.equal( + getAddress(deployer.account.address), + ); + }); + }); + + describe("Update Base URI", () => { + describe("Success", () => { + it("Should allow admin to update base URI", async () => { + const { contract, deployer } = await loadFixture(deployFixture); + const newURI = "https://new-api.example.com"; + + await contract.write.issue({ account: deployer.account.address }); + + await contract.write.updateBaseURI([newURI], { + account: deployer.account.address, + }); + + const updatedURI = await contract.read.uri([ + parseUnits("0", 0), + getAddress(deployer.account.address), + ]); + + expect(updatedURI).to.be.equal( + `${newURI}/api/v1/nft/0/${getAddress( + deployer.account.address, + )}/reputation-score`, + ); + }); + + + it("Should emit BaseURIUpdated event on URI change", async () => { + const { contract, deployer } = await loadFixture(deployFixture); + const newURI = "https://new-api.example.com"; + + const updateTx = await contract.write.updateBaseURI([newURI], { + account: deployer.account.address, + }); + + const baseURIEvents = await contract.getEvents.BaseURIUpdated(); + + expect(baseURIEvents.length).to.be.equal(1); + + const event = baseURIEvents[0]; + expect(event.eventName).to.be.equal("BaseURIUpdated"); + expect(event.args.oldURI).to.be.equal(DEFAULT_URI); + expect(event.args.newURI).to.be.equal(newURI); + }); + }); + + describe("Revert", () => { + it("Should revert if non-admin tries to update URI", async () => { + const { contract, otherAccount } = await loadFixture(deployFixture); + + await expect( + contract.write.updateBaseURI(["https://new-api.example.com"], { + account: otherAccount.account.address, + }), + ).to.be.rejectedWith( + `AccessControlUnauthorizedAccount("${getAddress( + otherAccount.account.address, + )}", "0x0000000000000000000000000000000000000000000000000000000000000000")`, + ); + }); + }); + }); + + describe("Uri", () => { + describe("Success", () => { + it("Should return formatted Uri", async () => { + const { contract, otherAccount } = await loadFixture(deployFixture); + + const tokenId = await contract.read.counter(); + + await contract.write.issue(); + + expect(await contract.read.uri([tokenId,getAddress(otherAccount.account.address)])).to.be.equal( + `${DEFAULT_URI}/api/v1/nft/${tokenId}/${getAddress(otherAccount.account.address)}/reputation-score`, + ); + }); + }); + + describe("Revert", () => { + it("Should revert with NotFound (token doesn't exist)", async () => { + const { contract,otherAccount } = await loadFixture(deployFixture); + const tokenId = parseUnits("999", 0); + + await expect(contract.read.uri([tokenId,getAddress(otherAccount.account.address)])).to.be.rejectedWith( + "NotFound(999)", + ); + }); + it("Should revert if the account is empty", async () => { + const { contract } = await loadFixture(deployFixture); + + const tokenId = await contract.read.counter(); + + await contract.write.issue(); + + await expect(contract.read.uri([tokenId, ""])).to.be.rejectedWith( + 'EmptyAccountNotAllowed("Account cannot be empty")' + ); + }); + + }); + }); + + describe("Wrapper", () => { + const amount = parseUnits("1", 0); + const data = "0x0"; + let tokenId: any; + let contract: any; + let otherAccount: any; + let date: any; + + beforeEach(async () => { + const fixture = await loadFixture(deployFixture); + contract = fixture.contract; + otherAccount = fixture.otherAccount; + + tokenId = await contract.read.counter(); + date = 1234567890; + await contract.write.issue(); + }); + + describe("Mint", () => { + describe("Success", async () => { + it("Should have an account balance of 1", async () => { + const balance0 = await contract.read.balanceOf([ + getAddress(otherAccount.account.address), + tokenId, + ]); + + expect(balance0).to.be.equal(parseUnits("0", 0)); + + await contract.write.mint( + [getAddress(otherAccount.account.address), tokenId, amount, data], + { account: otherAccount.account.address }, + ); + + const balance1 = await contract.read.balanceOf([ + getAddress(otherAccount.account.address), + tokenId, + ]); + + expect(balance1).to.be.equal(amount); + }); + + it("Should emit Mint event", async () => { + const mintHash = await contract.write.mint( + [getAddress(otherAccount.account.address), tokenId, amount, data], + { account: otherAccount.account.address }, + ); + + const mintEvents = await contract.getEvents.Mint(); + + expect(mintEvents.length).to.be.equal(1); + + const mintEvent = mintEvents[0]; + expect(mintEvent.eventName).to.be.equal("Mint"); + expect(mintEvent.transactionHash).to.be.equal(mintHash); + expect(mintEvent.args.tokenId).to.be.equal(tokenId); + expect(mintEvent.args.account).to.be.equal( + getAddress(otherAccount.account.address), + ); + }); + }); + + describe("Revert", async () => { + it("Should revert with NotFound (token doesn't exist)", async () => { + const invalidTokenId = parseUnits("999", 0); + + await expect( + contract.write.mint( + [ + getAddress(otherAccount.account.address), + invalidTokenId, + amount, + data, + ], + { account: otherAccount.account.address }, + ), + ).to.be.rejectedWith("NotFound(999)"); + }); + + it("Should revert with MintLimit (token balance > 1)", async () => { + await contract.write.mint( + [getAddress(otherAccount.account.address), tokenId, amount, data], + { account: otherAccount.account.address }, + ); + + await expect( + contract.write.mint( + [getAddress(otherAccount.account.address), tokenId, amount, data], + { account: otherAccount.account.address }, + ), + ).to.be.rejectedWith( + `MintLimit("${getAddress(otherAccount.account.address)}", ${tokenId})`, + ); + }); + }); + }); + + describe("Burn", () => { + beforeEach(async () => { + await contract.write.mint( + [getAddress(otherAccount.account.address), tokenId, amount, data], + { account: otherAccount.account.address }, + ); + }); + + describe("Success", async () => { + it("Should have an account balance of 0", async () => { + const balance1 = await contract.read.balanceOf([ + getAddress(otherAccount.account.address), + tokenId, + ]); + + expect(balance1).to.be.equal(amount); + + await contract.write.burn( + [getAddress(otherAccount.account.address), tokenId, amount], + { account: otherAccount.account.address }, + ); + + const balance0 = await contract.read.balanceOf([ + getAddress(otherAccount.account.address), + tokenId, + ]); + + expect(balance0).to.be.equal(parseUnits("0", 0)); + }); + + it("Should emit Burn event", async () => { + const burnHash = await contract.write.burn( + [getAddress(otherAccount.account.address), tokenId, amount], + { account: otherAccount.account.address }, + ); + + const burnEvents = await contract.getEvents.Burn(); + + expect(burnEvents.length).to.be.equal(1); + + const burnEvent = burnEvents[0]; + expect(burnEvent.eventName).to.be.equal("Burn"); + expect(burnEvent.transactionHash).to.be.equal(burnHash); + expect(burnEvent.args.tokenId).to.be.equal(tokenId); + expect(burnEvent.args.account).to.be.equal( + getAddress(otherAccount.account.address), + ); + }); + }); + + describe("Revert", async () => { + it("Should revert with NotAllowed (msg.sender != account)", async () => { + await expect( + contract.write.burn([ + getAddress(otherAccount.account.address), + tokenId, + amount, + ]), + ).to.be.rejectedWith( + `NotAllowed("${getAddress(otherAccount.account.address)}", ${tokenId})`, + ); + }); + + it("Should revert with NotFound (token doesn't exist)", async () => { + const invalidTokenId = parseUnits("999", 0); + + await expect( + contract.write.burn( + [ + getAddress(otherAccount.account.address), + invalidTokenId, + amount, + ], + { account: otherAccount.account.address }, + ), + ).to.be.rejectedWith("NotFound(999)"); + }); + }); + }); + }); }); diff --git a/yarn.lock b/yarn.lock index dedfed6..0c8b609 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12,59 +12,59 @@ resolved "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz" integrity sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw== -"@biomejs/biome@^1.8.0": - version "1.8.0" - resolved "https://registry.npmjs.org/@biomejs/biome/-/biome-1.8.0.tgz" - integrity sha512-34xcE2z8GWrIz1sCFEmlHT/+4d+SN7YOqqvzlAKXKvaWPRJ2/NUwxPbRsP01P9QODkQ5bvGvc9rpBihmP+7RJQ== +"@biomejs/biome@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/biome/-/biome-1.9.4.tgz#89766281cbc3a0aae865a7ff13d6aaffea2842bf" + integrity sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog== optionalDependencies: - "@biomejs/cli-darwin-arm64" "1.8.0" - "@biomejs/cli-darwin-x64" "1.8.0" - "@biomejs/cli-linux-arm64" "1.8.0" - "@biomejs/cli-linux-arm64-musl" "1.8.0" - "@biomejs/cli-linux-x64" "1.8.0" - "@biomejs/cli-linux-x64-musl" "1.8.0" - "@biomejs/cli-win32-arm64" "1.8.0" - "@biomejs/cli-win32-x64" "1.8.0" - -"@biomejs/cli-darwin-arm64@1.8.0": - version "1.8.0" - resolved "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.8.0.tgz" - integrity sha512-dBAYzfIJ1JmWigKlWourT3sJ3I60LZPjqNwwlsyFjiv5AV7vPeWlHVVIImV2BpINwNjZQhpXnwDfVnGS4vr7AA== - -"@biomejs/cli-darwin-x64@1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.8.0.tgz#a31eada9b57cf33cb9655593b1df2b5ff2d4f092" - integrity sha512-ZTTSD0bP0nn9UpRDGQrQNTILcYSj+IkxTYr3CAV64DWBDtQBomlk2oVKWzDaA1LOhpAsTh0giLCbPJaVk2jfMQ== - -"@biomejs/cli-linux-arm64-musl@1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.8.0.tgz#ca66b8635f8f55f320e247a5febed8bb56dc3b91" - integrity sha512-+ee/pZWsvhDv6eRI00krRNSgAg8DKSxzOv3LUsCjto6N1VzqatTASeQv2HRfG1nitf79rRKM75LkMJbqEfiKww== - -"@biomejs/cli-linux-arm64@1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.8.0.tgz#147ab4d9bcfb4cc1baee90a367acf0fef5c42649" - integrity sha512-cx725jTlJS6dskvJJwwCQaaMRBKE2Qss7ukzmx27Rn/DXRxz6tnnBix4FUGPf1uZfwrERkiJlbWM05JWzpvvXg== - -"@biomejs/cli-linux-x64-musl@1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-1.8.0.tgz#4c80358c178327fccee660f0cebcc7a78c20bcb0" - integrity sha512-VPA4ocrAOak50VYl8gOAVnjuFFDpIUolShntc/aWM0pZfSIMbRucxnrfUfp44EVwayxjK6ruJTR5xEWj93WvDA== - -"@biomejs/cli-linux-x64@1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64/-/cli-linux-x64-1.8.0.tgz#de1ab7649324c72b74e16c5234ef6191a8bc34fd" - integrity sha512-cmgmhlD4QUxMhL1VdaNqnB81xBHb3R7huVNyYnPYzP+AykZ7XqJbPd1KcWAszNjUk2AHdx0aLKEBwCOWemxb2g== - -"@biomejs/cli-win32-arm64@1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.8.0.tgz#1527e7bbcf9abd27302225591ef150da1656393a" - integrity sha512-J31spvlh39FfRHQacYXxJX9PvTCH/a8+2Jx9D1lxw+LSF0JybqZcw/4JrlFUWUl4kF3yv8AuYUK0sENScc3g9w== - -"@biomejs/cli-win32-x64@1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-x64/-/cli-win32-x64-1.8.0.tgz#d566d6d27ba262691eaac7c54b7a41560d390130" - integrity sha512-uPHHvu76JC1zYe9zZDcOU9PAg+1MZmPuNgWkb5jljaDeATvzLFPB+0nuJTilf603LXL+E8IdPQAO61Wy2VuEJA== + "@biomejs/cli-darwin-arm64" "1.9.4" + "@biomejs/cli-darwin-x64" "1.9.4" + "@biomejs/cli-linux-arm64" "1.9.4" + "@biomejs/cli-linux-arm64-musl" "1.9.4" + "@biomejs/cli-linux-x64" "1.9.4" + "@biomejs/cli-linux-x64-musl" "1.9.4" + "@biomejs/cli-win32-arm64" "1.9.4" + "@biomejs/cli-win32-x64" "1.9.4" + +"@biomejs/cli-darwin-arm64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.9.4.tgz#dfa376d23a54a2d8f17133c92f23c1bf2e62509f" + integrity sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw== + +"@biomejs/cli-darwin-x64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.9.4.tgz#eafc2ce3849d385fc02238aad1ca4a73395a64d9" + integrity sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg== + +"@biomejs/cli-linux-arm64-musl@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.9.4.tgz#d780c3e01758fc90f3268357e3f19163d1f84fca" + integrity sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA== + +"@biomejs/cli-linux-arm64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.9.4.tgz#8ed1dd0e89419a4b66a47f95aefb8c46ae6041c9" + integrity sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g== + +"@biomejs/cli-linux-x64-musl@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-1.9.4.tgz#f36982b966bd671a36671e1de4417963d7db15fb" + integrity sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg== + +"@biomejs/cli-linux-x64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-linux-x64/-/cli-linux-x64-1.9.4.tgz#a0a7f56680c76b8034ddc149dbf398bdd3a462e8" + integrity sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg== + +"@biomejs/cli-win32-arm64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.9.4.tgz#e2ef4e0084e76b7e26f0fc887c5ef1265ea56200" + integrity sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg== + +"@biomejs/cli-win32-x64@1.9.4": + version "1.9.4" + resolved "https://registry.yarnpkg.com/@biomejs/cli-win32-x64/-/cli-win32-x64-1.9.4.tgz#4c7afa90e3970213599b4095e62f87e5972b2340" + integrity sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA== "@cspotcode/source-map-support@^0.8.0": version "0.8.1"